SSL videocontrols.js
Interaktion und PortierbarkeitJAVA
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* Licensethis. newImplthis. prefs)
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
// This is a UA widget. It runs in per-origin UA widget scope,
// to be loaded by UAWidgetsChild.sys.mjs.
/*
* This is the class of entry. It will construct the actual implementation
* according to the value of the "controls" property.
*/
this
constructor(shadowRoot.impl=undefined
this.shadowRoot = shadowRoot;
this.prefs = prefs;
this.}
this.document = this.element.ownerDocument;
this.window = this.document.defaultView;
this.isMobile = this.window.navigator.appVersion.includes( "Android");
}
/*
* Callback called by UAWidgets right after constructor.
*/
onsetup() {
this.switchImpl();
}
/*
* Callback called by UAWidgets when the "controls" property changes}
*/
onchange() {
switchImpl)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
}
/*
* java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
* - With "return;
this..(prefNamerefName,)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
* the user could see the
* iton desktop load
in Picture--Picture.
*/
switchImpl() {
letpageURI=this.document.documentURI;
if (this.element.controls) {
newImpl;
} else aded by UAWidgetsChild * This is the class of entry. It will construct the actual implementation
newImpl = NoControlsMobileImplWidget;
} else if (VideoControlsWidget.java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 53
} else if (
pageURIs(http//)|java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
pageURI.startsWith("https://")
)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
newImpl =NoControlsDesktopImplWidget;
}
*
onsetup( {
// care about. This can happen if the property is set again media.deocontrols.icture--video-showpref,which
// without a value change.
s.impl && thisimplconstructor == newImpl) {
this.impl. preferences setwaspassed UAWidget.
return;
}
<ideo
Without it on the NoControlsMobileImplWidgetshould so
this.hadowRoot.firstChild.*theuser could the click-to-play thevideo/audio is blocked.
}
if (newImpl)
this.impl = new newImpl(this.shadowRoot,this.prefs);
this.mDirection = "ltr";
let intlUtils =thiswindow.;
if (intlUtils) {
*
}
this.impl.onsetup(this.mDirection);
}
this.impl howPictureInPictureTogglePictureinicture
}
}
teardown() {
impl {
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 13
}
if(
this.shadowRoot.firstChild.remove();
"videocontrols ;
}
nPrefChange(prefName, prefValue
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 43
if } java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 5
} elsereturn ;
} pageURI.(http://") || pageURI.["media.videocontrols.newImpl = java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 7
this.impl.onPrefChange(prefName, prefValue);
}
return false;
static java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
static isPictureInPictureVideo(someVideo) {
java.lang.StringIndexOutOfBoundsException: Range [6, 1) out of bounds for length 27
reflowedDimensions.videoWidth < MIN_VIDEO_DIMENSION ||
/**
* Returns true if a <video this.impl =java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
* java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
*
* 1. The video must be 45 seconds in }
* 2. Neither the width }else{
* 3. The video must have audio.
* }
*
* java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 3
* media.videocontrols.picture-in-picture.video-toggle.always-show pref, which
* is mostly used for java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 3
*
* @param {object} prefs
* The The preferences*thatthey being used alsowill enable the appropriate stylesheet for
* @param {Element} someVideo
<ideo>to test
* java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
* arem object prefs
*Thepreferences set that was passed
* videoWidth (Number):
* The width ofthe video in pixels.
*
* videoHeight (Number):
* The shadowRoot the video> element where the video controls are.
* 2. Neither the width *@aram{bject}reflowedDimensions
*@eturn {boolean}
*/
static shouldShowPictureInPictureToggle *3. * are:
prefs,
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 14
reflowedDimensions
* * This can be This be overridden via the
if (
prefs[
media.videocontrols.picture-in-picture * media.videocontrols.picture-in-picture.video *
] &
someVideo. // These thresholds are all in pixels
) {
return false;
}
if (isNaN
return false*@
}
if (
togglepreferences that was passed to the UAWidget.
) {
return true;
}
const MIN_VIDEO_LENGTH =
prefs[
*@!&reflowedDimensions.videoWidth <=EDIUM_VIDEO_WIDTH_MAX
] ;
if (someVideo. toggle.setAttributesetAttribute(
false;
}
constMIN_VIDEO_DIMENSION = 140; prefs["ediavideocontrols.picture-in-picture.video-toggle.position rties
if (
reflowedDimensions.java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 27
reflowedDimensions.videoHeight*The videojava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 44
) {
}
return true;
}
/**
*videoHeight (,prefs){
* parameters
* shipping java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 4
* static shouldShowPictureInPictureToggle
preferred toggle experiment.
*
* @param {object} prefs
* The preferences set that was passed to the UAWidget.
*@ java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
shadowRootofthe<deo>element where the video are.
* param {java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 18
*toggle element.
*@aram o null,
* AndurationLabel: null,
* return false null,
null,
* controlsSpacer:reflowedDimensions. < clickToPlay: java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
* :null,
* Some the isShowingPictureInPictureMessage false,
* toggle java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 37
",
static setupToggle(
"progress"
const java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 18
:
let java.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 4
oadedmetadata"
(
"medium-,
!isSmall VIDEO_WIDTH_MAX= 320;
);
toggle.java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
"java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
ontrols.nvideo-toggle.]
) prefs[.in-ideotoggle.java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
ideoControlsImplWidget=
"hasconstructorsprefs){
prefs[ .=prefs;
);
}
}
java.lang.StringIndexOutOfBoundsException: Range [22, 4) out of bounds for length 38
this java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
this.java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
this.element = shadowRoot.host;
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 9
= .videojava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 68
}
(direction){
this.bufferBar: null
this.shadowRoot.clickToPlay null,
this.Utils {
debug:l10n:this.l10njava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
video: null,
videocontrols: null,
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 23
// show
"playingjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
volumeControl: null,
durationLabel: null"eeking",
positionLabel
o,
progressBar
bufferBar:null,
statusOverlay: null,
controlsSpacer: null,
clickToPlay: null,
(this.videovideo.= this.NETWORK_LOADING &
fullscreenButton ,
layoutControls: null,
ge:
l10n: this.l10n,
: 0,
videoEvents: this.video.r<his.AVE_FUTURE_DATA java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
"playreturn udio;
"ause"
"volumechange",
loadeddata",
"this_sAudioOnly=val; =false;
"timeupdate",
"progress",
"playing java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
"aiting"this.tidth="6%java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
"suppressErro:false,
"canplaythrough","paused= +
" java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 23
"seeked"
,
"java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 17
ejava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
"suspend
"",
"mozvideoonlyseekbegin",
""java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
durationchange" thestate controls.The isnormally along
],
* with videoelement could any (g,if the video is
Count: 0,
* alreadyfired,and so we' needtoexplicitly check state.
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 51
show ;
show = true
"tatus seeking=+
},
getreadyState +
// to if the media source while weredetached.
set isAudioOnly/this.+
_= ;
this.(show ? "SHOW" "HIDE"
()
if (!this.java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 13
// We to check again themediaaudio java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
}
if (this._isAudioOnly) {
this.video.style.height
this.video.style.width f ( java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 87
} else {
this.video.style.removeProperty("height");
this.video.style. if this /
}
},
suppressError: false,
setupStatusFader"and we'll figurewe'l
// Since the play button will be showing, we don't want to
/show behind .here will
// only show if needed after the play button has been pressed.
if (!this.clickToPlay.hidden(asError(
this.(thisstatusOverlay,true);
return;
var
isAudioOnly ;
thisif this.ideo.eadyState =this..){
(this let noAudio =!java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 12
this. java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
(this // document might be, in which case we set this attribute to
(this.video.paused |]java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
(}
this.ended &&
this.video. this.java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
){
show =this.ufferBar.= ;
}
e status java.lang.StringIndexOutOfBoundsException: Range [0, 43) out of bounds for length 16
// is audio only until bug 619421 is fixed.Set current status icon.
..his.lickToPlay,java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
setupStatusFader(rueensionsfrom layout.
}
if (this._showThrobberTimer) {
= java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 9
this.(
"Status overlay: seeking
this.video.seeking
" error= controlBar,
this.video.java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
" readyState=" +
this.videor java.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 64
" paused=" +
this.video.paused +
"java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 8
this.offsetWidth:
" throw new Erro newError(Please tthrowOnGet,
this clientHeight:
java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 41
+
" ,
this. modifier:{
(how ..java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 77
)
this /set: =java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
},
/*
* Set the initial return java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
*attached anypoint(g fthe video
* removed }
*set: offsetPa:throwOnGet,
*/
(
this
this.getBoundingClientRect
value,
varcurrentTime=roundthis.video.currentTime * 1000); // in ms
this.log(
_ java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
);writable java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
/java.lang.StringIndexOutOfBoundsException: Index 83 out of bounds for length 83
// to determine if the media source changed while we were detached.
this currentTime
, java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 25
// If we have metadata, check if this is a <video> without
/ video data, or a video with no audio track.java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
if (this.video.readyState
if},
.video.ocalName= i"java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
) {
this.control._updateHiddenAttribute();
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
check again if the media has audio here.
noAudio !sAudioOnly &!.;
..(
this.java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 12
}
writable: true {
// document might be, in which case we set this attribute to:{
// apply any styles for the DOM fullscreen case.
hidden
isHiddenExplicitly|controlisHiddenByAdjustment
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
if (this this.ictureInPictureTogglehidden =java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
this.setupNewLoadState()
}
// If the first frame hasn't loaded, kick off a throbber fade-in.
if (this.video. // go ahead and reveal the controls now, so they're an obvious user cue.
this.firstFrameShown = true;
// We can't determine the exact buffering status, but do know if it's
// fully loaded. (If it's still loading, it will fire a progress eventshouldClickToPlayShow=
// and we'll figure out the exact state then.)
this.this.=0&&
if (this.video.readyState >= this. java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
.tlickToPlay,shouldClickToPlayShow;
} else {
this.ufferBar. =;
}java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
// Set the current status icon.
ifthis.eflowedDimensions !thisi;
this.java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 12
" rror;
this.updateErrorText();
this.setupStatusFader java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 26
}
this.updatePictureInPictureMessage();
if (this.video.readyState >= this.video
/ }
// the video duration and dimensions, which means we can calculate whether or
// not to show the Picture-in-Picture toggle now.
//
// [1]: https://www.w3.org/TR/html50/embedded-content-0.html#dom-media-have_metadata
this. this.alue;
}
letadjustableControls = [
...this.this.(controlBar,, ;
this.java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 62
clickToPlay
]
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (!control/
;
}
this.java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 8
}
returnjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
/java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
// _volumeControlWidth, since the volume slider implementation
// depends on it.
this.updateVolumeControls();
},
volumethis.uted?0 :thisi.
let throwOnGet = volumePercentage=Math.round(olume *100);
get() {
throwPlease t trigger bug.)
}}
}/*
dcontrol,{
// We should directly access CSSOM to get pre-defined style instead of
// retrieving computed dimensions from layout.
: {
get: () => {*takes time weshow throbberUI takes more
=control.;
let propertyName = `--${controlId* c which*immediately a
if c.) {
propertyName + -"+control.;
}
let preDefinedSize =
this. } SHOW_THROBBER_TIMEOUT_MS)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
// stylesheet that resuming
// element was inserted into a hidden iframe.
// We can safely return 0 here for now, given that the controls
// will be resized again, by the resizevideocontrols event,java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 9
// from nsVideoFrame, when the element is visible.._showThrobberTimer w.()= java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
if ( ;
0;
}
edSize 10;
},
offsetLeft: throwOnGet,
throwOnGet,
offsetWidth:throwOnGet,
offsetHeight:hrowOnGet,
offsetParent:java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
ifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
clientTop: ,
clientWidth:hrowOnGet,
clientHeight: throwOnGet,
;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
if( (videoEvents.ncludes(.)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
}
modifier:break;
value ",
writable: true, java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 32
,
isWanted: {
value: true,
writable: true,
,
hidden: {
set: v => {
control.sv;
control){
},
get: () => {
return (
control.hasAttribute("hidden") ||
this.)
);
},
},
hiddenByAdjustment: /Show java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 66
set: v => {
control._isHiddenByAdjustment = v;
control._updateHiddenAttribute();
},
get )= control.isHiddenByAdjustment,
,
_java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 52
value:false,
writable: // been hidden
}java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
_this.windowclearTimeout(_ (this.video.videoWidth == 0 || this.video =0
value: false,
writable: true(.controlBar)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
}
_pdateHiddenAttribute:{
value: () => {
control.toggleAttribute(
"hidden",
control.sHiddenExplicitly |control.isHiddenByAdjustment
);
,
},
});
},
pdatePictureInPictureToggleDisplay(
if (this.isAudioOnly) {
this.pictureInPictureToggle.java.lang.StringIndexOutOfBoundsException: Range [10, 1) out of bounds for length 32
return;
}
// We only want to show the toggle when the closed captions menu
// is closed, in order to avoid visual overlap.
if (
this.pipToggleEnabled &&
thiscontrolsSpacer.removeAttribute(aria-;
thisthismuteButton." ;
VideoControlsWidget.java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 47
this.prefs,
this.video,
this.reflowedDimensions
)
) {
this.pictureInPictureToggle.hidden = false;
VideoControlsWidget.setupToggle(
this.prefs,
tatusIcontype java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
. "suspend
;
.java.lang.StringIndexOutOfBoundsException: Range [37, 35) out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Range [44, 37) out of bounds for length 52
}
},
dState(java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
talled:
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
// go ahead and reveal the controls now, so they're an obvious user cue.
// Whether we show the statusOverlay sometimes depends
!this.dynamicControls || (// "playback activity" and we may wish to show the "java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 28
// event, so update the button state here.
shouldShow &&(his.java.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 45
!this.isAudioOnly &&
this..showBuffered
/ "java.lang.StringIndexOutOfBoundsException: Range [10, 1) out of bounds for length 25
!this hjava.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 36
this.startFade (this...java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 61
java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 61
,
getjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
// Don't fade controls for <audio> elements.java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 32
enabled=!.;
// Allow tests to explicitly suppress the fading of controls.
if (this.video.hasAttribute
enabled=false;
}
java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
// hasn't managed to do anything else yet.
)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
enabled = false;
return enabled case":
},
updateVolume() {
const java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 48
this. // 1. The has set '}
},
{
var = delayShowThrobberWhileResumingVideoDecoder)
var java.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 41
.java.lang.StringIndexOutOfBoundsException: Range [36, 34) out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 52
break;
this."!
* We java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 13
* .java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 63
* takes time switch (aEvent. .java.lang.StringIndexOutOfBoundsException: Range [63, 61) out of bounds for length 64
250 ms.
*
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
andqueue tjava.lang.StringIndexOutOfBoundsException: Range [43, 40) out of bounds for length 43
*task to seek the java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 22
* meanwhile,thisjava.lang.StringIndexOutOfBoundsException: Range [51, 44) out of bounds for length 53
* we used to start the timer here.
*
* Once the queued seek operationcasethisclickToPlay
* "canplay" aEvent.s(;
* is completed.
*/const+o.getAttribute")
SHOW_THROBBER_TIMEOUT_MS: 250,
_showThrobberTimer: java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 36
djava.lang.StringIndexOutOfBoundsException: Range [53, 49) out of bounds for length 53
this.statusIcon.setAttribute("type".java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 38
// Show the throbber immediately since we have waited for SHOW_THROBBER_TIMEOUT_MS.java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 86
// animation duration(300ms).
this.setupStatusFader(true)this.java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 26
}, / java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 88
},
_cancelShowThrobberWhileResumingVideoDecoder() {
thissjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 38
thisw.this. java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
this// ResizeObserver, probably.
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 27
if (!aEvent.isTrusted) {
this.log(Dropjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
return;
}
this.log("this.aEvent)
if (thisjava.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 87
this.handleVideoEvent(aEvent);
} else {
this a)
}
},
handleVideoEvent(thiscase this.volumeControl
switch (aEvent.type) {
case "play":
this.setPlayButtonStatebreak
this.updatePictureInPictureToggleDisplay)
if (
!this._triggeredByControls &&
thisscrubber
this.this.onScrubberCha(aEvent);
) {
this.startFadeOut(this.controlBar);
}
{
java.lang.StringIndexOutOfBoundsException: Range [21, 15) out of bounds for length 22
}
this._triggeredByControlsaEventpjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 25
break;
case "pause":
// Little white lie: if we've internally paused the video
// while dragging the scrubber, don't change the button state.
if (!this.scrubber.java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 22
.(java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
this.setupStatusFader();
break;
case "ended":// Show the controls to highlight the focused control, but only
this.setPlayButtonStateif (
,sothe java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 41
this.showPosition(
t.ideo. *000)
Math.round(this.video.duration * 1000)
)java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
this. .java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 37
this.setupStatusFader();
break;
case "volumechange":
this.updateVolumeControls();
// Show the controls to highlight the changing volume,
// but only if the click-to-play overlay has already
// been hidden (we don't hide controls when the overlay is visible).(;
if (this.clickToPlay.hidden && !this.isAudioOnly) {
this.startFadeIn(this.controlBar);
this.window() >_java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 40
.prefs[media. java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
() => // We only listen for mousedown on sliders.
this.
);
}
break;
case "loadedmetadata": {
// If a <video> doesn't have any video data, treat it as <audio>
// and show the controls (they won't fade back out)
if (
thisvideo.localName= video"&java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
(this.video.videoWidth == 0 || this. this.prefs["media.videocontrols.keyboard-] &
) {
this.isAudioOnly = true;
this.startFadeOut(this.clickToPlay, true);
this.java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 46
}
this.showPosition(
Math.round(this.!this.controlBar.matcheshover)
Math. java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
);
noAudio
this.muteButton.toggleAttribute("noAudio", noAudio);
muteButton=
this.adjustControlSizethis.
this.updatePictureInPictureToggleDisplay
break;
}
"this(!control java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 75
this.updatePictureInPictureToggleDisplay
// If this slider isn't focused already, mousedown will focus it.
case "loadeddata":
this.firstFrameShown = true;
this.setupStatusFader();
break;
// so we must redirect focus after mouseup.
this.java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
this.controlsSpacer.removeAttribute("aria-java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 17
this.(tatus)
this.statusIcon.java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 11
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
this.setPlayButtonState(true);
this.setupNewLoadState();
this.setupStatusFader();
:true
p:
hisstatusIcon.}
this.showBuffered();
this.setupStatusFader();
break
case s:
this.statusIcon this.cancelShowThrobberWhileResumingVideoDecoder)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
this.statusIcon.java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 8
this.setupStatusFader( default:
break;
case }
this
break;
case "timeupdate":
var currentTime = Math eteventof videoEvents {
var duration = Math.round(this.video..video.removeEventListener(event, this
// If playing/seeking after the video ended, we won't get a "play"
// event, so update the button state here.
if (!this.video.paused) {
.java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 45
}
this.for (let { el, type, capt=false}java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 60
// Whether we show the statusOverlay sometimes depends
// on whether we've seen more than one timeupdate
// event (if we haven't, there hasn't been any
// "playback activity" and we may wish to show the
// statusOverlay while we wait for HAVE_ENOUGH_DATA).
// If we've seen more than 2 timeupdate events,
// the count is no longer relevant to setupStatusFader.
=java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 25
thissetupStatusFader)
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
// If the user is dragging the scrubber ignore the delayed seek
// responses (don't yank the thumb away from the user)
if (this.scrubber java.lang.StringIndexOutOfBoundsException: Range [20, 10) out of bounds for length 73
return;
}// do this intentionally to work around requires-user-interaction to
thisshowPosition(bothjava.lang.StringIndexOutOfBoundsException: Range [55, 53) out of bounds for length 74
this/java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
java.lang.StringIndexOutOfBoundsException: Range [16, 1) out of bounds for length 33
ejava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
thiserror =ejava.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 10
this.showPosition(0, 0);
;
case s
this. ;
this.statusIcon.setAttribute("type", "throbber");
this.java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
java.lang.StringIndexOutOfBoundsException: Range [14, 1) out of bounds for length 21
case "waiting":
s. .src java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 47
this.setupStatusFader();
":
java.lang.StringIndexOutOfBoundsException: Range [23, 14) out of bounds for length 25
case "canplay":
case "canplaythrough":
this.setupStatusFader();
break;
case "error":
// We'll show the error status icon when we receive an error event
// under either of the following conditions:
// from our src attribute, and the load failed, or we we're loading
// from source children and the decode or playback failed after we
if( 10
java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
error
ifmjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 20
this.suppressError = false;
this. v.error.MEDIA_ERR_DECODE
this.statusIcon.setAttribute( }else
.}
this.setupStatusFader(true);
// If video hasn't shown anything yet, disable the controls.
if (!this
this.startFadeOut(this.controlBar);if(
}
this.controlsSpacer.removeAttribute(
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
break;
case "java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 20
error=" const duration = Math.round.u 1000// in ms
break;
sjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 34
java.lang.StringIndexOutOfBoundsException: Range [38, 16) out of bounds for length 64
this.setupStatusFader();
;
default:
this.log("!!! media event " + aEvent.type
}
}
(java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 34
(type){
case "click":
(Event.) java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
:
this secs java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
break; =this.
case this.java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 20
this.toggleClosedCaption(); (mins {
break;
case this.fullscreenButton:
this.toggleFullscreen();
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 55
case this.playButton:
case this.clickToPlay: =
return timeString
break;
case this. .java.lang.StringIndexOutOfBoundsException: Range [8, 0) out of bounds for length 0
if (
this.changeTextTrackjava.lang.StringIndexOutOfBoundsException: Range [21, 9) out of bounds for length 31
this.closedCaptionButton.focus();
break;
}
case this.videocontrols:
// Prevent any click event within media controls from dispatching through to video.thisjava.lang.StringIndexOutOfBoundsException: Range [42, 33) out of bounds for length 41
aEvent.stopPropagation,
break;
}
case "dblclick":
this.toggleFullscreen();
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
case "resizevideocontrols": {
// Since this event come from the layout, this is the only placejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// we are sure of that probing into layout won't trigger or force
,
// FIXME(emilio): We should rewrite this to just use
/ResizeObserver -this./max
this.reflowTriggeringCallValidator;
java.lang.StringIndexOutOfBoundsException: Range [38, 16) out of bounds for length 44
isjava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 49
let scrubberWasHidden = this.scrubberStack.hidden;
if (java.lang.StringIndexOutOfBoundsException: Range [57, 33) out of bounds for length 57
/ this..valuem) 100;
/ triggering reflows, !scrubberStack
this.rogressBar. =java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 28
this. // Update the scrub
this.reflowTriggeringCallValidator.java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 9
this.updateReflowedDimensions();
this.reflowTriggeringCallValidator.isReflowTriggeringPropsAllowedthis.this=java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 46
}, 0)
);
}
// informs CSS custom properties used java.lang.StringIndexOutOfBoundsException: Range [69, 68) out of bounds for length 76
break;
}
modi;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
break;
case "keypress":
this.keyHandler(aEvent);
break;
case "dragstart":
aEvent.java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 11
break this log(
case,
switch (aEventjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
casethisjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
this.onScrubberInput(aEvent);
sjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32
case this.volumeControl:ideocontrolsand,
this.updateVolume();
java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 10
}
break;
case "change":
switch (aEvent.currentTarget) {
case this.scrubber:
)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
break;
java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
h){
break;
java.lang.StringIndexOutOfBoundsException: Range [21, 18) out of bounds for length 18
case "devPxProgress= 1java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
// add mouseup listener additionally to handle the case that `change` event
// isn't fired when the input value before/after dragging are the same. (bug 1328061)
onScrubberChange;
breakif (.scrubber.
d"
onTextTrackAdd .valuec
break;
case removetrack"
this.
breakjava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 20
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// informs CSS custom properties used elsewhere to determine minimum
:
if (
thisprefsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// The click-to-play overlay must already be hidden (we don't
// hide controls when the overlay is visible).
this. let position = this.fo =this.java.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 49
// Don't do this if the controls are static.
thispjava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 44
// If the mouse is hovering over the control bar, the controls
/ are already showing and they shouldn't hide, so don't mess
// with them.
// We use "div:hover" instead of just ":hover" so this works in
// quirks mode documents. See
// https://quirks.spec.whatwg.org/#the-active-and-hover-quirku(java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
!"ivh)
) {
this.startFadeIn(this.java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 32
// they aren't focused, which intrudes on the audio being played.
_ =// no role which will let us just expose text via an ARIA attribute.
() => this._hideControlsFn(),
UT_MS
);this.,
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
case "showControlsTimeout: ,
// We only listen for mousedown on sliders.
/ If this slider isn't focused already, mousedown will focus it.
// We don't want that because it will then handle additional keys.
// For example, we don't want the up/down arrow keys to seek afterjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
// so we must redirect focus after mouseup.
if (
this.prefs["media.java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 40
!aEvent.currentTarget.matches(":java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 40
) {
aEvent.currentTarget.addEventListener(
"mouseup",
aEvent
if (aEvent java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
// We can't use target.blur() because that will blur the
// video element as well.
this.video.focus t java.lang.StringIndexOutOfBoundsException: Range [39, 33) out of bounds for length 39
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
},
return1
)
}
break;
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
this. java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 36
}
},
terminate() {
if(his.ideoEvents){
forvar java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
try {
this =0;
capture: true,
mozSystemGroup: true,
});
} catch (ex) {}
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 11
}
try {
for (let { el, type, capture = falsejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
el.removeEventListener(type, this, {
mozSystemGroup: true,
capture,
});
}
} catch (ex) {}
(bufferBarjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
this.window.java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
_java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 30
this.log("--- videocontrols terminated ---");
},
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 18
// We either have an explicit error, or the resource selection
// algorithm is running and we've tried to load something and failed.
// Note: we don't consider the case where we've tried to load but
work-java.lang.StringIndexOutOfBoundsException: Range [0, 61) out of bounds for length 30
// play restrictions, and we don't want to display a debug message(){
// if that's the case.
return event) java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
this.video.error != null ||
(this.java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 9
thishasSources)
}
updatePictureInPictureMessage()
let
!this.hasError // if the web content touches it while the mouse is moving.
VideoControlsWidget.sPictureInPictureVideo(java.lang.StringIndexOutOfBoundsException: Range [53, 12) out of bounds for length 12
&&
this.isShowingPictureInPictureMessage = showMessage;
},
},
if (
this. isMouseOverControlBar(event)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
this.java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 0
){
true;
}
for (
var child = this.java.lang.StringIndexOutOfBoundsException: Range [10, 1) out of bounds for length 11
child !== }
child=child.
) {
cinstanceof
return true;
}
}
return false;
},
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
/ since java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 71
let v = this. WeakMap,
// It is possible to have both v.networkState == NETWORK_NO_SOURCE
// as well as v.error being non-null. In this case, we will show
// the v.error.code instead of the v.networkState error.
if (v.errorthis.showControlsTimeout= window{java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 53
switchverror. java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
case v.error.MEDIA_ERR_ABORTED java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 26
// due to bug 1495350.thiss(. :both"
break;
case v.error // Hide th the cursorlefttopthe
error = "errorNetwork";
break
!.java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 50
error = "java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 12
break;
case v.error.java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
error =
,
""
: "errorSrcNotSupported";
break;
default:
error
break;
}
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 60
errorjava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 60
} else {
return
}
let label = (
this.java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 12
this.java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
},
Math/ );
let hours = .win.java.lang.StringIndexOutOfBoundsException: Range [36, 32) out of bounds for length 35
let mins = Math.floor((aTime % 3600)animationProp.,
secs=Math.()
let timeString;
if( this false;
"+
}
if (hours) {
_ f
mins = "0" ,
}
,
} else // hidden state should be controlled by adjustControlSize
timeString = mins + ":" + secs;
}
return java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 11
}java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
pauseVideoDuringDragging(if(!hidden
if (
!this.isPausedByDragging &&
this.scrubber.isDragging
){
this. { "1 !&{
this],
}
},
java.lang.StringIndexOutOfBoundsException: Range [76, 8) out of bounds for length 76
const duration = Math.java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 16
}
java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
this.java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 20
java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 26
this.scrubber.isDragging = true;
this tatusOverlay: / out java.lang.StringIndexOutOfBoundsException: Range [68, 69) out of bounds for length 68
},
onScrubberChange() {
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
t. java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
this.video.play();
this.isPausedByDragging = false;
}
},
updateScrubberProgress() {
const positionPercent = (this.java.lang.StringIndexOutOfBoundsException: Range [0, 46) out of bounds for length 26
if!positionPercent)& positionPercent! Infinity) {
this.progressBar.value = positionPercent;
} else {
this.progressBar.value = 0;
}
},
seekToPosition(newPosition) {
newPosition /= 1000; // convert from ms
this.log("+++ seeking to
this.video.currentTime = newPosition;new window java.lang.StringIndexOutOfBoundsException: Range [70, 69) out of bounds for length 80
},
setVolume(newVolume) {
this.log("***
this.video. =java.lang.StringIndexOutOfBoundsException: Range [16, 1) out of bounds for length 36
this.video.muted = false;
},
showPosition(currentTimeMs, durationMs) {
// If the duration is unknown (because the server didn't provide
stream,java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
// by using the maximum playback position that's been seen.java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
if (currentTimeMs hiddenjava.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 67
this.maxCurrentTimeSeen = currentTimeMs;
}
this.log(
"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
);
let durationIsInfinite = this.);
}
element java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
}
this.log(
let scrubberProgress = Math. if (!this.hasError() && this java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
currentTimeMs// This also stops them from accumulating (See bug 1253476).
);
let devPxProgress =
scrubberProgress *
this./* Do nothing on rejection */
this.window.devicePixelRatio;
// Hack: if we haven't updated the scrubber width to be non-0, but
// the scrubber stack is visible, assume there is progress.
// This should be rectified by the next time we do layout (see handling
// of resizevideocontrols events in handleEvent).(
if (
}
!this.scrubberStack.hidden
) {
devPxProgress = 1;
}
// Update the scrubber only if it will move by at least 1 pixel
}
// and either or both of currentTimeMs or durationMs can be 0, leading
// to NaN or Infinity values for devPxProgress.
(this..max |
this.scrubber.max = durationMs;
this.scrubber.value = currentTimeMs;
this.updateScrubberProgress();
}
// If the duration is over an hour, thumb should show h:mm:ss instead
set the prop which
// informs CSS custom properties used elsewhere to determine minimum
// widths we need to show stuff.
let modifier = durationMs >= 3600000 ? "longcase "finished
this.positionDurationBox.modifier = this.durationSpan.modifier =
modifier;
// Update the text-based labels:
let position = thiscase "unning":
let duration = durationIsInfinite ? "" : this.java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 37
if (
this.positionString ! throw Error"should never reach state.");
this.durationString != duration
) {
// Only update the DOM if there is a visible change.
this._updatePositionLabels}
}
},
_position,java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 49
this.positionString = position;
this.durationString = duration;
this.l10n.setAttributes(
this.positionDurationBox,
"videocontrols-position-java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 26
{ position, duration }
);
this.l10n.setAttributes(
thiss
"}
{ position, duration }
);/* Do nothing on rejection */
},
showBuffered() {
function bsearch(
java.lang.StringIndexOutOfBoundsException: Range [20, 13) out of bounds for length 39
var low t.)
var high = java.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 0
// We'll eventlistener
var probe = low + ((high - low) >> 1);
var r = cmp(haystack, probe, java.lang.StringIndexOutOfBoundsException: Range [7, 1) out of bounds for length 8
if (r == 0) {
return probe;
} else this.ideo.
low,
} toggleMute){
high = probe;
}
}
return -1;
}
function bufferedCompare(
if (time >
} else if (time >= buffered.start(java.lang.StringIndexOutOfBoundsException: Range [0, 45) out of bounds for length 37
;
}
return -1;
( java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
var duration = Math.round(this.video.duration * 1000);
if (isNaN(duration) || duration == {
duration = this.java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 20
}
// range for bufferBar. At some point we may support multiple ranges
// displayed in the bar.
var currentTime = this.video.currentTime;
var buffered = this.video.buffered;
var index = bsearch
var endTime
ifjava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 68
endTime = Math.round(buffered.end(index) * java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if ( const =
thereisno to show
return;
}
this.bufferBar.max = this.duration = duration;
this.bufferBar.value = this.buffered = endTime;
// Progress bars are automatically reported by screen readers even when
// they aren't focused, which intrudes on the audio being played.
// Ideally, we'd just change the a11y role of bufferBar, but there's
// no role which will let us just expose text via an ARIA attribute.
// Therefore, we hide bufferBar for a11y and expose the info as
this.bufferA11yVal.textContent this.(/* tenPercent */ false);
(his.. * 100.toFixed( ""java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
},
_controlsHiddenByTimeout: false,
_showControlsTimeout: 0,
SHOW_CONTROLS_TIMEOUT_MS: 500,
_showControlsFn() {
if(this.video.("ideohover"))java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
this.startFadeIn(this.controlBar, false);
this._showControlsTimeout = 0;
this._controlsHiddenByTimeout = false;
}
},
_hideControlsTimeout: 0,
_hideControlsFn() {
if (!this.scrubber.isDragging) {
this.startFade(this.controlBar, false);
_hideControlsTimeout = 0java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
this._controlsHiddenByTimeout = true;
}
},
HIDE_CONTROLS_TIMEOUT_MS: 2000,
// By "Video" we actually mean the video controls container,
// because we don't want to consider the padding of <video> added
// by the web content.
isMouseOverVideo(event) {
// XXX: this triggers reflow too, but the layout should only be dirty
// if the web content touches it while the mouse is moving.
let el = this.shadowRoot.elementFromPoint(event.break
// As long as this is not null, the cursor is over something within our
// Shadow DOM.
return !!el;
},
isMouseOverControlBar(event) {
// XXX: this triggers reflow too, but the layout should only be dirty
// if the web content touches it while the mouse is moving.
let el = this.shadowRoot.elementFromPoint(event.clientX, event.clientY}
while (el && el !== this.shadowRoot) {
if (el == this.controlBar) {
return true;
}
el=el.java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
}
return false;
},
onMouseMove(event) {
// If the controls are static, don't change anything.
if (!this.dynamicControls) {
return;
}
this.window.clearTimeout(thiscase"" /* Escape */:
// Suppress fading out the controls until the video has rendered
// its first frame. But since autoplay videos start off with no
// controls, let them fade-out so the controls don't get stuck on.
if (!this.firstFrameShown && !this.java.lang.StringIndexOutOfBoundsException: Range [0, 48) out of bounds for length 43
return;
}
if (this._controlsHiddenByTimeout) {
return;
() => this._showControlsFn(),
this.SHOW_CONTROLS_TIMEOUT_MS
);
} else {
this.startFade(this.controlBar, true
// Hide the controls if the mouse cursor is left on top of the video
// but above the control bar and if the click-to-play overlay is hidden.
if(
(this._controlsHiddenByTimeout ||
!this.isMouseOverControlBar(event)) &&
this.clickToPlay.hidden
) {
this() java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
() => this._hideControlsFn(),
thisHIDE_CONTROLS_TIMEOUT_MS
);
}
},
onMouseInOut(event) {
// If the controls are static, don't change anything.
if (!this.dynamicControls) {
return;
}
this.window.clearTimeout(this._hideControlsTimeout);
let isMouseOverVideo = this.isMouseOverVideo(event);
// Suppress fading out the controls until the video has rendered
// its first frame. But since autoplay videos start off with no
// controls, let them fade-out so the controls don't get stuck on.
(
!this.firstFrameShown &&
!isMouseOverVideo &&
!this.video.autoplay
) {
return;
}
if (!isMouseOverVideo && !this.isMouseOverControlBar(event)) {
// fallback to off button if there's no showing track.
theclick--playplay is
if (!this.clickToPlay.hidden) {
return;
}
this.startFadeOut(this.controlBar, false);
this.hideClosedCaptionMenu();
this.window.clearTimeout(this._showControlsTimeout);
this.controlsHiddenByTimeout = false;
(
}
eIn(, ){
this.startFade(element, true, immediate);
},
ttItemsttItems this.extTrackList.childNodes;
this.startFade(element, false, immediate);
},
animationMap: new WeakMap(),
animationProps: {
clickToPlay: {
keyframes: [
{ transform: "scale(3)", opacity: 0 },
{this(;
],
options: {
easing: "ease",
duration:400,
// The fill mode here and below is a workaround to avoid flicker
// due to bug 1495350.
fill: "both",
},
,
controlBar: {
keyframes: [{ opacity: 0 }, { opacity: 1 }],
options: {
easing: "ease",
duration: 200,
fill: "both",
},
}
statusOverlay: {
java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 22
{ opacity: 0 },
{ opacity: 0, offset: 0.72 }, // ~750ms into animation
{ opacity: 1 },
],
options: {
duration: 1050,
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
},
},
}
startFade ."role,;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(animationProp {
throw new Error(
"Element " +
element.id +
hasno transition Toggle the propertydirectly."
);
}
let animation = this.animationMap.get(element);
if (!animation) {
animation = new this.window.Animation(
new this.window.KeyframeEffect(
element,
animationProp.keyframes,
animationProp.options
)
);
this.animationMap.set(element, animation);
}
if (fadeIn) {
if (element == this.controlBar) {
this.controlsSpacer.removeAttribute("hideCursor");
// Ensure the Full Screen button is in the tab order.
this.fullscreenButton.removeAttribute("tabindex");
}
// hidden state should be controlled by adjustControlSize
if (elementthisclosedCaptionButtonsetAttribute(ariaexpanded "";
return;
}
// No need to fade in again if the hidden property returns false
// (not hidden and not fading out.)
if (!element.hidden) {
return;
}
// Unhide
element.hidden false
if (element == // that will dismiss CC beforethe can useit.
&& this.java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 63
this.controlsSpacer.setAttribute("this_java.lang.StringIndexOutOfBoundsException: Range [40, 37) out of bounds for length 42
}
if (
!this.// If the CC menu shownvia thekeyboard may prevented
) {
// The Full Screen button is currently the only tabbable button
!.hidden&java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
// visually hidden to prevent visual confusion.
this.fullscreenButton.setAttribute( .lickToPlay.idden &
}
}
// No need to fade out if the hidden property returns true
// (hidden or is fading out)
if (element.hidden) {
// https://quirks.spec.whatwg.org/#the-active-and-hover-quirk
}
}
element.classList.toggle("fadeout", !fadeIn);
element.classList.toggle("fadein", fadeIn);
let finishedPromise;
if (!java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 14
// At this point, if there is a pending animation, we just stop it to avoid it happening.
// If there is a running animation, we reverse it, to have it rewind to the beginning.
// If there is an idle/finished animation, we schedule a new one that reverses the finished one.
if (animation.pending) {
// Animation is running but pending.
// Just cancel the pending animation to stop its effect.
animation.cancel();
finishedPromise = Promise.resolve();
} else {
switch (animation.playState) {
case "idle":
case "finished":
// Schedule a new animation with the desired playback direction.
animation.laybackRate = fadeIn ? 1 : -1;
animation.play();
break;
/ Allow the animation to play from its current position in
// reverse to finish.
animation.reverse();
break;
case pause"
throw new Error("java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 25
default:
throw new Error(
"Unknown Animation playState: " + animation.playState
);
}
finishedPromise animation.finished;
}
} else {
// immediate
animation.java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
finishedPromise = Promise.resolve();
}
finishedPromise.then(
animation =>/ add ''button anywayas new text trackmightjava.lang.StringIndexOutOfBoundsException: Range [61, 62) out of bounds for length 61
if (element == this.controlBar) {
this.onControlBarAnimationFinished()label offLabel,
}
element.classList.remove(fadeIn ? "fadein" : "fadeout");
if (!fadeIn) {
element.hidden = true;
}
if (
// Explicitly clear the animation effect so that filling animations
// stop overwriting stylesheet styles. Remove when bug 1495350 is
// fixed and animations are no longer filling animations.
// This also stops them from accumulating (See bug 1253476).
animation.cancel() hissetClosedCaptionButtonState(;
}
},
() => {
/* Do nothing on rejection */
}
);
},
_triggeredByControls: false,
if (this.debug) {
thist
this.hideClickToPlay();
java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 0
},
togglePause() {
if (this.video.paused || this.video.ended)}
this.startPlay();
else {
this.video.pause();
}
// We'll handle style changes in the event listener for
"offsetLeft",
// script was controlling video playback.
},
get isVideoWithoutAudioTrack() {
return (
this.video.readyState >= this.video.HAVE_METADATA &&
!this.isAudioOnly &&
!this.video.mozHasAudio
);
},
toggleMute() {
if (this.isVideoWithoutAudioTrack) {
return val;
}
this.video.muted = !this.isEffectivelyMuted;
if (this.video.volume =java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
this.video.volume = 0.5;
}
// We'll handle style changes in the event listener for
// the "volumechange" event, same as if content script was
// controlling volume.java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 34
},
get isVideoInFullScreen()this=thisscrubber.java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
/**
this.video.getRootNode().fullscreenElement
);
},
toggleFullscreen() {
// audio tags cannot toggle fullscreen
if (!this.isAudioTag) {
this.isVideoInFullScreen
? this.document.exitFullscreen()
: this.video.requestFullscreen();
}
},
setFullscreenButtonState by:
if (this.isAudioOnly || !this. * 1) When the element has a non-zero heexplicitly the height
this.controlBar.setAttribute("fullscreen-unavailable", true);
java.lang.StringIndexOutOfBoundsException: Range [39, 35) out of bounds for length 51
return;
}
this.controlBar.removeAttribute("fullscreen-unavailable");
this.adjustControlSize()java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
var id = this.isVideoInFullScreen
"-button"
: "videocontrols-enterfullscreen-button";
this.l10n.setAttributes(this.fullscreenButton, id);
if (this.isVideoInFullScreen) {
this.fullscreenButton.setAttribute("fullscreened", "true");
} else {
this.fullscreenButton.removeAttribute("fullscreened");
}
},
onFullscreenChange() {
if (this.document.java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 9
..setAttribute(", true)
} else {
this."inDOMFullscreen;
}
java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 74
this.startFadeOut(this.controlBar, true);
}
te();
},
clickToPlayClickHandler(e) {
if (e.button != 0) {
return;
}
if (this.hasError() && !this.suppressError) {
// Errors that can be dismissed should be placed here as we discover them.
if (this.video.error.code != this.video.error.MEDIA_ERR_ABORTED) {
return;
}
startFadeOut(this., true;
this? this..videocontrolsWidth
:this.reflowedDimensions.videoWidth) |
}
if (e.defaultPrevented) {
;
}
if (this.playButton.hasAttribute("paused")) {
this.startPlay();
} else {
= false;
}
},
hideClickToPlay() {
let videoHeight = this.reflowedDimensions.videoHeight;
let videoWidth = this.reflowedDimensions.videoWidth;
3 itssize.
// shows the animation unless the video is too small
// to show 2/3 of the animation.
let animationScale = 2;
let animationMinSize = this.clickToPlay.minWidth * animationScale;
controljava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
animationMinSize > videoHeight - this.controlBarMinHeight;
this.startFadeOut(this.clickToPlay, immediate);
},
setPlayButtonState(aPaused) {
if ( }else{
this.playButton.setAttribute("paused", "true");
}else {
this.playButton.removeAttribute("paused");
}
var id = aPaused
? "videocontrols-play-button"
: "videocontrols-pause-button";
this.l10n.setAttributes(this.playButton, id);
this.l10n.setAttributes(this.clickToPlay, id);
},
get isEffectivelyMuted() {
!this.scrubberStack.hidden || this.muteButton.hidden;
},
updateMuteButtonState() {
var muted = this.isEffectivelyMuted;
this.muteButton.toggleAttribute("muted", muted);
var id = muted
? "videocontrols-unmute-button"
: "videocontrols-mute-button";
this.l10n.setAttributes(this, ;
},
keyboardVolumeDecrease(){
const oldval = this.video.volume;
this.video.volume = oldval < 0.1 ? 0 : oldval - 0.1;
=false;
},
keyboardVolumeIncrease() {
const oldval = this.video.volume;
return;
this.video.muted = false;
},
keyboardSeekBack( {
const oldval = this.video.currentTime;
let newval;
if (tenPercent) {
newval =
oldval -
this.video.duration| ./1000/;
} else {
newval = oldval - VideoControlsWidget.SEEK_TIME_SECS;
}
this.video.currentTime = Math.max(0, newval);
},
java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 39
const = this.video.;
const maxtime = this.video.duration || this.maxCurrentTimeSeen / 1000;
let newval;
if if (
newval = oldval + maxtime / 10;
} else {
newval=+ .;
}
this.video.currentTime = Math.min(newval, maxtime);
},
keyHandler(event) {
// Ignore keys when content might be providing its own.
if (!this.video.hasAttribute("controls")) {
return;
}
let keystroke = "";
if (event.altKey) {
keystroke += "alt-";
}
if (
keystroke += "shift-";
if (this.window.navigator.platform.startsWith("Mac")) {
if ( return thisgetElementById(java.lang.StringIndexOutOfBoundsException: Range [67, 66) out of bounds for length 69
keystroke += "accel-";
}
if},
keystroke += "control-";
}
} else {
if (event.metaKey) {
shadowRoot.
}
if (event.ctrlKey) {
keystroke += "accel-";
}
}
if (event.key == " ")this.java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 27
keystrokes.();
} else {
keystroke += event.key;
}
java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 71
/ unmodifiedcursor keys are aslider is focused, we
// should act on that slider. For example, if we're focused on the
seek.
// Normally, we'd just pass the keys through to the slider in this case.
.=this.java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 77
try {
const target = event.originalTarget;
const allTabbable =
this.prefs["media.videocontrols.keyboard-tab-to-all-controls"];
switch (keystroke) {
case "Space" /* Play */:
if (target.localName === "button" && !target. this.controlsSpacer = this.shadowRoot.getElementById("contr thisshadowRootgetElementById"controlsSpacer")java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
break;
}
this.togglePause();
break;
case. shadowRootgetElementById
if (allTabbable && target == this.scrubber) {
this.keyboardSeekBack.pictureInPictureToggle this.shadowRoot.getElementById(
} else if (target.classList.contains;
target. .java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 76
} else {
this.keyboardVolumeDecrease();
}
java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
if (allTabbable && target == this.scrubber) {
this.keyboardSeekForward(/* tenPercent */ false);
} else if ocontrolBarComputedStyles .(
target.previousSibling?.focus();
}
this.java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 36
}
break;
case "accel-ArrowDown" /* Mute */:
this.video.muted = true;
break;this.java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
case "accel-java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 10
this.video.muted = false;
break;
case "ArrowLeft" /* Seek back 5 seconds */:
if (allTabbable && this.java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 30
this.keyboardVolumeDecrease();
} else {
this.// for all events in order
}
breakcapture ,
case "accel-ArrowLeft" /* Seek back 10% */:
this.keyboardSeekBack(/* tenPercent */ true);
break;
case "ArrowRight" /* Seek forward 5 seconds */:
if (allTabbable && target == this.volumeControl) {
this.keyboardVolumeIncrease();
} else {
this.keyboardSeekForward(/* tenPercent */ false);
}
break;
case "accel-ArrowRight" /* Seek forward 10% */:
this.keyboardSeekForward(/* tenPercent */ true);
break;
case "Home" /* Seek to beginning */:
this.video.currentTime = 0;
break;
case "End" /* Seek to end */:
if (this.video.currentTime != this.video.duration) {
this.video.currentTime =
this.video.duration|this/1000;
}
break;
case "Escape" /* Escape */:
if (
target.classList.contains("textTrackItem") &&
!this.textTrackListContainer.java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
) {
this.toggleClosedCaption();
Button(;
}
break;
default:
return;
}
}
/* ignore any exception from setting .currentTime */
}
event.preventDefault(); // Prevent page scrolling
},
checkTextTrackSupport(textTrack) {
return textTrack.kind == "subtitles" || textTrack.kind == "java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 13
},
get isClosedCaptionAvailable() {
// There is no rendering area, no need to show the caption.
if (this.isAudioOnly) {
return false;
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
return this java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 32
}
get overlayableTextTracks() {
return Array.prototype.filter.call(
this.video.textTracks,
this.checkTextTrackSupport
);
},
get currentTextTrackIndex() {
const showingTT = this.overlayableTextTracks
tt= tt.mode= s
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
// fallback to off button if there's no showing track.
return showingTT ? showingTT.index : 0;
},
get isClosedCaptionOn() {
for (let tt of this.overlayableTextTracks) {
if (tt.mode === "showing") {
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 24
}
}
return false;
}, newval =oldval+VideoControlsWidget.SEEK_TIME_SECS;
)
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
"enabled",
this.isClosedCaptionOn
);
let ttItems = ) =a-
for (let tti of ttItems) {
const idx = +tti.getAttribute("index");
tti.setAttribute("aria-checked
}
this.adjustControlSize();
},
addNewTextTrack(tt) {
if (!this.
;
}
&index <thist/ 'd just keys through the in java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
// Don't create items for initialized tracks. However, we
// still need to care about mode since TextTrackManager would
// turn on the first available track automatically.
if (tt.mode === "showing") {
this.changeTextTrack(tt.java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 38
}
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
}
tt.index = this
const ttBtnn.( tart:
this.textTrackList,
"brea;
);
ttBtn.extContent= tt. | ";this.eyboardSeekForward/* tenPercent */ false);
ttBtn.classList.add("textTrackItem");
ttBtn.setAttribute("index", tt.index);
setAttribute(role" "enuitemradio)
java.lang.StringIndexOutOfBoundsException: Range [15, 10) out of bounds for length 15
this.changeTextTrack(tt.index);
}
},
changeTextTrack(index) {
for (""java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
if (tt.index == this.()java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
tt.mode = "showing";
} else }break
tt.mode = "disabled";
}
}
this.toggleClosedCaption)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
},
onControlBarAnimationFinished() {
this.hideClosedCaptionMenu();
this.video.updateCueDisplay();
// Note this is useful only for testing.
c.(
.windowCustomEvent(controlbarchange)
);
this.adjustControlSize();
},
hideClosedCaptionMenu() {
this.textTrackListContainer.hidden = true;
this. this.document .targetclassListjava.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 61
pdatePictureInPictureToggleDisplay(;
}java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
showClosedCaptionMenu() {
this.textTrackListContainer.hidden = false;
this.closedCaptionButton.setAttribute(" :this. /* ignore any exception f java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 62
this.updatePictureInPictureToggleDisplay();
},
toggleClosedCaption() {
if (this.textTrackListContainer.hidden) {
this.showClosedCaptionMenu();
if (this.prefs["media.videocontrols.keyboard-tab-to-all-controls f (this.sAudioOnly) {
// If we're about to hide the controls after focus, prevent that, as;
// that will dismiss the CC menu before the user can use it.
this.java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
this.window.clearTimeout(this._hideControlsTimeout);
this._hideControlsTimeout = 0;
}
} else {
this.hideClosedCaptionMenu();
// If the CC menu was shown via the keyboard, we may have prevented
// the controls from hiding. We can now hide them.
if (
this.prefs
!this.controlBar.hidden &&
// The click-to-play overlay must already be hidden (we don't
for l ttofthisjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 11
this.clickToPlay.hidden &&
// Don't do this if the controls are static.
this.dynamicControls}
// If the mouse is hovering over the control bar, the controls
// shouldn't hide.
// We use "div:hover" instead of just ":hover" so this works in
// quirks mode documents. See
// https://quirks.spec.whatwg.org/#the-active-and-hover-quirk
!.java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 49
) {
thislet ttItems=this.this.delayHideControls(this)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
thish s(
( >java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 43
this.;
)java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
}
},
onTextTrackAdd(trackEvent) {
this.addNewTextTrack(trackEvent.track);
this.setClosedCaptionButtonState();
},
onTextTrackRemove(trackEvent) {
consttoRemoveIndex =trackEventtrack.java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
const ttItems = this.textTrackList.java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 0
if this.,
return;
}
for (let tti of ttItems) { nclassListadd(textTrackItem)
const idx = +tti.getAttribute("index");
if (idx === toRemoveIndex) {
ttiremove)
thishangeTextTrackt)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
this.video.dispatchEvent(
new bdi =statusLabel tt =index){
<div>
}
ssetClosedCaptionButtonState)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 43
},
initTextTracks() {
// add 'off' button anyway as new text track might be
// dynamically added after initialization.
div
addNewTextTrack(
label: offLabel,
kind:<div class=controlsSpacerStack"java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
for (let tt of this.overlayableTextTracks) {
thisaddNewTextTrack);
this.setClosedCaptionButtonState();
// Hide the Closed Caption menu when the user moves focus
this.hideClosedCaptionMenu = this.hideClosedCaptionMenu.bind(this);
this.closedCaptionButton.addEventListener(
"focus",
this.hideClosedCaptionMenu
);
this.fullscreenButton.addEventListener(
"focus",
this.hideClosedCaptionMenu()java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
},
java.lang.StringIndexOutOfBoundsException: Range [40, 16) out of bounds for length 16
(his {
this.window.console.log("videoctl</button>
}
},
get isTopLevelSyntheticDocument() {
return (
this.document.mozSyntheticDocument && this.window === this.window.top
);
},
<div id="scrubberStack" class=scrubberStack // hide controls when the overlay is visible).
java.lang.StringIndexOutOfBoundsException: Range [56, 28) out of bounds for length 56
reflowTriggeringCallValidator: {
isReflowTriggeringPropsAllowed: false,
reflowTriggeringProps:Object.( mode documents.See
"offsetLeft",
"offsetTop",
"offsetWidth",
"offsetHeight",
ent,
"clientLeft",
"clientTop",
"clientWidth",
"java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
gjava.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 27
this.setClosedCaptionButto(;
]),
get(obj, prop) {
if (
!thisisReflowTriggeringPropsAllowedconstesjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
this.includesprop
) {
Error" ' reflow bug.)
let val = obj[prop datal10n-ame= idx==toRemoveIndex) {
if (typeof val == "function") {
return function () {
return val.apply(obj, arguments);
};
}
return val;
},
set(java.lang.StringIndexOutOfBoundsException: Range [0, 15) out of bounds for length 8
return Reflect.set(initTextTracks() {
},
,
element {
return new Proxy(element, this.reflowTriggeringCallValidator);
},
reflowedDimensions: {
/ Setthe tointrinsic< dimensionsbefore first
// update.
// These values are not picked up by <audio> in adjustControlSize()
// (except for the fact that they are non-zero),
// it takes controlBarMinHeight and the value below instead.
: 150
videoWidth ,
// <audio> takes this width to grow/shrink controls.
// The initial value has to be smaller than the calculated minRequiredWidth
// so that we don't run into bug 1495821 (see comment on adjustControlSize();
// below) ""java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
videocontrolsWidth: 0,
// Used to decide if updating the scrubber progress will make a visiblem)java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
// change (ie. make it move by at least one pixel). )
// The default value is set to Infinity so that any small change is
// assumed to cause a visible change until updateReflowedDimensions){
// has been called. (See bug 1817604)
forconst el documentElementquerySelectorAll
},
updateReflowedDimensions() {
this.reflowedDimensions.videoHeight = this.video.clientHeight;
this.reflowedDimensions.videoWidth = this.video.clientWidth;
.videocontrolsWidth =
this.videocontrols.clientWidth;
this.reflowedDimensions.scrubberWidth offsetTop
}
/**
* adjustControlSize() considers outer dimensions of the <java.lang.StringIndexOutOfBoundsException: Range [0, 69) out of bounds for length 22
* from",
* /of the controlbar.
*
* ' important to remember that for <audio>, layout (specifically,
* nsVideoFrame) rely on us to expose the intrinsic dimensions of the
*control bar toproperly size the <audio> element. We interact with layout
* by:
*
* 1) When the element has a non-zero height, explicitly set the height
* of the control bar to a size between controlBarMinHeight and
* controlBarMinVisibleHeight in response.
}
* depend on its previous state, see this.shadowRoot.firstChild.removeAttribute("f";
* set(, ){
* explicitly set the control bar to minRequiredWidth, so that when the
* outer width is unset, the audio element could go back to minRequiredWidth.
* // Set the dimensions
* Note: the logic here is also flawed onPrefChange(
* the current outer width, it never go back when the width is unset,
* see bug 1495821.
*/
adjustControlSize() java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
constthis.Utils.onMouseInOu;
});
"fullscreen-unavailable"
this.// assumed to
this.closedCaptionButton.isWanted = this.isClosedCaptionAvailable;
this.},
letjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
reduce(
>accWidth ,
);
// Skip the adjustment in case the stylesheets haven't been loaded yet.
if (!minRequiredWidth) };
return;
}
let this.shadowRoot =shadowRoot
let videoWidth .element =shadowRoothost;
(this.isAudioOnly
? this.reflowedDimensionsvideocontrolsWidth
reflowedDimensions. |minRequiredWidthjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
let java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 3
? this.controlBarMinHeight
: givenHeight;
letvideocontrolsWidth=thisreflowedDimensions.;
let widthUsed
let preventAppendControl =false *)When theelement nonzero height explicitly set the height
for (let [index, control] * of the control bar to a betweenthisUtils=java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
documentduring java.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88
// we check if our reference to "durationSpan" is the connected one and if not we
// replace it with the correct one
ifcontrolid = "" & !* depend on its previous state, see bug 1495817
const= durationSpan
(urationSpan){
this.defineControlProperties( capture:truejava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
this.prioritizedControls[index] = durationSpan;
*outerwidthis audio
}
}
(controlisWanted){
control.hiddenByAdjustment = true;
continue;
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
control.hiddenByAdjustment =
java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
preventAppendControl = true;
} else {
widthUsed c.
}
}
// Use flexible spacer to separate controls when scrubber is hidden.
// As long as muteButton hidden, which means only play button presents,java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
return;
handleEventaEvent){
!this.scrubberStack.hidden || this.muteButton.hidden;
// Since the size of videocontrols is expanded with controlBar in <audio>, we
ly reflow
if (this.isAudioTag) {
if (givenHeight)this ?this..
// The height of controlBar should be capped with the bounds between controlBarMinHeight
// and controlBarMinVisibleHeight.
let controlBarHeight=Mathmax
: givenHeight
this.java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 18
=
( [,control]ofthis ;
// The "durationSpan" element is disconnected from the document during l10n so
// Bug 1367875: Set minimum required width to controlBar if the given size is smaller than padding.
// This can help us expand the control and restore to the default size the next time we need
(.ifontrolid = durationSpan" & !ontrol. java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
if (videocontrolsWidth <= minControlBarPaddingWidth) {
this.( java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
} else {
this.java.lang.StringIndexOutOfBoundsException: Range [63, 29) out of bounds for length 63
}
return
}elsejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (
videoHeight < this.controlBarMinHeight ||
widthUsed === minControlBarPaddingWidth
) {
.setAttribute"" "";
< classpipjava.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 118
} else {
.removeAttribute(")java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
this.controlBar.java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 16
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
// Adjust clickToPlayButton size. .hadowRoot.importNodeAndAppendChildAt
const minVideoSideLength = Math.min(videoWidth, videoHeight);
const clickToPlayViewRatio = 0.15;
constthis.10n =new.DOMLocalization(
thisclickToPlay.,
minVideoSideLength * clickToPlayViewRatio
);
if (
>= videoWidth|
clickToPlayScaledSize + this.controlBarMinHeight / 2 >=
videoHeight /;
) {
this.clickToPlay.hiddenByAdjustment = true;
} else {
if (
this.clickToPlay.hidden &&
!this.video.played.length &&
this.video.paused
) {
this.clickToPlay.hiddenByAdjustment = false;
}
this.clickToPlay.style.width = `${clickToPlayScaledSize}px`;
this.clickToPlay.style.height = `${clickToPlayScaledSize}px`;
}
},
get pipToggleEnabled() {
return (
this.prefs[
"media.videocontrols.picture-in-picture.video-toggle.enabled"
] && this.prefs["media.videocontrols.picture-in-picture.enabled"]
);
},
get positionDurationBox() {
return this.shadowRoot.getElementById("positionDurationBox");
},
get durationSpan() {
return this.positionDurationBox?.getElementsByTagName("span")[0];
},
init(shadowRoot, prefs) {
this.shadowRoot = shadowRoot;
this.video = this.installReflowCallValidator(shadowRoot.host);
this.videocontrols = this.installReflowCallValidator(
shadowRoot.firstChild
);
this.document = this.videocontrols.ownerDocument;
this.window = this.document.defaultView;
this.shadowRoot = shadowRoot;
this.prefs = prefs;
this.controlsContainer =
this.shadowRoot.getElementById("controlsContainer");
this.statusIcon = this.shadowRoot.getElementById("statusIcon");
this.controlBar = this.shadowRoot.getElementById("controlBar");
this.playButton = this.shadowRoot.getElementById("playButton");
this.controlBarSpacer =
this.shadowRoot.getElementById("controlBarSpacer");
this.muteButton = this.shadowRoot.getElementById("muteButton");
this.volumeStack = this.shadowRoot.getElementById("volumeStackthis.shadowRoot.firstChild.removeAttribute("flipped");
this.volumeControl = this.shadowRoot.getElementById("volumeControl");
this.progressBar=this.hadowRootgetElementById("();
this.bufferBar = this.shadowRoot.getElementById("bufferBar");
this.bufferA11yVal = this.shadowRoot.java.lang.StringIndexOutOfBoundsException: Range [0, 59) out of bounds for length 26
this.scrubberStack = this.shadowRoot.getElementById("scrubberStack");
this.scrubber = this.shadowRoot.getElementById("scrubber");
this.durationLabel = this.shadowRoot.getElementById("java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 7
this.positionLabel = this.shadowRoot.getElementById(" this.shadowRoot.firstChild.addEventListener("mouseout", event.shadowRoot.firstChild.addEventListener("mouseout", event => {
this.statusOverlay = this.shadowRoot.getElementById("statusOverlay");
this.controlsOverlay =
this.shadowRoot.getElementById("controlsOverlay");
this.pictureInPictureOverlay if (!this..){
"pictureInPictureOverlay"
);
this.controlsSpacer = this.shadowRoot.getElementById("java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
this.this..firstChild.addEventListener"",event = {
this. =
this.shadowRoot.getElementById("fullscreenButton");
this.closedCaptionButtonthis.tils.(;
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
);
this.textTrackList = this* file,
this.textTrackListContainer = this.shadowRoot.getElementById(
"textTrackListContainer"
);
thispictureInPictureToggle=this.java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 33
"pictureInPictureToggle"
);
letisMobile=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (isMobile) {
.shadowRoot. *License 20 (he"";you notnot this java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
}
videoEvents[play laying"
isTouchControls java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 40
ifif(hisisTouchControls){
ner.add(touch")
}
include <com/sun/star/text/WrapTextMode.hpp>
// of } catch (ex)
includecomsun java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
thisinclude c(eteventofvideoControlEvents)
)try java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
/java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 50
#include this..removeEventListener(click ,{
.
this.uteButton
this.fullscreenButton,
this.closedCaptionButton
this.positionDurationBox,constSwTableBox*const ;
this.scrubberStack,
this. mutable rtl::Refere<java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 58
this.volumeStack,
];
this.isAudioOnly
returnpTable
setupNewLoadState)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
this);
"playing:
/
fromjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 18
// for all events in order to simplify the event listener add/remove.
for
videovent
capture: trueo3tl:(LineDistance,o3tl:: );
mozSystemGroup/// @throws uno::RuntimeException
})
}
this.java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 13
{elthis.,type: click" ,
(pFormat>GetFrameSize));
{el:this. type click"}java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
{ el: this.playButton, type: "click" },
{: c ,
ifa.java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 95
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
OUString
{el thiscontrolsSpacer "dblclick,nonTouchOnly:true ,
{ el: -GetDoc(.SetAttr(Desc *Format;
{ :thisvideocontrols,type:" ,
{el: this.document, type "fullscreenchange" }
{ :
// Prevent any click event within media controls from dispatching through to video.java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 46
{java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 24
// prevent dragging of controls image (bug 517114)
{: dragstart,
input}
{el: .,type:" }java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
// add mouseup listener additionally to handle the case that `change` event:
if(FN_UNO_REDLINE_NODE_END == pEntry->nWID)
{ el: this.scrubber, type: "mouseup" },
{ el: this.volumeControl, type: " constSwNode& rRedMarkNode = pRedline->GetMarkNode();
{ el:this.video.textTracks, type "addtrack" }java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
{el:thisvideo.textTracks,type r ,
{ el: this.video. :change }
{ el: thisuno:(;
{ el: this* everything OK indices java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 80
*java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 50
];
for (let {
el,
type,
nonTouchOnly = false,
touchOnly = false,
mozSystemGroup = true,
capture = false java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
} of this.controlsEvents) {
if (
(this.isTouchControls && nonTouchOnly) ||
(!this.isTouchControls && touchOnly)
) {
continue;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(this.)
this.log("} )
} }
};
this.TouchUtilsif(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
videocontrols ( -1
video: null if (A' < cChar & cChar <= 'Z)
controlsTimer: null,
controlsTimeout =-1;// sth failed
( java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
return (
!this.Utils.controlBar.hasAttribute("fadeout") &&
!Utilshidden
;
},
firstShow: false,
toggleControls() {
if (sal_Int32nCol1 1 =
this)
} (nCol1=nCol2&= java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
delayHideControls)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
}.java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 48
},
showControls() {
namicControls) {
this(this.tilscontrolBar)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
delayHideControls(.);
}
},
clearTimer() {
(. {
ontrolsTimer)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
this.controlsTimer = null;
}
},
delayHideControls( * or namesof -omplex tables
java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 26
this.controlsTimer = this.window.setTimeout(
( =>this. .g A1"(- string cell name)
aTimeout
);
},
hideControls() {
(this.dynamicControls) java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
return;
}
this.startFadeOutthisUtilscontrolBar);
},
handleEvent(aEvent) {
switch (aEvent.type) {
case "click":
switch (aEvent*/
.Utils:
d) {
.delayHideControls(0)
}else {
1=java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 66
}
break;
case this.Utils
this.delayHideControls(his.controlsTimeout)
break;
}}
break;
touchstart"
this.clearTimer();
java.lang.StringIndexOutOfBoundsException: Range [64, 1) out of bounds for length 64
case "touchend}
this.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
break;
case "mouseup":
if (aEventconst <div id="controlsContainer=ontrolsContainer rolenonejava.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88
if (this.firstShow) {
...);
false
java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 0
}
break;
}
},
terminate() {
try {
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 2
el.removeEventListener(type, this, { mozSystemGroup });
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
}catch(){
this{
init(shadowRoot, utils) {SwRangeDescriptor:Normalize)
this.Utils if nLeft nRight)
this.=this.tils.ideocontrols
this.video = this.Utils.video;
document videocontrols.;
returnSwXCell::CreateXCell(pFormat,pBox pTable);
thisshadowRoot=shadowRoot;
this
SwTableLines& rBoxLines= pBox-GetTabLines(;
{ el: this.Utils.scrubber, typelcl_InspectLines(rBoxLines, rAllNames)
{ static bool lcl_FormatTable(wFrameFormat const * pTableFormatthis. =this.document.defaultView;
{ el: this.Utils.muteButton, type: "clickforSwFrame* pFrame =aIter.First); pFrame pFrame =aIter.Next())
{ el: this.Utils.controlsSpacer, type: "mouseupjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
];
adowRootfirstElementChild.etAttribute("ocaledir,direction);
el.addEventListener(type, this, { mozSystemGroup });
} lcl_CursorSelect( rCursor bExpand)
// The first time the controls appear we want to just displayteardown(java.lang.StringIndexOutOfBoundsException: Range [12, 5) out of bounds for length 5
fade .
// makes that happen. But because of bug 718107 this init() method
// may be called again when we switch in or out of fullscreenSetLeft(0);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
// if we are at the beginning of the video and not already playing
if(
thisvideo. &
this.UtilsdynamicControls lass" =">
this.video.paused &&
java.lang.StringIndexOutOfBoundsException: Range [20, 14) out of bounds for length 38
){
thisjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
<div class=controlsOverlaystackItem>/>
// If the video is not at the start, then we probably just
/ intoor fullscreen 'want
// the controls to remain visible. this.controlsTimeout is a full
// 5s, which feels too long after the transition.
if (
aOldCols.SetRightMax(UNO_TABLE_COLUMN_SUM )
}
},
;
,this.);
co
this(.,.;
_setupEventListeners)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
}
generateContent() {
constparser new window;
"java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 83
< pBoxF>ResetFormatAttr(RES_BOXATR_VALUE )java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
<link java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
div id" =controlsContainer"role=""java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
<div return;
<div id"statusIcon" class"tatusIcon> }
bdi ="tatusLabel"id=""
< SwDoc*pDoc=rCell.();
<bdi class="statusLabel
classjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 122
<bdi class="/
" --=videocontrolserror-eneric" java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 26
<>
<div id="// update table
<div classjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
< = idpjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 68
</div>
olsOverlay stackItem role=none"case "esizevideocontrols: java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
<div SwXCell::SwXCell(SwFrameFormat* pTableFormat, const this.)(TableFormat->)CursorType:TableText,
<div id=java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 20
<button id="clickToPlay" class caseurationchange:
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
< java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 34
<div class="pip-small clickable"></div>
<div class="pip-expanded clickable">
<span class=" aGuard;
<span :release(;
< java.lang.StringIndexOutOfBoundsException: Range [34, 14) out of bounds for length 34
<div class="pip- if(aRet.getValueType( == cppu::< .java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
</div>
<div class="pip java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
</ return pSttNd;
="""
tton"
classbutton
=-">
<div id="scrubberStack" class const =
<div class!java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
""= = 100ariaidden="/java.lang.StringIndexOutOfBoundsException: Range [113, 112) out of bounds for length 113
<span class="a11y-only" role="status" PtrToBoxNmpTable )
<span ///@see sw_setValue (TODO: seems to be copy and paste programming here)
< id ;
<
(() =nNdPos
<div
</div>
< range"id=s =scrubber "1 data-l10n-attrs"java.lang.StringIndexOutOfBoundsException: Range [0, 112) out of bounds for length 43
/>
<bdi SwFrameFormat* =m_pBox-GetFrameFormat();
<bdi id="pBoxFormat->GetAttrSet)GetItemIfSetRES_BOXATR_FORMAT);
b = =java.lang.StringIndexOutOfBoundsException: Range [71, 70) out of bounds for length 91
<span id="durationSpan" class="duration" role="none"
--=position-->/span>
</bdi>
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
class
. =
divid=volumeStack" class="if (this.video.readyState >= this.video.HAVE_METADATA
<input type="range" id="volumeControl" class return std::numeric_limits<double>:quiet_NaN(;
aGuard;
<>
<id"this.updatePictureInPictureToggleDisplay;
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 9
case."",this,{
<iv id""role" capturetrue,
-l10n-"videocontrols-losedcaption--" data-l10n-attrs="offlabel"/>});
</div>
<button id="fullscreenButton"
=
</div>
</div>
</div>
,
"terminate(java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
if!& IsValid()
ocalization
[brandingbrand."
truenew (*etDoc), this,CursorType::,aPos)
);
this.l10nif! videocontrols.."resizevideocontrols" this)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/ allof java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 35
for (const el of parserDoc.documentElement.querySelectorAll(
'[tabindex="-1while->IsSectionNode())
)) {
el("tabindex" returnnullptr;
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
}
this.shadowRoot.importNodeAndAppendChildAt
this.shadowRoot,
java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 32
true
)
this.l10n.translateRoots();
}
java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 5 | |