- 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);