summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_host.cc
diff options
context:
space:
mode:
authorerg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-28 16:54:09 +0000
committererg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-28 16:54:09 +0000
commit0d158050b7b13840ca87efc9fb00bab327a736d9 (patch)
treefc705fa25c978351f04a3c740d81885a3dc46dad /chrome/browser/extensions/extension_host.cc
parent756499cf199d964b055dc76e7b2f1edfbd53a4f0 (diff)
downloadchromium_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.cc20
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,