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

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

Issue 28273006: <webview>: Implement declarativeWebRequest API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Istiaque's comments Created 7 years, 1 month 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/newwindow/embedder.js
diff --git a/chrome/test/data/extensions/platform_apps/web_view/newwindow/embedder.js b/chrome/test/data/extensions/platform_apps/web_view/newwindow/embedder.js
index 10c72d79d591334ce4686097810eb92c30f17b1b..934827619939b0d48724d1d6cdda2c4062a0a228 100644
--- a/chrome/test/data/extensions/platform_apps/web_view/newwindow/embedder.js
+++ b/chrome/test/data/extensions/platform_apps/web_view/newwindow/embedder.js
@@ -328,6 +328,48 @@ function testNewWindowWebRequest() {
embedder.setUpNewWindowRequest_(webview, 'guest.html', '', testName);
}
+// This test verifies that declarative rules added prior to new window
+// attachment apply correctly.
+function testNewWindowDeclarativeWebRequest() {
+ var testName = 'testNewWindowWebRequest';
+ var webview = embedder.setUpGuest_('foobar');
+
+ var onNewWindow = function(e) {
+ chrome.test.log('Embedder notified on newwindow');
+ embedder.assertCorrectEvent_(e, '');
+
+ var newwebview = new WebView();
+ var rule = {
+ conditions: [
+ new chrome.webViewRequest.RequestMatcher(
+ {
+ url: { urlContains: 'guest' }
+ }
+ )
+ ],
+ actions: [
+ new chrome.webViewRequest.CancelRequest()
+ ]
+ };
+ newwebview.request.onRequest.addRules([rule]);
+ newwebview.addEventListener('loadabort', function(e) {
+ embedder.test.assertEq('ERR_BLOCKED_BY_CLIENT', e.reason);
+ embedder.test.succeed();
+ });
+ document.querySelector('#webview-tag-container').appendChild(newwebview);
+ e.preventDefault();
+ try {
+ e.window.attach(newwebview);
+ } catch (e) {
+ embedder.test.fail();
+ }
+ };
+ webview.addEventListener('newwindow', onNewWindow);
+
+ // Load a new window with the given name.
+ embedder.setUpNewWindowRequest_(webview, 'guest.html', '', testName);
+}
+
// This test verifies that a WebRequest event listener's lifetime is not
// tied to the context in which it was created but instead at least the
// lifetime of the embedder window to which it was attached.
@@ -421,6 +463,7 @@ embedder.test.testList = {
'testNewWindowClose': testNewWindowClose,
'testNewWindowExecuteScript': testNewWindowExecuteScript,
'testNewWindowOpenInNewTab': testNewWindowOpenInNewTab,
+ 'testNewWindowDeclarativeWebRequest': testNewWindowDeclarativeWebRequest,
'testNewWindowWebRequest': testNewWindowWebRequest,
'testNewWindowWebRequestCloseWindow': testNewWindowWebRequestCloseWindow,
'testNewWindowWebRequestRemoveElement': testNewWindowWebRequestRemoveElement

Powered by Google App Engine
This is Rietveld 408576698