Commit b4c701d2 authored by allada's avatar allada Committed by Commit bot

[Devtools] Added Copy All as cURL to network log

Added a context menu option which you can get all requests seperated by
a semicolon and new lines for users that want to get all or most of the
requests as curl commands from devtools

BUG=466923

Review-Url: https://codereview.chromium.org/2177383003
Cr-Commit-Position: refs/heads/master@{#408257}
parent b4cd5143
...@@ -117,11 +117,12 @@ WebInspector.HandlerRegistry.prototype = { ...@@ -117,11 +117,12 @@ WebInspector.HandlerRegistry.prototype = {
contextMenu.appendItem(WebInspector.UIString.capitalize("Open ^using %s", handler), contextMenu.appendItem(WebInspector.UIString.capitalize("Open ^using %s", handler),
this.dispatchToHandler.bind(this, handler, { url: contentProvider.contentURL() })); this.dispatchToHandler.bind(this, handler, { url: contentProvider.contentURL() }));
} }
contextMenu.appendItem(WebInspector.copyLinkAddressLabel(), InspectorFrontendHost.copyText.bind(InspectorFrontendHost, contentProvider.contentURL()));
if (!contentProvider.contentURL()) if (!contentProvider.contentURL() || contentProvider instanceof WebInspector.NetworkRequest)
return; return;
contextMenu.appendItem(WebInspector.copyLinkAddressLabel(), InspectorFrontendHost.copyText.bind(InspectorFrontendHost, contentProvider.contentURL()));
if (!contentProvider.contentType().isDocumentOrScriptOrStyleSheet()) if (!contentProvider.contentType().isDocumentOrScriptOrStyleSheet())
return; return;
......
...@@ -841,23 +841,32 @@ WebInspector.NetworkLogView.prototype = { ...@@ -841,23 +841,32 @@ WebInspector.NetworkLogView.prototype = {
InspectorFrontendHost.openInNewTab(url); InspectorFrontendHost.openInNewTab(url);
} }
contextMenu.appendApplicableItems(request);
var copyMenu = contextMenu.appendSubMenuItem(WebInspector.UIString("Copy"));
if (request) { if (request) {
contextMenu.appendApplicableItems(request); copyMenu.appendItem(WebInspector.copyLinkAddressLabel(), InspectorFrontendHost.copyText.bind(InspectorFrontendHost, request.contentURL()));
copyMenu.appendSeparator();
if (request.requestHeadersText()) if (request.requestHeadersText())
contextMenu.appendItem(WebInspector.UIString.capitalize("Copy ^request ^headers"), this._copyRequestHeaders.bind(this, request)); copyMenu.appendItem(WebInspector.UIString.capitalize("Copy ^request ^headers"), this._copyRequestHeaders.bind(this, request));
if (request.responseHeadersText) if (request.responseHeadersText)
contextMenu.appendItem(WebInspector.UIString.capitalize("Copy ^response ^headers"), this._copyResponseHeaders.bind(this, request)); copyMenu.appendItem(WebInspector.UIString.capitalize("Copy ^response ^headers"), this._copyResponseHeaders.bind(this, request));
if (request.finished) if (request.finished)
contextMenu.appendItem(WebInspector.UIString.capitalize("Copy ^response"), this._copyResponse.bind(this, request)); copyMenu.appendItem(WebInspector.UIString.capitalize("Copy ^response"), this._copyResponse.bind(this, request));
if (WebInspector.isWin()) { if (WebInspector.isWin()) {
contextMenu.appendItem(WebInspector.UIString("Copy as cURL (cmd)"), this._copyCurlCommand.bind(this, request, "win")); copyMenu.appendItem(WebInspector.UIString("Copy as cURL (cmd)"), this._copyCurlCommand.bind(this, request, "win"));
contextMenu.appendItem(WebInspector.UIString("Copy as cURL (bash)"), this._copyCurlCommand.bind(this, request, "unix")); copyMenu.appendItem(WebInspector.UIString("Copy as cURL (bash)"), this._copyCurlCommand.bind(this, request, "unix"));
copyMenu.appendItem(WebInspector.UIString("Copy All as cURL (cmd)"), this._copyAllCurlCommand.bind(this, "win"));
copyMenu.appendItem(WebInspector.UIString("Copy All as cURL (bash)"), this._copyAllCurlCommand.bind(this, "unix"));
} else { } else {
contextMenu.appendItem(WebInspector.UIString("Copy as cURL"), this._copyCurlCommand.bind(this, request, "unix")); copyMenu.appendItem(WebInspector.UIString("Copy as cURL"), this._copyCurlCommand.bind(this, request, "unix"));
copyMenu.appendItem(WebInspector.UIString("Copy All as cURL"), this._copyAllCurlCommand.bind(this, "unix"));
} }
} else {
copyMenu = contextMenu.appendSubMenuItem(WebInspector.UIString("Copy"));
} }
contextMenu.appendItem(WebInspector.UIString.capitalize("Copy ^all as HAR"), this._copyAll.bind(this)); copyMenu.appendItem(WebInspector.UIString.capitalize("Copy ^all as HAR"), this._copyAll.bind(this));
contextMenu.appendSeparator(); contextMenu.appendSeparator();
contextMenu.appendItem(WebInspector.UIString.capitalize("Save as HAR with ^content"), this._exportAll.bind(this)); contextMenu.appendItem(WebInspector.UIString.capitalize("Save as HAR with ^content"), this._exportAll.bind(this));
...@@ -953,6 +962,21 @@ WebInspector.NetworkLogView.prototype = { ...@@ -953,6 +962,21 @@ WebInspector.NetworkLogView.prototype = {
InspectorFrontendHost.copyText(this._generateCurlCommand(request, platform)); InspectorFrontendHost.copyText(this._generateCurlCommand(request, platform));
}, },
/**
* @param {string} platform
*/
_copyAllCurlCommand: function(platform)
{
var requests = this._nodesByRequestId.valuesArray().map(node => node.request());
var commands = [];
for (var request of requests)
commands.push(this._generateCurlCommand(request, platform));
if (platform === "win")
InspectorFrontendHost.copyText(commands.join(" &\r\n"));
else
InspectorFrontendHost.copyText(commands.join(" ;\n"));
},
_exportAll: function() _exportAll: function()
{ {
var filename = WebInspector.targetManager.inspectedPageDomain() + ".har"; var filename = WebInspector.targetManager.inspectedPageDomain() + ".har";
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment