41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
/* eslint-disable mozilla/reject-some-requires */
|
|
|
|
"use strict";
|
|
|
|
let { Cc, Ci } = require("chrome");
|
|
const Services = require("Services");
|
|
const { gDevTools } = require("devtools/client/framework/devtools");
|
|
|
|
/**
|
|
* Opens given request in a new tab.
|
|
*/
|
|
function openRequestInTab(request) {
|
|
let win = Services.wm.getMostRecentWindow(gDevTools.chromeWindowType);
|
|
let rawData = request.requestPostData ? request.requestPostData.postData : null;
|
|
let postData;
|
|
|
|
if (rawData && rawData.text) {
|
|
let stringStream = getInputStreamFromString(rawData.text);
|
|
postData = Cc["@mozilla.org/network/mime-input-stream;1"]
|
|
.createInstance(Ci.nsIMIMEInputStream);
|
|
postData.addHeader("Content-Type", "application/x-www-form-urlencoded");
|
|
postData.setData(stringStream);
|
|
}
|
|
|
|
win.gBrowser.selectedTab = win.gBrowser.addTab(request.url, null, null, postData);
|
|
}
|
|
|
|
function getInputStreamFromString(data) {
|
|
let stringStream = Cc["@mozilla.org/io/string-input-stream;1"]
|
|
.createInstance(Ci.nsIStringInputStream);
|
|
stringStream.data = data;
|
|
return stringStream;
|
|
}
|
|
|
|
module.exports = {
|
|
openRequestInTab,
|
|
};
|