Title: [183340] trunk/Source/WebInspectorUI
Revision
183340
Author
[email protected]
Date
2015-04-25 18:26:41 -0700 (Sat, 25 Apr 2015)

Log Message

Web Inspector: Save and restore tab state on reload and between sessions
https://bugs.webkit.org/show_bug.cgi?id=144202

Reviewed by Joseph Pecoraro.

* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._mainResourceDidChange):
(WebInspector._provisionalLoadStarted):
(WebInspector._restoreCookieForOpenTabs):
(WebInspector._saveCookieForOpenTabs):
(WebInspector._pageHidden):
* UserInterface/Views/TabContentView.js:
(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.restoreStateFromCookie):
(WebInspector.TabContentView.prototype.saveStateToCookie):

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (183339 => 183340)


--- trunk/Source/WebInspectorUI/ChangeLog	2015-04-26 01:26:06 UTC (rev 183339)
+++ trunk/Source/WebInspectorUI/ChangeLog	2015-04-26 01:26:41 UTC (rev 183340)
@@ -1,5 +1,24 @@
 2015-04-25  Timothy Hatcher  <[email protected]>
 
+        Web Inspector: Save and restore tab state on reload and between sessions
+        https://bugs.webkit.org/show_bug.cgi?id=144202
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Base/Main.js:
+        (WebInspector.contentLoaded):
+        (WebInspector._mainResourceDidChange):
+        (WebInspector._provisionalLoadStarted):
+        (WebInspector._restoreCookieForOpenTabs):
+        (WebInspector._saveCookieForOpenTabs):
+        (WebInspector._pageHidden):
+        * UserInterface/Views/TabContentView.js:
+        (WebInspector.TabContentView):
+        (WebInspector.TabContentView.prototype.restoreStateFromCookie):
+        (WebInspector.TabContentView.prototype.saveStateToCookie):
+
+2015-04-25  Timothy Hatcher  <[email protected]>
+
         Web Inspector: Split search from ResourceSidebarPanel into a Search tab and sidebar
         https://bugs.webkit.org/show_bug.cgi?id=144197
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Main.js (183339 => 183340)


--- trunk/Source/WebInspectorUI/UserInterface/Base/Main.js	2015-04-26 01:26:06 UTC (rev 183339)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Main.js	2015-04-26 01:26:41 UTC (rev 183340)
@@ -332,6 +332,8 @@
         this.tabBrowser.addTabForContentView(tabContentView, true);
     }
 
+    this._restoreCookieForOpenTabs();
+
     this.tabBar.selectedTabBarItem = this._selectedTabIndexSetting.value;
 
     if (!this.tabBar.selectedTabBarItem)
@@ -997,6 +999,8 @@
 
     this._inProvisionalLoad = false;
 
+    this._restoreCookieForOpenTabs();
+
     this._updateDownloadToolbarButton();
 
     this.updateWindowTitle();
@@ -1007,9 +1011,27 @@
     if (!event.target.isMainFrame())
         return;
 
+    this._saveCookieForOpenTabs();
+
     this._inProvisionalLoad = true;
 };
 
+WebInspector._restoreCookieForOpenTabs = function(causedByReload)
+{
+    for (var tabBarItem of this.tabBar.tabBarItems) {
+        var tabContentView = tabBarItem.representedObject;
+        tabContentView.restoreStateFromCookie(causedByReload);
+    }
+};
+
+WebInspector._saveCookieForOpenTabs = function()
+{
+    for (var tabBarItem of this.tabBar.tabBarItems) {
+        var tabContentView = tabBarItem.representedObject;
+        tabContentView.saveStateToCookie();
+    }
+};
+
 WebInspector._windowFocused = function(event)
 {
     if (event.target.document.nodeType !== Node.DOCUMENT_NODE || this.docked)
@@ -1065,7 +1087,7 @@
 
 WebInspector._pageHidden = function(event)
 {
-    // FIXME: Save inspector state.
+    this._saveCookieForOpenTabs();
 };
 
 WebInspector._undock = function(event)

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/TabContentView.js (183339 => 183340)


--- trunk/Source/WebInspectorUI/UserInterface/Views/TabContentView.js	2015-04-26 01:26:06 UTC (rev 183339)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TabContentView.js	2015-04-26 01:26:41 UTC (rev 183340)
@@ -49,6 +49,8 @@
 
     this._detailsSidebarCollapsedSetting = new WebInspector.Setting(identifier + "-details-sidebar-collapsed", true);
     this._detailsSidebarSelectedPanelSetting = new WebInspector.Setting(identifier + "-details-sidebar-selected-panel", null);
+
+    this._cookieSetting = new WebInspector.Setting(identifier + "-tab-cookie", {});
 };
 
 WebInspector.TabContentView.prototype = {
@@ -105,6 +107,28 @@
         return false;
     },
 
+    restoreStateFromCookie: function(causedByReload)
+    {
+        if (!this.navigationSidebarPanel)
+            return;
+
+        var matchTypeOnlyDelayForReload = 2000;
+        var matchTypeOnlyDelayForReopen = 1000;
+
+        var relaxMatchDelay = causedByReload ? matchTypeOnlyDelayForReload : matchTypeOnlyDelayForReopen;
+        this.navigationSidebarPanel.restoreStateFromCookie(this._cookieSetting.value || {}, relaxMatchDelay);
+    },
+
+    saveStateToCookie: function()
+    {
+        if (!this.navigationSidebarPanel)
+            return;
+
+        var cookie = this._cookieSetting.value || {};
+        this.navigationSidebarPanel.saveStateToCookie(cookie);
+        this._cookieSetting.value = cookie;
+    },
+
     get navigationSidebarPanel()
     {
         return this._navigationSidebarPanel;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to