Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / login / webui_login_view.cc
index 961f8a2..1aeb6b5 100644 (file)
@@ -20,8 +20,8 @@
 #include "chrome/browser/chromeos/profiles/profile_helper.h"
 #include "chrome/browser/extensions/extension_web_contents_observer.h"
 #include "chrome/browser/media/media_stream_infobar_delegate.h"
+#include "chrome/browser/password_manager/chrome_password_manager_client.h"
 #include "chrome/browser/password_manager/password_manager.h"
-#include "chrome/browser/password_manager/password_manager_delegate_impl.h"
 #include "chrome/browser/renderer_preferences_util.h"
 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
 #include "chrome/common/render_messages.h"
@@ -36,6 +36,7 @@
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_view.h"
 #include "content/public/browser/web_ui.h"
+#include "third_party/WebKit/public/web/WebInputEvent.h"
 #include "ui/gfx/rect.h"
 #include "ui/gfx/size.h"
 #include "ui/views/controls/webview/webview.h"
@@ -55,8 +56,8 @@ const char kAccelNameEnrollment[] = "enrollment";
 const char kAccelNameKioskEnable[] = "kiosk_enable";
 const char kAccelNameVersion[] = "version";
 const char kAccelNameReset[] = "reset";
-const char kAccelNameLeft[] = "left";
-const char kAccelNameRight[] = "right";
+const char kAccelFocusPrev[] = "focus_prev";
+const char kAccelFocusNext[] = "focus_next";
 const char kAccelNameDeviceRequisition[] = "device_requisition";
 const char kAccelNameDeviceRequisitionRemora[] = "device_requisition_remora";
 const char kAccelNameAppLaunchBailout[] = "app_launch_bailout";
@@ -118,10 +119,17 @@ WebUILoginView::WebUILoginView()
       kAccelNameReset;
 
   accel_map_[ui::Accelerator(ui::VKEY_LEFT, ui::EF_NONE)] =
-      kAccelNameLeft;
-
+      kAccelFocusPrev;
   accel_map_[ui::Accelerator(ui::VKEY_RIGHT, ui::EF_NONE)] =
-      kAccelNameRight;
+      kAccelFocusNext;
+
+  // Use KEY_RELEASED because Gaia consumes KEY_PRESSED for up/down key.
+  ui::Accelerator key_up(ui::VKEY_UP, ui::EF_NONE);
+  key_up.set_type(ui::ET_KEY_RELEASED);
+  ui::Accelerator key_down(ui::VKEY_DOWN, ui::EF_NONE);
+  key_down.set_type(ui::ET_KEY_RELEASED);
+  accel_map_[key_up] = kAccelFocusPrev;
+  accel_map_[key_down] = kAccelFocusNext;
 
   accel_map_[ui::Accelerator(
       ui::VKEY_D, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN)] =
@@ -159,9 +167,7 @@ void WebUILoginView::Init() {
   WebContents* web_contents = webui_login_->GetWebContents();
 
   // Create the password manager that is needed for the proxy.
-  PasswordManagerDelegateImpl::CreateForWebContents(web_contents);
-  PasswordManager::CreateForWebContentsAndDelegate(
-      web_contents, PasswordManagerDelegateImpl::FromWebContents(web_contents));
+  ChromePasswordManagerClient::CreateForWebContents(web_contents);
 
   // LoginHandlerViews uses a constrained window for the password manager view.
   WebContentsModalDialogManager::CreateForWebContents(web_contents);
@@ -359,7 +365,7 @@ void WebUILoginView::HandleKeyboardEvent(content::WebContents* source,
   // Make sure error bubble is cleared on keyboard event. This is needed
   // when the focus is inside an iframe. Only clear on KeyDown to prevent hiding
   // an immediate authentication error (See crbug.com/103643).
-  if (event.type == WebKit::WebInputEvent::KeyDown) {
+  if (event.type == blink::WebInputEvent::KeyDown) {
     content::WebUI* web_ui = GetWebUI();
     if (web_ui)
       web_ui->CallJavascriptFunction("cr.ui.Oobe.clearErrors");
@@ -394,20 +400,29 @@ void WebUILoginView::RequestMediaAccessPermission(
     NOTREACHED() << "Media stream not allowed for WebUI";
 }
 
+bool WebUILoginView::PreHandleGestureEvent(
+    content::WebContents* source,
+    const blink::WebGestureEvent& event) {
+  // Disable pinch zooming.
+  return event.type == blink::WebGestureEvent::GesturePinchBegin ||
+      event.type == blink::WebGestureEvent::GesturePinchUpdate ||
+      event.type == blink::WebGestureEvent::GesturePinchEnd;
+}
+
 void WebUILoginView::DidFailProvisionalLoad(
     int64 frame_id,
-    const string16& frame_unique_name,
+    const base::string16& frame_unique_name,
     bool is_main_frame,
     const GURL& validated_url,
     int error_code,
-    const string16& error_description,
+    const base::string16& error_description,
     content::RenderViewHost* render_view_host) {
-  if (frame_unique_name != UTF8ToUTF16("gaia-frame"))
+  if (frame_unique_name != base::UTF8ToUTF16("gaia-frame"))
     return;
 
-  base::FundamentalValue error_value(-error_code);
   GetWebUI()->CallJavascriptFunction("login.GaiaSigninScreen.onFrameError",
-                                     error_value);
+                                     base::FundamentalValue(-error_code),
+                                     base::StringValue(validated_url.spec()));
 }
 
 void WebUILoginView::OnLoginPromptVisible() {