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

Unified Diff: chrome/test/data/extensions/platform_apps/web_view/geolocation/cancel_request/embedder.js

Issue 13712002: Fix Guest geolocation API, we were using |bridge_id| and |request_id| interchangeably which is wron… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync. Created 7 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/geolocation/cancel_request/embedder.js
diff --git a/chrome/test/data/extensions/platform_apps/web_view/geolocation/embedder_has_no_permission/embedder.js b/chrome/test/data/extensions/platform_apps/web_view/geolocation/cancel_request/embedder.js
similarity index 60%
copy from chrome/test/data/extensions/platform_apps/web_view/geolocation/embedder_has_no_permission/embedder.js
copy to chrome/test/data/extensions/platform_apps/web_view/geolocation/cancel_request/embedder.js
index e9d56bf119fada9f590e93fd4aee4654da98117a..747270489bdb06f39847076c5c921585d654220b 100644
--- a/chrome/test/data/extensions/platform_apps/web_view/geolocation/embedder_has_no_permission/embedder.js
+++ b/chrome/test/data/extensions/platform_apps/web_view/geolocation/cancel_request/embedder.js
@@ -3,15 +3,19 @@
// found in the LICENSE file.
var embedder = {};
-embedder.tests = {};
embedder.baseGuestURL = '';
embedder.guestURL = '';
+embedder.iframeURL = '';
-embedder.setUp = function(config) {
+/** @private */
+embedder.setUp_ = function(config) {
embedder.baseGuestURL = 'http://localhost:' + config.testServer.port;
embedder.guestURL = embedder.baseGuestURL +
'/files/extensions/platform_apps/web_view/geolocation' +
- '/geolocation_access_guest.html';
+ '/cancel_request/pages/guest.html';
+ embedder.iframeURL = embedder.baseGuestURL +
+ '/files/extensions/platform_apps/web_view/geolocation' +
+ '/cancel_request/pages/iframe.html';
chrome.test.log('Guest url is: ' + embedder.guestURL);
};
@@ -23,21 +27,29 @@ embedder.setUpGuest_ = function() {
'></webview>';
var webview = document.querySelector('webview');
if (!webview) {
- chrome.test.fail('No <webview> element created');
+ chrome.test.fail();
}
return webview;
};
/** @private */
-embedder.setUpLoadStop_ = function(webview, testName) {
- var onWebViewLoadStop = function(e) {
+embedder.setUpLoadCommit_ = function(webview, testName, opt_iframeURL) {
+ var onWebViewLoadCommit = function(e) {
+ if (!e.isTopLevel) {
+ return;
+ }
// Send post message to <webview> when it's ready to receive them.
- webview.contentWindow.postMessage(
- JSON.stringify(['check-geolocation-permission', '' + testName]), '*');
+ var msgArray = [
+ 'test-cancel-geolocation',
+ '' + testName,
+ embedder.iframeURL
+ ];
+ webview.contentWindow.postMessage(JSON.stringify(msgArray), '*');
};
- webview.addEventListener('loadstop', onWebViewLoadStop);
+ webview.addEventListener('loadcommit', onWebViewLoadCommit);
};
+
/** @private */
embedder.registerAndWaitForPostMessage_ = function(
webview, expectedData) {
@@ -63,49 +75,33 @@ embedder.assertCorrectEvent_ = function(e) {
chrome.test.assertFalse('userGesture' in e);
};
-// Tests begin.
-
-// Embedder does not have geolocation permission, so geolocation access is
-// always denied for these tests.
-
-// Calling deny() results in deny.
-embedder.tests.testDenyDenies = function testDenyDenies() {
- var webview = embedder.setUpGuest_();
-
- var onPermissionRequest = function(e) {
- chrome.test.log('Embedder notified on permissionRequest');
- embedder.assertCorrectEvent_(e);
- e.request.deny();
- };
- webview.addEventListener('permissionrequest', onPermissionRequest);
+var g_requestObject;
- embedder.setUpLoadStop_(webview, 'test1');
- embedder.registerAndWaitForPostMessage_(
- webview, ['test1', 'access-denied']);
-};
+// Tests begin.
-// Calling allow() results in deny too.
-embedder.tests.testAllowDenies = function testAllowDenies() {
+// Tests CancelGeolocationPermission code path.
+function testCancelGeolocationInIFrame() {
var webview = embedder.setUpGuest_();
var onPermissionRequest = function(e) {
chrome.test.log('Embedder notified on permissionRequest');
embedder.assertCorrectEvent_(e);
- e.request.allow();
+ e.preventDefault();
+ // keep a reference to request object so the permission keeps hanging.
+ g_requestObject = e.request;
};
webview.addEventListener('permissionrequest', onPermissionRequest);
- embedder.setUpLoadStop_(webview, 'test2');
+ embedder.setUpLoadCommit_(webview, 'test1');
embedder.registerAndWaitForPostMessage_(
- webview, ['test2', 'access-denied']);
-};
+ webview, ['test1', 'PASSED']);
+}
onload = function() {
chrome.test.getConfig(function(config) {
- embedder.setUp(config);
+ embedder.setUp_(config);
chrome.test.runTests([
- embedder.tests.testDenyDenies,
- embedder.tests.testAllowDenies
+ testCancelGeolocationInIFrame,
]);
});
};

Powered by Google App Engine
This is Rietveld 408576698