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

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

Issue 1515703005: WebRequest API: add more resource types (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Replace == with && 2x Created 5 years 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/api_test/webrequest/test_types.js
diff --git a/chrome/test/data/extensions/api_test/webrequest/test_types.js b/chrome/test/data/extensions/api_test/webrequest/test_types.js
new file mode 100644
index 0000000000000000000000000000000000000000..3ec81835850a7482a1abecb005ad71c95167b321
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/webrequest/test_types.js
@@ -0,0 +1,411 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function getStyleURL() {
+ // This is not a style sheet, but it must still be classified as "stylesheet"
+ // because it is loaded as a style sheet.
+ return getServerURL('empty.html?as-style');
+}
+
+function getFontURL() {
+ // Not a font, but will be loaded as a font.
+ return getServerURL('empty.html?as-font');
+}
+
+function getWorkerURL() {
+ // This file is empty, so it does not generate JavaScript errors when loaded
+ // as a worker script.
+ return getServerURL('empty.html?as-worker');
+}
+
+function getPingURL() {
+ return getServerURL('empty.html?as-ping');
+}
+
+function getBeaconURL() {
+ return getServerURL('empty.html?as-beacon');
+}
+
+runTests([
+ function typeStylesheet() {
+ expect([
+ { label: 'onBeforeRequest',
+ event: 'onBeforeRequest',
+ details: {
+ type: 'stylesheet',
+ url: getStyleURL(),
+ frameUrl: 'unknown frame URL',
+ // tabId 0 = tab opened by test runner;
+ // tabId 1 = this tab.
+ tabId: 1,
+ }
+ },
+ { label: 'onBeforeSendHeaders',
+ event: 'onBeforeSendHeaders',
+ details: {
+ type: 'stylesheet',
+ url: getStyleURL(),
+ tabId: 1,
+ },
+ },
+ { label: 'onSendHeaders',
+ event: 'onSendHeaders',
+ details: {
+ type: 'stylesheet',
+ url: getStyleURL(),
+ tabId: 1,
+ },
+ },
+ { label: 'onHeadersReceived',
+ event: 'onHeadersReceived',
+ details: {
+ type: 'stylesheet',
+ url: getStyleURL(),
+ tabId: 1,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ },
+ { label: 'onResponseStarted',
+ event: 'onResponseStarted',
+ details: {
+ type: 'stylesheet',
+ url: getStyleURL(),
+ tabId: 1,
+ ip: '127.0.0.1',
+ fromCache: false,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ },
+ { label: 'onCompleted',
+ event: 'onCompleted',
+ details: {
+ type: 'stylesheet',
+ url: getStyleURL(),
+ tabId: 1,
+ ip: '127.0.0.1',
+ fromCache: false,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ }],
+ [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders',
+ 'onHeadersReceived', 'onResponseStarted', 'onCompleted']]);
+ var style = document.createElement('link');
+ style.rel = 'stylesheet';
+ style.type = 'text/css';
+ style.href = getStyleURL();
+ document.body.appendChild(style);
+ },
+
+ function typeFont() {
+ expect([
+ { label: 'onBeforeRequest',
+ event: 'onBeforeRequest',
+ details: {
+ type: 'font',
+ url: getFontURL(),
+ frameUrl: 'unknown frame URL',
+ // tabId 0 = tab opened by test runner;
+ // tabId 1 = this tab.
+ tabId: 1,
+ }
+ },
+ { label: 'onBeforeSendHeaders',
+ event: 'onBeforeSendHeaders',
+ details: {
+ type: 'font',
+ url: getFontURL(),
+ tabId: 1,
+ },
+ },
+ { label: 'onSendHeaders',
+ event: 'onSendHeaders',
+ details: {
+ type: 'font',
+ url: getFontURL(),
+ tabId: 1,
+ },
+ },
+ { label: 'onHeadersReceived',
+ event: 'onHeadersReceived',
+ details: {
+ type: 'font',
+ url: getFontURL(),
+ tabId: 1,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ },
+ { label: 'onResponseStarted',
+ event: 'onResponseStarted',
+ details: {
+ type: 'font',
+ url: getFontURL(),
+ tabId: 1,
+ ip: '127.0.0.1',
+ fromCache: false,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ },
+ { label: 'onCompleted',
+ event: 'onCompleted',
+ details: {
+ type: 'font',
+ url: getFontURL(),
+ tabId: 1,
+ ip: '127.0.0.1',
+ fromCache: false,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ }],
+ [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders',
+ 'onHeadersReceived', 'onResponseStarted', 'onCompleted']]);
+
+ new FontFace('allegedly-a-font-family', 'url(' + getFontURL() + ')').load();
+ },
+
+ function typeWorker() {
+ expect([
+ { label: 'onBeforeRequest',
+ event: 'onBeforeRequest',
+ details: {
+ type: 'script',
+ url: getWorkerURL(),
+ frameUrl: 'unknown frame URL',
+ // tabId 0 = tab opened by test runner;
+ // tabId 1 = this tab.
+ tabId: 1,
+ }
+ },
+ { label: 'onBeforeSendHeaders',
+ event: 'onBeforeSendHeaders',
+ details: {
+ type: 'script',
+ url: getWorkerURL(),
+ tabId: 1,
+ },
+ },
+ { label: 'onSendHeaders',
+ event: 'onSendHeaders',
+ details: {
+ type: 'script',
+ url: getWorkerURL(),
+ tabId: 1,
+ },
+ },
+ { label: 'onHeadersReceived',
+ event: 'onHeadersReceived',
+ details: {
+ type: 'script',
+ url: getWorkerURL(),
+ tabId: 1,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ },
+ { label: 'onResponseStarted',
+ event: 'onResponseStarted',
+ details: {
+ type: 'script',
+ url: getWorkerURL(),
+ tabId: 1,
+ ip: '127.0.0.1',
+ fromCache: false,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ },
+ { label: 'onCompleted',
+ event: 'onCompleted',
+ details: {
+ type: 'script',
+ url: getWorkerURL(),
+ tabId: 1,
+ ip: '127.0.0.1',
+ fromCache: false,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ }],
+ [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders',
+ 'onHeadersReceived', 'onResponseStarted', 'onCompleted']]);
+
+ new Worker(getWorkerURL());
+
+ // TODO(robwu): add tests for SharedWorker and ServiceWorker.
+ // (probably same as above, but using -1 because they are not specific to
+ // any tab. In general we really need a lot more test coverage for the
+ // interaction between Service workers and extensions.)
+ },
+
+ function typePing() {
+ expect([
+ { label: 'onBeforeRequest',
+ event: 'onBeforeRequest',
+ details: {
+ type: 'ping',
+ method: 'POST',
+ url: getPingURL(),
+ frameUrl: 'unknown frame URL',
+ // TODO(robwu): Ping / beacons are not associated with a tab/frame
+ // because they are detached requests. However, it would be useful if
+ // the frameId and tabId are set to the source of the request.
+ // See crbug.com/522124.
+ frameId: -1,
+ tabId: -1,
+ }
+ },
+ { label: 'onBeforeSendHeaders',
+ event: 'onBeforeSendHeaders',
+ details: {
+ type: 'ping',
+ method: 'POST',
+ url: getPingURL(),
+ frameId: -1,
+ tabId: -1,
+ },
+ },
+ { label: 'onSendHeaders',
+ event: 'onSendHeaders',
+ details: {
+ type: 'ping',
+ method: 'POST',
+ url: getPingURL(),
+ frameId: -1,
+ tabId: -1,
+ },
+ },
+ { label: 'onHeadersReceived',
+ event: 'onHeadersReceived',
+ details: {
+ type: 'ping',
+ method: 'POST',
+ url: getPingURL(),
+ frameId: -1,
+ tabId: -1,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ },
+ { label: 'onResponseStarted',
+ event: 'onResponseStarted',
+ details: {
+ type: 'ping',
+ method: 'POST',
+ url: getPingURL(),
+ frameId: -1,
+ tabId: -1,
+ ip: '127.0.0.1',
+ fromCache: false,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ },
+ { label: 'onCompleted',
+ event: 'onCompleted',
+ details: {
+ type: 'ping',
+ method: 'POST',
+ url: getPingURL(),
+ frameId: -1,
+ tabId: -1,
+ ip: '127.0.0.1',
+ fromCache: false,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ }],
+ [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders',
+ 'onHeadersReceived', 'onResponseStarted', 'onCompleted']]);
+
+ var a = document.createElement('a');
+ a.ping = getPingURL();
+ a.href = 'javascript:';
+ a.click();
+ },
+
+ function typeBeacon() {
+ expect([
+ { label: 'onBeforeRequest',
+ event: 'onBeforeRequest',
+ details: {
+ type: 'ping',
+ method: 'POST',
+ url: getBeaconURL(),
+ frameUrl: 'unknown frame URL',
+ // TODO(robwu): these IDs should not be -1. See comment at typePing.
+ frameId: -1,
+ tabId: -1,
+ }
+ },
+ { label: 'onBeforeSendHeaders',
+ event: 'onBeforeSendHeaders',
+ details: {
+ type: 'ping',
+ method: 'POST',
+ url: getBeaconURL(),
+ frameId: -1,
+ tabId: -1,
+ },
+ },
+ { label: 'onSendHeaders',
+ event: 'onSendHeaders',
+ details: {
+ type: 'ping',
+ method: 'POST',
+ url: getBeaconURL(),
+ frameId: -1,
+ tabId: -1,
+ },
+ },
+ { label: 'onHeadersReceived',
+ event: 'onHeadersReceived',
+ details: {
+ type: 'ping',
+ method: 'POST',
+ url: getBeaconURL(),
+ frameId: -1,
+ tabId: -1,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ },
+ { label: 'onResponseStarted',
+ event: 'onResponseStarted',
+ details: {
+ type: 'ping',
+ method: 'POST',
+ url: getBeaconURL(),
+ frameId: -1,
+ tabId: -1,
+ ip: '127.0.0.1',
+ fromCache: false,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ },
+ { label: 'onCompleted',
+ event: 'onCompleted',
+ details: {
+ type: 'ping',
+ method: 'POST',
+ url: getBeaconURL(),
+ frameId: -1,
+ tabId: -1,
+ ip: '127.0.0.1',
+ fromCache: false,
+ statusLine: 'HTTP/1.1 200 OK',
+ statusCode: 200,
+ },
+ }],
+ [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders',
+ 'onHeadersReceived', 'onResponseStarted', 'onCompleted']]);
+
+ navigator.sendBeacon(getBeaconURL(), 'beacon data');
+ },
+]);

Powered by Google App Engine
This is Rietveld 408576698