Commit graph

1387 commits

Author SHA1 Message Date
Coroiu Cristina
73edc6621b Backed out 4 changesets (bug 1554847) for wpt failures at /service-workers/service-worker/fetch-canvas-tainting-video-cache.https.html
Backed out changeset 17e36d139ac2 (bug 1554847)
Backed out changeset 101bd1c2d688 (bug 1554847)
Backed out changeset 3ff9a221f3e5 (bug 1554847)
Backed out changeset 946e4d9420dd (bug 1554847)
2019-06-04 03:24:42 +03:00
Andrea Marchesini
8df66534cf Bug 1554847 - Improve cross-origin checks in canvas API - consider intermediate redirects, r=jya
Differential Revision: https://phabricator.services.mozilla.com/D32792

--HG--
extra : moz-landing-system : lando
2019-06-03 09:54:43 +00:00
Emilio Cobos Álvarez
6917a38081 Bug 1555216 - Change the signature of BindToTree to be (BindContext&, nsINode& aParentNode). r=bzbarsky
BindContext was going to have way more information at first, but then I realized
that most of the things I wanted to know were basically a flag away using the
parent node.

Still I think it's worth it, now experimenting with BindToTree will only mean
adding a field to a struct that's included from a couple cpp files, instead of a
massive pain.

I also think this is clearer, and doing this highlights quite a few
inconsistencies in our code which I've left untouched, but commented with
FIXMEs.

Steps are:

$ for file in $(rg 'nsresult BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#nsresult BindToTree(Document\* aDocument, nsIContent\* aParent,#nsresult BindToTree(BindContext\&, nsINode\& aParent)#g' $file; done
$ for file in $(rg 'nsresult BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#                      nsIContent\* aBindingParent) override#override#g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#::BindToTree(Document\* aDocument, nsIContent\* aParent,#::BindToTree(BindContext\& aContext, nsINode\& aParent)#g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#nsIContent\* aBindingParent)##g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#::BindToTree(aDocument, aParent, aBindingParent)#::BindToTree(aContext, aParent)#g' $file; done
$ ./mach clang-format

Then manual fixups.

Depends on D32948

Differential Revision: https://phabricator.services.mozilla.com/D32949
2019-05-31 23:31:52 +02:00
Andreas Pehrson
f7eea8274f Bug 1474621 - Ignore same values in SetDefaultPlaybackRate. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D33094

--HG--
extra : moz-landing-system : lando
2019-05-30 07:38:54 +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é
c48befbb9c Bug 1542674 - Make Media debug info machine parsable r=padenot,smaug,jya
This patch structurizes the media debug information via webidl dictionaries
that are returned by HTMLMediaElement::GetMozRequestDebugInfo() and
MediaSource::GetMozDebugReaderData().

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

--HG--
extra : moz-landing-system : lando
2019-05-27 16:15:33 +00:00
alwu
dfb849b238 Bug 1548923 - part2 : reset cues' active flag when media element's ready state becomes 'HAVE_NOTHING' r=jya
According to the spec [1], whenever the media element's readyState is changed back to `HAVE_NOTHING`, we have to reset all cues' active flag and update cue display in order to hide them.

[1] https://html.spec.whatwg.org/multipage/media.html#text-track-cue-active-flag

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

--HG--
extra : moz-landing-system : lando
2019-05-08 17:46:39 +00:00
shindli
9134ad98fa Backed out changeset c386ebfd9c6b (bug 1542674) as per tarek's request on IRC 2019-05-07 15:07:27 +03:00
Chris Pearce
3f91421217 Bug 1540573 - P6. Use frugal preloading of media data when on cellular, otherwise aggressive. r=jya
We're allowed to take some liberties as to what the default value and behaviour
we assume for the 'preload' attribute on HTMLMediaElement by the spec. On
desktop we assumed preload="metadata", while on mobile we assumed the default
of preload="none" to save data. On mobile we also assumed that preload="auto"
meant preload="metadata".

I think it makes sense to instead of always assuming that data on Android is
always expensive, we can instead detect if we're running on a cellular connection,
and preload frugally then, otherwise aggressively.

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

--HG--
extra : moz-landing-system : lando
2019-05-06 22:43:14 +00:00
Tarek Ziadé
446d5cdff7 Bug 1542674 - Make Media debug info machine parsable r=padenot,smaug
This patch structurizes the media debug information via webidl dictionaries
that are returned by HTMLMediaElement::GetMozRequestDebugInfo() and
MediaSource::GetMozDebugReaderData().

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

--HG--
extra : moz-landing-system : lando
2019-05-06 16:39:58 +00:00
Andreea Pavel
e2388edd9f Backed out 7 changesets (bug 1540573) for causing bug 1548441
Backed out changeset dd882b8cd73e (bug 1540573)
Backed out changeset b10d2cae45f2 (bug 1540573)
Backed out changeset 270a8917377f (bug 1540573)
Backed out changeset 3db059b34e40 (bug 1540573)
Backed out changeset fe196b2dfc62 (bug 1540573)
Backed out changeset 1bde5042e507 (bug 1540573)
Backed out changeset 4ff116b9d729 (bug 1540573)
2019-05-03 20:35:27 +03:00
Chris Pearce
a3f9372fa2 Bug 1540573 - P6. Use frugal preloading of media data when on cellular, otherwise aggressive. r=jya
We're allowed to take some liberties as to what the default value and behaviour
we assume for the 'preload' attribute on HTMLMediaElement by the spec. On
desktop we assumed preload="metadata", while on mobile we assumed the default
of preload="none" to save data. On mobile we also assumed that preload="auto"
meant preload="metadata".

I think it makes sense to instead of always assuming that data on Android is
always expensive, we can instead detect if we're running on a cellular connection,
and preload frugally then, otherwise aggressively.

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

--HG--
extra : moz-landing-system : lando
2019-05-03 02:44:49 +00:00
Thomas Nguyen
b0bfbd85aa Bug 1532318 - Part 2 : update changes of nsIHttpChannel in codebase r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D22786

--HG--
extra : moz-landing-system : lando
2019-05-02 12:33:55 +00:00
Noemi Erli
54a0234766 Backed out 6 changesets (bug 1540573) for failures in test_CSP.html
Backed out changeset 599e6e06599d (bug 1540573)
Backed out changeset bf725b7daa5b (bug 1540573)
Backed out changeset 814c94b26028 (bug 1540573)
Backed out changeset 3496ca48f6e0 (bug 1540573)
Backed out changeset 2c4303b175ec (bug 1540573)
Backed out changeset b49cd2b191ae (bug 1540573)
2019-05-02 06:41:33 +03:00
Chris Pearce
ce390c7a4f Bug 1540573 - P6. Use frugal preloading of media data when on cellular, otherwise aggressive. r=jya
We're allowed to take some liberties as to what the default value and behaviour
we assume for the 'preload' attribute on HTMLMediaElement by the spec. On
desktop we assumed preload="metadata", while on mobile we assumed the default
of preload="none" to save data. On mobile we also assumed that preload="auto"
meant preload="metadata".

I think it makes sense to instead of always assuming that data on Android is
always expensive, we can instead detect if we're running on a cellular connection,
and preload frugally then, otherwise aggressively.

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

--HG--
extra : moz-landing-system : lando
2019-05-01 23:48:21 +00:00
Emilio Cobos Álvarez
11ea945833 Bug 1546697 - Use a consistent style for enum classes in layout. r=dholbert
Per the discussion in:

  https://groups.google.com/d/msg/mozilla.dev.platform/P79pwa9z5m8/iPYPAWPHCAAJ

They should be CamelCase, and that's what most of them already do. This converts
the rest, which are a few.

For the ones that already used `e` or `k` prefixes, I've mostly done:

 for file in $(rg Type::e layout | cut -d : -f 1 | sort | uniq); do sed -i 's#Type::e#Type::#g' $file; done

For the ones that used uppercase, I've removed the prefix if it was already in
the type name, and turn them into CamelCase.

Depends on D28680

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

--HG--
extra : moz-landing-system : lando
2019-04-25 23:03:04 +00:00
Masayuki Nakano
3622509485 Bug 1545342 - part 2: Make some public enum of nsIPresShell move to mozilla namespace and defined as enum class in PresShellForwards.h r=smaug
This patch moves some `enum` in `nsIPresShell` which are in public scope into
`mozilla` namespace and change them as `enum class`es.

Unfortunately, only "where to scroll" enum is just defines constants of
percentages of scroll destination.  Therefore, this patch makes only them
as `static const`.

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

--HG--
extra : moz-landing-system : lando
2019-04-25 05:04:15 +00:00
Andreas Pehrson
3bb44440ba Bug 1536766 - Fix MediaStream currentTime wrt starting late in a graph's timeline. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D27259

--HG--
extra : moz-landing-system : lando
2019-04-24 10:53:44 +00:00
Ciure Andrei
add7a3fb9e Backed out 14 changesets (bug 1536766) for causing RunWatchdog and mediaElementAudioSource wpt failures CLOSED TREE
Backed out changeset 72d37a08f281 (bug 1536766)
Backed out changeset 63fc85885060 (bug 1536766)
Backed out changeset addbb04415cb (bug 1536766)
Backed out changeset f2923dfcf33c (bug 1536766)
Backed out changeset 25f3a33ec51b (bug 1536766)
Backed out changeset 199efe6aec59 (bug 1536766)
Backed out changeset f9d1f1bfe2b1 (bug 1536766)
Backed out changeset 87616997f160 (bug 1536766)
Backed out changeset 36f99fa3c956 (bug 1536766)
Backed out changeset 000260ba28de (bug 1536766)
Backed out changeset 6386ed1b7d74 (bug 1536766)
Backed out changeset ab27d9f5902a (bug 1536766)
Backed out changeset 4f6d240c210d (bug 1536766)
Backed out changeset 3e0e3030314d (bug 1536766)
2019-04-19 05:55:57 +03:00
Andreas Pehrson
70e38f3d49 Bug 1536766 - Fix MediaStream currentTime wrt starting late in a graph's timeline. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D27259

--HG--
extra : moz-landing-system : lando
2019-04-18 15:23:18 +00:00
Andreas Pehrson
b3529e64b7 Bug 1525209 - Revert spec-incompliant pause event from bug 1461877. r=cpearce
Differential Revision: https://phabricator.services.mozilla.com/D27864

--HG--
extra : moz-landing-system : lando
2019-04-17 09:57:59 +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
Paul Adenot
2d6777812d Bug 1543444 - Allow audible playbackRate to go down to 0.25 instead of 0.5. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D27063

--HG--
extra : moz-landing-system : lando
2019-04-12 07:34:11 +00:00
Mike Conley
f957ebe843 Bug 1543128 - Fire UAWidgetSetupOrChange for the no-controls <video> case on Desktop. r=jya
The Picture-in-Picture toggle buttons are now part of the video controls UAWidget
bindings, so we need to construct a UAWidget for the no-controls case for Desktop
to make that toggle available.

Up until now, we've never needed a no-controls UAWidget for Desktop, since we
never needed to show UI in that case.

Depends on D26809

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

--HG--
extra : moz-landing-system : lando
2019-04-15 01:08:32 +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
9e04b90b50 Bug 1543128 - Fire UAWidgetSetupOrChange for the no-controls <video> case on Desktop. r=jya
The Picture-in-Picture toggle buttons are now part of the video controls UAWidget
bindings, so we need to construct a UAWidget for the no-controls case for Desktop
to make that toggle available.

Up until now, we've never needed a no-controls UAWidget for Desktop, since we
never needed to show UI in that case.

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

--HG--
extra : moz-landing-system : lando
2019-04-13 01:23:18 +00:00
Sylvestre Ledru
03c8e8c2dd Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-05 21:41:42 +00:00
Csoregi Natalia
ba58e936bd Backed out changeset 4ad80127f89f (bug 1519636) for bustage on MarkupMap.h and nsAccessibilityService.cpp. CLOSED TREE 2019-04-05 09:48:19 +03:00
Sylvestre Ledru
d1c1878603 Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-04 21:36:16 +00:00
Narcis Beleuzu
24dbe577a5 Backed out changeset 389b6bbd76db (bug 1519636) for bustages on MarkupMap.h . CLOSED TREE 2019-04-05 00:27:56 +03:00
Sylvestre Ledru
399dbd28fe Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-04 20:12:23 +00:00
Masayuki Nakano
9165a150a1 Bug 1540930 - Make nsPresContext use mozilla::PresShell directly rather than via nsIPresShell r=emilio
`nsPresContext` should use `mozilla::PresShell` directly instead of
`nsIPresShell`.  This patch makes it.

Unfortunately, `nsPresContext` and `nsIFrame` have `PresShell()`.  Therefore,
we cannot use `PresShell*` in its methods so that this patch uses `mozilla::`
namespace prefix.

It might be better to rename them as `PresShellPtr()` in another bug.

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

--HG--
extra : moz-landing-system : lando
2019-04-03 12:40:26 +00:00
dlee
9878ae650d Bug 1522412 - P2. Remove nsIChannel.LOAD_CLASSIFY_URI flag. r=Ehsan
nsIChannel.LOAD_CLASSIFY_URI is no longer required so we can remove it from
the codebase.
In the mean time, we add a new LOAD_BYPASS_URL_CLASSIFIER load flag for
channel creator to be able to force channel to bypass URL classifier check.
The use of the new LOAD_BYPASS_URL_CLASSIFIER flag will be addressed in
the other patches.

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

--HG--
extra : moz-landing-system : lando
2019-03-25 12:47:57 +00:00
Gurzau Raul
2666e16a53 Backed out 7 changesets (bug 1522412) for xpcshell failures at test_shouldclassify.js on a CLOSED TREE.
Backed out changeset 7c998456e1fd (bug 1522412)
Backed out changeset ebb581ddf1d1 (bug 1522412)
Backed out changeset 850e1c68d978 (bug 1522412)
Backed out changeset fe288a48cecb (bug 1522412)
Backed out changeset 5399bca472b1 (bug 1522412)
Backed out changeset 91e5b339fe11 (bug 1522412)
Backed out changeset b80098d0a5c4 (bug 1522412)
2019-03-21 11:02:09 +02:00
Dimi Lee
8f1caf4049 Bug 1522412 - P2. Remove nsIChannel.LOAD_CLASSIFY_URI flag. r=Ehsan
nsIChannel.LOAD_CLASSIFY_URI is no longer required so we can remove it from
the codebase.
In the mean time, we add a new LOAD_BYPASS_URL_CLASSIFIER load flag for
channel creator to be able to force channel to bypass URL classifier check.
The use of the new LOAD_BYPASS_URL_CLASSIFIER flag will be addressed in
the other patches.

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

--HG--
extra : moz-landing-system : lando
2019-03-21 07:30:51 +00:00
Sylvestre Ledru
4aa92e3091 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D22514
2019-03-13 10:19:06 +01:00
Alastor Wu
b78375bb8e Bug 1531863 - part3 : implement the 'show-poster-flag' for HTMLMediaElement. r=jya
According to the spec [1], implement the `show-poster-flag` which is used to decide whether we need to run `TimeMarchesOn` algorithm under certain situations.

[1] https://html.spec.whatwg.org/multipage/media.html#show-poster-flag

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

--HG--
extra : moz-landing-system : lando
2019-03-08 03:06:27 +00:00
Alastor Wu
5f410f2fce Bug 1531863 - part2 : handle text track mode changed in MediaElement. r=jya
In order to make the implementation more fitting with the spec, move the implementation of `pending-text-track-change-notification-flag` from text track list to media element.

In addition, it also help us not to expose the internal flag `show-poster` (which will be implemented in patch3) of media element when doing the related algorithm.

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

--HG--
extra : moz-landing-system : lando
2019-03-12 00:32:21 +00:00
Brindusan Cristian
01e26ea3df Backed out 4 changesets (bug 1531863) for mochitest failures at test_videocontrols_vtt.html. CLOSED TREE
Backed out changeset e2e2b325344f (bug 1531863)
Backed out changeset 5be609c16665 (bug 1531863)
Backed out changeset 21bafd01b438 (bug 1531863)
Backed out changeset c9628b2b89b2 (bug 1531863)

--HG--
extra : histedit_source : 869452c42d3539867f34e64be52b7afba5463235
2019-03-08 02:34:45 +02:00
Alastor Wu
b441cd934c Bug 1531863 - part3 : implement the 'show-poster-flag' for HTMLMediaElement. r=jya
According to the spec [1], implement the `show-poster-flag` which is used to decide whether we need to run `TimeMarchesOn` algorithm under certain situations.

[1] https://html.spec.whatwg.org/multipage/media.html#show-poster-flag

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

--HG--
extra : moz-landing-system : lando
2019-03-07 21:47:58 +00:00
Alastor Wu
64ab84e0bc Bug 1531863 - part2 : handle text track mode changed in MediaElement. r=jya
In order to make the implementation more fitting with the spec, move the implementation of `pending-text-track-change-notification-flag` from text track list to media element.

In addition, it also help us not to expose the internal flag `show-poster` (which will be implemented in patch3) of media element when doing the related algorithm.

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

--HG--
extra : moz-landing-system : lando
2019-03-07 15:26:20 +00:00
Bryce Van Dyk
d693392c8d Bug 1522547 - Have MediaKeys observe if the owning document becomes inactive so it can shutdown. r=cpearce
MediaKeys objects are typically created and associated with an HTMLMediaElement,
however it is possible to create a MediaKeys object and not associate it with an
HTMLMediaElement.

This resulted in an issue where these MediaKeys would keep alive other
components that would assert during bowrser shutdown (see bug 1522547). We
anticipated that MediaKeys associated with an HTMLMediaElement would need to be
shutdown if their owning document became inactive, but were not handling the
case where the keys never became associated with an element.

This patch has the MediaKeys listen directly to their owning document for
activity change. The MediaKeys will shutdown if their document becomes inactive.
This avoids MediaKeys not associated with HTMLMediaElements keeping other
objects alive during browser shutdown.

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

--HG--
extra : moz-landing-system : lando
2019-03-05 16:21:40 +00:00
Alastor Wu
e2599c5021 Bug 1526355 - part1 : notify the front end side to show the blocking icon if the site is still being blocked after it's back from the bfcache. r=cpearce
In order to display blocking icon when the document comes back from the bfcache, we have to notify front end what's the current blocking status.

As the front end side would clear blocking autoplay information when nagivation occurs, and the media might not invoke the play again when they comes back from the bfcache.

Therefore, we should notify front end side that the site is still being blocked, and we should show blocking icon for it.

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

--HG--
extra : moz-landing-system : lando
2019-03-04 17:25:52 +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
Gurzau Raul
6b94d177d1 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-03-01 09:28:28 +02: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
Jonathan Kingston
f6680698bd Bug 1525319 - Removing context from OnDataAvailable r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D20881

--HG--
extra : moz-landing-system : lando
2019-02-27 23:42:27 +00:00
Jonathan Kingston
c4853316e7 Bug 1525319 - Removing context from OnStopRequest r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D20770

--HG--
extra : moz-landing-system : lando
2019-02-27 23:41:31 +00:00
Jonathan Kingston
f7e35ae39e Bug 1525319 - Removing context from OnStartRequest r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D20769

--HG--
extra : moz-landing-system : lando
2019-02-27 23:41:04 +00:00
John Lin
23e73b3f4c Bug 1510340 - p2: limit the concurrently created HLSDecoder instances. r=jya
Each instance has an instance of Java ExoPlayer that consumes memory in the
limited JVM heap. Too many concurrent players will cause OutOfMemoryError.

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

--HG--
extra : moz-landing-system : lando
2019-02-21 01:22:02 +00:00
Alastor Wu
1caaa8a882 Bug 1525156 - part2 : Add Telemetry to know how many autoplay media, which has been resumed from blocked, played exactly 7 secocnds or more, or less than 7 seconds. r=cpearce,janerik
By adding the Telemetry to measure the number of video/audio which played exactly 7 seconds or more, or less than 7 seconds, after those media has been resumed from blocked state, we can know how many media would meet the Chrome's MEI condition, which could help us to know more about the whole landscape of autoplay media.

In addition, it could help us know how many media are played 'by users intention' because we assume that users are more likely to stop the media if autoplay media is unblocked by accident.

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

--HG--
extra : moz-landing-system : lando
2019-02-26 04:44:19 +00:00
Alastor Wu
2607aaaa8d Bug 1525156 - part1 : not dispatch event when play is rejected by AudioChannelAgent. r=cpearce
"blocked" event is used for blocking autoplay. The `AudioChannelAgentBlockedPlay()` returns true when we lost audio focus on Android, so actually we don't need to dispatch "blocked" event.

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

--HG--
extra : moz-landing-system : lando
2019-02-21 22:52:57 +00:00
Ryan Hunt
00e98538aa Bug 1523969 part 6 - Move method definition inline comments to new line in 'dom/'. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D21106

--HG--
extra : rebase_source : ea3f51c2c11247114deccbc86e90fb02b8a97257
2019-02-25 16:05:29 -06:00
Dorel Luca
4a4dcd57fa Backed out 4 changesets (bug 1525319) for Android failures in dom/base/test/test_progress_events_for_gzip_data.html
Backed out changeset b73f033efb41 (bug 1525319)
Backed out changeset 1d318d5c6b98 (bug 1525319)
Backed out changeset 6d73418988d4 (bug 1525319)
Backed out changeset 84ca79bd2dc3 (bug 1525319)
2019-02-25 04:06:11 +02:00
Jonathan Kingston
63ab2bd8aa Bug 1525319 - Removing context from OnDataAvailable r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D20881

--HG--
extra : moz-landing-system : lando
2019-02-24 20:27:55 +00:00
Jonathan Kingston
332531fa9c Bug 1525319 - Removing context from OnStopRequest r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D20770

--HG--
extra : moz-landing-system : lando
2019-02-24 20:26:59 +00:00
Jonathan Kingston
2441197975 Bug 1525319 - Removing context from OnStartRequest r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D20769

--HG--
extra : moz-landing-system : lando
2019-02-24 20:26:16 +00:00
Christoph Kerschbaumer
54df1cb98c Bug 1528677: Remove nullchecks for loadinfo since we have loadinfo on all channels. r=baku 2019-02-20 13:27:25 +01:00
Jonathan Kingston
3421b8fcff Bug 1520868 - Replacing AsyncOpen2 with AsyncOpen always r=valentin
Replacing js and text occurences of asyncOpen2
Replacing open2 with open

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

--HG--
rename : layout/style/test/test_asyncopen2.html => layout/style/test/test_asyncopen.html
extra : moz-landing-system : lando
2019-02-12 16:08:25 +00:00
Andrea Marchesini
43a5f36077 Bug 1522210 - Fingerprinting and cryptomining classifiers must have separate nsIWebProgressListener blocking state codes - part 1 - UrlClassifierFeatureFactory::IsClassifierBlockingErrorCode, r=ehsan
Differential Revision: https://phabricator.services.mozilla.com/D17637
2019-01-30 13:43:34 +01:00
Timothy Guan-tin Chien
d59f80985c Bug 1507895 - Part I, Remove the videocontrols binding r=smaug
This patch removes the XBL videocontrols binding and make <video>
to always use the UA Widget to generate controls.

DevTools tests that look for NAC is switched to use <input type=file>.

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

--HG--
extra : moz-landing-system : lando
2019-01-25 13:12:26 +00:00
Ehsan Akhgari
e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
alwu
ab5249684b Bug 1513733 - part2 : try to start AudioContext when media element which is as a source for web audio starts r=cpearce,karlt
If media element is used as a source for AudioContext, we would try to start AudioContext which was not allowed
to start when media element starts playing.

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

--HG--
extra : moz-landing-system : lando
2019-01-11 20:43:01 +00:00
Andreas Pehrson
8b813e9e30 Bug 1515068 - Allow UpdateSrcStreamTime while paused. r=jya
This can legitimately happen while paused since the watchmanager calling this
is dispatching the calls. As such they're out of sync with the paused state,
and we need to allow updating the time while paused.

FireTimeUpdate does ignore the call if the time hasn't actually been updated,
so the only impact from this is that we could do a lot of unnecessary
dispatching while paused without noticing.

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

--HG--
extra : moz-landing-system : lando
2019-01-09 17:15:18 +00:00
alwu
2e3f453263 Bug 1513039 - part5 : log warning when autoplay is blocked. r=cpearce,karlt
Wrap 'nsContentUtils::ReportToConsole()' to reduce necessary input parameters and call it when we need to log error or warning message. Show the warning when autoplay is blocked.

For web audio, this restores the console messages removed in part4 and also reports the same message when the AudioContext is blocked in the constructor.

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

--HG--
extra : moz-landing-system : lando
2019-01-07 19:57:48 +00:00
alwu
2f88c125de Bug 1513039 - part3 : remove permission request codes in MediaElement. r=cpearce
Depends on D14326

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

--HG--
extra : moz-landing-system : lando
2019-01-07 18:32:42 +00:00
Alastor Wu
4d16da70e0 Bug 1513681 - part1 : dispatch 'GloballyAutoplayBlocked' event when site is blocked r=cpearce,smaug
This event is used to notify tab that this site is blocked and we should show the blocking icon for it. Patch2 will handle following details.

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

--HG--
extra : moz-landing-system : lando
2019-01-04 19:05:52 +00:00
Emilio Cobos Álvarez
d2ed260822 Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Bogdan Tara
6defca7262 Backed out 5 changesets (bug 1513681) for browser_autoplay_blocked.js failures CLOSED TREE
Backed out changeset d24ddb803761 (bug 1513681)
Backed out changeset 6f52b229d953 (bug 1513681)
Backed out changeset 79a78732c3ac (bug 1513681)
Backed out changeset d0a9422928ae (bug 1513681)
Backed out changeset 23b5a58e3bcc (bug 1513681)

--HG--
rename : toolkit/actors/AutoplayChild.jsm => toolkit/actors/AudibleAutoplayChild.jsm
2018-12-29 04:00:53 +02:00
alwu
6f035acde6 Bug 1513681 - part1 : dispatch 'GloballyAutoplayBlocked' event when site is permanent blocked. r=cpearce,smaug
This event is used to notify tab that this site is permanently blocked and we should show the blocking icon for it. Patch2 will handle following details.

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

--HG--
extra : moz-landing-system : lando
2018-12-18 18:11:56 +00:00
Alastor Wu
862fdf36a9 Bug 1511235 - part3 : ensure video is visible before starting test r=jya,baku
Add testing function to know whether video is visible or not.

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

--HG--
extra : moz-landing-system : lando
2018-12-21 06:40:10 +00:00
alwu
16fe01f1fd Bug 1511235 - part2 : add test. r=jya,baku
Add new webidl method for testing only and a test.

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

--HG--
extra : moz-landing-system : lando
2018-12-20 20:01:46 +00:00
Timothy Guan-tin Chien
3913ded230 Bug 1510848 - Do not unattach UA Widget Shadow Root if the element is already re-attached to the tree r=emilio,smaug
This patch moves all UA Widget calls to helper functions in Element.cpp. The helper function AttachAndSetUAShadowRoot sets the shadow root in a runnable, so that it is in the same order of NotifyUAWidget* runnables.

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

--HG--
extra : moz-landing-system : lando
2018-12-15 02:48:46 +00:00
Jean-Yves Avenard
1eaf0bea3e Bug 1443429 - P4. Ensure MediaShutdownManager is initialized outside stable state. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D14283

--HG--
extra : moz-landing-system : lando
2018-12-13 20:06:03 +00:00
Jean-Yves Avenard
b6b646428c Bug 1443429 - P1. Ensure that we don't run JS wrapper while in stable state. r=pehrsons
Due to the state watcher logic, mirror tasks can be dispatched while in stable state. We must not have visible aJS change during such stable state.

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

--HG--
extra : moz-landing-system : lando
2018-12-13 20:04:46 +00:00
Cosmin Sabou
0bedc24aae Backed out 2 changesets (bug 1511235) for causing bugs 1513454, 1513456 as alwu requested on irc. a=backout
Backed out changeset 4c9f874d6868 (bug 1511235)
Backed out changeset 3432e8bee7f1 (bug 1511235)
2018-12-13 03:43:36 +02:00
alwu
aba79e9edc Bug 1511235 - part2 : add test. r=jya,baku
Add new webidl method for testing only and a test.

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

--HG--
extra : moz-landing-system : lando
2018-12-12 02:16:55 +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
Timothy Guan-tin Chien
3c5974c14a Bug 1508000 - Dispatch UAWidgetUnbindFromTree event before calling nsGenericHTMLElement::UnbindFromTree() r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D12205

--HG--
rename : toolkit/content/tests/widgets/test_ua_widget.html => toolkit/content/tests/widgets/test_ua_widget_sandbox.html
extra : moz-landing-system : lando
2018-11-28 02:29:38 +00:00
Andreas Pehrson
ec8fc95487 Bug 1423241 - Unify decoder and stream paths in HTMLMediaElement::AddRemoveSelfReference. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D12287

--HG--
extra : moz-landing-system : lando
2018-11-23 15:03:21 +00:00
Andreas Pehrson
9a86a15c6f Bug 1423241 - Remove OnTracksAvailableCallback from HTMLMediaElement. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D12277

--HG--
extra : moz-landing-system : lando
2018-11-23 15:02:23 +00:00
Andreas Pehrson
4213b7db86 Bug 1423241 - Refactor DecodedStream. r=jya
This removes DecodedStream's use of MediaStreamListener in favor of
MediaStreamTrackListener. This change has however rippled through to a lot
more cleanup, per below.

This moves the MediaStreamTrack lifetime ownership for captured
HTMLMediaElements from the media element to DecodedStream, where the
MediaStreamGraph-side tracks are already created and ended today.

This makes MediaStreamTrack creation explicit across the entire codebase and
lets us remove the MediaStreamTrackSourceGetter class and the infrastructure
of adding MediaStreamTracks after they've already been created in the graph
from DOMMediaStream.

With track ownership, and thus TrackID allocation ownership, happening
exclusively in DecodedStream for its output tracks, we also stop throwing
away and recreating the SourceMediaStream to which we feed data on seek.
This is one step closer to fixing bug 1172394 and spec compliance of
HTMLMediaElement.captureStream().

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

--HG--
extra : moz-landing-system : lando
2018-11-23 15:02:03 +00:00
Andreas Pehrson
8a424abbee Bug 1423241 - Hold back readyState while no frame has been displayed as intended. r=jya
HasVideo() might be false even though there is a video track present as it will
only look at the resolution of a VideoTrack.

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

--HG--
extra : moz-landing-system : lando
2018-11-23 15:01:24 +00:00
Andreas Pehrson
26308e92bf Bug 1423241 - Remove screen-wakelock code that no longer has an effect. r=alwu
Differential Revision: https://phabricator.services.mozilla.com/D9102

--HG--
extra : moz-landing-system : lando
2018-11-23 15:01:18 +00:00
Andreas Pehrson
84905ffbe9 Bug 1423241 - Expose MSG's GraphTime through main-thread-Watchable and move media element to it. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D9101

--HG--
extra : moz-landing-system : lando
2018-11-23 15:01:13 +00:00
Andreas Pehrson
2561e93cdb Bug 1423241 - Remove a rawptr in HTMLMediaElement. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D9099

--HG--
extra : moz-landing-system : lando
2018-11-23 15:00:55 +00:00
Andreas Pehrson
5d81eeb138 Bug 1423241 - Remove HTMLMediaElement::StreamListener::NotifyHasCurrentData. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D9098

--HG--
extra : moz-landing-system : lando
2018-11-23 15:00:49 +00:00
Andreas Pehrson
afdaeed6d7 Bug 1423241 - Rename StreamSizeListener to VideoFrameListener and minor cleanup. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D9096

--HG--
extra : moz-landing-system : lando
2018-11-23 15:00:43 +00:00
Andreas Pehrson
58f77e6354 Bug 1423241 - Implement HTMLMediaElement::IsPlaybackEnded and IsEnded properly for MediaStreams. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D9095

--HG--
extra : moz-landing-system : lando
2018-11-23 15:00:37 +00:00
Andreas Pehrson
aa6d9c24a0 Bug 1423241 - Move special media element captureStream handling of inactive stream out of MediaStreamGraph. r=jib
Differential Revision: https://phabricator.services.mozilla.com/D12264

--HG--
extra : moz-landing-system : lando
2018-11-23 14:59:56 +00:00
Jean-Yves Avenard
d05f000f1b Bug 1507093 - P4. Don't lazily allocate mVideoTrackList and mAudioTrackList. r=pehrsons
Should the media element be cycle collected and a decoder still be active, a change of state could have caused the track list to be re-created causing a cycle between the HTMLMediaElement and the track list.

We also check when potentially updating the ready state if the self reference is still needed.

Place various assertions.

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

--HG--
extra : moz-landing-system : lando
2018-11-15 12:48:34 +00:00
Jean-Yves Avenard
bc18f07d03 Bug 1507093 - P3. Ensure that self AddRef/DeRef occur sequentially r=pehrsons
It was possible for two sequential calls to HTMLMediaElement::AddRemoveSelfReference to leave the media element deregistered when it should have registered.
And we ensure to ony ever self register once.

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

--HG--
extra : moz-landing-system : lando
2018-11-15 12:48:11 +00:00
Jean-Yves Avenard
25ba5304be Bug 1494073 - Always clamp playbackrate when setting decoder. r=padenot
We were clamping the playback rate properly if the decoder had been setup already, but not if setting it before playback started.

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

--HG--
extra : moz-landing-system : lando
2018-11-07 13:56:25 +00:00
Alexander Surkov
3395e926b6 Bug 1497940 - add nsGenericHTMLElement::AttachAndSetUAShadowRoot helper method, r=smaug 2018-11-02 12:18:20 +08:00
Alex Chronopoulos
13c885d7b1 Bug 1498679 - Stop moving variable to fix Linux64 debug coverage build. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D9244

--HG--
extra : moz-landing-system : lando
2018-10-19 12:47:06 +00:00
Alex Chronopoulos
5580e3fad1 Bug 934425 - Implement setSinkId in HTMLMediaElement. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D5874

--HG--
extra : moz-landing-system : lando
2018-10-12 09:39:30 +00: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
alwu
985d65ec0c Bug 1495064 - part1 : refactor the logic of requesting wakelock. r=jya
HTMLMediaElement::UpdateWakeLock() is responsible for creating and releasing audio wakelock.
HTMLVideoElement::UpdateWakeLock() is responsible for creating and releasing video wakelock.

In addition, each platform would handle system wakelock properly depending on different requests.

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

--HG--
extra : moz-landing-system : lando
2018-10-02 17:56:21 +00:00
Jan-Ivar Bruaroey
dec32ffaaf Bug 1497149 - Don't refcount runnables unnecessarily in Async[Resolve|Reject]SeekDOMPromiseIfExists. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D8025

--HG--
extra : moz-landing-system : lando
2018-10-08 19:53:08 +00:00
Jan-Ivar Bruaroey
32f97763a0 Bug 1497149 - Avoid nulling mSeekDOMPromise on OOM, and use IgnoreErrors(). r=jya
Differential Revision: https://phabricator.services.mozilla.com/D8021

--HG--
extra : moz-landing-system : lando
2018-10-08 19:39:41 +00:00
Jan-Ivar Bruaroey
fd1e15d444 Bug 1495904 - Have HTMLMediaElement::Seek() return synchronous errors synchronously instead of causing uncatchable promise rejections in web console. Enforce existing fastSeek() and mediaElement.currentPosition = value behavior (which is to ignore... r=pehrsons
...errors) if srcObject is a MediaStream. r?pehrsons

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

--HG--
extra : moz-landing-system : lando
2018-10-05 15:43:32 +00:00
Nathan Froyd
846d8789ee Bug 1492894 - part 1 - make the node hierarchy consistently constructed with NodeInfo&&; r=mccr8
Various places in dom/ use the pattern:

  already_AddRefed<NodeInfo> ni = ...;

which is supposed to be disallowed by our static analysis code, but
isn't, for whatever reason.  To fix our static analysis code, we need to
eliminate instances of the above pattern.

Unfortunately, eliminating this pattern requires restructuring how Nodes
are created.  Most Node subclasses take `already_AddRefed<NodeInfo>&` in
their constructors, and a few accept `already_AddRefed<NodeInfo>&&`.  We
need to enforce the latter pattern consistently, which requires changing
dozens of source files.
2018-09-21 16:45:49 -04:00
Nathan Froyd
e7b3b3140d Bug 1415980 - make hash keys movable and not copyable; r=erahm
Everything that goes in a PLDHashtable (and its derivatives, like
nsTHashtable) needs to inherit from PLDHashEntryHdr. But through a lack
of enforcement, copy constructors for these derived classes didn't
explicitly invoke the copy constructor for PLDHashEntryHdr (and the
compiler didn't invoke the copy constructor for us). Instead,
PLDHashTable explicitly copied around the bits that the copy constructor
would have.

The current setup has two problems:

1) Derived classes should be using move construction, not copy
   construction, since anything that's shuffling hash table keys/entries
   around will be using move construction.

2) Derived classes should take responsibility for transferring bits of
   superclass state around, and not rely on something else to handle that.

The second point is not a huge problem for PLDHashTable (PLDHashTable
only has to copy PLDHashEntryHdr's bits in a single place), but future
hash table implementations that might move entries around more
aggressively would have to insert compensation code all over the
place. Additionally, if moving entries is implemented via memcpy (which
is quite common), PLDHashTable copying around bits *again* is
inefficient.

Let's fix all these problems in one go, by:

1) Explicitly declaring the set of constructors that PLDHashEntryHdr
   implements (and does not implement). In particular, the copy
   constructor is deleted, so any derived classes that attempt to make
   themselves copyable will be detected at compile time: the compiler
   will complain that the superclass type is not copyable.

This change on its own will result in many compiler errors, so...

2) Change any derived classes to implement move constructors instead of
   copy constructors. Note that some of these move constructors are,
   strictly speaking, unnecessary, since the relevant classes are moved
   via memcpy in nsTHashtable and its derivatives.
2018-09-20 11:20:36 -04:00
alwu
1506a7fce4 Bug 1477767 - disconnect request when XPCOM is going to shutdown. r=cpearce
The reason we hit this assertion is that we still connected to Then() and waited for its result when the resolve or reject
runnable which dispatched by ThenValue can't be executed because the target thread had been shutdown.

Therefore, when XPCOM is going to shutdown, we should disconnect the Then() because it might not have a chance to execute
its resolve/reject method.

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

--HG--
extra : moz-landing-system : lando
2018-09-17 16:54:17 +00:00
Timothy Guan-tin Chien
052ca9c390 Bug 1487143 - Properly dispatch MozAutoplayMediaBlocked event to content, r=alwu
The MozAutoplayMediaBlocked event should have its target set to the video
element, not the document.

Also, MozNoControlsBlockedVideo event has to initialized from the CustomEvent
constructor of the right window for the XBL binding to access it. I don't know
when it stopped working.

Test is added to ensure the entire UI won't break.

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

--HG--
extra : moz-landing-system : lando
2018-09-13 21:21:11 +00:00
alwu
490f94cf41 Bug 1453862 - Log to web console when autoplay blocked. r=flod,baku
Log to the web console when we block autoplay, in order to help web developers debug their sites.

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

--HG--
extra : moz-landing-system : lando
2018-08-29 16:51:24 +00:00
alwu
5f20aea27a Bug 1485189 - part1 : dispatch related events when play is not allowed. r=cpearce
"blocked" event is used for testing.

"MozAutoplayMediaBlocked" event is used for changing the control UI on Fennec.

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

--HG--
extra : moz-landing-system : lando
2018-08-28 22:03:15 +00:00
alwu
2614e81154 Bug 1479270 - part1 : remove external player support in media element. r=jya
Since we have native HLS support in 59 [1], we don't need those code anymore.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1345752

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

--HG--
extra : moz-landing-system : lando
2018-08-25 00:03:38 +00:00
Andreea Pavel
e7678f51b5 Backed out 2 changesets (bug 1479270) for android lint on a CLOSED TREE
Backed out changeset 1676f895a710 (bug 1479270)
Backed out changeset 643ef11ea720 (bug 1479270)
2018-08-24 20:16:14 +03:00
alwu
45070f69f2 Bug 1479270 - part1 : remove external player support in media element. r=jya
Since we have native HLS support in 59 [1], we don't need those code anymore.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1345752

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

--HG--
extra : moz-landing-system : lando
2018-08-23 22:45:46 +00:00
alwu
4239949481 Bug 1483703 - part4 : modify current telemtry scalar because we won't block media without audio track anymore. r=cpearce,francois
Since we don't block media without audio track anymore, the original telemetry scalar becomes useless.

We need to change its meaning in order to know the number of allowed autoplay without audio track.

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

--HG--
extra : moz-landing-system : lando
2018-08-22 22:54:05 +00:00
alwu
598c2d9bb1 Bug 1483703 - part2 : add telemetry for the media which was blocked before loading metadata and ended up being without audio track. r=cpearce,francois
Add two telemetry scarlar,

"MEDIA_BLOCKED_NO_METADATA" records how many media which was blocked because it hadn't loaded metadata yet.
"MEDIA_BLOCKED_NO_METADATA_ENDUP_NO_AUDIO_TRACK" records how many media which was blocked because it hadn't loaded metadata and ended up for being no audio track.

By collecting those data, we can know the proportion of media which should be autoplay but was blocked because of lacking metadata.

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

--HG--
extra : moz-landing-system : lando
2018-08-22 22:50:54 +00:00
Emilio Cobos Álvarez
69f98d5c58 Bug 1484474 - Make the ua widget flag in ShadowRoot write-only. r=smaug
Letting people set it back to false would be bad.

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

--HG--
extra : moz-landing-system : lando
2018-08-18 21:32:38 +00:00
Timothy Guan-tin Chien
b541bf98b2 Bug 1431255 - Part VII, Trap mouse/touch/pointer events in audio/video element for UI Widgets r=smaug
This is akin to what's done in bug 1327097.

MozReview-Commit-ID: EERkjrxWZOu

--HG--
extra : rebase_source : 997a1737a2808ed177b4974d433d84878dc994ef
2018-07-12 12:32:44 +08:00
Timothy Guan-tin Chien
dab48182aa Bug 1431255 - Part V, Set the reflectors of the UA Widget DOM to UA Widget Scope r=bholley
The DOM elements within the UA Widget Shadow DOM should have its reflectors in
the UA Widget Scope. This is done by calling nsINode::IsInUAWidget() which
would check its containing shadow and its UA Widget bit.

To prevent JS access of the DOM element before it is in the
UA Widget Shadom DOM tree, various DOM methods are set to inaccessible to
UA Widget script. It would need to use the two special methods in ShadowRoot
instead to insert the DOM directly into the shadow tree.

MozReview-Commit-ID: Jz9iCaVIoij

--HG--
extra : rebase_source : b7b17be68dcde00cfeb207cb39cf16b486f2ab02
2018-06-29 13:39:46 -07:00
Timothy Guan-tin Chien
8cc930296b Bug 1431255 - Part II, Create a Shadow Root in HTMLMediaElement when enabled, skipping <xul:videocontrols> r=dholbert,smaug
This prevents XBL binding from being attached, and create the Shadow Root to
host controls to be created by the script.

Shadow Root and the JS controls are lazily constructed when the controls
attribute is set.

Set nsVideoFrame as dynamic-leaf so it will ignore content child frames when
the controls are XBL anonymous content, and handles child frames from controls
in the Shadow DOM. The content nodes are still ignored since there is no
<slot>s in our Shadow DOM.

MozReview-Commit-ID: 3hk41iMa07n

--HG--
extra : rebase_source : f6f8a3facc9d83f5626cf5f3b4e3fa27438a8a8f
2018-06-27 11:12:38 -07:00
alwu
31ef9b1d53 Bug 1482259 - Add Telemetry to know the proportion of silent part in the whole audio track. r=cpearce,francois
Use new telemetry histogram ID 'AUDIO_TRACK_SILENCE_PROPORTION' to know the proportion of
silent part in the whole audio track.

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

--HG--
extra : moz-landing-system : lando
2018-08-15 16:35:51 +00:00
Dale Harvey
59e904f6cd Bug 1476555 - Show notification when autoplay blocked globally. r=cpearce,johannh
MozReview-Commit-ID: EI0GiaoBNqX

--HG--
extra : rebase_source : 0c6fb98047913fc50423532cc4c433c4627c5b06
2018-07-23 16:43:08 +01:00
Emilio Cobos Álvarez
1fbd784d00 Bug 1481601 - Remove now-useless aPreallocateChildren from nsINode::Clone() and friends. r=bzbarsky
Since sed on multiple lines ended up being such a pain and I didn't end up
writing a script for this because I didn't think it'd end up being so boring, I
may have made a couple cleanups here and there as well...

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

--HG--
extra : moz-landing-system : lando
2018-08-08 23:58:44 +00:00
Csoregi Natalia
0f4d50ff52 Merge inbound to mozilla-central. a=merge 2018-08-08 12:58:36 +03:00
alwu
07c3b57fa1 Bug 1480484 - add telemetry scalar to measure the count for blocked media element without audio track. r=cpearce,francois
This is used to count the potiential number of the blocked autoplay media element without audio track
even if user was enable autoplay.

It might happen on three cases,
1. play -> loadedmetadata
2. loadedmetadata -> play
3. loadedmetadata -> has 'autoplay' keyword

In first case we need to check whether the play invocation has been called, and check other other cases
before the media starts playing.

In addition, the scalar name isn't consist with other names is because of the 40 maximum limitation of
the ping name.

MozReview-Commit-ID: 6Qm6TD4ME8I

--HG--
extra : rebase_source : d6c0dab7a0a2deed0025a0d039ead1f6ad218300
2018-08-03 13:21:03 -07:00
Narcis Beleuzu
2626256ea6 Backed out changeset a7067dbdc7b5 (bug 1480484) for build bustages on HTMLMediaElement.cpp. CLOSED TREE 2018-08-08 00:44:07 +03:00
alwu
deac67b7c2 Bug 1480484 - add telemetry scalar to measure the count for blocked media element without audio track. r=cpearce,francois
This is used to count the potiential number of the blocked autoplay media element without audio track
even if user was enable autoplay.

It might happen on three cases,
1. play -> loadedmetadata
2. loadedmetadata -> play
3. loadedmetadata -> has 'autoplay' keyword

In first case we need to check whether the play invocation has been called, and check other other cases
before the media starts playing.

In addition, the scalar name isn't consist with other names is because of the 40 maximum limitation of
the ping name.

MozReview-Commit-ID: 6Qm6TD4ME8I

--HG--
extra : rebase_source : 81c23390cb603d3fbd284f22b129540a73318d2c
2018-08-03 13:21:03 -07:00
Olli Pettay
7315a671e1 Bug 1481399 - rename nsAttrAndChildArray to AttrArray, r=mrbkap
--HG--
rename : dom/base/nsAttrAndChildArray.cpp => dom/base/AttrArray.cpp
rename : dom/base/nsAttrAndChildArray.h => dom/base/AttrArray.h
extra : rebase_source : 488f4d9c87bf337686abfa98e79466343a9e6685
2018-08-07 22:07:26 +03:00
alwu
1eb1b2a3d2 Bug 1480281 - part2 : move exist log to autoplay log module. r=cpearce
MozReview-Commit-ID: EtBRTjYG8k3

--HG--
extra : rebase_source : 65305ba7d151fcbb9b1a425dd319b5002afa0b5e
2018-08-01 17:50:19 -07:00
alwu
6d23d559af Bug 1480281 - part1 : add autoplay debug log module. r=cpearce
Add new log module which allow us to debug by using "MOZ_LOG=Autoplay:5".

MozReview-Commit-ID: 9CG5JyCw21G

--HG--
extra : rebase_source : c71c4bbed88b07a7803d93b661bfeac37cb94035
2018-08-01 17:30:59 -07:00
Chris Pearce
2e3c4bd9af Bug 1478208 - Implement HTMLMediaElement.allowedToPlay. r=alwu,bz
Various web authors have expressed desire to know in advance whether autoplay
will work.

They want this in order to avoid paying the price for downloading media that
won't play. Or they want to take other action such as showing a poster image
instead.

This is of particular interest to Firefox, as we're planning on showing a
prompt to ask the user whether they would like a site to play. If sites want to
determine whether they can autoplay but avoid the prompt showing, they won't be
able to just call play() in Firefox and see whether it works, as that would
likely show the prompt if the user doesn't already have a stored permission.

We've been working out a spec here:
https://github.com/whatwg/html/issues/3617#issuecomment-398613484

This implements what is the consensus to date there;
HTMLMediaElement.allowedToPlay, which returns true when a play() call would not
be blocked with NotAllowedError by autoplay blocking policies.

MozReview-Commit-ID: AkBu0G7uCJ0

--HG--
extra : rebase_source : 3f31db79aa1e570fdd9fc7062d0ddac7c96a8931
2018-07-25 14:25:17 +12:00
Dorel Luca
a6587cb874 Merge mozilla-cental to mozilla-inbound
--HG--
rename : browser/components/payments/test/mochitest/test_labelled_checkbox.html => browser/components/payments/test/mochitest/test_completion_error_page.html
extra : rebase_source : 8549ae557dceba753101a71840a5076783bd1d36
2018-08-01 12:54:59 +03:00
Emilio Cobos Álvarez
8f34c12e14 Bug 1479860: Remove unused aCompileEventHandlers argument from BindToTree. r=bz
Mostly automatic via sed. Only parts which I touched manually (apart from a
couple ones where I fixed indentation or which had mispelled arguments) are the
callers. I may have removed a couple redundant `virtual` keywords as well when
I started to do it manually, I can revert those if wanted.

Most of them are just removing the argument, but in Element.cpp I also added an
assertion for GetBindingParent when binding the ShadowRoot's kids (the binding
parent is set from the ShadowRoot constructor, and I don't think we bind a
shadow tree during unlink or what not which could cause a behavior difference).

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

MozReview-Commit-ID: 2oIgatty2HU
2018-08-01 10:42:54 +02:00
alwu
5116578704 Bug 1476701 - notify observer when audible autoplay occurred. r=cpearce,jaws
In our autoplay shield-study, we want to collect the information which could tell us how many website
contains audible autoplay media, but there is no way to get this information on current API desigin.

Therefore, I would like to send a new notification when autoplay occurred.

The extension code could get the information by following way,
```
Services.obs.addObserver((subject, topic, data) => {
    // DO SOMETHING
}, "AudibleAutoplayMediaOccurred");
```

MozReview-Commit-ID: 4bSYcxDZOGK

--HG--
extra : rebase_source : 2a4f060dbd582419bf0727408b04f2540155aa02
2018-07-25 09:08:44 -07:00
Boris Zbarsky
1914ffc8ec Bug 1450167. Stop using atom-or-string for event names in the listener manager. r=smaug
Now that we support atoms off the the main thread, we can just use atoms.
2018-07-24 18:15:19 -04:00
Gurzau Raul
f2e1e857f1 Merge inbound to mozilla-central. a=merge 2018-07-24 12:49:23 +03:00
Brian Hackett
ea6ebf1b6e Bug 1207696 Part 6a - Disable media elements when recording or replaying, r=jesup.
--HG--
extra : rebase_source : 10a1178dca996839da8496036196e7018d517787
2018-07-23 14:41:26 +00:00
Chris Pearce
ea566d079b Bug 1476456 - Add telemetry to report whether autoplay would be not allowed if autoplay was disabled. r=baku,francois
We'd like to add telemetry to help inform the decision as to how enabling
block autoplay will affect video playback in the wild.

Our data science team would also like some input to help them estimate the
rate at which our shield study would receive pings, and the telemetry
collected here will help them estimate that.

We'd like to collect the following, on a per session basis:
* Count of the number of top level content documents loaded, as denominator for
other stats collected here.
* Count of the number of top level content documents which contained (directly
or in a descendant document) playback of an audible media element.
* Count of the number of top level content documents which contained (directly
or in a descendant document) a muted media element that was paused by the
autoplay policy because it tried to unmute and it wasn't allowed to autoplay
audibly.
* Count of the total number of audible autoplay videos that would have not been
allowed to play if block autoplay was enabled. We'd either prompt for
permission on these videos, or block outright depending on user's settings.
* Count of the total number of audible autoplay videos that would have been
allowed to play if block autoplay was enabled.

MozReview-Commit-ID: vHWJPyqHjT

--HG--
extra : rebase_source : e1f22ec83fda8b65d78f1de9f02cf060d424019c
2018-07-18 15:34:04 +12:00
Cosmin Sabou
bfc1e72e01 Backed out changeset 9035ff3757ac (bug 1415980) at request from froydnj on the suspicion that it's going to break MSVC builds when it gets merged to central. 2018-07-31 01:19:49 +03:00
Nathan Froyd
017b016850 Bug 1415980 - make hash keys movable and not copyable; r=erahm
Everything that goes in a PLDHashtable (and its derivatives, like
nsTHashtable) needs to inherit from PLDHashEntryHdr.  But through a lack
of enforcement, copy constructors for these derived classes didn't
explicitly invoke the copy constructor for PLDHashEntryHdr (and the
compiler didn't invoke the copy constructor for us).  Instead,
PLDHashTable explicitly copied around the bits that the copy constructor
would have.

The current setup has two problems:

1) Derived classes should be using move construction, not copy
   construction, since anything that's shuffling hash table keys/entries
   around will be using move construction.

2) Derived classes should take responsibility for transferring bits of
   superclass state around, and not rely on something else to handle
   that.

The second point is not a huge problem for PLDHashTable (PLDHashTable
only has to copy PLDHashEntryHdr's bits in a single place), but future
hash table implementations that might move entries around more
aggressively would have to insert compensation code all over the place.
Additionally, if moving entries is implemented via memcpy (which is
quite common), PLDHashTable copying around bits *again* is inefficient.

Let's fix all these problems in one go, by:

1) Explicitly declaring the set of constructors that PLDHashEntryHdr
   implements (and does not implement).  In particular, the copy
   constructor is deleted, so any derived classes that attempt to make
   themselves copyable will be detected at compile time: the compiler
   will complain that the superclass type is not copyable.

   This change on its own will result in many compiler errors, so...

2) Change any derived classes to implement move constructors instead
   of copy constructors.  Note that some of these move constructors are,
   strictly speaking, unnecessary, since the relevant classes are moved
   via memcpy in nsTHashtable and its derivatives.
2018-07-30 17:15:11 -04:00
Jean-Yves Avenard
d5c79ef387 Bug 1477011 - Report vp9 in mp4 as supported. r=dminor
Since we switched to the mp4 rust demuxer, VP9 in mp4 is always supported.

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

--HG--
extra : moz-landing-system : lando
2018-07-20 11:36:57 +00:00
Dale Harvey
c9e5e7c554 Bug 1470082 - Change autoplay checkbox to combobox. r=cpearce,flod,johannh
MozReview-Commit-ID: E71TxvgfJlJ

--HG--
extra : rebase_source : 30ca63df77e48a44de4d3e90182440c3937ed32f
2018-06-29 14:14:33 +01:00
Chris Pearce
7fb3548c85 Bug 1471485 - Ensure autoplay permission promises disconnected if media starts playing. r=jya
We can start playing while we're awaiting a response to an autoplay-media
permission prompt, for example if the user clicks on a play button. In such
cases, it doesn't make sense to keep the autoplay permission request promise
connected in HTMLMediaElement, as since we're playing we'll be resolving the
play() promises and thus we won't be taking action on the autoplay request
promise's result. So we should just disconnect the autoplay permission request
promise if it's connected when we start playing.

MozReview-Commit-ID: 1aiCLXV7Ja9

--HG--
extra : rebase_source : c439e8f084ac8cc01db578d712e15d3174a08e71
2018-07-12 16:19:25 +12:00
Chris Pearce
848dee9a6f Bug 1472580 - Ensure we always get a allow/cancel response to an autoplay media permission request. r=smaug
The front end code can't always guarantee to give us an allow/cancel response
to a permission request. In particular in these cases:
* if we close a tab while showing a doorhanger, or
* if we navigate a tab while showing a doorhanger, or
* if the permission prompt requested in a background tab and never shown.

Handling all of these cases is problematic; we don't get events for all of
these where it's easy and cheap to determine that we should cancel the
permission request.

Canceling the permission request is important in the autoplay-media permission
request case as there's objects waiting on the resolution of the permission
request, and they leak in ASan builds while running chrome tests if the Gecko
size of the permission request doesn't get a notification telling it to stop
waiting.

But we can however rely on the doorhanger code to drop its reference to the
nsIContentPermissionRequest object that we pass to it when the doorhanger goes
away. So we can cancel the permission request in our
nsIContentPermissionRequest's implementation's destructor in order to easily
catch all the above cases.

In order to do that, we need to split AutoplayRequest into two; one part being
the implementation of nsIContentPermissionRequest (AutoplayPermissionRequest),
and the other part being the code to own the PromiseHolder and manage the
permission request (AutoplayPermissionManager).

AutoplayPermissionRequest keeps a weak reference to AutoplayPermissionManager,
so that it can tell the AutoplayPermissionManager to reject the request promise
when it's destroyed.

This fixes the ASan leak for which I got backed out from earlier in this bug,
and also fixes the cases above.

MozReview-Commit-ID: KoVkgIqDleW

--HG--
rename : dom/html/AutoplayRequest.cpp => dom/html/AutoplayPermissionManager.cpp
rename : dom/html/AutoplayRequest.h => dom/html/AutoplayPermissionManager.h
extra : rebase_source : dbca520a93d8c416f6d64c2da027630181bb5910
2018-07-06 21:15:20 +12:00
Olli Pettay
a1288b6db5 Bug 1472428 - HTMLMediaElement should use IsInComposedDoc, r=cpearce 2018-07-03 18:13:17 +03:00
Chris Pearce
599f53cfd2 Bug 1463919 - Tests for prompting for permission to autoplay. r=jya,mconley
Test that a video which tries to autoplay via either a play() call or via
an autoplay attribute:
* Plays when it has a pre-existing "allow" autoplay-media permission.
* Is blocked when it has a pre-existing "block" autoplay-media permission.
* Plays when it doesn't have a pre-existing autoplay-media permission and
"allow" is pressed on the door hanger.
* Is blocked when it doesn't have a pre-existing autoplay-media permission and
"block" is pressed on the door hanger.

MozReview-Commit-ID: CpftV6RQbtU

--HG--
extra : rebase_source : a9c38a7e7071e3ebd34f10175f4f22cd84c4c303
2018-06-25 15:35:33 +12:00
Chris Pearce
f88fe2a683 Bug 1463919 - Check AutoplayPolicy before activating attribute based autoplay. r=jya
When autoplay is requested by setting the "autoplay" attribute, we should
check whether autoplay is allowed in HTMLMediaElement::CheckAutoplayDataReady()
and if not we should prompt for user consent.

This ensures that <video ... autoplay/> will prompt for consent when used on
a page without a pre-existing allow/block permission.


MozReview-Commit-ID: 77pJR2Ybn2i

--HG--
extra : rebase_source : 5cf26822c9e5f23a83d69f5f52c39be6ab6f9eb0
2018-06-29 15:10:14 +12:00
Chris Pearce
ea95e39bc9 Bug 1463919 - Move ask autoplay permission check into AutoplayPolicy. r=jya
MozReview-Commit-ID: KJcVI6gtGXw

--HG--
extra : rebase_source : a2ccd2da32d77708fdeb6ea6361975a7759cb18d
extra : source : 9b1c40f3e61ab351707f2d320ce8f87951e4868e
2018-06-26 14:16:13 +12:00
Chris Pearce
b309d364b6 Bug 1463919 - Have HTMLMediaElement ask for autoplay permission when playback otherwise blocked. r=jya
MozReview-Commit-ID: Ejv0UKBjSVf

--HG--
extra : rebase_source : f999b9a4a1ae7a5a7f1dd31efd3003e40d7fa102
2018-06-22 10:14:33 +12:00
Chris Pearce
56d56555be Bug 1471800 - Ensure HTMLMediaElement doesn't play its MediaDecoder in a readyState update after it's OwnerDoc has been removed from its DocShell. r=jya
It's possible that if the HTMLMediaElement is loading while we're loading a new
document into a docshell, that the HTMLMediaElement can reach readyState
HAVE_FUTURE_DATA just after its OwnerDoc is removed from the docshell. If the
HTMLMediaElement wasn't paused, then it may start playing due to the readyState
change in HTMLMediaElement::ChangeReadyState().

For years we've had hard to reproduce issues where media started playing after
we've closed the tab; I bet this was the cause!

When we detect that the document has been removed from its DocShell,
HTMLMediaElement::NotifyOwnerDocumentActivityChanged() is called, and that
suspends the MediaDecoder just in case we need to resurrect the media element,
for example if the tab comes out of the BF cache. When we suspend we set
mPausedForInactiveDocumentOrChannel=true, and all other calls to
MediaDecoder::Play() are guarded by checks on
mPausedForInactiveDocumentOrChannel.

So we should also guard the MediaDecoder::Play() call in ChangeReadyState()
with a check on mPausedForInactiveDocumentOrChannel too.

MozReview-Commit-ID: GfmZasT9jdr

--HG--
extra : rebase_source : 5539503795868e9496fe34014b5c04d2ed48241b
extra : source : e94884022fa7df95adf90e44a44e4f168d60f01a
2018-06-28 15:54:36 +12:00
Cosmin Sabou
bc28a91735 Backed out changeset 97499b2f5612 (bug 1471800) as requested by cpearce. 2018-06-28 13:53:42 +03:00
Chris Pearce
dc1195caea Bug 1471800 - Ensure HTMLMediaElement doesn't play its MediaDecoder in a readyState update after it's OwnerDoc has been removed from its DocShell. r=jya
It's possible that if the HTMLMediaElement is loading while we're loading a new
document into a docshell, that the HTMLMediaElement can reach readyState
HAVE_FUTURE_DATA just after its OwnerDoc is removed from the docshell. If the
HTMLMediaElement wasn't paused, then it may start playing due to the readyState
change in HTMLMediaElement::ChangeReadyState().

For years we've had hard to reproduce issues where media started playing after
we've closed the tab; I bet this was the cause!

When we detect that the document has been removed from its DocShell,
HTMLMediaElement::NotifyOwnerDocumentActivityChanged() is called, and that
suspends the MediaDecoder just in case we need to resurrect the media element,
for example if the tab comes out of the BF cache. When we suspend we set
mPausedForInactiveDocumentOrChannel=true, and all other calls to
MediaDecoder::Play() are guarded by checks on
mPausedForInactiveDocumentOrChannel.

So we should also guard the MediaDecoder::Play() call in ChangeReadyState()
with a check on mPausedForInactiveDocumentOrChannel too.

MozReview-Commit-ID: GfmZasT9jdr

--HG--
extra : rebase_source : dba32e8341a3dd70355ccdd7fd8790911a92acc8
extra : source : e94884022fa7df95adf90e44a44e4f168d60f01a
2018-06-28 15:54:36 +12:00
Emilio Cobos Álvarez
89fd549c61 Bug 1471013: Make MozAutoplayMediaBlocked chrome-only. r=smaug
Summary: MozReview-Commit-ID: JVLMpCeMkAs

Reviewers: smaug

Tags: #secure-revision

Bug #: 1471013

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

MozReview-Commit-ID: 2he7tHFbZ8t
2018-06-27 11:24:17 +02:00
Jeff Gilbert
5b753da289 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Emilio Cobos Álvarez
c7d35aa526 Bug 1470930: Use enums for passing arguments for event dispatch. r=smaug
MozReview-Commit-ID: DsNuF7GAflJ
2018-06-26 18:22:06 +02:00
Margareta Eliza Balazs
c866c30fcf Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-06-26 12:24:32 +03:00
Chris Peterson
2afd829d0f Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj
This patch is an automatic replacement of s/NS_NOTREACHED/MOZ_ASSERT_UNREACHABLE/. Reindenting long lines and whitespace fixups follow in patch 6b.

MozReview-Commit-ID: 5UQVHElSpCr

--HG--
extra : rebase_source : 4c1b2fc32b269342f07639266b64941e2270e9c4
extra : source : 907543f6eae716f23a6de52b1ffb1c82908d158a
2018-06-17 22:43:11 -07:00
Chris Pearce
63dbf9d6f7 Bug 1470346 - Gesture activate all documents in tab, even across origins, upon user interaction. r=smaug
Sometimes when video is playing, a preroll ad plays, and that may be in a cross
origin iframe. If autoplay media is disabled, we require a user gesture in a
document before playback in that document is permitted, and we require each
origin to be gesture activated separately. So in the cross origin preroll video
add case, then the user will have to click once to unblock playback for the
cross origin ad, and then once the preroll ad finishes, the user will have to
click again to activate playback of the same origin content video.

This is a bad user experience.

So we should instead make gesture activation propagate up the doc tree
irrespective of crossing origins.  This way, when the user clicks to activate,
all documents in that tab are also also effectively gesture activated, and so
can autoplay.

MozReview-Commit-ID: 1HZQ5zkubR

--HG--
extra : rebase_source : d6b75732548cb1d73b9f82dce60a5e6e97d1da14
2018-06-22 11:52:20 +12:00
Bryce Van Dyk
926f765909 Bug 1450845 - MediaDecoderStateMachine now ignores SeekToNextFrame if already seeking. r=jya
SeekToNextFrame is handled differently than other seeks by the
MediaDecoderStateMachine, and should not take place while other seeks already
are. Bug 1410225 implemented some changes in HTMLMediaElement to prevent this,
but it's still possible to move to a seeking state in the MDSM and accept
SeekToNextFrame (as in this bug).

This changeset changes the MDSM to reject SeekToNextFrame if a seek is already
happening. Since the MDSM now does this the changes from bug 1410225 can be
removed.

This has the functional change of the promise from SeekToNextFrame being
rejected if the seek in not performed due to another seek. Previously the
promise would succeed when the other seek completed. This seems sensible as the
next frame seek does not actually take place.

MozReview-Commit-ID: HD9WRFq3LZV

--HG--
extra : rebase_source : fb276010119038db4319b3b81bcbf51ef2cab1d9
2018-06-06 15:17:30 -04:00
Chris Pearce
2c5f707722 Bug 1467350 - Make HTMLMediaElement::mPaused Watchable and update Wakelock status via a watcher. r=jya
We currently observe changes to HTMLMediaElement::mPaused via a hand-rolled
wrapper class. We can use use mozilla::Watchable<> and avoid rolling our
own equivalent here.

This also paves the way for using state watching on other observable state
in HTMLMediaElement.

MozReview-Commit-ID: 4lBlJiV15iG

--HG--
extra : rebase_source : 22f9d811371f9d609dc96a9d958645e5c634eb17
extra : intermediate-source : bdb8280da440a711c6cd51b65ead7ba9e4bb3597
extra : source : fd8c4b8656a9996eea94d2092caaf3c10fe2a835
2018-05-21 14:19:47 +12:00
Chris Pearce
52d5517ef6 Bug 1464922 - Remove HTMLMediaElement::mAttemptPlayUponLoadedMetadata. r=bryce
We don't need to track this state anymore, as we don't need to delay calling
MediaDecoder::Play() or delay firing the "playing" event anymore.

MozReview-Commit-ID: E3B9l6ep7FP

--HG--
extra : rebase_source : 63df836bf0249ed40b0659cd42794e92966cefb9
2018-05-29 08:09:26 +12:00
Chris Pearce
e08b3c171c Bug 1464922 - Don't allow media without audio tracks to autoplay. r=bryce
I don't think we should allow media without audio tracks to autoplay because:
* It means play() before loaded metadata behaves differently than play()
called after loaded metadata.
* With the current impl we dispatch the "play" event and then the "pause"
event when we decide we should block, which may confuse some sites' controls.
* Delaying running the play() algorithm until we've loaded metadata would add
significant complexity, and may break sites.
* Chrome doesn't have this provision, meaning the complexity required to
support it will not result in much benefit to us.

MozReview-Commit-ID: FSVlDJAOisw

--HG--
extra : rebase_source : 93b1bcf8d8edbd6ca10ad918b40a87cd3cfbbf0b
2018-05-28 22:09:14 +12:00
Andreas Pehrson
6c6e70fcbc Bug 1453127 - Ensure TrackID uniqueness for captured MediaDecoder. r=jya 2018-05-29 10:21:51 +02:00
Andreas Pehrson
9fcd68ce86 Bug 1453127 - Make sure decoder-captured tracks end when changing src. r=jya 2018-05-29 10:13:14 +02:00
Andrea Marchesini
7ba8b77e07 Bug 1466023 - Separate FontTableURI and BlobURL, r=qdot
This patch splits FontTableURI and BlobURL in 2 classes:
FontTableURIProtocolHandler and BlobURLProtocolHandler
both under mozilla::dom.

It also removes a memory reporter because that report is already covered by the
BlobURL one.

--HG--
rename : dom/file/nsHostObjectProtocolHandler.cpp => dom/file/BlobURLProtocolHandler.cpp
rename : dom/file/nsHostObjectProtocolHandler.h => dom/file/BlobURLProtocolHandler.h
2018-06-02 15:51:42 +02:00
Emilio Cobos Álvarez
1e9c395548 Bug 1466168: Remove mozilla::Forward in favor of std::forward. r=froydnj
Same approach as the other bug, mostly replacing automatically by removing
'using mozilla::Forward;' and then:

  s/mozilla::Forward/std::forward/
  s/Forward</std::forward</

The only file that required manual fixup was TestTreeTraversal.cpp, which had
a class called TestNodeForward with template parameters :)

MozReview-Commit-ID: A88qFG5AccP
2018-06-02 09:33:26 +02:00
Emilio Cobos Álvarez
fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Jean-Yves Avenard
aa3feebecc Bug 1451149 - P2. Don't fire the "stalled" event when using MSE. r=bryce
When using a media element with a Media Source, the resource fetching algorithm is to be called in "local" mode:
https://www.w3.org/TR/media-source/#mediasource-attach
"Continue the resource fetch algorithm by running the remaining "Otherwise (mode is local)" steps, with these clarifications"

https://html.spec.whatwg.org/multipage/media.html#concept-media-load-resource
Under the local mode, the steps that would cause the element to fire suspend, stalled or progress can never occur.
We only prevent the stalled event to be fired, many websites rely on the progress event to be fired (such as when the init segment has been parsed). The HTML5 media spec will be amended to clearly indicate that progress is to be fired even with mediasource

MozReview-Commit-ID: DkoQzoV0JzO

--HG--
extra : rebase_source : 1e916eee50c9935f168797bb5a92052191cda59d
2018-05-14 11:32:09 +02:00
Jean-Yves Avenard
0f9cf930b6 Bug 1451149 - P1. Fix HTMLMediaElement style. r=bryce
Partially apply clang-format so that we limit the scope of changes while ensuring consistency in declarations.

MozReview-Commit-ID: Km9sKBbFhKx

--HG--
extra : rebase_source : 880e1fc1b46ab57d961e12eb7670260128d0faa1
2018-05-14 11:11:18 +02:00
Chris Pearce
720655a185 Bug 1461877 - Ensure we don't dispatch 'playing' when we're about to reject pending play promises. r=bryce
Currently we can end up dispatching a 'playing' event right before we reject
play() promises, and this confuses YouTube's controls, and it doesn't make
sense to dispatch a 'playing' event when we're not playing anyway.

This is because the logic to delay resolving the play() promise until after
we've reached loadedmetadata doesn't prevent the 'playing' event from being
dispatched. We shouldn't dispatch 'playing' until we resolve the play()
promise(s).

MozReview-Commit-ID: 5H4dcObfu4M

--HG--
extra : rebase_source : b4036a8fead95cd3070f9fc4d30e0feb23d1f64c
2018-05-16 17:27:01 +12:00
Andrea Marchesini
3ef72562fe Bug 1454889 - Remove createObjectURL()'s MediaStream overload, r=valentin 2018-04-24 16:19:51 +02:00
Adrian Wielgosik
c501e3beb0 Bug 1460940 - Clean up most remaining C++-side uses of nsIDOMDocument. r=bz
MozReview-Commit-ID: LKRnyDPNlle

--HG--
extra : rebase_source : a48b7c72a0f7ede38c91149a04d5de53987736f1
2018-05-11 19:46:15 +02:00
Andreas Pehrson
519fd89590 Bug 1458852 - Return real current image in HTMLMediaElement::GetCurrentImage(). r=mattwoodrow
MozReview-Commit-ID: Kjc8mTu1ckF

--HG--
extra : rebase_source : feaf0f06e146aede45893cc1252eaf04a78e7aeb
2018-05-04 18:21:56 +02:00
Narcis Beleuzu
2b99556758 Backed out changeset 0c5a4939300c (bug 1454889) for causing frequent Leaks (Bug 1378025). a=backout 2018-05-07 12:06:25 +03:00
Dorel Luca
eb41b7b796 Merge mozilla-central to mozilla-inbound 2018-05-03 13:03:06 +03:00
Andrea Marchesini
cae9cf0b13 Bug 1458505 - grapping 'self' in mozilla::MakeScopeExit instead of '&' when needed, in HTMLMediaElement, r=me CLOSED TREE 2018-05-03 08:37:27 +02:00
Andrea Marchesini
3ac438523c Bug 1458505 - grapping 'self' in mozilla::MakeScopeExit instead of '&' when needed, in DOM code, r=erahm 2018-05-03 08:09:58 +02:00
Jean-Yves Avenard
1e4866d526 Bug 1457960 - P1. make MediaDecoder::Seek returns void. r=bryce
MozReview-Commit-ID: 2pbZprnYqcF

--HG--
extra : rebase_source : b6c521f65be5fb17d7d33b7ed86eb044d4cdfa9f
2018-04-30 19:58:11 +02:00
Jean-Yves Avenard
7c6fc40c1a Bug 1458566 - Make MediaDecoder::Play() return void. r=bryce
MediaDecoder::Play() cannot fail and was always returning NS_OK

MozReview-Commit-ID: 7OgwZQw569Y

--HG--
extra : rebase_source : 907f6304df42640ccd03e8d144fe89cd748eec07
2018-05-02 17:27:27 +02:00
Andrea Marchesini
3abafd2746 Bug 1454889 - Remove createObjectURL()'s MediaStream overload, r=valentin 2018-04-24 16:19:51 +02:00
Chris Pearce
b36acd0564 Bug 1453843 - Remove extraneous play promise reject. r=bryce
We already reject the play promises when we call Pause(), so this extra
reject is unnecessary.

MozReview-Commit-ID: 6LKw7hCwJPH

--HG--
extra : rebase_source : b75c147c2f475cf1ae4b4dddc3085c306f31d6e6
2018-04-20 17:54:08 +12:00
Chris Pearce
7b1b141797 Bug 1453843 - Ensure we fire "pause" event when rejecting play() promise. r=bryce
Bug 1435133 introduced a new path where we block autoplay and reject the play()
promise, but we didn't fire a "pause" event. This confuses YouTube's controls.

Additionally, even if we're not in a user generated event handler, we
unilaterally consider the media element blessed if execution reaches here:
https://searchfox.org/mozilla-central/rev/11a2ae294f50049e12515b5821f5a396d951aacb/dom/html/HTMLMediaElement.cpp#4110
We previously rejected before reaching here when not in a user generated event
handler, but now if play() is called before we've reached loadedmetadata, we
reject the promise if we're not in a non-event handler and bail out early, and
so we'll bless even if not in a user generated event handler. Meaning when we
do reach loadedmetadata, we think we were in a user generated event handler
when play() was originally called, and so we won't reject the play promise.

So this patch ensures we dispatch a "pause" event when we reject the play()
promise here. The WHATWG spec says we should do this when pausing anyway.

Note: calling our interal Pause() function when rejecting the play() promise
here breaks YouTube, as if we do that we fire a "timeupdate" event. So I opted
to manually code to fire the event here instead of just calling Pause()
everywhere we want to ensure we're paused.

MozReview-Commit-ID: 1snkiTnPGih

--HG--
extra : rebase_source : 2c5ca6c0ed7c2dff2fb971cd159cfdc12a8a227f
2018-04-20 17:53:37 +12:00
Emilio Cobos Álvarez
81856604ef Bug 1454238: Remove nsINode::eMEDIA. r=bz
MozReview-Commit-ID: LPutL6PlrgG
2018-04-20 01:30:12 +02:00
Brindusan Cristian
25a0c6dc80 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-04-17 13:09:40 +03:00
Chris Pearce
5328fa5cb9 Bug 1453176 - Add telemetry to report fulfilment of HTMLMediaElement.play(). r=bryce
We'd like to know the proportion of HTMLMediaElement.play() calls that are
rejected due to autoplay being blocked. There are also other conditions that
cause us to reject the promise returned by HTMLMediaElement.play(), so add
telemetry to report all the identifyable conditions under which play()
succeeds or fails.

MozReview-Commit-ID: AZ67WWXaowN

--HG--
extra : rebase_source : 4a164cb0b4fb7fb6944cd371c6e90dde021a4dc0
2018-04-13 20:28:39 +12:00
Nicholas Nethercote
51f2b494ea Bug 1448222 - Remove MediaPrefs. r=jya
This patch converts all the prefs in MediaPrefs to the new StaticPrefs system.

Note that the "media.wmf.skip-blacklist" pref was present in both MediaPrefs
and gfxPrefs. The copy in MediaPrefs was never used; this explains why this
patch does not add an entry for it to StaticPrefList.h.

Note also that the patch removes themedia.rust.mp4parser pref, because it's
unused.

MozReview-Commit-ID: IfHP37NbIjY

--HG--
extra : rebase_source : df84ea813b7c366d7be663c696891325610149c8
2018-03-20 09:48:56 +11:00
Boris Zbarsky
2542e6eb8a Bug 1452741. Stop using the no-arg DOMEventTargetHelper constructor in MediaTrack. r=bkelly
MozReview-Commit-ID: AbE3XJdj4KO
2018-04-11 10:27:00 -04:00
Chris Pearce
04c2da8b9e Bug 1435134 - Don't play until we've reached metadata. r=bryce
We want to block playback of media which have an audio track, so if play()
is called before the load of the resource has loaded metadata, we need to
delay starting playback and resolving the play promise until we've figured
out whether the media has audio. So if play() is called before we've reached
readyState >= HAVE_METADATA, set a flag, and check that flag when we do
reach HAVE_METADATA and start the play and resolve the promise then.

MozReview-Commit-ID: 1K06NK2kfpw

--HG--
extra : rebase_source : 45636e77b44ed072e1bc3f1e9a9f73f206ee04de
2018-03-13 16:40:18 +13:00
Andreea Pavel
7a4b9a3f56 Merge mozilla-inbound to mozilla-central. a=merge
--HG--
extra : rebase_source : 66bd87105d99036ada5008499ff0eaea579b531a
2018-04-06 13:20:21 +03:00
Boris Zbarsky
14f26fccf6 Bug 1449631 part 8. Remove nsIDOMEventTarget::GetEventTargetParent. r=smaug
MozReview-Commit-ID: 5wQ2LYrjUxf
2018-04-05 13:42:41 -04:00
Alex Chronopoulos
2ef6a59abe Bug 1387454 - Create a MediaStreamGraph according to the given sample rate. r=padenot
MozReview-Commit-ID: 4YP8oWIVyjy

--HG--
extra : rebase_source : 54c83c0aa122fecc9e07868405e42d31b2172516
2018-04-03 20:02:15 +03:00
Boris Zbarsky
29d232e53f Bug 1447098 part 1. Rename FromContent on various DOM classes to FromNode. r=mystor
MozReview-Commit-ID: 202nkbmkwfR
2018-03-21 17:39:04 -04:00
Chris Pearce
73e887ad1f Bug 1445104 - Format HTMLMediaElement constructor with leading ',' instead of trailing. r=jya
MozReview-Commit-ID: DiRjKmtERGq

--HG--
extra : rebase_source : 7e4bbb5f00fb74408777d54478a30b84b494eb38
2018-03-13 13:41:46 +13:00
Chris Pearce
6747e4a735 Bug 1445104 - Remove HTMLMediaElement::{mStatsShowing,mMediaSecurityVerified} as they're unused. r=jya
MozReview-Commit-ID: LtKw4Hj3M0G

--HG--
extra : rebase_source : 1452b785ddc9fa6b689e8de15815f4b00ebed404
2018-03-13 13:33:42 +13:00
Chris Pearce
d25ff179d0 Bug 1445104 - Initialize HTMLMediaElement fields in class declaration. r=jya
This makes the constructor simpler.

MozReview-Commit-ID: 30CO1iBj4rH

--HG--
extra : rebase_source : e78668547df1d07daa99f697bb56452253c419a6
2018-03-13 13:32:05 +13:00
Chris Pearce
f589142a62 Bug 1434804 - Pause autoplayed media if they become audible. r=kamidphish
Our autoplay blocking is trivial to defeat; just mute or volume=0 a video,
play(), and then unmute, and then you're playing audibly.

So this patch makes us pause() media that become audible atfter playback
has started.

MozReview-Commit-ID: 2RAtbohMGJO

--HG--
extra : rebase_source : 021510102374185debc89610bc6027206a0af6fc
2018-03-12 13:05:04 +13:00
Videet
01ad0f3438 Bug 547707: replaced hardcoded strings by definitions in nsMimeTypes.h r=gerald
MozReview-Commit-ID: 6f85pRUe8Tg

--HG--
extra : rebase_source : f41797530bf9211f3fe875a5da860132f5bd2c7c
2018-03-06 17:43:57 +01:00
Emilio Cobos Álvarez
2988d4e66d Bug 1442207: Remove unneeded arguments to nsIMutationObserver. r=smaug
aDocument is always content->OwnerDoc().
aContainer is always content->GetParent().

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

MozReview-Commit-ID: 4xwPCOnhyIL
2018-03-01 22:45:17 +01:00
Dan Glastonbury
80cd024fd7 Bug 1440555 - P1: Allow setVisible to take effect before decoder creation. r=cpearce
MozReview-Commit-ID: GSNM6esm0fW

--HG--
extra : rebase_source : 89a9836a48a93f7dfc5ce78bc6fd8b2c11da9c0e
2018-02-27 14:33:41 +10:00
Ben Kelly
75bf35692e Bug 1440407 P2 Remove some unnecessary nsPIDOMWindowInner QI to nsIGlobalObject. r=mystor 2018-02-22 14:28:39 -08:00
Chris Pearce
0c49e7e1c3 Bug 1439473 - Improve logging of HTMLMediaElement JS API calls. r=kamidphish
To make it easier to tell what HTMLMediaElement API functions sites' JS is
calling, we should add more mozlogs. This will make it easier to figure out why
things aren't playing.

MozReview-Commit-ID: 9eVvkagGNgf

--HG--
extra : rebase_source : 153a68f27ec5c2b17c3c5a9e31d54b98ccc1a1ea
2018-02-15 16:39:44 +13:00
Csoregi Natalia
0380e6fef4 Backed out changeset 2d7a7976ee3a (bug 1439473) for bustage HTMLMediaElement.cpp:4032. CLOSED TREE 2018-02-22 04:43:29 +02:00
Chris Pearce
c1c1fadb94 Bug 1439473 - Improve logging of HTMLMediaElement JS API calls. r=kamidphish
To make it easier to tell what HTMLMediaElement API functions sites' JS is
calling, we should add more mozlogs. This will make it easier to figure out why
things aren't playing.

MozReview-Commit-ID: 9eVvkagGNgf

--HG--
extra : rebase_source : 6f117a036fc5ce10413660fb9fd5d418d74e159d
2018-02-15 16:39:44 +13:00
Adrian Wielgosik
244e676451 Bug 1438956 - Modify HTMLMediaElement::Seek to avoid undefined behavior. r=bz
Previously, in IsInRanges, aIntervalIndex could have values between -1..length-1.
After the change, the values are in range 0..length, which makes it possible to use unsigned ints and avoid UB.

MozReview-Commit-ID: 39SIzXRHv91

--HG--
extra : rebase_source : d0efebb4bc13694eb7d2048cd2eae2d6386238cf
2018-02-17 19:29:43 +01:00
Adrian Wielgosik
8cb213f738 Bug 1438956 - Add inline Start/End TimeRanges methods for C++ users. r=bz
MozReview-Commit-ID: DcLsYyKV7WX

--HG--
extra : rebase_source : 1891f87a72380ed6f57d1790659c10ea416ccf15
2018-02-16 19:36:40 +01:00
Adrian Wielgosik
d729e5e045 Bug 1438956 - Remove nsIDOMTimeRanges. r=bz
MozReview-Commit-ID: DAgQ0OkSxkq

--HG--
extra : rebase_source : e995b4d76186032fc048bc7b63f4e1e2aee046b4
2018-02-16 19:34:28 +01:00
Kyle Machulis
4040ae7b11 Bug 1407040 - Remove C++ usage of nsIDOMHTMLMediaElement; r=bz
MozReview-Commit-ID: 6MGS4UqKwrU

--HG--
extra : rebase_source : 19fe880afb9a7a0a7ff2405c8144cdb96b9fd5aa
2018-02-14 21:22:38 -08:00
Kyle Machulis
b8e88868d6 Bug 1407040 - Change HTMLMediaElement QIs to FromContent calls; r=bz
MozReview-Commit-ID: JoHA0LbJnu9

--HG--
extra : rebase_source : c33c0d456ec5aeb7fec9867f5a55a401ec5ddf1e
2018-02-14 21:17:45 -08:00
Kyle Machulis
9e159ac69d Bug 1407040 - Change HTMLMediaElement XPCOM Enums to WebIDL Enums; r=bz
MozReview-Commit-ID: 55GnbaL2HKl

--HG--
extra : rebase_source : 5bb6c927443bf6adcfe594e69bd70c3b597b9ea4
2018-02-14 19:23:32 -08:00
Chris Pearce
595dccd4e7 Bug 1431674 - Backed out changeset 9d197f1860e6. r=backout
MozReview-Commit-ID: wP0aucXgzA

--HG--
extra : rebase_source : ad67234e7dff431c875bce5aac5b88e3c497dc78
2018-02-07 15:28:48 +13:00
Chris Pearce
6609188b9e Bug 1431674 - Backed out changeset 3e22200b7e83. r=backout
The changes in bug 1324883 regressed YouTube, so back them out.

The changes in bug 1324883 were trying to cause the media cache to be cleared
on tab close and on CTRL+F5 reload (i.e. a bypass cache-reload) but they are
causing problems on YouTube,  which doesn't use the media cache and instead
uses MSE.

MozReview-Commit-ID: Hx2cehZ2wm1

--HG--
extra : rebase_source : fa0bd85570746e60341e8e2d3f874f9bd30c0232
2018-02-07 15:28:07 +13:00
Andreas Pehrson
85ded5b958 Bug 1299515 - Plumb MediaStreamTrack enabled state to sources. r=jib
MozReview-Commit-ID: Eg1g9JtLmOz

--HG--
extra : rebase_source : 73057e1093d487736f69addca346b05c48d8d280
2017-11-10 15:55:42 +01:00
Andrea Marchesini
c6da271117 Bug 1425458 - Resource timing entries Workers - part 0 - NS_NewChannel, r=smaug
* * *
Bug 1425458 - Resource timing entries Workers - part 10 - Correct parameters in NS_NewChannel in nsDataObj.cpp, r=me
2018-01-24 17:17:31 +01:00
Brindusan Cristian
368c3d5b6b Backed out 12 changesets (bug 1425458) for mochitest failures on WorkerPrivate.cpp on a CLOSED TREE
Backed out changeset 11997de13778 (bug 1425458)
Backed out changeset 100b9d4f36bc (bug 1425458)
Backed out changeset a29e9dbb8c42 (bug 1425458)
Backed out changeset b96d58fd945c (bug 1425458)
Backed out changeset f140da44ba68 (bug 1425458)
Backed out changeset af56400233d9 (bug 1425458)
Backed out changeset 7034af4332e4 (bug 1425458)
Backed out changeset f70500179140 (bug 1425458)
Backed out changeset 793bbfc23257 (bug 1425458)
Backed out changeset 2efb375a8ffc (bug 1425458)
Backed out changeset 07e781e37451 (bug 1425458)
Backed out changeset e875f3702a5f (bug 1425458)
2018-01-24 20:47:48 +02:00
Andrea Marchesini
6480b95ba3 Bug 1425458 - Resource timing entries Workers - part 0 - NS_NewChannel, r=smaug 2018-01-24 17:17:31 +01:00
Chris Peterson
37efe4d0e6 Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe

--HG--
extra : rebase_source : cfec2d96faeb11656d86d760a34e0a04cacddb13
extra : intermediate-source : 6176724d63788b0fe8caa3f91607c2d93dbaa7ec
extra : source : eebbb0600447f9b64aae3bcd47b4be66c02a51ea
2017-11-05 19:37:28 -08:00
Honza Bambas
c3f3b8d161 Bug 1391277 - Investigative logging in CSP: log when 'upgrade-insecure-requests' CSP is added to the CSP context, r=bz 2018-01-11 10:57:00 +02:00
Kilik Kuo
811a2496ae Bug 1429284 - Expose compositor dropped frame count to HTMLMediaElement's debug info. r=jwwang
MozReview-Commit-ID: GYtHxdsGSk1

--HG--
extra : rebase_source : 2ba90d5899c2a268879722476da81e9a07b83a88
2018-01-10 12:07:47 +08:00
Emilio Cobos Álvarez
c8eb630ebe Bug 1423990: Move the last few attribute-related methods outside of nsIContent. r=bz
MozReview-Commit-ID: 8JZuS6O8f8W
2017-12-25 17:50:10 +01:00
Emilio Cobos Álvarez
ffdf5d2cb5 Backout changeset e43f568b3e9a (bug 1423990) because some OSX-only code still doesn't build. r=me 2017-12-25 12:55:45 +01:00
Emilio Cobos Álvarez
c0959b2955 Bug 1423990: Move the last few attribute-related methods outside of nsIContent. r=bz
MozReview-Commit-ID: 8JZuS6O8f8W

--HG--
extra : rebase_source : 09b82acb4f3d69e8a4345457ab217443bc28d6e2
2017-12-07 19:13:50 +01:00
Gerald Squelart
1b357db99b Bug 1407810 - Use DDLogger in media stack - r=jwwang
Mostly-mechanical additions:
- Log constructions&destructions, usually by just inheriting from
  DecoderDoctorLifeLogger, otherwise with explicit log commands (for internal
  classes for which DecoderDoctorTraits can't be specialized),
- Log links between most objects, e.g.: Media element -> decoder -> state
  machine -> reader -> demuxer -> resource, etc.

And logging some important properties and events (JS events, duration change,
frames being decoded, etc.)

More will be added later on, from just converting MOZ_LOGs, and as needed.

MozReview-Commit-ID: KgNhHSz35t0

--HG--
extra : rebase_source : dd7206e350e32671adc6f3b9e54ebf777251de2c
2017-10-10 17:55:27 +11:00
Gerald Squelart
16a9a0b9d7 Bug 1407810 - Implement HTMLMediaElement::Moz{Enable,Request}DebugLog - r=jwwang
MozReview-Commit-ID: 7Hhy6qBVjDk

--HG--
extra : rebase_source : 5eb33db2c13a4add3bef693af1e558b256732599
2017-10-16 16:18:58 +11:00
JW Wang
2f2083875c Bug 1422677. P2 - remove the side effect of MediaDecoder::CanPlayThrough(). r=bechen,gerald
We calculate 'canplaythrough' in ChannelMediaDecoder::DownloadProgressed() and
send updates to MDSM.

MozReview-Commit-ID: KAeDciPAUKs

--HG--
extra : rebase_source : 64d7705fb5ca6b1003664ac313ad1ae0ab1bbea6
2017-12-01 14:34:58 +08:00
Andreas Pehrson
8d4be05939 Bug 1419363 - Switch to WeakPtr. r=jib
--HG--
extra : rebase_source : 7148328b61e25c3eac983e41f1ece633bf2206bf
2017-12-01 10:52:18 -05:00
Alastor Wu
d7ce5bde2b Bug 1415478 - part2 : allow autoplay for non-audible media content and video without audio content. r=jwwang
Per UX spec, we would allow non-audible media (volume 0, muted, video without audio track)
to autoplay.

MozReview-Commit-ID: HKUyt5Jt4sH

--HG--
extra : rebase_source : 83e53a0035d72984494948f131a5d6e516baa577
2017-11-30 10:50:21 +08:00
Alastor Wu
258e1d56df Bug 1420488 - part1 : bless media if media has started playing before. r=jwwang
If the media has started playing before, bless it and it would always be allowed
to autoplay.

MozReview-Commit-ID: 4GqMARLXULU

--HG--
extra : rebase_source : 2fdb3937156147755f8e387b1d84311ae1d37ce4
2017-11-29 18:59:56 +08:00
Sebastian Hengst
c4e3d3a858 Backed out 2 changesets (bug 1420488) for eslint failures in toolkit/content/tests/browser/browser_autoplay_policy_play_twice.js. r=backout
Backed out changeset 92bd0fcb67d5 (bug 1420488)
Backed out changeset 0f211029517c (bug 1420488)
2017-11-29 17:31:28 +02:00
Alastor Wu
28c25979d7 Bug 1420488 - part1 : bless media if media has started playing before. r=jwwang
If the media has started playing before, bless it and it would always be allowed
to autoplay.

MozReview-Commit-ID: 28X4TmG25aJ

--HG--
extra : rebase_source : 3fd7cb16da9e7f925ad7020fb74c48537e08a996
2017-11-29 18:05:56 +08:00
Kilik Kuo
fea69fe34f Bug 1419897 - Crash in mozilla::dom::HTMLMediaElement::RemoveMediaKeys. r=jwwang
The process of |TryRemoveMediaKeysAssociation()| is a 2-step async procedue in mainthread.
mMediaKeys might be set to null inside |NotifyOwnerDocumentActivityChanged()| in between
|TryRemoveMediaKeysAssociation| and |RemoveMediaKeys|.

MozReview-Commit-ID: HtiADt3UTvp

--HG--
extra : rebase_source : 9eff95040b3e900fb778187e4e432bce0b41396b
2017-11-28 23:06:34 +08:00
Sebastian Hengst
706ac3aea0 Backed out 3 changesets (bug 1415478) for frequently asserting in own test test_autoplay_policy.html at MediaDecoderStateMachine.cpp:989. r=backout
Backed out changeset 6ba103fe1caf (bug 1415478)
Backed out changeset df6721a3584f (bug 1415478)
Backed out changeset 8a802839959b (bug 1415478)

--HG--
extra : rebase_source : be4296b1b36005195897de5544941b58895de661
2017-11-27 19:57:34 +02:00
Alastor Wu
a6a6078915 Bug 1415478 - part2 : allow autoplay for non-audible media content and video without audio content. r=jwwang
Per UX spec, we would allow non-audible media (volume 0, muted, video without audio track)
to autoplay.

MozReview-Commit-ID: HKUyt5Jt4sH

--HG--
extra : rebase_source : 97315d90fa46a16289135ac7490bd0dab651d682
2017-11-27 19:20:15 +08:00
Alastor Wu
62e836ef58 Bug 1420192 - when disable autoplay, allow script calls play() once user triggered load() or seek(). r=jwwang
This patch is mainly reverting the changing of bug1382574 part3, but not all the same.

Since youtube would call load() when user clicks to play, and then call play()
later. For the old pref (checking user-input-play), we should still allow the
following play() even it's not triggered via user input. It's also same for
seeking, Youtube would call play() after seeking completed.

In this patch, we would allow the script-calling once play() if user has called load()
or seek() before that.

MozReview-Commit-ID: 1UcxRCVfhnR

--HG--
extra : rebase_source : c72212ebf29ea624128a8190dab67e1197f1f198
2017-11-27 10:55:02 +08:00
dluca
85d0512151 Backed out 3 changesets (bug 1415478) for frequently asserting at dom/media/MediaDecoderStateMachine.cpp:1009 on a CLOSED TREE
Backed out changeset 447d895b350d (bug 1415478)
Backed out changeset d855c032c823 (bug 1415478)
Backed out changeset 6739012c4bdf (bug 1415478)
2017-11-24 18:50:53 +02:00
Alastor Wu
35a99cd8d3 Bug 1415478 - part2 : allow autoplay for non-audible media content and video without audio content. r=jwwang
Per UX spec, we would allow non-audible media (volume 0, muted, video without audio track)
to autoplay.

MozReview-Commit-ID: HKUyt5Jt4sH

--HG--
extra : rebase_source : fa8d1bfd2fb667e974dbe499d7f8215273d4fa10
2017-11-24 11:14:26 +08:00
Kris Maglione
1c66345e09 Bug 1415352: Part 1a - Pass subject principal through to ParseAttribute. r=bz
This is necessary in order to parse style attributes using the subject
principal of the caller, rather than defaulting to the page principal.

MozReview-Commit-ID: GIshajQ28la

--HG--
extra : rebase_source : 5dba46f61d70ec647cae16383b62961ac72d2f47
2017-11-01 20:35:52 -07:00
JW Wang
60838e86a4 Bug 1417869. P2 - abort the load algorithm early if media not allowed to load. r=jya
MozReview-Commit-ID: DUxyo4ywCPW

--HG--
extra : rebase_source : 8a33ac2d50e4fc7a1ccad6447063745c77744aeb
2017-11-21 14:02:13 +08:00
Alastor Wu
fe30dc5702 Bug 1382574 - part3 : remove HTMLMediaElement::mHasUserInteraction. r=jwwang
We won't need to check the whether the media element is interacted with user for
autoplay anymore.

MozReview-Commit-ID: 2tll9LtGyVR

--HG--
extra : rebase_source : 0047f482c2932e7063fc556ce8c306ff276efbfd
2017-11-22 00:33:23 +08:00
Alastor Wu
5acb978a09 Bug 1382574 - part1 : create new class AutoplayPolicy to handle autoplay logic. r=jwwang
AutoplayPolicy is used to manage autoplay logic for all kinds of media,
including MediaElement, Web Audio and Web Speech.

MozReview-Commit-ID: R1TxMkarIw

--HG--
extra : rebase_source : 8c608a1d12c8e205391a91f22e1532bc4f2c8f16
2017-11-22 00:33:16 +08:00
Andreas Pehrson
d29c6d7f9e Bug 1208378 - Distinguish track sinks on whether their presence allows a source to stop. r=jib
There are currently two types of sinks for a MediaStreamTrackSource.
Actual MediaStreamTracks and HTMLMediaElement::StreamCaptureTrackSource.
A source needs actual tracks as sinks to not stop() the underlying source.

A StreamCaptureTrackSource, however, should not count toward keeping a source
alive (otherwise HTMLMediaElement.mozCaptureStream() would prevent track.stop()
from working on the track feeding the media element).

MozReview-Commit-ID: 9MBAyZFZUIQ

--HG--
extra : rebase_source : a73f182b95281baf4f44f7ae82158e4a6bce42eb
2017-11-10 15:08:02 +01:00
Andreas Pehrson
167e43c316 Bug 1208378 - Implement MediaStreamTrack's muted state and events. r=jib,smaug
MozReview-Commit-ID: 1Sp9utMnWXI

--HG--
extra : rebase_source : f2d1036ab37ed9882c0bb9aa1d7b7d68eb7799e4
2017-11-06 19:03:52 +01:00
Andreas Pehrson
2b9f5cc3cc Bug 1208378 - Make HTMLMediaElement register its Sink. r=jib
This is a drive-by fix in that it is not directly related to what the bug is
solving. However, making HTMLMediaElement register as a sink is important,
and pairing it with the WeakPtr<Sink> patch reduces risk greatly.

MozReview-Commit-ID: 7pMDw3MG0ZB

--HG--
extra : rebase_source : e2f2b3a12b9921373518d94a083adda23bfe853b
2017-11-06 18:08:26 +01:00
Timothy Guan-tin Chien
93fb9c8b32 Bug 1327097 - Part III, Trap mouse/touch/pointer events in audio/video element, r=smaug
This patch implements HTMLMediaElement::GetEventTargetParent and set
aVisitor.mCanHandle to false to mouse/touch/pointer events, when
the media control is present. This tells the event dispatcher that
these events are supposed to be handled exclusively by the
videocontrol binding within the media element, and should not
dispatch nor consumed by the content.

MozReview-Commit-ID: BXWZX9SYsuC

--HG--
extra : rebase_source : 5d6633a2e1a456d2d619b6f68498065d94c68c40
2017-11-17 11:07:12 +08:00
JW Wang
1f62c1d92b Bug 1417869. P3 - pass descriptive messages to NetworkError(). r=jya
MozReview-Commit-ID: 6yaFJvXG3g8

--HG--
extra : rebase_source : 2d1c851098be7eb880a01432c504c6db96d86756
extra : source : a30f9699f49687b23d4ccf955d7a0af8ce0c7653
2017-11-17 11:07:30 +08:00
JW Wang
5e22f505ad Bug 1417869. P2 - pass descriptive messages to NotifyLoadError(). r=jya
MozReview-Commit-ID: JGPOsLvUJFX

--HG--
extra : rebase_source : dd69055ba99457b83b7a55dc95c7eb39483ca0cb
extra : source : aac781526979f1c57b19f839fc90638a998e204d
2017-11-17 10:46:33 +08:00
JW Wang
232dbce4f6 Bug 1417869. P1 - show more descriptive messages for MEDIA_ERR_SRC_NOT_SUPPORTED when SelectResource() fails. r=jya
MozReview-Commit-ID: CySbHaJCaC5

--HG--
extra : rebase_source : fa907c6347b7c65e0b3196bbd370e7154307e645
extra : source : a393280da765a4602aa1486db8f891cf0fe188ee
2017-11-17 10:32:41 +08:00
Gurzau Raul
d274011903 Backed out 3 changesets (bug 1327097) for eslint failures toolkit/content/tests/widgets/test_videocontrols.html:228 r=backout on a CLOSED TREE
Backed out changeset 09c0a4c56c78 (bug 1327097)
Backed out changeset c0c5ee67b3ef (bug 1327097)
Backed out changeset 82a6e4dc5da7 (bug 1327097)
2017-11-16 14:23:20 +02:00
Timothy Guan-tin Chien
59cbfa1e3d Bug 1327097 - Part III, Trap mouse/touch/pointer events in audio/video element, r=smaug
This patch implements HTMLMediaElement::GetEventTargetParent and set
aVisitor.mCanHandle to false to mouse/touch/pointer events, when
the media control is present. This tells the event dispatcher that
these events are supposed to be handled exclusively by the
videocontrol binding within the media element, and should not
dispatch nor consumed by the content.

MozReview-Commit-ID: BXWZX9SYsuC

--HG--
extra : rebase_source : e9922ac6064c953ee233d6829e84bc7828518b43
2017-11-16 17:06:36 +08:00
Kilik Kuo
382d21250c Bug 1369548 - HTMLMediaElement::SetMediaKeys should continue working even the decoder is shutting down. r=cpearce
The MediaKeys status inside a HTMLME cannot be reflected correctly if the mSetCDMRequest is disconnected in HTMLME::ShutdownDecoder.
This may happen when a page calls load() or sets new src right after setting MediaKeys to null.

MozReview-Commit-ID: 3BZOmw7BNFO

--HG--
extra : rebase_source : f06ae54944133e8e48471e71f0bb8fe46290cca8
2017-11-15 12:32:50 +08:00
Alastor Wu
147fdb715c Bug 1336400 - part3 : move all autoplay checks to CanActivateAutoplay(). r=jwwang
1. move all checks to CanActivateAutoplay()
2. don't cache the pref's value in advance, it might cause wrong result
   if user changes pref after media was binded to tree.

MozReview-Commit-ID: 3BeOeaq9wGa

--HG--
extra : rebase_source : 74085dce2852d0a608f6455bd0b9337b8223fa20
2017-11-13 18:43:55 +08:00
Alastor Wu
3afdf8f65d Bug 1336400 - part2 : remove MozAutoplayEnabled attribute from HTMLMediaElement. r=smaug
MozReview-Commit-ID: FK5F2zkXRjT

--HG--
extra : rebase_source : 73620e7323e938e47e69b996e2c8aa2fc1e549f7
2017-11-13 18:42:47 +08:00
Chung-Sheng Fu
dcc7fc01d6 Bug 1372073 - Spoof MediaStreamTrack. r=arthuredelstein,jib,smaug
MozReview-Commit-ID: 71UOGrJ9cgm

--HG--
extra : rebase_source : 50cf31f478fd3b97219f468fb8cb59132ff7e0b6
2017-10-13 11:57:25 +08:00
Chris Pearce
8bddf869cf Bug 1416663 - Move Gecko/HTMLMediaElement specific stuff out of VideoFrameContainer. r=jwwang
MozReview-Commit-ID: 4giNMi8qsTZ

--HG--
extra : rebase_source : 0f9e33c3704aa3925635d2290a5e18f9eebd2b74
2017-11-13 16:09:23 +13:00
James Cheng
91159e3d56 Bug 1416141 - Remove Telemetry VIDEO_EME_PLAY_SUCCESS. r=kikuo
MozReview-Commit-ID: BtiD2tUmbE9

--HG--
extra : rebase_source : 56b23930ea492c67f8c5fbc2a56d77dc7b4cf4af
2017-11-10 14:49:37 +08:00
Mats Palmgren
770a2228d1 Bug 1414666 part 2 - A few formatting improvements after mass conversion of PresContext()->PresShell() to PresShell(). r=emilio
MozReview-Commit-ID: FoEnINS0Jbk
2017-11-09 03:00:48 +01:00
Mats Palmgren
1c2b8c222e Bug 1414666 part 1 - Add nsIFrame::PresShell() for convenient access to the shell. r=emilio
MozReview-Commit-ID: 8FPTPKWyVtY
2017-11-09 03:00:48 +01:00
Kilik Kuo
3f546c6285 Bug 1395922 - [P3] Make HTMLMediaElement::SetMediaKeys asynchronously. r=cpearce
MozReview-Commit-ID: 5M8CTHMsmIh

--HG--
extra : rebase_source : daec666760097b73a7dfad2960881173127eb69e
2017-11-03 20:14:17 +08:00
Kilik Kuo
87d6236019 Bug 1395922 - [P1] Refactor code and move them into specific functions. r=cpearce
MozReview-Commit-ID: 9lwRH66Wllp

--HG--
extra : rebase_source : 8202008d996adb19547a46f051427053c1d48193
2017-11-03 14:35:32 +08:00
Kyle Machulis
7308e0e9fe Bug 1412414 - Remove nsIDOMHTMLSourceElement; r=bz
MozReview-Commit-ID: 3ZK1GremntX

--HG--
extra : rebase_source : c25b1a449596130ec8d2e7936f52cc651988af85
2017-10-27 15:00:42 -07:00
Csoregi Natalia
978711ce7c Merge autoland to mozilla-central r=merge a=merge 2017-11-06 12:44:18 +02:00
Csoregi Natalia
6bf19d4921 Backed out 6 changesets (bug 1395922) for failing Media tests test_eme_sample_groups_playback.html and test_eme_sample_groups_playback.html r=backout a=backout
Backed out changeset f856af63682e (bug 1395922)
Backed out changeset f59a7e727f39 (bug 1395922)
Backed out changeset 9cd31c6a8e2c (bug 1395922)
Backed out changeset d46f952f94f8 (bug 1395922)
Backed out changeset f786d928b1e0 (bug 1395922)
Backed out changeset bacda0f99f71 (bug 1395922)
2017-11-06 12:34:02 +02:00
Chris Pearce
ed7f41cdf7 Bug 1414680 - Make MediaDecoderOwner::DispatchAsyncEvent() return void. r=jwwang
The return value is unchecked in MediaDecoder, and we only ever returned
NS_OK anyway. And we if the dispatch fails, we can't really do anything;
dispatching an "error" event probably won't work.

MozReview-Commit-ID: 67K6Mjft6tY

--HG--
extra : rebase_source : ad644e8b97fc11488983bc05e18c9941b3c5b062
2017-11-05 09:12:44 +01:00
JW Wang
3fc794b919 Bug 1414121. P2 - let MediaDecoder::DumpDebugInfo() return a MozPromise. r=jya
MozReview-Commit-ID: Fau4ysdlwwa

--HG--
extra : rebase_source : cdf67d359301eed57935c761cad5c74e2ffdabb7
extra : source : f0e2e3449a80e507c3cc041f6ba87fce6455ffc5
2017-11-03 10:46:02 +08:00
JW Wang
7fd4aabd85 Bug 1414121. P1 - let mozDumpDebugInfo() return a promise. r=bz
MozReview-Commit-ID: Klfr3AYdSCG

--HG--
extra : rebase_source : 9f2c89306a274b1d563f53413df668d9b11c7b90
extra : source : 93969bf54c26fd097807f1280db5b6deb20c01db
2017-11-03 10:33:27 +08:00
Kilik Kuo
55be93073e Bug 1395922 - [P3] Make HTMLMediaElement::SetMediaKeys asynchronously. r=cpearce
MozReview-Commit-ID: 5M8CTHMsmIh

--HG--
extra : rebase_source : c1b186f6da354b79036dea7175960e1e33a2eaae
2017-11-03 20:14:17 +08:00
Kilik Kuo
83013776bf Bug 1395922 - [P1] Refactor code and move them into specific functions. r=cpearce
MozReview-Commit-ID: 9lwRH66Wllp

--HG--
extra : rebase_source : 8126fe384c7a6f1c07bdb438507823527f14a4bf
2017-11-03 14:35:32 +08:00
Emilio Cobos Álvarez
dd634e3981 Bug 1411612: Kill nsINode::eCONTENT. r=bz
MozReview-Commit-ID: ESlOqlwhcHI

--HG--
extra : rebase_source : fe6a02469dca1e50c24ba166e15e39160ab4551b
2017-10-25 17:19:11 +02:00
Yoshi Huang
26c9043304 Bug 1407498 - Don't query loadingprincipal in common case. r=baku
We queried 'loadingprincipal' attribute on the common call path, however
this should be queried if it's loaded by System Principal.

Also rename loadingprincipal to triggeringprincipal
2017-10-24 10:13:31 +08:00
bechen@mozilla.com
35226e578f Bug 1183495 - part2: Remove mozSrcObject in MediaElement. r=jwwang
MozReview-Commit-ID: 2bmYnu2RDdt

--HG--
extra : rebase_source : e6abd85f933463d2dfe73528c63be8736d2a1577
2017-10-20 11:23:07 +08:00
JW Wang
88f4b35bef Bug 1410225 - return the pending seek promise for SeekToNextFrame() when a seek is already in action. r=gerald
MDSM doesn't reset the decoding pipeline of MFR when doing NextFrameSeek and
therefore fails the assertion by requesting video data while MFR is still seeking.

We put the fix in the media element because it doesn't make sense to do
NextFrameSeek while another seek is already in action.

MozReview-Commit-ID: D6FSiNWHrLU

--HG--
extra : rebase_source : 7793fa32fb5fe3406f235aa43908a8a96202ee6c
2017-10-20 16:37:35 +08:00
JW Wang
2eb358fe5c Bug 1409649 - shut down the decoder when MEDIA_ERR_ABORTED is received. r=gerald
http://searchfox.org/mozilla-central/rev/dca019c94bf3a840ed7ff50261483410cfece24f/dom/html/HTMLMediaElement.cpp#1395-1400

We need to shut down the decoder after setting network state to EMPTY.
Otherwise the decoder will keep loading and change ready state to HAVE_METADATA
or greater and then fail the assertion in AssertReadyStateIsNothing().

MozReview-Commit-ID: FpMDVAJHTS5

--HG--
extra : rebase_source : 5fc7a189a47b462f7c5f89da650aeac171639664
2017-10-18 16:08:33 +08:00
JW Wang
ae3c66bf3c Bug 1409270. P4 - remove mWatchManager. r=gerald
MozReview-Commit-ID: G45ezz1o2x8

--HG--
extra : rebase_source : bbce38d798f908a97d44a698a87f8cee041bdbb5
2017-10-17 15:10:23 +08:00
JW Wang
2bb3bf8087 Bug 1409270. P3 - remove WatchTarget from the base class of HTMLMediaElement::StreamListener. r=gerald
MozReview-Commit-ID: B7fmYlJShEC

--HG--
extra : rebase_source : b4b7074b725af9976325745789715bbe0145c129
2017-10-17 15:06:58 +08:00
JW Wang
29cc270f1b Bug 1409270. P2 - replace the use of mWatchManager.ManualNotify() with direct calls. r=gerald
MozReview-Commit-ID: I0t0Wp9lnAa

--HG--
extra : rebase_source : 363dc8277b4ac1c5769fe17924c768907b2bca61
2017-10-17 14:52:38 +08:00
JW Wang
99ae0ae477 Bug 1409270. P1 - remove Watchable<> from mDownloadSuspendedByCache. r=gerald
MozReview-Commit-ID: K0hhlOKN399

--HG--
extra : rebase_source : 22aa4e513f91b86dffd436e0efbb275ee1fb44bb
2017-10-17 14:46:15 +08:00
JW Wang
e66b8fb19a Bug 1409263. P2 - remove Watchable<> from HTMLMediaElement::mReadyState. r=gerald
MozReview-Commit-ID: EYXY7FDfYvd

--HG--
extra : rebase_source : 188f81254eae6ab94a46b5c956b3b95cb5a3b16e
2017-10-17 14:28:56 +08:00
JW Wang
8c82ac93d1 Bug 1409263. P1 - fix logs in ChangeReadyState(). r=gerald
The old code doesn't print readyState changes when networkState is EMPTY.

MozReview-Commit-ID: 8rWUbpsmNuu

--HG--
extra : rebase_source : 509ebf1ae94e2618e63c764ef8fdf0869cb60582
2017-10-17 14:18:27 +08:00
Sebastian Hengst
32f7c8fec3 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 1h3kZyrtqSt
2017-10-17 11:45:16 +02:00
Chris Pearce
2ba329dae6 Bug 1409178 - Move DecoderTraits::CreateDecoder() to ChannelMediaDecoder::Create(). r=jwwang
Now DecoderTraits doesn't need to depend on ChannelMediaDecoder.

MozReview-Commit-ID: D4AUiV2eGWy

--HG--
extra : rebase_source : 38e6c4cdd0f7e32473c6945550bca6fd0cc72bf2
2017-10-16 22:55:26 +02:00
JW Wang
a8587b5ae3 Bug 1408482 - fix build error. r=gerald
MozReview-Commit-ID: HIq2zZROKRA

--HG--
extra : rebase_source : c4dd09508bd71e8079066d63085a6ac2dd6cd4e0
2017-10-17 10:55:11 +08:00
Kris Maglione
60d080b412 Bug 1404198: Part 2i - Switch to NS_NewTimer* in dom. r=njn
MozReview-Commit-ID: 8Oei6TuXNbu

--HG--
extra : rebase_source : 31c583c699790cbcf302064146d313ee8126ef0c
2017-10-15 23:15:40 -07:00
JW Wang
b99db097b4 Bug 1407895 - ensure mDecoder->Suspend() is called on a newly created decoder if mPausedForInactiveDocumentOrChannel is true. r=gerald
See comment 3 for the root cause.

MozReview-Commit-ID: CX5npKv2eWG

--HG--
extra : rebase_source : 085192f55b082f878d2f9915c24e89a56a981799
extra : source : 07f12b6df9d35eb3d215835a174504c70120b588
2017-10-13 11:58:05 +08:00
JW Wang
03ca7715a5 Bug 1407148 - add logs for debugging crashes. r=gerald
MozReview-Commit-ID: FgDbl2tCbEE

--HG--
extra : rebase_source : d94d5783a2a08022d8ef89f14f8f35c99ee124fe
extra : source : 9b4dfa4ccd83c2a933f65d422641c5a9c018ce5c
2017-10-12 10:46:13 +08:00
JW Wang
1a47dd3c0c Bug 1397708 - remove HTMLMediaElement::mBegun. See comment 12 for the root cause. r=cpearce
When network state is changed to IDLE, mBegun is also set to false. [1]
And then when HTMLMediaElement::DownloadResumed(false) is called, network
state is not changed to LOADING for mBegun is false [2]. This prevents us
from firing 'progress' events for the network state is IDLE.

See comment 12 for more details.

[1] http://searchfox.org/mozilla-central/rev/b53e29293c9e9a2905f4849f4e3c415e2013f0cb/dom/html/HTMLMediaElement.cpp#6077
[2] http://searchfox.org/mozilla-central/rev/b53e29293c9e9a2905f4849f4e3c415e2013f0cb/dom/html/HTMLMediaElement.cpp#5673

MozReview-Commit-ID: DOfqKZXAqaz

--HG--
extra : rebase_source : 881b632447d4a78461c235fffad37595f44cc095
extra : source : 2c01d77d3a7e605bf060e17d41afa86ee0f46396
2017-10-10 07:04:18 +08:00
Kris Maglione
ba5df86019 Bug 1406278: Part 5b - Use subject principal as triggering principal in <source> "src" attribute for <audio>/<video>. r=bz
MozReview-Commit-ID: zZCXpvs719

--HG--
extra : rebase_source : 0de7f2abe0f06a0992f7f6c27db5eb67e6085635
2017-10-05 15:28:22 -07:00
Kris Maglione
ca83a2c304 Bug 1406278: Part 5a - Use subject principal as triggering principal in <audio>/<video> "src" attribute. r=bz
MozReview-Commit-ID: A1JixlTeZGq

--HG--
extra : rebase_source : 011984908aaacf0b90ea6e67c265dcce7b1779c4
2017-10-05 14:47:09 -07:00
Kris Maglione
4275cd1039 Bug 1406278: Part 1 - Pass subject principal to SetAttribute and friends. r=bz
In order to tailor certain security checks to the caller that is attempting to
load a particular piece of content, we need to be able to attach an
appropriate triggering principal to the corresponding requests. Since most
HTML content is loaded based on attribute values, that means capturing the
subject principal of the caller who sets those attributes, which means making
it available to AfterSetAttr hooks.

MozReview-Commit-ID: BMDL2Uepg0X

--HG--
extra : rebase_source : 25e438c243700a9368c393e40e3a6002d968d6c8
2017-10-09 14:33:38 -07:00
Nicholas Nethercote
d225f7151b Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
JW Wang
49c2485657 Bug 1402584. P2 - reset readyState to HAVE_NOTHING before loading next source child. See comment 18 for the root cause. r=gerald on a CLOSED TREE
Also assert readyState is HAVE_NOTHING before creating a new decoder.

MozReview-Commit-ID: B0QACf96AA3

--HG--
extra : amend_source : ef4b41db04ee10f7eaae8f388d984ed0fd0863b5
2017-10-08 17:08:00 +02:00
JW Wang
f23594e114 Bug 1402584. P1 - Backed out changeset 442e8020e2ac. r=gerald
MozReview-Commit-ID: JqZJDTMyKGm
2017-10-08 17:07:55 +02:00
Sebastian Hengst
e25887767b Backed out changeset e17425d9f940 (bug 1402584) for frequent mda failures on Windows 10, e.g. in dom/media/test/test_seek-2.html. r=backout
--HG--
extra : amend_source : 6e736c36d615c4662faf63612ef72935eeaa27c9
2017-10-08 01:16:34 +02:00
Sebastian Hengst
1b9a243342 Backed out changeset e80105b6353d (bug 1402584) 2017-10-08 01:16:29 +02:00
JW Wang
f60e753628 Bug 1402584. P2 - reset readyState to HAVE_NOTHING before loading next source child. See comment 18 for the root cause. r=gerald
Also assert readyState is HAVE_NOTHING before creating a new decoder.

MozReview-Commit-ID: B0QACf96AA3

--HG--
extra : rebase_source : f89bd84b130273ff734471619485d5f12a83006d
extra : source : 9b63f9eaa250ebe7259cc7fab709aac00858aaf6
2017-10-07 09:05:56 +08:00
JW Wang
bc8e42651b Bug 1402584. P1 - Backed out changeset 442e8020e2ac. r=gerald
MozReview-Commit-ID: JqZJDTMyKGm

--HG--
extra : rebase_source : 944bc58aa562de066854668746e4af158d747484
extra : source : 394da3f085e52296e62af852add26e72fa688a62
2017-10-07 07:58:19 +08:00
JW Wang
e1a489f570 Bug 1405962. P2 - use thread-safe ref counting. r=gerald
These listeners will be AddRefed/Released off the main thread when
OMT data delivery is enabled.

MozReview-Commit-ID: CSOBgNNf3OW

--HG--
extra : rebase_source : d9085c6447e51d3aa9cad79fa1e25d986fdee792
extra : intermediate-source : 21be6f0003e6d3ccf4448e6574ea5d3122665155
extra : source : 8ce13766af359b5e55524e47ea74bcfc0e0133f8
2017-09-20 17:14:01 +08:00
JW Wang
06967bc27c Bug 1402584 - add logs for debugging. See comment 5 for the detail. r=gerald
MozReview-Commit-ID: 48zKkVt5hbK

--HG--
extra : rebase_source : 91a12ef83c5b2560eafe9f41226bfa87413aba92
2017-10-02 13:51:04 +08:00
bechen@mozilla.com
d262781541 Bug 1324883 - part2: Once a MediaElement receive document unload event, remove all MediaElements in gElementTable with the same uri. r=jwwang
MozReview-Commit-ID: 7Z0ouKsebp8

--HG--
extra : rebase_source : ffb52a12f9a31280dc3be1093b73099394fe7a17
2017-10-03 12:07:13 +08:00
bechen@mozilla.com
b6e091b3ea Bug 1324883 - Shutdow the decoder when receiving nsIWebProgressListener with flag LOAD_RELOAD_BYPASS_PROXY_AND_CACHE in docshell. r=jwwang,smaug
We register the nsIWebProgressListener at the root docshell(GetSameTypeRootTreeItem) to handle video element embedded in iframe.

MozReview-Commit-ID: D4CavLDAnKD

--HG--
extra : rebase_source : 93032297272bbfc8570dce0c8c13ea9f0d45f7a8
2017-10-03 12:07:09 +08:00
Florian Quèze
d906e37232 Bug 1401919 - Functions used after the seekToNextFrame promise should not be interpreted half the time, r=nbp. 2017-10-04 16:01:04 +02:00
Catalin Badea
f8162c4bfd Bug 651120 - Remove index argument from content removed/appended/inserted notifications. r=peterv 2017-10-03 11:09:08 +01:00
Wes Kocher
a341b32d06 Merge autoland to central, a=merge
MozReview-Commit-ID: 8B7y2ULc04
2017-09-26 17:11:14 -07:00
Andreas Pehrson
4279601af7 Bug 1296531 - Don't keep OutputMediaStreams with a null mStream member. r=jwwang
Fix after an observed nullptr deref on try where mOutputStreams contained an
object whose mStream member had been nulled out.

MozReview-Commit-ID: 4kL1choTeW3

--HG--
extra : rebase_source : e4a6f600a66f00a963b19bf74717246c5099a784
2017-08-24 19:02:28 +02:00
Yoshi Huang
c3e27f8363 Bug 1376971 - Part 4: query loadingprincipal in HTMLMediaElement. r=baku
Query loadingprincipal attribute on the media part.
2017-09-26 12:41:27 +08:00
JW Wang
16f3e9dd23 Bug 1401366. P2 - bail out Observe() if not subcribed per comment 2. r=kaku
MozReview-Commit-ID: 4LEBD3g0OwX

--HG--
extra : rebase_source : c31cb94eeb52b06a3f327492b918e93c82b83616
2017-09-20 17:51:10 +08:00
JW Wang
ed0a449136 Bug 1401366. P1 - format HTMLMediaElement::ShutdownObserver. r=kaku
MozReview-Commit-ID: K9ZYTedgUjC

--HG--
extra : rebase_source : 6a2537f27c91962ecfadd3b7489c9cdcf852da42
2017-09-20 17:46:34 +08:00
Andreas Pehrson
5e6a6af6f3 Bug 1296531 - Remove MediaStream blocking logic from HTMLMediaElement. r=jesup
MediaStreamGraph only implements the blocking notifications for SourceMediaStreams,
but the MediaStream that gets attached as srcObject on a media element is always
a TrackUnionStream. Hence, this code is unused and can be removed.

MozReview-Commit-ID: 6DKtCGNsZec

--HG--
extra : rebase_source : 0b3b7156a9e2e70933edadcc0a59c8fa81d49913
2017-05-08 18:41:28 +02:00
JW Wang
2df8570673 Bug 1399358 - call mDecoder->CanPlayThrough() so MDSM has a chance to exit buffering quickly. r=gerald
MozReview-Commit-ID: A5e3A8HV2ih

--HG--
extra : rebase_source : a70fdd615b178b9d110b66d64c874c55295d401d
2017-09-13 12:43:33 +08:00
James Cheng
073b9ad68c Bug 1398102 - [Part1] canPlayType should return 'maybe' if the codec parameter is empty. r=gerald
MozReview-Commit-ID: BmzIUOuaTj9

--HG--
extra : rebase_source : d23d70aeb6097c0ba31f810240594ca4daa52f20
2017-09-11 17:17:55 +08:00
Sebastian Hengst
797770f328 Backed out changeset 939ecf1b80cb (bug 1398102) for failing mda's dom/media/test/test_can_play_type_wave.html. r=backout 2017-09-12 11:03:50 +02:00
James Cheng
ae3bc947af Bug 1398102 - canPlayType should return 'maybe' if the codec parameter is empty. r=gerald
MozReview-Commit-ID: BmzIUOuaTj9

--HG--
extra : rebase_source : 530b713cf259920b65181d9459323f5f14bae39e
2017-09-11 17:17:55 +08:00
Catalin Badea
393fe4f3b1 Bug 1380621 - Change the order of member variables in HTMLMediaElement. r=cpearce
This reduces the size of the object by avoiding memory alignment padding.
2017-09-06 11:20:00 +01:00
Catalin Badea
42e06700b2 Bug 1380621 - Use node pointer for HTMLMediaElement::mSourcePointer. r=cpearce
Using a pointer instead of an index helps us avoid some costly
operations such as IndexOf and GetChildAt with the upcoming changes from
bug 651120.
2017-09-06 11:16:23 +01:00
Kris Maglione
04acc0aace Bug 1396449: Part 2 - Use atoms to test WebExtension permissions. r=krizsa
The extension policy services uses atoms internally for permission names, so
using them directly rather than strings is considerably cheaper.

MozReview-Commit-ID: Io8EuOXHKVy

--HG--
extra : rebase_source : 577b4bdf7f899729e4cf92961a8e9e25bf886a72
2017-09-03 18:51:02 -07:00
Alastor Wu
24213ab2e7 Bug 1395359 - make sure all references value are set before we use them. r=cpearce
1. since setVolume would trigger updateWakelock(), we should set |mOuter| before that.
2. move outer as required parameter in its constructor.
3. should init all member varaibles which would be referenced by wakeLockWrapper before its initialization.

MozReview-Commit-ID: H9A3aCKp6eT

--HG--
extra : rebase_source : 5ba1c78b305cc0db125b43c29bff1389f3e9ddb1
2017-09-04 11:05:15 +08:00
JW Wang
29df163b4e Bug 1394705 - let HTMLMediaElement::MediaLoadListener implement nsIThreadRetargetableStreamListener. r=cpearce
This is required to use nsIThreadRetargetableRequest::RetargetDeliveryTo().

MozReview-Commit-ID: GFuAjovabpY

--HG--
extra : rebase_source : 4fbc7877f2548dcf0777c820ee724f41c46de688
2017-08-29 14:28:13 +08:00
Andrew McCreight
78807d8776 Bug 1391005 - Eliminate NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED. r=peterv
Replace it with NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION, because it
has been the same for a while.

MozReview-Commit-ID: 5agRGFyUry1

--HG--
extra : rebase_source : 5388c56b2f6905c6ef969150f0c5b77bf247624d
2017-08-29 16:02:48 -07:00
Alastor Wu
5aaf1c6ce7 Bug 1373888 - part5 : only request audio wake lock when it's audible. r=cpearce
No need to prevent sleeping for non-audible audio.

MozReview-Commit-ID: 6p3azSUWTU2

--HG--
extra : rebase_source : 89ff9d1753ac4a23269ec100920e18020ab5aafb
2017-08-29 15:25:44 +08:00
Alastor Wu
6a6ee2a0d7 Bug 1373888 - part3 : rename the topic of the wake lock. r=cpearce
For knowing the wake lock usage more clearly, we should use more specific topic name.

In OSX, you can use "$ pmset -g assertions" to check all the wakelock.
In Windows, using "$ powser -energy" to generate the energy report.

MozReview-Commit-ID: rAXnkxTvLc

--HG--
extra : rebase_source : 42ebf204673d3c913739f64c71c24af20d37c95d
2017-08-29 10:54:28 +08:00
Alastor Wu
71ad2fdb83 Bug 1373888 - part2 : remove the timer which was used for b2g. r=cpearce
The timer was added for the b2g issue, now we can remove it.

MozReview-Commit-ID: BNjIghImCzC

--HG--
extra : rebase_source : c5490d417b2d40619eb7092dfc21b19a99982a1c
2017-08-29 10:54:25 +08:00
Alastor Wu
f570c3c5ec Bug 1373888 - part1 : remove useless function. r=cpearce,smaug
These functions didn't be used by anyone, remove them.

MozReview-Commit-ID: BLj8GsVp1gR

--HG--
extra : rebase_source : 1b7eee86c62314401c2374a2979ba2a42fda2490
2017-08-29 10:54:18 +08:00
JW Wang
f8f989dd93 Bug 1394313 - replace use of nsAutoPtr with UniquePtr in MediaDecoderOwner.h. r=cpearce
MozReview-Commit-ID: 49lyvMzg7oY

--HG--
extra : rebase_source : b83cd03b0026c73d0293ef937a3c2544349f464d
2017-08-28 14:10:35 +08:00
Tom Ritter
ae930caa79 Bug 1393535 Fix unused variable warnings in dom/ r=cpearce
MozReview-Commit-ID: 1Ql20AHx1Jz

--HG--
extra : rebase_source : 21105b4fc70953ecdccd4c1e7fe9c9d5564795c4
2017-08-24 11:52:36 -05:00
Chris Pearce
4ffa31745b Bug 1392498 - Move TimeIntervals to dom::TimeRanges conversion into TimeRanges class. r=jya
If TimeUnits.h includes mozilla/dom/TimeRanges.h, then the build ends up
pulling in the Gecko DOM bindings, which pulls in a whole lot of JavaScript and
DOM bindings code. That makes it trickier to import GeckoMedia into Servo, and
makes Gecko's build slower, so move the code to convert TimeIntervals into
dom::TimeRanges.

Also remove an extraneous "virtual" and add "const" to some functions in TimeRanges.

MozReview-Commit-ID: BLeehaf9gCE

--HG--
extra : rebase_source : 84ef054cf8fd5b4434dc761a1b0a39803d3231f5
2017-08-21 15:08:25 +12:00
JW Wang
c62c2c21b4 Bug 1392919. P3 - remove unused code and fix naming. r=gerald
MozReview-Commit-ID: 36PqGtOpAbf

--HG--
extra : rebase_source : 9ff9234f1f5db9151808d9a2ee33ced6d9e089c6
2017-08-23 14:42:25 +08:00
Alastor Wu
556554c6f5 Bug 1382780 - part2 : separate the value of actual playback rate and media element's attribute. r=cpearce
According to [1], we should separate the value of actual playback rate and media elemenet's attribute.
But still keep a MAX and MIN threshold to control the highest and lowser playback rate for decoder.

[1] http://w3c-test.org/html/semantics/embedded-content/media-elements/playing-the-media-resource/playbackRate.html

MozReview-Commit-ID: EGCa4yrNXO6

--HG--
extra : rebase_source : d03b831eeebb3e3e3bb0759394eab0116be0f1d5
2017-08-24 16:58:45 +08:00
Alastor Wu
8417fdd605 Bug 1382780 - part1 : return NS_ERROR_DOM_NOT_SUPPORTED_ERR for the negative playback rate. r=cpearce
According to [1], we should return NotSupportedError for the negative playback rate.

[1] https://github.com/w3c/web-platform-tests/pull/6522

MozReview-Commit-ID: KoqDkBmP3h9

--HG--
extra : rebase_source : ddf1cdd03a980686df6d6613e1bd507bf37d8337
2017-08-24 16:58:42 +08:00
JW Wang
2834911596 Bug 1391170 - lessen the assertion in AddMediaElementToURITable() so we can move MediaDecoder::GetResource() to private. r=gerald
If AddMediaElementToURITable() is called after the decoder Load failed, mDecoder
will be reset and it is sufficient to assert mDecoder only.

MozReview-Commit-ID: 58WT8zFeiFj

--HG--
extra : rebase_source : 712579b544e9a9ce971778b85795d06e58bd4ea5
extra : intermediate-source : 470e2d8a20010e11d7a7dce5540957e89439811e
extra : source : 59f4b2b33212794aa1cf3e8782737a2d4af8c241
2017-08-17 15:41:22 +08:00
JW Wang
934fb866da Bug 1390443. P3 - rewrite the logic about mWaitingForKey. r=cpearce
This fixes the bug where mWaitingForKey is reset only when mPaused is false.
We should reset mWaitingForKey to NOT_WAITING_FOR_KEY when the key is
available and decoding can continue.

http://w3c.github.io/encrypted-media/#resume-playback

MozReview-Commit-ID: LjIhe9cTsdg

--HG--
extra : rebase_source : d2d351928d1994ee3ae688d4e798ab204ab1609c
extra : intermediate-source : e8700b4344aa29f6b2c52ee4d920d59db4012577
extra : source : 41e1c10f32465ca0abac61bbfd555ee89a8c67a1
2017-08-17 10:47:07 +08:00
JW Wang
6ce3e3224c Bug 1390443. P1 - don't change nextFrameStatus when MDSM reaches the end of playback. r=cpearce
Instead, MediaDecoder::NextFrameStatus() checks IsEnded() and returns
NEXT_FRAME_UNAVAILABLE to ensure we have HAVE_CURRENT_DATA when playback
is ended on the main thread.

This will fix the timing issue (comment 0) which causes 'waiting' to fire.

MozReview-Commit-ID: 7O21x2q0lb8

--HG--
extra : rebase_source : bbd898edfb5f4a47a5062dd2bc916c911caf0c8e
extra : intermediate-source : 2b3e413db02a7aad00d13fdf274b346bccafc414
extra : source : 6f60fad11b65e75b456e128f8414fe2ea545455f
2017-08-16 15:33:58 +08:00
Sebastian Hengst
b3764d9e0a Backed out changeset 4f8ac9b281da (bug 1390443) for failing web-platform-tests, e.g. /encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html. r=backout 2017-08-21 10:20:24 +02:00
Sebastian Hengst
ddc7c75859 Backed out changeset 5bcf66374df8 (bug 1390443) 2017-08-21 10:19:34 +02:00
JW Wang
56bf968d96 Bug 1390443. P3 - rewrite the logic about mWaitingForKey. r=cpearce
This fixes the bug where mWaitingForKey is reset only when mPaused is false.
We should reset mWaitingForKey to NOT_WAITING_FOR_KEY when the key is
available and decoding can continue.

http://w3c.github.io/encrypted-media/#resume-playback

MozReview-Commit-ID: LjIhe9cTsdg

--HG--
extra : rebase_source : 0563bf7831ed66bcdb5bec741b1366243eed49f9
extra : intermediate-source : e8700b4344aa29f6b2c52ee4d920d59db4012577
extra : source : 41e1c10f32465ca0abac61bbfd555ee89a8c67a1
2017-08-17 10:47:07 +08:00
JW Wang
a69873c9a9 Bug 1390443. P1 - don't change nextFrameStatus when MDSM reaches the end of playback. r=cpearce
Instead, MediaDecoder::NextFrameStatus() checks IsEnded() and returns
NEXT_FRAME_UNAVAILABLE to ensure we have HAVE_CURRENT_DATA when playback
is ended on the main thread.

This will fix the timing issue (comment 0) which causes 'waiting' to fire.

MozReview-Commit-ID: 7O21x2q0lb8

--HG--
extra : rebase_source : 0a676ef7278214a707c97687311a73da8bcd983e
extra : intermediate-source : 2b3e413db02a7aad00d13fdf274b346bccafc414
extra : source : 6f60fad11b65e75b456e128f8414fe2ea545455f
2017-08-16 15:33:58 +08:00
Jean-Yves Avenard
329ff1fecf Bug 1391666 - P3. Change to HAVE_ENOUGH_DATA when possible. r=cpearce
In bug 1312886, we made sure that readyState would never become HAVE_ENOUGH_DATA if we were waiting for a key.
However, this is in effect useless as the next call to ChangeReadyState would have reset mWaitingForKey.

In practice, it only meant that we delayed the change from HAVE_FUTURE_DATA to HAVE_ENOUGH_DATA until the next call to UpdateReadyState.

MozReview-Commit-ID: 2wnMeN8xxCS

--HG--
extra : rebase_source : f5b0fa50ead1565882c3bf8ba245702987784d8a
2017-08-18 21:00:08 +02:00
Jean-Yves Avenard
34fd923c04 Bug 1391666 - P2. Reset mWaitingForKey when we have data and autoplay attribute is set r=cpearce
By default, a media element that has never played is in paused mode. As such, we need to reset mWaitingForKey to NOT_WAITING_FOR_KEY otherwise, readyState will never become HAVE_ENOUGH_DATA.

MozReview-Commit-ID: EIi3Crt4zHl

--HG--
extra : rebase_source : e9f9ad4136020db7db081b5c125f664e1c7bda20
2017-08-18 19:20:48 +02:00
Chris Pearce
fcd4613526 Bug 1390748 - Pre-declare MediaDecoder in HTMLMediaElement. r=jwwang
I noticed that touching MediaDecoder rebuilds a lot of seemingly unrelated
code. This is because HTMLMediaElement includes MediaDecoder.h, and
HTMLMediaElement is included in a number of places. Having HTMLMediaElement.h
predeclare rather than include fixes it.

MozReview-Commit-ID: I0vrPgqvvge

--HG--
extra : rebase_source : 505f9dce979aad0529b07d2c046dca5028af6de6
2017-08-15 17:09:06 +12:00
Carsten "Tomcat" Book
2b8080e2fc Backed out changeset 4a31e4302e03 (bug 1390748)
--HG--
extra : rebase_source : 9571466ebc151a9788a380008c5d8941e3e24665
2017-08-17 08:35:30 +02:00
Chris Pearce
60751f0b79 Bug 1390748 - Pre-declare MediaDecoder in HTMLMediaElement. r=jwwang
I noticed that touching MediaDecoder rebuilds a lot of seemingly unrelated
code. This is because HTMLMediaElement includes MediaDecoder.h, and
HTMLMediaElement is included in a number of places. Having HTMLMediaElement.h
predeclare rather than include fixes it.

MozReview-Commit-ID: I0vrPgqvvge

--HG--
extra : rebase_source : 505f9dce979aad0529b07d2c046dca5028af6de6
2017-08-15 17:09:06 +12:00
Phil Ringnalda
38ce1ea2a0 Backed out 10 changesets (bug 1390748) for build bustage
Backed out changeset 02b36ee5fb17 (bug 1390748)
Backed out changeset 84e8bf01c856 (bug 1390748)
Backed out changeset fc8989be30f3 (bug 1390748)
Backed out changeset 14d421ace6cc (bug 1390748)
Backed out changeset 7dadac869038 (bug 1390748)
Backed out changeset 0e77809e7bc2 (bug 1390748)
Backed out changeset bf78a8dce9c5 (bug 1390748)
Backed out changeset 5fa77990472e (bug 1390748)
Backed out changeset 5d3b637d2485 (bug 1390748)
Backed out changeset 634fe076d134 (bug 1390748)

MozReview-Commit-ID: Dxio8vXDCHg
2017-08-16 21:33:10 -07:00
Chris Pearce
a0917579b4 Bug 1390748 - Pre-declare MediaDecoder in HTMLMediaElement. r=jwwang
I noticed that touching MediaDecoder rebuilds a lot of seemingly unrelated
code. This is because HTMLMediaElement includes MediaDecoder.h, and
HTMLMediaElement is included in a number of places. Having HTMLMediaElement.h
predeclare rather than include fixes it.

MozReview-Commit-ID: I0vrPgqvvge

--HG--
extra : rebase_source : 366d4e34e9c425b478b4c9058e27c9a32de36515
2017-08-15 17:09:06 +12:00
Chris Pearce
f2902bdf82 Bug 1390406 - Remove unnecessary includes in dom/media/mediasource. r=jya
MozReview-Commit-ID: 1aTncGfBicu

--HG--
extra : rebase_source : 8ad085eb81d195732c385718c283b4752e5e3c80
2017-08-15 16:13:00 +12:00
Matthew Gregan
526a07e856 Bug 1388236 - Remove B2G-only AudioChannel code from dom/audiochannel. r=alwu 2017-08-10 13:00:09 +12:00
Matthew Gregan
3efbb6fca4 Bug 1388236 - Remove B2G-only AudioChannel code from HTMLMediaElement. r=jwwang 2017-08-10 13:00:08 +12:00
Matthew Gregan
2f8cc7804c Bug 1388236 - Remove B2G-only AudioChannel code from MSG. r=padenot 2017-08-10 13:00:08 +12:00
Matthew Gregan
89fde0ce0f Bug 1388236 - Remove B2G-only AudioChannel code from media playback. r=jwwang 2017-08-10 13:00:07 +12:00
Honza Bambas
e372b0a90f Bug 1377206 - Explicitly disable throttling of media HTTP responses, r=cpearce
--HG--
extra : rebase_source : 01f913c44c7ce02bedd733faaf11262353f3461d
2017-08-04 04:38:00 +02:00
JW Wang
b2d75fa057 Bug 1383628. P5 - move CanClone() from MediaResource to BaseMediaResource. r=gerald
1. we move clone related methods to BaseMediaResource which is the only cloneable sub-class of MediaResource.
2. add CanClone() to ChannelMediaDecoder to reduce the dependency on MediaResource for HTMLMediaElement.
   MediaResource should be internal details to MediaDecoder.

MozReview-Commit-ID: Hl2nAiuyTO0

--HG--
extra : rebase_source : 43dd9ee33ef2ef2e9093eb6b264dc174379d61d2
extra : source : 978ded48a90f2c407c4545486243acabf492736a
2017-08-04 15:29:55 +08:00
JW Wang
a8a917b8bb Bug 1383628. P2 - move the call to Load() into Clone(). r=gerald
MozReview-Commit-ID: 9k8BXLwAepI

--HG--
extra : rebase_source : 52d3fb871bad53691585e774c2745f328592eb3f
extra : source : cdc492f87aa634eaaae0809aacb261ad25be7b08
2017-08-03 17:47:23 +08:00
Sebastian Hengst
765cc1b925 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: JhesEg4Bxjy
2017-08-04 19:28:27 +02:00
Bill McCloskey
2273c53b75 Bug 1364821 - Introduce AbstractThread::AutoEnter and remove main thread's AbstractThread::GetCurrent() (r=jwwang)
MozReview-Commit-ID: FSLVn7xe3sq
2017-08-03 14:19:02 -07:00
JW Wang
be3df48dc5 Bug 1384831. P5 - remove unused arguments from HLSDecoder::Load(). r=gerald
MozReview-Commit-ID: JsULuDcMiNa

--HG--
extra : rebase_source : c9c78f57a4fb2278143c8c69343d5e8a97765bbb
extra : source : e019f6fc241c8f35d58a8aa27854159b09dd21f9
2017-07-27 02:54:53 +08:00
JW Wang
197591cec8 Bug 1384831. P2 - rewrite HTMLMediaElement::InitializeDecoderForChannel() and move HLSDecoder creation code to it. r=gerald
Since we will remove ChannelMediaDecoder from HLSDecoder's base class, we can't
create HLSDecoder in InstantiateDecoder which returns a ChannelMediaDecoder.

MozReview-Commit-ID: 9wcrIVIOZFp

--HG--
extra : rebase_source : cf0e55a6a0eafeb4e34ff1eed5bb7e1d97d73e80
extra : source : edefbf5d7179c5390bd2a25fbbcd025095d39555
2017-07-26 15:49:03 +08:00