Граф коммитов

1779 Коммитов

Автор SHA1 Сообщение Дата
Eric Rahm 34f99e4b4c Bug 1163201 - Part 1: Remove instances of #ifdef PR_LOGGING in dom/. r=froydnj
PR_LOGGING is now always defined, we can remove #ifdefs checking for it.
2015-05-14 10:13:23 -07:00
Ms2ger f994d03624 Bug 1017758 - Use infallible getters for appId/isInBrowserElement/unknownAppId; r=bz 2015-05-13 17:59:08 +02:00
Andrea Marchesini f4538bb921 Bug 1163387 - Rename FileImpl to BlobImpl, r=ehsan
--HG--
rename : dom/base/MultipartFileImpl.cpp => dom/base/MultipartBlobImpl.cpp
rename : dom/base/MultipartFileImpl.h => dom/base/MultipartBlobImpl.h
2015-05-12 13:11:03 +01:00
Andrea Marchesini 368a198972 Bug 1159401 - Split Blob and File classes, r=bz 2015-05-12 13:09:51 +01:00
Wes Kocher 983fcabeef Backed out 2 changesets (bug 1159401) for b2g build bustage
Backed out changeset adfee1efb1e1 (bug 1159401)
Backed out changeset 70c63c8546e3 (bug 1159401)
2015-05-11 14:54:02 -07:00
Wes Kocher 6b003ab737 Backed out changeset 56e4c68dc3da (bug 1163387) for build bustage CLOSED TREE
--HG--
rename : dom/base/MultipartBlobImpl.cpp => dom/base/MultipartFileImpl.cpp
rename : dom/base/MultipartBlobImpl.h => dom/base/MultipartFileImpl.h
2015-05-11 13:17:58 -07:00
Andrea Marchesini 49a0ee6938 Bug 1163387 - Rename FileImpl to BlobImpl, r=ehsan
--HG--
rename : dom/base/MultipartFileImpl.cpp => dom/base/MultipartBlobImpl.cpp
rename : dom/base/MultipartFileImpl.h => dom/base/MultipartBlobImpl.h
2015-05-11 18:50:54 +01:00
Andrea Marchesini 91a8a35606 Bug 1159401 - patch 1 - Split Blob and File in 2 classes, r=bz 2015-05-11 18:50:50 +01:00
Ryan VanderMeulen 2390c704f8 Backout revisions 4287533203fb and 96a3ebfe09d8 (bug 1159401) for bustage.
CLOSED TREE

--HG--
extra : histedit_source : a6c24f88b9c5a0cbcf2d44189fd359ddb20757b4%2C46613cfc309a9f0531e8c2475ac17877f606f231
2015-05-11 11:43:59 -04:00
Andrea Marchesini 48ecacaa74 Bug 1159401 - patch 1 - Split Blob and File in 2 classes, r=bz 2015-05-11 15:20:06 +01:00
Boris Zbarsky 59ea7eac31 Bug 1162013. Process the Promise queue between adjacent setTimeout callback invocations when we're going through the callback list without returning to the event loop. r=smaug 2015-05-07 14:49:31 -04:00
Wes Kocher f15282bf26 Backed out changeset 57f0b16030e9 (bug 1162013) for m-oth and m-dt3 bustage CLOSED TREE 2015-05-07 13:37:27 -07:00
Boris Zbarsky 0c6597b3e0 Bug 1162013. Process the Promise queue between adjacent setTimeout callback invocations when we're going through the callback list without returning to the event loop. r=smaug 2015-05-07 14:49:31 -04:00
Andrea Marchesini 0d81eae126 Bug 1156875 - patch 1 - URL.createObjectURL leaks in JS sandbox, r=bholley 2015-05-07 08:05:43 +01:00
Xidorn Quan 2ae6dcc764 Bug 947854 part 2 - Avoid exiting fullscreen mode when exit from DOM fullscreen. r=smaug,dao
--HG--
extra : source : 44f82c49ce6f98bc996be41c27a00af99d53215f
2015-05-06 10:04:31 +12:00
Andrew McCreight 9e8f4b219e Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Boris Zbarsky 864f723c0c Bug 1155946 part 2. Add mayResolve methods to DOM classes with resolve hooks. r=peterv 2015-04-28 12:25:55 -04:00
Nikhil Marathe 828e83e703 Bug 1058695 - Add member to nsIGlobalObject to detect it is going away. Make promises use it. r=bholley
--HG--
extra : rebase_source : 001f43d9e08768111f8ece44f79ae3ab689e2fb6
extra : amend_source : 8b89c86ded224c90aa428cdfb24d25959c87b32b
2015-04-27 12:00:41 -07:00
Ryan VanderMeulen cb4391caa6 Backed out changeset c839f283bf28 (bug 1058695) for bustage.
CLOSED TREE
2015-04-27 14:04:24 -04:00
Nikhil Marathe 6e7fc932d3 Bug 1058695 - Add member to nsIGlobalObject to detect it is going away. Make promises use it. r=bholley
--HG--
extra : rebase_source : 3b3909b843efa2150edfcd79a6399535a12bd5aa
2015-04-22 16:34:21 -07:00
Boris Zbarsky 34d521e285 Bug 1155984. Improve the performance of the "self" getter in both window and workers. r=peterv,jorendorff 2015-04-27 13:38:12 -04:00
Boris Zbarsky d36060dc11 Bug 1157898 part 5. Eliminate the remaining non-ErrorResult consumers of ErrorResult::ErrorCode and make it protected. r=peterv 2015-04-27 09:18:52 -04:00
Boris Zbarsky 1540774b0c Bug 1157898 part 1. Make code of the form "return rv.ErrorCode();" where rv is an ErrorResult use StealNSResult instead. r=peterv
This patch was generated with the following command:

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 's/return ([a-zA-Z0-9]+)\.ErrorCode\(\);/return \1.StealNSResult();/'
2015-04-27 09:18:51 -04:00
Kyle Machulis 358e55b5b7 Bug 852944 - Gamepad API IPC; r=ted, r=baku
--HG--
extra : rebase_source : 34ca0c1e1b7fcc312b5d7c97d5bd2086af2bc7ce
2015-04-23 15:05:29 -07:00
Nikhil Marathe d1232d5041 Backed out changeset cb59db723d15 (Bug 1058695) for bustage on CLOSED TREE
--HG--
extra : amend_source : 273b62b6c171f65718e8c59e833ba30f6ea96a05
2015-04-23 09:46:52 -07:00
Nikhil Marathe 8bec017e97 Bug 1058695 - Add member to nsIGlobalObject to detect it is going away. Make promises use it. r=bholley 2015-04-22 16:34:21 -07:00
Nikhil Marathe 75b0dfb4c7 Backed out changeset 527cd70f241f (Bug 1058695) for bustage 2015-04-23 09:07:16 -07:00
Nikhil Marathe e653803d27 Bug 1058695 - Add member to nsIGlobalObject to detect it is going away. Make promises use it. r=bholley
--HG--
extra : transplant_source : %86%8A%E1%E1%98c%E9w%81%3DS%84%B1%3A%02bU%8D%7B%C7
2015-04-22 16:34:21 -07:00
Milan Sreckovic aaa5e8c9d6 Bug 404828 - No need to assert that the top window isn't reachable. r=smaug
--HG--
extra : rebase_source : 6498180662e7b38c0dc47886788a44c3219b7d0a
2015-04-17 16:37:54 -04:00
Denis Volk 32e981896d Bug 1095098 - move do_QueryObject templates into their own header; r=froydnj 2015-04-15 12:47:03 -04:00
Ehsan Akhgari 2a677b9b4c Bug 1156102 - Mark nsGlobalWindowObserver::mWindow as MOZ_NON_OWNING_REF; r=baku 2015-04-20 08:35:39 -04:00
Ehsan Akhgari ffa720a08a Bug 1156101 - Mark nsGlobalWindow::mObserver as an nsRefPtr; r=baku 2015-04-20 08:35:38 -04:00
Ted Mielczarek 3a7c11fc1a bug 1155691 - Expose WindowRoot to chrome from window in webidl. r=smaug
--HG--
extra : rebase_source : ecacc739c8b642faf0e26e19c2a62d2f9e180cc4
2015-04-17 16:17:26 -04:00
Jim Blandy ebd83c9a61 Bug 1152577: Add 'aReason' argument to AutoEntryScript constructor, and provide plausible names for its instantiations. r=bholley
--HG--
extra : rebase_source : 8ab7a3628a5b4d94b957f24e23e4c5c7871db97c
2015-04-08 21:23:48 -04:00
Paul Adenot e32b404e54 Bug 1094764 - Implement AudioContext.suspend and friends. r=roc,ehsan
- Relevant spec text:
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-suspend-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-resume-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-close-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-state
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-onstatechange

- In a couple words, the behavior we want:
    - Closed context cannot have new nodes created, but can do decodeAudioData,
    and create buffers, and such.
    - OfflineAudioContexts don't support those methods, transitions happen at
    startRendering and at the end of processing. onstatechange is used to make
    this observable.
    - (regular) AudioContexts support those methods. The promises and
    onstatechange should be resolved/called when the operation has actually
    completed on the rendering thread.  Once a context has been closed, it
    cannot transition back to "running". An AudioContext switches to "running"
    when the audio callback start running, this allow authors to know how long
    the audio stack takes to start running.
    - MediaStreams that feed in/go out of a suspended graph should respectively
    not buffer at the graph input, and output silence
    - suspended context should not be doing much on the CPU, and we should try
    to pause audio streams if we can (this behaviour is the main reason we need
    this in the first place, for saving battery on mobile, and CPU on all
    platforms)

- Now, the implementation:
    - AudioNodeStreams are now tagged with a context id, to be able to operate
    on all the streams of a given AudioContext on the Graph thread without
    having to go and lock everytime to touch the AudioContext. This happens in
    the AudioNodeStream ctor. IDs are of course constant for the lifetime of the
    node.
    - When an AudioContext goes into suspended mode, streams for this
    AudioContext are moved out of the mStreams array to a second array,
    mSuspendedStreams. Streams in mSuspendedStream are not ordered, and are not
    processed.
    - The MSG will automatically switch to a SystemClockDriver when it finds
    that there are no more AudioNodeStream/Stream with an audio track. This is
    how pausing the audio subsystem and saving battery works. Subsequently, when
    the MSG finds that there are only streams in mSuspendedStreams, it will go
    to sleep (block on a monitor), so we save CPU, but it does not shut itself
    down. This is mostly not a new behaviour (this is what the MSG does since
    the refactoring), but is important to note.
    - Promises are gripped (addref-ed) on the main thread, and then shepherd
    down other threads and to the GraphDriver, if needed (sometimes we can
    resolve them right away). They move between threads as void* to prevent
    calling methods on them, as they are not thread safe. Then, the driver
    executes the operation, and when it's done (initializing and closing audio
    streams can take some time), we send the promise back to the main thread,
    and resolve it, casting back to Promise* after asserting we're back on the
    main thread. This way, we can send them back on the main thread once an
    operation has complete (suspending an audio stream, starting it again on
    resume(), etc.), without having to do bookkeeping between suspend calls and
    their result. Promises are not thread safe, so we can't move them around
    AddRef-ed.
    - The stream destruction logic now takes into account that a stream can be
    destroyed while not being in mStreams.
    - A graph can now switch GraphDriver twice or more per iteration, for
    example if an author goes suspend()/resume()/suspend() in the same script.
    - Some operation have to be done on suspended stream, so we now use double
    for-loop around mSuspendedStreams and mStreams in some places in
    MediaStreamGraph.cpp.
    - A tricky part was making sure everything worked at AudioContext
    boundaries.  TrackUnionStream that have one of their input stream suspended
    append null ticks instead.
    - The graph ordering algorithm had to be altered to not include suspended
    streams.
    - There are some edge cases (adding a stream on a suspended graph, calling
    suspend/resume when a graph has just been close()d).
2015-02-27 18:22:05 +01:00
Nathan Froyd 2b1ae6e2ca Bug 1153267 - part 1 - use smart-pointer .forget() instead of NS_ADDREF+assign; r=ehsan 2015-03-31 10:03:49 -04:00
Carsten "Tomcat" Book 31c4421faf Backed out changeset 7fc52c48e6e3 (bug 1094764) for mulet m-3 perma failure in /test_dataChannel_basicAudioVideo.html 2015-04-09 13:44:27 +02:00
Paul Adenot 70b6a9e143 Bug 1094764 - Implement AudioContext.suspend and friends. r=roc,ehsan
- Relevant spec text:
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-suspend-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-resume-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-close-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-state
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-onstatechange

- In a couple words, the behavior we want:
    - Closed context cannot have new nodes created, but can do decodeAudioData,
    and create buffers, and such.
    - OfflineAudioContexts don't support those methods, transitions happen at
    startRendering and at the end of processing. onstatechange is used to make
    this observable.
    - (regular) AudioContexts support those methods. The promises and
    onstatechange should be resolved/called when the operation has actually
    completed on the rendering thread.  Once a context has been closed, it
    cannot transition back to "running". An AudioContext switches to "running"
    when the audio callback start running, this allow authors to know how long
    the audio stack takes to start running.
    - MediaStreams that feed in/go out of a suspended graph should respectively
    not buffer at the graph input, and output silence
    - suspended context should not be doing much on the CPU, and we should try
    to pause audio streams if we can (this behaviour is the main reason we need
    this in the first place, for saving battery on mobile, and CPU on all
    platforms)

- Now, the implementation:
    - AudioNodeStreams are now tagged with a context id, to be able to operate
    on all the streams of a given AudioContext on the Graph thread without
    having to go and lock everytime to touch the AudioContext. This happens in
    the AudioNodeStream ctor. IDs are of course constant for the lifetime of the
    node.
    - When an AudioContext goes into suspended mode, streams for this
    AudioContext are moved out of the mStreams array to a second array,
    mSuspendedStreams. Streams in mSuspendedStream are not ordered, and are not
    processed.
    - The MSG will automatically switch to a SystemClockDriver when it finds
    that there are no more AudioNodeStream/Stream with an audio track. This is
    how pausing the audio subsystem and saving battery works. Subsequently, when
    the MSG finds that there are only streams in mSuspendedStreams, it will go
    to sleep (block on a monitor), so we save CPU, but it does not shut itself
    down. This is mostly not a new behaviour (this is what the MSG does since
    the refactoring), but is important to note.
    - Promises are gripped (addref-ed) on the main thread, and then shepherd
    down other threads and to the GraphDriver, if needed (sometimes we can
    resolve them right away). They move between threads as void* to prevent
    calling methods on them, as they are not thread safe. Then, the driver
    executes the operation, and when it's done (initializing and closing audio
    streams can take some time), we send the promise back to the main thread,
    and resolve it, casting back to Promise* after asserting we're back on the
    main thread. This way, we can send them back on the main thread once an
    operation has complete (suspending an audio stream, starting it again on
    resume(), etc.), without having to do bookkeeping between suspend calls and
    their result. Promises are not thread safe, so we can't move them around
    AddRef-ed.
    - The stream destruction logic now takes into account that a stream can be
    destroyed while not being in mStreams.
    - A graph can now switch GraphDriver twice or more per iteration, for
    example if an author goes suspend()/resume()/suspend() in the same script.
    - Some operation have to be done on suspended stream, so we now use double
    for-loop around mSuspendedStreams and mStreams in some places in
    MediaStreamGraph.cpp.
    - A tricky part was making sure everything worked at AudioContext
    boundaries.  TrackUnionStream that have one of their input stream suspended
    append null ticks instead.
    - The graph ordering algorithm had to be altered to not include suspended
    streams.
    - There are some edge cases (adding a stream on a suspended graph, calling
    suspend/resume when a graph has just been close()d).
2015-02-27 18:22:05 +01:00
Boris Zbarsky 3dbe43d96c Bug 1151940 part 3. Make some writable cssom-view attributes that we only allow setting from chrome act the way readonly replaceables would when called from content. r=smaug 2015-04-08 22:50:45 -04:00
Boris Zbarsky a00fe72fd2 Bug 1151940 part 2. Add a convenience function in nsGlobalWindow for replacing a property on the window with a new value. r=smaug 2015-04-08 22:50:45 -04:00
Kartikaya Gupta 3e7ff0d160 Bug 1146843 - Revert part of cset 33c30e283fa8 because the code is used in Fennec. r=snorp 2015-04-02 20:45:50 -04:00
Eddy Bruël e9a640efd2 Bug 1092102 - Rename Suspend/Resume to Freeze/Thaw;r=khuey 2015-04-01 11:00:19 +02:00
Mike Hommey b077d9624d Bug 1134920 - Use moz_xmalloc/moz_xrealloc/free instead of nsMemory::Alloc/Realloc/Free. r=nfroyd 2015-04-01 13:51:45 +09:00
Carsten "Tomcat" Book be3a30c68d Backed out changeset f5e560350ca2 (bug 1148156) for bustage on a CLOSED TREE 2015-03-31 13:02:24 +02:00
Andrew McCreight dd414a5a7d Bug 1148156 - Print the window ID in the ++--DOMWINDOW logging. r=smaug
--HG--
extra : rebase_source : ff57498a5cd612bf35eb1451a7987f1e2dd29a1c
2015-03-30 13:51:00 +02:00
Carsten "Tomcat" Book 60382cb6ba Backed out changeset bf22c9e5c5a3 (bug 1094764) for crashtest failures on a CLOSED TREE 2015-03-30 15:14:09 +02:00
Paul Adenot 6ee36e38f6 Bug 1094764 - Implement AudioContext.suspend and friends. r=roc,ehsan
- Relevant spec text:
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-suspend-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-resume-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-close-Promise
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-state
    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-onstatechange

- In a couple words, the behavior we want:
    - Closed context cannot have new nodes created, but can do decodeAudioData,
    and create buffers, and such.
    - OfflineAudioContexts don't support those methods, transitions happen at
    startRendering and at the end of processing. onstatechange is used to make
    this observable.
    - (regular) AudioContexts support those methods. The promises and
    onstatechange should be resolved/called when the operation has actually
    completed on the rendering thread.  Once a context has been closed, it
    cannot transition back to "running". An AudioContext switches to "running"
    when the audio callback start running, this allow authors to know how long
    the audio stack takes to start running.
    - MediaStreams that feed in/go out of a suspended graph should respectively
    not buffer at the graph input, and output silence
    - suspended context should not be doing much on the CPU, and we should try
    to pause audio streams if we can (this behaviour is the main reason we need
    this in the first place, for saving battery on mobile, and CPU on all
    platforms)

- Now, the implementation:
    - AudioNodeStreams are now tagged with a context id, to be able to operate
    on all the streams of a given AudioContext on the Graph thread without
    having to go and lock everytime to touch the AudioContext. This happens in
    the AudioNodeStream ctor. IDs are of course constant for the lifetime of the
    node.
    - When an AudioContext goes into suspended mode, streams for this
    AudioContext are moved out of the mStreams array to a second array,
    mSuspendedStreams. Streams in mSuspendedStream are not ordered, and are not
    processed.
    - The MSG will automatically switch to a SystemClockDriver when it finds
    that there are no more AudioNodeStream/Stream with an audio track. This is
    how pausing the audio subsystem and saving battery works. Subsequently, when
    the MSG finds that there are only streams in mSuspendedStreams, it will go
    to sleep (block on a monitor), so we save CPU, but it does not shut itself
    down. This is mostly not a new behaviour (this is what the MSG does since
    the refactoring), but is important to note.
    - Promises are gripped (addref-ed) on the main thread, and then shepherd
    down other threads and to the GraphDriver, if needed (sometimes we can
    resolve them right away). They move between threads as void* to prevent
    calling methods on them, as they are not thread safe. Then, the driver
    executes the operation, and when it's done (initializing and closing audio
    streams can take some time), we send the promise back to the main thread,
    and resolve it, casting back to Promise* after asserting we're back on the
    main thread. This way, we can send them back on the main thread once an
    operation has complete (suspending an audio stream, starting it again on
    resume(), etc.), without having to do bookkeeping between suspend calls and
    their result. Promises are not thread safe, so we can't move them around
    AddRef-ed.
    - The stream destruction logic now takes into account that a stream can be
    destroyed while not being in mStreams.
    - A graph can now switch GraphDriver twice or more per iteration, for
    example if an author goes suspend()/resume()/suspend() in the same script.
    - Some operation have to be done on suspended stream, so we now use double
    for-loop around mSuspendedStreams and mStreams in some places in
    MediaStreamGraph.cpp.
    - A tricky part was making sure everything worked at AudioContext
    boundaries.  TrackUnionStream that have one of their input stream suspended
    append null ticks instead.
    - The graph ordering algorithm had to be altered to not include suspended
    streams.
    - There are some edge cases (adding a stream on a suspended graph, calling
    suspend/resume when a graph has just been close()d).
2015-02-27 18:22:05 +01:00
Andrea Marchesini e6f385fb3d Bug 1148527 - Indentation fix after bug 1145631, r=ehsan 2015-03-27 18:52:19 +00:00
Jason Orendorff 1def388b28 Bug 1142794 - Change 'receiver' argument to SetProperty functions and ProxyHandler::set methods to be a HandleValue. r=Waldo.
Also: Change signature of these functions and methods to all have the same arguments in the same order: (cx, obj, id, v, receiver). Also change v from MutableHandleValue to HandleValue.

There is no change in behavior.

In fact the new error message `JSMSG_SET_NON_OBJECT_RECEIVER` is
impossible to trigger from scripts for now, I think (after re-reading
the whole patch with this in mind). JS_ForwardSetPropertyTo is the only
way to get a non-object receiver into the engine, but no caller
currently does so.

We're installing new pipes here, and they should work, but for now it's
the same cold water flowing through as before. Actually hooking up the
hot water is left for another bug (one with tests, not to put too fine a
point on it).

Notes:

*   InvokeGetterOrSetter had to be split into two functions:
    InvokeGetter takes a MutableHandleValue out-param,
    InvokeSetter a HandleValue in-param.

*   Watchpoints can still tamper with values being assigned. So can
    JSSetterOps. I'm pleased we can support this craziness in a way that
    doesn't have to spread via the type system to encompass the entire
    codebase.

*   Change in GlobalObject::setIntrinsicValue is not really a change.
    Yes, it asserted before, but an exception thrown during self-hosting
    initialization is not going to go unnoticed either.

*   Since the receiver argument to js::SetProperty() is at the end now, it
    makes sense for it to be optional. Some callers look nicer.

--HG--
extra : rebase_source : e89f916fe267800bc73890e11aceef5c4855b272
2015-03-01 13:16:19 -06:00
Jose Antonio Olivera Ortega 6e115add99 Bug 1003991 - Disable https:// only load for ServiceWorkers when Developer Tools are open. r=nsm, r=miker 2015-03-24 14:15:00 -04:00