From ffb64b861a53416a87471f1d03e09b9dd1cbe80a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A3o=20Gottwald?= Date: Thu, 1 Oct 2009 14:31:24 +0200 Subject: [PATCH] Bug 334697 - Implement pie-chart throbber. r=vlad, ui-r=beltzner --- browser/base/content/tabbrowser.xml | 34 ++++++++++++++++++ .../themes/gnomestripe/browser/browser.css | 30 +++++++++++++++- browser/themes/gnomestripe/browser/jar.mn | 2 ++ .../browser/tabbrowser/progress-pulsing.png | Bin 0 -> 10429 bytes .../browser/tabbrowser/progress.png | Bin 0 -> 2088 bytes browser/themes/pinstripe/browser/browser.css | 30 +++++++++++++++- browser/themes/pinstripe/browser/jar.mn | 2 ++ .../browser/tabbrowser/progress-pulsing.png | Bin 0 -> 10429 bytes .../pinstripe/browser/tabbrowser/progress.png | Bin 0 -> 2088 bytes browser/themes/winstripe/browser/browser.css | 30 +++++++++++++++- browser/themes/winstripe/browser/jar.mn | 4 +++ .../browser/tabbrowser/progress-pulsing.png | Bin 0 -> 10429 bytes .../winstripe/browser/tabbrowser/progress.png | Bin 0 -> 2088 bytes 13 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 browser/themes/gnomestripe/browser/tabbrowser/progress-pulsing.png create mode 100644 browser/themes/gnomestripe/browser/tabbrowser/progress.png create mode 100644 browser/themes/pinstripe/browser/tabbrowser/progress-pulsing.png create mode 100644 browser/themes/pinstripe/browser/tabbrowser/progress.png create mode 100644 browser/themes/winstripe/browser/tabbrowser/progress-pulsing.png create mode 100644 browser/themes/winstripe/browser/tabbrowser/progress.png diff --git a/browser/base/content/tabbrowser.xml b/browser/base/content/tabbrowser.xml index 569061ef886f..e21e0b08f54d 100644 --- a/browser/base/content/tabbrowser.xml +++ b/browser/base/content/tabbrowser.xml @@ -305,6 +305,10 @@ // count of open requests (should always be 0 or 1) mRequestCount: 0, + destroy: function () { + this._cancelStalledTimer(); + }, + onProgressChange : function (aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress) @@ -314,6 +318,16 @@ if (this.mBlank) return; + if (this.mTotalProgress) { + const STATES = 8; + let state = Math.ceil(STATES * this.mTotalProgress); + if (state != this.mTab.getAttribute("progress")) { + this.mTab.setAttribute("progress", state); + this.mTab.removeAttribute("stalled"); + this._startStalledTimer(); + } + } + if (this.mTabBrowser.mCurrentTab == this.mTab) { for (let i = 0; i < this.mTabBrowser.mProgressListeners.length; i++) { let p = this.mTabBrowser.mProgressListeners[i]; @@ -393,6 +407,7 @@ if (!this.mBlank) { if (!(aStateFlags & nsIWebProgressListener.STATE_RESTORING)) { this.mTab.setAttribute("busy", "true"); + this._startStalledTimer(); this.mTabBrowser.updateIcon(this.mTab); this.mTabBrowser.setTabTitleLoading(this.mTab); } @@ -419,6 +434,9 @@ this.mBlank = false; this.mTab.removeAttribute("busy"); + this.mTab.removeAttribute("progress"); + this.mTab.removeAttribute("stalled"); + this._cancelStalledTimer(); this.mTabBrowser.updateIcon(this.mTab); var location = aRequest.QueryInterface(nsIChannel).URI; @@ -613,6 +631,20 @@ aIID.equals(Components.interfaces.nsISupports)) return this; throw Components.results.NS_NOINTERFACE; + }, + + _startStalledTimer: function () { + this._cancelStalledTimer(); + this._stalledTimer = setTimeout(function (self) { + self.mTab.setAttribute("stalled", "true"); + }, 700, this); + }, + + _cancelStalledTimer: function () { + if (this._stalledTimer) { + clearTimeout(this._stalledTimer); + this._stalledTimer = 0; + } } }); ]]> @@ -1496,6 +1528,7 @@ const filter = this.mTabFilters[aTab._tPos]; browser.webProgress.removeProgressListener(filter); filter.removeProgressListener(this.mTabListeners[aTab._tPos]); + this.mTabListeners[aTab._tPos].destroy(); // Remove our title change and blocking listeners browser.removeEventListener("DOMTitleChanged", this.onTitleChanged, true); @@ -2736,6 +2769,7 @@ this.getBrowserAtIndex(i).webProgress.removeProgressListener(this.mTabFilters[i]); this.mTabFilters[i].removeProgressListener(this.mTabListeners[i]); this.mTabFilters[i] = null; + this.mTabListeners[i].destroy(); this.mTabListeners[i] = null; this.getBrowserAtIndex(i).removeEventListener("DOMTitleChanged", this.onTitleChanged, true); } diff --git a/browser/themes/gnomestripe/browser/browser.css b/browser/themes/gnomestripe/browser/browser.css index 450625049aa1..a00f41a23ed9 100644 --- a/browser/themes/gnomestripe/browser/browser.css +++ b/browser/themes/gnomestripe/browser/browser.css @@ -1127,7 +1127,35 @@ tabpanels { } .tabbrowser-tab[busy] > .tab-icon-image { - list-style-image: url("chrome://global/skin/icons/loading_16.png") !important; + list-style-image: url("chrome://browser/skin/tabbrowser/progress.png") !important; + -moz-image-region: rect(0, 16px, 16px, 0); +} +.tabbrowser-tab[busy][stalled] > .tab-icon-image { + list-style-image: url("chrome://browser/skin/tabbrowser/progress-pulsing.png") !important; +} +.tabbrowser-tab[busy][progress="1"] > .tab-icon-image { + -moz-image-region: rect(0, 32px, 16px, 16px); +} +.tabbrowser-tab[busy][progress="2"] > .tab-icon-image { + -moz-image-region: rect(0, 48px, 16px, 32px); +} +.tabbrowser-tab[busy][progress="3"] > .tab-icon-image { + -moz-image-region: rect(0, 64px, 16px, 48px); +} +.tabbrowser-tab[busy][progress="4"] > .tab-icon-image { + -moz-image-region: rect(0, 80px, 16px, 64px); +} +.tabbrowser-tab[busy][progress="5"] > .tab-icon-image { + -moz-image-region: rect(0, 96px, 16px, 80px); +} +.tabbrowser-tab[busy][progress="6"] > .tab-icon-image { + -moz-image-region: rect(0, 112px, 16px, 96px); +} +.tabbrowser-tab[busy][progress="7"] > .tab-icon-image { + -moz-image-region: rect(0, 128px, 16px, 112px); +} +.tabbrowser-tab[busy][progress="8"] > .tab-icon-image { + -moz-image-region: rect(0, 144px, 16px, 128px); } .tabs-bottom { diff --git a/browser/themes/gnomestripe/browser/jar.mn b/browser/themes/gnomestripe/browser/jar.mn index 88607929657f..35e67135b65d 100644 --- a/browser/themes/gnomestripe/browser/jar.mn +++ b/browser/themes/gnomestripe/browser/jar.mn @@ -60,4 +60,6 @@ browser.jar: * skin/classic/browser/preferences/preferences.css (preferences/preferences.css) skin/classic/browser/preferences/applications.css (preferences/applications.css) skin/classic/browser/tabbrowser/alltabs.png (tabbrowser/alltabs.png) + skin/classic/browser/tabbrowser/progress.png (tabbrowser/progress.png) + skin/classic/browser/tabbrowser/progress-pulsing.png (tabbrowser/progress-pulsing.png) skin/classic/browser/tabbrowser/tabDragIndicator.png (tabbrowser/tabDragIndicator.png) diff --git a/browser/themes/gnomestripe/browser/tabbrowser/progress-pulsing.png b/browser/themes/gnomestripe/browser/tabbrowser/progress-pulsing.png new file mode 100644 index 0000000000000000000000000000000000000000..3c66ed3c8e9fffbf428441b8015217ea2f575776 GIT binary patch literal 10429 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 literal 0 HcmV?d00001 diff --git a/browser/themes/gnomestripe/browser/tabbrowser/progress.png b/browser/themes/gnomestripe/browser/tabbrowser/progress.png new file mode 100644 index 0000000000000000000000000000000000000000..b8bd2efe554ea9d42d6c4a489e0a3a15e620521f GIT binary patch literal 2088 zcmV+@2-o+CP)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXY< z00kX|IsMK6000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000MrNklwHn_e+(cB;41(( z06co@m$lynpcBCR0BQkf04C@1mJ)nO6vYp=Y}v9l5D1t@j~>kq4-fySsi`UJbUKA( zGTEqU+PeVm&r$g+eq>~%!EU#U7K^1$*Yyt#!`KMmi?@DR`r{14{M>H0e|P83ouRh2 zwwH!steMXpdQioX_Wz(P-2W4u@;EZr%D# zB~JnPMNxDI0s*eGvoqGv&@eMwIRLC)y*eQXg2D5=(a_K^)7jY>3j_k3D2ndFd^@iP z0Mj%Pi^XbNT3XDWo}Nz@>H&ZdVzMl&a~zj;HHEuEk<$VHl?I!i5W~ z`uqEjEYvd$v(4>xJ2;NZOOiA#%W`~te7q)|PP3If1<Q<{24u``E z;HOLUyH(BMZP+$?Lk#Y~H-N=GLuSA1}ri zhhZ3WdV1PEF)`uFX0!gnYT>p0Y$GrXlapnc1@OHU;NN#R99FBHE^z`Y| z=6s!~oM#v&M+iY-+B2)GtD{ezJgKeZDFDm%?b}sJl5*uL+_Ps-th7v$q+DBDn_5`K z&FkCS+iPyzxbd6CdY8+^+ibSg0DQWx`#FyDDT<X#p_G~cV6)lO_3PI^zj*QDww4?hhY6+;il}5%TQW zv+qnzP1y@mAxWpxCV;U@-Y^Ven&vBIm3&uM*NNfb;n-Z~EbmT}j zzEDj~&A22%hc*Lw8Icg8 zj*gBdQmNEq0KY2nA3lBh)F#U^ktAuRkN{$uCdudXRM&M*RaFv+M3QCv7n-JhUsYAn zX0zFfb_kZeCuKI{+>MQmYw SX?6Jk0000 tabbox { } .tabbrowser-tab[busy] > .tab-icon-image { - list-style-image: url("chrome://global/skin/icons/loading_16.png") !important; + list-style-image: url("chrome://browser/skin/tabbrowser/progress.png") !important; + -moz-image-region: rect(0, 16px, 16px, 0); +} +.tabbrowser-tab[busy][stalled] > .tab-icon-image { + list-style-image: url("chrome://browser/skin/tabbrowser/progress-pulsing.png") !important; +} +.tabbrowser-tab[busy][progress="1"] > .tab-icon-image { + -moz-image-region: rect(0, 32px, 16px, 16px); +} +.tabbrowser-tab[busy][progress="2"] > .tab-icon-image { + -moz-image-region: rect(0, 48px, 16px, 32px); +} +.tabbrowser-tab[busy][progress="3"] > .tab-icon-image { + -moz-image-region: rect(0, 64px, 16px, 48px); +} +.tabbrowser-tab[busy][progress="4"] > .tab-icon-image { + -moz-image-region: rect(0, 80px, 16px, 64px); +} +.tabbrowser-tab[busy][progress="5"] > .tab-icon-image { + -moz-image-region: rect(0, 96px, 16px, 80px); +} +.tabbrowser-tab[busy][progress="6"] > .tab-icon-image { + -moz-image-region: rect(0, 112px, 16px, 96px); +} +.tabbrowser-tab[busy][progress="7"] > .tab-icon-image { + -moz-image-region: rect(0, 128px, 16px, 112px); +} +.tabbrowser-tab[busy][progress="8"] > .tab-icon-image { + -moz-image-region: rect(0, 144px, 16px, 128px); } .tabbrowser-tab:not(:hover):not([selected="true"]) > .tab-icon-image { diff --git a/browser/themes/pinstripe/browser/jar.mn b/browser/themes/pinstripe/browser/jar.mn index d483de1b6885..84fd55cbe019 100644 --- a/browser/themes/pinstripe/browser/jar.mn +++ b/browser/themes/pinstripe/browser/jar.mn @@ -101,6 +101,8 @@ browser.jar: skin/classic/browser/tabbrowser/alltabs-box-bkgnd-icon.png (tabbrowser/alltabs-box-bkgnd-icon.png) skin/classic/browser/tabbrowser/alltabs-box-overflow-bkgnd-animate.png (tabbrowser/alltabs-box-overflow-bkgnd-animate.png) skin/classic/browser/tabbrowser/newtab.png (tabbrowser/newtab.png) + skin/classic/browser/tabbrowser/progress.png (tabbrowser/progress.png) + skin/classic/browser/tabbrowser/progress-pulsing.png (tabbrowser/progress-pulsing.png) skin/classic/browser/tabbrowser/tab-arrow-left.png (tabbrowser/tab-arrow-left.png) skin/classic/browser/tabbrowser/tab-arrow-right.png (tabbrowser/tab-arrow-right.png) skin/classic/browser/tabbrowser/tabbrowser-tabs-bkgnd.png (tabbrowser/tabbrowser-tabs-bkgnd.png) diff --git a/browser/themes/pinstripe/browser/tabbrowser/progress-pulsing.png b/browser/themes/pinstripe/browser/tabbrowser/progress-pulsing.png new file mode 100644 index 0000000000000000000000000000000000000000..3c66ed3c8e9fffbf428441b8015217ea2f575776 GIT binary patch literal 10429 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 literal 0 HcmV?d00001 diff --git a/browser/themes/pinstripe/browser/tabbrowser/progress.png b/browser/themes/pinstripe/browser/tabbrowser/progress.png new file mode 100644 index 0000000000000000000000000000000000000000..b8bd2efe554ea9d42d6c4a489e0a3a15e620521f GIT binary patch literal 2088 zcmV+@2-o+CP)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXY< z00kX|IsMK6000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000MrNklwHn_e+(cB;41(( z06co@m$lynpcBCR0BQkf04C@1mJ)nO6vYp=Y}v9l5D1t@j~>kq4-fySsi`UJbUKA( zGTEqU+PeVm&r$g+eq>~%!EU#U7K^1$*Yyt#!`KMmi?@DR`r{14{M>H0e|P83ouRh2 zwwH!steMXpdQioX_Wz(P-2W4u@;EZr%D# zB~JnPMNxDI0s*eGvoqGv&@eMwIRLC)y*eQXg2D5=(a_K^)7jY>3j_k3D2ndFd^@iP z0Mj%Pi^XbNT3XDWo}Nz@>H&ZdVzMl&a~zj;HHEuEk<$VHl?I!i5W~ z`uqEjEYvd$v(4>xJ2;NZOOiA#%W`~te7q)|PP3If1<Q<{24u``E z;HOLUyH(BMZP+$?Lk#Y~H-N=GLuSA1}ri zhhZ3WdV1PEF)`uFX0!gnYT>p0Y$GrXlapnc1@OHU;NN#R99FBHE^z`Y| z=6s!~oM#v&M+iY-+B2)GtD{ezJgKeZDFDm%?b}sJl5*uL+_Ps-th7v$q+DBDn_5`K z&FkCS+iPyzxbd6CdY8+^+ibSg0DQWx`#FyDDT<X#p_G~cV6)lO_3PI^zj*QDww4?hhY6+;il}5%TQW zv+qnzP1y@mAxWpxCV;U@-Y^Ven&vBIm3&uM*NNfb;n-Z~EbmT}j zzEDj~&A22%hc*Lw8Icg8 zj*gBdQmNEq0KY2nA3lBh)F#U^ktAuRkN{$uCdudXRM&M*RaFv+M3QCv7n-JhUsYAn zX0zFfb_kZeCuKI{+>MQmYw SX?6Jk0000 .tab-icon-image { - list-style-image: url("chrome://global/skin/icons/loading_16.png") !important; + list-style-image: url("chrome://browser/skin/tabbrowser/progress.png") !important; + -moz-image-region: rect(0, 16px, 16px, 0); +} +.tabbrowser-tab[busy][stalled] > .tab-icon-image { + list-style-image: url("chrome://browser/skin/tabbrowser/progress-pulsing.png") !important; +} +.tabbrowser-tab[busy][progress="1"] > .tab-icon-image { + -moz-image-region: rect(0, 32px, 16px, 16px); +} +.tabbrowser-tab[busy][progress="2"] > .tab-icon-image { + -moz-image-region: rect(0, 48px, 16px, 32px); +} +.tabbrowser-tab[busy][progress="3"] > .tab-icon-image { + -moz-image-region: rect(0, 64px, 16px, 48px); +} +.tabbrowser-tab[busy][progress="4"] > .tab-icon-image { + -moz-image-region: rect(0, 80px, 16px, 64px); +} +.tabbrowser-tab[busy][progress="5"] > .tab-icon-image { + -moz-image-region: rect(0, 96px, 16px, 80px); +} +.tabbrowser-tab[busy][progress="6"] > .tab-icon-image { + -moz-image-region: rect(0, 112px, 16px, 96px); +} +.tabbrowser-tab[busy][progress="7"] > .tab-icon-image { + -moz-image-region: rect(0, 128px, 16px, 112px); +} +.tabbrowser-tab[busy][progress="8"] > .tab-icon-image { + -moz-image-region: rect(0, 144px, 16px, 128px); } .tab-icon-image { diff --git a/browser/themes/winstripe/browser/jar.mn b/browser/themes/winstripe/browser/jar.mn index a7c58b8c3ef3..31d6786330f7 100644 --- a/browser/themes/winstripe/browser/jar.mn +++ b/browser/themes/winstripe/browser/jar.mn @@ -83,6 +83,8 @@ browser.jar: skin/classic/browser/tabbrowser/alltabs-box-overflow-end-bkgnd-animate.png (tabbrowser/alltabs-box-overflow-end-bkgnd-animate.png) skin/classic/browser/tabbrowser/alltabs-box-overflow-start-bkgnd-animate.png (tabbrowser/alltabs-box-overflow-start-bkgnd-animate.png) skin/classic/browser/tabbrowser/newtab.png (tabbrowser/newtab.png) + skin/classic/browser/tabbrowser/progress.png (tabbrowser/progress.png) + skin/classic/browser/tabbrowser/progress-pulsing.png (tabbrowser/progress-pulsing.png) skin/classic/browser/tabbrowser/tab-arrow-left.png (tabbrowser/tab-arrow-left.png) skin/classic/browser/tabbrowser/tab-arrow-right.png (tabbrowser/tab-arrow-right.png) skin/classic/browser/tabbrowser/tabbrowser-tabs-bkgnd.png (tabbrowser/tabbrowser-tabs-bkgnd.png) @@ -177,6 +179,8 @@ browser.jar: skin/classic/aero/browser/tabbrowser/alltabs-box-overflow-end-bkgnd-animate.png (tabbrowser/alltabs-box-overflow-end-bkgnd-animate.png) skin/classic/aero/browser/tabbrowser/alltabs-box-overflow-start-bkgnd-animate.png (tabbrowser/alltabs-box-overflow-start-bkgnd-animate.png) skin/classic/aero/browser/tabbrowser/newtab.png (tabbrowser/newtab-aero.png) + skin/classic/aero/browser/tabbrowser/progress.png (tabbrowser/progress.png) + skin/classic/aero/browser/tabbrowser/progress-pulsing.png (tabbrowser/progress-pulsing.png) skin/classic/aero/browser/tabbrowser/tab-arrow-left.png (tabbrowser/tab-arrow-left-aero.png) skin/classic/aero/browser/tabbrowser/tab-arrow-right.png (tabbrowser/tab-arrow-right-aero.png) skin/classic/aero/browser/tabbrowser/tabbrowser-tabs-bkgnd.png (tabbrowser/tabbrowser-tabs-bkgnd.png) diff --git a/browser/themes/winstripe/browser/tabbrowser/progress-pulsing.png b/browser/themes/winstripe/browser/tabbrowser/progress-pulsing.png new file mode 100644 index 0000000000000000000000000000000000000000..3c66ed3c8e9fffbf428441b8015217ea2f575776 GIT binary patch literal 10429 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 literal 0 HcmV?d00001 diff --git a/browser/themes/winstripe/browser/tabbrowser/progress.png b/browser/themes/winstripe/browser/tabbrowser/progress.png new file mode 100644 index 0000000000000000000000000000000000000000..b8bd2efe554ea9d42d6c4a489e0a3a15e620521f GIT binary patch literal 2088 zcmV+@2-o+CP)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXY< z00kX|IsMK6000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000MrNklwHn_e+(cB;41(( z06co@m$lynpcBCR0BQkf04C@1mJ)nO6vYp=Y}v9l5D1t@j~>kq4-fySsi`UJbUKA( zGTEqU+PeVm&r$g+eq>~%!EU#U7K^1$*Yyt#!`KMmi?@DR`r{14{M>H0e|P83ouRh2 zwwH!steMXpdQioX_Wz(P-2W4u@;EZr%D# zB~JnPMNxDI0s*eGvoqGv&@eMwIRLC)y*eQXg2D5=(a_K^)7jY>3j_k3D2ndFd^@iP z0Mj%Pi^XbNT3XDWo}Nz@>H&ZdVzMl&a~zj;HHEuEk<$VHl?I!i5W~ z`uqEjEYvd$v(4>xJ2;NZOOiA#%W`~te7q)|PP3If1<Q<{24u``E z;HOLUyH(BMZP+$?Lk#Y~H-N=GLuSA1}ri zhhZ3WdV1PEF)`uFX0!gnYT>p0Y$GrXlapnc1@OHU;NN#R99FBHE^z`Y| z=6s!~oM#v&M+iY-+B2)GtD{ezJgKeZDFDm%?b}sJl5*uL+_Ps-th7v$q+DBDn_5`K z&FkCS+iPyzxbd6CdY8+^+ibSg0DQWx`#FyDDT<X#p_G~cV6)lO_3PI^zj*QDww4?hhY6+;il}5%TQW zv+qnzP1y@mAxWpxCV;U@-Y^Ven&vBIm3&uM*NNfb;n-Z~EbmT}j zzEDj~&A22%hc*Lw8Icg8 zj*gBdQmNEq0KY2nA3lBh)F#U^ktAuRkN{$uCdudXRM&M*RaFv+M3QCv7n-JhUsYAn zX0zFfb_kZeCuKI{+>MQmYw SX?6Jk0000