Bug 1445801 - Remove unsafe CPOWs in JSON Viewer tests
MozReview-Commit-ID: L4B2Zc0dXpn
--- a/devtools/client/jsonview/test/browser.ini
+++ b/devtools/client/jsonview/test/browser.ini
@@ -19,64 +19,41 @@ support-files =
valid_json.json
valid_json.json^headers^
!/devtools/client/commandline/test/head.js
!/devtools/client/framework/test/head.js
!/devtools/client/shared/test/frame-script-utils.js
!/devtools/client/shared/test/shared-head.js
[browser_json_refresh.js]
-uses-unsafe-cpows = true
[browser_jsonview_bug_1380828.js]
-uses-unsafe-cpows = true
[browser_jsonview_chunked_json.js]
support-files =
chunked_json.sjs
[browser_jsonview_content_type.js]
-uses-unsafe-cpows = true
[browser_jsonview_copy_headers.js]
-uses-unsafe-cpows = true
subsuite = clipboard
skip-if = (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
[browser_jsonview_copy_json.js]
-uses-unsafe-cpows = true
subsuite = clipboard
skip-if = (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
[browser_jsonview_copy_rawdata.js]
-uses-unsafe-cpows = true
subsuite = clipboard
skip-if = (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
[browser_jsonview_csp_json.js]
-uses-unsafe-cpows = true
[browser_jsonview_empty_object.js]
-uses-unsafe-cpows = true
[browser_jsonview_encoding.js]
-uses-unsafe-cpows = true
[browser_jsonview_filter.js]
-uses-unsafe-cpows = true
[browser_jsonview_ignore_charset.js]
-uses-unsafe-cpows = true
[browser_jsonview_invalid_json.js]
-uses-unsafe-cpows = true
[browser_jsonview_manifest.js]
-uses-unsafe-cpows = true
[browser_jsonview_nojs.js]
-uses-unsafe-cpows = true
[browser_jsonview_nul.js]
-uses-unsafe-cpows = true
[browser_jsonview_object-type.js]
-uses-unsafe-cpows = true
[browser_jsonview_row_selection.js]
-uses-unsafe-cpows = true
[browser_jsonview_save_json.js]
-uses-unsafe-cpows = true
support-files =
!/toolkit/content/tests/browser/common/mockTransfer.js
[browser_jsonview_serviceworker.js]
-uses-unsafe-cpows = true
[browser_jsonview_slash.js]
-uses-unsafe-cpows = true
[browser_jsonview_theme.js]
-uses-unsafe-cpows = true
[browser_jsonview_url_linkification.js]
-uses-unsafe-cpows = true
[browser_jsonview_valid_json.js]
-uses-unsafe-cpows = true
--- a/devtools/client/jsonview/test/head.js
+++ b/devtools/client/jsonview/test/head.js
@@ -65,33 +65,34 @@ async function addJsonViewTab(url, {
}, Ci.nsIWebProgress.NOTIFY_LOCATION);
})]);
// Load devtools/shared/test/frame-script-utils.js
loadFrameScriptUtils();
let rootDir = getRootDirectory(gTestPath);
// Catch RequireJS errors (usually timeouts)
- let error = tabLoaded.then(() => new Promise((resolve, reject) => {
- // eslint-disable-next-line mozilla/no-cpows-in-tests
- let {requirejs} = gBrowser.contentWindowAsCPOW.wrappedJSObject;
- if (requirejs) {
- requirejs.onError = err => {
- info(err);
- ok(false, "RequireJS error");
- reject(err);
- };
- }
+ let error = tabLoaded.then(() => ContentTask.spawn(browser, null, function() {
+ return new Promise((resolve, reject) => {
+ let {requirejs} = content.wrappedJSObject;
+ if (requirejs) {
+ requirejs.onError = err => {
+ info(err);
+ ok(false, "RequireJS error");
+ reject(err);
+ };
+ }
+ });
}));
let data = {rootDir, appReadyState, docReadyState};
// eslint-disable-next-line no-shadow
await Promise.race([error, ContentTask.spawn(browser, data, async function(data) {
// Check if there is a JSONView object.
- let {JSONView} = content.window.wrappedJSObject;
+ let {JSONView} = content.wrappedJSObject;
if (!JSONView) {
throw new Error("The JSON Viewer did not load.");
}
// Load frame script with helpers for JSON View tests.
let frameScriptUrl = data.rootDir + "doc_frame_script.js";
Services.scriptloader.loadSubScript(frameScriptUrl, {}, "UTF-8");
@@ -99,17 +100,17 @@ async function addJsonViewTab(url, {
let docReadyIndex = docReadyStates.indexOf(data.docReadyState);
let appReadyStates = ["uninitialized", ...docReadyStates];
let appReadyIndex = appReadyStates.indexOf(data.appReadyState);
if (docReadyIndex < 0 || appReadyIndex < 0) {
throw new Error("Invalid app or doc readyState parameter.");
}
// Wait until the document readyState suffices.
- let {document} = content.window;
+ let {document} = content;
while (docReadyStates.indexOf(document.readyState) < docReadyIndex) {
info(`DocReadyState is "${document.readyState}". Await "${data.docReadyState}"`);
await new Promise(resolve => {
document.addEventListener("readystatechange", resolve, {once: true});
});
}
// Wait until the app readyState suffices.