Bug 632365 - Delay status updates for links further. r=gavin ui-r=faaborg
authorDão Gottwald <dao@mozilla.com>
Tue, 27 Sep 2011 09:51:56 +0200
changeset 77660 40fec94118185b8b5a3c910683c2db6b135c1504
parent 77659 803b01dcc5897c9638ca784a9b616df2a046dbe7
child 77661 85006a0a9d4f8c657600382a22647360d982875b
push id21223
push userdgottwald@mozilla.com
push dateTue, 27 Sep 2011 10:43:13 +0000
treeherdermozilla-central@85006a0a9d4f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgavin, faaborg
bugs632365
milestone9.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 632365 - Delay status updates for links further. r=gavin ui-r=faaborg
browser/app/profile/firefox.js
browser/base/content/browser.css
browser/base/content/browser.js
browser/base/content/browser.xul
browser/base/content/tabbrowser.xml
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -249,17 +249,17 @@ pref("browser.chrome.favicons", true);
 // browser.warnOnQuit == false will override all other possible prompts when quitting or restarting
 pref("browser.warnOnQuit", true);
 pref("browser.warnOnRestart", false);
 // browser.showQuitWarning specifically controls the quit warning dialog. We
 // might still show the window closing dialog with showQuitWarning == false.
 pref("browser.showQuitWarning", false);
 pref("browser.fullscreen.autohide", true);
 pref("browser.fullscreen.animateUp", 1);
-pref("browser.overlink-delay", 70);
+pref("browser.overlink-delay", 80);
 
 #ifdef UNIX_BUT_NOT_MAC
 pref("browser.urlbar.clickSelectsAll", false);
 #else
 pref("browser.urlbar.clickSelectsAll", true);
 #endif
 #ifdef UNIX_BUT_NOT_MAC
 pref("browser.urlbar.doubleClickSelectsAll", true);
--- a/browser/base/content/browser.css
+++ b/browser/base/content/browser.css
@@ -506,26 +506,30 @@ statuspanel[type=status] {
 
 @media all and (max-width: 800px) {
   statuspanel[type=status] {
     min-width: 33%;
   }
 }
 
 statuspanel[type=overLink] {
-  -moz-transition: opacity 100ms ease-out;
+  -moz-transition: opacity 120ms ease-out;
   direction: ltr;
 }
 
-statuspanel[label=""] {
+statuspanel[inactive] {
   -moz-transition: none;
   opacity: 0;
   pointer-events: none;
 }
 
+statuspanel[inactive][previoustype=overLink] {
+  -moz-transition: opacity 200ms ease-out;
+}
+
 .statuspanel-inner {
   height: 3em;
   width: 100%;
   -moz-box-align: end;
 }
 
 .styleInspector {
   min-width: 350px;
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -4669,17 +4669,17 @@ var XULBrowserWindow = {
 };
 
 var LinkTargetDisplay = {
   get DELAY_SHOW() {
      delete this.DELAY_SHOW;
      return this.DELAY_SHOW = Services.prefs.getIntPref("browser.overlink-delay");
   },
 
-  DELAY_HIDE: 150,
+  DELAY_HIDE: 250,
   _timer: 0,
 
   get _isVisible () XULBrowserWindow.statusTextField.label != "",
 
   update: function () {
     clearTimeout(this._timer);
     window.removeEventListener("mousemove", this, true);
 
--- a/browser/base/content/browser.xul
+++ b/browser/base/content/browser.xul
@@ -952,17 +952,17 @@
     <splitter id="sidebar-splitter" class="chromeclass-extrachrome" hidden="true"/>
     <vbox id="appcontent" flex="1">
       <tabbrowser id="content" disablehistory="true"
                   flex="1" contenttooltip="aHTMLTooltip"
                   tabcontainer="tabbrowser-tabs"
                   contentcontextmenu="contentAreaContextMenu"
                   autocompletepopup="PopupAutoComplete"
                   onclick="return contentAreaClick(event, false);"/>
-      <statuspanel id="statusbar-display" label=""/>
+      <statuspanel id="statusbar-display" inactive="true"/>
     </vbox>
     <vbox id="browser-border-end" hidden="true" layer="true"/>
   </hbox>
 
   <vbox id="browser-bottombox" layer="true">
     <toolbar id="inspector-toolbar"
              nowindowdrag="true"
              hidden="true">
--- a/browser/base/content/tabbrowser.xml
+++ b/browser/base/content/tabbrowser.xml
@@ -4269,21 +4269,27 @@
             else
               this.removeAttribute("mirror");
           }
 
           this.style.minWidth = this.getAttribute("type") == "status" &&
                                 this.getAttribute("previoustype") == "status"
                                   ? getComputedStyle(this).width : "";
 
-          this.setAttribute("label", val);
+          if (val) {
+            this.setAttribute("label", val);
+            this.removeAttribute("inactive");
+          } else {
+            this.setAttribute("inactive", "true");
+          }
+
           return val;
         ]]></setter>
         <getter>
-          return this.getAttribute("label");
+          return this.hasAttribute("inactive") ? "" : this.getAttribute("label");
         </getter>
       </property>
 
       <method name="handleEvent">
         <parameter name="event"/>
         <body><![CDATA[
           if (event.type == "findbaropen" &&
               this.label)