blob: 6bf6884ee446bcc12ca79f066d610083c3b68390 [file] [log] [blame]
// Copyright 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 "ash/system/system_notifier.h"
#include "base/logging.h"
#if defined(OS_CHROMEOS)
#include "ui/chromeos/network/network_state_notifier.h"
#endif
namespace ash {
namespace system_notifier {
namespace {
// See http://dev.chromium.org/chromium-os/chromiumos-design-docs/
// system-notifications for the reasoning.
const char* kAlwaysShownNotifierIds[] = {
kNotifierDisplay,
kNotifierDisplayError,
#if defined(OS_CHROMEOS)
ui::NetworkStateNotifier::kNotifierNetworkError,
#endif
kNotifierPower,
// Note: Order doesn't matter here, so keep this in alphabetic order, don't
// just add your stuff at the end!
NULL
};
const char* kAshSystemNotifiers[] = {
kNotifierBluetooth,
kNotifierDisplay,
kNotifierDisplayError,
kNotifierDisplayResolutionChange,
kNotifierLocale,
kNotifierMultiProfileFirstRun,
#if defined(OS_CHROMEOS)
ui::NetworkStateNotifier::kNotifierNetwork,
ui::NetworkStateNotifier::kNotifierNetworkError,
#endif
kNotifierNetworkPortalDetector,
kNotifierPower,
kNotifierScreenshot,
kNotifierScreenCapture,
kNotifierScreenShare,
kNotifierSessionLengthTimeout,
kNotifierSupervisedUser,
// Note: Order doesn't matter here, so keep this in alphabetic order, don't
// just add your stuff at the end!
NULL
};
bool MatchSystemNotifierId(const message_center::NotifierId& notifier_id,
const char* id_list[]) {
if (notifier_id.type != message_center::NotifierId::SYSTEM_COMPONENT)
return false;
for (size_t i = 0; id_list[i] != NULL; ++i) {
if (notifier_id.id == id_list[i])
return true;
}
return false;
}
} // namespace
const char kNotifierBluetooth[] = "ash.bluetooth";
const char kNotifierDisplay[] = "ash.display";
const char kNotifierDisplayError[] = "ash.display.error";
const char kNotifierDisplayResolutionChange[] = "ash.display.resolution-change";
const char kNotifierLocale[] = "ash.locale";
const char kNotifierMultiProfileFirstRun[] = "ash.multi-profile.first-run";
const char kNotifierNetworkPortalDetector[] = "ash.network.portal-detector";
const char kNotifierPower[] = "ash.power";
const char kNotifierScreenshot[] = "ash.screenshot";
const char kNotifierScreenCapture[] = "ash.screen-capture";
const char kNotifierScreenShare[] = "ash.screen-share";
const char kNotifierSessionLengthTimeout[] = "ash.session-length-timeout";
const char kNotifierSupervisedUser[] = "ash.locally-managed-user";
bool ShouldAlwaysShowPopups(const message_center::NotifierId& notifier_id) {
return MatchSystemNotifierId(notifier_id, kAlwaysShownNotifierIds);
}
bool IsAshSystemNotifier(const message_center::NotifierId& notifier_id) {
return MatchSystemNotifierId(notifier_id, kAshSystemNotifiers);
}
} // namespace system_notifier
} // namespace ash