Commit Graph

40885 Commits

Author SHA1 Message Date
Birunthan Mohanathas
edbcd5e014 Bug 1185763 - Part 1: Always use mozilla::Move with nsTArray::MoveElementsFrom. r=froydnj 2015-08-11 08:29:46 -07:00
Birunthan Mohanathas
a727c82e51 Bug 1192023 - Make UpdateType an enum class. r=khuey 2015-08-06 14:34:39 -07:00
Birunthan Mohanathas
752bf80bb4 Bug 1192023 - Use enum class instead of CheckpointMode_ prefix. r=khuey 2015-08-06 14:34:35 -07:00
Birunthan Mohanathas
69151f6831 Bug 1192023 - Flatten away AppId enum. r=khuey 2015-08-06 14:34:33 -07:00
Birunthan Mohanathas
e95e1e7d13 Bug 1192023 - Use enum class instead of MaintenanceAction_ prefix. r=khuey 2015-08-06 14:34:29 -07:00
Birunthan Mohanathas
9f71a11dba Bug 1192023 - Use enum class instead of State_ prefix. r=khuey 2015-08-06 14:34:27 -07:00
Birunthan Mohanathas
39a3ef841c Bug 1105827 - Part 10: Fire change event for PermissionStatus objects. r=baku 2015-07-31 15:57:02 -07:00
Birunthan Mohanathas
fd1e77d8fa Bug 1105827 - Part 9: Add PermissionObserver to watch for perm-changed notifications. r=baku 2015-07-31 15:53:46 -07:00
Birunthan Mohanathas
7b8a267e19 Bug 1105827 - Part 8: Move permission checking into PermissionStatus. r=baku
This is in prepartion of a subsequent change where we will update the state
within PermissionStatus.
2015-07-31 15:53:10 -07:00
Birunthan Mohanathas
d6ccefe440 Bug 1105827 - Part 7: Add helpers to convert between PermissionName and permission type. r=baku 2015-07-31 15:49:59 -07:00
Birunthan Mohanathas
a1f31ea066 Bug 1105827 - Part 6: Add PermissionUtils.h for helper functions. r=baku 2015-07-31 15:49:55 -07:00
Kyle Huey
0bb53e0280 Bug 1179909: Build fix. r=me CLOSED TREE 2015-08-11 07:38:01 -07:00
Kit Cambridge
72909621aa Back out bug 1100863 and bug 1152264 for causing bug 1189729 on a CLOSED TREE. a=mhenretty,RyanVM
--HG--
extra : commitid : Knw3n5aF6IT
2015-08-11 07:30:38 -07:00
Kyle Huey
baee6469c5 Bug 1179909: Build fix. r=me CLOSED TREE 2015-08-11 06:54:49 -07:00
Bobby Holley
3d7a75d98d Bug 1190495 - Followup #include fix. r=me 2015-08-11 09:40:02 -04:00
Brian R. Bondy
7bf8055bf0 Bug 1189494 - Pass tracking information to BrowserElement's mozbrowsersecuritychange event. r=fabrice 2015-08-10 16:59:59 -04:00
Kyle Huey
76e3009ab8 Bug 1179909: Refactor stable state handling. r=smaug
This is motivated by three separate but related problems:

1. Our concept of recursion depth is broken for things that run from AfterProcessNextEvent observers (e.g. Promises). We decrement the recursionDepth counter before firing observers, so a Promise callback running at the lowest event loop depth has a recursion depth of 0 (whereas a regular nsIRunnable would be 1). This is a problem because it's impossible to distinguish a Promise running after a sync XHR's onreadystatechange handler from a top-level event (since the former runs with depth 2 - 1 = 1, and the latter runs with just 1).

2. The nsIThreadObserver mechanism that is used by a lot of code to run "after" the current event is a poor fit for anything that runs script. First, the order the observers fire in is the order they were added, not anything fixed by spec. Additionally, running script can cause the event loop to spin, which is a big source of pain here (bholley has some nasty bug caused by this).

3. We run Promises from different points in the code for workers and main thread. The latter runs from XPConnect's nsIThreadObserver callbacks, while the former runs from a hardcoded call to run Promises in the worker event loop. What workers do is particularly problematic because it means we can't get the right recursion depth no matter what we do to nsThread.

The solve this, this patch does the following:

1. Consolidate some handling of microtasks and all handling of stable state from appshell and WorkerPrivate into CycleCollectedJSRuntime.
2. Make the recursionDepth counter only available to CycleCollectedJSRuntime (and its consumers) and remove it from the nsIThreadInternal and nsIThreadObserver APIs.
3. Adjust the recursionDepth counter so that microtasks run with the recursionDepth of the task they are associated with.
4. Introduce the concept of metastable state to replace appshell's RunBeforeNextEvent. Metastable state is reached after every microtask or task is completed. This provides the semantics that bent and I want for IndexedDB, where transactions autocommit at the end of a microtask and do not "spill" from one microtask into a subsequent microtask. This differs from appshell's RunBeforeNextEvent in two ways:
a) It fires between microtasks, which was the motivation for starting this.
b) It no longer ensures that we're at the same event loop depth in the native event queue. bent decided we don't care about this.
5. Reorder stable state to happen after microtasks such as Promises, per HTML. Right now we call the regular thread observers, including appshell, before the main thread observer (XPConnect), so stable state tasks happen before microtasks.
2015-08-11 06:10:46 -07:00
Bobby Holley
f97159c6b7 Bug 1190495 - Hoist TaskQueue into xpcom. r=froydnj
--HG--
rename : dom/media/TaskQueue.cpp => xpcom/threads/TaskQueue.cpp
rename : dom/media/TaskQueue.h => xpcom/threads/TaskQueue.h
2015-08-11 08:55:22 -04:00
Bobby Holley
2f4346b111 Bug 1190495 - Switch TaskQueue entirely to nsRefPtr. r=cpearce 2015-08-11 08:55:21 -04:00
Bobby Holley
a7bc4c7844 Bug 1190495 - Remove TaskQueue::SyncDispatch. r=cpearce
Looks like the last consumers of this went away. \o/
2015-08-11 08:55:19 -04:00
Bobby Holley
bdf89c24e4 Bug 1190495 - Separate FlushableTaskQueue into its own file. r=cpearce
This thing is garbage, and I don't want to hoist it into XPCOM.
2015-08-11 08:55:18 -04:00
Bobby Holley
29e4811fef Bug 1190495 - Fix include. r=me
Not sure how this slipped by before.
2015-08-11 08:55:16 -04:00
Alfredo Yang
e99d63e741 Bug 1192694: remove mDecodingFrozenAtStateDecoding so decoder can leave dormant normally. r=jwwang 2015-08-11 21:23:41 +10:00
Aryeh Gregor
dd74aa5c8b Bug 1008146 - Split up test_runtest.html; rs=Ms2ger
--HG--
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_backcolor.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_bold.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_createlink.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_delete.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_fontname.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_fontsize.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_forecolor.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_formatblock.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_forwarddelete.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_hilitecolor.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_indent.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_inserthorizontalrule.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_inserthtml.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_insertimage.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_insertlinebreak.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_insertorderedlist.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_insertparagraph.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_inserttext.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_insertunorderedlist.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_italic.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_justifycenter.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_justifyfull.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_justifyleft.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_justifyright.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_misc.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_multitest.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_outdent.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_removeformat.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_strikethrough.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_subscript.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_superscript.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_underline.html
rename : dom/imptests/editing/conformancetest/test_runtest.html => dom/imptests/editing/conformancetest/run/test_unlink.html
2015-08-11 14:02:33 +03:00
Sebastian Hengst
c2581fad83 Backed out 8 changesets (bug 1183910, bug 1190281)
Backed out changeset 6ddbdbd66174 (bug 1190281)
Backed out changeset c85c1d11bd72 (bug 1190281)
Backed out changeset 7f904a453bdb (bug 1190281)
Backed out changeset e17123b5bafd (bug 1190281)
Backed out changeset 50edbeb8912e (bug 1190281)
Backed out changeset cf98685302b6 (bug 1190281)
Backed out changeset e98a176b4e0b (bug 1190281)
Backed out changeset e7b3b23bcc82 (bug 1183910)

--HG--
rename : gfx/src/DriverCrashGuard.cpp => gfx/src/DriverInitCrashDetection.cpp
rename : gfx/src/DriverCrashGuard.h => gfx/src/DriverInitCrashDetection.h
2015-08-11 10:13:43 +02:00
David Anderson
f55d77eadf Add a crash guard for DXVA2D3D9. (bug 1190281 part 8, r=mattwoodrow) 2015-08-11 00:29:08 -07:00
David Anderson
0581a52de4 Allow DriverCrashGuard to be used in content processes. (bug 1190281 part 7, r=mattwoodrow) 2015-08-11 00:29:08 -07:00
Jean-Yves Avenard
c74d906393 Bug 1146086: Properly marking overridden member with override keyword. v2. a=bustage 2015-08-11 16:42:42 +10:00
Jean-Yves Avenard
9545c5cfd6 Bug 1146086: Properly marking overridden member with override keyword. a=bustage
Interesting that it was never picked up, until only one was done.
2015-08-11 16:26:20 +10:00
Jean-Yves Avenard
10659dafdb Bug 1188313: P1. Attempt to seek audio near video. r=cpearce
Do not only rely on the MediaDecoderState machine to keep A/V sync after a seek as should we seeked in fast mode ; it wouldn't
2015-08-11 14:18:49 +10:00
Alfredo Yang
8c59fda383 Bug 1146086: use promise to Init() in PlatformDecoderModule. r=jya,r=cpearce 2015-08-11 14:09:12 +10:00
Chris Pearce
c078618d1a Bug 1188235 - Make GMPStorage immune to record name hash collisions. r=gerald 2015-08-11 16:05:19 +12:00
Ben Kelly
9b3774c463 Bug 1192986 Fix test_interfaces.html to expect Cache API and font loading to be released. r=ehsan 2015-08-10 20:17:11 -07:00
Ben Kelly
5c5cefb2b2 Bug 1192986 Also mark Cache/CacheStorage as release interfaces on workers. r=ehsan a=bustage 2015-08-10 19:49:22 -07:00
Jeff Walden
1b62a9d07b Bug 1158399 - Expose the [[DateValue]] field in Date objects only through a ClippedTime class that enforces prior TimeClip-ing on the given value. r=evilpie, r=bz, r=dhylands, r=mt, r=froydnj, r=khuey, r=baku, r=smaug
--HG--
extra : rebase_source : 803fe39f338b6b32cb0fe2be6cf4056bab57283a
2015-05-01 19:12:52 -07:00
Karl Tomlinson
da9d3d3591 bug 916387 remove workarounds in tests r=padenot
Zero output channels are used on ScriptProcessorNodes to improve efficiency in
tests when output is not required.

--HG--
extra : rebase_source : f3ddee8031d772bdcedbd482d80d3259a095e0ea
2015-08-06 16:04:23 +12:00
Karl Tomlinson
3a15b165c6 bug 916387 keep ScriptProcessorNode alive after input is GCed r=padenot
--HG--
extra : rebase_source : a9f5d8f4c33845d1548c2daf53d7aced6d6e668b
2015-08-06 17:56:06 +12:00
Karl Tomlinson
fda85fcc8b bug 916387 add a notification of garbage collected input node r=padenot
The effects of garbage collection must not be observable.  We can collect an
AudioNode if it is not going to cause any further changes, but we must keep
any current effects.

--HG--
extra : rebase_source : f7ce500de2afd4f6cdff79c30c99a0ee8e74ab40
2015-08-06 14:15:40 +12:00
Karl Tomlinson
487efc8f27 bug 1191649 determine ScriptProcessor connected status on main thread r=padenot
because stream inputs may be removed when only providing null data.

The ScriptProcessor is also kept alive when it has only input nodes so that it
is not garbage collected when its input nodes are collected.

--HG--
extra : rebase_source : ee70db1b3e13b212107e048620880b929c662ad6
2015-08-06 16:22:56 +12:00
Karl Tomlinson
e35277a491 bug 1191649 add notification of input node changes r=padenot
--HG--
extra : rebase_source : 71b101935ef10b5fa01008234897c0bb2c6979ba
2015-08-06 19:25:53 +12:00
Karl Tomlinson
b78f6f2712 bug 1191648 don't create audioprocess event when there is no listener r=padenot
Creating the event added a reference to the ScriptProcessorNode, which wasn't
released until the AudioProcessingEvent was destroyed in
nsCycleCollector::FreeSnowWhite().

If another event is dispatched before cycle collection considers the
ScriptProcessorNode, then the node will not be collected.

Also, the reference count of the ScriptProcessorNode is no longer toggled
because this seemed to interfere with the cycle collection process.

--HG--
extra : rebase_source : 41878e716fe3fcc8f46f518be2a50d050b8ed14c
2015-08-10 12:51:37 +12:00
Karl Tomlinson
d03299a57a bug 1191648 don't keep ScriptProcessorNode alive when it has no audioprocess listener r=padenot
--HG--
extra : rebase_source : 49b8c338a3cd645a67937a7584cba666512b31b6
2015-08-06 19:28:10 +12:00
Chris Pearce
8ded1472c3 Bug 1190252 - Remove use of mozilla\/Tokenizer from GMPChild so bug 1190252 can be uplift to 41. r=gerald 2015-08-11 10:27:41 +12:00
Wes Kocher
4cfe4a51b8 Merge m-c to inbound, a=merge CLOSED TREE 2015-08-10 15:01:57 -07:00
Wes Kocher
509f11b522 Merge b2ginbound to central, a=merge CLOSED TREE 2015-08-10 14:58:41 -07:00
Wes Kocher
9ea5043ff7 Merge fx-team to central, a=merge
CLOSED TREE

--HG--
extra : amend_source : 21e718d9a7fec5aa1ea30443fc8838a30b29489b
2015-08-10 14:50:01 -07:00
Ryan VanderMeulen
bb93004620 Merge m-c to inbound. a=merge 2015-08-10 09:42:48 -04:00
Ryan VanderMeulen
11db054dd0 Merge inbound to m-c. a=merge 2015-08-10 09:18:21 -04:00
Jean-Yves Avenard
51d48c4899 Bug 1061525 - Part 7: Add software backed NV12 images support. r=mattwoodrow
Currently unused.
2015-08-10 22:04:27 +10:00
Matt Woodrow
42f077d33f Bug 1061525 - Part 5: Make the OSX video decoders output NV12 format MacIOSurfaces. r=jya 2015-08-10 22:04:27 +10:00