Properly pass postData into new tab

https://github.com/MoonchildProductions/moebius/pull/352
This commit is contained in:
janekptacijarabaci 2018-03-01 17:29:55 +01:00 • committed by Roy Tam
commit 27538800b5
3 changed files with 43 additions and 2 deletions

View file

@ -17,6 +17,7 @@ DevToolsModules(
'events.js', 'events.js',
'filter-predicates.js', 'filter-predicates.js',
'l10n.js', 'l10n.js',
'open-request-in-tab.js',
'panel.js', 'panel.js',
'performance-statistics-view.js', 'performance-statistics-view.js',
'prefs.js', 'prefs.js',

View file

@ -0,0 +1,40 @@
/* 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,
};

View file

@ -10,6 +10,7 @@ const Services = require("Services");
const { Task } = require("devtools/shared/task"); const { Task } = require("devtools/shared/task");
const { Curl } = require("devtools/client/shared/curl"); const { Curl } = require("devtools/client/shared/curl");
const { gDevTools } = require("devtools/client/framework/devtools"); const { gDevTools } = require("devtools/client/framework/devtools");
const { openRequestInTab } = require("devtools/client/netmonitor/open-request-in-tab");
const Menu = require("devtools/client/framework/menu"); const Menu = require("devtools/client/framework/menu");
const MenuItem = require("devtools/client/framework/menu-item"); const MenuItem = require("devtools/client/framework/menu-item");
const { L10N } = require("./l10n"); const { L10N } = require("./l10n");
@ -186,8 +187,7 @@ RequestListContextMenu.prototype = {
*/ */
openRequestInTab() { openRequestInTab() {
let win = Services.wm.getMostRecentWindow(gDevTools.chromeWindowType); let win = Services.wm.getMostRecentWindow(gDevTools.chromeWindowType);
let { url } = this.selectedItem.attachment; openRequestInTab(this.selectedItem.attachment);
win.openUILinkIn(url, "tab", { relatedToCurrent: true });
}, },
/** /**