Index: third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js b/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js |
index 0176fc3559df0bd3bc0af9523539263e5706fb88..2c84c87d3e502c983048f6eeb69f2aa7e4e60560 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js |
+++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js |
@@ -111,6 +111,10 @@ Network.NetworkLogView = class extends UI.VBox { |
Common.moduleSetting('networkColorCodeResourceTypes') |
.addChangeListener(this._invalidateAllItems.bind(this, false), this); |
+ new UI.DropTarget( |
+ this.element, [UI.DropTarget.Types.Files], Common.UIString('Drop HAR files here'), |
+ this._handleDrop.bind(this)); |
+ |
SDK.targetManager.observeModels(SDK.NetworkManager, this); |
NetworkLog.networkLog.addEventListener(NetworkLog.NetworkLog.Events.RequestAdded, this._onRequestUpdated, this); |
NetworkLog.networkLog.addEventListener(NetworkLog.NetworkLog.Events.RequestUpdated, this._onRequestUpdated, this); |
@@ -126,6 +130,27 @@ Network.NetworkLogView = class extends UI.VBox { |
this._setGrouping(value ? 'Frame' : null); |
} |
+ /** |
+ * @param {!DataTransfer} dataTransfer |
+ */ |
+ _handleDrop(dataTransfer) { |
+ var items = dataTransfer.items; |
+ if (!items.length) |
+ return; |
+ var entry = items[0].webkitGetAsEntry(); |
+ if (entry.isDirectory) |
+ return; |
+ |
+ entry.file(this._onLoadFromFile.bind(this)); |
+ } |
+ |
+ /** |
+ * @param {!File} file |
+ */ |
+ _onLoadFromFile(file) { |
+ new Network.HARLoader(file); |
+ } |
+ |
/** |
* @param {!Network.NetworkLogView.Filter} filter |
* @param {!SDK.NetworkRequest} request |
@@ -612,10 +637,8 @@ Network.NetworkLogView = class extends UI.VBox { |
selectedNodeNumber++; |
selectedTransferSize += requestTransferSize; |
} |
- var networkManager = SDK.NetworkManager.managerForRequest(request); |
- // TODO(allada) inspectedURL should be stored in PageLoad used instead of target so HAR requests can have an |
- // inspected url. |
- if (networkManager && request.url() === networkManager.target().inspectedURL() && |
+ var pageLoad = NetworkLog.networkLog.pageLoadForRequest(request); |
+ if (pageLoad && request.url() === pageLoad.inspectedURL && |
request.resourceType() === Common.resourceTypes.Document) |
baseTime = request.startTime; |
if (request.endTime > maxTime) |