Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(152)

Side by Side Diff: chrome/test/data/extensions/platform_apps/web_view/shim/main.js

Issue 2700613003: Enable find-in-page across GuestViews. (Closed)
Patch Set: Small fix. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 var util = {}; 5 var util = {};
6 var embedder = {}; 6 var embedder = {};
7 embedder.baseGuestURL = ''; 7 embedder.baseGuestURL = '';
8 embedder.emptyGuestURL = ''; 8 embedder.emptyGuestURL = '';
9 embedder.windowOpenGuestURL = ''; 9 embedder.windowOpenGuestURL = '';
10 embedder.noReferrerGuestURL = ''; 10 embedder.noReferrerGuestURL = '';
(...skipping 2538 matching lines...) Expand 10 before | Expand all | Expand 10 after
2549 ); 2549 );
2550 } 2550 }
2551 ); 2551 );
2552 } 2552 }
2553 ); 2553 );
2554 }); 2554 });
2555 }); 2555 });
2556 document.body.appendChild(webview); 2556 document.body.appendChild(webview);
2557 }; 2557 };
2558 2558
2559 var testFindPage =
2560 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2561 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2562 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2563 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2564 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2565 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2566 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2567 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2568 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2569 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' +
2570 '<a href="about:blank">Click here!</a>';
2571
2559 function testFindAPI() { 2572 function testFindAPI() {
2560 var webview = new WebView(); 2573 var webview = new WebView();
2561 webview.src = 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + 2574 webview.src = testFindPage;
2562 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2563 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2564 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2565 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2566 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2567 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2568 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2569 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2570 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' +
2571 '<a href="about:blank">Click here!</a>';
2572 2575
2573 var loadstopListener2 = function(e) { 2576 var loadstopListener2 = function(e) {
2574 embedder.test.assertEq(webview.src, "about:blank"); 2577 embedder.test.assertEq(webview.src, "about:blank");
2575 // Test find results when looking for nothing. 2578 // Test find results when looking for nothing.
2576 webview.find("", {}, function(results) { 2579 webview.find("", {}, function(results) {
2577 embedder.test.assertEq(results.numberOfMatches, 0); 2580 embedder.test.assertEq(results.numberOfMatches, 0);
2578 embedder.test.assertEq(results.activeMatchOrdinal, 0); 2581 embedder.test.assertEq(results.activeMatchOrdinal, 0);
2579 embedder.test.assertEq(results.selectionRect.left, 0); 2582 embedder.test.assertEq(results.selectionRect.left, 0);
2580 embedder.test.assertEq(results.selectionRect.top, 0); 2583 embedder.test.assertEq(results.selectionRect.top, 0);
2581 embedder.test.assertEq(results.selectionRect.width, 0); 2584 embedder.test.assertEq(results.selectionRect.width, 0);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
2635 }); 2638 });
2636 }); 2639 });
2637 }; 2640 };
2638 2641
2639 webview.addEventListener('loadstop', loadstopListener1); 2642 webview.addEventListener('loadstop', loadstopListener1);
2640 document.body.appendChild(webview); 2643 document.body.appendChild(webview);
2641 }; 2644 };
2642 2645
2643 function testFindAPI_findupdate() { 2646 function testFindAPI_findupdate() {
2644 var webview = new WebView(); 2647 var webview = new WebView();
2645 webview.src = 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + 2648 webview.src = testFindPage;
2646 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + 2649
2647 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2648 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2649 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2650 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2651 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2652 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2653 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2654 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' +
2655 '<a href="about:blank">Click here!</a>';
2656 var canceledTest = false; 2650 var canceledTest = false;
2657 webview.addEventListener('loadstop', function(e) { 2651 webview.addEventListener('loadstop', function(e) {
2658 // Test the |findupdate| event. 2652 // Test the |findupdate| event.
2659 webview.addEventListener('findupdate', function(e) { 2653 webview.addEventListener('findupdate', function(e) {
2660 if (e.activeMatchOrdinal > 0) { 2654 if (e.activeMatchOrdinal > 0) {
2661 embedder.test.assertTrue(e.numberOfMatches >= e.activeMatchOrdinal) 2655 embedder.test.assertTrue(e.numberOfMatches >= e.activeMatchOrdinal)
2662 embedder.test.assertTrue(e.selectionRect.width > 0); 2656 embedder.test.assertTrue(e.selectionRect.width > 0);
2663 embedder.test.assertTrue(e.selectionRect.height > 0); 2657 embedder.test.assertTrue(e.selectionRect.height > 0);
2664 } 2658 }
2665 2659
(...skipping 10 matching lines...) Expand all
2676 } 2670 }
2677 }); 2671 });
2678 webview.find("dog"); 2672 webview.find("dog");
2679 webview.find("cat"); 2673 webview.find("cat");
2680 webview.find("dog"); 2674 webview.find("dog");
2681 }); 2675 });
2682 2676
2683 document.body.appendChild(webview); 2677 document.body.appendChild(webview);
2684 }; 2678 };
2685 2679
2680 function testFindInMultipleWebViews() {
2681 var webviews = [new WebView(), new WebView(), new WebView()];
2682 var promises = [];
2683
2684 // Search in all WebViews simultaneously.
2685 for (var i in webviews) {
2686 webviews[i].src = testFindPage;
2687 promises[i] = new Promise((resolve, reject) => {
2688 webviews[i].addEventListener('loadstop', function(id, event) {
2689 LOG("Searching WebView " + id + ".");
2690
2691 var webview = webviews[id];
2692 webview.find("dog", {}, (results_a) => {
2693 embedder.test.assertEq(results_a.numberOfMatches, 100);
2694 embedder.test.assertTrue(results_a.selectionRect.width > 0);
2695 embedder.test.assertTrue(results_a.selectionRect.height > 0);
2696
2697 // Test finding next active matches.
2698 webview.find("dog");
2699 webview.find("dog");
2700 webview.find("dog");
2701 webview.find("dog");
2702 webview.find("dog", {}, (results_b) => {
2703 embedder.test.assertEq(results_b.activeMatchOrdinal, 6);
2704 LOG("Searched WebView " + id + " successfully.");
2705 resolve();
2706 });
2707 });
2708 }.bind(undefined, i));
2709 });
2710 document.body.appendChild(webviews[i]);
2711 }
2712
2713 Promise.all(promises)
2714 .then(() => {
2715 LOG("All searches finished.");
2716 embedder.test.succeed();
2717 })
2718 .catch((error) => {
2719 LOG("Failing test.");
2720 embedder.test.fail(error);
2721 });
2722 }
2723
2686 function testLoadDataAPI() { 2724 function testLoadDataAPI() {
2687 var webview = new WebView(); 2725 var webview = new WebView();
2688 webview.src = 'about:blank'; 2726 webview.src = 'about:blank';
2689 2727
2690 var loadstopListener2 = function(e) { 2728 var loadstopListener2 = function(e) {
2691 // Test the virtual URL. 2729 // Test the virtual URL.
2692 embedder.test.assertEq(webview.src, embedder.virtualURL); 2730 embedder.test.assertEq(webview.src, embedder.virtualURL);
2693 2731
2694 // Test that the image was loaded from the right source. 2732 // Test that the image was loaded from the right source.
2695 webview.executeScript( 2733 webview.executeScript(
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
3134 'testRemoveWebviewOnExit': testRemoveWebviewOnExit, 3172 'testRemoveWebviewOnExit': testRemoveWebviewOnExit,
3135 'testRemoveWebviewAfterNavigation': testRemoveWebviewAfterNavigation, 3173 'testRemoveWebviewAfterNavigation': testRemoveWebviewAfterNavigation,
3136 'testResizeWebviewResizesContent': testResizeWebviewResizesContent, 3174 'testResizeWebviewResizesContent': testResizeWebviewResizesContent,
3137 'testResizeWebviewWithDisplayNoneResizesContent': 3175 'testResizeWebviewWithDisplayNoneResizesContent':
3138 testResizeWebviewWithDisplayNoneResizesContent, 3176 testResizeWebviewWithDisplayNoneResizesContent,
3139 'testPostMessageCommChannel': testPostMessageCommChannel, 3177 'testPostMessageCommChannel': testPostMessageCommChannel,
3140 'testScreenshotCapture' : testScreenshotCapture, 3178 'testScreenshotCapture' : testScreenshotCapture,
3141 'testZoomAPI' : testZoomAPI, 3179 'testZoomAPI' : testZoomAPI,
3142 'testFindAPI': testFindAPI, 3180 'testFindAPI': testFindAPI,
3143 'testFindAPI_findupdate': testFindAPI_findupdate, 3181 'testFindAPI_findupdate': testFindAPI_findupdate,
3182 'testFindInMultipleWebViews': testFindInMultipleWebViews,
3144 'testLoadDataAPI': testLoadDataAPI, 3183 'testLoadDataAPI': testLoadDataAPI,
3145 'testResizeEvents': testResizeEvents, 3184 'testResizeEvents': testResizeEvents,
3146 'testPerOriginZoomMode': testPerOriginZoomMode, 3185 'testPerOriginZoomMode': testPerOriginZoomMode,
3147 'testPerViewZoomMode': testPerViewZoomMode, 3186 'testPerViewZoomMode': testPerViewZoomMode,
3148 'testDisabledZoomMode': testDisabledZoomMode, 3187 'testDisabledZoomMode': testDisabledZoomMode,
3149 'testZoomBeforeNavigation': testZoomBeforeNavigation, 3188 'testZoomBeforeNavigation': testZoomBeforeNavigation,
3150 'testPlugin': testPlugin, 3189 'testPlugin': testPlugin,
3151 'testGarbageCollect': testGarbageCollect, 3190 'testGarbageCollect': testGarbageCollect,
3152 'testCloseNewWindowCleanup': testCloseNewWindowCleanup, 3191 'testCloseNewWindowCleanup': testCloseNewWindowCleanup,
3153 'testFocusWhileFocused': testFocusWhileFocused, 3192 'testFocusWhileFocused': testFocusWhileFocused,
3154 'testPDFInWebview': testPDFInWebview, 3193 'testPDFInWebview': testPDFInWebview,
3155 'testNavigateToPDFInWebview': testNavigateToPDFInWebview, 3194 'testNavigateToPDFInWebview': testNavigateToPDFInWebview,
3156 'testMailtoLink': testMailtoLink, 3195 'testMailtoLink': testMailtoLink,
3157 'testRendererNavigationRedirectWhileUnattached': 3196 'testRendererNavigationRedirectWhileUnattached':
3158 testRendererNavigationRedirectWhileUnattached, 3197 testRendererNavigationRedirectWhileUnattached,
3159 'testBlobURL': testBlobURL 3198 'testBlobURL': testBlobURL
3160 }; 3199 };
3161 3200
3162 onload = function() { 3201 onload = function() {
3163 chrome.test.getConfig(function(config) { 3202 chrome.test.getConfig(function(config) {
3164 embedder.setUp_(config); 3203 embedder.setUp_(config);
3165 chrome.test.sendMessage("Launched"); 3204 chrome.test.sendMessage("Launched");
3166 }); 3205 });
3167 }; 3206 };
OLDNEW
« no previous file with comments | « chrome/browser/chrome_find_request_manager_browsertest.cc ('k') | components/guest_view/browser/guest_view_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698