ce483363652d448558c9d99923b1870624c6c648: Bug 1676441 - Upgrade to BufferSize::get everywhere. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Tue, 16 Mar 2021 06:48:25 +0000 - rev 571384
Push 138622 by lhansen@mozilla.com at Tue, 16 Mar 2021 06:50:56 +0000
Bug 1676441 - Upgrade to BufferSize::get everywhere. r=rhunt Use the value from BufferSize::get() without checking that it fits in uint32_t in cases where this makes sense and is straightforward. In the cases where it still matters, perform additional checking or rewrite code so that it doesn't matter. Remove BufferSize::getWasmUint32(), it is now unused. Indeed BufferSize could be replaced by size_t now. As a consequence of these changes, we relabel the memory operations so that it is clear that they are for 32-bit memories, as they would otherwise have to take 64-bit arguments and have more complicated overflow checking on source and destination addresses. So long as only the memory size needs to be larger than 32 bits it's not complicated. Drive-by fix a bug where TableCopy used a failure value from MemCopy; this has no impact on any code, it's just a typo. Differential Revision: https://phabricator.services.mozilla.com/D98970
cb02a960ee5c10e36258060c61fcb0f7837d6fb1: Bug 1676441 - Allow up to 65534 pages + test cases. r=rhunt
Lars T Hansen <lhansen@mozilla.com> - Tue, 16 Mar 2021 06:48:25 +0000 - rev 571383
Push 138622 by lhansen@mozilla.com at Tue, 16 Mar 2021 06:50:56 +0000
Bug 1676441 - Allow up to 65534 pages + test cases. r=rhunt The purpose here is to allow wasm memories to use up to 65534 pages of memory on 64-bit systems, if the underlying ArrayBuffer / SharedArrayBuffer supports it. (The remaining two pages remain out of bounds until we can make the bounds checking limit 64 bits wide, and some other things.) As the max value of the heap limit field is 65536, this should unlock memories above 2GB for all users who do not insist on actually allocating all 4GB. The changes here are: * Parameterize everything properly: Get rid of hardcoded UINT32_MAX and INT32_MAX and similar where that is possible. Some remain; comments have been added. * Add guards for asm.js to remain at heap limit INT32_MAX forever * Add guard for grow() methods to enforce the limit separately from arraybuffer code * Add test cases and test infrastructure * Clean up some transitional things that are no longer required, now that the underlying arraybuffer code is stable Some parameters are turned into function calls now, but may become constants again later. Differential Revision: https://phabricator.services.mozilla.com/D96602
78e705fb75a33808a7f77ff19ce406eb3bf775a2: Bug 1698697 - Fix BlockingResourceBase code with callstack tracking enabled. r=nika
Mike Hommey <mh+mozilla@glandium.org> - Tue, 16 Mar 2021 05:18:10 +0000 - rev 571382
Push 138621 by mh@glandium.org at Tue, 16 Mar 2021 05:27:43 +0000
Bug 1698697 - Fix BlockingResourceBase code with callstack tracking enabled. r=nika Since GetAcquisitionState is never used independently of ClearAcquisitionState, we change it to TakeAcquisitionState, such that we don't require an expensive array copy in this case. Differential Revision: https://phabricator.services.mozilla.com/D108554
e90eebb4095d3fdd9c8b07bf22795eee7c3e9ed6: Bug 1698427 - Call ExtractJsFrames outside of MergeStacks, before native stackwalk (if present) - r=canaltinova
Gerald Squelart <gsquelart@mozilla.com> - Tue, 16 Mar 2021 05:08:23 +0000 - rev 571381
Push 138620 by gsquelart@mozilla.com at Tue, 16 Mar 2021 05:10:54 +0000
Bug 1698427 - Call ExtractJsFrames outside of MergeStacks, before native stackwalk (if present) - r=canaltinova In a later bug, ExtractJsFrames will retrieve more information about the JS frames, which will be given to stack walkers in order to resume native sampling past JIT stacks. Differential Revision: https://phabricator.services.mozilla.com/D108417
314767eb5be5555acfae50fe1fab8a3534938b99: Bug 1698427 - Clean and optimize ExtractJsFrames - r=canaltinova
Gerald Squelart <gsquelart@mozilla.com> - Tue, 16 Mar 2021 05:08:22 +0000 - rev 571380
Push 138620 by gsquelart@mozilla.com at Tue, 16 Mar 2021 05:10:54 +0000
Bug 1698427 - Clean and optimize ExtractJsFrames - r=canaltinova Some changes after the previous just-move-the-code refactoring: - Updated functon comment for clarity. - Renamed `jsCount` to more precise `jsFramesCount`. - Moved `samplePosInBuffer` computation to where it's first needed. Bonus: It won't happen anymore if there is no JS stack. - Construct `jsIter` as first `for` statement, it's clearer that it's the main loop iterator. - Moved `MAX_JS_FRAMES` checks into the loop body, and only when needed. - Try to move-from an rvalue reference to the `frame`, instead of `value()` forcing a copy. - Moved `context` retrieval closer to first use. Same in `MergeStacks`; Note that `aRegisteredThread.GetJSContext()` is only reading a member variable, so it's cheap enough to use it again there if needed, it may even be better overall than storing it in a register or on the stack (if the compiler couldn't optimize it already before). Differential Revision: https://phabricator.services.mozilla.com/D108416
9129f0dc9f38443589841362b972a2e68d97a84c: Bug 1698427 - ExtractJsFrames factored out of MergeStacks - r=canaltinova
Gerald Squelart <gsquelart@mozilla.com> - Tue, 16 Mar 2021 05:08:22 +0000 - rev 571379
Push 138620 by gsquelart@mozilla.com at Tue, 16 Mar 2021 05:10:54 +0000
Bug 1698427 - ExtractJsFrames factored out of MergeStacks - r=canaltinova Differential Revision: https://phabricator.services.mozilla.com/D108415
269ee52d9d9b72a5ddc00e4247350cac297e9010: Bug 1698067 - Only collapse framebuffer clears when stride is packed. r=sotaro
Lee Salzman <lsalzman@mozilla.com> - Tue, 16 Mar 2021 04:38:19 +0000 - rev 571378
Push 138619 by lsalzman@mozilla.com at Tue, 16 Mar 2021 04:40:41 +0000
Bug 1698067 - Only collapse framebuffer clears when stride is packed. r=sotaro There is a bug where if the stride of the default framebuffer is not tightly packed, such as when we are mapping a smaller dirty region of a larger output buffer, we can erroneously clear a region of the larger output buffer that should not be overwritten. This limits the optimization to only happen when the stride is tightly packed. Differential Revision: https://phabricator.services.mozilla.com/D108534
ad427a2f4a2f08908d3152dbc3d532df1a804bb4: Bug 1571631 - Replace MOZ_MUST_USE with [[nodiscard]] in js/src. r=jandem
Chris Peterson <cpeterson@mozilla.com> - Tue, 16 Mar 2021 04:36:45 +0000 - rev 571377
Push 138618 by cpeterson@mozilla.com at Tue, 16 Mar 2021 04:39:16 +0000
Bug 1571631 - Replace MOZ_MUST_USE with [[nodiscard]] in js/src. r=jandem MOZ_MUST_USE was replaced with [[nodiscard]] in js/rc in bug 1684092, but some new uses of MOZ_MUST_USE instead of [[nodiscard]] have crept back in. Depends on D108343 Differential Revision: https://phabricator.services.mozilla.com/D108344
08fc8b587c054217d9a795a52f9244fb7649eee2: Bug 1571631 - Replace MOZ_MUST_USE with [[nodiscard]] in toolkit/components/commandlines/nsCommandLine.h. r=mossop
Chris Peterson <cpeterson@mozilla.com> - Tue, 16 Mar 2021 04:36:45 +0000 - rev 571376
Push 138618 by cpeterson@mozilla.com at Tue, 16 Mar 2021 04:39:16 +0000
Bug 1571631 - Replace MOZ_MUST_USE with [[nodiscard]] in toolkit/components/commandlines/nsCommandLine.h. r=mossop Depends on D108342 Differential Revision: https://phabricator.services.mozilla.com/D108343
362aed67c493a71cd17afe9a3901e43e95c75135: Bug 1571631 - Replace MOZ_MUST_USE with [[nodiscard]] in layout/style/SharedStyleSheetCache.h. r=emilio
Chris Peterson <cpeterson@mozilla.com> - Tue, 16 Mar 2021 04:36:45 +0000 - rev 571375
Push 138618 by cpeterson@mozilla.com at Tue, 16 Mar 2021 04:39:16 +0000
Bug 1571631 - Replace MOZ_MUST_USE with [[nodiscard]] in layout/style/SharedStyleSheetCache.h. r=emilio MOZ_MUST_USE was replaced with [[nodiscard]] in layout in bug 1625855, but some new uses of MOZ_MUST_USE instead of [[nodiscard]] have crept back in. Differential Revision: https://phabricator.services.mozilla.com/D108342
f2134bdaf09c9e5939c787a9bd2d1475e82674a5: Backed out changeset f3aeb3726cee (bug 1698067) for Webrender failures
Dorel Luca <dluca@mozilla.com> - Tue, 16 Mar 2021 05:50:52 +0200 - rev 571374
Push 138617 by dluca@mozilla.com at Tue, 16 Mar 2021 03:51:31 +0000
Backed out changeset f3aeb3726cee (bug 1698067) for Webrender failures
f3aeb3726ceec8489fd4857f7a076ea1716f16c0: Bug 1698067 - Force color buffer to resolve before committing. r=sotaro
Lee Salzman <lsalzman@mozilla.com> - Tue, 16 Mar 2021 02:42:00 +0000 - rev 571373
Push 138616 by lsalzman@mozilla.com at Tue, 16 Mar 2021 02:44:27 +0000
Bug 1698067 - Force color buffer to resolve before committing. r=sotaro This cleans up two issues related to delayed clearing of the default framebuffer. Firstly, we might accidentally not have resolved the color buffer by the time we go to actually commit it, so that any delayed clears of the default framebuffer might get missed. We need to force the color buffer to resolve before we commit to guarantee there are no delayed clears left. Secondly, there is a bug where if the stride of the default framebuffer is not tightly packed, such as when we are mapping a smaller dirty region of a larger output buffer, we can erroneously clear a region of the larger output buffer that should not be overwritten. This limits the optimization to only happen when the stride is tightly packed. Differential Revision: https://phabricator.services.mozilla.com/D108534
b96dbaae4d650ed3bddac41201029b6a5a1abb55: Bug 1698441 - Remove synthesizeNativeWheelAndWaitForWheelEvent. r=tnikkel
Kartikaya Gupta <kats@pancake.staktrace.com> - Tue, 16 Mar 2021 00:02:22 +0000 - rev 571372
Push 138615 by kgupta@mozilla.staktrace.com at Tue, 16 Mar 2021 00:05:09 +0000
Bug 1698441 - Remove synthesizeNativeWheelAndWaitForWheelEvent. r=tnikkel Depends on D108442 Differential Revision: https://phabricator.services.mozilla.com/D108443
5fffc5a7ed9fb75ae16a96cc1585cc63a59f3d8b: Bug 1698441 - Remove call to synthesizeNativeWheelAndWaitForWheelEvent. r=tnikkel
Kartikaya Gupta <kats@pancake.staktrace.com> - Tue, 16 Mar 2021 00:02:22 +0000 - rev 571371
Push 138615 by kgupta@mozilla.staktrace.com at Tue, 16 Mar 2021 00:05:09 +0000
Bug 1698441 - Remove call to synthesizeNativeWheelAndWaitForWheelEvent. r=tnikkel This test is not actually run in CI (disabled via mochitest.ini), so this has zero effect. Even if it did run, the call to synthesizeNativeWheelAndWaitForWheelEvent is not passing in a callback function; it runs the following rAF line immediately. So calling the function that "waits for the wheel event" is pointless, we can just call the version that synthesizes the native wheel input and it is functionally identical. Depends on D108441 Differential Revision: https://phabricator.services.mozilla.com/D108442
17ea875973698f3eb5c1aaf8100da9ea454ace5c: Bug 1698439 - Flatten async function in browser_test_background_tab_scroll.js to remove flushApzRepaints call. r=tnikkel
Kartikaya Gupta <kats@pancake.staktrace.com> - Tue, 16 Mar 2021 00:02:21 +0000 - rev 571370
Push 138615 by kgupta@mozilla.staktrace.com at Tue, 16 Mar 2021 00:05:09 +0000
Bug 1698439 - Flatten async function in browser_test_background_tab_scroll.js to remove flushApzRepaints call. r=tnikkel Depends on D108440 Differential Revision: https://phabricator.services.mozilla.com/D108441
4975e908a500769d1660c0be14470b35590e25b4: Bug 1698439 - Remove unused callback-style function. r=tnikkel
Kartikaya Gupta <kats@pancake.staktrace.com> - Tue, 16 Mar 2021 00:02:21 +0000 - rev 571369
Push 138615 by kgupta@mozilla.staktrace.com at Tue, 16 Mar 2021 00:05:09 +0000
Bug 1698439 - Remove unused callback-style function. r=tnikkel Depends on D108439 Differential Revision: https://phabricator.services.mozilla.com/D108440
ca126558654045b727bc9f290cf3fbb4a854dc01: Bug 1698439 - Replace calls to flushApzRepaints with promise equivalent. r=tnikkel
Kartikaya Gupta <kats@pancake.staktrace.com> - Tue, 16 Mar 2021 00:02:20 +0000 - rev 571368
Push 138615 by kgupta@mozilla.staktrace.com at Tue, 16 Mar 2021 00:05:09 +0000
Bug 1698439 - Replace calls to flushApzRepaints with promise equivalent. r=tnikkel These tests are too annoying to restructure completely, so I'm just doing a local inlining of the function here. Depends on D108438 Differential Revision: https://phabricator.services.mozilla.com/D108439
add138f102a24d6c156188f470f7736417654d92: Bug 1698439 - Rearrange helper_override_root.html to remove flushApzRepaints call. r=tnikkel
Kartikaya Gupta <kats@pancake.staktrace.com> - Tue, 16 Mar 2021 00:02:20 +0000 - rev 571367
Push 138615 by kgupta@mozilla.staktrace.com at Tue, 16 Mar 2021 00:05:09 +0000
Bug 1698439 - Rearrange helper_override_root.html to remove flushApzRepaints call. r=tnikkel This restructures the test from a callback-style test into an async/await-style test that is functionally equivalent. Depends on D108437 Differential Revision: https://phabricator.services.mozilla.com/D108438
4744d71c3ec9d8196946ae368bac96127076a48f: Bug 1698439 - Rearrange helper_iframe_pan.html to remove flushApzRepaints call. r=tnikkel
Kartikaya Gupta <kats@pancake.staktrace.com> - Tue, 16 Mar 2021 00:02:20 +0000 - rev 571366
Push 138615 by kgupta@mozilla.staktrace.com at Tue, 16 Mar 2021 00:05:09 +0000
Bug 1698439 - Rearrange helper_iframe_pan.html to remove flushApzRepaints call. r=tnikkel This restructures the test from a callback-style test into an async/await-style test that is functionally equivalent. Depends on D108436 Differential Revision: https://phabricator.services.mozilla.com/D108437
919a63bd8acd50f6b1a8e92a5cc13d46f896b270: Bug 1698439 - Rearrange helper_div_pan.html to remove flushApzRepaints call. r=tnikkel
Kartikaya Gupta <kats@pancake.staktrace.com> - Tue, 16 Mar 2021 00:02:19 +0000 - rev 571365
Push 138615 by kgupta@mozilla.staktrace.com at Tue, 16 Mar 2021 00:05:09 +0000
Bug 1698439 - Rearrange helper_div_pan.html to remove flushApzRepaints call. r=tnikkel This restructures the test from a callback-style test into an async/await-style test that is functionally equivalent. Depends on D108435 Differential Revision: https://phabricator.services.mozilla.com/D108436
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 tip