Chromium Code Reviews| 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/renderer/chrome_render_thread_observer.h" | 5 #include "chrome/renderer/chrome_render_thread_observer.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <limits> | 9 #include <limits> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 229 std::move(request)); | 229 std::move(request)); |
| 230 } | 230 } |
| 231 | 231 |
| 232 } // namespace | 232 } // namespace |
| 233 | 233 |
| 234 bool ChromeRenderThreadObserver::is_incognito_process_ = false; | 234 bool ChromeRenderThreadObserver::is_incognito_process_ = false; |
| 235 | 235 |
| 236 ChromeRenderThreadObserver::ChromeRenderThreadObserver() | 236 ChromeRenderThreadObserver::ChromeRenderThreadObserver() |
| 237 : field_trial_syncer_(this), | 237 : field_trial_syncer_(this), |
| 238 visited_link_slave_(new visitedlink::VisitedLinkSlave), | 238 visited_link_slave_(new visitedlink::VisitedLinkSlave), |
| 239 renderer_configuration_binding_(this), | |
| 239 weak_factory_(this) { | 240 weak_factory_(this) { |
| 240 const base::CommandLine& command_line = | 241 const base::CommandLine& command_line = |
| 241 *base::CommandLine::ForCurrentProcess(); | 242 *base::CommandLine::ForCurrentProcess(); |
| 242 | 243 |
| 243 RenderThread* thread = RenderThread::Get(); | 244 RenderThread* thread = RenderThread::Get(); |
| 244 resource_delegate_.reset(new RendererResourceDelegate()); | 245 resource_delegate_.reset(new RendererResourceDelegate()); |
| 245 thread->SetResourceDispatcherDelegate(resource_delegate_.get()); | 246 thread->SetResourceDispatcherDelegate(resource_delegate_.get()); |
| 246 | 247 |
| 247 thread->GetInterfaceRegistry()->AddInterface( | 248 thread->GetInterfaceRegistry()->AddInterface( |
| 248 base::Bind(CreateResourceUsageReporter, weak_factory_.GetWeakPtr())); | 249 base::Bind(CreateResourceUsageReporter, weak_factory_.GetWeakPtr())); |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 267 WebSecurityPolicy::registerURLSchemeAsNoAccess(native_scheme); | 268 WebSecurityPolicy::registerURLSchemeAsNoAccess(native_scheme); |
| 268 WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs( | 269 WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs( |
| 269 native_scheme); | 270 native_scheme); |
| 270 | 271 |
| 271 thread->GetInterfaceRegistry()->AddInterface( | 272 thread->GetInterfaceRegistry()->AddInterface( |
| 272 visited_link_slave_->GetBindCallback()); | 273 visited_link_slave_->GetBindCallback()); |
| 273 } | 274 } |
| 274 | 275 |
| 275 ChromeRenderThreadObserver::~ChromeRenderThreadObserver() {} | 276 ChromeRenderThreadObserver::~ChromeRenderThreadObserver() {} |
| 276 | 277 |
| 278 void ChromeRenderThreadObserver::RegisterMojoInterfaces( | |
| 279 content::AssociatedInterfaceRegistry* associated_interfaces) { | |
| 280 associated_interfaces->AddInterface( | |
| 281 base::Bind(&ChromeRenderThreadObserver::OnRendererInterfaceRequest, | |
| 282 base::Unretained(this))); | |
| 283 } | |
| 284 | |
| 285 void ChromeRenderThreadObserver::UnregisterMojoInterfaces( | |
| 286 content::AssociatedInterfaceRegistry* associated_interfaces) { | |
| 287 associated_interfaces->RemoveInterface( | |
| 288 chrome::mojom::RendererConfiguration::Name_); | |
| 289 } | |
| 290 | |
| 291 void ChromeRenderThreadObserver::OnRendererInterfaceRequest( | |
|
sky
2016/12/08 16:06:23
Make declaration/definition order match.
nigeltao1
2016/12/08 23:59:09
Ha, I discovered some unused declarations in the .
| |
| 292 chrome::mojom::RendererConfigurationAssociatedRequest request) { | |
| 293 DCHECK(!renderer_configuration_binding_.is_bound()); | |
| 294 renderer_configuration_binding_.Bind(std::move(request)); | |
| 295 } | |
| 296 | |
| 277 bool ChromeRenderThreadObserver::OnControlMessageReceived( | 297 bool ChromeRenderThreadObserver::OnControlMessageReceived( |
| 278 const IPC::Message& message) { | 298 const IPC::Message& message) { |
| 279 bool handled = true; | 299 bool handled = true; |
| 280 IPC_BEGIN_MESSAGE_MAP(ChromeRenderThreadObserver, message) | 300 IPC_BEGIN_MESSAGE_MAP(ChromeRenderThreadObserver, message) |
| 281 IPC_MESSAGE_HANDLER(ChromeViewMsg_SetIsIncognitoProcess, | |
| 282 OnSetIsIncognitoProcess) | |
| 283 IPC_MESSAGE_HANDLER(ChromeViewMsg_SetFieldTrialGroup, OnSetFieldTrialGroup) | 301 IPC_MESSAGE_HANDLER(ChromeViewMsg_SetFieldTrialGroup, OnSetFieldTrialGroup) |
| 284 IPC_MESSAGE_HANDLER(ChromeViewMsg_SetContentSettingRules, | 302 IPC_MESSAGE_HANDLER(ChromeViewMsg_SetContentSettingRules, |
| 285 OnSetContentSettingRules) | 303 OnSetContentSettingRules) |
| 286 IPC_MESSAGE_UNHANDLED(handled = false) | 304 IPC_MESSAGE_UNHANDLED(handled = false) |
| 287 IPC_END_MESSAGE_MAP() | 305 IPC_END_MESSAGE_MAP() |
| 288 return handled; | 306 return handled; |
| 289 } | 307 } |
| 290 | 308 |
| 291 void ChromeRenderThreadObserver::OnRenderProcessShutdown() { | 309 void ChromeRenderThreadObserver::OnRenderProcessShutdown() { |
| 292 visited_link_slave_.reset(); | 310 visited_link_slave_.reset(); |
| 311 // This renderer_configuration_binding_.Unbind call works around tests that | |
| 312 // run in single-process mode, where the renderer_configuration_binding_ | |
| 313 // destructor is (mistakenly??) run on the wrong thread during teardown. See | |
| 314 // https://groups.google.com/a/chromium.org/d/msg/chromium-mojo/BKjxN1DLdrc/vB CU5Pw5AAAJ | |
|
sky
2016/12/08 16:06:24
I would file a bug on this.
nigeltao1
2016/12/08 23:59:09
I filed http://crbug.com/672646
| |
| 315 if (renderer_configuration_binding_.is_bound()) | |
|
nigeltao1
2016/12/08 06:37:04
rockot, please take a close look at this.
| |
| 316 renderer_configuration_binding_.Unbind(); | |
| 293 } | 317 } |
| 294 | 318 |
| 295 void ChromeRenderThreadObserver::OnFieldTrialGroupFinalized( | 319 void ChromeRenderThreadObserver::OnFieldTrialGroupFinalized( |
| 296 const std::string& trial_name, | 320 const std::string& trial_name, |
| 297 const std::string& group_name) { | 321 const std::string& group_name) { |
| 298 chrome::mojom::FieldTrialRecorderPtr field_trial_recorder; | 322 chrome::mojom::FieldTrialRecorderPtr field_trial_recorder; |
| 299 content::RenderThread::Get()->GetRemoteInterfaces()->GetInterface( | 323 content::RenderThread::Get()->GetRemoteInterfaces()->GetInterface( |
| 300 &field_trial_recorder); | 324 &field_trial_recorder); |
| 301 field_trial_recorder->FieldTrialActivated(trial_name); | 325 field_trial_recorder->FieldTrialActivated(trial_name); |
| 302 } | 326 } |
| 303 | 327 |
| 304 void ChromeRenderThreadObserver::OnSetIsIncognitoProcess( | 328 void ChromeRenderThreadObserver::SetInitialConfiguration( |
| 305 bool is_incognito_process) { | 329 bool is_incognito_process) { |
| 306 is_incognito_process_ = is_incognito_process; | 330 is_incognito_process_ = is_incognito_process; |
| 307 } | 331 } |
| 308 | 332 |
| 309 void ChromeRenderThreadObserver::OnSetContentSettingRules( | 333 void ChromeRenderThreadObserver::OnSetContentSettingRules( |
| 310 const RendererContentSettingRules& rules) { | 334 const RendererContentSettingRules& rules) { |
| 311 content_setting_rules_ = rules; | 335 content_setting_rules_ = rules; |
| 312 } | 336 } |
| 313 | 337 |
| 314 void ChromeRenderThreadObserver::OnSetFieldTrialGroup( | 338 void ChromeRenderThreadObserver::OnSetFieldTrialGroup( |
| 315 const std::string& trial_name, | 339 const std::string& trial_name, |
| 316 const std::string& group_name) { | 340 const std::string& group_name) { |
| 317 field_trial_syncer_.OnSetFieldTrialGroup(trial_name, group_name); | 341 field_trial_syncer_.OnSetFieldTrialGroup(trial_name, group_name); |
| 318 } | 342 } |
| 319 | 343 |
| 320 const RendererContentSettingRules* | 344 const RendererContentSettingRules* |
| 321 ChromeRenderThreadObserver::content_setting_rules() const { | 345 ChromeRenderThreadObserver::content_setting_rules() const { |
| 322 return &content_setting_rules_; | 346 return &content_setting_rules_; |
| 323 } | 347 } |
| OLD | NEW |