{"push_id":623922754,"size":1000,"distinct_size":1220,"ref":"refs/heads/events","head":"4474154ebb3c2d52d723814b2cdc5a1f9868cec1","before":"6161aa792940d15d35a7136074c20f5e7f75a888","commits":[{"sha":"8f6d3f73d265ee77364c77f137c216392b5cc4f6","author":{"email":"842a3b6a9dee1e010dc31cf39cc1ba246d2f3437@gmail.com","name":"Eddy Bruël"},"message":"Bug 1092102 - Implement WorkerDebuggerGlobalScope.setImmediate;r=khuey","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/8f6d3f73d265ee77364c77f137c216392b5cc4f6"},{"sha":"6ee36e38f6358340a06b9711305bd94d5e6c361c","author":{"email":"a027184a55211cd23e3f3094f1fdc728df5e0500@paul.cx","name":"Paul Adenot"},"message":"Bug 1094764 - Implement AudioContext.suspend and friends. r=roc,ehsan\n\n- Relevant spec text:\n    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-suspend-Promise\n    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-resume-Promise\n    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-close-Promise\n    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-state\n    - http://webaudio.github.io/web-audio-api/#widl-AudioContext-onstatechange\n\n- In a couple words, the behavior we want:\n    - Closed context cannot have new nodes created, but can do decodeAudioData,\n    and create buffers, and such.\n    - OfflineAudioContexts don't support those methods, transitions happen at\n    startRendering and at the end of processing. onstatechange is used to make\n    this observable.\n    - (regular) AudioContexts support those methods. The promises and\n    onstatechange should be resolved/called when the operation has actually\n    completed on the rendering thread.  Once a context has been closed, it\n    cannot transition back to \"running\". An AudioContext switches to \"running\"\n    when the audio callback start running, this allow authors to know how long\n    the audio stack takes to start running.\n    - MediaStreams that feed in/go out of a suspended graph should respectively\n    not buffer at the graph input, and output silence\n    - suspended context should not be doing much on the CPU, and we should try\n    to pause audio streams if we can (this behaviour is the main reason we need\n    this in the first place, for saving battery on mobile, and CPU on all\n    platforms)\n\n- Now, the implementation:\n    - AudioNodeStreams are now tagged with a context id, to be able to operate\n    on all the streams of a given AudioContext on the Graph thread without\n    having to go and lock everytime to touch the AudioContext. This happens in\n    the AudioNodeStream ctor. IDs are of course constant for the lifetime of the\n    node.\n    - When an AudioContext goes into suspended mode, streams for this\n    AudioContext are moved out of the mStreams array to a second array,\n    mSuspendedStreams. Streams in mSuspendedStream are not ordered, and are not\n    processed.\n    - The MSG will automatically switch to a SystemClockDriver when it finds\n    that there are no more AudioNodeStream/Stream with an audio track. This is\n    how pausing the audio subsystem and saving battery works. Subsequently, when\n    the MSG finds that there are only streams in mSuspendedStreams, it will go\n    to sleep (block on a monitor), so we save CPU, but it does not shut itself\n    down. This is mostly not a new behaviour (this is what the MSG does since\n    the refactoring), but is important to note.\n    - Promises are gripped (addref-ed) on the main thread, and then shepherd\n    down other threads and to the GraphDriver, if needed (sometimes we can\n    resolve them right away). They move between threads as void* to prevent\n    calling methods on them, as they are not thread safe. Then, the driver\n    executes the operation, and when it's done (initializing and closing audio\n    streams can take some time), we send the promise back to the main thread,\n    and resolve it, casting back to Promise* after asserting we're back on the\n    main thread. This way, we can send them back on the main thread once an\n    operation has complete (suspending an audio stream, starting it again on\n    resume(), etc.), without having to do bookkeeping between suspend calls and\n    their result. Promises are not thread safe, so we can't move them around\n    AddRef-ed.\n    - The stream destruction logic now takes into account that a stream can be\n    destroyed while not being in mStreams.\n    - A graph can now switch GraphDriver twice or more per iteration, for\n    example if an author goes suspend()/resume()/suspend() in the same script.\n    - Some operation have to be done on suspended stream, so we now use double\n    for-loop around mSuspendedStreams and mStreams in some places in\n    MediaStreamGraph.cpp.\n    - A tricky part was making sure everything worked at AudioContext\n    boundaries.  TrackUnionStream that have one of their input stream suspended\n    append null ticks instead.\n    - The graph ordering algorithm had to be altered to not include suspended\n    streams.\n    - There are some edge cases (adding a stream on a suspended graph, calling\n    suspend/resume when a graph has just been close()d).","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/6ee36e38f6358340a06b9711305bd94d5e6c361c"},{"sha":"0a665301a5450d67f859b9616f4a937404a7a63b","author":{"email":"42ca8315c21efcbb1e9a5f13129d8f83194e3688@mozilla.com","name":"Jon Coppeard"},"message":"Bug 1146696 - Fix test failures on windows cgc builds r=me","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/0a665301a5450d67f859b9616f4a937404a7a63b"},{"sha":"47c59f235ae3c3ab777c34106e974fca69797984","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 1: Move Request::mContext to InternalRequest, and determine the mapping to nsContentPolicyType; r=nsm\n\nAs the documentation in InternalRequest.h in this patch shows, the\nmapping between nsContentPolicyType and RequestContext is not complete\nyet.  Because the InternalRequest object needs to know the actual\nnsContentPolicyType in order for FetchDriver to be able to use that\ninformation, we can't just store the RequestContext.  Therefore, this\npatch adds both of these to InternalRequest.  Once we get to a stage\nwhere we have a complete mapping of these values, we can store only one\nof them and compute the other from it.  That requires addressing all of\nthe TODO comments in the InternalRequest.h documentation.","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/47c59f235ae3c3ab777c34106e974fca69797984"},{"sha":"99c8062500dbb6c3428c43d61ac61fc31a543223","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 2: Set the content policy type on FetchEvent.request based on the content policy type of the channel; r=nsm\n\nNote that InternalRequest::SetContentPolicyType takes care of updating the\nRequestContext value stored in InternalRequest too.","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/99c8062500dbb6c3428c43d61ac61fc31a543223"},{"sha":"6fdcabe29ec086da2dc7c39fa949673060d96538","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 3: Add a test for FetchEvent.request.context when intercepting an image load; r=nsm,bzbarsky","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/6fdcabe29ec086da2dc7c39fa949673060d96538"},{"sha":"f479f505020ebc695405ecea3f3b5328b5ba8bd6","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 4: Add a test for FetchEvent.request.context when intercepting a responsive image load; r=nsm","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/f479f505020ebc695405ecea3f3b5328b5ba8bd6"},{"sha":"fe261ef1d6f74af9d5923ecc03b51f20589368ce","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 5: Add a test for FetchEvent.request.context when intercepting an audio element load; r=nsm","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/fe261ef1d6f74af9d5923ecc03b51f20589368ce"},{"sha":"e573e0c13ec1dc099e63563fbd71587d57bf3bef","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 6: Add a test for FetchEvent.request.context when intercepting a video element load; r=nsm\n\nNote that currently our implementation incorrectly reflects this as\n'audio'.  This will be fixed later.","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/e573e0c13ec1dc099e63563fbd71587d57bf3bef"},{"sha":"a0ac39a25e7a42b6bf7c5b39b5f8a6759f828c6f","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 7: Add a test for FetchEvent.request.context when intercepting a beacon load; r=nsm","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/a0ac39a25e7a42b6bf7c5b39b5f8a6759f828c6f"},{"sha":"3ccccb67632c73bb42d2336afbae28a80498ce67","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 8: Add a test for FetchEvent.request.context when intercepting a CSP report; r=nsm","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/3ccccb67632c73bb42d2336afbae28a80498ce67"},{"sha":"dd3079f0ba67b78bfeca3ffba8cc365e2651a70a","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 9: Add tests for FetchEvent.request.context when intercepting embeds and objects; r=nsm","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/dd3079f0ba67b78bfeca3ffba8cc365e2651a70a"},{"sha":"bb41d453acb5c084d3a5555c91a14c88161e349e","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 10: Add a test for FetchEvent.request.context when intercepting font loads; r=nsm","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/bb41d453acb5c084d3a5555c91a14c88161e349e"},{"sha":"3adeadabade151392f564eaae511de71df70cfb3","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 11: Add tests for FetchEvent.request.context when intercepting iframes and frames; r=nsm","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/3adeadabade151392f564eaae511de71df70cfb3"},{"sha":"c1c49bf187ff43bf4e82c0e533111a482ddf1cdb","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 12: Add a test for FetchEvent.request.context when intercepting new window loads; r=nsm","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/c1c49bf187ff43bf4e82c0e533111a482ddf1cdb"},{"sha":"a9ca6ed085936fffcab39a53498fdec89ea2d8ff","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 13: Add a test for FetchEvent.request.context when intercepting ping loads; r=nsm\n\nThis test is temporarily disabled until bug 1148064 gets fixed.","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/a9ca6ed085936fffcab39a53498fdec89ea2d8ff"},{"sha":"7f0cac73a37ff32528c7d260aa5890fc72572cac","author":{"email":"790fae358fdaa0da689adfd65aa45171adc5f989@mozilla.com","name":"Ehsan Akhgari"},"message":"Bug 1147699 - Part 14: Add a test for FetchEvent.request.context when intercepting loads coming from plugins; r=nsm","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/7f0cac73a37ff32528c7d260aa5890fc72572cac"},{"sha":"ed3482df8a64e5864a251a48ed92d63e753bce9b","author":{"email":"822ec91a7ef82248fd36162ca8ac3283eba70848@mozilla.com","name":"Neil Deakin"},"message":"Bug 1117586, [e10s] select dropdowns cannot be opened with the keyboard, r=roc","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/ed3482df8a64e5864a251a48ed92d63e753bce9b"},{"sha":"d28d4e9eb520e8d7bdb1e2c7a1b542810f7648ff","author":{"email":"822ec91a7ef82248fd36162ca8ac3283eba70848@mozilla.com","name":"Neil Deakin"},"message":"Bug 1094252, [e10s] re-enable location bar command tests, r=gijs","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/d28d4e9eb520e8d7bdb1e2c7a1b542810f7648ff"},{"sha":"191c9180a5991a017851f04218d049d270725f38","author":{"email":"9376bfb1510ad27f6256910ac441d40e30f532d7@mozilla.com","name":"Carsten \"Tomcat\" Book"},"message":"Backed out changeset 9534a3d38191 (bug 1149041)","distinct":true,"url":"https://api.github.com/repos/staktrace/gecko-dev/commits/191c9180a5991a017851f04218d049d270725f38"}]}