| Index: chrome/renderer/chrome_render_thread_observer.cc
|
| diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/chrome_render_thread_observer.cc
|
| index 3b96a1577756971a9e423e4953ee1101aaf440de..9df76f7124ef6e230b75a37730c458e6bf075d68 100644
|
| --- a/chrome/renderer/chrome_render_thread_observer.cc
|
| +++ b/chrome/renderer/chrome_render_thread_observer.cc
|
| @@ -236,6 +236,7 @@ bool ChromeRenderThreadObserver::is_incognito_process_ = false;
|
| ChromeRenderThreadObserver::ChromeRenderThreadObserver()
|
| : field_trial_syncer_(this),
|
| visited_link_slave_(new visitedlink::VisitedLinkSlave),
|
| + renderer_configuration_binding_(this),
|
| weak_factory_(this) {
|
| const base::CommandLine& command_line =
|
| *base::CommandLine::ForCurrentProcess();
|
| @@ -274,12 +275,23 @@ ChromeRenderThreadObserver::ChromeRenderThreadObserver()
|
|
|
| ChromeRenderThreadObserver::~ChromeRenderThreadObserver() {}
|
|
|
| +void ChromeRenderThreadObserver::RegisterMojoInterfaces(
|
| + content::AssociatedInterfaceRegistry* associated_interfaces) {
|
| + associated_interfaces->AddInterface(
|
| + base::Bind(&ChromeRenderThreadObserver::OnRendererInterfaceRequest,
|
| + base::Unretained(this)));
|
| +}
|
| +
|
| +void ChromeRenderThreadObserver::UnregisterMojoInterfaces(
|
| + content::AssociatedInterfaceRegistry* associated_interfaces) {
|
| + associated_interfaces->RemoveInterface(
|
| + chrome::mojom::RendererConfiguration::Name_);
|
| +}
|
| +
|
| bool ChromeRenderThreadObserver::OnControlMessageReceived(
|
| const IPC::Message& message) {
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(ChromeRenderThreadObserver, message)
|
| - IPC_MESSAGE_HANDLER(ChromeViewMsg_SetIsIncognitoProcess,
|
| - OnSetIsIncognitoProcess)
|
| IPC_MESSAGE_HANDLER(ChromeViewMsg_SetFieldTrialGroup, OnSetFieldTrialGroup)
|
| IPC_MESSAGE_HANDLER(ChromeViewMsg_SetContentSettingRules,
|
| OnSetContentSettingRules)
|
| @@ -290,6 +302,10 @@ bool ChromeRenderThreadObserver::OnControlMessageReceived(
|
|
|
| void ChromeRenderThreadObserver::OnRenderProcessShutdown() {
|
| visited_link_slave_.reset();
|
| +
|
| + // Workaround for http://crbug.com/672646
|
| + if (renderer_configuration_binding_.is_bound())
|
| + renderer_configuration_binding_.Unbind();
|
| }
|
|
|
| void ChromeRenderThreadObserver::OnFieldTrialGroupFinalized(
|
| @@ -301,11 +317,17 @@ void ChromeRenderThreadObserver::OnFieldTrialGroupFinalized(
|
| field_trial_recorder->FieldTrialActivated(trial_name);
|
| }
|
|
|
| -void ChromeRenderThreadObserver::OnSetIsIncognitoProcess(
|
| +void ChromeRenderThreadObserver::SetInitialConfiguration(
|
| bool is_incognito_process) {
|
| is_incognito_process_ = is_incognito_process;
|
| }
|
|
|
| +void ChromeRenderThreadObserver::OnRendererInterfaceRequest(
|
| + chrome::mojom::RendererConfigurationAssociatedRequest request) {
|
| + DCHECK(!renderer_configuration_binding_.is_bound());
|
| + renderer_configuration_binding_.Bind(std::move(request));
|
| +}
|
| +
|
| void ChromeRenderThreadObserver::OnSetContentSettingRules(
|
| const RendererContentSettingRules& rules) {
|
| content_setting_rules_ = rules;
|
|
|