| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_NET_CHROME_NETWORK_DELEGATE_H_ | 5 #ifndef CHROME_BROWSER_NET_CHROME_NETWORK_DELEGATE_H_ |
| 6 #define CHROME_BROWSER_NET_CHROME_NETWORK_DELEGATE_H_ | 6 #define CHROME_BROWSER_NET_CHROME_NETWORK_DELEGATE_H_ |
| 7 | 7 |
| 8 #include <string> |
| 9 |
| 8 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| 9 #include "base/compiler_specific.h" | 11 #include "base/compiler_specific.h" |
| 10 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
| 11 #include "base/values.h" | 13 #include "base/values.h" |
| 12 #include "net/base/network_delegate.h" | 14 #include "net/base/network_delegate.h" |
| 13 | 15 |
| 14 class CookieSettings; | 16 class CookieSettings; |
| 15 class ExtensionInfoMap; | 17 class ExtensionInfoMap; |
| 16 class ManagedModeURLFilter; | 18 class ManagedModeURLFilter; |
| 17 class PrefService; | 19 class PrefService; |
| 18 template<class T> class PrefMember; | 20 template<class T> class PrefMember; |
| 19 | 21 |
| 20 typedef PrefMember<bool> BooleanPrefMember; | 22 typedef PrefMember<bool> BooleanPrefMember; |
| 21 | 23 |
| 22 namespace base { | 24 namespace base { |
| 23 class Value; | 25 class Value; |
| 24 } | 26 } |
| 25 | 27 |
| 26 namespace chrome_browser_net { | 28 namespace chrome_browser_net { |
| 27 class LoadTimeStats; | 29 class LoadTimeStats; |
| 28 } | 30 } |
| 29 | 31 |
| 30 namespace extensions { | 32 namespace extensions { |
| 31 class EventRouterForwarder; | 33 class EventRouterForwarder; |
| 32 } | 34 } |
| 33 | 35 |
| 36 namespace net { |
| 37 class URLRequest; |
| 38 } |
| 39 |
| 34 namespace policy { | 40 namespace policy { |
| 35 class URLBlacklistManager; | 41 class URLBlacklistManager; |
| 36 } | 42 } |
| 37 | 43 |
| 38 // ChromeNetworkDelegate is the central point from within the chrome code to | 44 // ChromeNetworkDelegate is the central point from within the chrome code to |
| 39 // add hooks into the network stack. | 45 // add hooks into the network stack. |
| 40 class ChromeNetworkDelegate : public net::NetworkDelegate { | 46 class ChromeNetworkDelegate : public net::NetworkDelegate { |
| 41 public: | 47 public: |
| 42 // If |profile| is NULL, events will be broadcasted to all profiles, | 48 // If |profile| is NULL, events will be broadcasted to all profiles, |
| 43 // otherwise they will only be sent to the specified profile. | 49 // otherwise they will only be sent to the specified profile. |
| 44 // |enable_referrers| and |enable_do_not_track| should be initialized on the | 50 // |enable_referrers| and |enable_do_not_track| should be initialized on the |
| 45 // UI thread (see below) beforehand. This object's owner is responsible for | 51 // UI thread (see below) beforehand. This object's owner is responsible for |
| 46 // cleaning it up at shutdown. |enable_do_not_track| can be NULL. | 52 // cleaning it up at shutdown. |enable_do_not_track| can be NULL. |
| 47 // If |cookie_settings| is NULL, all cookies are enabled, otherwise, the | 53 // If |cookie_settings| is NULL, all cookies are enabled, otherwise, the |
| 48 // settings are enforced on all observed network requests. | 54 // settings are enforced on all observed network requests. |
| 49 ChromeNetworkDelegate( | 55 ChromeNetworkDelegate( |
| 50 extensions::EventRouterForwarder* event_router, | 56 extensions::EventRouterForwarder* event_router, |
| 51 ExtensionInfoMap* extension_info_map, | 57 ExtensionInfoMap* extension_info_map, |
| 52 const policy::URLBlacklistManager* url_blacklist_manager, | 58 const policy::URLBlacklistManager* url_blacklist_manager, |
| 53 const ManagedModeURLFilter* managed_mode_url_filter, | 59 const ManagedModeURLFilter* managed_mode_url_filter, |
| 54 void* profile, | 60 void* profile, |
| 55 CookieSettings* cookie_settings, | 61 CookieSettings* cookie_settings, |
| 56 BooleanPrefMember* enable_referrers, | 62 BooleanPrefMember* enable_referrers, |
| 57 BooleanPrefMember* enable_do_not_track, | 63 BooleanPrefMember* enable_do_not_track, |
| 64 BooleanPrefMember* force_google_safe_search, |
| 58 chrome_browser_net::LoadTimeStats* load_time_stats); | 65 chrome_browser_net::LoadTimeStats* load_time_stats); |
| 59 virtual ~ChromeNetworkDelegate(); | 66 virtual ~ChromeNetworkDelegate(); |
| 60 | 67 |
| 61 // Causes |OnCanThrottleRequest| to always return false, for all | 68 // Causes |OnCanThrottleRequest| to always return false, for all |
| 62 // instances of this object. | 69 // instances of this object. |
| 63 static void NeverThrottleRequests(); | 70 static void NeverThrottleRequests(); |
| 64 | 71 |
| 65 // Binds the pref members to |pref_service| and moves them to the IO thread. | 72 // Binds the pref members to |pref_service| and moves them to the IO thread. |
| 66 // |enable_do_not_track| can be NULL. | 73 // |enable_do_not_track| can be NULL. |
| 67 // This method should be called on the UI thread. | 74 // This method should be called on the UI thread. |
| 68 static void InitializePrefsOnUIThread(BooleanPrefMember* enable_referrers, | 75 static void InitializePrefsOnUIThread( |
| 69 BooleanPrefMember* enable_do_not_track, | 76 BooleanPrefMember* enable_referrers, |
| 70 PrefService* pref_service); | 77 BooleanPrefMember* enable_do_not_track, |
| 78 BooleanPrefMember* force_google_safe_search, |
| 79 PrefService* pref_service); |
| 71 | 80 |
| 72 // When called, all file:// URLs will now be accessible. If this is not | 81 // When called, all file:// URLs will now be accessible. If this is not |
| 73 // called, then some platforms restrict access to file:// paths. | 82 // called, then some platforms restrict access to file:// paths. |
| 74 static void AllowAccessToAllFiles(); | 83 static void AllowAccessToAllFiles(); |
| 75 | 84 |
| 76 // Creates a Value summary of the persistent state of the network session. | 85 // Creates a Value summary of the persistent state of the network session. |
| 77 // The caller is responsible for deleting the returned value. | 86 // The caller is responsible for deleting the returned value. |
| 78 // Must be called on the UI thread. | 87 // Must be called on the UI thread. |
| 79 static Value* HistoricNetworkStatsInfoToValue(); | 88 static Value* HistoricNetworkStatsInfoToValue(); |
| 80 | 89 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 | 143 |
| 135 scoped_refptr<extensions::EventRouterForwarder> event_router_; | 144 scoped_refptr<extensions::EventRouterForwarder> event_router_; |
| 136 void* profile_; | 145 void* profile_; |
| 137 scoped_refptr<CookieSettings> cookie_settings_; | 146 scoped_refptr<CookieSettings> cookie_settings_; |
| 138 | 147 |
| 139 scoped_refptr<ExtensionInfoMap> extension_info_map_; | 148 scoped_refptr<ExtensionInfoMap> extension_info_map_; |
| 140 | 149 |
| 141 // Weak, owned by our owner. | 150 // Weak, owned by our owner. |
| 142 BooleanPrefMember* enable_referrers_; | 151 BooleanPrefMember* enable_referrers_; |
| 143 BooleanPrefMember* enable_do_not_track_; | 152 BooleanPrefMember* enable_do_not_track_; |
| 153 BooleanPrefMember* force_google_safe_search_; |
| 144 | 154 |
| 145 // Weak, owned by our owner. | 155 // Weak, owned by our owner. |
| 146 const policy::URLBlacklistManager* url_blacklist_manager_; | 156 const policy::URLBlacklistManager* url_blacklist_manager_; |
| 147 | 157 |
| 148 // Weak pointer. The owner of this object needs to make sure that the | 158 // Weak pointer. The owner of this object needs to make sure that the |
| 149 // |managed_mode_url_filter_| outlives it. | 159 // |managed_mode_url_filter_| outlives it. |
| 150 const ManagedModeURLFilter* managed_mode_url_filter_; | 160 const ManagedModeURLFilter* managed_mode_url_filter_; |
| 151 | 161 |
| 152 // When true, allow access to all file:// URLs. | 162 // When true, allow access to all file:// URLs. |
| 153 static bool g_allow_file_access_; | 163 static bool g_allow_file_access_; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 167 // over the network. | 177 // over the network. |
| 168 int64 received_content_length_; | 178 int64 received_content_length_; |
| 169 | 179 |
| 170 // Total original size of all content before it was transferred. | 180 // Total original size of all content before it was transferred. |
| 171 int64 original_content_length_; | 181 int64 original_content_length_; |
| 172 | 182 |
| 173 DISALLOW_COPY_AND_ASSIGN(ChromeNetworkDelegate); | 183 DISALLOW_COPY_AND_ASSIGN(ChromeNetworkDelegate); |
| 174 }; | 184 }; |
| 175 | 185 |
| 176 #endif // CHROME_BROWSER_NET_CHROME_NETWORK_DELEGATE_H_ | 186 #endif // CHROME_BROWSER_NET_CHROME_NETWORK_DELEGATE_H_ |
| OLD | NEW |