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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/extensions/platform_apps/web_view/shim/main.js
diff --git a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
index ddabbcd9030fb80066bfd819e024afe440da5e38..b5cffe3f0ffe75864fbaa762243e81775ece2b81 100644
--- a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
+++ b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
@@ -2556,19 +2556,22 @@ function testZoomAPI() {
document.body.appendChild(webview);
};
+var testFindPage =
+ 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' +
+ '<a href="about:blank">Click here!</a>';
+
function testFindAPI() {
var webview = new WebView();
- webview.src = 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' +
- '<a href="about:blank">Click here!</a>';
+ webview.src = testFindPage;
var loadstopListener2 = function(e) {
embedder.test.assertEq(webview.src, "about:blank");
@@ -2642,17 +2645,8 @@ function testFindAPI() {
function testFindAPI_findupdate() {
var webview = new WebView();
- webview.src = 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' +
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' +
- '<a href="about:blank">Click here!</a>';
+ webview.src = testFindPage;
+
var canceledTest = false;
webview.addEventListener('loadstop', function(e) {
// Test the |findupdate| event.
@@ -2683,6 +2677,50 @@ function testFindAPI_findupdate() {
document.body.appendChild(webview);
};
+function testFindInMultipleWebViews() {
+ var webviews = [new WebView(), new WebView(), new WebView()];
+ var promises = [];
+
+ // Search in all WebViews simultaneously.
+ for (var i in webviews) {
+ webviews[i].src = testFindPage;
+ promises[i] = new Promise((resolve, reject) => {
+ webviews[i].addEventListener('loadstop', function(id, event) {
+ LOG("Searching WebView " + id + ".");
+
+ var webview = webviews[id];
+ webview.find("dog", {}, (results_a) => {
+ embedder.test.assertEq(results_a.numberOfMatches, 100);
+ embedder.test.assertTrue(results_a.selectionRect.width > 0);
+ embedder.test.assertTrue(results_a.selectionRect.height > 0);
+
+ // Test finding next active matches.
+ webview.find("dog");
+ webview.find("dog");
+ webview.find("dog");
+ webview.find("dog");
+ webview.find("dog", {}, (results_b) => {
+ embedder.test.assertEq(results_b.activeMatchOrdinal, 6);
+ LOG("Searched WebView " + id + " successfully.");
+ resolve();
+ });
+ });
+ }.bind(undefined, i));
+ });
+ document.body.appendChild(webviews[i]);
+ }
+
+ Promise.all(promises)
+ .then(() => {
+ LOG("All searches finished.");
+ embedder.test.succeed();
+ })
+ .catch((error) => {
+ LOG("Failing test.");
+ embedder.test.fail(error);
+ });
+}
+
function testLoadDataAPI() {
var webview = new WebView();
webview.src = 'about:blank';
@@ -3141,6 +3179,7 @@ embedder.test.testList = {
'testZoomAPI' : testZoomAPI,
'testFindAPI': testFindAPI,
'testFindAPI_findupdate': testFindAPI_findupdate,
+ 'testFindInMultipleWebViews': testFindInMultipleWebViews,
'testLoadDataAPI': testLoadDataAPI,
'testResizeEvents': testResizeEvents,
'testPerOriginZoomMode': testPerOriginZoomMode,
« 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