Bug 946987 - Add 2x tab images for Windows and use them for 1.25dppx and higher. r=mconley a=Sylvestre
authorMatthew Noorenberghe <mozilla@noorenberghe.ca>
Sun, 13 Apr 2014 01:09:36 -0700
changeset 183728 975b76d0b1c013871d9efcc4d19ec6695ec7d7e4
parent 183727 31aca79a5126922441836ec183cb57cbafadc1ee
child 183729 8e6041de3ce7c9475ddb236293355a5e95d5a7bd
push id3461
push usermozilla@noorenberghe.ca
push dateMon, 14 Apr 2014 00:29:54 +0000
treeherdermozilla-beta@e946bc71ae2b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmconley, Sylvestre
bugs946987
milestone29.0
Bug 946987 - Add 2x tab images for Windows and use them for 1.25dppx and higher. r=mconley a=Sylvestre
browser/themes/windows/browser-lightweightTheme.css
browser/themes/windows/browser.css
browser/themes/windows/jar.mn
browser/themes/windows/tabbrowser/tab-active-middle@2x.png
browser/themes/windows/tabbrowser/tab-background-end@2x.png
browser/themes/windows/tabbrowser/tab-background-middle@2x.png
browser/themes/windows/tabbrowser/tab-background-start@2x.png
browser/themes/windows/tabbrowser/tab-stroke-end@2x.png
browser/themes/windows/tabbrowser/tab-stroke-start@2x.png
--- a/browser/themes/windows/browser-lightweightTheme.css
+++ b/browser/themes/windows/browser-lightweightTheme.css
@@ -24,8 +24,16 @@
   background-attachment: scroll, scroll, fixed;
   background-color: transparent;
   background-image: url(chrome://browser/skin/tabbrowser/tab-active-middle.png),
                     @fgTabTextureLWT@;/*,
                     lwtHeader;*/
   background-position: 0 0, 0 0, right top;
   background-repeat: repeat-x, repeat-x, no-repeat;
 }
+
+@media (min-resolution: 1.25dppx) {
+  #tabbrowser-tabs:not([movingtab]) > .tabbrowser-tab > .tab-stack > .tab-background > .tab-background-middle[selected=true]:-moz-lwtheme {
+    background-image: url(chrome://browser/skin/tabbrowser/tab-active-middle@2x.png),
+                      @fgTabTextureLWT@;/*,
+                      lwtHeader;*/
+  }
+}
--- a/browser/themes/windows/browser.css
+++ b/browser/themes/windows/browser.css
@@ -1803,16 +1803,49 @@ toolbarbutton[type="socialmark"] > .tool
     padding-left: 2px;
     padding-right: 2px;
   }
 }
 %endif
 
 %include ../shared/tabs.inc.css
 
+@media (min-resolution: 1.25dppx) {
+  /* image preloading hack from shared/tabs.inc.css */
+  #tabbrowser-tabs::before {
+    background-image:
+      url(chrome://browser/skin/tabbrowser/tab-background-end@2x.png),
+      url(chrome://browser/skin/tabbrowser/tab-background-middle@2x.png),
+      url(chrome://browser/skin/tabbrowser/tab-background-start@2x.png);
+  }
+
+  .tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected=true]),
+  .tabs-newtab-button:hover {
+    background-image: url(chrome://browser/skin/tabbrowser/tab-background-start@2x.png),
+                      url(chrome://browser/skin/tabbrowser/tab-background-middle@2x.png),
+                      url(chrome://browser/skin/tabbrowser/tab-background-end@2x.png);
+  }
+
+  .tab-background-middle[selected=true] {
+    background-image: url(chrome://browser/skin/tabbrowser/tab-active-middle@2x.png),
+                      @fgTabTexture@,
+                      none;
+  }
+
+  .tab-background-start[selected=true]:-moz-locale-dir(ltr)::after,
+  .tab-background-end[selected=true]:-moz-locale-dir(rtl)::after {
+    background-image: url(chrome://browser/skin/tabbrowser/tab-stroke-start@2x.png);
+  }
+
+  .tab-background-end[selected=true]:-moz-locale-dir(ltr)::after,
+  .tab-background-start[selected=true]:-moz-locale-dir(rtl)::after {
+    background-image: url(chrome://browser/skin/tabbrowser/tab-stroke-end@2x.png);
+  }
+}
+
 %ifndef WINDOWS_AERO
 /* Use lighter colors of buttons and text in the titlebar on luna-blue */
 @media (-moz-windows-theme: luna-blue) {
   #main-window[tabsintitlebar]:not([inFullscreen]) .tabbrowser-arrowscrollbox > .scrollbutton-up,
   #main-window[tabsintitlebar]:not([inFullscreen]) .tabbrowser-arrowscrollbox > .scrollbutton-down {
     list-style-image: url(chrome://browser/skin/tabbrowser/tab-arrow-left-inverted.png);
   }
 
--- a/browser/themes/windows/jar.mn
+++ b/browser/themes/windows/jar.mn
@@ -164,30 +164,36 @@ browser.jar:
         skin/classic/browser/social/gear_default.png                 (../shared/social/gear_default.png)
         skin/classic/browser/social/gear_clicked.png                 (../shared/social/gear_clicked.png)
         skin/classic/browser/tabbrowser/newtab.png                   (tabbrowser/newtab.png)
         skin/classic/browser/tabbrowser/newtab-inverted.png          (tabbrowser/newtab-inverted.png)
         skin/classic/browser/tabbrowser/connecting.png               (tabbrowser/connecting.png)
         skin/classic/browser/tabbrowser/loading.png                  (tabbrowser/loading.png)
         skin/classic/browser/tabbrowser/tab.png                      (tabbrowser/tab.png)
         skin/classic/browser/tabbrowser/tab-active-middle.png        (tabbrowser/tab-active-middle.png)
+        skin/classic/browser/tabbrowser/tab-active-middle@2x.png     (tabbrowser/tab-active-middle@2x.png)
         skin/classic/browser/tabbrowser/tab-arrow-left.png           (tabbrowser/tab-arrow-left.png)
         skin/classic/browser/tabbrowser/tab-arrow-left-inverted.png  (tabbrowser/tab-arrow-left-inverted.png)
         skin/classic/browser/tabbrowser/tab-background-start.png     (tabbrowser/tab-background-start.png)
+        skin/classic/browser/tabbrowser/tab-background-start@2x.png  (tabbrowser/tab-background-start@2x.png)
         skin/classic/browser/tabbrowser/tab-background-middle.png    (tabbrowser/tab-background-middle.png)
+        skin/classic/browser/tabbrowser/tab-background-middle@2x.png (tabbrowser/tab-background-middle@2x.png)
         skin/classic/browser/tabbrowser/tab-background-end.png       (tabbrowser/tab-background-end.png)
+        skin/classic/browser/tabbrowser/tab-background-end@2x.png    (tabbrowser/tab-background-end@2x.png)
         skin/classic/browser/tabbrowser/tab-overflow-border.png      (tabbrowser/tab-overflow-border.png)
 
 # NOTE: The following two files (tab-selected-end.svg, tab-selected-start.svg) get pre-processed in
 #       Makefile.in with a non-default marker of "%" and the result of that gets packaged.
         skin/classic/browser/tabbrowser/tab-selected-end.svg         (tab-selected-end.svg)
         skin/classic/browser/tabbrowser/tab-selected-start.svg       (tab-selected-start.svg)
 
         skin/classic/browser/tabbrowser/tab-stroke-end.png           (tabbrowser/tab-stroke-end.png)
+        skin/classic/browser/tabbrowser/tab-stroke-end@2x.png        (tabbrowser/tab-stroke-end@2x.png)
         skin/classic/browser/tabbrowser/tab-stroke-start.png         (tabbrowser/tab-stroke-start.png)
+        skin/classic/browser/tabbrowser/tab-stroke-start@2x.png      (tabbrowser/tab-stroke-start@2x.png)
         skin/classic/browser/tabbrowser/tabDragIndicator.png         (tabbrowser/tabDragIndicator.png)
         skin/classic/browser/tabbrowser/tab-separator-luna-blue.png  (tabbrowser/tab-separator-luna-blue.png)
         skin/classic/browser/tabbrowser/tab-separator.png            (tabbrowser/tab-separator.png)
         skin/classic/browser/tabview/close.png                      (tabview/close.png)
         skin/classic/browser/tabview/edit-light.png                 (tabview/edit-light.png)
         skin/classic/browser/tabview/grain.png                      (tabview/grain.png)
         skin/classic/browser/tabview/search.png                     (tabview/search.png)
         skin/classic/browser/tabview/stack-expander.png             (tabview/stack-expander.png)
@@ -502,30 +508,36 @@ browser.jar:
         skin/classic/aero/browser/social/gear_default.png            (../shared/social/gear_default.png)
         skin/classic/aero/browser/social/gear_clicked.png            (../shared/social/gear_clicked.png)
         skin/classic/aero/browser/tabbrowser/newtab.png              (tabbrowser/newtab.png)
         skin/classic/aero/browser/tabbrowser/newtab-inverted.png     (tabbrowser/newtab-inverted.png)
         skin/classic/aero/browser/tabbrowser/connecting.png          (tabbrowser/connecting.png)
         skin/classic/aero/browser/tabbrowser/loading.png             (tabbrowser/loading.png)
         skin/classic/aero/browser/tabbrowser/tab.png                 (tabbrowser/tab.png)
         skin/classic/aero/browser/tabbrowser/tab-active-middle.png   (tabbrowser/tab-active-middle.png)
+        skin/classic/aero/browser/tabbrowser/tab-active-middle@2x.png (tabbrowser/tab-active-middle@2x.png)
         skin/classic/aero/browser/tabbrowser/tab-arrow-left.png      (tabbrowser/tab-arrow-left.png)
         skin/classic/aero/browser/tabbrowser/tab-arrow-left-inverted.png (tabbrowser/tab-arrow-left-inverted.png)
         skin/classic/aero/browser/tabbrowser/tab-background-start.png    (tabbrowser/tab-background-start.png)
+        skin/classic/aero/browser/tabbrowser/tab-background-start@2x.png (tabbrowser/tab-background-start@2x.png)
         skin/classic/aero/browser/tabbrowser/tab-background-middle.png   (tabbrowser/tab-background-middle.png)
+        skin/classic/aero/browser/tabbrowser/tab-background-middle@2x.png (tabbrowser/tab-background-middle@2x.png)
         skin/classic/aero/browser/tabbrowser/tab-background-end.png      (tabbrowser/tab-background-end.png)
+        skin/classic/aero/browser/tabbrowser/tab-background-end@2x.png   (tabbrowser/tab-background-end@2x.png)
         skin/classic/aero/browser/tabbrowser/tab-overflow-border.png (tabbrowser/tab-overflow-border.png)
 
 # NOTE: The following two files (tab-selected-end.svg, tab-selected-start.svg) get pre-processed in
 #       Makefile.in with a non-default marker of "%" and the result of that gets packaged.
         skin/classic/aero/browser/tabbrowser/tab-selected-end.svg    (tab-selected-end-aero.svg)
         skin/classic/aero/browser/tabbrowser/tab-selected-start.svg  (tab-selected-start-aero.svg)
 
         skin/classic/aero/browser/tabbrowser/tab-stroke-end.png      (tabbrowser/tab-stroke-end.png)
+        skin/classic/aero/browser/tabbrowser/tab-stroke-end@2x.png   (tabbrowser/tab-stroke-end@2x.png)
         skin/classic/aero/browser/tabbrowser/tab-stroke-start.png    (tabbrowser/tab-stroke-start.png)
+        skin/classic/aero/browser/tabbrowser/tab-stroke-start@2x.png (tabbrowser/tab-stroke-start@2x.png)
         skin/classic/aero/browser/tabbrowser/tabDragIndicator.png    (tabbrowser/tabDragIndicator.png)
         skin/classic/aero/browser/tabbrowser/tab-separator.png       (tabbrowser/tab-separator-aero.png)
         skin/classic/aero/browser/tabview/close.png                  (tabview/close.png)
         skin/classic/aero/browser/tabview/edit-light.png             (tabview/edit-light.png)
         skin/classic/aero/browser/tabview/grain.png                  (tabview/grain.png)
         skin/classic/aero/browser/tabview/search.png                 (tabview/search.png)
         skin/classic/aero/browser/tabview/stack-expander.png         (tabview/stack-expander.png)
         skin/classic/aero/browser/tabview/tabview.png                (tabview/tabview.png)
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ff154d5b9a90175396b010b66b0c4c9582ec9ec1
GIT binary patch
literal 117
zc%17D@N?(olHy`uVBq!ia0vp^JV0#6!3HGdkN<K6QZ}A0jv*f2$q7K9#(VliLDPmQ
zQ$)n=c!G}~Se)?4flDp+aJ>-YODVU58WOCF6GVEN0u8u8944Si4n>{ORqoG#<}i4=
L`njxgN@xNAw~Qdh
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..edcb3fa84a4c35943babbb9888e6c4dba5b6bf5e
GIT binary patch
literal 2925
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
X*Y)sQ*$~to00000NkvXXu0mjfwWiz0
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c99921f861c2739aa7aa5e2054a9db3d3437a3ba
GIT binary patch
literal 767
zc$@+M0s#GqP)<h;3K|Lk000e1NJLTq000aC002G+1^@s6AIJJZ0008UNkl<Zcmb7-
zOKt>35JXeJf=h4+B!1>&^D)NQ<_s+1{;N_&jgoks%IRh_8fg}<BO@}hIwIneJBd%h
ze0G!Weg4IlkN0r@L1z9_oJvn8^M5^|-p$kLUk?6Wu$I-J_K?gMd90Oxtu$*{7Yc`L
z-$V4!Wah^$A8R;V>jPbDcy__MT+CeOG8qJgWXX}|F~<1;=H(fs#~d!dGpytQ>X@9Y
z_b9~J%z8(AiSKzWip-<_kPEZ?ni=B*KZcK-oymO;%8;3F9JPnMG6zM!@U{klu|GZn
zV~uzA>|#-dRk-jcN|w-jj-AJ`xU+iZnBv(7%eBm=S&TucX3FgLgM0-RtySJRc0w3w
zGZHgPy;knhr~^4egR+#EKN>uF&AW<&Ap%udr46|#k2->=P?#5qm-d+l1ngD2kO=dI
zQd37N-)j2cMT98qp3?6P8N1M6I4mflAT#<<TNaWiQGNzfv#g?I4jL?*A;NrSk?MSh
zjDz1KJ*Pq2D{IbD@5nfiTwq~ZK|8V^st5SPui_{Rd_PiD)_Lr~5&026WbKR|a6s@2
z^n95eeQe=oL;&T5%1U04bMW&KxzH*f9W&^IC!z8(Wv^1zuFDVvXQVo|!nIv^cmffo
zSU#pWqEuy7z7dq9DqeCe4@nF^RRP)?`?T*JS@7vn(^=DH2&EW)+>k?iS@G=1gqL&s
zU~vmkH0^z$Uj86dc)*vQXK_Gq18F~E4rw#rs{+6q?RnNr9t_ZB*nOUT6SXucf(LvG
zU-TYQ;(*c>yhLS%&V8T<9g5ohcN<dAn?^5yvbxaV4;csFW=<Pxm!`qPtZW_+=IjGz
z7WhMc*vI}->1`$llqbPA9WqbP4Zb^3#p_I$T5lXozjon!J{)`v)5V!ED+97wkKlvP
xJ@mm>mpakT4s+yWn44*B`Vew@=WY<*!+&<{)u;p9omc<>002ovPDHLkV1mi8Wv~DM
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..b71e638beb8a9a015f575880511c2b9d5e92f29d
GIT binary patch
literal 3014
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
IM6N<$g5ZPU3;+NC
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..25ad262dab696874b1351925a8387d162877fae2
GIT binary patch
literal 1671
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
R9-{yN002ovPDHLkV1n<NEZ+bC
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..af6fb99bcb89a535bfe5b269ea32f05e333d32f0
GIT binary patch
literal 1692
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