diff options
author | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-28 16:54:09 +0000 |
---|---|---|
committer | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-28 16:54:09 +0000 |
commit | 0d158050b7b13840ca87efc9fb00bab327a736d9 (patch) | |
tree | fc705fa25c978351f04a3c740d81885a3dc46dad /chrome/browser/extensions/extension_host.cc | |
parent | 756499cf199d964b055dc76e7b2f1edfbd53a4f0 (diff) | |
download | chromium_src-0d158050b7b13840ca87efc9fb00bab327a736d9.zip chromium_src-0d158050b7b13840ca87efc9fb00bab327a736d9.tar.gz chromium_src-0d158050b7b13840ca87efc9fb00bab327a736d9.tar.bz2 |
Extensions: Listen for BROWSER_THEME_CHANGED and send updated CSS.
GTK: Listen for BROWSER_THEME_CHANGED and upload proper colors.
BUG=23031
Review URL: http://codereview.chromium.org/248006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27368 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_host.cc')
-rw-r--r-- | chrome/browser/extensions/extension_host.cc | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/chrome/browser/extensions/extension_host.cc b/chrome/browser/extensions/extension_host.cc index ea19514..9a1baa6 100644 --- a/chrome/browser/extensions/extension_host.cc +++ b/chrome/browser/extensions/extension_host.cc @@ -135,9 +135,14 @@ void ExtensionHost::NavigateToURL(const GURL& url) { void ExtensionHost::Observe(NotificationType type, const NotificationSource& source, const NotificationDetails& details) { - DCHECK(type == NotificationType::EXTENSION_BACKGROUND_PAGE_READY); - DCHECK(extension_->GetBackgroundPageReady()); - NavigateToURL(url_); + if (type == NotificationType::EXTENSION_BACKGROUND_PAGE_READY) { + DCHECK(extension_->GetBackgroundPageReady()); + NavigateToURL(url_); + } else if (type == NotificationType::BROWSER_THEME_CHANGED) { + InsertThemeCSS(); + } else { + NOTREACHED(); + } } void ExtensionHost::UpdatePreferredWidth(int pref_width) { @@ -241,10 +246,15 @@ void ExtensionHost::DidStopLoading(RenderViewHost* render_view_host) { void ExtensionHost::DocumentAvailableInMainFrame(RenderViewHost* rvh) { document_element_available_ = true; - if (is_background_page()) + if (is_background_page()) { extension_->SetBackgroundPageReady(); - else + } else { InsertThemeCSS(); + + // Listen for browser changes so we can resend the CSS. + registrar_.Add(this, NotificationType::BROWSER_THEME_CHANGED, + NotificationService::AllSources()); + } } void ExtensionHost::RunJavaScriptMessage(const std::wstring& message, |