Title: [249828] trunk/Source/WebInspectorUI
Revision
249828
Author
pecor...@apple.com
Date
2019-09-13 01:15:58 -0700 (Fri, 13 Sep 2019)

Log Message

Web Inspector: [Overrides] Command-Z doesn't undo changes after page reload
https://bugs.webkit.org/show_bug.cgi?id=201698
<rdar://problem/55276645>

Reviewed by Devin Rousso.

* UserInterface/Views/ContentViewContainer.js:
(WI.ContentViewContainer.prototype.closeAllContentViews):
Provide a filter to opt out of closing some content views.

* UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel.prototype._closeContentViewsFilter):
(WI.SourcesNavigationSidebarPanel.prototype._updateMainFrameTreeElement):
Avoid closing ContentViews for local resource overrides. This keeps the
SourceCodeTextEditor around and thus its undo/redo stack.

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (249827 => 249828)


--- trunk/Source/WebInspectorUI/ChangeLog	2019-09-13 08:11:10 UTC (rev 249827)
+++ trunk/Source/WebInspectorUI/ChangeLog	2019-09-13 08:15:58 UTC (rev 249828)
@@ -1,3 +1,21 @@
+2019-09-13  Joseph Pecoraro  <pecor...@apple.com>
+
+        Web Inspector: [Overrides] Command-Z doesn't undo changes after page reload
+        https://bugs.webkit.org/show_bug.cgi?id=201698
+        <rdar://problem/55276645>
+
+        Reviewed by Devin Rousso.
+
+        * UserInterface/Views/ContentViewContainer.js:
+        (WI.ContentViewContainer.prototype.closeAllContentViews):
+        Provide a filter to opt out of closing some content views.
+
+        * UserInterface/Views/SourcesNavigationSidebarPanel.js:
+        (WI.SourcesNavigationSidebarPanel.prototype._closeContentViewsFilter):
+        (WI.SourcesNavigationSidebarPanel.prototype._updateMainFrameTreeElement):
+        Avoid closing ContentViews for local resource overrides. This keeps the
+        SourceCodeTextEditor around and thus its undo/redo stack.
+
 2019-09-12  Joseph Pecoraro  <pecor...@apple.com>
 
         Uncaught Exception: TypeError: null is not an object (evaluating 'selectedTreeElement.representedObject')

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ContentViewContainer.js (249827 => 249828)


--- trunk/Source/WebInspectorUI/UserInterface/Views/ContentViewContainer.js	2019-09-13 08:11:10 UTC (rev 249827)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ContentViewContainer.js	2019-09-13 08:15:58 UTC (rev 249828)
@@ -274,8 +274,10 @@
         }
     }
 
-    closeAllContentViews()
+    closeAllContentViews(filter)
     {
+        console.assert(!filter || typeof filter === "function");
+
         if (!this._backForwardList.length) {
             console.assert(this._currentIndex === -1);
             return;
@@ -284,10 +286,14 @@
         var visibleContentView = this.currentContentView;
 
         // Hide and disassociate with all the content views.
-        for (var i = 0; i < this._backForwardList.length; ++i) {
-            var entry = this._backForwardList[i];
+        for (let i = 0; i < this._backForwardList.length; ++i) {
+            let entry = this._backForwardList[i];
+            if (filter && !filter(entry.contentView))
+                continue;
+
             if (entry.contentView === visibleContentView)
                 this._hideEntry(entry);
+
             this._disassociateFromContentView(entry.contentView, entry.tombstone);
         }
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/SourcesNavigationSidebarPanel.js (249827 => 249828)


--- trunk/Source/WebInspectorUI/UserInterface/Views/SourcesNavigationSidebarPanel.js	2019-09-13 08:11:10 UTC (rev 249827)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/SourcesNavigationSidebarPanel.js	2019-09-13 08:15:58 UTC (rev 249828)
@@ -737,10 +737,19 @@
         return a.mainTitle.extendedLocaleCompare(b.mainTitle) || a.subtitle.extendedLocaleCompare(b.subtitle);
     }
 
+    _closeContentViewsFilter(contentView)
+    {
+        // Local Resource Override content views do not need to be closed across page navigations.
+        if (contentView.representedObject instanceof WI.LocalResource && contentView.representedObject.isLocalResourceOverride)
+            return false;
+
+        return true;
+    }
+
     _updateMainFrameTreeElement(mainFrame)
     {
         if (this.didInitialLayout)
-            this.contentBrowser.contentViewContainer.closeAllContentViews();
+            this.contentBrowser.contentViewContainer.closeAllContentViews(this._closeContentViewsFilter);
 
         let oldMainFrameTreeElement = this._mainFrameTreeElement;
         if (this._mainFrameTreeElement) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to