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

Unified Diff: chrome/test/data/extensions/api_test/webrequest/test_declarative.js

Issue 10982044: Adding thirdParty property to RequestMatcher (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reordered the unit-test to spare setting up some URLs. Created 8 years, 2 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
« no previous file with comments | « chrome/test/data/extensions/api_test/webrequest/manifest.json ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/extensions/api_test/webrequest/test_declarative.js
diff --git a/chrome/test/data/extensions/api_test/webrequest/test_declarative.js b/chrome/test/data/extensions/api_test/webrequest/test_declarative.js
index 91fb9aeafcb8f1ec5b54b4f52b136cd8c598f889..9edb294f3d6df0154a686ca36b10c282a5dec8a6 100644
--- a/chrome/test/data/extensions/api_test/webrequest/test_declarative.js
+++ b/chrome/test/data/extensions/api_test/webrequest/test_declarative.js
@@ -56,6 +56,12 @@ function getURLHttpWithHeaders() {
"files/extensions/api_test/webrequest/declarative/headers.html");
}
+function getURLThirdParty() {
+ // Returns the URL of a HTML document with a third-party resource.
+ return getServerURL(
+ "files/extensions/api_test/webrequest/declarative/third-party.html");
+}
+
function getURLSetCookie() {
return getServerURL('set-cookie?Foo=Bar');
}
@@ -79,6 +85,79 @@ function getURLHttpSimpleOnB() {
"b.com");
}
+// Shared test sections.
+function cancelThirdPartyExpected() {
+ return [
+ { label: "onBeforeRequest",
+ event: "onBeforeRequest",
+ details: {
+ url: getURLThirdParty(),
+ frameUrl: getURLThirdParty()
+ }
+ },
+ { label: "onBeforeSendHeaders",
+ event: "onBeforeSendHeaders",
+ details: {url: getURLThirdParty()}
+ },
+ { label: "onSendHeaders",
+ event: "onSendHeaders",
+ details: {url: getURLThirdParty()}
+ },
+ { label: "onHeadersReceived",
+ event: "onHeadersReceived",
+ details: {
+ url: getURLThirdParty(),
+ statusLine: "HTTP/1.0 200 OK"
+ }
+ },
+ { label: "onResponseStarted",
+ event: "onResponseStarted",
+ details: {
+ url: getURLThirdParty(),
+ fromCache: false,
+ ip: "127.0.0.1",
+ statusCode: 200,
+ statusLine: "HTTP/1.0 200 OK"
+ }
+ },
+ { label: "onCompleted",
+ event: "onCompleted",
+ details: {
+ fromCache: false,
+ ip: "127.0.0.1",
+ url: getURLThirdParty(),
+ statusCode: 200,
+ statusLine: "HTTP/1.0 200 OK"
+ }
+ },
+ { label: "img-onBeforeRequest",
+ event: "onBeforeRequest",
+ details: {
+ type: "image",
+ url: "http://non_existing_third_party.com/image.png",
+ frameUrl: getURLThirdParty()
+ }
+ },
+ { label: "img-onErrorOccurred",
+ event: "onErrorOccurred",
+ details: {
+ error: "net::ERR_BLOCKED_BY_CLIENT",
+ fromCache: false,
+ type: "image",
+ url: "http://non_existing_third_party.com/image.png"
+ }
+ },
+ ];
+}
+
+function cancelThirdPartyExpectedOrder() {
+ return [
+ ["onBeforeRequest", "onBeforeSendHeaders", "onSendHeaders",
+ "onHeadersReceived", "onResponseStarted", "onCompleted"],
+ ["img-onBeforeRequest", "img-onErrorOccurred"]
+ ];
+}
+
runTests([
function testCancelRequest() {
@@ -114,6 +193,42 @@ runTests([
);
},
+ // Tests that "thirdPartyForCookies: true" matches third party requests.
+ function testThirdParty() {
+ ignoreUnexpected = false;
+ expect(cancelThirdPartyExpected(), cancelThirdPartyExpectedOrder());
+ onRequest.addRules(
+ [ {'conditions': [new RequestMatcher({thirdPartyForCookies: true})],
+ 'actions': [new chrome.declarativeWebRequest.CancelRequest()]},],
+ function() {navigateAndWait(getURLThirdParty());}
+ );
+ },
+
+ // Tests that "thirdPartyForCookies: false" matches first party requests,
+ // by cancelling all requests, and overriding the cancelling rule only for
+ // requests matching "thirdPartyForCookies: false".
+ function testFirstParty() {
+ ignoreUnexpected = false;
+ expect(cancelThirdPartyExpected(), cancelThirdPartyExpectedOrder());
+ onRequest.addRules(
+ [ {'priority': 2,
+ 'conditions': [
+ new RequestMatcher({thirdPartyForCookies: false})
+ ],
+ 'actions': [
+ new chrome.declarativeWebRequest.IgnoreRules({
+ lowerPriorityThan: 2 })
+ ]
+ },
+ {'priority': 1,
+ 'conditions': [new RequestMatcher({})],
+ 'actions': [new chrome.declarativeWebRequest.CancelRequest()]
+ },
+ ],
+ function() {navigateAndWait(getURLThirdParty());}
+ );
+ },
+
function testRedirectRequest() {
ignoreUnexpected = true;
expect(
« no previous file with comments | « chrome/test/data/extensions/api_test/webrequest/manifest.json ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698