70136b7cb54b75cd105f7d6e6a92d9dd0240162f: Bug 1351783 part 12 - Create and sync focus sequence numbers. r=kats,botond,dvander
Ryan Hunt <rhunt@eqrion.net> - Mon, 05 Jun 2017 19:45:31 -0500 - rev 366287
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1351783 part 12 - Create and sync focus sequence numbers. r=kats,botond,dvander Focus can change at any moment in a document. This causes non-determinism and correctness problems for doing keyboard apz scrolling. To get around this, we will maintain deterministic behavior for focus changes initiated by input events and see if we can get away with more non-determinism for things like `setTimeout` In order to do this, we disable async keyboard scrolling when an input event is processed that could have a event listener. We then attach a sequence number to that input event and dispatch it to content. In content, we record the highest sequence number that we have processed from an event, and send that on each focus update. Using this, we can determine in APZ if we have a current focus target or if we are still waiting for an input event to be processed and focus to be reconfirmed. MozReview-Commit-ID: CWcu8YEFQz4
36bfbfdfa4a187ceea3aa8013963f0153b0317f3: Bug 1351783 part 11 - Sync FocusTarget with WebRenderLayerManager. r=kats
Ryan Hunt <rhunt@eqrion.net> - Tue, 13 Jun 2017 02:43:59 -0400 - rev 366286
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1351783 part 11 - Sync FocusTarget with WebRenderLayerManager. r=kats MozReview-Commit-ID: LxWt22XY5IE
8d3d222b4761f2c6cfe27c92ba0ae1dcf3c44430: Bug 1351783 part 10 - Create and sync the current FocusTarget on each layer transaction. r=kats,botond
Ryan Hunt <rhunt@eqrion.net> - Tue, 13 Jun 2017 02:00:49 -0400 - rev 366285
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1351783 part 10 - Create and sync the current FocusTarget on each layer transaction. r=kats,botond This commit modifies PresShell and nsDisplayList to send a FocusTarget update on every layer transaction. Ideally we would like to send updates as often as possible, but this seems like it works well. This can be iterated on later, if necessary. MozReview-Commit-ID: 8PFqIOhzH77
965a72722c0165313b4da4a9063896103645a827: Bug 1351783 part 9 - Disable a FocusTarget for an editable element. r=smaug
Ryan Hunt <rhunt@eqrion.net> - Mon, 05 Jun 2017 19:23:45 -0500 - rev 366284
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1351783 part 9 - Disable a FocusTarget for an editable element. r=smaug This commit updates FocusTarget to disable itself if the focused element is editable, or is a part of an editable document. This is needed because we cannot do async scrolling when this is the case. MozReview-Commit-ID: Fl7W3967djG
310bd86a94f512df05f52dd84a3576c39a0defe3: Bug 1351783 part 8 - Gather whether there are key listeners on the focused element. r=kats,smaug
Ryan Hunt <rhunt@eqrion.net> - Mon, 05 Jun 2017 19:22:16 -0500 - rev 366283
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1351783 part 8 - Gather whether there are key listeners on the focused element. r=kats,smaug This commit updates FocusTarget to collect whether there are key listeners on the event target chain for the focused element. This is needed because we cannot do async scrolling when this is the case. MozReview-Commit-ID: FhSyF6ffZ4
5ad33598aad47153febe9b2fc3be6c12462614b4: Bug 1351783 part 7 - Create FocusState and FocusTarget types. r=kats,botond
Ryan Hunt <rhunt@eqrion.net> - Mon, 05 Jun 2017 19:12:22 -0500 - rev 366282
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1351783 part 7 - Create FocusState and FocusTarget types. r=kats,botond This commit begins the work needed for tracking focus by creating two new classes, FocusTarget and FocusState. FocusState is created and used by APZCTreeManager to track the global focus information, while FocusTarget is created per layer tree and sent to APZ with local focus information. Between the two we are able to figure out what the correct scrollable layer is to use in response to a keyboard scroll. See the comment in `FocusState.h` for more details on the architecture and things needed in future patches to complete this. MozReview-Commit-ID: F75VZv3i9U2
c8dfb8a2de0028fa296e6557612a8c60b167f836: Bug 1351783 part 6 - Create and send KeyboardMap to APZCTreeManager. r=kats
Ryan Hunt <rhunt@eqrion.net> - Mon, 05 Jun 2017 18:35:32 -0500 - rev 366281
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1351783 part 6 - Create and send KeyboardMap to APZCTreeManager. r=kats This commit makes it so we initialize, send, and store a KeyboardMap for every APZCTreeManager for later keyboard event processing. This is a naive approach so it may be worth improving. MozReview-Commit-ID: CYTbLL3wRlC
f9cc184d611a17914b6a05128ce82e06946a26e1: Bug 1351783 part 5 - Add a KeyboardMap type. r=kats,masayuki
Ryan Hunt <rhunt@eqrion.net> - Mon, 05 Jun 2017 18:29:04 -0500 - rev 366280
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1351783 part 5 - Add a KeyboardMap type. r=kats,masayuki The XBL bindings used for scrolling are managed by a nsXBLWindowKeyHandler. This class loads the handlers and has logic for searching through them to match a keyboard event. This commit adds a KeyboardMap class for storing KeyboardShortcuts and for mirroring the search logic of nsXBLWindowKeyHandler. MozReview-Commit-ID: 5BmFBilKTJy
2f051c7a8b086b903198c85bec7defb01349433e: Bug 1351783 part 4 - Add a KeyboardShortcut type. r=kats,masayuki
Ryan Hunt <rhunt@eqrion.net> - Mon, 05 Jun 2017 18:24:35 -0500 - rev 366279
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1351783 part 4 - Add a KeyboardShortcut type. r=kats,masayuki Keyboard scrolling works by first dispatching a key event to the focused element of the page. It is then caught by a XBL binding put on the chrome event handler of every window. The XBL binding searches through all of its handlers to find one that can handle the keyboard event. The matching binding has a command string which is dispatched to the nsGlobalWindowCommands which dispatches to PresShell which does the actual scrolling. To do this asynchronously, we need a representation of the XBL handlers that can be applied to a KeyboardInput to get a KeyboardAction. This commit adds KeyboardShortcut for this purpose. KeyboardShortcut is designed to be compatible with nsXBLPrototypeHandler and to only handle the specific cases we care about for keyboard scrolling. If a XBL handler runs javascript or does anything else we cannot handle in an OMT situation, then we create a dispatch-to-content KeyboardShortcut. MozReview-Commit-ID: 1qzywS3QHVp
b95f62f11e87a75a26cf6bc1893f406f697650f9: Bug 1351783 part 3 - Add a KeyboardScrollAction type. r=kats,masayuki
Ryan Hunt <rhunt@eqrion.net> - Mon, 05 Jun 2017 18:17:30 -0500 - rev 366278
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1351783 part 3 - Add a KeyboardScrollAction type. r=kats,masayuki The different types of keyboard scrolls are represented as command strings that are dispatched to nsGlobalWindowCommands. This commit adds a class to represent these command strings, along with a function to find the keyboard scroll action corresponding to a command string. MozReview-Commit-ID: 20vvYdzlYYT
887a8e96eeda59abc75f273304314a5a42414ea9: Bug 1351783 part 2 - Add a KeyboardInput type. r=kats
Ryan Hunt <rhunt@eqrion.net> - Mon, 05 Jun 2017 18:09:40 -0500 - rev 366277
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1351783 part 2 - Add a KeyboardInput type. r=kats Every event type handled by APZ needs to have a InputData type. This commit adds a new KeyboardInput type that stores the minimum fields needed to match keyboard shortcuts. MozReview-Commit-ID: 3KUnH4sWrST
81716a06ec30752cdefe60884eb7831a975791c4: Bug 1351783 part 1 - Add includes for unified build issues. r=kats
Ryan Hunt <rhunt@eqrion.net> - Mon, 05 Jun 2017 18:03:02 -0500 - rev 366276
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1351783 part 1 - Add includes for unified build issues. r=kats MozReview-Commit-ID: D57bbW4pmPZ
abb82362d85b137b26ff42cb261dead6f0ce2ac8: Bug 1375590: Replace NS_ERROR + IPC_FAIL_NO_REASON with IPC_FAIL in DocAccessibleParent; r=eeejay
Aaron Klotz <aklotz@mozilla.com> - Tue, 27 Jun 2017 11:52:55 -0700 - rev 366275
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1375590: Replace NS_ERROR + IPC_FAIL_NO_REASON with IPC_FAIL in DocAccessibleParent; r=eeejay
37e047b6187f8a2cc9ce30268d42977e679db84e: Bug 1376057 - Replace MSVC wrappers with std::exception::_Set_raise_handler. - r=froydnj
Jeff Gilbert <jgilbert@mozilla.com> - Wed, 22 Mar 2017 16:43:11 -0700 - rev 366274
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1376057 - Replace MSVC wrappers with std::exception::_Set_raise_handler. - r=froydnj MozReview-Commit-ID: MG5c4bzDlI
7da6c99070996a8d0baa4013d4c0b515f8045fa2: Backed out changeset 9db369ba372c (bug 1375759) for unused mComputedDrawRegion. r=backout
Sebastian Hengst <archaeopteryx@coole-files.de> - Tue, 27 Jun 2017 20:47:30 +0200 - rev 366273
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Backed out changeset 9db369ba372c (bug 1375759) for unused mComputedDrawRegion. r=backout
d516c35eabf14738e03728f9be602b732e63078c: Bug 1369994 - Ensure template objects for typed arrays are initialized properly before exposing them to GC r=jandem a=abillings
Jon Coppeard <jcoppeard@mozilla.com> - Mon, 26 Jun 2017 20:15:41 -0400 - rev 366272
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1369994 - Ensure template objects for typed arrays are initialized properly before exposing them to GC r=jandem a=abillings
8d9b536289c2ddec604ea8e2f305a007ec840612: Bug 1374972 - Remove half-baked title capitalization from "Restore all Windows and Tabs". r=dao
Martin Boros <mboros04@gmail.com> - Tue, 27 Jun 2017 20:33:32 +0200 - rev 366271
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1374972 - Remove half-baked title capitalization from "Restore all Windows and Tabs". r=dao MozReview-Commit-ID: 6y4PY0FZn3c
9db369ba372ccc31274de3ecd6598e6a16ca1995: Implement LayerMLGPU::SetLayerManager. (bug 1375759, r=mattwoodrow)
David Anderson <danderson@mozilla.com> - Tue, 27 Jun 2017 11:31:37 -0700 - rev 366270
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Implement LayerMLGPU::SetLayerManager. (bug 1375759, r=mattwoodrow)
f165f830468d42546e03a1770286db0ef561ff1e: Bug 1364854 - Port Object.assign to C++. r=evilpie
Jan de Mooij <jdemooij@mozilla.com> - Tue, 27 Jun 2017 11:05:15 -0700 - rev 366269
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1364854 - Port Object.assign to C++. r=evilpie
4579ac0924090ade37b93ebe3b55bbab0b7859c8: Bug 1373346 - Skip some dom/push tests on Windows Debug too; r=me,test-only
Geoff Brown <gbrown@mozilla.com> - Tue, 27 Jun 2017 12:01:25 -0600 - rev 366268
Push 32099 by cbook@mozilla.com at Wed, 28 Jun 2017 11:23:49 +0000
Bug 1373346 - Skip some dom/push tests on Windows Debug too; r=me,test-only
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 tip