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

Side by Side Diff: chrome/browser/extensions/theme_installed_infobar_delegate.cc

Issue 7327007: Moving notification types which are chrome specific to a new header file chrome_notification_type... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/browser/extensions/theme_installed_infobar_delegate.h" 5 #include "chrome/browser/extensions/theme_installed_infobar_delegate.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/extensions/extension_service.h" 10 #include "chrome/browser/extensions/extension_service.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/themes/theme_service.h" 12 #include "chrome/browser/themes/theme_service.h"
13 #include "chrome/browser/themes/theme_service_factory.h" 13 #include "chrome/browser/themes/theme_service_factory.h"
14 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 14 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
15 #include "chrome/common/chrome_notification_types.h"
15 #include "chrome/common/extensions/extension.h" 16 #include "chrome/common/extensions/extension.h"
16 #include "content/common/notification_service.h" 17 #include "content/common/notification_service.h"
17 #include "grit/generated_resources.h" 18 #include "grit/generated_resources.h"
18 #include "grit/theme_resources_standard.h" 19 #include "grit/theme_resources_standard.h"
19 #include "ui/base/l10n/l10n_util.h" 20 #include "ui/base/l10n/l10n_util.h"
20 #include "ui/base/resource/resource_bundle.h" 21 #include "ui/base/resource/resource_bundle.h"
21 22
22 ThemeInstalledInfoBarDelegate::ThemeInstalledInfoBarDelegate( 23 ThemeInstalledInfoBarDelegate::ThemeInstalledInfoBarDelegate(
23 TabContents* tab_contents, 24 TabContents* tab_contents,
24 const Extension* new_theme, 25 const Extension* new_theme,
25 const std::string& previous_theme_id, 26 const std::string& previous_theme_id,
26 bool previous_using_native_theme) 27 bool previous_using_native_theme)
27 : ConfirmInfoBarDelegate(tab_contents), 28 : ConfirmInfoBarDelegate(tab_contents),
28 profile_(tab_contents->profile()), 29 profile_(tab_contents->profile()),
29 theme_service_(ThemeServiceFactory::GetForProfile(profile_)), 30 theme_service_(ThemeServiceFactory::GetForProfile(profile_)),
30 name_(new_theme->name()), 31 name_(new_theme->name()),
31 theme_id_(new_theme->id()), 32 theme_id_(new_theme->id()),
32 previous_theme_id_(previous_theme_id), 33 previous_theme_id_(previous_theme_id),
33 previous_using_native_theme_(previous_using_native_theme), 34 previous_using_native_theme_(previous_using_native_theme),
34 tab_contents_(tab_contents) { 35 tab_contents_(tab_contents) {
35 theme_service_->OnInfobarDisplayed(); 36 theme_service_->OnInfobarDisplayed();
36 registrar_.Add(this, NotificationType::BROWSER_THEME_CHANGED, 37 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED,
37 Source<ThemeService>(theme_service_)); 38 Source<ThemeService>(theme_service_));
38 } 39 }
39 40
40 bool ThemeInstalledInfoBarDelegate::MatchesTheme(const Extension* theme) const { 41 bool ThemeInstalledInfoBarDelegate::MatchesTheme(const Extension* theme) const {
41 return theme && (theme->id() == theme_id_); 42 return theme && (theme->id() == theme_id_);
42 } 43 }
43 44
44 ThemeInstalledInfoBarDelegate::~ThemeInstalledInfoBarDelegate() { 45 ThemeInstalledInfoBarDelegate::~ThemeInstalledInfoBarDelegate() {
45 // We don't want any notifications while we're running our destructor. 46 // We don't want any notifications while we're running our destructor.
46 registrar_.RemoveAll(); 47 registrar_.RemoveAll();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 return BUTTON_CANCEL; 91 return BUTTON_CANCEL;
91 } 92 }
92 93
93 string16 ThemeInstalledInfoBarDelegate::GetButtonLabel( 94 string16 ThemeInstalledInfoBarDelegate::GetButtonLabel(
94 InfoBarButton button) const { 95 InfoBarButton button) const {
95 DCHECK_EQ(BUTTON_CANCEL, button); 96 DCHECK_EQ(BUTTON_CANCEL, button);
96 return l10n_util::GetStringUTF16(IDS_THEME_INSTALL_INFOBAR_UNDO_BUTTON); 97 return l10n_util::GetStringUTF16(IDS_THEME_INSTALL_INFOBAR_UNDO_BUTTON);
97 } 98 }
98 99
99 void ThemeInstalledInfoBarDelegate::Observe( 100 void ThemeInstalledInfoBarDelegate::Observe(
100 NotificationType type, 101 int type,
101 const NotificationSource& source, 102 const NotificationSource& source,
102 const NotificationDetails& details) { 103 const NotificationDetails& details) {
103 DCHECK_EQ(NotificationType::BROWSER_THEME_CHANGED, type.value); 104 DCHECK_EQ(chrome::NOTIFICATION_BROWSER_THEME_CHANGED, type);
104 // If the new theme is different from what this info bar is associated 105 // If the new theme is different from what this info bar is associated
105 // with, close this info bar since it is no longer relevant. 106 // with, close this info bar since it is no longer relevant.
106 if (theme_id_ != theme_service_->GetThemeID()) { 107 if (theme_id_ != theme_service_->GetThemeID()) {
107 if (tab_contents_ && !tab_contents_->is_being_destroyed()) { 108 if (tab_contents_ && !tab_contents_->is_being_destroyed()) {
108 TabContentsWrapper::GetCurrentWrapperForContents(tab_contents_)-> 109 TabContentsWrapper::GetCurrentWrapperForContents(tab_contents_)->
109 RemoveInfoBar(this); 110 RemoveInfoBar(this);
110 // The infobar is gone so there is no reason for this delegate to keep 111 // The infobar is gone so there is no reason for this delegate to keep
111 // a pointer to the TabContents (the TabContents has deleted its 112 // a pointer to the TabContents (the TabContents has deleted its
112 // reference to this delegate and a new delegate will be created if 113 // reference to this delegate and a new delegate will be created if
113 // a new infobar is created). 114 // a new infobar is created).
114 tab_contents_ = NULL; 115 tab_contents_ = NULL;
115 // Although it's not being used anymore, this delegate is never deleted. 116 // Although it's not being used anymore, this delegate is never deleted.
116 // It can not be deleted now because it is still needed if we 117 // It can not be deleted now because it is still needed if we
117 // "undo" the theme change that triggered this notification 118 // "undo" the theme change that triggered this notification
118 // (when InfoBar::OnBackgroundExpose() is called). This will likely 119 // (when InfoBar::OnBackgroundExpose() is called). This will likely
119 // be fixed when infobar delegate deletion is cleaned up for 120 // be fixed when infobar delegate deletion is cleaned up for
120 // http://crbug.com/62154. 121 // http://crbug.com/62154.
121 } 122 }
122 } 123 }
123 } 124 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/theme_installed_infobar_delegate.h ('k') | chrome/browser/extensions/user_script_listener.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698