Title: [265707] trunk/Source/WebInspectorUI
Revision
265707
Author
[email protected]
Date
2020-08-14 15:00:53 -0700 (Fri, 14 Aug 2020)

Log Message

Web Inspector: use `WI.DropZoneView` instead of `handleFileDrop`
https://bugs.webkit.org/show_bug.cgi?id=215493

Reviewed by Joseph Pecoraro.

`WI.DropZoneView` indicates that things can be dropped, whereas `handleFileDrop` has no UI.

* UserInterface/Base/Main.js:
(WI.contentLoaded):
(WI._handleDrop): Deleted.
* UserInterface/Views/AuditTabContentView.js:
(WI.AuditTabContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
(WI.AuditTabContentView.prototype.dropZoneHandleDrop): Added.
(WI.AuditTabContentView.prototype.initialLayout):
(WI.AuditTabContentView.prototype.async handleFileDrop): Deleted.
* UserInterface/Views/GraphicsTabContentView.js:
(WI.GraphicsTabContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
(WI.GraphicsTabContentView.prototype.dropZoneHandleDrop): Added.
(WI.GraphicsTabContentView.prototype.initialLayout):
(WI.GraphicsTabContentView.prototype.async handleFileDrop): Deleted.
* UserInterface/Views/NetworkTabContentView.js:
(WI.NetworkTabContentView.prototype.initialLayout):
(WI.NetworkTabContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
(WI.NetworkTabContentView.prototype.dropZoneHandleDrop): Added.
(WI.NetworkTabContentView.prototype.async handleFileDrop): Deleted.
* UserInterface/Views/TimelineTabContentView.js:
(WI.TimelineTabContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
(WI.TimelineTabContentView.prototype.dropZoneHandleDrop): Added.
(WI.TimelineTabContentView.prototype.initialLayout):
(WI.TimelineTabContentView.prototype.async handleFileDrop): Deleted.

* UserInterface/Views/GraphicsOverviewContentView.js:
(WI.GraphicsOverviewContentView.prototype.initialLayout):
(WI.GraphicsOverviewContentView.prototype.dropZoneShouldAppearForDragEvent): Deleted.
(WI.GraphicsOverviewContentView.prototype.dropZoneHandleDrop): Deleted.
Remove this `WI.DropZoneView` as it's now handled by `WI.GraphicsTabContentView`.

* Localizations/en.lproj/localizedStrings.js:

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (265706 => 265707)


--- trunk/Source/WebInspectorUI/ChangeLog	2020-08-14 21:56:57 UTC (rev 265706)
+++ trunk/Source/WebInspectorUI/ChangeLog	2020-08-14 22:00:53 UTC (rev 265707)
@@ -1,3 +1,44 @@
+2020-08-14  Devin Rousso  <[email protected]>
+
+        Web Inspector: use `WI.DropZoneView` instead of `handleFileDrop`
+        https://bugs.webkit.org/show_bug.cgi?id=215493
+
+        Reviewed by Joseph Pecoraro.
+
+        `WI.DropZoneView` indicates that things can be dropped, whereas `handleFileDrop` has no UI.
+
+        * UserInterface/Base/Main.js:
+        (WI.contentLoaded):
+        (WI._handleDrop): Deleted.
+        * UserInterface/Views/AuditTabContentView.js:
+        (WI.AuditTabContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
+        (WI.AuditTabContentView.prototype.dropZoneHandleDrop): Added.
+        (WI.AuditTabContentView.prototype.initialLayout):
+        (WI.AuditTabContentView.prototype.async handleFileDrop): Deleted.
+        * UserInterface/Views/GraphicsTabContentView.js:
+        (WI.GraphicsTabContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
+        (WI.GraphicsTabContentView.prototype.dropZoneHandleDrop): Added.
+        (WI.GraphicsTabContentView.prototype.initialLayout):
+        (WI.GraphicsTabContentView.prototype.async handleFileDrop): Deleted.
+        * UserInterface/Views/NetworkTabContentView.js:
+        (WI.NetworkTabContentView.prototype.initialLayout):
+        (WI.NetworkTabContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
+        (WI.NetworkTabContentView.prototype.dropZoneHandleDrop): Added.
+        (WI.NetworkTabContentView.prototype.async handleFileDrop): Deleted.
+        * UserInterface/Views/TimelineTabContentView.js:
+        (WI.TimelineTabContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
+        (WI.TimelineTabContentView.prototype.dropZoneHandleDrop): Added.
+        (WI.TimelineTabContentView.prototype.initialLayout):
+        (WI.TimelineTabContentView.prototype.async handleFileDrop): Deleted.
+
+        * UserInterface/Views/GraphicsOverviewContentView.js:
+        (WI.GraphicsOverviewContentView.prototype.initialLayout):
+        (WI.GraphicsOverviewContentView.prototype.dropZoneShouldAppearForDragEvent): Deleted.
+        (WI.GraphicsOverviewContentView.prototype.dropZoneHandleDrop): Deleted.
+        Remove this `WI.DropZoneView` as it's now handled by `WI.GraphicsTabContentView`.
+
+        * Localizations/en.lproj/localizedStrings.js:
+
 2020-08-14  Patrick Angle  <[email protected]>
 
         Web Inspector: add aria-label for [>>] overflow tab picker

Modified: trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js (265706 => 265707)


--- trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js	2020-08-14 21:56:57 UTC (rev 265706)
+++ trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js	2020-08-14 22:00:53 UTC (rev 265707)
@@ -680,6 +680,8 @@
 localizedStrings["Images:"] = "Images:";
 localizedStrings["Immediate Pause Requested"] = "Immediate Pause Requested";
 localizedStrings["Import"] = "Import";
+localizedStrings["Import Audit"] = "Import Audit";
+localizedStrings["Import HAR"] = "Import HAR";
 localizedStrings["Import Recording"] = "Import Recording";
 localizedStrings["Imported"] = "Imported";
 localizedStrings["Imported - %s"] = "Imported - %s";

Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Main.js (265706 => 265707)


--- trunk/Source/WebInspectorUI/UserInterface/Base/Main.js	2020-08-14 21:56:57 UTC (rev 265706)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Main.js	2020-08-14 22:00:53 UTC (rev 265707)
@@ -234,7 +234,6 @@
 
     document.addEventListener("click", WI._mouseWasClicked);
     document.addEventListener("dragover", WI._handleDragOver);
-    document.addEventListener("drop", WI._handleDrop);
     document.addEventListener("focus", WI._focusChanged, true);
 
     window.addEventListener("focus", WI._windowFocused);
@@ -1659,36 +1658,11 @@
     if (WI.isEventTargetAnEditableField(event))
         return;
 
-    let tabContentView = WI.tabBrowser.selectedTabContentView;
-    if (!tabContentView || !tabContentView.handleFileDrop || !event.dataTransfer.types.includes("Files")) {
-        // Prevent the drop from being accepted.
-        event.dataTransfer.dropEffect = "none";
-    }
-
+    // Prevent the drop from being accepted.
+    event.dataTransfer.dropEffect = "none";
     event.preventDefault();
 };
 
-WI._handleDrop = function(event)
-{
-    // Do nothing if another event listener handled the event already.
-    if (event.defaultPrevented)
-        return;
-
-    // Allow dropping into editable areas.
-    if (WI.isEventTargetAnEditableField(event))
-        return;
-
-    let tabContentView = WI.tabBrowser.selectedTabContentView;
-    if (tabContentView && tabContentView.handleFileDrop && event.dataTransfer.files) {
-        event.preventDefault();
-
-        tabContentView.handleFileDrop(event.dataTransfer.files)
-        .then(() => {
-            event.dataTransfer.clearData();
-        });
-    }
-};
-
 WI._debuggerDidPause = function(event)
 {
     WI.showSourcesTab({showScopeChainSidebar: WI.settings.showScopeChainOnPause.value});

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/AuditTabContentView.js (265706 => 265707)


--- trunk/Source/WebInspectorUI/UserInterface/Views/AuditTabContentView.js	2020-08-14 21:56:57 UTC (rev 265706)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/AuditTabContentView.js	2020-08-14 22:00:53 UTC (rev 265707)
@@ -86,11 +86,24 @@
         super.hidden();
     }
 
-    async handleFileDrop(files)
+    // DropZoneView delegate
+
+    dropZoneShouldAppearForDragEvent(dropZone, event)
     {
-        await WI.FileUtilities.readJSON(files, (result) => WI.auditManager.processJSON(result));
+        return event.dataTransfer.types.includes("Files");
     }
 
+    dropZoneHandleDrop(dropZone, event)
+    {
+        let files = event.dataTransfer.files;
+        if (files.length !== 1) {
+            InspectorFrontendHost.beep();
+            return;
+        }
+
+        WI.FileUtilities.readJSON(files, (result) => WI.auditManager.processJSON(result));
+    }
+
     // Protected
 
     initialLayout()
@@ -97,6 +110,11 @@
     {
         super.initialLayout();
 
+        let dropZoneView = new WI.DropZoneView(this);
+        dropZoneView.text = WI.UIString("Import Audit");
+        dropZoneView.targetElement = this.element;
+        this.addSubview(dropZoneView);
+
         WI.auditManager.loadStoredTests();
     }
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/GraphicsOverviewContentView.js (265706 => 265707)


--- trunk/Source/WebInspectorUI/UserInterface/Views/GraphicsOverviewContentView.js	2020-08-14 21:56:57 UTC (rev 265706)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/GraphicsOverviewContentView.js	2020-08-14 22:00:53 UTC (rev 265707)
@@ -130,31 +130,8 @@
             this.element.addEventListener("click", this._handleClick.bind(this));
         } else
             this.addSubview(this._canvasOverviewContentView);
-
-        let dropZoneView = new WI.DropZoneView(this);
-        dropZoneView.text = WI.UIString("Import Recording");
-        dropZoneView.targetElement = this.element;
-        this.addSubview(dropZoneView);
     }
 
-    // DropZoneView delegate
-
-    dropZoneShouldAppearForDragEvent(dropZone, event)
-    {
-        return event.dataTransfer.types.includes("Files");
-    }
-
-    dropZoneHandleDrop(dropZone, event)
-    {
-        let files = event.dataTransfer.files;
-        if (files.length !== 1) {
-            InspectorFrontendHost.beep();
-            return;
-        }
-
-        WI.FileUtilities.readJSON(files, (result) => WI.canvasManager.processJSON(result));
-    }
-
     // Private
 
     _handleRefreshButtonClicked()

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/GraphicsTabContentView.js (265706 => 265707)


--- trunk/Source/WebInspectorUI/UserInterface/Views/GraphicsTabContentView.js	2020-08-14 21:56:57 UTC (rev 265706)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/GraphicsTabContentView.js	2020-08-14 22:00:53 UTC (rev 265707)
@@ -136,11 +136,24 @@
         // FIXME: implement once <https://webkit.org/b/177606> is complete.
     }
 
-    async handleFileDrop(files)
+    // DropZoneView delegate
+
+    dropZoneShouldAppearForDragEvent(dropZone, event)
     {
-        await WI.FileUtilities.readJSON(files, (result) => WI.canvasManager.processJSON(result));
+        return event.dataTransfer.types.includes("Files");
     }
 
+    dropZoneHandleDrop(dropZone, event)
+    {
+        let files = event.dataTransfer.files;
+        if (files.length !== 1) {
+            InspectorFrontendHost.beep();
+            return;
+        }
+
+        WI.FileUtilities.readJSON(files, (result) => WI.canvasManager.processJSON(result));
+    }
+
     // Protected
 
     attached()
@@ -187,8 +200,15 @@
 
     initialLayout()
     {
+        super.initialLayout();
+
         this._overviewContentView = new WI.GraphicsOverviewContentView;
         this.contentBrowser.showContentView(this._overviewContentView);
+
+        let dropZoneView = new WI.DropZoneView(this);
+        dropZoneView.text = WI.UIString("Import Recording");
+        dropZoneView.targetElement = this.element;
+        this.addSubview(dropZoneView);
     }
 
     // Private

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTabContentView.js (265706 => 265707)


--- trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTabContentView.js	2020-08-14 21:56:57 UTC (rev 265706)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTabContentView.js	2020-08-14 22:00:53 UTC (rev 265707)
@@ -82,6 +82,16 @@
         super.closed();
     }
 
+    initialLayout()
+    {
+        super.initialLayout();
+
+        let dropZoneView = new WI.DropZoneView(this);
+        dropZoneView.text = WI.UIString("Import HAR");
+        dropZoneView.targetElement = this.element;
+        this.addSubview(dropZoneView);
+    }
+
     get canHandleFindEvent()
     {
         return this._networkTableContentView.canFocusFilterBar;
@@ -92,11 +102,6 @@
         this._networkTableContentView.focusFilterBar();
     }
 
-    async handleFileDrop(files)
-    {
-        await WI.FileUtilities.readJSON(files, (result) => this._networkTableContentView.processHAR(result));
-    }
-
     // Public
 
     get contentBrowser() { return this._contentBrowser; }
@@ -121,6 +126,24 @@
     {
         return true;
     }
+
+    // DropZoneView delegate
+
+    dropZoneShouldAppearForDragEvent(dropZone, event)
+    {
+        return event.dataTransfer.types.includes("Files");
+    }
+
+    dropZoneHandleDrop(dropZone, event)
+    {
+        let files = event.dataTransfer.files;
+        if (files.length !== 1) {
+            InspectorFrontendHost.beep();
+            return;
+        }
+
+        WI.FileUtilities.readJSON(files, (result) => this._networkTableContentView.processHAR(result));
+    }
 };
 
 WI.NetworkTabContentView.Type = "network";

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/TimelineTabContentView.js (265706 => 265707)


--- trunk/Source/WebInspectorUI/UserInterface/Views/TimelineTabContentView.js	2020-08-14 21:56:57 UTC (rev 265706)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TimelineTabContentView.js	2020-08-14 22:00:53 UTC (rev 265707)
@@ -370,13 +370,36 @@
         this._displayedContentView.focusFilterBar();
     }
 
-    async handleFileDrop(files)
+    // DropZoneView delegate
+
+    dropZoneShouldAppearForDragEvent(dropZone, event)
     {
-        await WI.FileUtilities.readJSON(files, (result) => WI.timelineManager.processJSON(result));
+        return event.dataTransfer.types.includes("Files");
     }
 
+    dropZoneHandleDrop(dropZone, event)
+    {
+        let files = event.dataTransfer.files;
+        if (files.length !== 1) {
+            InspectorFrontendHost.beep();
+            return;
+        }
+
+        WI.FileUtilities.readJSON(files, (result) => WI.timelineManager.processJSON(result));
+    }
+
     // Protected
 
+    initialLayout()
+    {
+        super.initialLayout();
+
+        let dropZoneView = new WI.DropZoneView(this);
+        dropZoneView.text = WI.UIString("Import Recording");
+        dropZoneView.targetElement = this.element;
+        this.addSubview(dropZoneView);
+    }
+
     restoreFromCookie(cookie)
     {
         console.assert(cookie);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to