Title: [239478] trunk/Source/WebInspectorUI
Revision
239478
Author
[email protected]
Date
2018-12-20 16:58:45 -0800 (Thu, 20 Dec 2018)

Log Message

Web Inspector: Charles Proxy errors opening har files exported from Safari (invalid startedDateTime)
https://bugs.webkit.org/show_bug.cgi?id=192959
<rdar://problem/46863411>

Patch by Joseph Pecoraro <[email protected]> on 2018-12-20
Reviewed by Brian Burg.

* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype.tableCellContextMenuClicked):
(WI.NetworkTableContentView.prototype._updateExportButton):
(WI.NetworkTableContentView.prototype._canExportHAR):
Disallow HAR export if we don't have load data, such as the requestSentDate for
the main resource or sub-resources.

(WI.NetworkTableContentView.prototype._HARResources):
Only export resources that have load data.

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (239477 => 239478)


--- trunk/Source/WebInspectorUI/ChangeLog	2018-12-21 00:40:09 UTC (rev 239477)
+++ trunk/Source/WebInspectorUI/ChangeLog	2018-12-21 00:58:45 UTC (rev 239478)
@@ -1,5 +1,23 @@
 2018-12-20  Joseph Pecoraro  <[email protected]>
 
+        Web Inspector: Charles Proxy errors opening har files exported from Safari (invalid startedDateTime)
+        https://bugs.webkit.org/show_bug.cgi?id=192959
+        <rdar://problem/46863411>
+
+        Reviewed by Brian Burg.
+
+        * UserInterface/Views/NetworkTableContentView.js:
+        (WI.NetworkTableContentView.prototype.tableCellContextMenuClicked):
+        (WI.NetworkTableContentView.prototype._updateExportButton):
+        (WI.NetworkTableContentView.prototype._canExportHAR):
+        Disallow HAR export if we don't have load data, such as the requestSentDate for
+        the main resource or sub-resources.
+
+        (WI.NetworkTableContentView.prototype._HARResources):
+        Only export resources that have load data.
+
+2018-12-20  Joseph Pecoraro  <[email protected]>
+
         Web Inspector: Autoformat doesn't work on icloud.com (_javascript_-packed.js)
         https://bugs.webkit.org/show_bug.cgi?id=192946
         <rdar://problem/42546126>

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js (239477 => 239478)


--- trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js	2018-12-21 00:40:09 UTC (rev 239477)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js	2018-12-21 00:58:45 UTC (rev 239478)
@@ -147,7 +147,7 @@
         // triggers a MainResource change and then a MainFrame change. Page Transition
         // triggers a MainFrame change then a MainResource change.
         this._transitioningPageTarget = false;
-        
+
         WI.notifications.addEventListener(WI.Notification.TransitionPageTarget, this._transitionPageTarget, this);
     }
 
@@ -363,7 +363,7 @@
         WI.appendContextMenuItemsForSourceCode(contextMenu, entry.resource);
 
         contextMenu.appendSeparator();
-        contextMenu.appendItem(WI.UIString("Export HAR"), () => { this._exportHAR(); });
+        contextMenu.appendItem(WI.UIString("Export HAR"), () => { this._exportHAR(); }, !this._canExportHAR());
     }
 
     tableShouldSelectRow(table, cell, column, rowIndex)
@@ -1158,10 +1158,28 @@
         }
     }
 
+    _canExportHAR()
+    {
+        let mainFrame = WI.networkManager.mainFrame;
+        if (!mainFrame)
+            return false;
+
+        let mainResource = mainFrame.mainResource;
+        if (!mainResource)
+            return false;
+
+        if (!mainResource.requestSentDate)
+            return false;
+
+        if (!this._HARResources().length)
+            return false;
+
+        return true;
+    }
+
     _updateExportButton()
     {
-        let enabled = this._filteredEntries.length > 0;
-        this._harExportNavigationItem.enabled = enabled;
+        this._harExportNavigationItem.enabled = this._canExportHAR();
     }
 
     _processPendingEntries()
@@ -1871,7 +1889,15 @@
     {
         let resources = this._filteredEntries.map((x) => x.resource);
         const supportedHARSchemes = new Set(["http", "https", "ws", "wss"]);
-        return resources.filter((resource) => resource.finished && supportedHARSchemes.has(resource.urlComponents.scheme));
+        return resources.filter((resource) => {
+            if (!resource.finished)
+                return false;
+            if (!resource.requestSentDate)
+                return false;
+            if (!supportedHARSchemes.has(resource.urlComponents.scheme))
+                return false;
+            return true;
+        });
     }
 
     _exportHAR()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to