• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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 
5 #include "ash/system/system_notifier.h"
6 
7 #include "base/logging.h"
8 
9 namespace ash {
10 namespace system_notifier {
11 
12 namespace {
13 
14 // See http://dev.chromium.org/chromium-os/chromiumos-design-docs/
15 // system-notifications for the reasoning.
16 const char* kAlwaysShownNotifierIds[] = {
17   kNotifierDisplay,
18   kNotifierDisplayError,
19   kNotifierNetworkError,
20   kNotifierPower,
21   NULL
22 };
23 
24 const char* kAshSystemNotifiers[] = {
25   kNotifierDisplay,
26   kNotifierDisplayResolutionChange,
27   kNotifierDisplayError,
28   kNotifierLocale,
29   kNotifierLocallyManagedUser,
30   kNotifierMultiProfileFirstRun,
31   kNotifierNetwork,
32   kNotifierNetworkError,
33   kNotifierNetworkPortalDetector,
34   kNotifierScreenshot,
35   kNotifierScreenCapture,
36   kNotifierScreenShare,
37   kNotifierSessionLengthTimeout,
38   kNotifierPower,
39   kNotifierBluetooth,
40   NULL
41 };
42 
MatchSystemNotifierId(const message_center::NotifierId & notifier_id,const char * id_list[])43 bool MatchSystemNotifierId(const message_center::NotifierId& notifier_id,
44                            const char* id_list[]) {
45   if (notifier_id.type != message_center::NotifierId::SYSTEM_COMPONENT)
46     return false;
47 
48   for (size_t i = 0; id_list[i] != NULL; ++i) {
49     if (notifier_id.id == id_list[i])
50       return true;
51   }
52   return false;
53 }
54 
55 }  // namespace
56 
57 const char kNotifierBluetooth[] = "ash.bluetooth";
58 const char kNotifierDisplay[] = "ash.display";
59 const char kNotifierDisplayResolutionChange[] = "ash.display.resolution-change";
60 const char kNotifierDisplayError[] = "ash.display.error";
61 const char kNotifierLocale[] = "ash.locale";
62 const char kNotifierLocallyManagedUser[] = "ash.locally-managed-user";
63 const char kNotifierMultiProfileFirstRun[] = "ash.multi-profile.first-run";
64 const char kNotifierNetwork[] = "ash.network";
65 const char kNotifierNetworkError[] = "ash.network.error";
66 const char kNotifierNetworkPortalDetector[] = "ash.network.portal-detector";
67 const char kNotifierPower[] = "ash.power";
68 const char kNotifierScreenshot[] = "ash.screenshot";
69 const char kNotifierScreenCapture[] = "ash.screen-capture";
70 const char kNotifierScreenShare[] = "ash.screen-share";
71 const char kNotifierSessionLengthTimeout[] = "ash.session-length-timeout";
72 
ShouldAlwaysShowPopups(const message_center::NotifierId & notifier_id)73 bool ShouldAlwaysShowPopups(const message_center::NotifierId& notifier_id) {
74   return MatchSystemNotifierId(notifier_id, kAlwaysShownNotifierIds);
75 }
76 
IsAshSystemNotifier(const message_center::NotifierId & notifier_id)77 bool IsAshSystemNotifier(const message_center::NotifierId& notifier_id) {
78   return MatchSystemNotifierId(notifier_id, kAshSystemNotifiers);
79 }
80 
81 }  // namespace system_notifier
82 }  // namespace ash
83