Commit Graph

764 Commits

Author SHA1 Message Date
David Major
a660713d2b Bug 1344629 - Part 6: Rewrite unnecessary uses of nsLiteralString. r=dbaron
There's an antipattern where nsLiteralString is used as an unnecessary intermediary in converting from CharT* to CharT*,
e.g. CallAFunctionThatTakesACharPointer(NS_LITERAL_CSTRING("foo").get());
or
NS_NAMED_LITERAL_STRING(foo, "abc");
CallAFunctionThatTakesACharPointer(foo.get());

This patch rewrites the callsites that can be trivially changed to use char*/char16_t*.

I'd somewhat like to remove nsTLiteralString::get() altogether, but in code that's less straightforward than these examples, get() is useful enough to keep.

MozReview-Commit-ID: Kh1rUziVllo
2017-03-14 15:26:27 +13:00
Carsten "Tomcat" Book
811b1bab9a merge mozilla-inbound to mozilla-central a=merge 2017-03-13 15:22:26 +01:00
Masayuki Nakano
19eb2ab1c6 Bug 1338369 part.1 nsWindow for Windows should consume Shift key state at dispatching eContextMenu event if it's caused by Shift+F10 r=smaug
In PresShell, eContextMenu event is marked as dispatched only in chrome when its shiftKey state is true. However, Shift+F10 causes the context menu, it should not be marked as so because this is standard shortcut key to open context menu on Windows.

This patch consumes Shift key state if previous key message is WM_SYSKEYDOWN of F10 before dispatching eContextMenu event.  So, user cannot block to prevent its default at opening context menu with Shift+F10, we should discuss this later.

MozReview-Commit-ID: 1P9LpeJoQof
2017-02-24 20:07:52 +09:00
Kartikaya Gupta
d9429fae10 Back out cset f2262b093262 (bug 1345355) for failing to fix the problem it was trying to fix. r=backout 2017-03-10 09:45:15 -05:00
Kartikaya Gupta
2de7726f1c Bug 1345355 - Don't register a window as touch-enabled if there's no touch device supported. r=jimm
MozReview-Commit-ID: IycX3e0I5TQ
2017-03-09 18:59:32 -05:00
Jim Chen
0911a44f43 Bug 1343075 - Use GeckoEditableSupport from PuppetWidget; r=masayuki r=rbarker r=snorp r=esawin
Bug 1343075 - 1a. Add TextEventDispatcherListener::GetIMEUpdatePreference; r=masayuki

Add a GetIMEUpdatePreference method to TextEventDispatcherListener to
optionally control which IME notifications are received by NotifyIME.
This patch also makes nsBaseWidget forward its GetIMEUpdatePreference
call to the widget's native TextEventDispatcherListener.

Bug 1343075 - 1b. Implement GetIMEUpdatePreference for all TextEventDispatcherListener; r=masayuki

This patch implements GetIMEUpdatePreference for all
TextEventDispatcherListener implementations, by moving previous
implementations of nsIWidget::GetIMEUpdatePreference.

Bug 1343075 - 2. Allow setting a PuppetWidget's native TextEventDispatcherListener; r=masayuki

In PuppetWidget, add getter and setter for the widget's native
TextEventDispatcherListener. This allows overriding of PuppetWidget's
default IME handling. For example, on Android, the PuppetWidget's native
TextEventDispatcherListener will communicate directly with Java IME code
in the main process.

Bug 1343075 - 3. Add AIDL interface for main process; r=rbarker

Add AIDL definition and implementation for an interface for the main
process that child processes can access.

Bug 1343075 - 4. Set Gecko thread JNIEnv for child process; r=snorp

Add a JNIEnv* parameter to XRE_SetAndroidChildFds, which is used to set
the Gecko thread JNIEnv for child processes. XRE_SetAndroidChildFds is
the only Android-specific entry point for child processes, so I think
it's the most logical place to initialize JNI.

Bug 1343075 - 5. Support multiple remote GeckoEditableChild; r=esawin

Support remote GeckoEditableChild instances that are created in the
content processes and connect to the parent process GeckoEditableParent
through binders.

Support having multiple GeckoEditableChild instances in GeckoEditable by
keeping track of which child is currently focused, and only allow
calls to/from the focused child by using access tokens.

Bug 1343075 - 6. Add method to get GeckoEditableParent instance; r=esawin

Add IProcessManager.getEditableParent, which a content process can call
to get the GeckoEditableParent instance that corresponds to a given
content process tab, from the main process.

Bug 1343075 - 7. Support GeckoEditableSupport in content processes; r=esawin

Support creating and running GeckoEditableSupport attached to a
PuppetWidget in content processes.

Because we don't know PuppetWidget's lifetime as well as nsWindow's,
when attached to PuppetWidget, we need to attach/detach our native
object on focus/blur, respectively.

Bug 1343075 - 8. Connect GeckoEditableSupport on PuppetWidget creation; r=esawin

Listen to the "tab-child-created" notification and attach our content
process GeckoEditableSupport to the new PuppetWidget.

Bug 1343075 - 9. Update auto-generated bindings; r=me
2017-03-07 22:34:39 -05:00
Kartikaya Gupta
aa152f237f Bug 1341691 - Improve handling of touch events when dismissing popups. r=jimm
When user input is used to dismiss popups, the user input may sometimes
be consumed (for example, clicking on a combobox element will dismiss
the combobox popup, but consume the event to avoid reopening the popup
right away). This handling was present for some types of input events but
missing for touch events. This patch adds it for touch events as well.

MozReview-Commit-ID: 5wsuTdMbkX2
2017-02-24 08:32:00 -05:00
David Parks
36809298a8 Bug 1330460 - Unblock parts of TIPMessageHandler in order to block a11y on Win 8+ 64-bit touchscreens. a=aklotz 2017-02-23 10:43:18 -08:00
sotaro
c9020c1d3a Bug 1341192 - Update LayerManager handling in nsWindow::SetSizeConstraints() r=nical 2017-02-22 10:35:39 +09:00
Tom Tromey
48da5b7de4 Bug 1060419 - remove unneeded includes of prprf.h, r=froydnj
MozReview-Commit-ID: JifhpA3oOeH
2016-12-09 10:00:01 -10:00
Kartikaya Gupta
f441112c9f Merge m-c to graphics
MozReview-Commit-ID: AXRXwXgkOTv
2017-02-10 13:57:53 -05:00
Ryan Hunt
b101f2272c Merge m-c to graphics 2017-02-07 09:05:18 +00:00
Kartikaya Gupta
91550f4224 Merge m-c to graphics
MozReview-Commit-ID: 8BjfShvh5gp
2017-02-03 10:39:57 -05:00
Kartikaya Gupta
3e3b1b3f6f Merge m-c to graphics
MozReview-Commit-ID: uU8MPphFqj
2017-02-02 13:38:51 -05:00
Kartikaya Gupta
ca47d6661a Merge m-c to graphics
MozReview-Commit-ID: Kv6GW5ElioD
2017-01-29 08:03:30 -05:00
Aaron Klotz
7243dac78f Bug 1334257: Assure that TIPMessageHandler hooks may not be instantiated more than once; r=jimm
MozReview-Commit-ID: LiDQ9yUzGTK
2017-01-26 15:30:44 -07:00
Mike Conley
9261eae08d Bug 1336230 - Add suppressanimation support to Windows backend. r=jimm
MozReview-Commit-ID: C8aKimUBKJx
2017-02-03 17:37:37 -05:00
Kartikaya Gupta
62ce806cab Merge m-c to graphics
MozReview-Commit-ID: LyU2woFOt7O
2017-01-18 13:48:56 -05:00
Kartikaya Gupta
ebf1ce5c2b Bug 1328066 - Don't broadcast the live-resize events to all browser windows unnecessarily. r=mstange
The machinery for suppressing the displayport during live resizes
was using the Observer service. However, in the case of multiple
browser windows, this meant that all the open browser windows would
have their displayport suppressed if *any* of the browser windows
was being resized. This was mostly ok, as the displayport suppression
would be turned off once the resize ended. However, the code to
kick off a repaint with the unsuppressed displayport would only get
triggered on one of the windows (whichever happened to process the
unsuppress message last).

This patch stops using the Observer service for the implementation
machinery, and instead locates the active TabParent of the relevant
nsWindow, and invokes the displayport suppression directly on that.
This fixes the repainting bug and also avoids unnecessarily
broadcasting the suppression/unsuppression notification to windows
that don't neccessarily need it.

MozReview-Commit-ID: LBHOgOW9KUp
2017-02-01 10:38:16 -05:00
Makoto Kato
bbf4de1ded Bug 1337299 - Remove old version compatibility into WinUtils. r=jimm
MozReview-Commit-ID: IBnnslpinzq
2017-02-10 12:06:23 +09:00
Ryan Hunt
1469b46f6e Bug 1323799 - Enable creating a GLContextWGL with an OOP compositor widget. r=jrmuizel
MozReview-Commit-ID: J5DX852Kgoi
2017-01-16 17:14:45 -05:00
Kartikaya Gupta
d1c11e9473 Bug 1326421 - Add a compositor option for WebRender being enabled or not. r=dvander
MozReview-Commit-ID: LeQRgKSn0Ql
2017-01-13 15:16:51 -05:00
Kartikaya Gupta
8975e03aba Back out 4 csets from bug 1326421 because of various test failures. r=backout 2017-01-13 17:07:59 -05:00
Kartikaya Gupta
8e99801a4a Bug 1326421 - Add a compositor option for WebRender being enabled or not. r=dvander
MozReview-Commit-ID: LeQRgKSn0Ql
2017-01-13 15:16:51 -05:00
Ryan Hunt
3987a44ddb Merge m-c to graphics 2017-01-13 10:14:22 -06:00
Kartikaya Gupta
6e0b74d1ed Bug 1330755 - Properly release the window device context. r=jimm
MozReview-Commit-ID: 7Y3p4g3yI3s
2017-01-12 17:25:12 -05:00
Kartikaya Gupta
3d70f1ee98 Merge m-c to graphics
MozReview-Commit-ID: LPeWBwbK82h
2017-01-12 12:40:09 -05:00
Aaron Klotz
f6566319a7 Bug 1336515: Fix assertions in TIPMessageHandler instantiation on non-touchscreen devices; r=jimm
MozReview-Commit-ID: FCQBD6hB4oL
2017-02-03 11:21:15 -07:00
Kartikaya Gupta
ca9e309790 Merge m-c to graphics
MozReview-Commit-ID: 1rubIYTE0fk
2017-01-11 10:01:17 -05:00
Aaron Klotz
7a2c751712 Bug 1325676: Prevent Windows 8 touchscreen support from instantiating a11y; r=jimm
MozReview-Commit-ID: H7HQMmvBLol
2017-01-10 12:46:37 -07:00
Kartikaya Gupta
6813d1843d Bug 1330037 - Propagate the CompositorOptions to all CompositorWidget instances. r=dvander
MozReview-Commit-ID: DFeeo2WNmhZ
2017-01-12 17:29:42 -05:00
Kartikaya Gupta
2d075dbfbe Merge m-c to graphics
MozReview-Commit-ID: 5ovnMmSOiZX
2017-01-09 10:18:37 -05:00
Kartikaya Gupta
70e5d37aaa Merge m-c to graphics
MozReview-Commit-ID: GuKJhfxDhij
2017-01-04 10:53:15 -05:00
Kartikaya Gupta
10b17b0728 Merge m-c to graphics
MozReview-Commit-ID: EVRgJB0urSI
2016-12-27 09:33:52 -05:00
Kartikaya Gupta
3050106083 Merge m-c to graphics
MozReview-Commit-ID: 6XqNGxF5EiQ
2016-12-23 10:14:44 -05:00
Wes Kocher
a072dd50b2 Merge m-c to inbound, a=merge
MozReview-Commit-ID: 3HW7YWDqTBQ
2016-12-23 14:40:42 -08:00
Kartikaya Gupta
26f427122c Merge m-c to graphics
MozReview-Commit-ID: E0Sr26LKcZx
2016-12-21 10:16:15 -05:00
Kartikaya Gupta
d6ef195f56 Bug 1147335 - Add support for drag-and-drop via touch (Windows-only, main-process-only). r=smaug
This patch adds a new non-DOM event type, "mousetouchdrag". The name is horrible, I
know. The "mouse" comes from the fact that it's a WidgetMouseEvent, and the
"touchdrag" comes from the fact that this event is fired at the start of a touch
gesture for drag-and-drop. Right now this event is only fired from the Windows
widget code, when we receive a touch-source doubleclick event from the OS. This
event is sent to us from the OS when it detects the sequence "touchstart, touchend,
touchstart" within certain time/distance constraints. Eventually we may detect
similar gestures for other platforms in the APZ GestureEventListener and dispatch
the "mousetouchdrag" event for those as well.

The only effect of this event is that it begins tracking a drag gesture in the
EventStateManager. Subsequent touchmove events can begin the actual drag-and-drop
operation by calling ::DoDragDrop. See the discussion in bug 1147335 for some
important caveats about DoDragDrop and how it only works with left-mouse-button
events (real or synthetic).

MozReview-Commit-ID: bGyOk6dRoJ
2017-01-03 10:55:48 -05:00
Kartikaya Gupta
fe0d7f6d46 Bug 1330755 - Follow-up to move the MakeScopeExit to after the null check. r=bobowen
MozReview-Commit-ID: GrRU0Efh0Ns
2017-01-17 10:57:06 -05:00
Nicholas Nethercote
0aafa0e5ec Bug 1325234 (part 9) - Remove remaining NS_IMETHOD_ occurrences from nsIWidget. r=mstange.
|virtual T| is clearer than |NS_IMETHOD_(T)|.
2016-12-21 15:27:20 +11:00
Nicholas Nethercote
bc88544c2d Bug 1325234 (part 8) - Streamline nsIWidget::DispatchEvent. r=jimm.
This patch changes it from |NS_IMETHOD| to |virtual nsresult| because some
callsites are checked and some aren't.
2016-12-21 11:18:40 +11:00
Nicholas Nethercote
bbbd1bf919 Bug 1325234 (part 6) - Streamline nsIWidget::SetTitle. r=jimm.
This patch changes it from |NS_IMETHOD| to |virtual nsresult| because some call
sites are checked and others aren't.
2016-12-21 11:13:08 +11:00
Nicholas Nethercote
56412157dc Bug 1325234 (part 5) - Streamline nsIWidget::SetCursor (both versions). r=jimm.
This patch changes one from |NS_IMETHOD| to |virtual nsresult| and the other to
|virtual void|.
2016-12-21 11:13:08 +11:00
Nicholas Nethercote
343e7a7830 Bug 1325234 (part 4) - Streamline nsIWidget::{SetFocus,SetNonClientMargins}(). r=mstange.
This patch changes them from |NS_IMETHOD| to |virtual nsresult|.
2016-12-21 11:13:08 +11:00
Nicholas Nethercote
d3809ce662 Bug 1325234 (part 3) - Streamline nsIWidget::Show(). r=mstange.
This patch changes it from |NS_IMETHOD| to |virtual void|. The return value was
only checked in one low-value assertion and one other place where the check had
no useful effect (in nsCocoaWindow::HideWindowChrome()).
2016-12-21 11:12:54 +11:00
Nicholas Nethercote
dc2aa85dd7 Bug 1325234 (part 2) - Streamline nsIWidget::Invalidate(). r=jimm.
This patch changes it from |NS_IMETHOD| to |virtual void|. The return value was
only checked in one low-value assertion so I decided it wasn't needed.
2016-12-20 09:55:32 +11:00
Kartikaya Gupta
b9992ac181 Merge m-c to graphics
MozReview-Commit-ID: 4IBPvJvxXEM
2016-12-15 10:15:36 -05:00
Carsten "Tomcat" Book
ef798f401e Merge mozilla-central to mozilla-inbound 2016-12-22 16:25:35 +01:00
Jonathan Kew
2ae1973075 Bug 1320531 - Check whether DPI appears to have changed before calling ChangedDPI + ResetLayout while dragging windows. r=emk 2017-01-31 20:54:23 +00:00
Kartikaya Gupta
17245d5f13 Merge m-c to graphics
MozReview-Commit-ID: KhxBqJbwxv8
2016-12-06 23:45:24 -05:00