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

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

Issue 2836973002: 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 2560 matching lines...) Expand 10 before | Expand all | Expand 10 after
2571 ); 2571 );
2572 } 2572 }
2573 ); 2573 );
2574 } 2574 }
2575 ); 2575 );
2576 }); 2576 });
2577 }); 2577 });
2578 document.body.appendChild(webview); 2578 document.body.appendChild(webview);
2579 }; 2579 };
2580 2580
2581 var testFindPage =
2582 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2583 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2584 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2585 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2586 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2587 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2588 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2589 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2590 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2591 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' +
2592 '<a href="about:blank">Click here!</a>';
2593
2581 function testFindAPI() { 2594 function testFindAPI() {
2582 var webview = new WebView(); 2595 var webview = new WebView();
2583 webview.src = 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + 2596 webview.src = testFindPage;
2584 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2585 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2586 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2587 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2588 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2589 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2590 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2591 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2592 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' +
2593 '<a href="about:blank">Click here!</a>';
2594 2597
2595 var loadstopListener2 = function(e) { 2598 var loadstopListener2 = function(e) {
2596 embedder.test.assertEq(webview.src, "about:blank"); 2599 embedder.test.assertEq(webview.src, "about:blank");
2597 // Test find results when looking for nothing. 2600 // Test find results when looking for nothing.
2598 webview.find("", {}, function(results) { 2601 webview.find("", {}, function(results) {
2599 embedder.test.assertEq(results.numberOfMatches, 0); 2602 embedder.test.assertEq(results.numberOfMatches, 0);
2600 embedder.test.assertEq(results.activeMatchOrdinal, 0); 2603 embedder.test.assertEq(results.activeMatchOrdinal, 0);
2601 embedder.test.assertEq(results.selectionRect.left, 0); 2604 embedder.test.assertEq(results.selectionRect.left, 0);
2602 embedder.test.assertEq(results.selectionRect.top, 0); 2605 embedder.test.assertEq(results.selectionRect.top, 0);
2603 embedder.test.assertEq(results.selectionRect.width, 0); 2606 embedder.test.assertEq(results.selectionRect.width, 0);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
2657 }); 2660 });
2658 }); 2661 });
2659 }; 2662 };
2660 2663
2661 webview.addEventListener('loadstop', loadstopListener1); 2664 webview.addEventListener('loadstop', loadstopListener1);
2662 document.body.appendChild(webview); 2665 document.body.appendChild(webview);
2663 }; 2666 };
2664 2667
2665 function testFindAPI_findupdate() { 2668 function testFindAPI_findupdate() {
2666 var webview = new WebView(); 2669 var webview = new WebView();
2667 webview.src = 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + 2670 webview.src = testFindPage;
2668 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + 2671
2669 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2670 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2671 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2672 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2673 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2674 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2675 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
2676 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' +
2677 '<a href="about:blank">Click here!</a>';
2678 var canceledTest = false; 2672 var canceledTest = false;
2679 webview.addEventListener('loadstop', function(e) { 2673 webview.addEventListener('loadstop', function(e) {
2680 // Test the |findupdate| event. 2674 // Test the |findupdate| event.
2681 webview.addEventListener('findupdate', function(e) { 2675 webview.addEventListener('findupdate', function(e) {
2682 if (e.activeMatchOrdinal > 0) { 2676 if (e.activeMatchOrdinal > 0) {
2683 embedder.test.assertTrue(e.numberOfMatches >= e.activeMatchOrdinal) 2677 embedder.test.assertTrue(e.numberOfMatches >= e.activeMatchOrdinal)
2684 embedder.test.assertTrue(e.selectionRect.width > 0); 2678 embedder.test.assertTrue(e.selectionRect.width > 0);
2685 embedder.test.assertTrue(e.selectionRect.height > 0); 2679 embedder.test.assertTrue(e.selectionRect.height > 0);
2686 } 2680 }
2687 2681
(...skipping 10 matching lines...) Expand all
2698 } 2692 }
2699 }); 2693 });
2700 webview.find("dog"); 2694 webview.find("dog");
2701 webview.find("cat"); 2695 webview.find("cat");
2702 webview.find("dog"); 2696 webview.find("dog");
2703 }); 2697 });
2704 2698
2705 document.body.appendChild(webview); 2699 document.body.appendChild(webview);
2706 }; 2700 };
2707 2701
2702 function testFindInMultipleWebViews() {
2703 var webviews = [new WebView(), new WebView(), new WebView()];
2704 var promises = [];
2705
2706 // Search in all WebViews simultaneously.
2707 for (var i in webviews) {
2708 webviews[i].src = testFindPage;
2709 promises[i] = new Promise((resolve, reject) => {
2710 webviews[i].addEventListener('loadstop', function(id, event) {
2711 LOG("Searching WebView " + id + ".");
2712
2713 var webview = webviews[id];
2714 webview.find("dog", {}, (results_a) => {
2715 embedder.test.assertEq(results_a.numberOfMatches, 100);
2716 embedder.test.assertTrue(results_a.selectionRect.width > 0);
2717 embedder.test.assertTrue(results_a.selectionRect.height > 0);
2718
2719 // Test finding next active matches.
2720 webview.find("dog");
2721 webview.find("dog");
2722 webview.find("dog");
2723 webview.find("dog");
2724 webview.find("dog", {}, (results_b) => {
2725 embedder.test.assertEq(results_b.activeMatchOrdinal, 6);
2726 LOG("Searched WebView " + id + " successfully.");
2727 resolve();
2728 });
2729 });
2730 }.bind(undefined, i));
2731 });
2732 document.body.appendChild(webviews[i]);
2733 }
2734
2735 Promise.all(promises)
2736 .then(() => {
2737 LOG("All searches finished.");
2738 embedder.test.succeed();
2739 })
2740 .catch((error) => {
2741 LOG("Failing test.");
2742 embedder.test.fail(error);
2743 });
2744 }
2745
2708 function testLoadDataAPI() { 2746 function testLoadDataAPI() {
2709 var webview = new WebView(); 2747 var webview = new WebView();
2710 webview.src = 'about:blank'; 2748 webview.src = 'about:blank';
2711 2749
2712 var loadstopListener2 = function(e) { 2750 var loadstopListener2 = function(e) {
2713 // Test the virtual URL. 2751 // Test the virtual URL.
2714 embedder.test.assertEq(webview.src, embedder.virtualURL); 2752 embedder.test.assertEq(webview.src, embedder.virtualURL);
2715 2753
2716 // Test that the image was loaded from the right source. 2754 // Test that the image was loaded from the right source.
2717 webview.executeScript( 2755 webview.executeScript(
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
3158 'testRemoveWebviewOnExit': testRemoveWebviewOnExit, 3196 'testRemoveWebviewOnExit': testRemoveWebviewOnExit,
3159 'testRemoveWebviewAfterNavigation': testRemoveWebviewAfterNavigation, 3197 'testRemoveWebviewAfterNavigation': testRemoveWebviewAfterNavigation,
3160 'testResizeWebviewResizesContent': testResizeWebviewResizesContent, 3198 'testResizeWebviewResizesContent': testResizeWebviewResizesContent,
3161 'testResizeWebviewWithDisplayNoneResizesContent': 3199 'testResizeWebviewWithDisplayNoneResizesContent':
3162 testResizeWebviewWithDisplayNoneResizesContent, 3200 testResizeWebviewWithDisplayNoneResizesContent,
3163 'testPostMessageCommChannel': testPostMessageCommChannel, 3201 'testPostMessageCommChannel': testPostMessageCommChannel,
3164 'testScreenshotCapture' : testScreenshotCapture, 3202 'testScreenshotCapture' : testScreenshotCapture,
3165 'testZoomAPI' : testZoomAPI, 3203 'testZoomAPI' : testZoomAPI,
3166 'testFindAPI': testFindAPI, 3204 'testFindAPI': testFindAPI,
3167 'testFindAPI_findupdate': testFindAPI_findupdate, 3205 'testFindAPI_findupdate': testFindAPI_findupdate,
3206 'testFindInMultipleWebViews': testFindInMultipleWebViews,
3168 'testLoadDataAPI': testLoadDataAPI, 3207 'testLoadDataAPI': testLoadDataAPI,
3169 'testResizeEvents': testResizeEvents, 3208 'testResizeEvents': testResizeEvents,
3170 'testPerOriginZoomMode': testPerOriginZoomMode, 3209 'testPerOriginZoomMode': testPerOriginZoomMode,
3171 'testPerViewZoomMode': testPerViewZoomMode, 3210 'testPerViewZoomMode': testPerViewZoomMode,
3172 'testDisabledZoomMode': testDisabledZoomMode, 3211 'testDisabledZoomMode': testDisabledZoomMode,
3173 'testZoomBeforeNavigation': testZoomBeforeNavigation, 3212 'testZoomBeforeNavigation': testZoomBeforeNavigation,
3174 'testPlugin': testPlugin, 3213 'testPlugin': testPlugin,
3175 'testGarbageCollect': testGarbageCollect, 3214 'testGarbageCollect': testGarbageCollect,
3176 'testCloseNewWindowCleanup': testCloseNewWindowCleanup, 3215 'testCloseNewWindowCleanup': testCloseNewWindowCleanup,
3177 'testFocusWhileFocused': testFocusWhileFocused, 3216 'testFocusWhileFocused': testFocusWhileFocused,
3178 'testPDFInWebview': testPDFInWebview, 3217 'testPDFInWebview': testPDFInWebview,
3179 'testNavigateToPDFInWebview': testNavigateToPDFInWebview, 3218 'testNavigateToPDFInWebview': testNavigateToPDFInWebview,
3180 'testMailtoLink': testMailtoLink, 3219 'testMailtoLink': testMailtoLink,
3181 'testRendererNavigationRedirectWhileUnattached': 3220 'testRendererNavigationRedirectWhileUnattached':
3182 testRendererNavigationRedirectWhileUnattached, 3221 testRendererNavigationRedirectWhileUnattached,
3183 'testBlobURL': testBlobURL 3222 'testBlobURL': testBlobURL
3184 }; 3223 };
3185 3224
3186 onload = function() { 3225 onload = function() {
3187 chrome.test.getConfig(function(config) { 3226 chrome.test.getConfig(function(config) {
3188 embedder.setUp_(config); 3227 embedder.setUp_(config);
3189 chrome.test.sendMessage("Launched"); 3228 chrome.test.sendMessage("Launched");
3190 }); 3229 });
3191 }; 3230 };
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