Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / ash / system / chromeos / network / tray_vpn.cc
index c9f9e74..545a5ba 100644 (file)
@@ -4,8 +4,9 @@
 
 #include "ash/system/chromeos/network/tray_vpn.h"
 
+#include "ash/metrics/user_metrics_recorder.h"
+#include "ash/session/session_state_delegate.h"
 #include "ash/shell.h"
-#include "ash/system/chromeos/network/network_icon_animation.h"
 #include "ash/system/chromeos/network/network_state_list_detailed_view.h"
 #include "ash/system/tray/system_tray.h"
 #include "ash/system/tray/system_tray_delegate.h"
 #include "ash/system/tray/tray_popup_label_button.h"
 #include "chromeos/network/network_state.h"
 #include "chromeos/network/network_state_handler.h"
-#include "chromeos/network/shill_property_util.h"
 #include "grit/ash_strings.h"
+#include "grit/ui_chromeos_strings.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
 #include "ui/base/l10n/l10n_util.h"
-#include "ui/base/resource/resource_bundle.h"
+#include "ui/chromeos/network/network_icon.h"
+#include "ui/chromeos/network/network_icon_animation.h"
 
 using chromeos::NetworkHandler;
 using chromeos::NetworkState;
@@ -26,12 +28,10 @@ using chromeos::NetworkStateHandler;
 using chromeos::NetworkTypePattern;
 
 namespace ash {
-namespace internal {
-
 namespace tray {
 
 class VpnDefaultView : public TrayItemMore,
-                       public network_icon::AnimationObserver {
+                       public ui::network_icon::AnimationObserver {
  public:
   VpnDefaultView(SystemTrayItem* owner, bool show_more)
       : TrayItemMore(owner, show_more) {
@@ -39,7 +39,7 @@ class VpnDefaultView : public TrayItemMore,
   }
 
   virtual ~VpnDefaultView() {
-    network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
+    ui::network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
   }
 
   static bool ShouldShow() {
@@ -57,16 +57,17 @@ class VpnDefaultView : public TrayItemMore,
     bool animating = false;
     GetNetworkStateHandlerImageAndLabel(&image, &label, &animating);
     if (animating)
-      network_icon::NetworkIconAnimation::GetInstance()->AddObserver(this);
+      ui::network_icon::NetworkIconAnimation::GetInstance()->AddObserver(this);
     else
-      network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(this);
+      ui::network_icon::NetworkIconAnimation::GetInstance()->RemoveObserver(
+          this);
     SetImage(&image);
     SetLabel(label);
     SetAccessibleName(label);
   }
 
-  // network_icon::AnimationObserver
-  virtual void NetworkIconChanged() OVERRIDE {
+  // ui::network_icon::AnimationObserver
+  virtual void NetworkIconChanged() override {
     Update();
   }
 
@@ -79,8 +80,8 @@ class VpnDefaultView : public TrayItemMore,
     const NetworkState* vpn =
         handler->FirstNetworkByType(NetworkTypePattern::VPN());
     if (!vpn || (vpn->connection_state() == shill::kStateIdle)) {
-      *image = network_icon::GetImageForDisconnectedNetwork(
-          network_icon::ICON_TYPE_DEFAULT_VIEW, shill::kTypeVPN);
+      *image = ui::network_icon::GetImageForDisconnectedNetwork(
+          ui::network_icon::ICON_TYPE_DEFAULT_VIEW, shill::kTypeVPN);
       if (label) {
         *label = l10n_util::GetStringUTF16(
             IDS_ASH_STATUS_TRAY_VPN_DISCONNECTED);
@@ -89,11 +90,11 @@ class VpnDefaultView : public TrayItemMore,
       return;
     }
     *animating = vpn->IsConnectingState();
-    *image = network_icon::GetImageForNetwork(
-        vpn, network_icon::ICON_TYPE_DEFAULT_VIEW);
+    *image = ui::network_icon::GetImageForNetwork(
+        vpn, ui::network_icon::ICON_TYPE_DEFAULT_VIEW);
     if (label) {
-      *label = network_icon::GetLabelForNetwork(
-          vpn, network_icon::ICON_TYPE_DEFAULT_VIEW);
+      *label = ui::network_icon::GetLabelForNetwork(
+          vpn, ui::network_icon::ICON_TYPE_DEFAULT_VIEW);
     }
   }
 
@@ -125,7 +126,13 @@ views::View* TrayVPN::CreateDefaultView(user::LoginStatus status) {
   if (!tray::VpnDefaultView::ShouldShow())
     return NULL;
 
-  default_ = new tray::VpnDefaultView(this, status != user::LOGGED_IN_LOCKED);
+  bool userAddingRunning = ash::Shell::GetInstance()
+                               ->session_state_delegate()
+                               ->IsInSecondaryLoginScreen();
+
+  default_ = new tray::VpnDefaultView(
+      this, status != user::LOGGED_IN_LOCKED && !userAddingRunning);
+
   return default_;
 }
 
@@ -134,6 +141,8 @@ views::View* TrayVPN::CreateDetailedView(user::LoginStatus status) {
   if (!chromeos::NetworkHandler::IsInitialized())
     return NULL;
 
+  Shell::GetInstance()->metrics()->RecordUserMetricsAction(
+      ash::UMA_STATUS_AREA_DETAILED_VPN_VIEW);
   detailed_ = new tray::NetworkStateListDetailedView(
       this, tray::NetworkStateListDetailedView::LIST_TYPE_VPN, status);
   detailed_->Init();
@@ -173,5 +182,4 @@ void TrayVPN::NetworkServiceChanged(const chromeos::NetworkState* network) {
     detailed_->NetworkServiceChanged(network);
 }
 
-}  // namespace internal
 }  // namespace ash