39207d39e5c2: Bug 1498812 - Part 9: Switch session store/session history to use visual viewport for scroll position tracking. r=mikedeboer,snorp
Jan Henning <jh+bugzilla@buttercookie.de> - Fri, 11 Jan 2019 19:50:09 +0000 - rev 453553
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1498812 - Part 9: Switch session store/session history to use visual viewport for scroll position tracking. r=mikedeboer,snorp For simplicity's sake, for now we keep storing only one scroll position per history entry (bug 1499210), so if we have to choose between the layout and the visual viewport, the latter is a vastly better choice, as it more accurately represents the scroll position as perceived by the user, especially when the page has been pinch-zoomed. This also means that instead of the normal scroll events, the session store now has to listen for the corresponding events specific to the visual viewport. We also extend the scroll position test to check that the scroll position isn't just properly saved, but also actually properly restored in practice as well. We only add this test now instead of already adding it beforehand like we did with the rest of the test - to avoid having to temporarily extend the checkScroll() helper function to deal with todo()/todo_is etc. - because getting that part of the test to complete without timing out (which would be one of its natural failure modes, because the expected events would be missing) would require faking even more scroll events - because we already have the todo() tests that are telling us the we didn't *store* any scroll position in the first place, so there's no point in trying to actually restore anything For the GeckoView saveAndRestoreState test, we now spin the event loop once before setting the scroll position in order to give APZ opportunity to settle down after the initial page load. Differential Revision: https://phabricator.services.mozilla.com/D15690
2d9a52630c04: Bug 1498812 - Part 8: Simplify docshell's GetCurScrollPos() function. r=nika
Jan Henning <jh+bugzilla@buttercookie.de> - Fri, 11 Jan 2019 19:49:56 +0000 - rev 453552
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1498812 - Part 8: Simplify docshell's GetCurScrollPos() function. r=nika This is now only being used as a purely internal helper function, so there's no need for mucking about with nsresults, out parameters, retrieving x- and y- coordinates separately, etc. Differential Revision: https://phabricator.services.mozilla.com/D15689
c4fbfcb5239b: Bug 1498812 - Part 7: Generally enable Visual Viewport for Mochitests. r=botond
Jan Henning <jh+bugzilla@buttercookie.de> - Fri, 11 Jan 2019 19:49:41 +0000 - rev 453551
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1498812 - Part 7: Generally enable Visual Viewport for Mochitests. r=botond Easier than separately enabling it for each test in turn, and shouldn't have any bad side effects on tests that don't care about it, as this only exposes the new Window.visualViewport object, but doesn't change anything else. Differential Revision: https://phabricator.services.mozilla.com/D15688
4eccacfc8801: Bug 1498812 - Part 6: Allow promiseBrowserEvent to listen in system group. r=mikedeboer
Jan Henning <jh+bugzilla@buttercookie.de> - Fri, 11 Jan 2019 19:49:34 +0000 - rev 453550
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1498812 - Part 6: Allow promiseBrowserEvent to listen in system group. r=mikedeboer Likewise the only way to catch our internal visual viewport events. Differential Revision: https://phabricator.services.mozilla.com/D15687
710922bc053a: Bug 1498812 - Part 5: Allow registering System event listeners through nsSessionStoreUtils. r=nika
Jan Henning <jh+bugzilla@buttercookie.de> - Fri, 11 Jan 2019 19:49:28 +0000 - rev 453549
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1498812 - Part 5: Allow registering System event listeners through nsSessionStoreUtils. r=nika Our internal Visual Viewport scroll events are dispatched system group-only, so this is the only way to catch them. Differential Revision: https://phabricator.services.mozilla.com/D15686
7b00521b6f31: Bug 1498812 - Part 4: Add scroll position test that is specifically testing the Visual Viewport. r=mikedeboer
Jan Henning <jh+bugzilla@buttercookie.de> - Fri, 11 Jan 2019 20:36:16 +0000 - rev 453548
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1498812 - Part 4: Add scroll position test that is specifically testing the Visual Viewport. r=mikedeboer The existing tests didn't catch this problem, because calling scrollTo(), which is both what a) the session store and session history itself are currently using to set the scroll position to be restored, as well as b) how the existing session store test is setting the page up to be scrolled ready for testing forces both the layout and visual viewport positions to the respective coordinates, even if the same configuration of visual and layout viewport offsets could never be achieved through manual scrolling (i.e. bug 1516056). This then triggers all the expected events and makes it so that reading the scroll position through the layout viewport returns the expected values, which is why the existing tests never noticed that something is off. Therefore, we introduce a test here that has a page where the layout viewport can never scroll (at least horizontally) and where we simulate scrolling by actually inputting fake touch events instead of simply calling scrollTo(). This will result in only the visual viewport scrolling, ensuring that we can properly test the new expected behaviour of the session store and session history. Because layout and visual viewport scroll positions aren't necessarily updated at exactly the same time and the session store is currently still relying on the conventional "scroll" events (relating to the layout viewport), which means the tests have to rely on the same events, too, we don't yet switch all session store tests to generally verify the current scroll position of the page using the visual viewport, and temporarily make this only opt-in via the corresponding helper function in head_scroll.js. I know that the proper way to reference "foreign" files in text manifests is to use !/absolute/path/to/file/helper.js, but as one of the files originally comes from a chrome mochitest and the other one (apz_test_utils.js) doesn't and this test itself is a chrome mochitest, this was the best way I found to get both files copied into the correct directory on the test device so the test could access them. Differential Revision: https://phabricator.services.mozilla.com/D15685
bf744ce7867a: Bug 1498812 - Part 3: Move scroll position test helper functions into separate file. r=mikedeboer
Jan Henning <jh+bugzilla@buttercookie.de> - Fri, 11 Jan 2019 20:21:06 +0000 - rev 453547
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1498812 - Part 3: Move scroll position test helper functions into separate file. r=mikedeboer ... so it can be shared across multiple test files. Also make slightly more use of modern JS features for destructuring objects etc. Differential Revision: https://phabricator.services.mozilla.com/D15684
bbbb9e3c793d: Bug 1498812 - Part 2: Switch GeckoViewScrollChild to use the visual viewport. r=snorp
Jan Henning <jh+bugzilla@buttercookie.de> - Fri, 11 Jan 2019 19:49:04 +0000 - rev 453546
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1498812 - Part 2: Switch GeckoViewScrollChild to use the visual viewport. r=snorp Given the usage example of pull-to-refresh in bug 1371796, downstream consumers will probably more interested in the true visible scroll position of the user within the page, i.e. the visual viewport. Listening for *visual* viewport events will also definitively be required to get the saveAndRestoreState GeckoView test properly working once we switch Gecko's session store helper function to use the *visual* viewport scroll position. Differential Revision: https://phabricator.services.mozilla.com/D15682
466e822d2986: Bug 1498812 - Part 1: Add helper method for directly retrieving the visual viewport's position. r=botond
Jan Henning <jh+bugzilla@buttercookie.de> - Fri, 11 Jan 2019 19:49:39 +0000 - rev 453545
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1498812 - Part 1: Add helper method for directly retrieving the visual viewport's position. r=botond Mainly required for testing. Differential Revision: https://phabricator.services.mozilla.com/D15683
0279e3d8b2f1: Bug 1519322 - Wrap unhandled/handled promise properly in JS shell promise rejection tracker. r=jorendorff
Tooru Fujisawa <arai_a@mac.com> - Fri, 11 Jan 2019 21:11:50 +0000 - rev 453544
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1519322 - Wrap unhandled/handled promise properly in JS shell promise rejection tracker. r=jorendorff Differential Revision: https://phabricator.services.mozilla.com/D16303
4af076789478: Bug 1513057 - P8: Report telemetry from socket process to parent process r=dragana,mayhemer,janerik
Kershaw Chang <kershaw@mozilla.com> - Fri, 11 Jan 2019 20:59:35 +0000 - rev 453543
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1513057 - P8: Report telemetry from socket process to parent process r=dragana,mayhemer,janerik Differential Revision: https://phabricator.services.mozilla.com/D14362
c65c63971388: Bug 1513057 - P7: Setup Gecko profiler on the socket process r=dragana,mayhemer,mstange
Kershaw Chang <kershaw@mozilla.com> - Fri, 11 Jan 2019 20:58:18 +0000 - rev 453542
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1513057 - P7: Setup Gecko profiler on the socket process r=dragana,mayhemer,mstange Differential Revision: https://phabricator.services.mozilla.com/D14351
5b73660fb915: Bug 1513057 - P6: Create Background between content process and socket process r=dragana,mayhemer
Kershaw Chang <kershaw@mozilla.com> - Fri, 11 Jan 2019 20:56:39 +0000 - rev 453541
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1513057 - P6: Create Background between content process and socket process r=dragana,mayhemer Differential Revision: https://phabricator.services.mozilla.com/D14348
b5904e4ffc0c: Bug 1513057 - P5: Create IPC between content process and socket process r=dragana,mayhemer
Kershaw Chang <kershaw@mozilla.com> - Fri, 11 Jan 2019 20:55:07 +0000 - rev 453540
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1513057 - P5: Create IPC between content process and socket process r=dragana,mayhemer Differential Revision: https://phabricator.services.mozilla.com/D14257
ca35e0cd0782: Bug 1513057 - P4: Update online/offline status to socket process r=dragana,mayhemer
Kershaw Chang <kershaw@mozilla.com> - Fri, 11 Jan 2019 20:54:06 +0000 - rev 453539
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1513057 - P4: Update online/offline status to socket process r=dragana,mayhemer Differential Revision: https://phabricator.services.mozilla.com/D14161
7c4eddc3a80d: Bug 1513057 - P3: Setup memory reporter on socket process r=dragana,mayhemer
Kershaw Chang <kershaw@mozilla.com> - Fri, 11 Jan 2019 20:52:39 +0000 - rev 453538
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1513057 - P3: Setup memory reporter on socket process r=dragana,mayhemer To setup memory reporter on socket process, this patch modifies the PSocketProcess protocol to implement the same memory reporting functions as the PContent and PGPU protocols. Differential Revision: https://phabricator.services.mozilla.com/D14155
ba234cd89920: Bug 1513057 - P2: Setup crash reporter on socket process r=dragana,mayhemer
Kershaw Chang <kershaw@mozilla.com> - Fri, 11 Jan 2019 18:48:25 +0000 - rev 453537
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1513057 - P2: Setup crash reporter on socket process r=dragana,mayhemer This patch is quite straightforward. Just add socket process support. Differential Revision: https://phabricator.services.mozilla.com/D14151
696250a73120: Bug 1513057 - P1.1: Create a reusable class to pass prefs to child processes r=dragana
Kershaw Chang <kershaw@mozilla.com> - Fri, 11 Jan 2019 18:39:22 +0000 - rev 453536
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1513057 - P1.1: Create a reusable class to pass prefs to child processes r=dragana Differential Revision: https://phabricator.services.mozilla.com/D14970
c083f11eb58d: Bug 1513057 - P1: Start the new socket process basics (prefs, full xpcom init, logging, no sandboxing) r=mayhemer,dragana
Kershaw Chang <kershaw@mozilla.com> - Fri, 11 Jan 2019 18:57:23 +0000 - rev 453535
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1513057 - P1: Start the new socket process basics (prefs, full xpcom init, logging, no sandboxing) r=mayhemer,dragana Differential Revision: https://phabricator.services.mozilla.com/D14148
8699d4c48838: Bug 1513733 - part4 : do not call suspendInternal() when constructing AudioContext r=karlt
alwu <alwu@mozilla.com> - Fri, 11 Jan 2019 18:54:43 +0000 - rev 453534
Push 35360 by nbeleuzu@mozilla.com at Sat, 12 Jan 2019 09:39:47 +0000
Bug 1513733 - part4 : do not call suspendInternal() when constructing AudioContext r=karlt As setting `mSuspendCalled` is enough to prevent the stream from starting, we have no need to apply unnessary audio context operation to MSG. In addition, it can avoid incorrect AudioContext's state because of out of order resume/suspend operation (https://bugzilla.mozilla.org/show_bug.cgi?id=1285290). Differential Revision: https://phabricator.services.mozilla.com/D15679
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 tip