Граф коммитов

365 Коммитов

Автор SHA1 Сообщение Дата
David Anderson 9332f7b6ca Don't synchronously composite when resizing widgets on Windows. (bug 1361257, r=bas) 2017-05-05 01:10:48 -07:00
Carsten "Tomcat" Book 975e251aff merge mozilla-inbound to mozilla-central a=merge 2017-04-21 10:57:02 +02:00
Masayuki Nakano 0789f7b595 Bug 1217700 part.1 nsIWidget should return reference to IMENotificationRequests r=m_kato
IMEContentObserver may need to change notifications to send when TextInputProcessor begins input transaction.  In current design, IMEContentObserver needs to retrieve IMENotificationRequests at every change.  However, if nsIWidget returns a reference to its IMENotificationRequests, IMEContentObserver can call it only once.

For that purpose, this patch changes nsIWidget::GetIMENotificationRequests() to nsIWidget::IMENotificationRequestsRef() and make it return |const IMENotificationRequests&|.  However, if the lifetime of the instance of IMENotificationRequest is shorter than the widget instance's, it's dangerous.  Therefore, it always returns TextEventDispatcher::mIMENotificationRequests.  TextEventDispatcher's lifetime is longer than the widget.  Therefore, this guarantees the lifetime.

On the other hand, widget needs to update TextEventDispatcher::mIMENotificationRequests before calls of nsIWidget::IMENotificationRequestsRef().  Therefore, this patch makes TextEventDispatcher update proper IMENotificationRequests when it gets focus or starts new input transaction and clear mIMENotificationRequests when it loses focus.

Note that TextEventDispatcher gets proper requests both from native text event dispatcher listener (typically, implemented by native IME handler class) and TextInputProcessor when TextInputProcessor has input transaction because even if TextInputProcessor overrides native IME, native IME still needs to know the content changes since they may get new input transaction after that.

However, there may not be native IME handler in content process.  If it runs in Android, PuppetWidget may have native IME handler because widget directly handles IME in e10s mode for Android.  Otherwise, native IME handler is in its parent process.  So, if TextInputHandler has input transaction in content process, PuppetWidget needs to behave as native event handler.  Therefore, this patch makes PuppetWidget inherit TextEventDispatcherListener and implements PuppetWidget::IMENotificationRequestsRef().

MozReview-Commit-ID: 2SW3moONTOX

--HG--
extra : rebase_source : d2634ada6c33dbf7a966fadb68608411ee24bfab
2017-04-15 01:35:58 +09:00
Randall Barker a606cd8b60 Bug 1335895 - Android GeckoView Dynamic Toolbar Version 3 r=botond,dvander,jchen,kats
This version of the Dynamic Toolbar moves the animation of the toolbar
from the Android UI thread to the compositor thread. All animation for
showing and hiding the toolbar are done with the compositor and a static
snapshot of the real toolbar.

MozReview-Commit-ID: BCe8zpbkWQt
2017-04-20 15:15:14 -07:00
Masatoshi Kimura 14b8ca8af8 Bug 1356565 - Use AddFloatVarCache to cache layout.css.devPixelsPerPx. r=kanru
MozReview-Commit-ID: HZ9pBiU17H3

--HG--
extra : rebase_source : 4c8dba672927362e7ecace6d49ad1452af7bc1e2
extra : source : 348f81ec40a7894fbf1c7c5112beafb79970b956
2017-04-09 01:28:54 +09:00
Masayuki Nakano 61ce5526c6 Bug 1296220 Rename nsIMEUpdatePreference to mozilla::widget::IMEUpdatePreference r=m_kato
MozReview-Commit-ID: 2rIXTlwA6my

--HG--
extra : rebase_source : a51be3edd717092738c2b5e8ccc4f60540712bfd
2017-04-11 21:24:55 +09:00
Masatoshi Kimura 8f857ca1d0 Bug 1353493 - Cache the return value for nsIWidget::DefaultScaleOverride(). r=kanru
MozReview-Commit-ID: ExP179bxbHe

--HG--
extra : rebase_source : cf242fe02c009fb4f37028000f63c0c1774546cc
extra : intermediate-source : aa0b3009c855c71279f404fb211126ae8bb07b85
extra : source : 80abe5b0a796774e8aef7690e7c8c0be6892f4c1
2017-04-06 23:30:09 +09:00
Brendan Dahl a1f2e12af8 Bug 1338004 - Add headless browser mode. r=jrmuizel, r=ted
Supports creating a windowless browser on Linux without an X server. Most of the
changes are just adding branches to avoid calls in to GTK which calls
into X. Some of the bigger additions were adding a separate headless widget
which implements just enough to render a page. A headless look and
feel were also added since there are many calls into GTK in the platform
specific one.
2017-04-04 10:22:00 -04:00
Kartikaya Gupta 44f27a56e4 Bug 1343977 - Extract nsAutoRollup into a more self-contained class and clean it up some. No functional changes intended. r=enndeakin+6102
This just decouples nsAutoRollup from the widget class, which it isn't really
bound to anyway because the internal data is static. We'll need to be able to
use nsAutoRollup independently in the next patch.

MozReview-Commit-ID: 1dxSLTr4g1K

--HG--
extra : rebase_source : 6f6964ca046b6f88e5c99c944a08b1c563f17837
2017-03-13 10:44:56 -04:00
David Anderson d2703c8176 Remove Composer2D remnants. (bug 1339353, r=kats) 2017-02-14 12:29:39 -08:00
Nicholas Nethercote 523bee37b8 Bug 1325234 (part 9) - Remove remaining NS_IMETHOD_ occurrences from nsIWidget. r=mstange.
|virtual T| is clearer than |NS_IMETHOD_(T)|.

--HG--
extra : rebase_source : 9c8f423d7a89782a4d790a50e137071271086eed
2016-12-21 15:27:20 +11:00
Nicholas Nethercote bf4a843d70 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.

--HG--
extra : rebase_source : dd98266bce0a7583863908b6f04729a6e403b721
2016-12-21 11:18:40 +11:00
Nicholas Nethercote 390bf447ab Bug 1325234 (part 7) - Streamline nsIWidget::GetSelectionAsPlaintext. r=mstange.
This patch changes it from |NS_IMETHOD| to |virtual MOZ_MUST_USE nsresult|.

--HG--
extra : rebase_source : 3af9e5f5c2a558db38c2f98ca6740794aaae08e7
2016-12-21 11:13:08 +11:00
Nicholas Nethercote e52b19470c 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.

--HG--
extra : rebase_source : 6723b9db709d1506dd394b1e85572309c1c2e2cf
2016-12-21 11:13:08 +11:00
Nicholas Nethercote ea1e2ca6ce 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|.

--HG--
extra : rebase_source : 55af71c01dc75d6bf7c63191e9cfabc9f5368ffa
2016-12-21 11:13:08 +11:00
Nicholas Nethercote 0eaecf55da Bug 1325234 (part 4) - Streamline nsIWidget::{SetFocus,SetNonClientMargins}(). r=mstange.
This patch changes them from |NS_IMETHOD| to |virtual nsresult|.

--HG--
extra : rebase_source : 5e54c2fd340c393b33c9e1dcf20a80fe2f41b2f4
2016-12-21 11:13:08 +11:00
Nicholas Nethercote da5978a842 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()).

--HG--
extra : rebase_source : f6671e9e0e10ee18fb32f8b1c83f1e64c3d97e67
2016-12-21 11:12:54 +11:00
Nicholas Nethercote e2d9e4ed68 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.

--HG--
extra : rebase_source : 3523d9a086cf98c40d237d777f5dd471af0d7465
2016-12-20 09:55:32 +11:00
Nicholas Nethercote a8699ee61d Bug 1325234 (part 1) - Streamline nsIWidget::NotifyIME. r=jimm.
This patch changes it from |NS_IMETHOD| to |virtual nsresult|. The callsites
were a mix of checked and unchecked so using |MOZ_MUST_USE| didn't feel
appropriate.

--HG--
extra : rebase_source : 471ca43dcd565ddd1761d01df344c30e4e04a9ec
2016-12-20 09:55:30 +11:00
Nicholas Nethercote 3af5047314 Bug 1299335 (part 8) - Streamline nsIWidget::Enable. r=mstange.
This patch changes it from |NS_IMETHOD| to |virtual void| because every
implementation of these functions always returns |NS_OK|.

--HG--
extra : rebase_source : 07ee29c514bf35b97d7195c53bb5b9220d1ef961
2016-12-19 20:54:16 +11:00
Nicholas Nethercote a28c8f38b2 Bug 1299335 (part 7) - Streamline nsIWidget::{Move,Resize}. r=mstange.
This patch changes them from |NS_IMETHOD| to |virtual void| because every
implementation of these functions always returns |NS_OK|.

--HG--
extra : rebase_source : 6207df5a46aeb6b8aaa0f697447a51bc6a6dc366
2016-12-19 20:54:03 +11:00
Nicholas Nethercote b2889711de Bug 1299335 (part 6) - Streamline nsIWidget::{Move,Resize}Client(). r=mstange.
This patch changes them from |NS_IMETHOD| to |virtual void| because the return
values are never used.

--HG--
extra : rebase_source : a456f0035e66cf025305e5b3e2450057e368f3a8
2016-12-19 14:38:19 +11:00
Nicholas Nethercote 4f95087c90 Bug 1299335 (part 5) - Streamline nsIWidget::StartPluginIME. r=mstange.
This patch changes it from |NS_IMETHOD| to |virtual MOZ_MUST_USE nsresult|.

--HG--
extra : rebase_source : cd17e3c00c6c183d898f83e020861720b199775a
2016-12-16 10:55:18 +11:00
Nicholas Nethercote d0912b2968 Bug 1299335 (part 4) - Streamline nsIWidget::HideWindowChrome. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from the android nsIWidget instance,
  because it can use the nsBaseWidget one.

--HG--
extra : rebase_source : 0791d3cb05907d6b41879549b52f3a33018abf45
2016-12-16 10:54:12 +11:00
Nicholas Nethercote 1dab0c3072 Bug 1299335 (part 3) - Streamline nsIWidget::SetParent. r=mstange.
This patch removes its return value, because none of the call sites check it
except for one non-vital assertion.

--HG--
extra : rebase_source : 3471c4e22394b8a05c6708d0f8469686ffad9814
2016-12-16 10:54:11 +11:00
Nicholas Nethercote efc5071ff2 Bug 1299335 (part 2) - Streamline nsIWidget::SetIcon. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : a1a04193bc3940f1468c7c235f6d6e0341d0f1c2
2016-12-16 10:54:11 +11:00
Nicholas Nethercote 3970265787 Bug 1299335 (part 1) - Change some nsIWidget function return values from |NS_IMETHOD| to |virtual MOZ_MUST_USE nsresult|. r=jimm.
Specifically: OnDefaultButtonLoaded, AttachNativeKeyEvent, BeginMoveDrag,
BeginResizeDrag, GetAttention. These are all fallible functions whose result is
always checked.

The patch also moves some trivial function definitions from nsBaseWidget.cpp to
nsBaseWidget.h, and removes the android BeginResizeDrag() because it can
use the nsBaseWidget one.

--HG--
extra : rebase_source : ef32a41b547bcbc21f7df0043f683307470b136e
2016-12-16 10:54:02 +11:00
KuoE0 685b64a883 Bug 1282003 - (Part 3) Add screen ID to nsWindow and GeckoView to get the correct nsScreen and density. r=snorp
MozReview-Commit-ID: Cd9MS2I1RRQ

--HG--
extra : rebase_source : 3e557dc9bb3836cee6ecb86ddeb3c9647221195c
2016-09-29 14:23:56 +08:00
Sebastian Hengst a93f492bd9 Backed out changeset 1d7748535fa3 (bug 1282003) 2016-10-06 20:37:00 +02:00
KuoE0 55ce4ad9bf Bug 1282003 - (Part 3) Add screen ID to nsWindow and GeckoView to get the correct nsScreen and density. r=snorp
MozReview-Commit-ID: Cd9MS2I1RRQ

--HG--
extra : transplant_source : %27%C1%B7R%03%F9%CA%BC%8D%9D%8D%28u%FAU%92%B5%B7%0A%C2
2016-09-29 14:23:56 +08:00
Kartikaya Gupta 1d5a942431 Bug 1300421 - Back out 4 csets from bug 1288760 for regressing event coordinate reporting. r=jfkthame
MozReview-Commit-ID: AJ2PkSfYCpv
2016-09-29 10:20:52 -04:00
Stephen A Pohl c8f4c17fd0 Bug 1260850: Ensure that FilePicker (and other native app modal dialogs) on OSX remains responsive when a window modal dialog opens in the background. r=mstange 2016-09-08 15:41:55 -04:00
Nicholas Nethercote 5bf56904c4 Bug 1296993 (part 8) - Streamline nsIWidget::CaptureMouse. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : 1c42bb32a662f2659c934a245ecd0025045120a5
2016-08-25 14:10:02 +10:00
Nicholas Nethercote 346d5f4895 Bug 1296993 (part 7) - Streamline nsIWidget::CaptureRollupEvents. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Puts an empty implementation into nsBaseWidget.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : 2a94a47f1e7fe986d1efc3854c72968a3e28e365
2016-08-25 13:43:27 +10:00
Nicholas Nethercote 963f5a2b3a Bug 1296993 (part 6) - Streamline nsIWidget::SetPluginFocused. r=mstange.
This patch removes the return value, because none of the call sites check it.

--HG--
extra : rebase_source : c308e7edd03e9ba6d2f0c8f032438bc7743baa1f
2016-08-25 13:43:27 +10:00
Nicholas Nethercote d960fbd475 Bug 1296993 (part 5) - Streamline nsIWidget::SetWindow{ShadowStyle,TitlebarColor,Class}. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from the android nsIWidget instance,
  because it can use the nsBaseWidget one.

--HG--
extra : rebase_source : f276e1629fcd0ffccb8c8dbec7bba6639a5ebd9f
2016-08-25 13:43:27 +10:00
Nicholas Nethercote 4390cb4f8d Bug 1296993 (part 4) - Streamline nsIWidget::PlaceBehind. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : 82733f682c9e254e20354cc6908955a1e7485ee7
2016-08-25 13:43:27 +10:00
Nicholas Nethercote d8684f0659 Bug 1296993 (part 3) - Streamline nsIWidget::ConstrainPosition. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Puts an empty implementation into nsBaseWidget.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : ccf64aaa9364d096e1f060ef77be7e8455b11e1f
2016-08-25 13:43:27 +10:00
Nicholas Nethercote 672f94a22d Bug 1296993 (part 2) - Streamline nsIWidget::Set{,Fake}Modal. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : b8a0d9a49b31929dd06af9e61fc57f484af7671d
2016-08-25 13:43:26 +10:00
Nicholas Nethercote ff02e25e13 Bug 1296993 (part 1) - Streamline nsIWidget::ReparentNativeWidget. r=mstange.
This patch does the following.

- Removes the return value, because none of the call sites check it.

- Puts an empty implementation into nsBaseWidget.

- Removes the empty implementations from several nsIWidget instances, because
  they can use the nsBaseWidget one.

--HG--
extra : rebase_source : e98b7f9970a920c39e941bb531dfc098125913d1
2016-08-25 13:43:26 +10:00
Nicholas Nethercote 00246f9dff Bug 1293596 (part 8) - Make nsIWidget::EnableDragDrop() infallible. r=jimm.
Its return value is only checked in one low-value assertion.

The patch also does the following.

- Removes the Android and GTK overloadings of EnableDragDrop(), which are
  identical to the nsBaseWidget one.

- Streamlines the Windows implementation: fixes the indentation and takes
  advantage of infallible |new|.

--HG--
extra : rebase_source : d090848cf5ea2e92c0188b07559c1e1f3899829f
2016-08-22 09:16:50 +10:00
Nicholas Nethercote 367d94e34e Bug 1293596 (part 7) - Make nsIWidget::Destroy infallible. r=karlt.
--HG--
extra : rebase_source : 403d279c432c70671aa85991868d006c1f2da81d
2016-08-10 10:04:11 +10:00
Nicholas Nethercote 8bc855b22d Bug 1293596 (part 6) - Make nsIWidget::SetSizeMode() infallible. r=mstange,baku.
The only implementation of SetSizeMode() that can fail is the nsCocoaWindow
one, on an Objective C exception, which is unlikely and can be swallowed.

This allows some nsGlobalWindow functions to become infallible as well.

--HG--
extra : rebase_source : 85d54185f63d2c138ee3f3e0e0bfe3b5e805a981
2016-08-22 09:15:49 +10:00
Jim Chen 39e01a1284 Bug 1294479 - Remove presentation methods from nsWindow/AndroidBridge; r=snorp
Remove the presentation methods from nsWindow/AndroidBridge now that
they are not used. This also eliminates gGeckoViewWindow from nsWindow.
NS_PRESENTATION_WINDOW and NS_PRESENTATION_SURFACE constants are added
for GetNativeData/SetNativeData to provide replacements that support
multiple GeckoViews/nsWindows.
2016-08-19 17:17:24 -04:00
Nicholas Nethercote 3fda0deee8 Bug 1293596 (part 5) - Tweak nsIWidget::MakeFullScreen{,WithNativeTransition}(). r=mstange.
They don't need to be NS_IMETHOD.

The patch also gives nsBaseWidget an InfallibleMakeFullScreen() function, which
avoids the need for some checks.
2016-08-19 09:27:28 +10:00
Nicholas Nethercote cc993d1772 Bug 1293596 (part 4) - Tweak nsIWidget::Create. r=mstange.
They don't need to be NS_IMETHOD, but they should be MOZ_MUST_USE. Adding the
latter catches a few missing checks, which the patch adds.

The patch also gives PuppetWidget an InfallibleCreate() function, which makes
the infallibility of PuppetWidget creation clear.
2016-08-19 09:03:17 +10:00
Nicholas Nethercote 8f79833e36 Bug 1293596 (part 3) - Remove GetNonClientMargins. r=mstange.
It's dead code -- the only use is a recursive call within
nsWindow::GetNonClientMargins().
2016-08-19 09:03:13 +10:00
Nicholas Nethercote 67af4817e9 Bug 1293596 (part 2) - Rework nsIWidget bounds getters. r=mstange.
This patch makes GetBounds(), GetScreenBounds() and GetClientBounds() more
obviously infallible, like existing functions such as GetNaturalBounds() and
GetClientSize(). This results in clearer behaviour in nsCocoaWindow.mm if
Objective C exceptions occur. Along the way, the patch removes some useless
failure checks for these functions.

The patch also removes the NS_IMETHOD from GetRestoredBounds and makes that
function MOZ_MUST_USE.
2016-08-19 09:03:04 +10:00
Nicholas Nethercote 8e6f32c5b4 Bug 1293596 (part 1) - Don't use NS_IMETHOD for nsIWidget::AttachViewToTopLevel. r=karlt. 2016-08-10 10:04:08 +10:00
Wes Kocher a58f8b89a0 Merge m-c to inbound, a=merge 2016-08-18 16:32:58 -07:00