1# Copyright 2014 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import("//build/config/features.gni") 6import("//build/config/ui.gni") 7 8component("message_center") { 9 deps = [ 10 "//base", 11 "//base:i18n", 12 "//base/third_party/dynamic_annotations", 13 "//skia", 14 "//ui/accessibility", 15 "//ui/base", 16 "//ui/events", 17 "//ui/gfx", 18 "//ui/gfx/geometry", 19 "//ui/native_theme", 20 "//ui/resources", 21 "//ui/strings", 22 "//url", 23 ] 24 25 defines = [ "MESSAGE_CENTER_IMPLEMENTATION" ] 26 27 if (enable_notifications) { 28 sources = [ 29 "cocoa/notification_controller.h", 30 "cocoa/notification_controller.mm", 31 "cocoa/opaque_views.h", 32 "cocoa/opaque_views.mm", 33 "cocoa/popup_collection.h", 34 "cocoa/popup_collection.mm", 35 "cocoa/popup_controller.h", 36 "cocoa/popup_controller.mm", 37 "cocoa/settings_controller.h", 38 "cocoa/settings_controller.mm", 39 "cocoa/settings_entry_view.h", 40 "cocoa/settings_entry_view.mm", 41 "cocoa/status_item_view.h", 42 "cocoa/status_item_view.mm", 43 "cocoa/tray_controller.h", 44 "cocoa/tray_controller.mm", 45 "cocoa/tray_view_controller.h", 46 "cocoa/tray_view_controller.mm", 47 "message_center.cc", 48 "message_center.h", 49 "message_center_export.h", 50 "notification_delegate.cc", 51 "notification_delegate.h", 52 "message_center_impl.cc", 53 "message_center_impl.h", 54 "message_center_observer.h", 55 "message_center_style.cc", 56 "message_center_style.h", 57 "message_center_tray.cc", 58 "message_center_tray.h", 59 "message_center_tray_delegate.h", 60 "message_center_types.h", 61 "message_center_switches.h", 62 "message_center_switches.cc", 63 "notification.cc", 64 "notification.h", 65 "notification_blocker.cc", 66 "notification_blocker.h", 67 "notification_list.cc", 68 "notification_list.h", 69 "notification_types.cc", 70 "notification_types.h", 71 "notifier_settings.cc", 72 "notifier_settings.h", 73 ] 74 75 if (is_win) { 76 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 77 cflags = [ "/wd4267" ] 78 deps += [ "//ui/aura" ] 79 } 80 81 # On Mac, toolkit-views builds still use the Cocoa UI. Keep this in sync 82 # with message_center_unittests below. 83 if (toolkit_views && !is_mac) { 84 sources += [ 85 "views/bounded_label.cc", 86 "views/bounded_label.h", 87 "views/constants.h", 88 "views/desktop_popup_alignment_delegate.cc", 89 "views/desktop_popup_alignment_delegate.h", 90 "views/message_center_controller.h", 91 "views/message_center_button_bar.cc", 92 "views/message_center_button_bar.h", 93 "views/message_center_view.cc", 94 "views/message_center_view.h", 95 "views/message_popup_collection.cc", 96 "views/message_popup_collection.h", 97 "views/message_view.cc", 98 "views/message_view.h", 99 "views/message_view_context_menu_controller.cc", 100 "views/message_view_context_menu_controller.h", 101 "views/notifier_settings_view.cc", 102 "views/notifier_settings_view.h", 103 "views/notification_button.cc", 104 "views/notification_button.h", 105 "views/notification_view.cc", 106 "views/notification_view.h", 107 "views/padded_button.cc", 108 "views/padded_button.h", 109 "views/popup_alignment_delegate.cc", 110 "views/popup_alignment_delegate.h", 111 "views/proportional_image_view.cc", 112 "views/proportional_image_view.h", 113 "views/toast_contents_view.cc", 114 "views/toast_contents_view.h", 115 ] 116 deps += [ 117 "//ui/events", 118 "//ui/views", 119 "//ui/compositor", 120 ] 121 } 122 123 if (use_ash) { 124 sources += [ 125 "views/message_bubble_base.cc", 126 "views/message_bubble_base.h", 127 "views/message_center_bubble.cc", 128 "views/message_center_bubble.h", 129 ] 130 } 131 132 } else { 133 # Notification service disabled. 134 sources = [ 135 "dummy_message_center.cc", 136 "notification_delegate.cc", 137 "notification_delegate.h", 138 ] 139 # Android implements its own notification UI manager instead of deferring to 140 # the message center (when notifications are enabled). Include a minimal 141 # set of files required for notifications on Android. 142 if (is_android) { 143 sources += [ 144 "notification.cc", 145 "notification.h", 146 "notifier_settings.cc", 147 "notifier_settings.h", 148 ] 149 } 150 } 151} 152 153static_library("test_support") { 154 testonly = true 155 sources = [ 156 "fake_message_center.h", 157 "fake_message_center.cc", 158 "fake_message_center_tray_delegate.h", 159 "fake_message_center_tray_delegate.cc", 160 "fake_notifier_settings_provider.h", 161 "fake_notifier_settings_provider.cc", 162 ] 163 164 public_deps = [ 165 ":message_center", 166 ] 167 168 deps = [ 169 "//base", 170 "//base/test:test_support", 171 "//skia", 172 "//ui/gfx", 173 "//ui/gfx/geometry", 174 ] 175} 176 177test("message_center_unittests") { 178 sources = [ 179 "test/run_all_unittests.cc", 180 ] 181 182 deps = [ 183 ":message_center", 184 ":test_support", 185 "//base", 186 "//base/allocator", 187 "//base/test:test_support", 188 "//skia", 189 "//testing/gtest", 190 "//ui/base", 191 "//ui/events", 192 "//ui/gfx", 193 "//ui/gfx/geometry", 194 "//ui/gl", 195 "//ui/resources", 196 "//ui/resources:ui_test_pak", 197 "//url", 198 ] 199 200 if (enable_notifications) { 201 sources += [ 202 "cocoa/notification_controller_unittest.mm", 203 "cocoa/popup_collection_unittest.mm", 204 "cocoa/popup_controller_unittest.mm", 205 "cocoa/settings_controller_unittest.mm", 206 "cocoa/status_item_view_unittest.mm", 207 "cocoa/tray_controller_unittest.mm", 208 "cocoa/tray_view_controller_unittest.mm", 209 "message_center_tray_unittest.cc", 210 "message_center_impl_unittest.cc", 211 "notification_delegate_unittest.cc", 212 "notification_list_unittest.cc", 213 ] 214 215 if (is_mac) { 216 deps += [ "//ui/gfx:test_support" ] 217 } 218 219 if (toolkit_views && !is_mac) { 220 sources += [ 221 "views/bounded_label_unittest.cc", 222 "views/message_center_view_unittest.cc", 223 "views/message_popup_collection_unittest.cc", 224 "views/notification_view_unittest.cc", 225 "views/notifier_settings_view_unittest.cc", 226 ] 227 deps += [ 228 # Compositor is needed by message_center_view_unittest.cc and for the 229 # fonts used by bounded_label_unittest.cc. 230 "//ui/compositor", 231 "//ui/views", 232 "//ui/views:test_support", 233 ] 234 } 235 } # enable_notifications 236} 237