Chromium Code Reviews| Index: chrome/test/data/extensions/api_test/webrequest/test_unload4.js |
| diff --git a/chrome/test/data/extensions/api_test/webrequest/test_unload4.js b/chrome/test/data/extensions/api_test/webrequest/test_unload4.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..15ffe618fdb0483105e6822bc2b0e0b42ac96cdc |
| --- /dev/null |
| +++ b/chrome/test/data/extensions/api_test/webrequest/test_unload4.js |
| @@ -0,0 +1,135 @@ |
| +// Copyright 2016 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. |
| + |
| +runTests([ |
| + // Load a slow image in an frame and remove the frame. |
|
battre
2016/05/23 11:17:07
nit: in a frame
robwu
2016/05/23 11:51:03
Done.
|
| + function loadImageAndRemoveFrame() { |
| + const hostname = 'slow-resourcetype-image-remove-frame'; |
| + const url = getSlowURL(hostname); |
| + const mainUrl = getPageWithFrame('empty.html', hostname); |
| + |
| + expect([ |
| + { label: 'onBeforeRequest', |
| + event: 'onBeforeRequest', |
| + details: { |
| + type: 'image', |
| + url, |
| + frameId: 1, |
| + parentFrameId: 0, |
| + frameUrl: 'unknown frame URL', |
| + } |
| + }, |
| + { label: 'onBeforeSendHeaders', |
| + event: 'onBeforeSendHeaders', |
| + details: { |
| + type: 'image', |
| + url, |
| + frameId: 1, |
| + parentFrameId: 0, |
| + }, |
| + }, |
| + { label: 'onSendHeaders', |
| + event: 'onSendHeaders', |
| + details: { |
| + type: 'image', |
| + url, |
| + frameId: 1, |
| + parentFrameId: 0, |
| + }, |
| + }, |
| + { label: 'onErrorOccurred', |
| + event: 'onErrorOccurred', |
| + details: { |
| + type: 'image', |
| + url, |
| + frameId: 1, |
| + parentFrameId: 0, |
| + fromCache: false, |
| + error: 'net::ERR_ABORTED', |
| + }, |
| + }], |
| + [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders', |
| + 'onErrorOccurred']], |
| + { |
| + urls: ['<all_urls>'], |
| + types: ['image'], |
| + }); |
| + |
| + waitUntilSendHeaders('image', url, function() { |
| + // Cancels load and triggers onErrorOccurred. |
| + chrome.tabs.executeScript(tabId, { |
| + code: 'document.querySelector("iframe").remove();', |
| + }); |
| + }); |
| + |
| + navigateAndWait(mainUrl, function() { |
| + chrome.tabs.executeScript(tabId, { |
| + allFrames: true, |
| + code: `if (top !== window) { |
| + var img = new Image(); |
| + img.src = '${url}'; |
| + }` |
| + }); |
| + }); |
| + }, |
| + |
| + // Load a slow image in the main frame and close the tab. |
| + function loadImageAndRemoveTab() { |
| + const hostname = 'slow-resourcetype-image-remove-tab'; |
| + const url = getSlowURL(hostname); |
| + const mainUrl = getServerURL('empty.html', hostname); |
| + |
| + expect([ |
| + { label: 'onBeforeRequest', |
| + event: 'onBeforeRequest', |
| + details: { |
| + type: 'image', |
| + url, |
| + frameUrl: 'unknown frame URL', |
| + } |
| + }, |
| + { label: 'onBeforeSendHeaders', |
| + event: 'onBeforeSendHeaders', |
| + details: { |
| + type: 'image', |
| + url, |
| + }, |
| + }, |
| + { label: 'onSendHeaders', |
| + event: 'onSendHeaders', |
| + details: { |
| + type: 'image', |
| + url, |
| + }, |
| + }, |
| + { label: 'onErrorOccurred', |
| + event: 'onErrorOccurred', |
| + details: { |
| + type: 'image', |
| + url, |
| + fromCache: false, |
| + error: 'net::ERR_ABORTED', |
| + }, |
| + }], |
| + [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders', |
| + 'onErrorOccurred']], |
| + { |
| + urls: ['<all_urls>'], |
| + types: ['image'], |
| + }); |
| + |
| + var callbackDone = chrome.test.callbackAdded(); |
| + |
| + waitUntilSendHeaders('image', url, function() { |
| + // Cancels load and triggers onErrorOccurred. |
| + chrome.tabs.remove(tabId, callbackDone); |
| + }), |
| + |
| + navigateAndWait(mainUrl, function() { |
| + chrome.tabs.executeScript(tabId, { |
| + code: `var img = new Image(); img.src = '${url}';` |
| + }); |
| + }); |
| + }, |
| +]); |