Commit Graph

543723 Commits

Author SHA1 Message Date
Michael Layzell
3c82b8c224 Bug 1350633 - Remove the Msg_GetWidgetNativeData sync IPC, r=billm, r=jimm
MozReview-Commit-ID: Bql29wgVDZ5
2017-06-27 16:24:48 -04:00
Michael Layzell
31e36ee704 Bug 1343728 - Part 4: Remove the window creation sync IPC calls, r=billm, r=smaug
MozReview-Commit-ID: IWayDUWuRrf
2017-06-27 16:24:48 -04:00
Michael Layzell
b4909cdead Bug 1343728 - Part 3: Add StableStateEventTarget, an event target which runs dispatched runnables at the next stable state, r=smaug
MozReview-Commit-ID: 8dlo5Z60qsG
2017-06-27 16:24:48 -04:00
Michael Layzell
e291335cf8 Bug 1343728 - Part 2: Add const operator== to TextureFactoryIdentifier and CompositorOptions, r=jrmuizel
MozReview-Commit-ID: 6BayMmqNlyx
2017-06-27 16:24:48 -04:00
Michael Layzell
c7ffb02592 Bug 1343728 - Part 1: Add the ability to temporarially delay remote docshells from becoming active, r=smaug
MozReview-Commit-ID: KAaeu5ETc0x
2017-06-27 16:24:48 -04:00
Michael Layzell
381991e752 Bug 1375940 - Part 2: Fix an assertion in PresShell::HandleEventWithTarget, r=smaug
MozReview-Commit-ID: 4hRjlgbLDA8
2017-06-27 16:24:48 -04:00
Michael Layzell
068e7442ed Bug 1375940 - Part 1: Add a test for destroying a window during a click event while double-clicking, r=smaug
MozReview-Commit-ID: BdyWjvG9q8m
2017-06-27 16:24:48 -04:00
Shu-yu Guo
9e991dd02b Bug 1374462 - Fix super getprop and super getelem to not box 'this' values. (r=jorendorff) 2017-06-27 13:17:59 -07:00
David Anderson
e09978bd8b Implement LayerMLGPU::SetLayerManager. (bug 1375759, r=mattwoodrow) 2017-06-27 13:11:01 -07:00
David Anderson
5168081e97 Fix not flushing unused TextureHosts in Advanced Layers. (bug 1376243, r=mattwoodrow)
--HG--
extra : rebase_source : 879c210dbe682b2128932b0e85e58927be600a06
2017-06-27 11:59:25 -07:00
Dan Minor
a9df96e992 Bug 1355947 - Use TestNrSocket to build a fake ICE implementation for testing; r=drno
MozReview-Commit-ID: GhSX9t8DmTO

--HG--
extra : rebase_source : 8fea1934f88b378606b4af96d96c27560906fd88
extra : histedit_source : 4d6fc904c79c74ba8c24e816d70368ee3a850769
2017-04-18 06:54:34 -04:00
Dan Minor
1cc1e5734f Bug 1355947 - Add NatDelegate to TestNat; r=bwc
This allows tests to implement different packet handling schemes without having
to extend or modify TestNat itself.

MozReview-Commit-ID: 6DlESF3hfX6

--HG--
extra : rebase_source : ebb621f6f6ba00811cda7baef449caec126cb15e
2017-06-13 10:08:45 -04:00
Jan de Mooij
4dbcef5e4e Bug 1373195 - Speed up TextNode::MakeCaseIndependent for the unicode '.' character class ranges. r=arai
--HG--
extra : rebase_source : a850bbe6437f99191884097d8024befdd4126286
2017-06-27 12:03:10 -07:00
Ryan Hunt
9b1e2c1ec0 Bug 1351783 part 20 - Report async keyboard scrolling to telemetry. r=botond
MozReview-Commit-ID: IwLL2xg3BgY

--HG--
extra : rebase_source : ba0aea8605e33bc9755d6ff454bd4b3549998443
extra : histedit_source : 8de02662e5fd562c3002c18540fc74d4f61cb969
2017-06-22 19:26:07 -04:00
Ryan Hunt
fb04e72bad Bug 1351783 part 19 - Rename Keyboard.h to KeyboardMap.h. r=masayuki
This is a better name for the header that matches its main class.

MozReview-Commit-ID: KSt9LVT3yRR

--HG--
rename : gfx/layers/apz/src/Keyboard.cpp => gfx/layers/apz/src/KeyboardMap.cpp
rename : gfx/layers/apz/src/Keyboard.h => gfx/layers/apz/src/KeyboardMap.h
extra : rebase_source : ec4c9ec5afa8479dc4cd3e987fc3293f047beb9e
extra : histedit_source : caa3a11043fc1ccdff3d7853eda69a0a3dfff99e
2017-06-15 18:06:00 -04:00
Ryan Hunt
557ad1c73c Bug 1351783 part 18 - Add async keyboard scrolling information to about:support. r=kats
MozReview-Commit-ID: LYEcRNgqZ35

--HG--
extra : rebase_source : f56e1da6733d1f41fdabcbb5d8b60087597fe4bb
extra : histedit_source : 42263e2042de7d9efba2fd445642f89ef64b7eea
2017-06-15 17:54:03 -04:00
Ryan Hunt
bb5749ccf1 Bug 1351783 part 17 - Do less work when apz.keyboard.enabled is false. r=kats
When keyboard apz is disabled, we don't need to calculate focus targets and
we don't need to update focus state. It should be harmless even if it's done,
but I think it's good to not add something on this critical path that doesn't
do anything.

This commit also disable keyboard map generation in this case too for similar
reasoning. This has the side effect that you can't turn on keyboard apz without
doing a restart.

MozReview-Commit-ID: LxmofT2g7qs

--HG--
extra : rebase_source : 719d29efd80498b824fee03a5be1c1fd05c83074
extra : histedit_source : 7ad71a19782fc6dd203207afbdc7a73a936b3e04
2017-06-06 11:08:45 -05:00
Ryan Hunt
db5f497c0f Bug 1351783 part 16 - Perform async scrolling for keyboard events when possible. r=kats,botond,dvander
This commit ties it all together by dispatching keyboard actions to scroll targets
in response to keyboard inputs when we have current and valid focus state.

MozReview-Commit-ID: G7rZiS3FH5e

--HG--
extra : rebase_source : 10129d417fe8ef576cac5bda3157dd8f65b5843a
extra : histedit_source : be651a33f787f68bc764988ddc073d346e854491
2017-06-05 19:46:06 -05:00
Ryan Hunt
c24e099b23 Bug 1351783 part 15 - Hook up APZC for scrolling based on a KeyboardScrollAction. r=kats,botond
This commit adds code for keyboard scroll animations and computing the delta
needed for a keyboard scroll action. Keyboard scrolling behavior is more complex
with scroll snapping, so we don't support async keyboard scrolling when we have
scroll snap points.

MozReview-Commit-ID: 97CpprCBp2A

--HG--
extra : rebase_source : 154b2c6b5a6c587fca011ab885c8d46ba6b4d80a
extra : histedit_source : 87ba53fe89069a47751d9ce25fc344011fb0f4de
2017-06-06 04:47:10 -05:00
Ryan Hunt
285770048d Bug 1351783 part 14 - Create a base class for WheelScrollAnimation. r=botond
MozReview-Commit-ID: BtUJo5NAiTR

--HG--
extra : rebase_source : ba3d7cf476ab806094ff2e0c33753e81f88761bf
extra : histedit_source : a898248b30fd1060e82478096fe2624a35473c26
2017-06-15 04:31:50 -04:00
Ryan Hunt
5e36e136d3 Bug 1351783 part 13 - Add a function for determing if a ScrollSnapInfo has scroll snap points. r=botond
MozReview-Commit-ID: 7Dj0RGfQFNC

--HG--
extra : rebase_source : e25f6657f379b286c9393af19b3771c6296db468
extra : histedit_source : e9206c7c276fb9653df142617e08ec3bb7c6f1ad
2017-06-15 03:52:34 -04:00
Ryan Hunt
c1312e5abc 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

--HG--
extra : rebase_source : 8c54a619bd4f5ee892f0cc8768a10f3e1e4e0b59
extra : histedit_source : 601ca293a028787883841adc6b40e62c0cc829e5
2017-06-05 19:45:31 -05:00
Ryan Hunt
0785b2f849 Bug 1351783 part 11 - Sync FocusTarget with WebRenderLayerManager. r=kats
MozReview-Commit-ID: LxWt22XY5IE

--HG--
extra : rebase_source : c8eb965d1737d4f6791d96d4f975a31365790632
2017-06-13 02:43:59 -04:00
Ryan Hunt
a6a2b4f7c4 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

--HG--
extra : rebase_source : 1e2c3b5620f5d7e6e789848da57b2486c3d74f14
2017-06-13 02:00:49 -04:00
Ryan Hunt
3332ba9ac0 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

--HG--
extra : rebase_source : f376dec47965ade11055e10d68311fa9566aca9f
2017-06-05 19:23:45 -05:00
Ryan Hunt
1432b9109d 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

--HG--
extra : rebase_source : 3e7e8e88ddda1a6b9e8542c131fdbb37e578d7e1
2017-06-05 19:22:16 -05:00
Ryan Hunt
99499fb9d6 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

--HG--
extra : rebase_source : 3d04bced8e13a9884f0c1b320bad8ba2205d7011
2017-06-05 19:12:22 -05:00
Ryan Hunt
cc923c3909 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

--HG--
extra : rebase_source : 016b80a2a209d4fb5b92bc3adb95bd2dbb4399e0
2017-06-05 18:35:32 -05:00
Ryan Hunt
18867b218f 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

--HG--
extra : rebase_source : 96cd0f5808ba6c4926e9da368ab3780b1d9d1449
2017-06-05 18:29:04 -05:00
Ryan Hunt
710c2e9481 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

--HG--
extra : rebase_source : 8ea4f85c02d04ce5e0fa6e430c44ac920269dd9f
2017-06-05 18:24:35 -05:00
Ryan Hunt
a97d402536 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

--HG--
extra : rebase_source : 8a965429f57534ac65da597cbb05a08284f7eaeb
2017-06-05 18:17:30 -05:00
Ryan Hunt
e747db20e3 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

--HG--
extra : rebase_source : 710274199a1ced0716abe02e9d6aaea0d31c9498
2017-06-05 18:09:40 -05:00
Ryan Hunt
cfc792bc4c Bug 1351783 part 1 - Add includes for unified build issues. r=kats
MozReview-Commit-ID: D57bbW4pmPZ

--HG--
extra : rebase_source : 9af2973a112c7ea641876c1f945797f2c7c945ce
2017-06-05 18:03:02 -05:00
Aaron Klotz
d5cffb7895 Bug 1375590: Replace NS_ERROR + IPC_FAIL_NO_REASON with IPC_FAIL in DocAccessibleParent; r=eeejay
--HG--
extra : rebase_source : 3859abca294230d6bc7061ee8b807191790f822b
2017-06-27 11:52:55 -07:00
Jeff Gilbert
58ae26fbc7 Bug 1376057 - Replace MSVC wrappers with std::exception::_Set_raise_handler. - r=froydnj
MozReview-Commit-ID: MG5c4bzDlI
2017-06-27 11:51:34 -07:00
Sebastian Hengst
4798a534fd Backed out changeset 9db369ba372c (bug 1375759) for unused mComputedDrawRegion. r=backout 2017-06-27 20:47:30 +02:00
Jon Coppeard
7c2f5c4502 Bug 1369994 - Ensure template objects for typed arrays are initialized properly before exposing them to GC r=jandem a=abillings 2017-06-26 20:15:41 -04:00
Martin Boros
595b7be872 Bug 1374972 - Remove half-baked title capitalization from "Restore all Windows and Tabs". r=dao
MozReview-Commit-ID: 6y4PY0FZn3c

--HG--
extra : rebase_source : a9ab0374a3c8f389c3f099598b2e573c155d5cb3
2017-06-27 20:33:32 +02:00
David Anderson
45ebfe4fb7 Implement LayerMLGPU::SetLayerManager. (bug 1375759, r=mattwoodrow) 2017-06-27 11:31:37 -07:00
Jan de Mooij
bd874203f9 Bug 1364854 - Port Object.assign to C++. r=evilpie 2017-06-27 11:05:15 -07:00
Geoff Brown
b5f093f0c1 Bug 1373346 - Skip some dom/push tests on Windows Debug too; r=me,test-only 2017-06-27 12:01:25 -06:00
Andrea Marchesini
edceccdf00 Bug 1375457 - name should be a replaceable attribute in worker global scopes, r=bkelly 2017-06-27 10:05:20 -07:00
Jan de Mooij
729cc74d0d Bug 1369774 - Fix ICUpdatedStub::addUpdateStubForValue to handle TypedObjects correctly. r=tcampbell 2017-06-27 09:59:54 -07:00
Jan de Mooij
68da37b987 Bug 1372956 - Fix unshift fast path to check for frozen elements. r=anba 2017-06-27 09:30:34 -07:00
Jan de Mooij
59f449eea7 Bug 1373356 - Fix NativeObject::sparsifyDenseElements to discard shifted elements. r=anba 2017-06-27 09:28:52 -07:00
Carsten "Tomcat" Book
9abc7cd713 Merge mozilla-central to mozilla-inbound 2017-06-27 15:14:47 +02:00
Ryan VanderMeulen
f2acc9fbc8 Bug 1376427 - Update pdf.js to version 1.8.497. r=bdahl 2017-06-27 09:10:09 -04:00
Joanmarie Diggs
68f6fdc9bf Bug 1376303 - Expose aria-orientation via NSAccessibilityOrientationAttribute. r=MarcoZ
Add orientation() method to the macOS accessibility wrapper, mapping
states::Horizontal to NSAccessibilityHorizontalOrientationValue,
states::NSAccessibilityVerticalOrientationValue and the absence of
both to NSAccessibilityUnknownOrientationValue.
2017-06-27 05:26:00 -04:00
Carsten "Tomcat" Book
4e00eff077 merge mozilla-inbound to mozilla-central a=merge 2017-06-27 10:56:41 +02:00
Ehsan Akhgari
cb111ebec5 Bug 1376323 - Unroll the loop in nsTSubstring_CharT::StripTaggedASCII() in order to speed up StripCRLF(); r=froydnj 2017-06-27 01:56:57 -04:00