OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 1438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1449 if (!element) | 1449 if (!element) |
1450 return false; | 1450 return false; |
1451 | 1451 |
1452 element->scrollIntoViewIfNeeded(); | 1452 element->scrollIntoViewIfNeeded(); |
1453 | 1453 |
1454 // TODO(bokan): Technically incorrect, event positions should be in viewport space. crbug.com/371902. | 1454 // TODO(bokan): Technically incorrect, event positions should be in viewport space. crbug.com/371902. |
1455 IntPoint center = element->screenRect().center(); | 1455 IntPoint center = element->screenRect().center(); |
1456 | 1456 |
1457 WebGestureEvent event; | 1457 WebGestureEvent event; |
1458 event.type = type; | 1458 event.type = type; |
1459 event.sourceDevice = WebGestureDeviceTouchpad; | |
Rick Byers
2015/10/19 18:20:29
tap should always be touchscreen
wjmaclean
2015/10/19 18:58:49
Done.
| |
1459 event.x = center.x(); | 1460 event.x = center.x(); |
1460 event.y = center.y(); | 1461 event.y = center.y(); |
1461 | 1462 |
1462 webView->handleInputEvent(event); | 1463 webView->handleInputEvent(event); |
1463 runPendingTasks(); | 1464 runPendingTasks(); |
1464 return true; | 1465 return true; |
1465 } | 1466 } |
1466 | 1467 |
1467 TEST_F(WebViewTest, DetectContentAroundPosition) | 1468 TEST_F(WebViewTest, DetectContentAroundPosition) |
1468 { | 1469 { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1501 EXPECT_FALSE(client.scheduledIntentURL().isValid()); | 1502 EXPECT_FALSE(client.scheduledIntentURL().isValid()); |
1502 | 1503 |
1503 WebURL intentURL = toKURL(m_baseURL); | 1504 WebURL intentURL = toKURL(m_baseURL); |
1504 client.setContentDetectionResult(WebContentDetectionResult(WebRange(), WebSt ring(), intentURL)); | 1505 client.setContentDetectionResult(WebContentDetectionResult(WebRange(), WebSt ring(), intentURL)); |
1505 EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureTap, noListener)); | 1506 EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureTap, noListener)); |
1506 EXPECT_TRUE(client.scheduledIntentURL() == intentURL); | 1507 EXPECT_TRUE(client.scheduledIntentURL() == intentURL); |
1507 | 1508 |
1508 // Tapping elsewhere should cancel the scheduled intent. | 1509 // Tapping elsewhere should cancel the scheduled intent. |
1509 WebGestureEvent event; | 1510 WebGestureEvent event; |
1510 event.type = WebInputEvent::GestureTap; | 1511 event.type = WebInputEvent::GestureTap; |
1512 event.sourceDevice = WebGestureDeviceTouchpad; | |
Rick Byers
2015/10/19 18:20:29
ditto
wjmaclean
2015/10/19 18:58:49
Done.
| |
1511 webView->handleInputEvent(event); | 1513 webView->handleInputEvent(event); |
1512 runPendingTasks(); | 1514 runPendingTasks(); |
1513 EXPECT_TRUE(client.pendingIntentsCancelled()); | 1515 EXPECT_TRUE(client.pendingIntentsCancelled()); |
1514 | 1516 |
1515 m_webViewHelper.reset(); // Explicitly reset to break dependency on locally scoped client. | 1517 m_webViewHelper.reset(); // Explicitly reset to break dependency on locally scoped client. |
1516 } | 1518 } |
1517 | 1519 |
1518 TEST_F(WebViewTest, ClientTapHandling) | 1520 TEST_F(WebViewTest, ClientTapHandling) |
1519 { | 1521 { |
1520 TapHandlingWebViewClient client; | 1522 TapHandlingWebViewClient client; |
1521 client.reset(); | 1523 client.reset(); |
1522 WebView* webView = m_webViewHelper.initializeAndLoad("about:blank", true, 0, &client); | 1524 WebView* webView = m_webViewHelper.initializeAndLoad("about:blank", true, 0, &client); |
1523 WebGestureEvent event; | 1525 WebGestureEvent event; |
1524 event.type = WebInputEvent::GestureTap; | 1526 event.type = WebInputEvent::GestureTap; |
1527 event.sourceDevice = WebGestureDeviceTouchpad; | |
Rick Byers
2015/10/19 18:20:29
ditto
wjmaclean
2015/10/19 18:58:49
Done.
| |
1525 event.x = 3; | 1528 event.x = 3; |
1526 event.y = 8; | 1529 event.y = 8; |
1527 webView->handleInputEvent(event); | 1530 webView->handleInputEvent(event); |
1528 runPendingTasks(); | 1531 runPendingTasks(); |
1529 EXPECT_EQ(3, client.tapX()); | 1532 EXPECT_EQ(3, client.tapX()); |
1530 EXPECT_EQ(8, client.tapY()); | 1533 EXPECT_EQ(8, client.tapY()); |
1531 client.reset(); | 1534 client.reset(); |
1532 event.type = WebInputEvent::GestureLongPress; | 1535 event.type = WebInputEvent::GestureLongPress; |
1533 event.x = 25; | 1536 event.x = 25; |
1534 event.y = 7; | 1537 event.y = 7; |
1535 webView->handleInputEvent(event); | 1538 webView->handleInputEvent(event); |
1536 runPendingTasks(); | 1539 runPendingTasks(); |
1537 EXPECT_EQ(25, client.longpressX()); | 1540 EXPECT_EQ(25, client.longpressX()); |
1538 EXPECT_EQ(7, client.longpressY()); | 1541 EXPECT_EQ(7, client.longpressY()); |
1539 | 1542 |
1540 m_webViewHelper.reset(); // Explicitly reset to break dependency on locally scoped client. | 1543 m_webViewHelper.reset(); // Explicitly reset to break dependency on locally scoped client. |
1541 } | 1544 } |
1542 | 1545 |
1543 TEST_F(WebViewTest, ClientTapHandlingNullWebViewClient) | 1546 TEST_F(WebViewTest, ClientTapHandlingNullWebViewClient) |
1544 { | 1547 { |
1545 WebViewImpl* webView = WebViewImpl::create(nullptr); | 1548 WebViewImpl* webView = WebViewImpl::create(nullptr); |
1546 WebLocalFrame* localFrame = WebLocalFrame::create(WebTreeScopeType::Document , nullptr); | 1549 WebLocalFrame* localFrame = WebLocalFrame::create(WebTreeScopeType::Document , nullptr); |
1547 webView->setMainFrame(localFrame); | 1550 webView->setMainFrame(localFrame); |
1548 WebGestureEvent event; | 1551 WebGestureEvent event; |
1549 event.type = WebInputEvent::GestureTap; | 1552 event.type = WebInputEvent::GestureTap; |
1553 event.sourceDevice = WebGestureDeviceTouchpad; | |
Rick Byers
2015/10/19 18:20:29
ditto
wjmaclean
2015/10/19 18:58:49
Done.
| |
1550 event.x = 3; | 1554 event.x = 3; |
1551 event.y = 8; | 1555 event.y = 8; |
1552 EXPECT_FALSE(webView->handleInputEvent(event)); | 1556 EXPECT_FALSE(webView->handleInputEvent(event)); |
1553 webView->close(); | 1557 webView->close(); |
1554 // Explicitly close as the frame as no frame client to do so on frameDetache d(). | 1558 // Explicitly close as the frame as no frame client to do so on frameDetache d(). |
1555 localFrame->close(); | 1559 localFrame->close(); |
1556 } | 1560 } |
1557 | 1561 |
1558 #if OS(ANDROID) | 1562 #if OS(ANDROID) |
1559 TEST_F(WebViewTest, LongPressSelection) | 1563 TEST_F(WebViewTest, LongPressSelection) |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1633 | 1637 |
1634 int pageWidth = 640; | 1638 int pageWidth = 640; |
1635 int pageHeight = 480; | 1639 int pageHeight = 480; |
1636 webViewImpl->resize(WebSize(pageWidth, pageHeight)); | 1640 webViewImpl->resize(WebSize(pageWidth, pageHeight)); |
1637 | 1641 |
1638 WebURL baseURL = URLTestHelpers::toKURL("http://example.com/"); | 1642 WebURL baseURL = URLTestHelpers::toKURL("http://example.com/"); |
1639 FrameTestHelpers::loadHTMLString(webViewImpl->mainFrame(), "<a href='http:// www.test.com' style='position: absolute; left: 20px; top: 20px; width: 200px; tr ansform:translateZ(0);'>A link to highlight</a>", baseURL); | 1643 FrameTestHelpers::loadHTMLString(webViewImpl->mainFrame(), "<a href='http:// www.test.com' style='position: absolute; left: 20px; top: 20px; width: 200px; tr ansform:translateZ(0);'>A link to highlight</a>", baseURL); |
1640 | 1644 |
1641 WebGestureEvent event; | 1645 WebGestureEvent event; |
1642 event.type = WebInputEvent::GestureShowPress; | 1646 event.type = WebInputEvent::GestureShowPress; |
1647 event.sourceDevice = WebGestureDeviceTouchpad; | |
Rick Byers
2015/10/19 18:20:29
ditto
wjmaclean
2015/10/19 18:58:49
Done.
| |
1643 event.x = 20; | 1648 event.x = 20; |
1644 event.y = 20; | 1649 event.y = 20; |
1645 | 1650 |
1646 // Just make sure we don't hit any asserts. | 1651 // Just make sure we don't hit any asserts. |
1647 webViewImpl->handleInputEvent(event); | 1652 webViewImpl->handleInputEvent(event); |
1648 } | 1653 } |
1649 | 1654 |
1650 class MockAutofillClient : public WebAutofillClient { | 1655 class MockAutofillClient : public WebAutofillClient { |
1651 public: | 1656 public: |
1652 MockAutofillClient() | 1657 MockAutofillClient() |
(...skipping 1448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3101 WebFrame* frame = mainWebView.webView()->mainFrame(); | 3106 WebFrame* frame = mainWebView.webView()->mainFrame(); |
3102 v8::HandleScope scope(v8::Isolate::GetCurrent()); | 3107 v8::HandleScope scope(v8::Isolate::GetCurrent()); |
3103 v8::Local<v8::Value> v8Value = frame->executeScriptAndReturnValue(WebScriptS ource("var win = window.open('javascript:false'); win.document")); | 3108 v8::Local<v8::Value> v8Value = frame->executeScriptAndReturnValue(WebScriptS ource("var win = window.open('javascript:false'); win.document")); |
3104 ASSERT_TRUE(v8Value->IsObject()); | 3109 ASSERT_TRUE(v8Value->IsObject()); |
3105 Document* document = V8Document::toImplWithTypeCheck(v8::Isolate::GetCurrent (), v8Value); | 3110 Document* document = V8Document::toImplWithTypeCheck(v8::Isolate::GetCurrent (), v8Value); |
3106 ASSERT_TRUE(document); | 3111 ASSERT_TRUE(document); |
3107 EXPECT_FALSE(document->frame()->isLoading()); | 3112 EXPECT_FALSE(document->frame()->isLoading()); |
3108 } | 3113 } |
3109 | 3114 |
3110 } // namespace blink | 3115 } // namespace blink |
OLD | NEW |