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 #include "chrome/browser/profiles/off_the_record_profile_impl.h" | 5 #include "chrome/browser/profiles/off_the_record_profile_impl.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 | 71 |
72 #if defined(ENABLE_EXTENSIONS) | 72 #if defined(ENABLE_EXTENSIONS) |
73 #include "chrome/browser/extensions/api/web_request/web_request_api.h" | 73 #include "chrome/browser/extensions/api/web_request/web_request_api.h" |
74 #include "extensions/browser/extension_system.h" | 74 #include "extensions/browser/extension_system.h" |
75 #include "extensions/browser/guest_view/guest_view_manager.h" | 75 #include "extensions/browser/guest_view/guest_view_manager.h" |
76 #include "extensions/common/extension.h" | 76 #include "extensions/common/extension.h" |
77 #endif | 77 #endif |
78 | 78 |
79 using content::BrowserThread; | 79 using content::BrowserThread; |
80 using content::DownloadManagerDelegate; | 80 using content::DownloadManagerDelegate; |
81 using content::HostZoomMap; | |
82 | 81 |
83 #if defined(ENABLE_EXTENSIONS) | 82 #if defined(ENABLE_EXTENSIONS) |
84 namespace { | 83 namespace { |
85 | 84 |
86 void NotifyOTRProfileCreatedOnIOThread(void* original_profile, | 85 void NotifyOTRProfileCreatedOnIOThread(void* original_profile, |
87 void* otr_profile) { | 86 void* otr_profile) { |
88 ExtensionWebRequestEventRouter::GetInstance()->OnOTRProfileCreated( | 87 ExtensionWebRequestEventRouter::GetInstance()->OnOTRProfileCreated( |
89 original_profile, otr_profile); | 88 original_profile, otr_profile); |
90 } | 89 } |
91 | 90 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 #endif // defined(OS_ANDROID) || defined(OS_IOS) | 131 #endif // defined(OS_ANDROID) || defined(OS_IOS) |
133 | 132 |
134 // TODO(oshima): Remove the need to eagerly initialize the request context | 133 // TODO(oshima): Remove the need to eagerly initialize the request context |
135 // getter. chromeos::OnlineAttempt is illegally trying to access this | 134 // getter. chromeos::OnlineAttempt is illegally trying to access this |
136 // Profile member from a thread other than the UI thread, so we need to | 135 // Profile member from a thread other than the UI thread, so we need to |
137 // prevent a race. | 136 // prevent a race. |
138 #if defined(OS_CHROMEOS) | 137 #if defined(OS_CHROMEOS) |
139 GetRequestContext(); | 138 GetRequestContext(); |
140 #endif // defined(OS_CHROMEOS) | 139 #endif // defined(OS_CHROMEOS) |
141 | 140 |
142 InitHostZoomMap(); | 141 TrackZoomLevelsFromParent(profile_); |
143 | 142 |
144 #if defined(ENABLE_PLUGINS) | 143 #if defined(ENABLE_PLUGINS) |
145 ChromePluginServiceFilter::GetInstance()->RegisterResourceContext( | 144 ChromePluginServiceFilter::GetInstance()->RegisterResourceContext( |
146 PluginPrefs::GetForProfile(this).get(), | 145 PluginPrefs::GetForProfile(this).get(), |
147 io_data_->GetResourceContextNoInit()); | 146 io_data_->GetResourceContextNoInit()); |
148 #endif | 147 #endif |
149 | 148 |
150 #if defined(ENABLE_EXTENSIONS) | 149 #if defined(ENABLE_EXTENSIONS) |
151 // Make the chrome//extension-icon/ resource available. | 150 // Make the chrome//extension-icon/ resource available. |
152 extensions::ExtensionIconSource* icon_source = | 151 extensions::ExtensionIconSource* icon_source = |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 | 183 |
185 // Clears any data the network stack contains that may be related to the | 184 // Clears any data the network stack contains that may be related to the |
186 // OTR session. | 185 // OTR session. |
187 g_browser_process->io_thread()->ChangedToOnTheRecord(); | 186 g_browser_process->io_thread()->ChangedToOnTheRecord(); |
188 } | 187 } |
189 | 188 |
190 void OffTheRecordProfileImpl::InitIoData() { | 189 void OffTheRecordProfileImpl::InitIoData() { |
191 io_data_.reset(new OffTheRecordProfileIOData::Handle(this)); | 190 io_data_.reset(new OffTheRecordProfileIOData::Handle(this)); |
192 } | 191 } |
193 | 192 |
194 void OffTheRecordProfileImpl::InitHostZoomMap() { | |
195 HostZoomMap* host_zoom_map = HostZoomMap::GetForBrowserContext(this); | |
196 HostZoomMap* parent_host_zoom_map = | |
197 HostZoomMap::GetForBrowserContext(profile_); | |
198 host_zoom_map->CopyFrom(parent_host_zoom_map); | |
199 // Observe parent's HZM change for propagating change of parent's | |
200 // change to this HZM. | |
201 zoom_subscription_ = parent_host_zoom_map->AddZoomLevelChangedCallback( | |
202 base::Bind(&OffTheRecordProfileImpl::OnZoomLevelChanged, | |
203 base::Unretained(this))); | |
204 } | |
205 | |
206 #if defined(OS_ANDROID) || defined(OS_IOS) | 193 #if defined(OS_ANDROID) || defined(OS_IOS) |
207 void OffTheRecordProfileImpl::UseSystemProxy() { | 194 void OffTheRecordProfileImpl::UseSystemProxy() { |
208 // Force the use of the system-assigned proxy when off the record. | 195 // Force the use of the system-assigned proxy when off the record. |
209 const char kProxyMode[] = "mode"; | 196 const char kProxyMode[] = "mode"; |
210 const char kProxyServer[] = "server"; | 197 const char kProxyServer[] = "server"; |
211 const char kProxyBypassList[] = "bypass_list"; | 198 const char kProxyBypassList[] = "bypass_list"; |
212 const char kProxyPacUrl[] = "pac_url"; | 199 const char kProxyPacUrl[] = "pac_url"; |
213 DictionaryPrefUpdate update(prefs_, prefs::kProxy); | 200 DictionaryPrefUpdate update(prefs_, prefs::kProxy); |
214 base::DictionaryValue* dict = update.Get(); | 201 base::DictionaryValue* dict = update.Get(); |
215 dict->SetString(kProxyMode, ProxyModeToString(ProxyPrefs::MODE_SYSTEM)); | 202 dict->SetString(kProxyMode, ProxyModeToString(ProxyPrefs::MODE_SYSTEM)); |
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 #if defined(OS_CHROMEOS) | 491 #if defined(OS_CHROMEOS) |
505 if (IsGuestSession()) | 492 if (IsGuestSession()) |
506 profile = new GuestSessionProfile(this); | 493 profile = new GuestSessionProfile(this); |
507 #endif | 494 #endif |
508 if (!profile) | 495 if (!profile) |
509 profile = new OffTheRecordProfileImpl(this); | 496 profile = new OffTheRecordProfileImpl(this); |
510 profile->Init(); | 497 profile->Init(); |
511 return profile; | 498 return profile; |
512 } | 499 } |
513 | 500 |
514 void OffTheRecordProfileImpl::OnZoomLevelChanged( | |
515 const HostZoomMap::ZoomLevelChange& change) { | |
516 HostZoomMap* host_zoom_map = HostZoomMap::GetForBrowserContext(this); | |
517 switch (change.mode) { | |
518 case HostZoomMap::ZOOM_CHANGED_TEMPORARY_ZOOM: | |
519 return; | |
520 case HostZoomMap::ZOOM_CHANGED_FOR_HOST: | |
521 host_zoom_map->SetZoomLevelForHost(change.host, change.zoom_level); | |
522 return; | |
523 case HostZoomMap::ZOOM_CHANGED_FOR_SCHEME_AND_HOST: | |
524 host_zoom_map->SetZoomLevelForHostAndScheme(change.scheme, | |
525 change.host, | |
526 change.zoom_level); | |
527 return; | |
528 } | |
529 } | |
530 | |
531 PrefProxyConfigTracker* OffTheRecordProfileImpl::CreateProxyConfigTracker() { | 501 PrefProxyConfigTracker* OffTheRecordProfileImpl::CreateProxyConfigTracker() { |
532 #if defined(OS_CHROMEOS) | 502 #if defined(OS_CHROMEOS) |
533 if (chromeos::ProfileHelper::IsSigninProfile(this)) { | 503 if (chromeos::ProfileHelper::IsSigninProfile(this)) { |
534 return ProxyServiceFactory::CreatePrefProxyConfigTrackerOfLocalState( | 504 return ProxyServiceFactory::CreatePrefProxyConfigTrackerOfLocalState( |
535 g_browser_process->local_state()); | 505 g_browser_process->local_state()); |
536 } | 506 } |
537 #endif // defined(OS_CHROMEOS) | 507 #endif // defined(OS_CHROMEOS) |
538 return ProxyServiceFactory::CreatePrefProxyConfigTrackerOfProfile( | 508 return ProxyServiceFactory::CreatePrefProxyConfigTrackerOfProfile( |
539 GetPrefs(), g_browser_process->local_state()); | 509 GetPrefs(), g_browser_process->local_state()); |
540 } | 510 } |
OLD | NEW |