OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/views/controls/webview/webview.h" | 5 #include "ui/views/controls/webview/webview.h" |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "content/public/browser/web_contents.h" | 8 #include "content/public/browser/web_contents.h" |
9 #include "content/public/browser/web_contents_observer.h" | 9 #include "content/public/browser/web_contents_observer.h" |
10 #include "content/public/test/test_browser_context.h" | 10 #include "content/public/test/test_browser_context.h" |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 something_to_focus->RequestFocus(); | 397 something_to_focus->RequestFocus(); |
398 EXPECT_FALSE(web_view()->HasFocus()); | 398 EXPECT_FALSE(web_view()->HasFocus()); |
399 EXPECT_FALSE(holder()->HasFocus()); | 399 EXPECT_FALSE(holder()->HasFocus()); |
400 EXPECT_TRUE(something_to_focus->HasFocus()); | 400 EXPECT_TRUE(something_to_focus->HasFocus()); |
401 | 401 |
402 // Send mouse press event to WebView outside the bounds of the holder, and | 402 // Send mouse press event to WebView outside the bounds of the holder, and |
403 // confirm WebView took focus. | 403 // confirm WebView took focus. |
404 const ui::MouseEvent click_outside_holder( | 404 const ui::MouseEvent click_outside_holder( |
405 ui::ET_MOUSE_PRESSED, gfx::Point(1, 1), | 405 ui::ET_MOUSE_PRESSED, gfx::Point(1, 1), |
406 gfx::Point(), // Immaterial. | 406 gfx::Point(), // Immaterial. |
407 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0); | 407 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0, |
| 408 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
408 EXPECT_TRUE(static_cast<views::View*>(web_view())-> | 409 EXPECT_TRUE(static_cast<views::View*>(web_view())-> |
409 OnMousePressed(click_outside_holder)); | 410 OnMousePressed(click_outside_holder)); |
410 EXPECT_TRUE(web_view()->HasFocus()); | 411 EXPECT_TRUE(web_view()->HasFocus()); |
411 EXPECT_FALSE(holder()->HasFocus()); | 412 EXPECT_FALSE(holder()->HasFocus()); |
412 EXPECT_FALSE(something_to_focus->HasFocus()); | 413 EXPECT_FALSE(something_to_focus->HasFocus()); |
413 | 414 |
414 // Focus the other widget again. | 415 // Focus the other widget again. |
415 something_to_focus->RequestFocus(); | 416 something_to_focus->RequestFocus(); |
416 EXPECT_FALSE(web_view()->HasFocus()); | 417 EXPECT_FALSE(web_view()->HasFocus()); |
417 EXPECT_FALSE(holder()->HasFocus()); | 418 EXPECT_FALSE(holder()->HasFocus()); |
418 EXPECT_TRUE(something_to_focus->HasFocus()); | 419 EXPECT_TRUE(something_to_focus->HasFocus()); |
419 | 420 |
420 // Send a mouse press event within the bounds of the holder and expect no | 421 // Send a mouse press event within the bounds of the holder and expect no |
421 // focus change. The reason is that WebView is not supposed to handle mouse | 422 // focus change. The reason is that WebView is not supposed to handle mouse |
422 // events within the bounds of the holder, and it would be up to the | 423 // events within the bounds of the holder, and it would be up to the |
423 // WebContents native view to grab the focus instead. In this test | 424 // WebContents native view to grab the focus instead. In this test |
424 // environment, the WebContents native view doesn't include the implementation | 425 // environment, the WebContents native view doesn't include the implementation |
425 // needed to grab focus, so no focus change will occur. | 426 // needed to grab focus, so no focus change will occur. |
426 const ui::MouseEvent click_inside_holder( | 427 const ui::MouseEvent click_inside_holder( |
427 ui::ET_MOUSE_PRESSED, web_view()->bounds().CenterPoint(), | 428 ui::ET_MOUSE_PRESSED, web_view()->bounds().CenterPoint(), |
428 gfx::Point(), // Immaterial. | 429 gfx::Point(), // Immaterial. |
429 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0); | 430 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 0, |
| 431 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
430 EXPECT_FALSE(static_cast<views::View*>(web_view())-> | 432 EXPECT_FALSE(static_cast<views::View*>(web_view())-> |
431 OnMousePressed(click_inside_holder)); | 433 OnMousePressed(click_inside_holder)); |
432 EXPECT_FALSE(web_view()->HasFocus()); | 434 EXPECT_FALSE(web_view()->HasFocus()); |
433 EXPECT_FALSE(holder()->HasFocus()); | 435 EXPECT_FALSE(holder()->HasFocus()); |
434 EXPECT_TRUE(something_to_focus->HasFocus()); | 436 EXPECT_TRUE(something_to_focus->HasFocus()); |
435 } | 437 } |
436 | 438 |
437 } // namespace views | 439 } // namespace views |
OLD | NEW |