Bug 465839 - "Controls for <video> content are missing" [r=mark.finkle]
authorWesley Johnston <wjohnston@mozilla.com>
Fri, 22 Oct 2010 12:05:00 -0400
changeset 66915 13c655de5bad3beb1526e053f6936722fa8701ea
parent 66914 35f3509f0261333dd6117a8e2097c9a8d22f1571
child 66916 619cdb5ff2eaa1511e23559300a74e7882266540
push id1
push userroot
push dateTue, 26 Apr 2011 22:38:44 +0000
treeherdermozilla-beta@bfdb6e623a36 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmark.finkle
bugs465839
Bug 465839 - "Controls for <video> content are missing" [r=mark.finkle]
mobile/chrome/content/content.css
mobile/themes/core/images/mute-hdpi.png
mobile/themes/core/images/pause-hdpi.png
mobile/themes/core/images/play-hdpi.png
mobile/themes/core/images/scrubber-hdpi.png
mobile/themes/core/images/unmute-hdpi.png
mobile/themes/core/jar.mn
mobile/themes/core/touchcontrols.css
--- a/mobile/chrome/content/content.css
+++ b/mobile/chrome/content/content.css
@@ -58,17 +58,17 @@ xul|scrollbar {
   display: none !important;
 }
 
 xul|scrollbarbutton {
   -moz-appearance: none !important;
   display: none !important;
 }
 
-xul|thumb {
+xul|scrollbarbutton > xul|thumb {
   min-width: 10px !important;
   -moz-appearance: none !important;
   background-color: gray !important;
   border: 1px solid gray !important;
   -moz-border-radius: 4px !important;
 }
 
 select:not([size]):not([multiple]) > xul|scrollbar,
@@ -250,8 +250,13 @@ input[type="radio"][disabled] {
   border:1px solid rgba(125,125,125,0.4) !important;
 }
 
 select[disabled] > input[type="button"] {
   opacity: 0.6;
   padding: 1px 7px 1px 7px;
 }
 
+/* -moz-touch-enabled? media elements */
+video > xul|videocontrols,
+audio > xul|videocontrols {
+  -moz-binding: url("chrome://global/content/bindings/videocontrols.xml#touchControls");
+}
new file mode 100644
index 0000000000000000000000000000000000000000..0bd1e60e6a3e2d23f43bfbba3e5c86afa71acf00
GIT binary patch
literal 2847
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
IZT;i_1$7?3djJ3c
new file mode 100644
index 0000000000000000000000000000000000000000..e377d321ce03505c9127296eab43b80d3b39f6df
GIT binary patch
literal 1359
zc%17D@N?(olHy`uVBq!ia0vp^S|H591|*LjJ{b+9BuiW)N`mv#O3D+9QW+dm@{>{(
zJaZG%Q-e|yQz{EjrrIztFsEgPM3hAM`dB6B=jtVb)aX^@7BGN-jeSKyVsdtBi9%9p
zdS;%j()-=}l@u~lY?Z=IeGPmIoKrJ0J*tXQgRA^PlB=?lEmM^2?G$V(tbhjOrj{fs
zROII56<bx<DuK<l0<uBE`br95B_-LmN)Sgy_y#CA=NF|anCcnmCL5R;D3}@Q85*0I
zo15z>7#SEE=o=X68ye{vnp+tgSs558K!Fm_wxX0Ys~{IQs9ivwtx`rwNr9EVetCJh
zUb(Seeo?x<p{1oI$P6PRU7!lx;>x^|#0uTKVr7^KE~&-IMVSR9nfZANAbw&}erbuV
zk`l}dxdpzyaD(%Tp#cR9GX09g0)0b01O41weVFRvlAzQy{HlvXDhpEegHnt0ON)|$
z@sXyCWEFm`Aca8JSos%a0wX0c$0a|xG&eP`#M8xA2`HnNl9>VwA`1gULvs@Yb0Y&Y
z3qwN-b4xQ<XJ-RfHz#Lj3r8cE8Cdn28<`opSXj6i8@n1By0|&Hm|MC!8yK3IgA8zT
zgz5FnD=taQOHPI9%|z%m$E(-MxhOTUB)=#mKR*YS0s=DfOY(~|@(UE4gH08D6O%LZ
zKzva2KwX+zlv$RV;#QQOs{jsPt4wV68yGqonp#>q8R7CbL~jZ?VWtmsj6Paofe8Uq
zAczT1`aljm^Q7hhb4(F1Yiv_)S<S$}SnuiL7*cWT&5VOyM+^koCP&RW`oL3Pj`jVz
z7se|qzOWt<|Df?|^$#w+-A%7O1>Qe$Rhqpk#mBTl!$bXS&TR*_wvxnu&mNyonLUk}
zp<A(nDc1DGy&nk%1^k;&-Y@N2ael&gQ|(KO9r|s2cc@-7Z|=J2F(vBs%`g9ij1O1*
z|FA~D=}t`i%U9n&p3KzV8>h47`lgh~ZHdLw*{-3{nJd27{Z*EHKKn=R&tPrNuNfES
z7;kHv_k6pV`jzdsChm1-@?F4b(x`S}Lx#<>pYv9~{u=VUh()8K$!Wqq<A5w%sVfzJ
zA?wZWTE5Co^ta9OS+F>5fp@(A`<$1H3q_dzdnE4Y+Z0hH^5{iiN9y(2`^s#8SVgUF
zKln}K^-A~WpN}t)`+9XdTWaI^Dz`6d{(pCVw`+>^(reFqKI<--n%^oQKHqC^z>C!f
z>Q2N)J)A3BE_hBq*KYSjul~5I)X!IA#d(FNt_u@<b#Z~b+59`a27MaK7hZbokh{L-
m=EJ*7%UfP8u8sXCmcStJ>(fQHewAQQ5$EaZ=d#Wzp$Py%uklO(
new file mode 100644
index 0000000000000000000000000000000000000000..a8482eb4dd7ebaf168eda6a8ca82e77efeffb930
GIT binary patch
literal 2373
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
F{{pXj*S`P&
new file mode 100644
index 0000000000000000000000000000000000000000..49c60505f46523e7c3b0a0e5f052c7b450f26c78
GIT binary patch
literal 1982
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
new file mode 100644
index 0000000000000000000000000000000000000000..4dbb94f98f0acf7f1a3df73ff3fbf4eb9345f2bf
GIT binary patch
literal 956
zc$@*e14I0YP)<h;3K|Lk000e1NJLTq001fg001fo1^@s6#ly*400001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igi2
z5f}{C`j|cd00TTpL_t(o!|mA5YZPY~2k`Iv%sVrQ)pk?ZO{Epl`U4bp%a-V5%(j?|
ze?Xy1nv2P9+}u3$*7kpBdu}f_Bt*reE%wkH10lzPLJsOBiKyU7?QW9YdA}Yyk#Vzv
z(b>#|`Ygl3yTkC|`#w9&Gr<43@`d8L-GHoKx$@hu`9iUpX5{#fKmGhmv)ODEKKuMz
z&o9|=U0dQza%ALU-+1-Xuw_|VM0!cSpDJj+P^^|mM^24b$A%ooaRC5IWdQ7r3##MT
z?n-5}Z>&=O#&H~Hb6o*804o)VhDr8~RmwwAWTaH$iM}eyPL=Ei<QqYgKyG{M^M&I0
zrLoGXa(QHECy{NT`9kq902hF1`Dw6H8BGMa1)47uFAff#J=opV<&fm&x*^rclP3;c
zIREumj^o%!pk6>dzohH6TIPrEzq_2te6X+OJc@{g1S^{8dm_>+qFfOXq^zQ#Jy0qW
z1VJhvc%o1{JW^R({`KU4NBW`R=Ut-lK?#!Yps_)f2+VGPK78;9_1fB&KJDsq(bLnD
z9_W*&&vbolz3s^xjRvyWY&xKGbAK;&cXvA`vi~HpfB#4ONPbK*5o{D1xUM_**Ug)I
z3G7jL>1Ij-*6{G~`svf&;UFM#xol$4e*xUL9cK<e>(i4m#$+cZCX6wl=XswJL~aL@
zZH3+mzgwYNM0&K=^~uQzkcM7={}E#ha=F~jLKhe28=hZ!4B%;--qip;6p@<N+DuJN
z!Wg2z-#<cw9l^c?T3ncK0%*3L<oP89pa!5RBGg)QdU^_mhQ5F1s3AL!eXZecabcdG
zUs?n35CB93T5DXpIt`NW{eh#TK`z&u{1h6&J_xbYS_jv!T}2QWo*5_|GwfU&Y-?N&
zvFjn0VX~aLaUG=Lz`z&B*`YSr_A8wT_C*`mT4Q$R1`LT(>C59vN%GJ(SSk_Nw#`3g
zXTT7f3TV4zl~S~An}7a33)gXVxMt#lzSXS0y0VN<4jeQ9>HyZ1Qh`#6w{PFFwbt`W
zWNCF}`AOo?S6~~KWvwWYdjM8fSC;E>kIQ(QHUO{z;1Pf&0RI5E3*cEN=K46Wo42mJ
eVef9lb^YhVx>~D-3o!Wr0000<MNUMnLSTaU6UPkz
--- a/mobile/themes/core/jar.mn
+++ b/mobile/themes/core/jar.mn
@@ -7,17 +7,19 @@ chrome.jar:
   skin/about.css                            (about.css)
   skin/aboutHome.css                        (aboutHome.css)
   skin/config.css                           (config.css)
   skin/firstRun.css                         (firstRun.css)
   skin/header.css                           (header.css)
   skin/platform.css                         (platform.css)
 * skin/browser.css                          (browser.css)
   skin/notification.css                     (notification.css)
+  skin/touchcontrols.css                    (touchcontrols.css)
 % override chrome://global/skin/about.css chrome://browser/skin/about.css
+% override chrome://global/skin/media/videocontrols.css chrome://browser/skin/touchcontrols.css
 
   skin/images/aboutBackground.jpg           (images/aboutBackground.jpg)
   skin/images/button-bg.png                 (images/button-bg.png)
   skin/images/textbox-bg.png                (images/textbox-bg.png)
   skin/images/browseaddons-bg.jpg           (images/browseaddons-bg.jpg)
   skin/images/addons-32.png                 (images/addons-32.png)
   skin/images/arrowleft-16.png              (images/arrowleft-16.png)
   skin/images/arrowright-16.png             (images/arrowright-16.png)
@@ -93,8 +95,13 @@ chrome.jar:
   skin/images/section-expanded-16.png       (images/section-expanded-16.png)
   skin/images/section-collapsed-16.png      (images/section-collapsed-16.png)
   skin/images/task-switch-hdpi.png          (images/task-switch-hdpi.png)
   skin/images/task-close-hdpi.png           (images/task-close-hdpi.png)
   skin/images/task-back-hdpi.png            (images/task-back-hdpi.png)
   skin/images/task-back-rtl-hdpi.png        (images/task-back-rtl-hdpi.png)
   skin/images/autocomplete-desktop-hdpi.png      (images/autocomplete-desktop-hdpi.png)
   skin/images/autocomplete-bookmarked-hdpi.png   (images/autocomplete-bookmarked-hdpi.png)
+  skin/images/play-hdpi.png                 (images/play-hdpi.png)
+  skin/images/pause-hdpi.png                (images/pause-hdpi.png)
+  skin/images/mute-hdpi.png                 (images/mute-hdpi.png)
+  skin/images/unmute-hdpi.png               (images/unmute-hdpi.png)
+  skin/images/scrubber-hdpi.png             (images/scrubber-hdpi.png)
new file mode 100644
--- /dev/null
+++ b/mobile/themes/core/touchcontrols.css
@@ -0,0 +1,169 @@
+@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
+
+/* video controls */
+.controlsOverlay {
+  -moz-box-pack: center;
+  -moz-box-align: end;
+  padding: 20px;
+  -moz-box-flex: 1;
+  -moz-box-orient: horizontal;
+}
+
+.controlBar {
+  -moz-box-flex: 1;
+  font-size: 16pt;
+  padding: 10px;
+  background-color: #34353a;
+  border-radius: 8px;
+  width: 100%;
+}
+
+.controlsSpacer {
+  display: none;
+  -moz-box-flex: 0;
+}
+
+.playButton,
+.muteButton {
+  -moz-appearance: none;
+  min-height: 42px;
+  min-width: 42px;
+  border: none !important;
+}
+
+.playButton {
+  -moz-transform: translateX(21px);
+  background: url("chrome://browser/skin/images/pause-hdpi.png") no-repeat center;
+}
+
+.playButton[paused="true"] {
+  background: url("chrome://browser/skin/images/play-hdpi.png") no-repeat center;
+}
+
+.muteButton {
+  background: url("chrome://browser/skin/images/mute-hdpi.png") no-repeat center;
+}
+
+.muteButton[muted="true"] {
+  background: url("chrome://browser/skin/images/unmute-hdpi.png") no-repeat center;
+}
+
+/* bars */
+.scrubberStack {
+  width: 100%;
+  min-height: 32px;
+  max-height: 32px;
+  padding: 0px 8px;
+  margin: 0px;
+}
+
+.bufferBar,
+.bufferBar .progress-bar,
+.progressBar,
+.progressBar .progress-bar,
+.scrubber,
+.scrubber .scale-slider,
+.scrubber .scale-thumb {
+  -moz-appearance: none;
+  border: none;
+  padding: 0px;
+  margin: 0px;
+  background-color: transparent;
+}
+
+.bufferBar {
+  border: 1px solid #5e6166;
+}
+
+.bufferBar,
+.progressBar {
+  margin: 9px 0px 11px 0px;
+  height: 8px
+}
+
+.bufferBar .progress-bar {
+  background-color: #5e6166;
+}
+
+.progressBar .progress-bar {
+  background-color: white;
+}
+
+.scrubber {
+  margin-left: -16px;
+  margin-right: -16px;
+}
+
+.scrubber .scale-thumb {
+  display: -moz-box;
+  background: url("chrome://browser/skin/images/scrubber-hdpi.png") no-repeat;
+  height: 32px;
+  width: 32px;
+}
+
+.durationBox {
+  -moz-box-orient: horizontal;
+  -moz-box-pack: start;
+  -moz-box-align: center;
+  color: white;
+  font-weight: bold;
+  padding: 0px 8px;
+  margin-top: -6px;
+}
+
+.positionLabel {
+  -moz-box-flex: 1;
+}
+
+.statusOverlay {
+  -moz-box-align: center;
+  -moz-box-pack: center;
+  background-color: rgb(50,50,50);
+}
+
+.statusIcon {
+  margin-bottom: 28px;
+  width: 36px;
+  height: 36px;
+}
+
+.statusIcon[type="throbber"] {
+  background: url(chrome://global/skin/media/throbber.png) no-repeat center;
+}
+
+.statusIcon[type="error"] {
+  background: url(chrome://global/skin/media/error.png) no-repeat center;
+}
+
+/* CSS Transitions */
+.controlBar:not([immediate]) {
+  -moz-transition-property: opacity;
+  -moz-transition-duration: 200ms;
+}
+
+.controlBar[fadeout] {
+  opacity: 0;
+}
+
+.statusOverlay:not([immediate]) {
+  -moz-transition-property: opacity;
+  -moz-transition-duration: 300ms;
+  -moz-transition-delay: 750ms;
+}
+
+.statusOverlay[fadeout] {
+  opacity: 0;
+}
+
+.volumeStack,
+.controlBar[firstshow="true"] .muteButton,
+.controlBar[firstshow="true"] .scrubberStack,
+.controlBar[firstshow="true"] .durationBox,
+.timeLabel {
+  display: none;
+}
+
+.controlBar[firstshow="true"] .playButton {
+  -moz-transform: none;
+}
+