searching for reviewer(botond)
da07df7207b10a3177cbfd8b00070ede8a2a9bf7: Bug 1738696. Add test. r=botond,a=dsmith
Timothy Nikkel <tnikkel@gmail.com> - Wed, 08 Dec 2021 12:55:56 +0000 - rev 674952
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1738696. Add test. r=botond,a=dsmith Differential Revision: https://phabricator.services.mozilla.com/D132145
353e7d9187332ec2f1dbbce7b7b2afae6b83c7ea: Bug 1738696. Don't allow AsyncPanZoomController::ZoomToRect to change zoom to a value outside of zoom constraints. r=botond,a=dsmith
Timothy Nikkel <tnikkel@gmail.com> - Wed, 08 Dec 2021 12:55:56 +0000 - rev 674951
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1738696. Don't allow AsyncPanZoomController::ZoomToRect to change zoom to a value outside of zoom constraints. r=botond,a=dsmith The scrollable rect doesn't seem to include the dynamic toolbar, whereas the composition bounds seem to, so we can compute a value that is outside of the zoom constraints. This code was introduced in https://hg.mozilla.org/mozilla-central/rev/5e0366a64dfc Differential Revision: https://phabricator.services.mozilla.com/D131904
7adf6ba80da3cf8139b2c4f839b47792788f494c: Bug 1743533. Add test. r=botond,hiro
Timothy Nikkel <tnikkel@gmail.com> - Mon, 06 Dec 2021 01:08:55 +0000 - rev 674854
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1743533. Add test. r=botond,hiro Differential Revision: https://phabricator.services.mozilla.com/D132790
1aa49c6169602b59cc33206e2fb92b052946900b: Bug 1743533. Handle the visible rect of oop iframes that span multiple pages in print documents. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Mon, 06 Dec 2021 01:08:55 +0000 - rev 674853
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1743533. Handle the visible rect of oop iframes that span multiple pages in print documents. r=botond Differential Revision: https://phabricator.services.mozilla.com/D132789
78cf4a70fac5e3490ccf4287ef4feb95b76db0ed: Bug 1743727. Only output logging if zoom constraints change. r=botond,hiro
Timothy Nikkel <tnikkel@gmail.com> - Wed, 01 Dec 2021 00:56:03 +0000 - rev 674509
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1743727. Only output logging if zoom constraints change. r=botond,hiro Differential Revision: https://phabricator.services.mozilla.com/D132532
83be8bfd3311862c58d73cb79b7b9d5345fa372a: Bug 1742495 - Drop ScrollOrigin argument from ScrollToCSSPixelsApproximate. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Tue, 23 Nov 2021 02:05:33 +0000 - rev 673640
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1742495 - Drop ScrollOrigin argument from ScrollToCSSPixelsApproximate. r=botond And rename the function to ScrollToCSSPixelsForApz. Differential Revision: https://phabricator.services.mozilla.com/D131854
70c6614f03720604627dd8ad5e65ae9ccf34bdf6: Bug 1741326. Remove most cases of setting apz.zoom-to-focused-input.enabled=false in tests. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Mon, 22 Nov 2021 11:48:25 +0000 - rev 673563
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1741326. Remove most cases of setting apz.zoom-to-focused-input.enabled=false in tests. r=botond editor/libeditor/tests/test_bug549262.html fails, so I had to leave one use. Not sure why, the history of that test has my changes to properly handle waiting for scrolls, flushing out pending scrolls etc, but it still gets an unexpected scroll. Rather than spend time investigating it I'll just make the change where we can, maybe another day. We don't seem to need the pref anymore in dom/base/test/useractivation/mochitest.ini, tests seem fine on try without it even with re-triggers. Differential Revision: https://phabricator.services.mozilla.com/D131195
62c1982adb93770d4223f4de943db8892733fb60: Bug 1740739 - Implement AddInputBlockCallback for APZCTreeManagerChild. r=botond
Jamie Nicol <jnicol@mozilla.com> - Sat, 20 Nov 2021 09:49:15 +0000 - rev 673496
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1740739 - Implement AddInputBlockCallback for APZCTreeManagerChild. r=botond In bug 1633322 the AddInputBlockCallback API was added to APZCTreeManager. This is only used by android, and since there is no GPU process on Android it was not implemented for APZCTreeManagerChild. This patch adds a remote APZCTreeManager implementation in preparation for adding a GPU process for Android. APZCTreeManagerChild::AddInputBlockCallback() works by maintaining a local map of the added callbacks. It sends a message to the parent via SendAddInputBlockCallback(), and in RecvAddInputBlockCallback() the parent calls AddInputBlockCallback() on its local APZCTreeManager instance. This callback is simply responsible for sending a message back to the child with SendCallInputBlockCallback(). Upon receiving this message the child will, finally, look up the original callback from its local map and call it. Some care must be taken with the intermediate callback described above, as because APZCTreeManagerParent is not a refcounted type we cannot safely capture a reference to it. Instead, we capture the APZCTreeManagerParent's LayersId, and then look up the instance from the CompositorBridgeParent using the ID. Differential Revision: https://phabricator.services.mozilla.com/D131122
e8a106468e6c740425e9249795ea7fef994a94c3: Bug 1340301 - Ensure APZ functions are called from correct threads on Android with GPU process. r=botond
Jamie Nicol <jnicol@mozilla.com> - Sat, 20 Nov 2021 09:49:14 +0000 - rev 673495
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1340301 - Ensure APZ functions are called from correct threads on Android with GPU process. r=botond On Android the APZ controller thread is the android UI thread, rather than the Gecko main thread as on other platforms. There some places where the main thread requires to call IAPZCTreeManager functions that must run on the controller thread. Currently we use the function DispatchToControllerThread() prior to calling various IAPZCTreeManager APIs to achieve this. This works just fine for now, as there is no GPU process on Android. However, once we do add a GPU process we will encounter issues: Firstly, there will now be a cross-process APZInputBridge rather than using an in-process APZCTreeManager. The PAPZInputBridge protocol is managed by PGPU, and therefore must run on the main thread in the parent process. The input we require to send over the bridge, however, originates from the UI thread. To solve this we can convert PAPZInputBridge to a top-level protocol, and bind it to the UI thread on Android. We can then send input directly from the UI thread without issues. Secondly, the PAPZCTreeManager protocol must also run from the main thread in the parent process, as it is managed by PCompositorBridge. Unlike PAPZInputBridge we cannot convert PAPZCTreeManager in to a top level protocol, as it relies on the ordering guarantees with PCompositorBridge. We must therefore ensure that we only dispatch IAPZCTreeManager calls to the controller thread when using an in-process APZCTreeManager. Out-of-process calls, on the other hand, must be dispatched to the main thread where we can send IPDL commands from. To do this, we move the dispatch logic away from the callsites of IAPZCTreeManager APIs, and in to the APZCTreeManager and APZCTreeManagerChild implementations themselves. Differential Revision: https://phabricator.services.mozilla.com/D131120
361c96f8f3126e8cb4c5abeff52bdfbe1b8520b1: Bug 1692708 - Add scrollTo and scrollTop test cases in helper_relative_scroll_smoothness.html. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Fri, 12 Nov 2021 07:54:18 +0000 - rev 672813
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1692708 - Add scrollTo and scrollTop test cases in helper_relative_scroll_smoothness.html. r=botond Differential Revision: https://phabricator.services.mozilla.com/D129595
f26b5d17b34bd52b91e54f081dd2893f8de89355: Bug 1692708 - Transmogrify ScrollToCSSPixels to ScrollByCSSPixels if there's any on-going APZ animation and there's no on-going async scroll by script. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Fri, 12 Nov 2021 07:54:17 +0000 - rev 672812
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1692708 - Transmogrify ScrollToCSSPixels to ScrollByCSSPixels if there's any on-going APZ animation and there's no on-going async scroll by script. r=botond test_abort_smooth_scroll_by_instant_scroll.html in this comment is a test case to make sure this change doesn't regress a case where a smoothe scrolling run by an APZC is replaced by an instant scroll operation by script. Some other mochitests for this change are in the next commit. Differential Revision: https://phabricator.services.mozilla.com/D129594
b31c1668258d9d9971455acbfdf5fe8dda341cb4: Bug 1692708 - Add cancelScrollAnimation and use it in window_bug1369072.html and browser_scroll.js. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Fri, 12 Nov 2021 07:54:17 +0000 - rev 672811
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1692708 - Add cancelScrollAnimation and use it in window_bug1369072.html and browser_scroll.js. r=botond Both window_bug1369072.html and browser_scroll.js have a pattern something like; 1) Call synthesizeKey to scroll an element 2) Wait a scroll event 3) Test something 4) (Re)set the scroll position to (0, 0) by calling Element.scrollTop and Element.scrollLeft or scrollTo. With the new transmogrification the step 4) will not reset the scroll position if there's an on-going scroll animation in APZ triggered by the synthesizeKey. To avoid the situation where there's an on-going animation at the step 4), we destroy the corresponding scrollable frame and reconstruct it so that it clobbers the animation. Differential Revision: https://phabricator.services.mozilla.com/D130852
8beac9395793408b7df26dabad87e124deb654c0: Bug 1692708 - Run helper_relative_scroll_smoothness.html with native key events both on Windows and Mac. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Fri, 12 Nov 2021 07:54:17 +0000 - rev 672810
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1692708 - Run helper_relative_scroll_smoothness.html with native key events both on Windows and Mac. r=botond synthesizeKey() just invokes a corresponding command. In "KEY_ArrowDown" case it's nsISelectionController::ScrollLine [1] which is actually PresShell::ScrollLine which calls nsIScrollable::ScrollBy, that's not what we wanted to test for bug 1692707. To exercise APZ's keyboard scrolling we need to use synthesizeNativeKey instead. [1] https://searchfox.org/mozilla-central/rev/126f016b59513988fae56c2b3f69c1cd23fe6ca1/dom/base/nsGlobalWindowCommands.cpp#363-364 Differential Revision: https://phabricator.services.mozilla.com/D129593
d4b0e298abedca357a26aea4e30a59f0d7255442: Bug 1692708 - Run helper_relative_scroll_smoothness.html with mouse wheel events. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Fri, 12 Nov 2021 07:54:16 +0000 - rev 672809
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1692708 - Run helper_relative_scroll_smoothness.html with mouse wheel events. r=botond Differential Revision: https://phabricator.services.mozilla.com/D129592
bfd44deda9c78268df3282de1136bcb8f3cb9e50: Bug 1739541 - Introduce APZScrollAnimationType and use it in RepaintRequest and ScrollFrameHelopr instead of a boolean representing whether there's an animation or not. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Tue, 09 Nov 2021 09:19:26 +0000 - rev 672424
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1739541 - Introduce APZScrollAnimationType and use it in RepaintRequest and ScrollFrameHelopr instead of a boolean representing whether there's an animation or not. r=botond Differential Revision: https://phabricator.services.mozilla.com/D130421
1288f0879002da38daca8d1f056d419fc80c266b: Bug 1739541 - Use `using` instead of `typedef` in nsGfxScrollFrame.h. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Tue, 09 Nov 2021 09:19:26 +0000 - rev 672423
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1739541 - Use `using` instead of `typedef` in nsGfxScrollFrame.h. r=botond Differential Revision: https://phabricator.services.mozilla.com/D130566
4c0fdefcf0a0c89a531f1fce19728afae1b5debd: Bug 1739541 - Introduce WasTriggeedByScript() function in AsyncPanZoomAnimation class. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Tue, 09 Nov 2021 09:19:26 +0000 - rev 672422
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1739541 - Introduce WasTriggeedByScript() function in AsyncPanZoomAnimation class. r=botond Differential Revision: https://phabricator.services.mozilla.com/D130420
981eef98a585d2754e2052cd740f79cc2042b550: Bug 1739541 - Set `TriggerByScript::Yes` for Element.scrollIntoView. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Tue, 09 Nov 2021 09:19:25 +0000 - rev 672421
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1739541 - Set `TriggerByScript::Yes` for Element.scrollIntoView. r=botond We'd want to differentiate Element.scrollIntoView call as `triggeredByScript`. Differential Revision: https://phabricator.services.mozilla.com/D130419
dcfcbfd27ea58cc1b8879c41a72f215bad97aab6: Bug 1739541 - Introduce TriggeredByScript in ScrollPositionUpdate and set `Yes` for ScrollToCSSPixels and ScrollByCSSPixels. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Tue, 09 Nov 2021 09:19:25 +0000 - rev 672420
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1739541 - Introduce TriggeredByScript in ScrollPositionUpdate and set `Yes` for ScrollToCSSPixels and ScrollByCSSPixels. r=botond Both ScrollToCSSPixels and ScrollByCSSPixels are called only from JS via Element.scrollTo, Element.scrollTop, Element.scrollLeft, Window.scroll, Window.scrollTo and Window.scrollBy. Note that we don't target either Window.scrollByLines or Window.scrollByPages (both end up calling ScrollFrameHelper::ScrollBy) because both are triggered by user interactions for our XUL tree implementation, for example Window.scrollByLines gets called in response to a DOMMouseScroll event in tree.js [1]. [1] https://searchfox.org/mozilla-central/rev/a12c2c2e59c92d8f969d8f3f290ab16919449c9d/toolkit/content/widgets/tree.js#788 Differential Revision: https://phabricator.services.mozilla.com/D130418
19252a004ff3576a7d4db99b7009200916333a25: Bug 1739541 - Drop `e` prefix from ScrollMode comments. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Tue, 09 Nov 2021 09:19:24 +0000 - rev 672419
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1739541 - Drop `e` prefix from ScrollMode comments. r=botond Differential Revision: https://phabricator.services.mozilla.com/D130417
5420b6c278b538679ae7efc5d6e2140acfd167f5: Bug 1739541 - Drop ScrollOrigin argument from ScrollToCSSPixels. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Tue, 09 Nov 2021 09:19:24 +0000 - rev 672418
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1739541 - Drop ScrollOrigin argument from ScrollToCSSPixels. r=botond There are 4 call sites of the function, Element::Scroll, Element::SetScrollTop, Element::SetScrollLeft and nsGlobalWindowInner::ScrollTo. None of call sites specifies ScrollOrigin. Differential Revision: https://phabricator.services.mozilla.com/D130416
21ff7d9ba6df4613a76071adc61a8e6359c5096e: Bug 1739541 - Drop ScrollOrigin argument from ScrollByCSSPixels. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Tue, 09 Nov 2021 09:19:24 +0000 - rev 672417
Push 2724 by ffxbld-merge at Mon, 03 Jan 2022 22:10:59 +0000
Bug 1739541 - Drop ScrollOrigin argument from ScrollByCSSPixels. r=botond All call sites of ScrollByCSSPixels specify ScrollOrigin::Relative. Differential Revision: https://phabricator.services.mozilla.com/D130415
9085cdd07acb507e1b678e16c7ef0dc0365013e8: Bug 1692707 - Shift sampled scroll offsets with the delta rather than clobbering them with the latest one in the case of relative scroll updates. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Fri, 22 Oct 2021 10:31:36 +0000 - rev 670234
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1692707 - Shift sampled scroll offsets with the delta rather than clobbering them with the latest one in the case of relative scroll updates. r=botond helper_relative_scroll_smoothness.html is basically based on the test case Markus attached in bug 1692707 comment 0 (which is a really great test case!). It expands its content and changes the root scroller's scroll position periodically and causes a 100ms jank every 300ms. In the meantime the parent process tries to send arrow down key press events so that the helper content is scrolled by APZ. Without this fix, there will appear same scroll offsets when the scroll position is changed in the content because it clobbers previously-sampled scroll offsets, with this fix it won't happen. Differential Revision: https://phabricator.services.mozilla.com/D128704
f9863e27b04f54c74f15e4b17fd750a8b57dd91d: Bug 1692707 - Add sampled scroll offsets field in APZTestData to evaluate scroll _smoothness_ in mochitests. r=botond,emilio
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Fri, 22 Oct 2021 10:14:15 +0000 - rev 670232
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1692707 - Add sampled scroll offsets field in APZTestData to evaluate scroll _smoothness_ in mochitests. r=botond,emilio Differential Revision: https://phabricator.services.mozilla.com/D128827
2226e24d027d9b39b2aa8b74eb14189c36d2dad3: Bug 1734478. Remove MaxSizeExceededBehaviour from displayport getter options as it is unused. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Mon, 18 Oct 2021 07:48:11 +0000 - rev 669688
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1734478. Remove MaxSizeExceededBehaviour from displayport getter options as it is unused. r=botond The reason that GetDisplayPortForVisibilityTesting was using Drop was because there is a test that sets a 10x zoom and we ran image visibility without updating the displayport base rect (painting would update it), so the returned displayport was based on the much larger base rect. The patches goal was to avoid the assert we removed. Using a displayport that large in that situation for image visibility seems fine because it shouldn't make us decode any more images then were previously already visible. Depends on D127731 Differential Revision: https://phabricator.services.mozilla.com/D127732
3e844ac540bd6a0d8595bfdaefbaa5e291b75eb0: Bug 1721601. Add test. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Sat, 16 Oct 2021 05:07:56 +0000 - rev 669613
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1721601. Add test. r=botond Differential Revision: https://phabricator.services.mozilla.com/D128590
fc0a680bc208dd7f6d8d3ab1c4b0a9c52950e5b6: Bug 1721601. If an element has a non-passive wheel listener don't do the "zoom in if can't zoom out" behaviour for macOS double tap zooms. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Sat, 16 Oct 2021 05:07:56 +0000 - rev 669612
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1721601. If an element has a non-passive wheel listener don't do the "zoom in if can't zoom out" behaviour for macOS double tap zooms. r=botond With our current double tap zoom behaviour some sites like google maps or google sheets will zoom in when double tapping. This happens because of the behaviour added in bug 1713589. The goal of this change was to provide some user feedback (by zooming 1.2x) that they had double tapped when we couldn't find anything on the page to zoom in on. Chrome had this behaviour and it seemed desirable (Safari does not have this). The reason that Chrome does not zoom in on the above mentioned sites is because Chrome implements sending content a wheel event that it can preventDefault as a way to prevent the zoom from the double tap from happening (similar to pinch zooming) (Safari does not implement this, and we currently do not have this) and those sites do this preventDefaulting. That means we are the only browser that suffers from this problem. The behaviour of sending a wheel event to be potentially preventDefaulted by content is not favoured by all browser vendors. Other solutions have been proposed, but movement on this does not seem imminent. So this work around was proposed to fix this for now: disable the "zoom in if can't find something to zoom in on" behaviour if there is a non-passive wheel event listener on the target element or some ancestor. Differential Revision: https://phabricator.services.mozilla.com/D128436
9fa95cb8ad3a3f6168734a20e7cfb5fb546820b9: Bug 1721601. Move "zoom in if can't zoom out" from being a flag to part of ZoomTarget for AsyncPanZoomController::ZoomToRect. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Sat, 16 Oct 2021 05:07:55 +0000 - rev 669611
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1721601. Move "zoom in if can't zoom out" from being a flag to part of ZoomTarget for AsyncPanZoomController::ZoomToRect. r=botond Instead of passing this flag all of the time for double taps we want to decide to do this or not in CalculateRectToZoomTo. Moving it into ZoomTarget seems like a good way to do this (which is done in the next patch). Differential Revision: https://phabricator.services.mozilla.com/D128435
ad589fa8f2a650e149a7ea55950c7e78086c1430: Bug 1734356. Remove code in ScrollFrameHelper constructor that sets a displayport when apz is disabled. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Fri, 15 Oct 2021 09:41:56 +0000 - rev 669531
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1734356. Remove code in ScrollFrameHelper constructor that sets a displayport when apz is disabled. r=botond This code was added in bug 1031107 back when we didn't have apz on desktop, and even on android apz was not reported as enabled because we were using the java pan zoom code (https://bugzilla.mozilla.org/show_bug.cgi?id=1031107#c20). Looks like the goal of this code was to improve performance when tiling was enabled (splitting up layers into tiles). The code to actually do this tiling appears gone now, so we shouldn't need this. We can further ask if something might be depending on this code even though it's not related to tiling. The layers.enable.tiles pref is enabled on mac and android, so we'd have bugs on Linux and mac if that were true. Further, the only places that apz is disabled now is popups that do not have remote content in them, and the only scroll frames that are IsAlwaysActive are root scroll frames of root content documents (in process). If addons put an iframe in a popup I think it has to be remote, and I don't think we have any content documents in popups, and if we did and there was a problem with removing that code we'd already have that problem on Linux and Windows. So this should be safe to remove. Differential Revision: https://phabricator.services.mozilla.com/D127635
788cf4242ab0fef16b67d917e15d4b11cb749c4c: Bug 1730998 - Remove apz peek messages stuff. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Thu, 14 Oct 2021 09:43:03 +0000 - rev 669391
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1730998 - Remove apz peek messages stuff. r=botond This stuff is now a no-op because the RequestContentRepaint message has a higher priority than vsync. Depends on D127033 Differential Revision: https://phabricator.services.mozilla.com/D127593
fca207e78b1275a5ffe740fd57146922baf2631a: Bug 1730998 - Add a browser mochitest to make sure a position:sticky element gets painted properly during fast async scrolling. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Thu, 14 Oct 2021 09:43:03 +0000 - rev 669390
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1730998 - Add a browser mochitest to make sure a position:sticky element gets painted properly during fast async scrolling. r=botond This test is based on a test case attached in bug 1585378. This test has to be a browser mochitest since we need to drag the root content vertical scroll thumb during the content process is under heavy load to build a tons of display items. Depends on D127032 Differential Revision: https://phabricator.services.mozilla.com/D127033
31bba792417df1e319efdac2ffdde3469ac89bc0: Bug 1730998 - Use `control` priority for RequestContentRepaint and NotifyFlushComplete, and process them in an early refresh driver runner. r=botond,smaug
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Thu, 14 Oct 2021 09:43:02 +0000 - rev 669389
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1730998 - Use `control` priority for RequestContentRepaint and NotifyFlushComplete, and process them in an early refresh driver runner. r=botond,smaug Depends on D127030 Differential Revision: https://phabricator.services.mozilla.com/D127032
c82acc1c45099f04294720b71200d2425c80f665: Bug 1725569. Send visualViewport resize events for iframes. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Wed, 13 Oct 2021 03:01:34 +0000 - rev 669153
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1725569. Send visualViewport resize events for iframes. r=botond Differential Revision: https://phabricator.services.mozilla.com/D127941
d3e28b05c8d6a57f1c8eaae0d3c2cf4eb99f5652: Bug 1731575. Don't use nsIScrollableFrame::IsScrollingActive when making decisions about what to send to the compositor about sticky position content. r=mattwoodrow,botond
Timothy Nikkel <tnikkel@gmail.com> - Sun, 10 Oct 2021 09:07:54 +0000 - rev 668812
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1731575. Don't use nsIScrollableFrame::IsScrollingActive when making decisions about what to send to the compositor about sticky position content. r=mattwoodrow,botond nsIScrollableFrame::IsScrollingActive basically means "has this scroll frame been scrolled recently or is this the root scroll frame". Neither of which is relevant when we are async scrolling a scrollframe on the compositor. What determines if we can scroll a scroll frame async is ScrollFrameHelper::mWillBuildScrollableLayer, aka nsIScrollableFrame::IsMaybeAsynchronouslyScrolled. The code in nsDisplayStickyPosition::GetStickyScrollContainer already mostly neuters nsDisplayStickyPosition is this isn't the case, this just takes it one step further. This also removes one more user of nsIScrollableFrame::IsScrollingActive, there are only a handful left. Differential Revision: https://phabricator.services.mozilla.com/D126427
583fa45beeede23d6a01bd57cddb080217eaa01d: Bug 1733363. Make FrameMetrics::mCumulativeResolution a 1d scale. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Sat, 09 Oct 2021 12:49:40 +0000 - rev 668806
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1733363. Make FrameMetrics::mCumulativeResolution a 1d scale. r=botond Differential Revision: https://phabricator.services.mozilla.com/D127115
452b230b72765029d47a527eccba789869e1b7e3: Bug 1725569. Send visualViewport resize events for iframes. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Sat, 09 Oct 2021 08:41:56 +0000 - rev 668803
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1725569. Send visualViewport resize events for iframes. r=botond Differential Revision: https://phabricator.services.mozilla.com/D127941
6fd0f259861f8d328a9794c8cc3e5a2eb8c2df05: Bug 1733332. Switch GetPaintedLayerScaleForFrame to use nsLayoutUtils::GetTransformToAncestorScaleCrossProcessForFrameMetrics now that they are the same. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Fri, 08 Oct 2021 06:21:51 +0000 - rev 668706
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1733332. Switch GetPaintedLayerScaleForFrame to use nsLayoutUtils::GetTransformToAncestorScaleCrossProcessForFrameMetrics now that they are the same. r=botond Differential Revision: https://phabricator.services.mozilla.com/D127074
447f97cd7c1468fdb5bacecf8f76ff6a2e1369a7: Bug 1733332. Change nsLayoutUtils::GetTransformToAncestorScale from Is2D to CanDraw2D. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Fri, 08 Oct 2021 06:21:50 +0000 - rev 668705
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1733332. Change nsLayoutUtils::GetTransformToAncestorScale from Is2D to CanDraw2D. r=botond Differential Revision: https://phabricator.services.mozilla.com/D127073
3864fbda86cb6cdfed2353be3e39edca79735221: Bug 1733742. Remove GetHighResolutionDisplayPort. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Thu, 07 Oct 2021 05:41:19 +0000 - rev 668542
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1733742. Remove GetHighResolutionDisplayPort. r=botond With the old layers backend we had low precision buffer code controlled via the pref layers.low-precision-buffer that was used on android. We would expand the displayport by 4x and then paint it as 1/4 the resolution, and then we would have a critical displayport without the 4x multipler that we would paint at the real resolution. The code to do the painting at the lower resolution was in the layers backend and has since been removed. (This is okay because webrender doesn't rasterize all of the content in the displayport.) So the critical displayport or displayport are no longer treated differently anywhere. Except a few pieces of code that should be fixed/changed/removed. This patch being one of them. GetHighResolutionDisplayPort would return the displayport without the multipler in all situations (pref on or off). In DisplayPortUtils we are checking the displayport rect before/after setting new displayport margins to see if it changes to determine if we need to invalidate. Since the critical displayport isn't used for anything, the regular displayport is the correct thing to use here. In nsGfxScrollFrame we are doing a similar thing, except checking that the displayport doesn't change after a scroll. In nsDisplayListBuilder::OutOfFlowDisplayData::ComputeVisibleRectForFrame it's also the correct thing, as we want to include the same rect for fixed content as we do for non-fixed content. But this is an significant expansion of the dirty rect of fixed content and the code history has fixes related to drawing too much of fixed content and OOMing so a little more scrutiny is reasonable. However if there was a problem with OOM, since this is the same rect we use for non-fixed content we would have OOM problems with regular content, so this should be fine. Differential Revision: https://phabricator.services.mozilla.com/D127344
2f1a1c9216e86a1aa9c46f9d4416058eb3b8c881: Bug 1733025. Make sure the highlight text for macOS lookup feature has the right size with fission. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Wed, 06 Oct 2021 10:43:20 +0000 - rev 668417
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1733025. Make sure the highlight text for macOS lookup feature has the right size with fission. r=botond If we pinch zoomed with an oop iframe the font would not take into account the pinch zoom because GetCumulativeResolution in the child process was 1. This fix also takes into account the scale from css transforms. This is notable because in non-fission cases (fission turned off, or not in an oop iframe) we do not take into account css transforms, even after this patch. (We target the correct word, but the highlight that is drawn can be at the wrong place and have the wrong size.) Differential Revision: https://phabricator.services.mozilla.com/D126862
92641110e5c9cc095140f25cb4c79e5a15a72a64: Bug 1730998 - Remove apz peek messages stuff. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Wed, 06 Oct 2021 01:07:37 +0000 - rev 668325
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1730998 - Remove apz peek messages stuff. r=botond This stuff is now a no-op because the RequestContentRepaint message has a higher priority than vsync. Differential Revision: https://phabricator.services.mozilla.com/D127593
7e496a4d1b55f3c7572a08c17eec94e2cdc45b2e: Bug 1730998 - Add a browser mochitest to make sure a position:sticky element gets painted properly during fast async scrolling. r=botond
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Wed, 06 Oct 2021 01:07:36 +0000 - rev 668324
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1730998 - Add a browser mochitest to make sure a position:sticky element gets painted properly during fast async scrolling. r=botond This test is based on a test case attached in bug 1585378. This test has to be a browser mochitest since we need to drag the root content vertical scroll thumb during the content process is under heavy load to build a tons of display items. Differential Revision: https://phabricator.services.mozilla.com/D127033
60d769e1293285ed890d8aeec79019c2131a5e1b: Bug 1730998 - Use `control` priority for RequestContentRepaint and NotifyFlushComplete, and process them in an early refresh driver runner. r=botond,smaug
Hiroyuki Ikezoe <hikezoe.birchill@mozilla.com> - Wed, 06 Oct 2021 01:07:36 +0000 - rev 668323
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1730998 - Use `control` priority for RequestContentRepaint and NotifyFlushComplete, and process them in an early refresh driver runner. r=botond,smaug Differential Revision: https://phabricator.services.mozilla.com/D127032
4bc4810ac716b7db4aea1d36930c5cb4a5dbf1af: Bug 1732660. Make GetPaintedLayerScaleForFrame use transform to ancestor scale passed down from ancestor process. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Tue, 05 Oct 2021 22:40:05 +0000 - rev 668310
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1732660. Make GetPaintedLayerScaleForFrame use transform to ancestor scale passed down from ancestor process. r=botond Differential Revision: https://phabricator.services.mozilla.com/D126652
9e95cc6419d782427a79c8ec61f91cf30c619807: Bug 1732600. Make GetDisplayPortFromMarginsData use ancestor process transform to ancestor scale. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Tue, 05 Oct 2021 09:28:58 +0000 - rev 668115
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1732600. Make GetDisplayPortFromMarginsData use ancestor process transform to ancestor scale. r=botond Differential Revision: https://phabricator.services.mozilla.com/D126661
e3712c7214b8d296db806e20ade2fd94a550e838: Bug 1732600. Make ComputeDisplayportScale use the ancestor process transform to ancestor scale. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Tue, 05 Oct 2021 09:28:57 +0000 - rev 668114
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1732600. Make ComputeDisplayportScale use the ancestor process transform to ancestor scale. r=botond Differential Revision: https://phabricator.services.mozilla.com/D126660
d39165de0a11e4a26c5b6c61b5765ae9129730f1: Bug 1732600. Use ancestor process transform to ancestor scale in nsLayoutUtils::CalculateBoundingCompositionSize. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Tue, 05 Oct 2021 09:28:57 +0000 - rev 668113
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1732600. Use ancestor process transform to ancestor scale in nsLayoutUtils::CalculateBoundingCompositionSize. r=botond This else should only get hit if we can't get the docshell or content viewer from the prescontext, which should only be unusual setting up or tearing down timeframes, so it doesn't matter too much. Differential Revision: https://phabricator.services.mozilla.com/D126659
ea1f49e03b8b019c2b12be64c90636af4602773a: Bug 1732600. Pass down transform to ancestor scale to child processes. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Tue, 05 Oct 2021 09:28:57 +0000 - rev 668112
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1732600. Pass down transform to ancestor scale to child processes. r=botond In bug 1731929 we added this value, here we give it the value we want for child processes. I think the code comments should explain it. Differential Revision: https://phabricator.services.mozilla.com/D126629
fcba9b3345131a80dd5ef7e3299250bf34b6d355: Bug 1732600. Remove PixelCastJustification::TransformToAncestorScaleIsStoredUntyped. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Tue, 05 Oct 2021 09:28:56 +0000 - rev 668111
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1732600. Remove PixelCastJustification::TransformToAncestorScaleIsStoredUntyped. r=botond It is unused, it accidentally slipped in in bug 1731929 but was never used. Differential Revision: https://phabricator.services.mozilla.com/D127059
832e46a8892203ca4775e98d55d6c744d8953160: Bug 1732600. Update a comment on FrameMetrics::mCumulativeResolution. r=botond
Timothy Nikkel <tnikkel@gmail.com> - Tue, 05 Oct 2021 09:28:56 +0000 - rev 668110
Push 2706 by ffxbld-merge at Mon, 29 Nov 2021 10:48:10 +0000
Bug 1732600. Update a comment on FrameMetrics::mCumulativeResolution. r=botond This is the conclusion we came to after some discussion. Differential Revision: https://phabricator.services.mozilla.com/D126628