Created
November 6, 2019 23:27
-
-
Save mixedpuppy/8698a7d40bda0dd461793a3533011a43 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js b/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | |
--- a/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | |
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | |
@@ -25,16 +25,61 @@ server.registerPathHandler("/dummy.xhtml | |
response.write(String.raw`<?xml version="1.0"?> | |
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> | |
<head/> | |
<body/> | |
</html> | |
`); | |
}); | |
+add_task(async function test_replace_data() { | |
+ let extension = ExtensionTestUtils.loadExtension({ | |
+ background() { | |
+ browser.webRequest.onBeforeRequest.addListener( | |
+ request => { | |
+ let filter = browser.webRequest.filterResponseData(request.requestId); | |
+ let decoder = new TextDecoder("utf-8"); | |
+ let encoder = new TextEncoder(); | |
+ | |
+ filter.ondata = event => { | |
+ let str = decoder.decode(event.data, { stream: true }); | |
+ str = str.replace(/ok/g, "WebExtension Example"); | |
+ filter.write(encoder.encode(str)); | |
+ filter.disconnect(); | |
+ }; | |
+ }, | |
+ { | |
+ urls: ["http://example.com/dummy"], | |
+ types: ["main_frame"], | |
+ }, | |
+ ["blocking"] | |
+ ); | |
+ }, | |
+ | |
+ manifest: { | |
+ permissions: ["webRequest", "webRequestBlocking", "http://example.com/"], | |
+ }, | |
+ }); | |
+ | |
+ await extension.startup(); | |
+ | |
+ let contentPage = await ExtensionTestUtils.loadContentPage( | |
+ "http://example.com/dummy" | |
+ ); | |
+ | |
+ let content = await contentPage.spawn(null, () => { | |
+ return this.content.document.body.textContent; | |
+ }); | |
+ | |
+ equal(content, "WebExtension Example", `expected url`); | |
+ | |
+ await contentPage.close(); | |
+ await extension.unload(); | |
+}); | |
+ | |
// Tests that the stream filter request is added to the document's load | |
// group, and blocks an XML document's load event until after the filter | |
// stops sending data. | |
add_task(async function test_xml_document_loadgroup_blocking() { | |
let extension = ExtensionTestUtils.loadExtension({ | |
background() { | |
browser.webRequest.onBeforeRequest.addListener( | |
request => { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment