Home | History | Annotate | Download | only in system
      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   // Note: Order doesn't matter here, so keep this in alphabetic order, don't
     22   // just add your stuff at the end!
     23   NULL
     24 };
     25 
     26 const char* kAshSystemNotifiers[] = {
     27   kNotifierBluetooth,
     28   kNotifierDisplay,
     29   kNotifierDisplayError,
     30   kNotifierDisplayResolutionChange,
     31   kNotifierLocale,
     32   kNotifierMultiProfileFirstRun,
     33   kNotifierNetwork,
     34   kNotifierNetworkError,
     35   kNotifierNetworkPortalDetector,
     36   kNotifierPower,
     37   kNotifierScreenshot,
     38   kNotifierScreenCapture,
     39   kNotifierScreenShare,
     40   kNotifierSessionLengthTimeout,
     41   kNotifierSupervisedUser,
     42   // Note: Order doesn't matter here, so keep this in alphabetic order, don't
     43   // just add your stuff at the end!
     44   NULL
     45 };
     46 
     47 bool MatchSystemNotifierId(const message_center::NotifierId& notifier_id,
     48                            const char* id_list[]) {
     49   if (notifier_id.type != message_center::NotifierId::SYSTEM_COMPONENT)
     50     return false;
     51 
     52   for (size_t i = 0; id_list[i] != NULL; ++i) {
     53     if (notifier_id.id == id_list[i])
     54       return true;
     55   }
     56   return false;
     57 }
     58 
     59 }  // namespace
     60 
     61 const char kNotifierBluetooth[] = "ash.bluetooth";
     62 const char kNotifierDisplay[] = "ash.display";
     63 const char kNotifierDisplayError[] = "ash.display.error";
     64 const char kNotifierDisplayResolutionChange[] = "ash.display.resolution-change";
     65 const char kNotifierLocale[] = "ash.locale";
     66 const char kNotifierMultiProfileFirstRun[] = "ash.multi-profile.first-run";
     67 const char kNotifierNetwork[] = "ash.network";
     68 const char kNotifierNetworkError[] = "ash.network.error";
     69 const char kNotifierNetworkPortalDetector[] = "ash.network.portal-detector";
     70 const char kNotifierPower[] = "ash.power";
     71 const char kNotifierScreenshot[] = "ash.screenshot";
     72 const char kNotifierScreenCapture[] = "ash.screen-capture";
     73 const char kNotifierScreenShare[] = "ash.screen-share";
     74 const char kNotifierSessionLengthTimeout[] = "ash.session-length-timeout";
     75 const char kNotifierSupervisedUser[] = "ash.locally-managed-user";
     76 
     77 bool ShouldAlwaysShowPopups(const message_center::NotifierId& notifier_id) {
     78   return MatchSystemNotifierId(notifier_id, kAlwaysShownNotifierIds);
     79 }
     80 
     81 bool IsAshSystemNotifier(const message_center::NotifierId& notifier_id) {
     82   return MatchSystemNotifierId(notifier_id, kAshSystemNotifiers);
     83 }
     84 
     85 }  // namespace system_notifier
     86 }  // namespace ash
     87