Commit graph

115 commits

Author SHA1 Message Date
Andreas Pehrson
0bb8c3dc1d Bug 1592539 - Move the FirstFrameListener handling to MediaStreamRenderer. r=jib
This unclutters HTMLMediaElement somewhat by putting away the logic for handling
the FirstFrameListener into MediaStreamRenderer, which is better suited for the
task.

This will allow us to use a second MediaStreamRenderer to properly track video
tracks for a secondary VideoFrameContainer.

Differential Revision: https://phabricator.services.mozilla.com/D87134
2020-08-26 14:24:55 +00:00
Simon Giesecke
cd8b8939b9 Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Jan-Ivar Bruaroey
036ac85331 Bug 1434601 - Do screen wakelock even without audio if video element is sourced by a media stream. r=alwu
Differential Revision: https://phabricator.services.mozilla.com/D74129
2020-05-07 21:35:37 +00:00
Jonathan Watt
468b918bcd Bug 1634474. Make dom/html/ buildable outside of unified-build environment. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D73309
2020-05-04 14:29:02 +00:00
Timothy Gu
6407f13ce3 Bug 1628500 - Remove aIgnoreTabindex argument from Element::IsInteractiveHTMLContent(). r=edgar
This argument is set to true everywhere, and soon HTML will no longer consider
tabindex for interactive content: https://github.com/whatwg/html/pull/5457.

Differential Revision: https://phabricator.services.mozilla.com/D72568
2020-04-28 11:22:32 +00:00
alwu
09a518586f Bug 1623486 - part4 : update Picture-in-Picture mode status from media element. r=chunmin,padenot
Video element can start the Picture-in-Picture mode **BEFORE** or **AFTER** we start the listener for the media cotrol, so we have to ensure we always propagate this information to the chrome process via `ContentMediaAgent`.

Differential Revision: https://phabricator.services.mozilla.com/D67712

--HG--
extra : moz-landing-system : lando
2020-04-01 23:04:58 +00:00
alwu
7db6ce8171 Bug 1621166 - part2 : do not stop media control for media being used in PIP mode. r=MeFisto94
The media element being used in the PIP mode would always display on the screen even if the the tab it belongs to is in the background, so users would have high chance to interact with it again. Therefore, we don't want to start a stop-timer to cancel media control for that element.

Differential Revision: https://phabricator.services.mozilla.com/D67381

--HG--
extra : moz-landing-system : lando
2020-03-19 18:15:33 +00:00
Sean Feng
2d1f2db82e Bug 1377999 - Make HTML Element to adapt the DOMArena changes r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D57699

--HG--
extra : moz-landing-system : lando
2020-03-17 14:53:08 +00:00
Alastor Wu
47d2457f3e Bug 1602163 - part2 : remove 'corruptedFrames' from 'VideoPlaybackQuality' r=bzbarsky
According to [1], we're going to deprecate this attribute.

[1] https://github.com/w3c/media-playback-quality/pull/20

Differential Revision: https://phabricator.services.mozilla.com/D56621

--HG--
extra : moz-landing-system : lando
2019-12-11 07:19:15 +00:00
Gabriele Svelto
ace6d1063f Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442

--HG--
extra : moz-landing-system : lando
2019-12-06 09:24:56 +00:00
Dorel Luca
a381d5c96d Backed out changeset f6e53d1c6518 (bug 1600545) for Android build bustage. CLOSED TREE 2019-12-04 17:32:27 +02:00
Gabriele Svelto
bc9290f767 Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442

--HG--
extra : moz-landing-system : lando
2019-12-04 15:01:19 +00:00
Andreas Pehrson
3c385b4b80 Bug 1536156 - Stop doing EndCloningVisually in Unlink. r=mconley
Unlink must not cause an AddRef on the unlinked object, or it is at risk of
leaking. See 1593739 for an example of where this happens.

EndCloningVisually is dangerous in that it tries to do more than just unlink the
video element. It does AddRef in NotifyUAWidgetSetupOrChange, so that must be
avoided.

Previous patches to this bug make sure that MediaDecoder shutdown takes care of
clearing the secondary video container in the MediaDecoder stack, so this is not
actually necessary anymore.

Differential Revision: https://phabricator.services.mozilla.com/D53832

--HG--
extra : moz-landing-system : lando
2019-11-22 12:52:48 +00:00
Andreas Pehrson
626de4fb8d Bug 1536156 - Let cloneElementVisually() return a promise that resolves when frames have been rendered. r=alwu,mconley,bzbarsky
This patch does the following:
- Makes cloneElementVisually() return a promise
- Plumbs an event from the MediaDecoderStateMachine's VideoSink to
  HTMLVideoElement
- Hooks the event up to resolve the promise from cloneElementVisually()
- Updates tests and their expectations.

Differential Revision: https://phabricator.services.mozilla.com/D53831

--HG--
extra : moz-landing-system : lando
2019-11-22 12:52:48 +00:00
Andreas Pehrson
3c62bb84d8 Bug 1596777 - Hook up the SecondaryVideoContainer with state mirroring. r=alwu
This better follows how MediaDecoder and MediaDecoderStateMachine was
architected.

Differential Revision: https://phabricator.services.mozilla.com/D53710

--HG--
extra : moz-landing-system : lando
2019-11-22 00:07:04 +00:00
Daniel Varga
af05b317ec Backed out 7 changesets (bug 1597216, bug 1596777, bug 1536156) for reftest failures at reftest/bipbop_300_215kbps.mp4.lastframe.htm. On a CLOSED TREE
Backed out changeset a3fa99d936f3 (bug 1536156)
Backed out changeset 29dd64930421 (bug 1536156)
Backed out changeset 77c16444e714 (bug 1536156)
Backed out changeset d540f1802ff6 (bug 1536156)
Backed out changeset 8283eed414d2 (bug 1536156)
Backed out changeset 01d2c84810f0 (bug 1597216)
Backed out changeset e0184916cf37 (bug 1596777)
2019-11-22 01:58:42 +02:00
Andreas Pehrson
531a7211a9 Bug 1536156 - Stop doing EndCloningVisually in Unlink. r=mconley
Unlink must not cause an AddRef on the unlinked object, or it is at risk of
leaking. See 1593739 for an example of where this happens.

EndCloningVisually is dangerous in that it tries to do more than just unlink the
video element. It does AddRef in NotifyUAWidgetSetupOrChange, so that must be
avoided.

Previous patches to this bug make sure that MediaDecoder shutdown takes care of
clearing the secondary video container in the MediaDecoder stack, so this is not
actually necessary anymore.

Differential Revision: https://phabricator.services.mozilla.com/D53832

--HG--
extra : moz-landing-system : lando
2019-11-21 12:40:11 +00:00
Andreas Pehrson
1052205963 Bug 1536156 - Let cloneElementVisually() return a promise that resolves when frames have been rendered. r=alwu,mconley,bzbarsky
This patch does the following:
- Makes cloneElementVisually() return a promise
- Plumbs an event from the MediaDecoderStateMachine's VideoSink to
  HTMLVideoElement
- Hooks the event up to resolve the promise from cloneElementVisually()
- Updates tests and their expectations.

Differential Revision: https://phabricator.services.mozilla.com/D53831

--HG--
extra : moz-landing-system : lando
2019-11-20 21:51:48 +00:00
Andreas Pehrson
9d878d1ca7 Bug 1596777 - Hook up the SecondaryVideoContainer with state mirroring. r=alwu
This better follows how MediaDecoder and MediaDecoderStateMachine was
architected.

Differential Revision: https://phabricator.services.mozilla.com/D53710

--HG--
extra : moz-landing-system : lando
2019-11-20 16:32:52 +00:00
Mike Conley
090db13fda Bug 1583882 - Fire an event when a <video> being visually cloned is removed from the DOM. r=dminor
Depends on D47611

Differential Revision: https://phabricator.services.mozilla.com/D47612

--HG--
extra : moz-landing-system : lando
2019-09-30 15:49:56 +00:00
Mike Conley
a220f3e4c9 Bug 1583882 - Remove vestigial TogglePictureInPicture privileged method on HTMLVideoElement. r=webidl,dminor,smaug*
Differential Revision: https://phabricator.services.mozilla.com/D47611

--HG--
extra : moz-landing-system : lando
2019-09-30 15:34:43 +00:00
Nicholas Nethercote
98864cc3ec Bug 1570212 - Convert media.video_stats.enabled to a static pref. r=jya
Also remove HTMLVideoElement::InitStatics(), which is no longer needed.

Differential Revision: https://phabricator.services.mozilla.com/D40340

--HG--
extra : moz-landing-system : lando
2019-08-02 12:35:01 +00:00
Nicholas Nethercote
581ca41a65 Bug 1570212 - Convert media.cloneElementVisually.testing to a static pref. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D40339

--HG--
extra : moz-landing-system : lando
2019-08-02 12:34:11 +00:00
Boris Zbarsky
3dd95a2c8f Bug 1560055 part 3. Switch various "width" and "height" attributes on HTML elements to mostly follow the spec for parsing the attribute. r=mccr8
The spec allows non-integer values, but we don't have a good way to store them
in nsAttrValue yet.  See https://bugzilla.mozilla.org/show_bug.cgi?id=1561440

HTMLTableCellElement::MapAttributesIntoRule can now call
MapImageSizeAttributesInto instead of manually mapping width and height, because
0 values (which it was excluding before) are now excluded at attribute parse
time.

For 'width' on HTMLTableElement I kept our old behavior for 0, which matches the spec
but not Safari or Chrome.

For 'height' on HTMLTableElement I kept our old behavior for 0, which matches
Safari and Chrome but not the spec.  https://github.com/whatwg/html/issues/4715
tracks a possible spec change.

Same thing for 'height' on HTMLTableRowElement.

Same thing for 'width' on HTMLTableColElement.

The ParseImageAttribute call in HTMLMediaElement is not needed, because
HTMLAudioElement does not map any of those to style and HTMLVideoElement only
maps width/height, which it already parses.

Differential Revision: https://phabricator.services.mozilla.com/D36127

--HG--
extra : moz-landing-system : lando
2019-06-28 20:56:55 +00:00
Chris Pearce
348ddf9d3b Bug 1555946 - Remove HTMLMediaElement::mUnboundFromTree and use nsINode::IsInComposedDoc() instead. r=emilio
HTMLMediaElement::mUnboundFromTree was added in bug 1239899, and I'm pretty
sure its behaviour is intended to be the same as what IsInComposedDocument()
gives us, so we can just use that instead.

Differential Revision: https://phabricator.services.mozilla.com/D35295

--HG--
extra : moz-landing-system : lando
2019-06-19 22:37:56 +00:00
Emilio Cobos Álvarez
ff732c2cdf Bug 1555143 - Remove unused aDeep argument from UnbindFromTree. r=bzbarsky
$ for file in $(rg UnbindFromTree | cut -d : -f 1 | sort | uniq); do sed -i 's#UnbindFromTree(bool aDeep = true,#UnbindFromTree(#g' $file; done
$ for file in $(rg UnbindFromTree | cut -d : -f 1 | sort | uniq); do sed -i 's#UnbindFromTree(bool aDeep,#UnbindFromTree(#g' $file; done
$ for file in $(rg UnbindFromTree | cut -d : -f 1 | sort | uniq); do sed -i 's#UnbindFromTree(aDeep,#UnbindFromTree(#g' $file; done
$ ./mach clang-format

And fix the two callers and little use of the aDeep argument (see the "Manual
changes" patch attached to bug).

Differential Revision: https://phabricator.services.mozilla.com/D32898

--HG--
extra : moz-landing-system : lando
2019-05-28 22:47:08 +00:00
Tarek Ziadé
7f4b636f4f Bug 1543032 - Extend metrics for dropped frames - r=padenot
This patch adds the number of dropped frames for each step of the process
(read/sink/compositor) and gives us more insight about where frames are
dropped, as opposed to the getVideoPlaybackQuality() API which gives the grand
total.

Differential Revision: https://phabricator.services.mozilla.com/D27488

--HG--
extra : moz-landing-system : lando
2019-04-16 11:50:38 +00:00
Mike Conley
3cebfb583c Bug 1543122 - Add a privileged UAWidget-accessible WebIDL API for triggering Picture-in-Picture. r=jya,Ehsan
Depends on D26776

Differential Revision: https://phabricator.services.mozilla.com/D26777

--HG--
extra : moz-landing-system : lando
2019-04-15 01:07:33 +00:00
Csoregi Natalia
9e8043e236 Backed out 10 changesets (bug 1542756, bug 1543128, bug 1543122) for multiple media failures /test_setSinkId.html. CLOSED TREE
Backed out changeset ce3a15e1b737 (bug 1543128)
Backed out changeset cea8c1af70ad (bug 1543128)
Backed out changeset aeb23f8f45fb (bug 1543128)
Backed out changeset a2e73d143aba (bug 1543128)
Backed out changeset 1692fc6491a0 (bug 1543128)
Backed out changeset 9fbce4274cfd (bug 1542756)
Backed out changeset 20092bcebe6a (bug 1543122)
Backed out changeset 1645d577016c (bug 1543122)
Backed out changeset 3fce0b7586c1 (bug 1543122)
Backed out changeset aab68db4131b (bug 1543122)
2019-04-13 06:22:47 +03:00
Mike Conley
b5797d9c16 Bug 1543122 - Add a privileged UAWidget-accessible WebIDL API for triggering Picture-in-Picture. r=jya,Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D26777

--HG--
extra : moz-landing-system : lando
2019-04-13 01:22:20 +00:00
Mike Conley
a1f3599f4b Bug 1531101 - Fire UAWidget setup / change events when starting or stopping a visual clone of a <video> element. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D22161

--HG--
extra : moz-landing-system : lando
2019-03-13 01:43:24 +00:00
Mike Conley
fbb2da4355 Bug 1531101 - Add method for stopping visual cloning of a video, and a read-only property to check cloning state. r=jya,Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D22160

--HG--
extra : moz-landing-system : lando
2019-03-13 01:43:07 +00:00
Dorel Luca
8d4d6ee416 Backed out 6 changesets (bug 1531101) for Mochitest failure in toolkit/content/tests/widgets/test_videocontrols_error.html. CLOSED TREE
Backed out changeset 10e9bbf2d1df (bug 1531101)
Backed out changeset 44d96bcc51f7 (bug 1531101)
Backed out changeset 4a4b44c3481a (bug 1531101)
Backed out changeset 12bcda2d76db (bug 1531101)
Backed out changeset 5887b55233c2 (bug 1531101)
Backed out changeset 13a0c61ed4fc (bug 1531101)
2019-03-12 02:04:54 +02:00
Mike Conley
52dc713e19 Bug 1531101 - Fire UAWidget setup / change events when starting or stopping a visual clone of a <video> element. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D22161

--HG--
extra : moz-landing-system : lando
2019-03-08 15:48:38 +00:00
Mike Conley
9508ea09b9 Bug 1531101 - Add method for stopping visual cloning of a video, and a read-only property to check cloning state. r=jya,Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D22160

--HG--
extra : moz-landing-system : lando
2019-03-11 22:45:44 +00:00
Mike Conley
6200b046ce Bug 1532692 - Clear poster attributes from videos that we're cloning to visually. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D22631

--HG--
extra : moz-landing-system : lando
2019-03-08 16:46:44 +00:00
Brindusan Cristian
4e6150486c Backed out changeset 9a94bd3da98f (bug 1532692) for mochitest failures at test_cloneElementVisually_poster.html. 2019-03-08 06:57:25 +02:00
Mike Conley
5adc1690d5 Bug 1532692 - Clear poster attributes from videos that we're cloning to visually. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D22631

--HG--
extra : moz-landing-system : lando
2019-03-08 03:06:29 +00:00
Mike Conley
8327974474 Bug 1532682 - Make HTMLVideoElement::EndCloningVisually completely sever references between source and target video elements. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D22109

--HG--
extra : moz-landing-system : lando
2019-03-07 22:42:42 +00:00
Brindusan Cristian
bfb3e7d106 Backed out changeset 9b8ef8d81775 (bug 1532682) for breaking decision task. CLOSED TREE
--HG--
extra : histedit_source : 1ee464b10794713af3590b105395fe60e5712522
2019-03-08 00:05:52 +02:00
Mike Conley
6deb48195b Bug 1532682 - Make HTMLVideoElement::EndCloningVisually completely sever references between source and target video elements. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D22109

--HG--
extra : moz-landing-system : lando
2019-03-07 21:00:45 +00:00
Mike Conley
442333ceaf Bug 1521964 - Invalidate visually cloned element when clone source is invalidated. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D21401

--HG--
extra : moz-landing-system : lando
2019-03-01 22:37:16 +00:00
Mike Conley
44acc929a5 Bug 1521964 - Don't suspend the video decoder when cloning a video visually. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D20674

--HG--
extra : moz-landing-system : lando
2019-03-01 22:36:53 +00:00
Mike Conley
59c1141de6 Bug 1521964 - Add privileged HTMLVideoElement.cloneElementVisually WebIDL method. r=jya,Ehsan,smaug
Differential Revision: https://phabricator.services.mozilla.com/D20023

--HG--
extra : moz-landing-system : lando
2019-03-01 22:36:40 +00:00
Mike Conley
2272f57c08 Bug 1521964 - Add clone target and source members to HTMLMediaElement and setters on HTMLVideoElement. r=jya,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D20021

--HG--
extra : moz-landing-system : lando
2019-03-01 22:36:17 +00:00
Mike Conley
ca728851ca Bug 1530862 - Add an Init() method to HTMLMediaElement to be called right after construction to do any AddRef / Release-ing. r=jya,mccr8,smaug
Differential Revision: https://phabricator.services.mozilla.com/D21400

--HG--
extra : moz-landing-system : lando
2019-02-28 19:02:55 +00:00
Ciure Andrei
14dcb83669 Backed out changeset 28bc841f06fc (bug 1530862) for failing HTMLMediaElement CLOSED TREE 2019-02-28 07:52:37 +02:00
Mike Conley
55a5944b50 Bug 1530862 - Add an Init() method to HTMLMediaElement to be called right after construction to do any AddRef / Release-ing. r=jya,mccr8,smaug
Differential Revision: https://phabricator.services.mozilla.com/D21400

--HG--
extra : moz-landing-system : lando
2019-02-27 23:40:00 +00:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
alwu
f9668b6e7e Bug 1495064 - part2 : don't request wakelock for video without audio track. r=jya
There are often websites using videos without an audio track as background image or as GIF-like image. For these cases,
we don't want to hold a wakelock.

Differential Revision: https://phabricator.services.mozilla.com/D7215

--HG--
extra : moz-landing-system : lando
2018-10-02 17:55:50 +00:00