diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-12 23:08:56 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-12 23:08:56 +0000 |
commit | 9a22457f69b4cddf6a360559f0663e51fc5ab9c5 (patch) | |
tree | 967b7c63bca70dfa1efae86d1c9c0caa559a7c61 | |
parent | 24b12e5ba96d93ab90314d89e43148d52aa3c3f4 (diff) | |
download | chromium_src-9a22457f69b4cddf6a360559f0663e51fc5ab9c5.zip chromium_src-9a22457f69b4cddf6a360559f0663e51fc5ab9c5.tar.gz chromium_src-9a22457f69b4cddf6a360559f0663e51fc5ab9c5.tar.bz2 |
Revert 199625 "Remove ENABLE_MESSAGE_CENTER"
Caused a static initializer on Linux:
# message_center_constants.cc __i686.get_pc_thunk.cx
(Not on Mac though. The SkGetColor() macro has a comment about it not adding
a static initializer on release builds, so maybe it's the float-int-multiplication?
I don't have a linux box around to check, sorry.)
> Remove ENABLE_MESSAGE_CENTER
>
> Next step on re-factoring Notifications. This will bring the MessageCenter classes, most important message_center::Notification, into build on all systems, including those where the MessageCenter is not yet appearign in UI. This will allow to start using this Notification class in client code and remove the old Notification class defined in chrome/browser/notificaitons/notification.h
>
> That will allow the clients that already use Rich Notifications to use richer data type support, for example supply an image bits for a Notification (as in Snapshot notifications).
>
> This also removes a lot of compile-time @ifdefs and replaces them with checking a runtime flag which we already have anyways.
>
> On Android and iOS, the MessageCenter is not compiled in, for the size concerns and uncertain story for notifications in general - the existing ENABLE_NOTIFICATIONS define is used for that.
>
> BUG=174164
>
> Review URL: https://chromiumcodereview.appspot.com/15025002
TBR=dimich@chromium.org
Review URL: https://codereview.chromium.org/14631021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199639 0039d316-1c4b-4281-b951-d872f2087c98
33 files changed, 466 insertions, 340 deletions
diff --git a/ash/shell/content_client/shell_browser_main_parts.cc b/ash/shell/content_client/shell_browser_main_parts.cc index a692775..b2393e6 100644 --- a/ash/shell/content_client/shell_browser_main_parts.cc +++ b/ash/shell/content_client/shell_browser_main_parts.cc @@ -28,10 +28,13 @@ #include "ui/compositor/compositor.h" #include "ui/compositor/test/compositor_test_support.h" #include "ui/gfx/screen.h" -#include "ui/message_center/message_center.h" #include "ui/views/focus/accelerator_handler.h" #include "ui/views/test/test_views_delegate.h" +#if defined(ENABLE_MESSAGE_CENTER) +#include "ui/message_center/message_center.h" +#endif + #if defined(USE_X11) #include "ui/base/touch/touch_factory_x11.h" #endif @@ -106,9 +109,11 @@ void ShellBrowserMainParts::PreMainMessageLoopRun() { views::ViewsDelegate::views_delegate = new ShellViewsDelegate; delegate_ = new ash::shell::ShellDelegateImpl; +#if defined(ENABLE_MESSAGE_CENTER) // The global message center state must be initialized absent // g_browser_process. message_center::MessageCenter::Initialize(); +#endif ash::Shell::CreateInstance(delegate_); ash::Shell::GetInstance()->set_browser_context(browser_context_.get()); @@ -137,9 +142,11 @@ void ShellBrowserMainParts::PostMainMessageLoopRun() { delegate_->SetWatcher(NULL); delegate_ = NULL; ash::Shell::DeleteInstance(); +#if defined(ENABLE_MESSAGE_CENTER) // The global message center state must be shutdown absent // g_browser_process. message_center::MessageCenter::Shutdown(); +#endif aura::Env::DeleteInstance(); // The keyboard may have created a WebContents. The WebContents is destroyed diff --git a/ash/test/ash_test_helper.cc b/ash/test/ash_test_helper.cc index a2fb390f..c95fe28 100644 --- a/ash/test/ash_test_helper.cc +++ b/ash/test/ash_test_helper.cc @@ -14,7 +14,11 @@ #include "ui/aura/env.h" #include "ui/base/ime/text_input_test_support.h" #include "ui/compositor/scoped_animation_duration_scale_mode.h" + + +#if defined(ENABLE_MESSAGE_CENTER) #include "ui/message_center/message_center.h" +#endif namespace ash { namespace test { @@ -41,9 +45,11 @@ void AshTestHelper::SetUp() { // Creates Shell and hook with Desktop. test_shell_delegate_ = new TestShellDelegate; +#if defined(ENABLE_MESSAGE_CENTER) // Creates MessageCenter since g_browser_process is not created in AshTestBase // tests. message_center::MessageCenter::Initialize(); +#endif ash::Shell::CreateInstance(test_shell_delegate_); Shell* shell = Shell::GetInstance(); test::DisplayManagerTestApi(shell->display_manager()). @@ -56,8 +62,10 @@ void AshTestHelper::TearDown() { // Tear down the shell. Shell::DeleteInstance(); +#if defined(ENABLE_MESSAGE_CENTER) // Remove global message center state. message_center::MessageCenter::Shutdown(); +#endif aura::Env::DeleteInstance(); ui::TextInputTestSupport::Shutdown(); diff --git a/build/common.gypi b/build/common.gypi index 312c915..c61a70e 100644 --- a/build/common.gypi +++ b/build/common.gypi @@ -155,6 +155,13 @@ 'enable_app_list%': 0, }], + # Enable Message Center only on ChromeOS, Windows, and Mac for now. + ['use_ash==1 or OS=="win" or OS=="mac"', { + 'enable_message_center%': 1, + }, { + 'enable_message_center%': 0, + }], + ['use_aura==1 or (OS!="win" and OS!="mac" and OS!="ios" and OS!="android")', { 'use_default_render_theme%': 1, }, { @@ -187,6 +194,7 @@ 'android_webview_build%': '<(android_webview_build)', 'google_tv%': '<(google_tv)', 'enable_app_list%': '<(enable_app_list)', + 'enable_message_center%': '<(enable_message_center)', 'use_default_render_theme%': '<(use_default_render_theme)', 'buildtype%': '<(buildtype)', 'branding%': '<(branding)', @@ -795,6 +803,7 @@ 'gyp_managed_install%': 0, 'google_tv%': '<(google_tv)', 'enable_app_list%': '<(enable_app_list)', + 'enable_message_center%': '<(enable_message_center)', 'use_default_render_theme%': '<(use_default_render_theme)', 'enable_settings_app%': '<(enable_settings_app)', 'use_official_google_api_keys%': '<(use_official_google_api_keys)', @@ -2192,6 +2201,9 @@ ['enable_app_list==1', { 'defines': ['ENABLE_APP_LIST=1'], }], + ['enable_message_center==1', { + 'defines': ['ENABLE_MESSAGE_CENTER=1'], + }], ['enable_settings_app==1', { 'defines': ['ENABLE_SETTINGS_APP=1'], }], diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index a6685b9..3ed9a38 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc @@ -32,9 +32,12 @@ #include "ui/gfx/switches.h" #include "ui/gl/gl_switches.h" #include "ui/keyboard/keyboard_switches.h" -#include "ui/message_center/message_center_switches.h" #include "ui/surface/surface_switches.h" +#if defined(ENABLE_MESSAGE_CENTER) +#include "ui/message_center/message_center_switches.h" +#endif + #if defined(USE_ASH) #include "ash/ash_switches.h" #endif @@ -1294,6 +1297,7 @@ const Experiment kExperiments[] = { ENABLE_DISABLE_VALUE_TYPE(switches::kEnableTouchEditing, switches::kDisableTouchEditing) }, +#if defined(ENABLE_MESSAGE_CENTER) { "enable-rich-notifications", IDS_FLAGS_ENABLE_RICH_NOTIFICATIONS_NAME, @@ -1303,6 +1307,7 @@ const Experiment kExperiments[] = { message_center::switches::kEnableRichNotifications, message_center::switches::kDisableRichNotifications) }, +#endif { "enable-sync-synced-notifications", IDS_FLAGS_ENABLE_SYNCED_NOTIFICATIONS_NAME, diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h index 22b347c..0b4c674 100644 --- a/chrome/browser/browser_process.h +++ b/chrome/browser/browser_process.h @@ -54,9 +54,11 @@ namespace extensions { class EventRouterForwarder; } +#if defined(ENABLE_MESSAGE_CENTER) namespace message_center { class MessageCenter; } +#endif namespace net { class URLRequestContextGetter; @@ -112,8 +114,10 @@ class BrowserProcess { // Returns the manager for desktop notifications. virtual NotificationUIManager* notification_ui_manager() = 0; +#if defined(ENABLE_MESSAGE_CENTER) // MessageCenter is a global list of currently displayed notifications. virtual message_center::MessageCenter* message_center() = 0; +#endif // Returns the state object for the thread that we perform I/O // coordination on (network requests, communication with renderers, diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc index d65c37a..dca205e 100644 --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc @@ -89,7 +89,6 @@ #include "net/socket/client_socket_pool_manager.h" #include "net/url_request/url_request_context_getter.h" #include "ui/base/l10n/l10n_util.h" -#include "ui/message_center/message_center.h" #if defined(ENABLE_CONFIGURATION_POLICY) #include "chrome/browser/policy/browser_policy_connector.h" @@ -97,6 +96,10 @@ #include "chrome/browser/policy/policy_service_stub.h" #endif // defined(ENABLE_CONFIGURATION_POLICY) +#if defined(ENABLE_MESSAGE_CENTER) +#include "ui/message_center/message_center.h" +#endif + #if defined(OS_WIN) #include "base/win/windows_version.h" #include "ui/views/focus/view_storage.h" @@ -200,7 +203,9 @@ BrowserProcessImpl::BrowserProcessImpl( extension_event_router_forwarder_ = new extensions::EventRouterForwarder; ExtensionRendererState::GetInstance()->Init(); +#if defined(ENABLE_MESSAGE_CENTER) message_center::MessageCenter::Initialize(); +#endif } BrowserProcessImpl::~BrowserProcessImpl() { @@ -257,7 +262,9 @@ void BrowserProcessImpl::StartTearDown() { ExtensionRendererState::GetInstance()->Shutdown(); +#if defined(ENABLE_MESSAGE_CENTER) message_center::MessageCenter::Shutdown(); +#endif #if defined(ENABLE_CONFIGURATION_POLICY) // The policy providers managed by |browser_policy_connector_| need to shut @@ -471,10 +478,12 @@ NotificationUIManager* BrowserProcessImpl::notification_ui_manager() { return notification_ui_manager_.get(); } +#if defined(ENABLE_MESSAGE_CENTER) message_center::MessageCenter* BrowserProcessImpl::message_center() { DCHECK(CalledOnValidThread()); return message_center::MessageCenter::Get(); } +#endif policy::BrowserPolicyConnector* BrowserProcessImpl::browser_policy_connector() { DCHECK(CalledOnValidThread()); diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h index 7010aa3..b1b8577 100644 --- a/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h @@ -87,7 +87,9 @@ class BrowserProcessImpl : public BrowserProcess, virtual extensions::EventRouterForwarder* extension_event_router_forwarder() OVERRIDE; virtual NotificationUIManager* notification_ui_manager() OVERRIDE; +#if defined(ENABLE_MESSAGE_CENTER) virtual message_center::MessageCenter* message_center() OVERRIDE; +#endif virtual policy::BrowserPolicyConnector* browser_policy_connector() OVERRIDE; virtual policy::PolicyService* policy_service() OVERRIDE; virtual IconManager* icon_manager() OVERRIDE; diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index 6f75abf..cec8396 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc @@ -128,7 +128,6 @@ #include "ppapi/host/ppapi_host.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" -#include "ui/message_center/message_center_util.h" #include "webkit/glue/webpreferences.h" #include "webkit/plugins/plugin_switches.h" @@ -163,6 +162,10 @@ #include "chrome/browser/captive_portal/captive_portal_tab_helper.h" #endif +#if defined(ENABLE_MESSAGE_CENTER) +#include "ui/message_center/message_center_util.h" +#endif + #if defined(OS_ANDROID) #include "ui/base/ui_base_paths.h" #endif @@ -1224,8 +1227,10 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( if (content::IsThreadedCompositingEnabled()) command_line->AppendSwitch(switches::kEnableThreadedCompositing); +#if defined(ENABLE_MESSAGE_CENTER) if (message_center::IsRichNotificationEnabled()) command_line->AppendSwitch(switches::kDisableHTMLNotifications); +#endif // Please keep this in alphabetical order. static const char* const kSwitchNames[] = { diff --git a/chrome/browser/extensions/api/notifications/notifications_api.cc b/chrome/browser/extensions/api/notifications/notifications_api.cc index e45df6f..19a6626 100644 --- a/chrome/browser/extensions/api/notifications/notifications_api.cc +++ b/chrome/browser/extensions/api/notifications/notifications_api.cc @@ -21,7 +21,6 @@ #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_view_host.h" #include "googleurl/src/gurl.h" -#include "ui/message_center/message_center_util.h" namespace extensions { @@ -142,35 +141,38 @@ NotificationsApiFunction::NotificationsApiFunction() { NotificationsApiFunction::~NotificationsApiFunction() { } +// If older notification runtime is used, MessageCenter is not built. +// Use simpler bridge then, ignoring all options. +#if !defined (ENABLE_MESSAGE_CENTER) void NotificationsApiFunction::CreateNotification( const std::string& id, api::notifications::NotificationOptions* options) { - // If older notification runtime is used, use simpler bridge. - if (!message_center::IsRichNotificationEnabled()) { - message_center::NotificationType type = - MapApiTemplateTypeToType(options->type); - GURL icon_url(UTF8ToUTF16(options->icon_url)); - string16 title(UTF8ToUTF16(options->title)); - string16 message(UTF8ToUTF16(options->message)); - - // Ignore options if running on the old notification runtime. - scoped_ptr<DictionaryValue> optional_fields(new DictionaryValue()); - - NotificationsApiDelegate* api_delegate(new NotificationsApiDelegate( - this, - profile(), - extension_->id(), - id)); // ownership is passed to Notification - Notification notification(type, extension_->url(), icon_url, title, message, - WebKit::WebTextDirectionDefault, - UTF8ToUTF16(extension_->name()), - UTF8ToUTF16(api_delegate->id()), - optional_fields.get(), api_delegate); - - g_browser_process->notification_ui_manager()->Add(notification, profile()); - return; - } + message_center::NotificationType type = + MapApiTemplateTypeToType(options->type); + GURL icon_url(UTF8ToUTF16(options->icon_url)); + string16 title(UTF8ToUTF16(options->title)); + string16 message(UTF8ToUTF16(options->message)); + + // Ignore options if running on the old notification runtime. + scoped_ptr<DictionaryValue> optional_fields(new DictionaryValue()); + + NotificationsApiDelegate* api_delegate(new NotificationsApiDelegate( + this, + profile(), + extension_->id(), + id)); // ownership is passed to Notification + Notification notification(type, extension_->url(), icon_url, title, message, + WebKit::WebTextDirectionDefault, + UTF8ToUTF16(extension_->name()), + UTF8ToUTF16(api_delegate->id()), + optional_fields.get(), api_delegate); + g_browser_process->notification_ui_manager()->Add(notification, profile()); +} +#else // defined(ENABLE_MESSAGE_CENTER) +void NotificationsApiFunction::CreateNotification( + const std::string& id, + api::notifications::NotificationOptions* options) { message_center::NotificationType type = MapApiTemplateTypeToType(options->type); GURL icon_url(UTF8ToUTF16(options->icon_url)); @@ -249,6 +251,7 @@ void NotificationsApiFunction::CreateNotification( g_browser_process->notification_ui_manager()->Add(notification, profile()); } +#endif // !defined(ENABLE_MESSAGE_CENTER) bool NotificationsApiFunction::IsNotificationsApiEnabled() { DesktopNotificationService* service = diff --git a/chrome/browser/extensions/api/notifications/notifications_apitest.cc b/chrome/browser/extensions/api/notifications/notifications_apitest.cc index e84c10a..a251db9 100644 --- a/chrome/browser/extensions/api/notifications/notifications_apitest.cc +++ b/chrome/browser/extensions/api/notifications/notifications_apitest.cc @@ -274,15 +274,12 @@ IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestCSP) { ASSERT_TRUE(RunExtensionTest("notifications/api/csp")) << message_; } -// MessaceCenter-specific test. -#if defined(RUN_MESSAGE_CENTER_TESTS) -#define MAYBE_TestByUser TestByUser -#else -#define MAYBE_TestByUser DISABLED_TestByUser -#endif +#ifdef ENABLE_MESSAGE_CENTER +#if !defined(OS_WIN) || !defined(USE_ASH) -IN_PROC_BROWSER_TEST_F(NotificationsApiTest, MAYBE_TestByUser) { - ASSERT_TRUE(message_center::IsRichNotificationEnabled()); +IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestByUser) { + if (!message_center::IsRichNotificationEnabled()) + return; const extensions::Extension* extension = LoadExtensionAndWait("notifications/api/by_user"); @@ -304,3 +301,6 @@ IN_PROC_BROWSER_TEST_F(NotificationsApiTest, MAYBE_TestByUser) { EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); } } + +#endif +#endif diff --git a/chrome/browser/extensions/extension_crash_recovery_browsertest.cc b/chrome/browser/extensions/extension_crash_recovery_browsertest.cc index 502b43d..287aea9 100644 --- a/chrome/browser/extensions/extension_crash_recovery_browsertest.cc +++ b/chrome/browser/extensions/extension_crash_recovery_browsertest.cc @@ -25,10 +25,13 @@ #include "content/public/browser/render_view_host.h" #include "content/public/browser/web_contents.h" #include "content/public/common/result_codes.h" + +#if defined(ENABLE_MESSAGE_CENTER) +#include "base/command_line.h" #include "ui/message_center/message_center.h" #include "ui/message_center/message_center_switches.h" -#include "ui/message_center/message_center_util.h" #include "ui/message_center/notification_list.h" +#endif using content::NavigationController; using content::WebContents; @@ -114,64 +117,91 @@ class ExtensionCrashRecoveryTestBase : public ExtensionBrowserTest { }; -class MAYBE_ExtensionCrashRecoveryTest +// TODO(rsesek): Implement and enable these tests. http://crbug.com/179904 +#if defined(ENABLE_MESSAGE_CENTER) && !defined(OS_MACOSX) + +class MessageCenterExtensionCrashRecoveryTest : public ExtensionCrashRecoveryTestBase { protected: + virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { + ExtensionCrashRecoveryTestBase::SetUpCommandLine(command_line); + command_line->AppendSwitch( + message_center::switches::kEnableRichNotifications); + } + virtual void AcceptNotification(size_t index) OVERRIDE { - if (message_center::IsRichNotificationEnabled()) { - message_center::MessageCenter* message_center = - message_center::MessageCenter::Get(); - ASSERT_GT(message_center->NotificationCount(), index); - message_center::NotificationList::Notifications::reverse_iterator it = - message_center->GetNotifications().rbegin(); - for (size_t i=0; i < index; ++i) - it++; - std::string id = (*it)->id(); - message_center->ClickOnNotification(id); - } else { - Balloon* balloon = GetNotificationDelegate(index); - ASSERT_TRUE(balloon); - balloon->OnClick(); - } + message_center::MessageCenter* message_center = + message_center::MessageCenter::Get(); + ASSERT_GT(message_center->NotificationCount(), index); + message_center::NotificationList::Notifications::reverse_iterator it = + message_center->GetNotifications().rbegin(); + for (size_t i=0; i < index; ++i) + it++; + std::string id = (*it)->id(); + message_center->ClickOnNotification(id); WaitForExtensionLoad(); } virtual void CancelNotification(size_t index) OVERRIDE { - if (message_center::IsRichNotificationEnabled()) { - message_center::MessageCenter* message_center = - message_center::MessageCenter::Get(); - ASSERT_GT(message_center->NotificationCount(), index); - message_center::NotificationList::Notifications::reverse_iterator it = - message_center->GetNotifications().rbegin(); - for (size_t i=0; i < index; i++) { it++; } - ASSERT_TRUE(g_browser_process->notification_ui_manager()-> - CancelById((*it)->id())); - } else { - Balloon* balloon = GetNotificationDelegate(index); - ASSERT_TRUE(balloon); - std::string id = balloon->notification().notification_id(); - ASSERT_TRUE(g_browser_process->notification_ui_manager()->CancelById(id)); - } + message_center::MessageCenter* message_center = + message_center::MessageCenter::Get(); + ASSERT_GT(message_center->NotificationCount(), index); + message_center::NotificationList::Notifications::reverse_iterator it = + message_center->GetNotifications().rbegin(); + for (size_t i=0; i < index; i++) { it++; } + ASSERT_TRUE( + g_browser_process->notification_ui_manager()->CancelById((*it)->id())); } virtual size_t CountBalloons() OVERRIDE { - if (message_center::IsRichNotificationEnabled()) - return message_center::MessageCenter::Get()->NotificationCount(); + message_center::MessageCenter* message_center = + message_center::MessageCenter::Get(); + return message_center->NotificationCount(); + } +}; + +typedef MessageCenterExtensionCrashRecoveryTest + MAYBE_ExtensionCrashRecoveryTest; + +#else // defined(ENABLED_MESSAGE_CENTER) + +class BalloonExtensionCrashRecoveryTest + : public ExtensionCrashRecoveryTestBase { + protected: + virtual void AcceptNotification(size_t index) OVERRIDE { + Balloon* balloon = GetNotificationDelegate(index); + ASSERT_TRUE(balloon); + balloon->OnClick(); + WaitForExtensionLoad(); + } - return BalloonNotificationUIManager::GetInstanceForTesting()-> - balloon_collection()->GetActiveBalloons().size(); + virtual void CancelNotification(size_t index) OVERRIDE { + Balloon* balloon = GetNotificationDelegate(index); + ASSERT_TRUE(balloon); + std::string id = balloon->notification().notification_id(); + ASSERT_TRUE(g_browser_process->notification_ui_manager()->CancelById(id)); } -private: - Balloon* GetNotificationDelegate(size_t index) { - BalloonNotificationUIManager* manager = - BalloonNotificationUIManager::GetInstanceForTesting(); - BalloonCollection::Balloons balloons = - manager->balloon_collection()->GetActiveBalloons(); - return index < balloons.size() ? balloons.at(index) : NULL; - } + virtual size_t CountBalloons() OVERRIDE { + BalloonNotificationUIManager* manager = + BalloonNotificationUIManager::GetInstanceForTesting(); + BalloonCollection::Balloons balloons = + manager->balloon_collection()->GetActiveBalloons(); + return balloons.size(); + } + private: + Balloon* GetNotificationDelegate(size_t index) { + BalloonNotificationUIManager* manager = + BalloonNotificationUIManager::GetInstanceForTesting(); + BalloonCollection::Balloons balloons = + manager->balloon_collection()->GetActiveBalloons(); + return index < balloons.size() ? balloons.at(index) : NULL; + } }; +typedef BalloonExtensionCrashRecoveryTest MAYBE_ExtensionCrashRecoveryTest; +#endif // defined(ENABLE_MESSAGE_CENTER) + IN_PROC_BROWSER_TEST_F(MAYBE_ExtensionCrashRecoveryTest, Basic) { const size_t size_before = GetExtensionService()->extensions()->size(); const size_t crash_size_before = diff --git a/chrome/browser/extensions/notifications_apitest.cc b/chrome/browser/extensions/notifications_apitest.cc index 858c45e..a1a8b39 100644 --- a/chrome/browser/extensions/notifications_apitest.cc +++ b/chrome/browser/extensions/notifications_apitest.cc @@ -8,6 +8,9 @@ #include "chrome/browser/notifications/desktop_notification_service_factory.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" + +#if defined(ENABLE_MESSAGE_CENTER) + #include "chrome/browser/extensions/extension_process_manager.h" #include "chrome/browser/extensions/lazy_background_page_test_util.h" #include "chrome/common/chrome_switches.h" @@ -15,10 +18,28 @@ #include "ui/message_center/message_center_switches.h" #include "ui/message_center/message_center_util.h" -class NotificationIdleTest : public ExtensionApiTest { +class RichWebkitNotificationTest : public ExtensionApiTest { protected: virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { ExtensionApiTest::SetUpCommandLine(command_line); + command_line->AppendSwitch( + message_center::switches::kEnableRichNotifications); + } +}; + +class DisabledRichWebkitNotificationTest : public ExtensionApiTest { + protected: + virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { + ExtensionApiTest::SetUpCommandLine(command_line); + command_line->AppendSwitch( + message_center::switches::kDisableRichNotifications); + } +}; + +class NotificationIdleTest : public RichWebkitNotificationTest { + protected: + virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { + RichWebkitNotificationTest::SetUpCommandLine(command_line); command_line->AppendSwitchASCII(switches::kEventPageIdleTime, "1"); command_line->AppendSwitchASCII(switches::kEventPageSuspendingTime, "1"); @@ -35,44 +56,51 @@ class NotificationIdleTest : public ExtensionApiTest { } }; +#endif + // TODO(kbr): remove: http://crbug.com/222296 #if defined(OS_MACOSX) #import "base/mac/mac_util.h" #endif IN_PROC_BROWSER_TEST_F(ExtensionApiTest, NotificationsNoPermission) { +#if defined(OS_LINUX) && defined(TOOLKIT_VIEWS) + // Notifications not supported on linux/views yet. +#else ASSERT_TRUE(RunExtensionTest("notifications/has_not_permission")) << message_; +#endif } -// This test verifies that on RichNotification-enabled platforms HTML -// notificaitons are disabled. -#if defined(RUN_MESSAGE_CENTER_TESTS) -#define MAYBE_NoHTMLNotifications NoHTMLNotifications -#else -#define MAYBE_NoHTMLNotifications DISABLED_NoHTMLNotifications -#endif -IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_NoHTMLNotifications) { - ASSERT_TRUE(message_center::IsRichNotificationEnabled()); +#if defined(ENABLE_MESSAGE_CENTER) +IN_PROC_BROWSER_TEST_F(RichWebkitNotificationTest, NoHTMLNotifications) { ASSERT_TRUE(RunExtensionTest("notifications/no_html")) << message_; } -// This test verifies that on platforms other then RichNotification-enabled -// HTML notificaitons are enabled. -#if defined(RUN_MESSAGE_CENTER_TESTS) -#define MAYBE_HasHTMLNotificationsAndManifestPermission \ - DISABLED_HasHTMLNotificationsAndManifestPermission -#else -#define MAYBE_HasHTMLNotificationsAndManifestPermission \ - HasHTMLNotificationsAndManifestPermission +#if !defined(OS_CHROMEOS) +// HTML notifications fail on ChromeOS whether or not rich notifications +// are enabled. +IN_PROC_BROWSER_TEST_F(DisabledRichWebkitNotificationTest, + HasHTMLNotifications) { + ASSERT_FALSE(message_center::IsRichNotificationEnabled()); + ASSERT_TRUE(RunExtensionTest("notifications/has_permission_manifest")) + << message_; +} #endif + +#elif !defined(OS_LINUX) || !defined(TOOLKIT_VIEWS) +// Notifications not supported on linux/views yet. IN_PROC_BROWSER_TEST_F(ExtensionApiTest, - MAYBE_HasHTMLNotificationsAndManifestPermission) { - ASSERT_FALSE(message_center::IsRichNotificationEnabled()); + NotificationsHasPermissionManifest) { ASSERT_TRUE(RunExtensionTest("notifications/has_permission_manifest")) << message_; } +#endif IN_PROC_BROWSER_TEST_F(ExtensionApiTest, NotificationsHasPermission) { +#if defined(OS_LINUX) && defined(TOOLKIT_VIEWS) + // Notifications not supported on linux/views yet. +#else + #if defined(OS_MACOSX) // TODO(kbr): re-enable: http://crbug.com/222296 if (base::mac::IsOSMountainLionOrLater()) @@ -84,16 +112,11 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, NotificationsHasPermission) { "chrome-extension://peoadpeiejnhkmpaakpnompolbglelel")); ASSERT_TRUE(RunExtensionTest("notifications/has_permission_prefs")) << message_; -} - - // MessaceCenter-specific test. -#if defined(RUN_MESSAGE_CENTER_TESTS) -#define MAYBE_NotificationsAllowUnload NotificationsAllowUnload -#else -#define MAYBE_NotificationsAllowUnload DISABLED_NotificationsAllowUnload #endif +} -IN_PROC_BROWSER_TEST_F(NotificationIdleTest, MAYBE_NotificationsAllowUnload) { +#if defined(ENABLE_MESSAGE_CENTER) +IN_PROC_BROWSER_TEST_F(NotificationIdleTest, NotificationsAllowUnload) { const extensions::Extension* extension = LoadExtensionAndWait("notifications/api/unload"); ASSERT_TRUE(extension) << message_; @@ -103,3 +126,4 @@ IN_PROC_BROWSER_TEST_F(NotificationIdleTest, MAYBE_NotificationsAllowUnload) { extensions::ExtensionSystem::Get(profile())->process_manager(); EXPECT_FALSE(pm->GetBackgroundHostForExtension(last_loaded_extension_id_)); } +#endif diff --git a/chrome/browser/notifications/desktop_notification_service.cc b/chrome/browser/notifications/desktop_notification_service.cc index 54b3d05..e2127ea 100644 --- a/chrome/browser/notifications/desktop_notification_service.cc +++ b/chrome/browser/notifications/desktop_notification_service.cc @@ -43,7 +43,6 @@ #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" -#include "ui/message_center/message_center_util.h" #include "ui/message_center/notifier_settings.h" #include "ui/webui/web_ui_util.h" @@ -58,6 +57,15 @@ const ContentSetting kDefaultSetting = CONTENT_SETTING_ASK; namespace { +bool UsesTextNotifications() { +#if defined(USE_ASH) + return true; +#else + return + g_browser_process->notification_ui_manager()->DelegatesToMessageCenter(); +#endif +} + void ToggleListPrefItem(PrefService* prefs, const char* key, const std::string& item, bool flag) { ListPrefUpdate update(prefs, key); @@ -231,10 +239,12 @@ bool NotificationPermissionInfoBarDelegate::Cancel() { // static void DesktopNotificationService::RegisterUserPrefs( user_prefs::PrefRegistrySyncable* registry) { +#if defined(OS_CHROMEOS) || defined(ENABLE_MESSAGE_CENTER) registry->RegisterListPref(prefs::kMessageCenterDisabledExtensionIds, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterListPref(prefs::kMessageCenterDisabledSystemComponentIds, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); +#endif } // static @@ -297,7 +307,7 @@ std::string DesktopNotificationService::AddNotification( const string16& replace_id, NotificationDelegate* delegate, Profile* profile) { - if (message_center::IsRichNotificationEnabled()) { + if (UsesTextNotifications()) { // For message center create a non-HTML notification with |icon_url|. Notification notification(origin_url, icon_url, title, message, WebKit::WebTextDirectionDefault, @@ -325,7 +335,7 @@ std::string DesktopNotificationService::AddIconNotification( NotificationDelegate* delegate, Profile* profile) { - if (message_center::IsRichNotificationEnabled()) { + if (UsesTextNotifications()) { // For message center create a non-HTML notification with |icon|. Notification notification(origin_url, icon, title, message, WebKit::WebTextDirectionDefault, @@ -352,6 +362,7 @@ DesktopNotificationService::DesktopNotificationService( NotificationUIManager* ui_manager) : profile_(profile), ui_manager_(ui_manager) { +#if defined(ENABLE_MESSAGE_CENTER) OnDisabledExtensionIdsChanged(); OnDisabledSystemComponentIdsChanged(); disabled_extension_id_pref_.Init( @@ -366,9 +377,13 @@ DesktopNotificationService::DesktopNotificationService( base::Bind( &DesktopNotificationService::OnDisabledSystemComponentIdsChanged, base::Unretained(this))); +#endif } DesktopNotificationService::~DesktopNotificationService() { +#if defined(ENABLE_MESSAGE_CENTER) + disabled_extension_id_pref_.Destroy(); +#endif } void DesktopNotificationService::GrantPermission(const GURL& origin) { @@ -577,6 +592,7 @@ void DesktopNotificationService::OnDisabledExtensionIdsChanged() { &disabled_extension_ids_); } +#if defined(ENABLE_MESSAGE_CENTER) bool DesktopNotificationService::IsSystemComponentEnabled( message_center::Notifier::SystemComponentNotifierType type) { return disabled_system_component_ids_.find(message_center::ToString(type)) == @@ -600,6 +616,7 @@ void DesktopNotificationService::OnDisabledSystemComponentIdsChanged() { prefs::kMessageCenterDisabledSystemComponentIds, &disabled_system_component_ids_); } +#endif WebKit::WebNotificationPresenter::Permission DesktopNotificationService::HasPermission(const GURL& origin) { diff --git a/chrome/browser/notifications/desktop_notifications_unittest.cc b/chrome/browser/notifications/desktop_notifications_unittest.cc index dbf7e1c..50caecc 100644 --- a/chrome/browser/notifications/desktop_notifications_unittest.cc +++ b/chrome/browser/notifications/desktop_notifications_unittest.cc @@ -15,7 +15,10 @@ #include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile_manager.h" #include "content/public/common/show_desktop_notification_params.h" + +#if defined(ENABLE_MESSAGE_CENTER) #include "ui/message_center/message_center.h" +#endif #if defined(USE_ASH) #include "ash/shell.h" @@ -113,9 +116,11 @@ void DesktopNotificationsTest::SetUp() { WebKit::initialize(webkit_platform_support_.Get()); ui::ScopedAnimationDurationScaleMode normal_duration_mode( ui::ScopedAnimationDurationScaleMode::ZERO_DURATION); +#if defined(ENABLE_MESSAGE_CENTER) // The message center is notmally initialized on |g_browser_process| which // is not created for these tests. message_center::MessageCenter::Initialize(); +#endif // MockBalloonCollection retrieves information about the screen on creation. // So it is necessary to make sure the desktop gets created first. ash::Shell::CreateInstance(new ash::test::TestShellDelegate); @@ -138,9 +143,11 @@ void DesktopNotificationsTest::TearDown() { #if defined(USE_ASH) active_desktop_monitor_.reset(); ash::Shell::DeleteInstance(); +#if defined(ENABLE_MESSAGE_CENTER) // The message center is notmally shutdown on |g_browser_process| which // is not created for these tests. message_center::MessageCenter::Shutdown(); +#endif aura::Env::DeleteInstance(); WebKit::shutdown(); #endif diff --git a/chrome/browser/notifications/message_center_notifications_browsertest.cc b/chrome/browser/notifications/message_center_notifications_browsertest.cc index 71cc0a6..556eb5a 100644 --- a/chrome/browser/notifications/message_center_notifications_browsertest.cc +++ b/chrome/browser/notifications/message_center_notifications_browsertest.cc @@ -16,8 +16,10 @@ #include "chrome/browser/ui/browser.h" #include "chrome/test/base/in_process_browser_test.h" #include "ui/message_center/message_center.h" + +#if defined(ENABLE_MESSAGE_CENTER) #include "ui/message_center/message_center_switches.h" -#include "ui/message_center/message_center_util.h" +#endif class MessageCenterNotificationsTest : public InProcessBrowserTest { public: @@ -96,36 +98,19 @@ class MessageCenterNotificationsTest : public InProcessBrowserTest { IN_PROC_BROWSER_TEST_F(MessageCenterNotificationsTest, RetrieveBaseParts) { // Make sure comamnd-line switch has an effect. - EXPECT_EQ(NotificationUIManager::DelegatesToMessageCenter(), - message_center::IsRichNotificationEnabled()); + EXPECT_TRUE(NotificationUIManager::DelegatesToMessageCenter()); EXPECT_TRUE(manager()); EXPECT_TRUE(message_center()); } -// MessaceCenter-specific test. -#if defined(RUN_MESSAGE_CENTER_TESTS) -#define MAYBE_BasicAddCancel BasicAddCancel -#else -#define MAYBE_BasicAddCancel DISABLED_BasicAddCancel -#endif - -IN_PROC_BROWSER_TEST_F(MessageCenterNotificationsTest, MAYBE_BasicAddCancel) { - EXPECT_TRUE(NotificationUIManager::DelegatesToMessageCenter()); +IN_PROC_BROWSER_TEST_F(MessageCenterNotificationsTest, BasicAddCancel) { manager()->Add(CreateTestNotification("hey"), profile()); EXPECT_EQ(1u, message_center()->NotificationCount()); manager()->CancelById("hey"); EXPECT_EQ(0u, message_center()->NotificationCount()); } -// MessaceCenter-specific test. -#if defined(RUN_MESSAGE_CENTER_TESTS) -#define MAYBE_BasicDelegate BasicDelegate -#else -#define MAYBE_BasicDelegate DISABLED_BasicDelegate -#endif - -IN_PROC_BROWSER_TEST_F(MessageCenterNotificationsTest, MAYBE_BasicDelegate) { - EXPECT_TRUE(NotificationUIManager::DelegatesToMessageCenter()); +IN_PROC_BROWSER_TEST_F(MessageCenterNotificationsTest, BasicDelegate) { TestDelegate* delegate; manager()->Add(CreateTestNotification("hey", &delegate), profile()); // Verify that delegate accumulated correct log of events. @@ -136,16 +121,7 @@ IN_PROC_BROWSER_TEST_F(MessageCenterNotificationsTest, MAYBE_BasicDelegate) { delegate->Release(); } -// MessaceCenter-specific test. -#if defined(RUN_MESSAGE_CENTER_TESTS) -#define MAYBE_ButtonClickedDelegate ButtonClickedDelegate -#else -#define MAYBE_ButtonClickedDelegate DISABLED_ButtonClickedDelegate -#endif - -IN_PROC_BROWSER_TEST_F(MessageCenterNotificationsTest, - MAYBE_ButtonClickedDelegate) { - EXPECT_TRUE(NotificationUIManager::DelegatesToMessageCenter()); +IN_PROC_BROWSER_TEST_F(MessageCenterNotificationsTest, ButtonClickedDelegate) { TestDelegate* delegate; manager()->Add(CreateTestNotification("n", &delegate), profile()); message_center()->ClickOnNotificationButton("n", 1); diff --git a/chrome/browser/notifications/notification.cc b/chrome/browser/notifications/notification.cc index b45bf1e..1077b04 100644 --- a/chrome/browser/notifications/notification.cc +++ b/chrome/browser/notifications/notification.cc @@ -127,7 +127,9 @@ Notification& Notification::operator=(const Notification& notification) { } void Notification::DisableTimeout() { +#if defined(ENABLE_MESSAGE_CENTER) if (!optional_fields_.get()) optional_fields_.reset(new base::DictionaryValue()); optional_fields_->SetBoolean(message_center::kPrivateNeverTimeoutKey, true); +#endif } diff --git a/chrome/browser/notifications/notification_browsertest.cc b/chrome/browser/notifications/notification_browsertest.cc index 4a317965..f524d34 100644 --- a/chrome/browser/notifications/notification_browsertest.cc +++ b/chrome/browser/notifications/notification_browsertest.cc @@ -7,7 +7,6 @@ #include "base/bind.h" #include "base/callback.h" -#include "base/command_line.h" #include "base/compiler_specific.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h" @@ -45,16 +44,27 @@ #include "net/test/spawned_test_server/spawned_test_server.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/window_open_disposition.h" -#include "ui/message_center/message_center.h" -#include "ui/message_center/message_center_observer.h" -#include "ui/message_center/message_center_switches.h" -#include "ui/message_center/message_center_util.h" // TODO(kbr): remove: http://crbug.com/222296 #if defined(OS_MACOSX) #import "base/mac/mac_util.h" #endif +#if defined(ENABLE_MESSAGE_CENTER) +#include "base/command_line.h" +#include "ui/message_center/message_center.h" +#include "ui/message_center/message_center_observer.h" +#include "ui/message_center/message_center_switches.h" +#endif + +// Mac implementation of message_center is incomplete. The code builds, but +// the tests do not pass <http://crbug.com/179904>. +#if defined(ENABLE_MESSAGE_CENTER) && !defined(OS_MACOSX) +#define ENABLE_MESSAGE_CENTER_TESTING 1 +#else +#define ENABLE_MESSAGE_CENTER_TESTING 0 +#endif + namespace { const char kExpectedIconUrl[] = "files/notifications/no_such_file.png"; @@ -65,15 +75,9 @@ enum InfobarAction { DENY, }; -class NotificationChangeObserver { -public: - virtual ~NotificationChangeObserver() {} - virtual bool Wait() = 0; -}; - +#if ENABLE_MESSAGE_CENTER_TESTING class MessageCenterChangeObserver - : public message_center::MessageCenterObserver, - public NotificationChangeObserver { + : public message_center::MessageCenterObserver { public: MessageCenterChangeObserver() : notification_received_(false) { @@ -84,8 +88,7 @@ class MessageCenterChangeObserver message_center::MessageCenter::Get()->RemoveObserver(this); } - // NotificationChangeObserver: - virtual bool Wait() OVERRIDE { + bool Wait() { if (notification_received_) return true; @@ -94,17 +97,15 @@ class MessageCenterChangeObserver return notification_received_; } - // message_center::MessageCenterObserver: + // overridden from message_center::MessageCenterObserver: virtual void OnNotificationAdded( const std::string& notification_id) OVERRIDE { OnMessageCenterChanged(); } - virtual void OnNotificationRemoved(const std::string& notification_id, bool by_user) OVERRIDE { OnMessageCenterChanged(); } - virtual void OnNotificationUpdated( const std::string& notification_id) OVERRIDE { OnMessageCenterChanged(); @@ -122,9 +123,11 @@ class MessageCenterChangeObserver DISALLOW_COPY_AND_ASSIGN(MessageCenterChangeObserver); }; -class NotificationBalloonChangeObserver - : public content::NotificationObserver, - public NotificationChangeObserver { +typedef MessageCenterChangeObserver NotificationChangeObserver; + +#else + +class NotificationBalloonChangeObserver : public content::NotificationObserver { public: NotificationBalloonChangeObserver() : collection_(BalloonNotificationUIManager::GetInstanceForTesting()-> @@ -146,8 +149,7 @@ class NotificationBalloonChangeObserver collection_->set_on_collection_changed_callback(base::Closure()); } - // NotificationChangeObserver: - virtual bool Wait() OVERRIDE { + bool Wait() { if (!Check()) { running_ = true; message_loop_runner_ = new content::MessageLoopRunner; @@ -176,7 +178,7 @@ class NotificationBalloonChangeObserver Check(); } - // content::NotificationObserver: + // Overridden from content::NotificationObserver: virtual void Observe(int type, const content::NotificationSource& source, const content::NotificationDetails& details) OVERRIDE { @@ -199,6 +201,10 @@ class NotificationBalloonChangeObserver DISALLOW_COPY_AND_ASSIGN(NotificationBalloonChangeObserver); }; +typedef NotificationBalloonChangeObserver NotificationChangeObserver; + +#endif // ENABLE_MESSAGE_CENTER + } // namespace class NotificationsTest : public InProcessBrowserTest { @@ -211,13 +217,15 @@ class NotificationsTest : public InProcessBrowserTest { int GetNotificationCount(); - NotificationChangeObserver* CreateObserver(); - void CloseBrowserWindow(Browser* browser); void CrashTab(Browser* browser, int index); +#if ENABLE_MESSAGE_CENTER_TESTING + virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE; +#else const std::deque<Balloon*>& GetActiveBalloons(); void CrashNotification(Balloon* balloon); bool CloseNotificationAndWait(const Notification& notification); +#endif void SetDefaultPermissionSetting(ContentSetting setting); void DenyOrigin(const GURL& origin); @@ -262,19 +270,12 @@ void NotificationsTest::SetUpInProcessBrowserTestFixture() { } int NotificationsTest::GetNotificationCount() { - if (message_center::IsRichNotificationEnabled()) { - return message_center::MessageCenter::Get()->NotificationCount(); - } else { - return BalloonNotificationUIManager::GetInstanceForTesting()-> - balloon_collection()->GetActiveBalloons().size(); - } -} - -NotificationChangeObserver* NotificationsTest::CreateObserver() { - if (message_center::IsRichNotificationEnabled()) - return new MessageCenterChangeObserver(); - else - return new NotificationBalloonChangeObserver(); +#if ENABLE_MESSAGE_CENTER_TESTING + return message_center::MessageCenter::Get()->NotificationCount(); +#else + return BalloonNotificationUIManager::GetInstanceForTesting()-> + balloon_collection()->GetActiveBalloons().size(); +#endif // ENABLE_MESSAGE_CENTER_TESTING } void NotificationsTest::CloseBrowserWindow(Browser* browser) { @@ -289,6 +290,15 @@ void NotificationsTest::CrashTab(Browser* browser, int index) { content::CrashTab(browser->tab_strip_model()->GetWebContentsAt(index)); } +#if ENABLE_MESSAGE_CENTER_TESTING +// Overriden from InProcessBrowserTest: +void NotificationsTest::SetUpCommandLine(CommandLine* command_line) { + InProcessBrowserTest::SetUpCommandLine(command_line); + command_line->AppendSwitch( + message_center::switches::kEnableRichNotifications); +} +#else + const std::deque<Balloon*>& NotificationsTest::GetActiveBalloons() { return BalloonNotificationUIManager::GetInstanceForTesting()-> balloon_collection()->GetActiveBalloons(); @@ -300,14 +310,16 @@ void NotificationsTest::CrashNotification(Balloon* balloon) { bool NotificationsTest::CloseNotificationAndWait( const Notification& notification) { - scoped_ptr<NotificationChangeObserver> observer(CreateObserver()); + NotificationChangeObserver observer; bool success = g_browser_process->notification_ui_manager()-> CancelById(notification.notification_id()); if (success) - return observer->Wait(); + return observer.Wait(); return false; } +#endif // !ENABLE_MESSAGE_CENTER_TESTING + void NotificationsTest::SetDefaultPermissionSetting(ContentSetting setting) { DesktopNotificationService* service = GetDesktopNotificationService(); service->SetDefaultContentSetting(setting); @@ -353,14 +365,14 @@ std::string NotificationsTest::CreateNotification( "createNotification('%s', '%s', '%s', '%s');", icon, title, body, replace_id); - scoped_ptr<NotificationChangeObserver> observer(CreateObserver()); + NotificationChangeObserver observer; std::string result; bool success = content::ExecuteScriptAndExtractString( browser->tab_strip_model()->GetActiveWebContents(), script, &result); if (success && result != "-1" && wait_for_new_balloon) - success = observer->Wait(); + success = observer.Wait(); EXPECT_TRUE(success); return result; @@ -398,7 +410,7 @@ bool NotificationsTest::CancelNotification( "cancelNotification('%s');", notification_id); - scoped_ptr<NotificationChangeObserver> observer(CreateObserver()); + NotificationChangeObserver observer; std::string result; bool success = content::ExecuteScriptAndExtractString( browser->tab_strip_model()->GetActiveWebContents(), @@ -406,7 +418,7 @@ bool NotificationsTest::CancelNotification( &result); if (!success || result != "1") return false; - return observer->Wait(); + return observer.Wait(); } bool NotificationsTest::PerformActionOnInfobar( @@ -530,20 +542,20 @@ IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCreateSimpleNotification) { GURL EXPECTED_ICON_URL = test_server()->GetURL(kExpectedIconUrl); ASSERT_EQ(1, GetNotificationCount()); - if (message_center::IsRichNotificationEnabled()) { - message_center::NotificationList::Notifications notifications = - message_center::MessageCenter::Get()->GetNotifications(); - EXPECT_EQ(ASCIIToUTF16("My Title"), (*notifications.rbegin())->title()); - EXPECT_EQ(ASCIIToUTF16("My Body"), (*notifications.rbegin())->message()); - } else { - const std::deque<Balloon*>& balloons = GetActiveBalloons(); - ASSERT_EQ(1U, balloons.size()); - Balloon* balloon = balloons[0]; - const Notification& notification = balloon->notification(); - EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url()); - EXPECT_EQ(ASCIIToUTF16("My Title"), notification.title()); - EXPECT_EQ(ASCIIToUTF16("My Body"), notification.body()); - } +#if ENABLE_MESSAGE_CENTER_TESTING + message_center::NotificationList::Notifications notifications = + message_center::MessageCenter::Get()->GetNotifications(); + EXPECT_EQ(ASCIIToUTF16("My Title"), (*notifications.rbegin())->title()); + EXPECT_EQ(ASCIIToUTF16("My Body"), (*notifications.rbegin())->message()); +#else + const std::deque<Balloon*>& balloons = GetActiveBalloons(); + ASSERT_EQ(1U, balloons.size()); + Balloon* balloon = balloons[0]; + const Notification& notification = balloon->notification(); + EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url()); + EXPECT_EQ(ASCIIToUTF16("My Title"), notification.title()); + EXPECT_EQ(ASCIIToUTF16("My Body"), notification.body()); +#endif } IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCloseNotification) { @@ -561,16 +573,16 @@ IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCloseNotification) { EXPECT_NE("-1", result); ASSERT_EQ(1, GetNotificationCount()); - if (message_center::IsRichNotificationEnabled()) { - message_center::NotificationList::Notifications notifications = - message_center::MessageCenter::Get()->GetNotifications(); - message_center::MessageCenter::Get()->RemoveNotification( - (*notifications.rbegin())->id(), - true); // by_user - } else { - const std::deque<Balloon*>& balloons = GetActiveBalloons(); - EXPECT_TRUE(CloseNotificationAndWait(balloons[0]->notification())); - } +#if ENABLE_MESSAGE_CENTER_TESTING + message_center::NotificationList::Notifications notifications = + message_center::MessageCenter::Get()->GetNotifications(); + message_center::MessageCenter::Get()->RemoveNotification( + (*notifications.rbegin())->id(), + true); // by_user +#else + const std::deque<Balloon*>& balloons = GetActiveBalloons(); + EXPECT_TRUE(CloseNotificationAndWait(balloons[0]->notification())); +#endif // ENABLE_MESSAGE_CENTER_TESTING ASSERT_EQ(0, GetNotificationCount()); } @@ -753,16 +765,16 @@ IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCreateDenyCloseNotifications) { ASSERT_TRUE(CheckOriginInSetting(settings, test_page_url_.GetOrigin())); EXPECT_EQ(1, GetNotificationCount()); - if (message_center::IsRichNotificationEnabled()) { - message_center::NotificationList::Notifications notifications = - message_center::MessageCenter::Get()->GetNotifications(); - message_center::MessageCenter::Get()->RemoveNotification( - (*notifications.rbegin())->id(), - true); // by_user - } else { - const std::deque<Balloon*>& balloons = GetActiveBalloons(); - ASSERT_TRUE(CloseNotificationAndWait(balloons[0]->notification())); - } +#if ENABLE_MESSAGE_CENTER_TESTING + message_center::NotificationList::Notifications notifications = + message_center::MessageCenter::Get()->GetNotifications(); + message_center::MessageCenter::Get()->RemoveNotification( + (*notifications.rbegin())->id(), + true); // by_user +#else + const std::deque<Balloon*>& balloons = GetActiveBalloons(); + ASSERT_TRUE(CloseNotificationAndWait(balloons[0]->notification())); +#endif // ENABLE_MESSAGE_CENTER_TESTING ASSERT_EQ(0, GetNotificationCount()); } @@ -824,11 +836,9 @@ IN_PROC_BROWSER_TEST_F(NotificationsTest, CrashTab(browser(), 0); } +// Notifications don't have their own process with the message center. +#if !ENABLE_MESSAGE_CENTER_TESTING IN_PROC_BROWSER_TEST_F(NotificationsTest, TestKillNotificationProcess) { - // Notifications don't have their own process with the message center. - if (message_center::IsRichNotificationEnabled()) - return; - #if defined(OS_MACOSX) // TODO(kbr): re-enable: http://crbug.com/222296 if (base::mac::IsOSMountainLionOrLater()) @@ -845,6 +855,7 @@ IN_PROC_BROWSER_TEST_F(NotificationsTest, TestKillNotificationProcess) { CrashNotification(balloons[0]); ASSERT_EQ(0, GetNotificationCount()); } +#endif IN_PROC_BROWSER_TEST_F(NotificationsTest, TestIncognitoNotification) { #if defined(OS_MACOSX) @@ -947,20 +958,20 @@ IN_PROC_BROWSER_TEST_F(NotificationsTest, TestNotificationReplacement) { browser(), false, "no_such_file.png", "Title2", "Body2", "chat"); EXPECT_NE("-1", result); - if (message_center::IsRichNotificationEnabled()) { - ASSERT_EQ(1, GetNotificationCount()); - message_center::NotificationList::Notifications notifications = - message_center::MessageCenter::Get()->GetNotifications(); - EXPECT_EQ(ASCIIToUTF16("Title2"), (*notifications.rbegin())->title()); - EXPECT_EQ(ASCIIToUTF16("Body2"), (*notifications.rbegin())->message()); - } else { - const std::deque<Balloon*>& balloons = GetActiveBalloons(); - ASSERT_EQ(1U, balloons.size()); - Balloon* balloon = balloons[0]; - const Notification& notification = balloon->notification(); - GURL EXPECTED_ICON_URL = test_server()->GetURL(kExpectedIconUrl); - EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url()); - EXPECT_EQ(ASCIIToUTF16("Title2"), notification.title()); - EXPECT_EQ(ASCIIToUTF16("Body2"), notification.body()); - } +#if ENABLE_MESSAGE_CENTER_TESTING + ASSERT_EQ(1, GetNotificationCount()); + message_center::NotificationList::Notifications notifications = + message_center::MessageCenter::Get()->GetNotifications(); + EXPECT_EQ(ASCIIToUTF16("Title2"), (*notifications.rbegin())->title()); + EXPECT_EQ(ASCIIToUTF16("Body2"), (*notifications.rbegin())->message()); +#else + const std::deque<Balloon*>& balloons = GetActiveBalloons(); + ASSERT_EQ(1U, balloons.size()); + Balloon* balloon = balloons[0]; + const Notification& notification = balloon->notification(); + GURL EXPECTED_ICON_URL = test_server()->GetURL(kExpectedIconUrl); + EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url()); + EXPECT_EQ(ASCIIToUTF16("Title2"), notification.title()); + EXPECT_EQ(ASCIIToUTF16("Body2"), notification.body()); +#endif } diff --git a/chrome/browser/notifications/notification_ui_manager.cc b/chrome/browser/notifications/notification_ui_manager.cc index 1b1d62dc..a562557 100644 --- a/chrome/browser/notifications/notification_ui_manager.cc +++ b/chrome/browser/notifications/notification_ui_manager.cc @@ -4,10 +4,13 @@ #include "chrome/browser/notifications/notification_ui_manager.h" -#include "chrome/browser/browser_process.h" #include "chrome/browser/notifications/balloon_notification_ui_manager.h" + +#if defined(ENABLE_MESSAGE_CENTER) +#include "chrome/browser/browser_process.h" #include "chrome/browser/notifications/message_center_notification_manager.h" #include "ui/message_center/message_center_util.h" +#endif // static bool NotificationUIManager::DelegatesToMessageCenter() { @@ -16,17 +19,20 @@ bool NotificationUIManager::DelegatesToMessageCenter() { // the message center. #if defined(OS_CHROMEOS) return true; -#endif +#elif defined(ENABLE_MESSAGE_CENTER) return message_center::IsRichNotificationEnabled(); +#endif + return false; } #if !defined(OS_MACOSX) // static NotificationUIManager* NotificationUIManager::Create(PrefService* local_state) { +#if defined(ENABLE_MESSAGE_CENTER) if (DelegatesToMessageCenter()) return new MessageCenterNotificationManager( g_browser_process->message_center()); - +#endif BalloonNotificationUIManager* balloon_manager = new BalloonNotificationUIManager(local_state); balloon_manager->SetBalloonCollection(BalloonCollection::Create()); diff --git a/chrome/browser/notifications/notification_ui_manager_mac.mm b/chrome/browser/notifications/notification_ui_manager_mac.mm index 59339ed..7e1af00 100644 --- a/chrome/browser/notifications/notification_ui_manager_mac.mm +++ b/chrome/browser/notifications/notification_ui_manager_mac.mm @@ -7,11 +7,14 @@ #include "base/mac/cocoa_protocols.h" #include "base/mac/mac_util.h" #include "base/strings/sys_string_conversions.h" -#include "chrome/browser/browser_process.h" #include "chrome/browser/notifications/notification.h" #include "chrome/browser/notifications/balloon_notification_ui_manager.h" + +#if defined(ENABLE_MESSAGE_CENTER) +#include "chrome/browser/browser_process.h" #include "chrome/browser/notifications/message_center_notification_manager.h" #include "ui/message_center/message_center_util.h" +#endif @class NSUserNotificationCenter; @@ -97,12 +100,14 @@ NotificationUIManagerMac::ControllerNotification::~ControllerNotification() { // static NotificationUIManager* NotificationUIManager::Create(PrefService* local_state) { +#if defined(ENABLE_MESSAGE_CENTER) // TODO(rsesek): Remove this function and merge it with the one in // notification_ui_manager.cc. if (DelegatesToMessageCenter()) { return new MessageCenterNotificationManager( g_browser_process->message_center()); } +#endif BalloonNotificationUIManager* balloon_manager = NULL; if (base::mac::IsOSMountainLionOrLater()) diff --git a/chrome/browser/notifications/sync_notifier/chrome_notifier_service_unittest.cc b/chrome/browser/notifications/sync_notifier/chrome_notifier_service_unittest.cc index 0fee623..bb7182b 100644 --- a/chrome/browser/notifications/sync_notifier/chrome_notifier_service_unittest.cc +++ b/chrome/browser/notifications/sync_notifier/chrome_notifier_service_unittest.cc @@ -18,7 +18,6 @@ #include "sync/protocol/sync.pb.h" #include "sync/protocol/synced_notification_specifics.pb.h" #include "testing/gtest/include/gtest/gtest.h" -#include "ui/message_center/message_center_util.h" using sync_pb::SyncedNotificationSpecifics; using sync_pb::EntitySpecifics; @@ -95,8 +94,12 @@ const char kContainedMessage3[] = "Let's play starcraft tonight on the LAN."; const int64 kFakeCreationTime = 42; const int kProtobufPriority = static_cast<int>( sync_pb::CoalescedSyncedNotification_Priority_LOW); +#if defined (ENABLE_MESSAGE_CENTER) const int kNotificationPriority = static_cast<int>( message_center::LOW_PRIORITY); +#else // ENABLE_MESSAGE_CENTER +const int kNotificationPriority = 1; +#endif // ENABLE_MESSAGE_CENTER const sync_pb::CoalescedSyncedNotification_ReadState kDismissed = sync_pb::CoalescedSyncedNotification_ReadState_DISMISSED; const sync_pb::CoalescedSyncedNotification_ReadState kUnread = diff --git a/chrome/browser/notifications/sync_notifier/synced_notification.cc b/chrome/browser/notifications/sync_notifier/synced_notification.cc index 813846d..23883b2 100644 --- a/chrome/browser/notifications/sync_notifier/synced_notification.cc +++ b/chrome/browser/notifications/sync_notifier/synced_notification.cc @@ -13,14 +13,20 @@ #include "chrome/browser/notifications/sync_notifier/chrome_notifier_delegate.h" #include "sync/protocol/sync.pb.h" #include "sync/protocol/synced_notification_specifics.pb.h" +#if defined(ENABLE_MESSAGE_CENTER) #include "ui/message_center/message_center_util.h" #include "ui/message_center/notification_types.h" +#endif // ENABLE_MESSAGE_CENTER namespace { const char kExtensionScheme[] = "chrome-extension://"; bool UseRichNotifications() { +#if defined(ENABLE_MESSAGE_CENTER) return message_center::IsRichNotificationEnabled(); +#else // ENABLE_MESSAGE_CENTER + return false; +#endif // ENABLE_MESSAGE_CENTER } } // namespace @@ -84,6 +90,8 @@ void SyncedNotification::Show(NotificationUIManager* notification_manager, // Some inputs and fields are only used if there is a notification center. if (UseRichNotifications()) { + +#if defined(ENABLE_MESSAGE_CENTER) double creation_time = static_cast<double>(GetCreationTime()); int priority = GetPriority(); int notification_count = GetNotificationCount(); @@ -154,6 +162,8 @@ void SyncedNotification::Show(NotificationUIManager* notification_manager, delegate); notification_manager->Add(ui_notification, profile); +#endif // ENABLE_MESSAGE_CENTER + } else { Notification ui_notification(GetOriginUrl(), @@ -329,6 +339,7 @@ int SyncedNotification::GetPriority() const { return kUndefinedPriority; int protobuf_priority = specifics_.coalesced_notification().priority(); +#if defined(ENABLE_MESSAGE_CENTER) // Convert the prioroty to the scheme used by the notification center. if (protobuf_priority == sync_pb::CoalescedSyncedNotification_Priority_LOW) { @@ -347,6 +358,11 @@ int SyncedNotification::GetPriority() const { protobuf_priority); return kUndefinedPriority; } + +#else // ENABLE_MESSAGE_CENTER + return protobuf_priority; + +#endif // ENABLE_MESSAGE_CENTER } int SyncedNotification::GetNotificationCount() const { diff --git a/chrome/browser/notifications/sync_notifier/synced_notification_unittest.cc b/chrome/browser/notifications/sync_notifier/synced_notification_unittest.cc index 87810cc..3ccd4c2 100644 --- a/chrome/browser/notifications/sync_notifier/synced_notification_unittest.cc +++ b/chrome/browser/notifications/sync_notifier/synced_notification_unittest.cc @@ -13,8 +13,10 @@ #include "sync/protocol/sync.pb.h" #include "sync/protocol/synced_notification_specifics.pb.h" #include "testing/gtest/include/gtest/gtest.h" +#if defined(ENABLE_MESSAGE_CENTER) #include "ui/message_center/message_center_util.h" #include "ui/message_center/notification_types.h" +#endif // ENABLE_MESSAGE_CENTER using syncer::SyncData; using notifier::SyncedNotification; @@ -26,11 +28,19 @@ namespace { const uint64 kFakeCreationTime = 42; const int kProtobufPriority = static_cast<int>( sync_pb::CoalescedSyncedNotification_Priority_LOW); +#if defined (ENABLE_MESSAGE_CENTER) const int kNotificationPriority = static_cast<int>( message_center::LOW_PRIORITY); +#else // ENABLE_MESSAGE_CENTER +const int kNotificationPriority = 1; +#endif // ENABLE_MESSAGE_CENTER bool UseRichNotifications() { +#if defined(ENABLE_MESSAGE_CENTER) return message_center::IsRichNotificationEnabled(); +#else // ENABLE_MESSAGE_CENTER + return false; +#endif // ENABLE_MESSAGE_CENTER } const char kTitle1[] = "New appointment at 2:15"; @@ -562,6 +572,8 @@ TEST_F(SyncedNotificationTest, ShowTest) { if (!UseRichNotifications()) return; +#if defined(ENABLE_MESSAGE_CENTER) + StubNotificationUIManager notification_manager; // Call the method under test using the pre-populated data. @@ -623,6 +635,8 @@ TEST_F(SyncedNotificationTest, ShowTest) { << "Expected: " << expected_fields << ", but actual: " << *actual_fields; +#endif // ENABLE_MESSAGE_CENTER + } // TODO(petewil): Add a test for a notification being read and or deleted. diff --git a/chrome/browser/task_manager/task_manager_notification_browsertest.cc b/chrome/browser/task_manager/task_manager_notification_browsertest.cc index eb51693..73f9657 100644 --- a/chrome/browser/task_manager/task_manager_notification_browsertest.cc +++ b/chrome/browser/task_manager/task_manager_notification_browsertest.cc @@ -19,7 +19,10 @@ #include "chrome/test/base/ui_test_utils.h" #include "content/public/common/content_switches.h" #include "testing/gtest/include/gtest/gtest.h" -#include "ui/message_center/message_center_util.h" + +#if !defined(ENABLE_MESSAGE_CENTER) +// These tests do not apply with Message Center platforms +// where notifications do not instantiate a new renderer. class TaskManagerNotificationBrowserTest : public ExtensionBrowserTest { public: @@ -45,11 +48,6 @@ class TaskManagerNotificationBrowserTest : public ExtensionBrowserTest { #endif IN_PROC_BROWSER_TEST_F(TaskManagerNotificationBrowserTest, MAYBE_NoticeNotificationChanges) { - // These tests do not apply with Message Center platforms - // where notifications do not instantiate a new renderer. - if (message_center::IsRichNotificationEnabled()) - return; - EXPECT_EQ(0, model()->ResourceCount()); // Show the task manager. @@ -81,3 +79,5 @@ IN_PROC_BROWSER_TEST_F(TaskManagerNotificationBrowserTest, notifications->CancelById(n2.notification_id()); TaskManagerBrowserTestUtil::WaitForWebResourceChange(1); } + +#endif // !ENABLE_MESSAGE_CENTER diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 2f289f5..5c585c2 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -54,7 +54,6 @@ '../third_party/zlib/zlib.gyp:minizip', '../third_party/zlib/zlib.gyp:zlib', '../ui/base/strings/ui_strings.gyp:ui_strings', - '../ui/message_center/message_center.gyp:message_center', '../ui/ui.gyp:shell_dialogs', '../ui/ui.gyp:ui', '../ui/ui.gyp:ui_resources', @@ -2985,6 +2984,18 @@ '../ui/app_list/app_list.gyp:app_list', ] }], + ['enable_message_center==1', { + 'dependencies': [ + '../ui/message_center/message_center.gyp:message_center', + ], + }, { # enable_message_center==0 + 'sources!': [ + 'browser/notifications/message_center_notification_manager.cc', + 'browser/notifications/message_center_notification_manager.h', + 'browser/notifications/message_center_settings_controller.cc', + 'browser/notifications/message_center_settings_controller.h', + ], + }], ['enable_managed_users!=1', { 'sources/': [ ['exclude', '^browser/managed_mode/'], diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi index 9c607df..8b4f310 100644 --- a/chrome/chrome_browser_ui.gypi +++ b/chrome/chrome_browser_ui.gypi @@ -48,7 +48,6 @@ '../third_party/libxml/libxml.gyp:libxml', '../third_party/zlib/zlib.gyp:zlib', '../ui/base/strings/ui_strings.gyp:ui_strings', - '../ui/message_center/message_center.gyp:message_center', '../ui/native_theme/native_theme.gyp:native_theme', '../ui/snapshot/snapshot.gyp:snapshot', '../ui/ui.gyp:ui', @@ -2932,6 +2931,11 @@ ['include', '^browser/ui/app_list/app_list_service_selector.cc'], ], }], + ['enable_message_center==1', { + 'dependencies': [ + '../ui/message_center/message_center.gyp:message_center', + ], + }], ], }, ], diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi index eec3529..ae6c3de 100644 --- a/chrome/chrome_tests.gypi +++ b/chrome/chrome_tests.gypi @@ -478,6 +478,11 @@ 'browser/ui/views/native_widget_win_interactive_uitest.cc', ], }], # OS != "win" + ['enable_message_center==0', { + 'sources!': [ + 'browser/ui/views/message_center/web_notification_tray_win_browsertest.cc', + ], + }], # enable_message_center ], # conditions }, { @@ -2030,6 +2035,11 @@ ['exclude', '^browser/ui/app_list/'], ], }], + ['enable_message_center==0', { + 'sources!': [ + 'browser/notifications/message_center_notifications_browsertest.cc', + ], + }], ['enable_plugins==1', { 'dependencies': [ # Runtime dependency. diff --git a/chrome/test/base/testing_browser_process.cc b/chrome/test/base/testing_browser_process.cc index f40d38c..9418006 100644 --- a/chrome/test/base/testing_browser_process.cc +++ b/chrome/test/base/testing_browser_process.cc @@ -13,7 +13,6 @@ #include "content/public/browser/notification_service.h" #include "net/url_request/url_request_context_getter.h" #include "testing/gtest/include/gtest/gtest.h" -#include "ui/message_center/message_center.h" #if !defined(OS_IOS) #include "chrome/browser/media_galleries/media_file_system_registry.h" @@ -37,6 +36,10 @@ #include "chrome/browser/policy/policy_service_stub.h" #endif // defined(ENABLE_CONFIGURATION_POLICY) +#if defined(ENABLE_MESSAGE_CENTER) +#include "ui/message_center/message_center.h" +#endif + // static TestingBrowserProcess* TestingBrowserProcess::GetGlobal() { return static_cast<TestingBrowserProcess*>(g_browser_process); @@ -197,9 +200,11 @@ NotificationUIManager* TestingBrowserProcess::notification_ui_manager() { #endif } +#if defined(ENABLE_MESSAGE_CENTER) message_center::MessageCenter* TestingBrowserProcess::message_center() { return message_center::MessageCenter::Get(); } +#endif IntranetRedirectDetector* TestingBrowserProcess::intranet_redirect_detector() { return NULL; diff --git a/chrome/test/base/testing_browser_process.h b/chrome/test/base/testing_browser_process.h index cc501fc..f5e589e 100644 --- a/chrome/test/base/testing_browser_process.h +++ b/chrome/test/base/testing_browser_process.h @@ -71,7 +71,9 @@ class TestingBrowserProcess : public BrowserProcess { virtual extensions::EventRouterForwarder* extension_event_router_forwarder() OVERRIDE; virtual NotificationUIManager* notification_ui_manager() OVERRIDE; +#if defined(ENABLE_MESSAGE_CENTER) virtual message_center::MessageCenter* message_center() OVERRIDE; +#endif virtual IntranetRedirectDetector* intranet_redirect_detector() OVERRIDE; virtual AutomationProviderList* GetAutomationProviderList() OVERRIDE; virtual void CreateDevToolsHttpProtocolHandler( diff --git a/chrome/test/base/view_event_test_base.cc b/chrome/test/base/view_event_test_base.cc index a23a9ca..d3d9c43 100644 --- a/chrome/test/base/view_event_test_base.cc +++ b/chrome/test/base/view_event_test_base.cc @@ -14,11 +14,14 @@ #include "content/public/browser/browser_thread.h" #include "ui/base/ime/text_input_test_support.h" #include "ui/compositor/test/compositor_test_support.h" -#include "ui/message_center/message_center.h" #include "ui/views/view.h" #include "ui/views/widget/desktop_aura/desktop_screen.h" #include "ui/views/widget/widget.h" +#if defined(ENABLE_MESSAGE_CENTER) +#include "ui/message_center/message_center.h" +#endif + #if defined(USE_ASH) #include "ash/shell.h" #include "ash/test/test_shell_delegate.h" @@ -109,9 +112,11 @@ void ViewEventTestBase::SetUp() { gfx::Screen::SetScreenInstance( gfx::SCREEN_TYPE_NATIVE, views::CreateDesktopScreen()); #else +#if defined(ENABLE_MESSAGE_CENTER) // Ash Shell can't just live on its own without a browser process, we need to // also create the message center. message_center::MessageCenter::Initialize(); +#endif #if defined(OS_CHROMEOS) chromeos::CrasAudioHandler::InitializeForTesting(); #endif @@ -149,9 +154,11 @@ void ViewEventTestBase::TearDown() { #if defined(OS_CHROMEOS) chromeos::CrasAudioHandler::Shutdown(); #endif +#if defined(ENABLE_MESSAGE_CENTER) // Ash Shell can't just live on its own without a browser process, we need to // also shut down the message center. message_center::MessageCenter::Shutdown(); +#endif aura::Env::DeleteInstance(); #endif #elif defined(USE_AURA) diff --git a/ui/message_center/dummy_message_center.cc b/ui/message_center/dummy_message_center.cc deleted file mode 100644 index 27ecc91..0000000 --- a/ui/message_center/dummy_message_center.cc +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/message_center/message_center.h" -#include "ui/message_center/message_center_switches.h" -#include "ui/message_center/message_center_util.h" - -// This file contains dummy implementation of MessageCenter and used to compile -// and link with Android and iOS implementations of Chrome which do not have -// notification systems yet. This is to avoid spreading compile-time flags -// everywhere in the code. -#if !defined(OS_ANDROID) && !defined(OS_IOS) -#error This file should only be used in Android or iOS builds. -#endif - -namespace message_center { - -bool IsRichNotificationEnabled() { - return false; -} - -// static -void MessageCenter::Initialize() { -} - -// static -MessageCenter* MessageCenter::Get() { - return NULL; -} - -// static -void MessageCenter::Shutdown() { -} - -MessageCenter::MessageCenter() { -} - -MessageCenter::~MessageCenter() { -} - -MessageCenter::Delegate::~Delegate() { -} - -} // namespace message_center diff --git a/ui/message_center/message_center.gyp b/ui/message_center/message_center.gyp index ebf18e9..2b84ad8 100644 --- a/ui/message_center/message_center.gyp +++ b/ui/message_center/message_center.gyp @@ -17,6 +17,7 @@ '../../build/temp_gyp/googleurl.gyp:googleurl', '../../skia/skia.gyp:skia', '../base/strings/ui_strings.gyp:ui_strings', + '../compositor/compositor.gyp:compositor', '../ui.gyp:ui', '../ui.gyp:ui_resources', ], @@ -30,7 +31,6 @@ 'cocoa/popup_collection.mm', 'cocoa/popup_controller.h', 'cocoa/popup_controller.mm', - 'dummy_message_center.cc', 'message_center.cc', 'message_center.h', 'message_center_constants.cc', @@ -97,21 +97,6 @@ '../../third_party/GTM', ], }], - ['OS!="ios"', { - 'dependencies': [ - '../compositor/compositor.gyp:compositor', - ], - }], - ['notifications==0', { # Android and iOS. - 'sources/': [ - # Exclude everything except dummy impl. - ['exclude', '\\.(cc|mm)$'], - ['include', '^dummy_message_center\\.cc$'], - ['include', '^message_center_switches\\.cc$'], - ], - }, { # notifications==1 - 'sources!': [ 'dummy_message_center.cc' ], - }], ], }, # target_name: message_center { @@ -157,13 +142,6 @@ 'views/message_popup_collection_unittest.cc', ], }], - ['notifications==0', { # Android and iOS. - 'sources/': [ - # Exclude everything except main(). - ['exclude', '\\.(cc|mm)$'], - ['include', '^test/run_all_unittests\\.cc$'], - ], - }], ], }, # target_name: message_center_unittests ], diff --git a/ui/message_center/message_center_util.cc b/ui/message_center/message_center_util.cc index 913cf0d..916faa7 100644 --- a/ui/message_center/message_center_util.cc +++ b/ui/message_center/message_center_util.cc @@ -13,23 +13,17 @@ namespace message_center { // when a time period in Canary indicates the new notifications are acceptable // for default behavior. bool IsRichNotificationEnabled() { -#if !defined(OS_WIN) && !defined(OS_MACOSX) && !defined(USE_ASH) - return false; -#endif - if (CommandLine::ForCurrentProcess()->HasSwitch( switches::kDisableRichNotifications)) return false; if (CommandLine::ForCurrentProcess()->HasSwitch( switches::kEnableRichNotifications)) return true; - -// Not enabled by default on Mac yet. #if defined(OS_MACOSX) return false; -#endif - +#else return true; +#endif } } // namespace message_center diff --git a/ui/message_center/message_center_util.h b/ui/message_center/message_center_util.h index e4b37aa..512cb1a 100644 --- a/ui/message_center/message_center_util.h +++ b/ui/message_center/message_center_util.h @@ -11,12 +11,6 @@ namespace message_center { MESSAGE_CENTER_EXPORT bool IsRichNotificationEnabled(); -// If Rich Notificaitons are enabled by default on a platform, run the -// corresponding tests on that platform. -#if defined(OS_WIN) || defined(USE_ASH) -#define RUN_MESSAGE_CENTER_TESTS 1 -#endif - } // namespace message_center #endif // UI_MESSAGE_CENTER_MESSAGE_CENTER_UTIL_H_ |