Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1783)

Unified Diff: chrome/renderer/chrome_render_thread_observer.cc

Issue 2531133002: Convert SetIsIncognitoProcess to use mojo. (Closed)
Patch Set: Convert SetIsIncognitoProcess to use mojo. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/chrome_render_thread_observer.h ('k') | content/public/renderer/render_thread_observer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..4ab4663eaef9370aeceb9e42ab5c3b89271c8ab9 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,13 @@ bool ChromeRenderThreadObserver::OnControlMessageReceived(
void ChromeRenderThreadObserver::OnRenderProcessShutdown() {
visited_link_slave_.reset();
+ // This renderer_configuration_binding_.Unbind call works around tests that
Ken Rockot(use gerrit already) 2016/12/09 04:29:08 nit: Probably sufficient to just way "Workaround f
nigeltao1 2016/12/09 04:59:40 Done.
+ // run in single-process mode, where the renderer_configuration_binding_
+ // destructor is (mistakenly??) run on the wrong thread during teardown. See
+ // https://groups.google.com/a/chromium.org/d/msg/chromium-mojo/BKjxN1DLdrc/vBCU5Pw5AAAJ
+ // and http://crbug.com/672646
+ if (renderer_configuration_binding_.is_bound())
+ renderer_configuration_binding_.Unbind();
}
void ChromeRenderThreadObserver::OnFieldTrialGroupFinalized(
@@ -301,11 +320,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;
« no previous file with comments | « chrome/renderer/chrome_render_thread_observer.h ('k') | content/public/renderer/render_thread_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698