| Index: ash/common/system/chromeos/network/tray_vpn.cc
|
| diff --git a/ash/common/system/chromeos/network/tray_vpn.cc b/ash/common/system/chromeos/network/tray_vpn.cc
|
| deleted file mode 100644
|
| index a2d254a04675f14ac090e8d7f511343a916cce7a..0000000000000000000000000000000000000000
|
| --- a/ash/common/system/chromeos/network/tray_vpn.cc
|
| +++ /dev/null
|
| @@ -1,206 +0,0 @@
|
| -// Copyright (c) 2012 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/common/system/chromeos/network/tray_vpn.h"
|
| -
|
| -#include "ash/common/session/session_state_delegate.h"
|
| -#include "ash/common/system/chromeos/network/network_icon.h"
|
| -#include "ash/common/system/chromeos/network/network_icon_animation.h"
|
| -#include "ash/common/system/chromeos/network/network_icon_animation_observer.h"
|
| -#include "ash/common/system/chromeos/network/network_state_list_detailed_view.h"
|
| -#include "ash/common/system/chromeos/network/vpn_list.h"
|
| -#include "ash/common/system/tray/system_tray.h"
|
| -#include "ash/common/system/tray/system_tray_delegate.h"
|
| -#include "ash/common/system/tray/tray_constants.h"
|
| -#include "ash/common/system/tray/tray_item_more.h"
|
| -#include "ash/common/system/tray/tray_popup_item_style.h"
|
| -#include "ash/common/wm_shell.h"
|
| -#include "ash/resources/vector_icons/vector_icons.h"
|
| -#include "ash/strings/grit/ash_strings.h"
|
| -#include "chromeos/network/network_state.h"
|
| -#include "chromeos/network/network_state_handler.h"
|
| -#include "third_party/cros_system_api/dbus/service_constants.h"
|
| -#include "ui/base/l10n/l10n_util.h"
|
| -#include "ui/gfx/paint_vector_icon.h"
|
| -
|
| -using chromeos::NetworkHandler;
|
| -using chromeos::NetworkState;
|
| -using chromeos::NetworkStateHandler;
|
| -using chromeos::NetworkTypePattern;
|
| -
|
| -namespace ash {
|
| -namespace tray {
|
| -
|
| -class VpnDefaultView : public TrayItemMore,
|
| - public network_icon::AnimationObserver {
|
| - public:
|
| - explicit VpnDefaultView(SystemTrayItem* owner) : TrayItemMore(owner) {}
|
| -
|
| - ~VpnDefaultView() override {
|
| - network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
|
| - }
|
| -
|
| - static bool ShouldShow() {
|
| - // Show the VPN entry in the ash tray bubble if at least one third-party VPN
|
| - // provider is installed.
|
| - if (WmShell::Get()->vpn_list()->HaveThirdPartyVPNProviders())
|
| - return true;
|
| -
|
| - // Also show the VPN entry if at least one VPN network is configured.
|
| - NetworkStateHandler* const handler =
|
| - NetworkHandler::Get()->network_state_handler();
|
| - if (handler->FirstNetworkByType(NetworkTypePattern::VPN()))
|
| - return true;
|
| - return false;
|
| - }
|
| -
|
| - void Update() {
|
| - gfx::ImageSkia image;
|
| - base::string16 label;
|
| - bool animating = false;
|
| - GetNetworkStateHandlerImageAndLabel(&image, &label, &animating);
|
| - if (animating)
|
| - network_icon::NetworkIconAnimation::GetInstance()->AddObserver(this);
|
| - else
|
| - network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
|
| - SetImage(image);
|
| - SetLabel(label);
|
| - SetAccessibleName(label);
|
| - }
|
| -
|
| - // network_icon::AnimationObserver
|
| - void NetworkIconChanged() override { Update(); }
|
| -
|
| - protected:
|
| - // TrayItemMore:
|
| - std::unique_ptr<TrayPopupItemStyle> HandleCreateStyle() const override {
|
| - std::unique_ptr<TrayPopupItemStyle> style =
|
| - TrayItemMore::HandleCreateStyle();
|
| - style->set_color_style(
|
| - !IsVpnEnabled()
|
| - ? TrayPopupItemStyle::ColorStyle::DISABLED
|
| - : IsVpnConnected() ? TrayPopupItemStyle::ColorStyle::ACTIVE
|
| - : TrayPopupItemStyle::ColorStyle::INACTIVE);
|
| - return style;
|
| - }
|
| -
|
| - void UpdateStyle() override {
|
| - TrayItemMore::UpdateStyle();
|
| - Update();
|
| - }
|
| -
|
| - private:
|
| - bool IsVpnEnabled() const {
|
| - NetworkStateHandler* handler =
|
| - NetworkHandler::Get()->network_state_handler();
|
| - return handler->FirstNetworkByType(NetworkTypePattern::VPN());
|
| - }
|
| -
|
| - bool IsVpnConnected() const {
|
| - NetworkStateHandler* handler =
|
| - NetworkHandler::Get()->network_state_handler();
|
| - const NetworkState* vpn =
|
| - handler->FirstNetworkByType(NetworkTypePattern::VPN());
|
| - return IsVpnEnabled() &&
|
| - (vpn->IsConnectedState() || vpn->IsConnectingState());
|
| - }
|
| -
|
| - void GetNetworkStateHandlerImageAndLabel(gfx::ImageSkia* image,
|
| - base::string16* label,
|
| - bool* animating) {
|
| - NetworkStateHandler* handler =
|
| - NetworkHandler::Get()->network_state_handler();
|
| - const NetworkState* vpn =
|
| - handler->FirstNetworkByType(NetworkTypePattern::VPN());
|
| - *image = gfx::CreateVectorIcon(
|
| - kNetworkVpnIcon, TrayPopupItemStyle::GetIconColor(
|
| - vpn && vpn->IsConnectedState()
|
| - ? TrayPopupItemStyle::ColorStyle::ACTIVE
|
| - : TrayPopupItemStyle::ColorStyle::INACTIVE));
|
| - if (!IsVpnConnected()) {
|
| - if (label) {
|
| - *label =
|
| - l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_VPN_DISCONNECTED);
|
| - }
|
| - *animating = false;
|
| - return;
|
| - }
|
| - *animating = vpn->IsConnectingState();
|
| - if (label) {
|
| - *label = network_icon::GetLabelForNetwork(
|
| - vpn, network_icon::ICON_TYPE_DEFAULT_VIEW);
|
| - }
|
| - }
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(VpnDefaultView);
|
| -};
|
| -
|
| -} // namespace tray
|
| -
|
| -TrayVPN::TrayVPN(SystemTray* system_tray)
|
| - : SystemTrayItem(system_tray, UMA_VPN),
|
| - default_(nullptr),
|
| - detailed_(nullptr) {
|
| - network_state_observer_.reset(new TrayNetworkStateObserver(this));
|
| -}
|
| -
|
| -TrayVPN::~TrayVPN() {}
|
| -
|
| -views::View* TrayVPN::CreateTrayView(LoginStatus status) {
|
| - return NULL;
|
| -}
|
| -
|
| -views::View* TrayVPN::CreateDefaultView(LoginStatus status) {
|
| - CHECK(default_ == NULL);
|
| - if (!chromeos::NetworkHandler::IsInitialized())
|
| - return NULL;
|
| - if (status == LoginStatus::NOT_LOGGED_IN)
|
| - return NULL;
|
| - if (!tray::VpnDefaultView::ShouldShow())
|
| - return NULL;
|
| -
|
| - const bool is_in_secondary_login_screen =
|
| - WmShell::Get()->GetSessionStateDelegate()->IsInSecondaryLoginScreen();
|
| -
|
| - default_ = new tray::VpnDefaultView(this);
|
| - default_->SetEnabled(status != LoginStatus::LOCKED &&
|
| - !is_in_secondary_login_screen);
|
| -
|
| - return default_;
|
| -}
|
| -
|
| -views::View* TrayVPN::CreateDetailedView(LoginStatus status) {
|
| - CHECK(detailed_ == NULL);
|
| - if (!chromeos::NetworkHandler::IsInitialized())
|
| - return NULL;
|
| -
|
| - WmShell::Get()->RecordUserMetricsAction(UMA_STATUS_AREA_DETAILED_VPN_VIEW);
|
| - detailed_ = new tray::NetworkStateListDetailedView(
|
| - this, tray::NetworkStateListDetailedView::LIST_TYPE_VPN, status);
|
| - detailed_->Init();
|
| - return detailed_;
|
| -}
|
| -
|
| -void TrayVPN::DestroyTrayView() {}
|
| -
|
| -void TrayVPN::DestroyDefaultView() {
|
| - default_ = NULL;
|
| -}
|
| -
|
| -void TrayVPN::DestroyDetailedView() {
|
| - detailed_ = NULL;
|
| -}
|
| -
|
| -void TrayVPN::UpdateAfterLoginStatusChange(LoginStatus status) {}
|
| -
|
| -void TrayVPN::UpdateAfterShelfAlignmentChange(ShelfAlignment alignment) {}
|
| -
|
| -void TrayVPN::NetworkStateChanged() {
|
| - if (default_)
|
| - default_->Update();
|
| - if (detailed_)
|
| - detailed_->Update();
|
| -}
|
| -
|
| -} // namespace ash
|
|
|