Commit Graph

244 Commits

Author SHA1 Message Date
Bill McCloskey
48fe44d618 Bug 1282153 - Remove retaining outparam to GetLayerManager (r=dvander) 2016-06-30 14:30:30 -07:00
Masayuki Nakano
13fdf820a2 Bug 1282669 Get rid of nsIMEUpdatePreference::DontNotifyChangesCausedByComposition() r=m_kato
I think that we can drop nsIMEUpdatePreference::DontNotifyChangesCausedByComposition(), i.e., nsIMEUpdatePreference::NOTIFY_CHANGES_CAUSED_BY_COMPOSITION because it's now used only by TSFTextStore but TSFTextStore ignores if SelectionChangeDataBase::mCausedByComposition or TextChangeDataBase::mCausedOnlyByComposition is true (for supporting async changes in e10s mode).  So, only issue is, dropping the flag might cause increasing computing TextChangeData cost during composition in TSF mode.  However, now, it's already enough fast and even if it'd cause performance regression, we could add a hack with TextComposition's offset information.  Therefore, we don't need to worry about the performance regression so seriously.

MozReview-Commit-ID: HNT3G4isONj
2016-06-28 16:51:59 +09:00
Masayuki Nakano
32b56d0706 Bug 1282668 Get rid of nsIMEUpdatePreference::NOTIFY_SELECTION_CHANGE r=m_kato
Currently, all widgets request selection change notifications to IMEContentObserver.  Additionally, IMEContentObserver needs to listen selection changes for caching latest selection for eQuerySelectedText.  Therefore, it doesn't make sense to keep defining nsIMEUpdatePreference::NOTIFY_SELECTION_CHANGE.

If widgets didn't need selection change notifications, they could just ignore the unnecessary notifications.

Note that all widgets don't need selection change notifications if a plugin has focus and IMEContentObserver cannot observe selection changes in the plugin.  Therefore, if IMEContentObserver is initialized with a plugin, it shouldn't listen selection changes (and doesn't need to notify widgets of selection changes).

MozReview-Commit-ID: FOVFFgA2nOz
2016-06-28 15:23:12 +09:00
Nicholas Nethercote
a41e57a9b1 Bug 1276824 (part 1) - Rename gfxContext::ForDrawTarget{,WithTransform}(). r=milan.
The new names Create{,PreservingTransform}OrNull() better communicate that
these functions (a) do object creation, and (b) are fallible.
2016-06-07 09:39:56 +10:00
Masayuki Nakano
b911e5da2c Bug 1275906 part.1 Rename NOTIFY_IME_OF_COMPOSITION_UPDATE to NOTIFY_IME_OF_COMPOSITION_EVENT_HANDLED r=m_kato
It's not clear to me what NOTIFY_IME_OF_COMPOSITION_UPDATE means only from the name. For making the name clearer, this patch renames it to NOTIFY_IME_OF_COMPOSITION_EVENT_HANDLED and add some explanation to the definition.

MozReview-Commit-ID: 8ySYCNJ1Ytz
2016-05-31 11:39:15 +09:00
Masayuki Nakano
b24c0ec4d6 Bug 1251063 PuppetWidget should cache InputContext which is set with SetInputContext() and use it in GetInputContext() only when it is the widget which has active input context in the process r=smaug
PuppetWidget::GetInputContext() needs to communicate with its parent process with synchronous IPC. This is very expensive for focus move.

Currently, IMEStateManager uses nsIWidget::GetInputContext() only for checking the IME enabled state.  Therefore, it's enough to cache input context when nsIWidget::SetInputContext() is called.  Then, we can avoid to communicate with synchronous IPC with PuppetWidget::GetInputContext() in most cases.

This patch makes IMEStateManager stores the last widget which sets input context.  When PuppetWidget uses its input context cache, it should check if it is the last widget to set input context with IMEStateManager since an input context may be shared with other widgets and another one may have update the input context.  I.e., PuppetWidget's input context cache may be already outdated after IMEStateManager sets input context with another widget.

This patch gives up to support retrieving IME open state from child process. However, perhaps, this is not necessary for everybody including add-on developers because the only user of IME open state in child process is nsIDOMWindowUtils. So, add-ons can send IME open state from chrome process instead.  If this decision is wrong, unfortunately, we should support it again in another bug.  It's easy to support with creating another nsIWidget::GetInputContext() or adding additional argument to it.

MozReview-Commit-ID: B2d2CCTsPKj
2016-05-28 11:27:56 +09:00
eyim
c53a818ae3 Bug 1145085 - Move widget/ContentHelper.* to gfx/layers/apz/util/TouchActionHelper.*. r=BenWa,kats
r?BenWa,kats

MozReview-Commit-ID: 5snt3fIGnAS
2016-05-27 16:46:25 -04:00
Nicholas Nethercote
a70a13fd62 Bug 1272203 (part 3) - Use NotNull in nsContentUtils::GetSurfaceData(). r=froydnj.
This might not look compelling in isolation, but this use of NotNull would have
prevented the null dereference crash in bug 1268721.
2016-05-27 09:49:25 +10:00
Makoto Kato
5974e9ae92 Bug 1177943 - Part 5. Add IPC for e10s support. r=masayuki
Implement LookUpDictionary to PuppetWidget and PBrowser for e10s.

MozReview-Commit-ID: 44SrfuLJoCF
2016-04-26 17:18:04 +09:00
Timothy Nikkel
fec20f9b3f Bug 1261752. Part 3. r=mats 2016-05-10 22:58:47 -05:00
Andrew McCreight
18c0e40b70 Bug 1268721, part 2 - Null check first argument to nsContentUtils::GetSurfaceData(). r=jimm 2016-05-03 07:04:21 -07:00
Masayuki Nakano
bbce223b06 Bug 1257759 part.5 PluginInstanceChild should post received native key event to chrome process if the key combination may be a shortcut key r=jimm
When PluginInstanceChild receives native key events, it should post the events to the chrome process first for checking if the key combination is reserved.  However, posting all key events to the chrome process may make damage to the performance of text input.  Therefore, this patch starts to post a key event whose key combination may be a shortcut key.  However, for avoiding to shuffle the event order, it posts following key events until all posted key events are handled by the chrome process.

For receiving response from widget, this patch defines nsIKeyEventInPluginCallback.  It's specified by nsIWidget::OnWindowedPluginKeyEvent() for ensuring the caller will receive the reply.  Basically, the caller of nsIWidget::OnWindowedPluginKeyEvent() should reply to the child process.  However, if the widget is a PuppetWidget, it cannot return the result synchronously.  Therefore, PuppetWidget::OnWindowedPluginKeyEvent() returns NS_SUCCESS_EVENT_HANDLED_ASYNCHRONOUSLY and stores the callback to mKeyEventInPluginCallbacks.  Then, TabParent::HandledWindowedPluginKeyEvent() will call PuppetWidget::HandledWindowedPluginKeyEvent().

MozReview-Commit-ID: G6brOU26NwQ
2016-04-19 20:09:37 +09:00
Nathan Froyd
6b106cc361 Bug 1265902 - part 1 - be more efficient when using nsContentUtils::GetSurfaceData(); r=mccr8
nsContenUtils::GetSurfaceData() returns an allocated buffer; the uses of
it in PuppetWidget and nsContentUtils::TransferableToIPCTransferable
copy the allocated buffer again.  We can do better than this.  In the
PuppetWidgetCase, we can simply construct an nsDependentCString for
sending the IPC message.  In the TransferableToIPCTransferable case, we
can transfer ownership of the buffer into the IPCDataTransferItem we are
creating.
2016-04-20 11:50:45 -04:00
Masayuki Nakano
99eab530eb Bug 1259656 part.1 Rename WidgetEvent::refPoint to WidgetEvent::mRefPoint r=smaug
MozReview-Commit-ID: ESWM5ZyBpSR
2016-04-18 23:09:02 +09:00
Masayuki Nakano
35775b20e1 Bug 1259657 Rename WidgetGUIEvent::widget to WidgetGUIEvent::mWidget r=smaug
MozReview-Commit-ID: 167PQWJDEHW
2016-04-14 17:03:14 +09:00
Kartikaya Gupta
ebc6b999e7 Bug 1250505 - Convert SynthesizeNativeTouchPoint and SynthesizeNativeTouchTap to take a LayoutDeviceIntPoint instead of a ScreenPoint. r=njn
MozReview-Commit-ID: EybGq9b1B8Z
2016-04-15 06:39:36 -04:00
Ting-Yu Chou
ec79a2e5a1 Bug 1260736 - Let the client to filter out its interested messages to lower the number of times entering the monitor in PeekMessages(). r=dvander 2016-04-13 09:51:34 +08:00
Milan Sreckovic
dd0830c93c Bug 1259513: Make gfxContext constructor private, use a utility function that can return nullptr. r=bas,lsalzman
MozReview-Commit-ID: rHhLEDZEQt
2016-04-12 15:18:11 -04:00
Nathan Froyd
0c59d23a4e Bug 1261818 - don't pass nsAutoCStrings into nsBaseWidget debugging methods; r=karlt
Passing raw character pointers works just fine.
2016-03-31 14:42:13 -04:00
Ting-Yu Chou
df3ab076b1 Bug 1255968 - Part 2: Implement puppet widget's HasPendingInputEvent() for interruptible reflow to work in content process. r=bz 2016-03-29 15:03:54 +08:00
Arata Furukawa
a3f2b4162e Bug 1259655 - part 1 Rename WidgetEventTime::time to WidgetEventTime::mTime r=masayuki
MozReview-Commit-ID: 7lBCEVkanvF
2016-03-28 13:29:42 +09:00
Kartikaya Gupta
c18266e65d Bug 1242690 - Squash together DispatchAPZAwareEvent and DispatchInputEvent. r=dvander
MozReview-Commit-ID: 2cou0cK4Yw8
2016-03-10 18:25:48 -05:00
Kartikaya Gupta
5c9dcec141 Bug 1252262 - Don't combine the client offset into the outer rect for the child process. r=jimm
MozReview-Commit-ID: BslkWk7ndkx
2016-03-08 14:14:43 -05:00
Peter Van der Beken
2998bad48a Bug 1020199 - Make sure APZ works with nested oop iframe. r=kats, r=dvander. 2016-01-08 20:17:39 +01:00
Makoto Kato
85294d227b Bug 1243268 - Support ImmSetCandidateWindow(CFS_EXCLUDE) on plugin process. r=masayuki 2016-02-02 17:05:56 +09:00
Kartikaya Gupta
423eb91d86 Back out 3 csets from bug 1242690 for causing bug 1244549. r=backout 2016-01-31 14:44:58 -05:00
Kartikaya Gupta
aa24bb85e0 Bug 1242690 - Squash together DispatchAPZAwareEvent and DispatchInputEvent. r=dvander 2016-01-29 16:31:15 -05:00
Masayuki Nakano
a92e756814 Bug 1242331 part.2 Rename TextChangeDataBase::mCausedByComposition to mCausedOnlyByComposition r=smaug 2016-01-28 13:28:53 +09:00
Nicholas Nethercote
8b08d3a33e Bug 1239864 (part 10) - Use the new rect iterators in view/ and widget/. r=roc. 2016-01-18 17:20:59 -08:00
Nicholas Nethercote
06ef418546 Bug 1239864 (part 1) - Add new, nicer rect-iterators for nsRegion and nsIntRegion. r=roc.
This requires renaming the existing nsIntRegion::RectIterator as
nsIntRegion::OldRectIterator to make way for the new nsIntRegion::RectIterator.
This doesn't require many knock-on changes because most existing uses of
that type use the nsIntRegionRectIterator typedef.
2016-01-14 18:36:11 -08:00
Kartikaya Gupta
0da0da690c Bug 1240891 - Silence warning from calling GetNativeData(NS_NATIVE_WINDOW). r=roc 2016-01-25 17:13:50 -05:00
Randall Barker
b474749936 Bug 1231517 - part 3, Add ZoomToRect function to nsIWidget classes r=kats 2016-01-20 16:24:59 -08:00
Nicholas Nethercote
da19ce6e70 Bug 1239589 - Change nsBaseWidget::mBounds to a LayoutDeviceIntRect. r=kats.
This patch removes dozens of ToUnknown/FromUnknown conversions and doesn't add
any new ones, which is nice. It also removes UntypedDevPixelsToCocoaPoints(),
which is no longer needed.
2015-11-22 20:32:29 -08:00
Jonathan Kew
d74daaf3aa Bug 890156 - patch 0.2 - Remove the (unused) aRect parameter from nsBaseWidget::BaseCreate. r=kats 2016-01-13 07:32:55 +00:00
Makoto Kato
fca5f2b18c Bug 1208944 - Part 10-a. Call CallWindowProc when WidgetPluginEvent isn't handled by plugin. r=masayuki 2015-12-29 22:57:38 +09:00
Makoto Kato
1c11b1945f Bug 1208944 - Part 9. Hook IMM32 APIs on plugin process. r=masayuki 2015-12-29 22:57:38 +09:00
Sebastian Hengst
e8bb1c660e Backed out 15 changesets (bug 1208944) for failing tests M(2,5) on OSX. r=backout
Backed out changeset c29de223de2f (bug 1208944)
Backed out changeset 3d99da255be1 (bug 1209844)
Backed out changeset 3c915942af38 (bug 1209844)
Backed out changeset 759b425b5503 (bug 1208944)
Backed out changeset bf73cf8f0fda (bug 1208944)
Backed out changeset 0e337d912b7d (bug 1208944)
Backed out changeset 31c47f2980b5 (bug 1208944)
Backed out changeset 3e0d70a6e809 (bug 1208944)
Backed out changeset 7685dcb63e5f (bug 1208944)
Backed out changeset 3c2b9372dd36 (bug 1208944)
Backed out changeset 18160d306493 (bug 1208944)
Backed out changeset 4974e397b655 (bug 1208944)
Backed out changeset fde7e439844d (bug 1208944)
Backed out changeset 4213a355fbdc (bug 1208944)
Backed out changeset 33cfddbbf5f2 (bug 1208944)
2015-12-29 17:42:02 +01:00
Makoto Kato
4da7dd7612 Bug 1208944 - Part 10-a. Call CallWindowProc when WidgetPluginEvent isn't handled by plugin. r=masayuki 2015-12-29 22:57:38 +09:00
Makoto Kato
1ecd04e712 Bug 1208944 - Part 9. Hook IMM32 APIs on plugin process. r=masayuki 2015-12-29 22:57:38 +09:00
Jim Mathies
b243971354 Bug 1222662 - Disable cursor caching in the content process on Windows. r=aklotz 2015-12-21 16:19:15 -06:00
Masayuki Nakano
90f1919bed Bug 1179632 part.4 Clean up the code to request IME to commit composition across process boundary r=smaug 2015-12-11 15:15:58 +09:00
Masayuki Nakano
4f019fe44a Bug 1179632 part.2 WidgetCompositionEvent should store NativeIMEContext which caused the event and PuppetWidget should store it for GetNativeIMEContext() r=smaug, sr=smaug 2015-12-11 15:15:57 +09:00
Masayuki Nakano
21a40a0391 Bug 1179632 part.1 native IME context should not be stored in InputContext but should be able to retrieve with nsIWidget::GetNativeData() r=smaug 2015-12-11 15:15:57 +09:00
Nicholas Nethercote
738f8217ba Bug 1230047 (part 2) - Make several PaintWindow() functions use LayoutDevice coordinates. r=kats.
Specifically, the PaintWindow() functions in the following classes:
- nsIWidgetListener, and its subclasses nsView and nsWebBrowser;
- nsChildView;
- nsWindow (the one in widget/uikit/);
- nsViewManager.
2015-12-02 21:45:41 -08:00
Nicholas Nethercote
b0bb46d766 Bug 1230047 (part 1) - Make SynthesizeNativeTouch{Point,Tap}() take ScreenIntPoints. r=kats. 2015-12-02 21:45:38 -08:00
Nicholas Nethercote
6f043f6b6e Bug 1229237 (part 3) - Make nsIWidget::Invalidate() take a LayoutDeviceIntRect. r=botond. 2015-11-16 21:18:31 -08:00
Nicholas Nethercote
8da819977a Bug 1229237 (part 1) - Make nsIWidget::{Create,CreateChildren}() take a LayoutDeviceIntRect. r=botond. 2015-11-16 00:35:18 -08:00
Nathan Froyd
54dfa729a9 Bug 1218454 - part 2 - don't #include nsContentUtils.h from CallbackObject.h; r=bz
We used to need nsContentUtils.h here for nsCxPusher, but since that got
moved to ScriptSettings.h, we no longer need nsContentUtils.h for
anything.
2015-10-26 12:14:47 -04:00
Nicholas Nethercote
3dfaddf77b Bug 1224482 (part 1) - Tweak typed/untyped versions of Get{,Client,Screen}Bounds(). r=kats.
In nsIWidget, GetBoundsUntyped(), GetClientBoundsUntyped() and
GetScreenBoundsUntyped() are currently the primary implementations, and the
untyped versions are defined on top of them. This patch flips that around.
2015-11-12 16:04:52 -08:00
Nicholas Nethercote
a9b04a8e78 Bug 1224403 (part 12) - Remove WidgetToScreenOffsetUntyped(). r=kats.
There are few enough calls now that using WidgetToScreenOffset() +
ToUnknownPoint() is a better approach.
2015-11-12 15:37:18 -08:00