Add state to autoplay-media to block video

RESOLVED FIXED in Firefox 69

Status

()

enhancement
P1
normal
RESOLVED FIXED
3 months ago
15 days ago

People

(Reporter: daleharvey, Assigned: daleharvey)

Tracking

(Blocks 4 bugs, Regression)

unspecified
Firefox 69
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox68+ wontfix, firefox69+ fixed)

Details

Attachments

(3 attachments)

No description provided.

Hey Johann

You mentioned it would be simpler to add a 3rd state here, I was wondering if there was any other permissions that do so I can follow their example. Cheers

Assignee: nobody → dharvey
Blocks: 1541283
Flags: needinfo?(jhofmann)

Two examples are: https://searchfox.org/mozilla-central/rev/6dab6dad9cc852011a14275a8b2c2c03ed7600a7/browser/modules/SitePermissions.jsm#247-248

The permission manager is really just an origin -> integer storage, so you can just invent some constant integer to use here, it shouldn't differ much from other permission manager usage, just a different value. Important to remember:

  • Please define the constant in some public interface that can be accessed from JS and C++ instead of hard-coding a magic number
  • Don't use the numbers 0 - 2, because these are obviously taken already. You may also want to avoid number 8 since that is already taken by (duh) both examples mentioned above.

Let me know if you have any other question :)

Flags: needinfo?(jhofmann)
Priority: -- → P1

So thought I was finished with this, noticed a small bug and it is somewhat unravelling

We have our constants for Autoplay, ALLOWED=0, BLOCKED=1 [1], There are also constants for the permissionManager [2] where ALLOW_ACTION=1, DENY_ACTION=2 and there are a bunch of places where we use these interchangebly like:

https://searchfox.org/mozilla-central/source/browser/modules/SitePermissions.jsm#760 or
https://searchfox.org/mozilla-central/source/dom/base/nsContentUtils.cpp#3477

I found and fixed a few areas where we were doing something wrong and more things broke. I think while we use ALLOWED=0, BLOCKED=1 for getDefault, in the rest of the code we are actually using ALLOW=1 and DENY=2, verifying that now and if so we should change the nsIAutoplay definitions

[1] https://searchfox.org/mozilla-central/source/dom/media/nsIAutoplay.idl#14
[2] https://searchfox.org/mozilla-central/source/netwerk/base/nsIPermissionManager.idl#60

So yup confirmed that for the default, we use 0=ALLOW, 1=BLOCK, but for the site exceptions 1=ALLOW, 2=BLOCK. It doesnt currently cause a bug, but is quite confusing and when we add a new state it does start to cause bugs

Just changing the nsIAutoplay definitions is going to be tricky because we already have a bunch of users with this pref set, I dont suspect there is a magical way to migrate prefs currently is there?

So to fix the above problems I set the new constants to distinct constants (while still supporting reading the old values)

This has caused some issues in the front end permissions code that has a lot of assumptions that myPermission.BLOCKED/ALLOW lines up with SitePermission...BLOCK/ALLOW but those issues we were going to hit anyway (we would like BLOCKED_ALL to be treated like BLOCKED), there are some TODO's where I am still trying to figure out if there is a cleaner way to do that.

Also still needs tests but wanted to be sure about the approach and not block everything else on them

(In reply to Dale Harvey (:daleharvey) from comment #3)

We have our constants for Autoplay, ALLOWED=0, BLOCKED=1 [1], There are also constants for the permissionManager [2] where ALLOW_ACTION=1, DENY_ACTION=2 and there are a bunch of places where we use these interchangebly like:

What problem you encountered? As we won't compare nsIAutoPlay's attributes directly with the nsPermissionManager's attributes, it won't cause any comparing confusion. Could you explain more details about the issue you got?

When checking the permission, we usually use helper functions to return true or false [1], so I don't know why we have to expose the permissionManager's Allow and Deny?

Thank you!

[1] https://searchfox.org/mozilla-central/rev/e7d9a8749303b39dadcc0e18ea0d60a570a68145/dom/media/AutoplayPolicy.cpp#66-78

Flags: needinfo?(dharvey)

The problems were all in the frontend code (although I found comparing to ALLOW_ACTION very confusing), for example if we built a list using ALLOW=0, BLOCK=1, BLOCK_ALL=3 then the 0 is considered UNKNOWN and ignored by

https://searchfox.org/mozilla-central/source/browser/components/preferences/sitePermissions.js#272

if you fix that, then the ALLOW permission would always end up getting deleted instead set due to

https://searchfox.org/mozilla-central/source/browser/modules/SitePermissions.jsm#547

It would be possible (and possibly less of an intrusive change) to continue with having 0=ALLOW for the media.autoplay.default pref and 1=ALLOW for the site specific permission, but for less future confusion I think we should probably align these so they match. Although would like Johann to make the call on that one.

Flags: needinfo?(dharvey) → needinfo?(jhofmann)

(In reply to Dale Harvey (:daleharvey) from comment #8)

The problems were all in the frontend code (although I found comparing to ALLOW_ACTION very confusing)

I would prefer to create a wrapper in front-end side to handle the state convertion, because it seems weird to me to introduce the unneccesary complexity to platform side but actually the issue is not in the platform side.

for example if we built a list using ALLOW=0, BLOCK=1, BLOCK_ALL=3 then the 0 is considered UNKNOWN and ignored by

https://searchfox.org/mozilla-central/source/browser/components/preferences/sitePermissions.js#272

The states here comes from SitePermissions.getAvailableStates, which would eventually check the state in gPermissionObject [1].

The states in autoplay-media permission object are still SitePermission's states, it's not nsIAutoplay's property.

[1] https://searchfox.org/mozilla-central/rev/e7d9a8749303b39dadcc0e18ea0d60a570a68145/browser/modules/SitePermissions.jsm#771

I would prefer to create a wrapper in front-end side to handle the state convertion,
because it seems weird to me to introduce the unneccesary complexity to platform
side but actually the issue is not in the platform side.

The states in autoplay-media permission object are still SitePermission's states, it's not nsIAutoplay's property.

Yup, however SitePermissions / PermissionManager have no concept of BLOCKED_ALL, that is going to have to come from Autoplay so the platform is going to have the complexity either way, it either:

  1. Does as this patch currently does and handle old + new values for nsIAutoplay constants and does all its checks against nsIAutoplay constants

  2. Tests ALLOW_ACTION, DENY_ACTION against PermissionManager (where Autoplay has similiar named constants but off by 1) and tests BLOCKED_ALL against Autoplay

The latter is probably less changes, I will try it out but I do think its asking for more confusion down the line

(In reply to Dale Harvey (:daleharvey) from comment #10)

Yup, however SitePermissions / PermissionManager have no concept of BLOCKED_ALL, that is going to have to come from Autoplay so the platform is going to have the complexity either way, it either:

Is it possible to add a new state in SitePermission for BLOCKED_ALL? From [1], it seems that we already have some states which are used for specific permissions.

[1] https://searchfox.org/mozilla-central/rev/e7d9a8749303b39dadcc0e18ea0d60a570a68145/browser/modules/SitePermissions.jsm#243-248

Yup its possible, I wasnt sure about the tradeoff of adding specific permission behaviour to SitePermissions vs having the Permanager call out to the specific permissions more (plus I really do not like the fact that the site permissions and the global pref arent aligned), but will do another version with that approach

So redid the patch adding BLOCKED_ALL to site permissions. I still feel bad that the global pref doesnt line up with the site permission, however the patch is an awful lot cleaner

Flags: needinfo?(jhofmann)

As mentioned in https://bugzilla.mozilla.org/show_bug.cgi?id=1549607, the "Settings" panel that Autoplay is now in doesnt have the ability to add or remove permissions, only to search existing ones.

The text given for that part doesnt make sense, I will be looking to add that functionality in https://bugzilla.mozilla.org/show_bug.cgi?id=1549607, but in the meantime we are gonna need a new string that doesnt describe adding permissions

The panels you can view by clicking "Settings" @ about:preferences#privacy can give some examples

Flags: needinfo?(epang)
Posted image settings string.png

Hey Dale,

We can use the string in the spec:
"You can set exceptions and specify if certain websites should not follow the default setting. Type the address of the site you want to manage and then click the ‘Add’ button and use the dropdown to change the setting."

Flags: needinfo?(epang)
Flags: needinfo?(dharvey)

Hey Eric

There is no "Add" button to click until https://bugzilla.mozilla.org/show_bug.cgi?id=1549607 is done which may take a while so need a string that doesnt reference the "Add" button, as mentioned the panel will be the same as the rest of the "Settings" where the input field is used to filter existing permissions

Flags: needinfo?(dharvey) → needinfo?(epang)

redirecting this NI to Ron A. since he's been handling it.

Flags: needinfo?(epang) → needinfo?(rakanowicz)

Also for Ron if your handling strings at the moment

https://bug1543812.bmoattachments.org/attachment.cgi?id=9066498

Has different strings for the same thing, "Block media with sound" and "Block audio", pretty sure we shouldnt be using different descriptions for exactly the same permission, assume I should be using "Block audio" but wanted to make sure

(In reply to Dale Harvey (:daleharvey) from comment #18)

Also for Ron if your handling strings at the moment

https://bug1543812.bmoattachments.org/attachment.cgi?id=9066498

Has different strings for the same thing, "Block media with sound" and "Block audio", pretty sure we shouldnt be using different descriptions for exactly the same permission, assume I should be using "Block audio" but wanted to make sure

Yes, let's use Block Audio, Block Audio and Video, and Allow Audio and Video (use the proper case)

Flags: needinfo?(rakanowicz)
Pushed by dharvey@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d64cb52ebf88
Add ability to block all autoplay. r=johannh,alwu,flod,fluent-reviewers

Backed out changeset d64cb52ebf88 (Bug 1543812) for xpcshell failure at parser/xml/test/unit/test_sanitizer.js.

Push with failure: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&classifiedState=unclassified&selectedJob=250049873&revision=d64cb52ebf88093b7c4b40597a795ed5d46a2214

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=250062937&repo=autoland&lineNumber=6358

Backout link: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&classifiedState=unclassified&selectedJob=250049873&revision=fcd42bba429590de1b36736ae07a1525195cc1f4

00:55:49     INFO -  TEST-START | parser/xml/test/unit/test_sanitizer.js
00:55:49  WARNING -  TEST-UNEXPECTED-FAIL | parser/xml/test/unit/test_sanitizer.js | xpcshell return code: 1
00:55:49     INFO -  TEST-INFO took 287ms
00:55:49     INFO -  >>>>>>>
00:55:49     INFO -  PID 19508 | Unable to load \\untrusted-startup-test-dll.dll; LoadLibraryW failed: 126
00:55:49     INFO -  (xpcshell/head.js) | test MAIN run_test pending (1)
00:55:49     INFO -  TEST-PASS | parser/xml/test/unit/test_sanitizer.js | run_test - [run_test : 24] ensure places database is successfully initialized. - true == true
00:55:49     INFO -  TEST-PASS | parser/xml/test/unit/test_sanitizer.js | run_test - [run_test : 38] "<html><head></head><body></body></html>" == "<html><head></head><body></body></html>"
00:55:49     INFO -  TEST-PASS | parser/xml/test/unit/test_sanitizer.js | run_test - [run_test : 38] "<html><head></head><body>&amp;ADz&amp;AGn&amp;AG0&amp;AEf&amp;ACA&amp;AHM&amp;AHI&amp;AGO&amp;AD0&amp;AGn&amp;ACA&amp;AG8Abg&amp;AGUAcgByAG8AcgA9AGEAbABlAHIAdAAoADEAKQ&amp;ACAAPABi</body></html>" == "<html><head></head><body>&amp;ADz&amp;AGn&amp;AG0&amp;AEf&amp;ACA&amp;AHM&amp;AHI&amp;AGO&amp;AD0&amp;AGn&amp;ACA&amp;AG8Abg&amp;AGUAcgByAG8AcgA9AGEAbABlAHIAdAAoADEAKQ&amp;ACAAPABi</body></html>"
00:55:49     INFO -  TEST-PASS | parser/xml/test/unit/test_sanitizer.js | run_test - [run_test : 38] "<html><head></head><body>&amp;alert&amp;A7&amp;(1)&amp;R&amp;UA;&amp;&amp;&lt;&amp;A9&amp;11/script&amp;X&amp;&gt;</body></html>" == "<html><head></head><body>&amp;alert&amp;A7&amp;(1)&amp;R&amp;UA;&amp;&amp;&lt;&amp;A9&amp;11/script&amp;X&amp;&gt;</body></html>"
00:55:49     INFO -  TEST-PASS | parser/xml/test/unit/test_sanitizer.js | run_test - [run_test : 38] "<html><head></head><body>0? :postMessage(importScripts('data:;base64,cG9zdE1lc3NhZ2UoJ2FsZXJ0KDEpJyk'))</body></html>" == "<html><head></head><body>0? :postMessage(importScripts('data:;base64,cG9zdE1lc3NhZ2UoJ2FsZXJ0KDEpJyk'))</body></html>"
00:55:49     INFO -  TEST-PASS | parser/xml/test/unit/test_sanitizer.js | run_test - [run_test : 38] "<html><head></head><body></body></html>" == "<html><head></head><body></body></html>"
00:55:49     INFO -  TEST-PASS | parser/xml/test/unit/test_sanitizer.js | run_test - [run_test : 38] "<html><head></head><body></body></html>" == "<html><head></head><body></body></html>"
00:55:49     INFO -  TEST-PASS | parser/xml/test/unit/test_sanitizer.js | run_test - [run_test : 38] "<html><head></head><body></body></html>" == "<html><head></head><body></body></html>"
00:55:49     INFO -  TEST-PASS | parser/xml/test/unit/test_sanitizer.js | run_test - [run_test : 38] "<html><head></head><body></body></html>" == "<html><head></head><body></body></html>"
00:55:49     INFO -  TEST-PASS | parser/xml/test/unit/test_sanitizer.js | run_test - [run_test : 38] "<html><head></head><body><a>X</a></body></html>" == "<html><head></head><body><a>X</a></body></html>"
00:55:49     INFO -  <<<<<<<
00:55:49     INFO -  mozcrash Downloading symbols from: https://queue.taskcluster.net/v1/task/WyIjbrrYTkaWcL1DBp0JZw/artifacts/public/build/target.crashreporter-symbols.zip
00:55:53     INFO -  mozcrash Copy/paste: Z:\task_1559692202\build\win32-minidump_stackwalk.exe c:\users\task_1559692202\appdata\local\temp\xpc-other-ozfym0\b2606c93-af61-4c7d-b370-3ce0aea67c5a.dmp c:\users\task_1559692202\appdata\local\temp\tmpwd7ugu
00:56:00     INFO -  mozcrash Saved minidump as Z:\task_1559692202\build\blobber_upload_dir\b2606c93-af61-4c7d-b370-3ce0aea67c5a.dmp
00:56:00     INFO -  mozcrash Saved app info as Z:\task_1559692202\build\blobber_upload_dir\b2606c93-af61-4c7d-b370-3ce0aea67c5a.extra
00:56:00  WARNING -  PROCESS-CRASH | parser/xml/test/unit/test_sanitizer.js | application crashed [@ static unsigned int mozilla::dom::SiteAutoplayPerm(const class mozilla::dom::Document *)]
00:56:00     INFO -  Crash dump filename: c:\users\task_1559692202\appdata\local\temp\xpc-other-ozfym0\b2606c93-af61-4c7d-b370-3ce0aea67c5a.dmp
00:56:00     INFO -  Operating system: Windows NT
00:56:00     INFO -                    10.0.17134
00:56:00     INFO -  CPU: amd64
00:56:00     INFO -       family 6 model 85 stepping 4
00:56:00     INFO -       8 CPUs
00:56:00     INFO -  GPU: UNKNOWN
00:56:00     INFO -  Crash reason:  EXCEPTION_ACCESS_VIOLATION_READ
00:56:00     INFO -  Crash address: 0x20
00:56:00     INFO -  Process uptime: 0 seconds
00:56:00     INFO -  Thread 0 (crashed)
00:56:00     INFO -   0  xul.dll!static unsigned int mozilla::dom::SiteAutoplayPerm(const class mozilla::dom::Document *) [AutoplayPolicy.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 69 + 0x0]
00:56:00     INFO -      rax = 0x000068e1dd34c5bd   rdx = 0xffff81cc190ea402
00:56:00     INFO -      rcx = 0x0000000000000000   rbx = 0x000001c461a08980
00:56:00     INFO -      rsi = 0x000001c45907d800   rdi = 0x0000000000000000
00:56:00     INFO -      rbp = 0x0000000000000000   rsp = 0x000000083a1fcce0
00:56:00     INFO -       r8 = 0x000001c45908f000    r9 = 0x74606564632d7860
00:56:00     INFO -      r10 = 0xfefefefefefefeff   r11 = 0x8080808080808080
00:56:00     INFO -      r12 = 0x0000000000000000   r13 = 0x000001c461a08980
00:56:00     INFO -      r14 = 0x0000000058cec400   r15 = 0x0000000000000000
00:56:00     INFO -      rip = 0x00007ff83d898396
00:56:00     INFO -      Found by: given as instruction pointer in context
00:56:00     INFO -   1  xul.dll!mozilla::dom::AutoplayPolicy::IsAllowedToPlay(mozilla::dom::HTMLMediaElement const &) [AutoplayPolicy.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 223 + 0xac]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fcd40   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83acb3cba
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -   2  xul.dll!void mozilla::dom::HTMLMediaElement::UpdatePreloadAction() [HTMLMediaElement.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 2445 + 0x5]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fcdc0   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83acb395f
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -   3  xul.dll!mozilla::dom::HTMLMediaElement::BindToTree(mozilla::dom::BindContext &,nsINode &) [HTMLMediaElement.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 4085 + 0x8]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fce00   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83d82094d
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -   4  xul.dll!nsINode::InsertChildBefore(nsIContent *,nsIContent *,bool) [nsINode.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 1253 + 0x8]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fce40   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83abab2fd
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -   5  xul.dll!static nsresult nsHtml5TreeOperation::Append(class nsIContent *, class nsIContent *, class nsHtml5DocumentBuilder *) [nsHtml5TreeOperation.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 176 + 0x15]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fcff0   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83b0eda73
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -   6  xul.dll!void nsHtml5TreeBuilder::appendElement(void *, void *) [nsHtml5TreeBuilderCppSupplement.h:71d3424191f63751068077270a32f9f3aeb026b8 : 529 + 0xb]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fd040   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83b0d9c5e
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -   7  xul.dll!void nsHtml5TreeBuilder::appendToCurrentNodeAndPushElementMayFoster(class nsHtml5ElementName *, class nsHtml5HtmlAttributes *) [nsHtml5TreeBuilder.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 4240 + 0xe]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fd080   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83b0dacf2
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -   8  xul.dll!void nsHtml5TreeBuilder::startTag(class nsHtml5ElementName *, class nsHtml5HtmlAttributes *, bool) [nsHtml5TreeBuilder.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 0 + 0x10]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fd0e0   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83b0d3491
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -   9  xul.dll!int nsHtml5Tokenizer::emitCurrentTagToken(bool, int) [nsHtml5Tokenizer.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 350 + 0x12]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fd1a0   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83b0d306d
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  10  xul.dll!static int nsHtml5Tokenizer::stateLoop<nsHtml5SilentPolicy>(int, char16_t, int, char16_t *, bool, int, int) [nsHtml5Tokenizer.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 1064 + 0xa]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fd1e0   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83b0cd3d0
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  11  xul.dll!nsHtml5Tokenizer::tokenizeBuffer(nsHtml5UTF16Buffer *) [nsHtml5Tokenizer.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 451 + 0x16]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fd2c0   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83b0c9c06
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  12  xul.dll!nsresult nsHtml5StringParser::Tokenize(const class nsTSubstring<char16_t> & const, class mozilla::dom::Document *, bool) [nsHtml5StringParser.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 101 + 0x8]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fd330   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83b2d65b1
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  13  xul.dll!nsContentUtils::ParseDocumentHTML(nsTSubstring<char16_t> const &,mozilla::dom::Document *,bool) [nsContentUtils.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 4691 + 0x15]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fd3b0   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83c9fd9b7
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  14  xul.dll!nsParserUtils::Sanitize(nsTSubstring<char16_t> const &,unsigned int,nsTSubstring<char16_t> &) [nsParserUtils.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 60 + 0xb]
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fd410   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83c6ab784
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  15  xul.dll!XPTC__InvokebyIndex + 0x72
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fd4d0   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x00007ff83f7ff142
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  16  0x83a1fd5f8
00:56:00     INFO -      rbx = 0x000001c461a08980   rbp = 0x0000000000000000
00:56:00     INFO -      rsp = 0x000000083a1fd4e0   r12 = 0x0000000000000000
00:56:00     INFO -      r13 = 0x000001c461a08980   r14 = 0x0000000058cec400
00:56:00     INFO -      r15 = 0x0000000000000000   rip = 0x000000083a1fd5f8
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  17  xul.dll!round + 0x89e59
00:56:00     INFO -      rsp = 0x000000083a1fd500   rip = 0x00007ff83f88ead9
00:56:00     INFO -      Found by: stack scanning
00:56:00     INFO -  18  xul.dll!round + 0x88f80
00:56:00     INFO -      rsp = 0x000000083a1fd518   rip = 0x00007ff83f88dc00
00:56:00     INFO -      Found by: stack scanning
00:56:00     INFO -  19  xul.dll!static bool XPCWrappedNative::CallMethod(class XPCCallContext & const, XPCWrappedNative::CallMode) [XPCWrappedNative.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 1157 + 0x337]
00:56:00     INFO -      rsp = 0x000000083a1fd520   rip = 0x00007ff83aa9a9b7
00:56:00     INFO -      Found by: stack scanning
00:56:00     INFO -  20  xul.dll!static bool XPC_WN_CallMethod(struct JSContext *, unsigned int, union JS::Value *) [XPCWrappedNativeJSOps.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 943 + 0xa]
00:56:00     INFO -      rsp = 0x000000083a1fd770   rip = 0x00007ff83aa99982
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  21  xul.dll!js::InternalCallOrConstruct(JSContext *,JS::CallArgs const &,js::MaybeConstruct) [Interpreter.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 540 + 0x175]
00:56:00     INFO -      rsp = 0x000000083a1fd8d0   rip = 0x00007ff83b3bc4dc
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  22  xul.dll!js::CallFromStack(JSContext *,JS::CallArgs const &) [Interpreter.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 599 + 0x98]
00:56:00     INFO -      rsp = 0x000000083a1fd9d0   rip = 0x00007ff83b3bd108
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  23  xul.dll!js::jit::DoCallFallback(JSContext *,js::jit::BaselineFrame *,js::jit::ICCall_Fallback *,unsigned int,JS::Value *,JS::MutableHandle<JS::Value>) [BaselineIC.cpp:71d3424191f63751068077270a32f9f3aeb026b8 : 3729 + 0x10]
00:56:00     INFO -      rsp = 0x000000083a1fda30   rip = 0x00007ff83babd6fb
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  24  0x184e4e8388f
00:56:00     INFO -      rsp = 0x000000083a1fdda0   rip = 0x00000184e4e8388f
00:56:00     INFO -      Found by: call frame info
00:56:00     INFO -  25  xul.dll!round + 0x51c90
00:56:00     INFO -      rsp = 0x000000083a1fddf8   rip = 0x00007ff83f856910
00:56:00     INFO -      Found by: stack scanning
Flags: needinfo?(dharvey)
Backout by dvarga@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/dd4f29419f51
Backed out changeset d64cb52ebf88 for xpcshell failure at parser/xml/test/unit/test_sanitizer.js. On a CLOSED TREE

So I looked at the wrong try results before pushing, apologies

Flags: needinfo?(dharvey)
Pushed by dharvey@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2dacf7539a2f
Add ability to block all autoplay. r=johannh,alwu,flod,fluent-reviewers
Type: defect → enhancement

ok sorry about that, once more

https://treeherder.mozilla.org/#/jobs?repo=try&revision=72641c73f072944cd6a351166c923f344afed7b5&selectedJob=250317973

The only 2 tests that didnt pass on a restart are far away from this code, fairly certain we are good this time, sorry for messing that up

Flags: needinfo?(dharvey)
Pushed by dharvey@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/75a6f48ca078
Add ability to block all autoplay. r=johannh,alwu,flod,fluent-reviewers
Status: NEW → RESOLVED
Closed: Last month
Resolution: --- → FIXED
Target Milestone: --- → Firefox 69
Depends on: 1557579

Too late for 68 at this point.

No longer depends on: 1557579
Regressed by: 1557579
Blocks: 1560634
Blocks: 1560635
Blocks: 1562601
You need to log in before you can comment on or make changes to this bug.