Commit graph

56 commits

Author SHA1 Message Date
Makoto Kato
e0eb251ca2 Bug 1552041 - Part 2. Don't open virtual keyboard via chrome script. r=geckoview-reviewers,snorp
Even if `element.focus` is called from chrome, we always open virtual keyboard.
But I would like to change this behaviour that virtual keyboard isn't opened
via `element.focus` that is chrome script.

Depends on D44104

Differential Revision: https://phabricator.services.mozilla.com/D44105

--HG--
extra : moz-landing-system : lando
2019-09-09 14:15:50 +00:00
Makoto Kato
6aaa810233 Bug 1577685 - Move some utility functions from IMEStateManager to widget. r=masayuki
I would like to log `IMEState` and `InputContextAction`in widget. But this
utilities are in `IMEStateManager`, so I would like to move it to widget
by using `mozilla/ToString.h`.

Differential Revision: https://phabricator.services.mozilla.com/D44103

--HG--
extra : moz-landing-system : lando
2019-08-30 05:56:58 +00:00
kriswright
d489024871 Bug 1573992 - Convert intl.ime.hack.on_any_apps.fire_key_events_for_composition to static pref. r=njn
Converts intl.ime.hack.on_any_apps.fire_key_events_for_composition to a static pref and updates its usages.

Differential Revision: https://phabricator.services.mozilla.com/D42393

--HG--
extra : moz-landing-system : lando
2019-08-26 20:25:42 +00:00
Makoto Kato
3cc03057bd Bug 1556103 - Part 2. Long press doesn't show virtual keyboard. r=geckoview-reviewers,snorp
When long tapping on input element, the behavior of virtual keyboard is different of Chrome.  Firefox opens virtual keyboard, but Chrome doesn't.

So I would like to change to same behavior of Chrome.

Also, after this fix, action bar (copy, paste and etc) won't be disappeared immediately after it appears by long tap.  Before applying this fix, virtual keyboard is shown, then focused element is scrolled to center.  So action bar may be disappeared.  But after applying this fix, focused element isn't scrolled. So action bar keeps same position.

Depends on D35991

Differential Revision: https://phabricator.services.mozilla.com/D35992

--HG--
extra : moz-landing-system : lando
2019-07-02 13:47:42 +00:00
Ryan Hunt
d6509bb237 Bug 1534395 - Rename TabChild to BrowserChild. r=nika
This commit renames TabChild to BrowserChild.

Differential Revision: https://phabricator.services.mozilla.com/D28135

--HG--
rename : dom/base/InProcessTabChildMessageManager.cpp => dom/base/InProcessBrowserChildMessageManager.cpp
rename : dom/base/InProcessTabChildMessageManager.h => dom/base/InProcessBrowserChildMessageManager.h
rename : dom/ipc/TabChild.cpp => dom/ipc/BrowserChild.cpp
rename : dom/ipc/TabChild.h => dom/ipc/BrowserChild.h
extra : rebase_source : e7fcfb845a971a2760e73d517e24da18ce2551b5
extra : histedit_source : d1991334ccb107fe56e478865f22fd97b041a317
2019-04-09 17:39:01 -05:00
Sylvestre Ledru
755a1a7c2f Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D17063

--HG--
extra : moz-landing-system : lando
2019-01-21 14:49:22 +00:00
Margareta Eliza Balazs
9dda825205 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-01-18 12:31:59 +02:00
Makoto Kato
8a1050b327 Bug 1510527 - Active composition count may be mismatched when updating composition. r=esawin
To avoid FlushIMEChanges per updating IME composition, we calculate composition count in DoReplaceText. But when using GV+e10s, this calculation is sometimes invalid since NOTIFY_IME_OF_COMPOSITION_EVENT_HANDLED event isn't received per PendingComposition.  Because, IMEStateManager will merge this completed events due to optimization of IME event.

Also, DoUpdateComposition calls SetPendingComposition, but it doesn't touch mIMEActiveCompositionCount,

So when using some IME, this value is minus or forever non-zero on some IMEs.

So we shouldn't use atomic count. When receiving NOTIFY_IME_OF_COMPOSITION_EVENT_HANDLED, we should reset it and allow IMEFlushChanges since Gecko has already handled all IME composition events in event queues.

Differential Revision: https://phabricator.services.mozilla.com/D14668

--HG--
extra : moz-landing-system : lando
2019-01-18 03:18:24 +00:00
Ehsan Akhgari
e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
arthur.iakab
89de43ee01 Backed out changeset 66e8d5fb19cb (bug 1510527) for failing rc4 tests on testInputConnection|Can backspace with shift+backspace CLOSED TREE 2018-12-20 11:34:00 +02:00
Makoto Kato
9235079616 Bug 1510527 - Active composition count may be mismatched when updating composition. r=esawin
To avoid FlushIMEChanges per updating IME composition, we calculate composition count in DoReplaceText. But when using GV+e10s, this calculation is sometimes invalid since NOTIFY_IME_OF_COMPOSITION_EVENT_HANDLED event isn't received per PendingComposition.  Because, IMEStateManager will merge this completed events due to optimization of IME event.

Also, DoUpdateComposition calls SetPendingComposition, but it doesn't touch mIMEActiveCompositionCount,

So when using some IME, this value is minus or forever non-zero on some IMEs.

So we shouldn't use atomic count. When receiving NOTIFY_IME_OF_COMPOSITION_EVENT_HANDLED, we should reset it and allow IMEFlushChanges since Gecko has already handled all IME composition events in event queues.

Differential Revision: https://phabricator.services.mozilla.com/D14668

--HG--
extra : moz-landing-system : lando
2018-12-18 16:22:21 +00:00
Tooru Fujisawa
7983faeb5d Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
Benjamin Bouvier
a7f1d173a0 Bug 1511383: Update vim modelines after clang-format; r=sylvestre
- modify line wrap up to 80 chars; (tw=80)
- modify size of tab to 2 chars everywhere; (sts=2, sw=2)

--HG--
extra : rebase_source : 7eedce0311b340c9a5a1265dc42d3121cc0f32a0
extra : amend_source : 9cb4ffdd5005f5c4c14172390dd00b04b2066cd7
2018-11-30 16:39:55 +01:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Gabriele Svelto
566f669d07 Bug 1509450 - Remove unnecessary inclusions of ContentParent.h and ContentChild.h r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D12728

--HG--
extra : moz-landing-system : lando
2018-11-26 14:49:44 +00:00
Jim Chen
e78fbd8ab8 Bug 1507328 - 2. Make new text input tests pass; r=esawin
Make some fixes in GeckoEditable and GeckoEditableSupport to make the
new tests pass under e10s.

Differential Revision: https://phabricator.services.mozilla.com/D11989

--HG--
extra : moz-landing-system : lando
2018-11-16 10:29:30 +00:00
Jim Chen
b7a44b77fb Bug 1457273 - Limit selection offsets after recovering from IME error; r=esawin
Sometimes, when recovering from an IME error, we get selection offsets
that are out of bounds. Limit the offsets in that case so we don't
crash.

Differential Revision: https://phabricator.services.mozilla.com/D11990

--HG--
extra : moz-landing-system : lando
2018-11-15 16:30:48 +00:00
Jim Chen
841b637299 Bug 1490391 - 2. Queue synchronize replies if we already queued some replies; r=esawin
If we already queued some synchronize replies, we should queue any
additional replies so that we don't prematurely reply to an event that
has not finished processing yet.

Also add delay for synchronize replies when a `OnImeUpdateComposition`
call is being processed.

Differential Revision: https://phabricator.services.mozilla.com/D9850
2018-11-06 00:12:07 -05:00
Jim Chen
12453d9645 Bug 1499429 - 5. Make setting editable parent async; r=esawin
Currently we make a sync call from the child process to the parent
process to retrieve the IGeckoEditableParent instance. However, that can
lead to deadlocks when a11y code makes parent-to-child async calls at
the same time. This patch makes the call async to avoid the deadlock.

Differential Revision: https://phabricator.services.mozilla.com/D10663
2018-11-06 00:12:07 -05:00
Jim Chen
8a599aa552 Bug 1499429 - 3. Transfer to new GeckoEditableParent during session transfer; r=esawin
During a session transfer, update existing GeckoEditableChild instances
in the parent and child processes to use the new GeckoEditableParent
instance that corresponds to the new session. If the GeckoEditableChild
has focus, take additional steps to make sure the GeckoEditableParent
receives current input context and focus information.

Differential Revision: https://phabricator.services.mozilla.com/D8996
2018-11-06 00:12:06 -05:00
Jim Chen
713d1d9d23 Bug 1492308 - 5. Make various objects use the new disposal mechanism; r=snorp
Make LayerViewSupport, NPZCSupport, GeckoEditableSupport, and
SessionAccessibility use the new disposal mechanism to ensure the
disposal is performed safely.

Differential Revision: https://phabricator.services.mozilla.com/D7110

--HG--
extra : moz-landing-system : lando
2018-10-02 19:59:40 +00:00
Jim Chen
1473a1889a Bug 1477469 - Check for null composition pointer; r=esawin
Check for null TextComposition pointer, which can apparently happen
during regular usage.

MozReview-Commit-ID: 6nKjyBVL2vF

--HG--
extra : rebase_source : 68d8ff37612f6908b3983993fc73d19e9c0b0e50
2018-07-24 18:14:05 -04:00
Jim Chen
4f6c4496c9 Bug 1470786 - 1. Support async text changes from replacing text; r=esawin
Currently, we expect editing operations in
GeckoEditableSupport::OnImeReplaceText to cause synchronous text change
notifications. However, under e10s, text change notifications can be
asynchornous. The new code keeps track of active OnImeReplaceText calls,
and look for async text changes before replying to the calls.

MozReview-Commit-ID: INM3JLmQebK

--HG--
extra : rebase_source : ff5b728ef437fcd78e4e7eced9c9a537d4698dce
2018-07-17 11:22:34 -04:00
Jim Chen
e9e6bfafd3 Bug 1466910 - 7. Don't coalesce notifyIMEContext calls; r=esawin
Right now we coalesce notifyIMEContext calls but only for legacy
reasons. With the current code we don't want to coalesce calls, in order
to be properly notified of blurring and focusing.

MozReview-Commit-ID: 6N2jhyyBKui

--HG--
extra : rebase_source : 0a488a726b834da4f6124092426638f4be368d43
2018-06-19 16:31:35 -04:00
Jim Chen
89932955b2 Bug 1466910 - 6. Fix logging code; r=jchen
MozReview-Commit-ID: KciGTPzrkkG

--HG--
extra : rebase_source : df689bce039c001fbb31bf9a949debd847de24e3
2018-06-19 16:31:34 -04:00
Jim Chen
8afd1f13c8 Bug 1466910 - 4. Don't notify of blur unnecessarily; r=esawin
Right now we always notify Java of input blur. However, when input is
rapidly blurred and then focused again, we don't want to generate the
unnecessary blur notification, in order to avoid unwanted effects such
as the keyboard flashing.

MozReview-Commit-ID: AL6aLAHqNpD

--HG--
extra : rebase_source : c0a6a731f95f997a7a8e19eacdb635f99d21ebf5
2018-06-19 16:31:34 -04:00
Boris Zbarsky
1fb03996f4 Bug 1387143 part 29. Remove nsISelection. r=mats 2018-05-08 13:52:42 -04:00
Masayuki Nakano
b87a7f9729 Bug 1447866 - GeckoEditableSupport::SendIMEDummyKeyEvent() should set native key bindings to none before dispatching keyboard events which are marked as "processed by IME" r=esawin
When EditorEventListener receives keyboard events, it tries to execute
native key bindings which are stored by each keyboard event.  For performance
reason in e10s, TabParent initializes native key binding information of every
keyboard event before sending it to the remote process.  Therefore,
PuppetWidget checks if every keyboard event has native key binding information.
However, the native key binding information of dummy keyboard events marked as
"processed by IME" on Android are never initialized before sending PuppetWidget.
Therefore, we hit MOZ_ASSERT in PuppetWidget.

This patch makes GeckoEditableSuppor::SendIMEDummyKeyEvent() set native key
binding information to "none" before dispatching every keyboard event since
keyboard events during composition shouldn't cause any edit actions.

MozReview-Commit-ID: Bk532ahCQP6

--HG--
extra : rebase_source : 939c1befd4b587681192b6827e7c7fa52619d498
2018-03-23 11:54:01 +09:00
Masayuki Nakano
fcb248a698 Bug 1343451 - part 5: Make GeckoEditableSupport dispatch dummy eKeyDown and eKeyUp event during composition always r=jchen
On Android, GeckoEditableSupport has already dispatched eKeyDown event and
eKeyUp event even during composition.  I.e., the pref which will be enabled
by bug 354358 has already been set to true only on Android.

On the other hand, GeckoEditableSupport does not dispatch them if content
listens to "input", "compositionstart", "compositionupdate" or
"compositionend".  So, different from the other platforms, we need additional
pref to make the new behavior behind pref.

Therefore, this patch adds a new pref,
"intl.ime.hack.on_any_apps.fire_key_events_for_composition", to override
existing "intl.ime.hack.on_ime_unaware_apps.fire_key_events_for_composition"
pref.  And sets mKeyCode and mKeyNameIndex of the dummy KeyboardEvents to
NS_VK_PROCESSKEY and KEY_NAME_INDEX_Process.

MozReview-Commit-ID: Fuy0Ir2xiO5

--HG--
extra : rebase_source : c76b613ea186458ebdf0d67f4bc984e8ac5f1041
2018-02-27 17:24:35 +09:00
Cosmin Sabou
462b445081 Backed out 6 changesets (bug 1343451) for mochitest android perma failures on testInputConnection.
Backed out changeset e07105d9698e (bug 1343451)
Backed out changeset dc4a2a5932c3 (bug 1343451)
Backed out changeset 9561ed261d04 (bug 1343451)
Backed out changeset 84a5ec921442 (bug 1343451)
Backed out changeset b34d48936db8 (bug 1343451)
Backed out changeset 4dce7ab14f71 (bug 1343451)
2018-03-12 18:07:46 +02:00
Masayuki Nakano
bb10e7fbe9 Bug 1343451 - part 5: Make GeckoEditableSupport dispatch dummy eKeyDown and eKeyUp event during composition always r=jchen
On Android, GeckoEditableSupport has already dispatched eKeyDown event and
eKeyUp event even during composition.  I.e., the pref which will be enabled
by bug 354358 has already been set to true only on Android.

On the other hand, GeckoEditableSupport does not dispatch them if content
listens to "input", "compositionstart", "compositionupdate" or
"compositionend".  So, different from the other platforms, we cannot test
this behind pref ("dom.keyboardevent.dispatch_during_composition") even in
Nightly.

Therefore, this patch enables new behavior only when it's Nightly build or
early Beta.  And sets mKeyCode and mKeyNameIndex of the dummy KeyboardEvents
to NS_VK_PROCESSKEY and KEY_NAME_INDEX_Process.

MozReview-Commit-ID: Fuy0Ir2xiO5

--HG--
extra : rebase_source : fade31954eaa1be8b7592977095ba8aebdd75104
2018-02-27 17:24:35 +09:00
Jim Chen
8c9f5ba234 Bug 1428182 - 8. Don't redefine keycodes when using unified headers; r=esawin
The unified headers already define the keycodes in
GeckoEditableSupport.cpp, so only define them ourselves when not using
unified headers (by checking the __ANDROID_API_X__ macros).

MozReview-Commit-ID: 3Ptakcm0rW

--HG--
extra : rebase_source : c7baf2fc9c02cc891946a197fb17309d3593a610
2018-01-30 14:08:23 -05:00
Cosmin Sabou
c6a0d55423 Backed out 11 changesets (bug 1428182) for build bustages on pixman-inlines.h:29:10 on a CLOSED TREE
Backed out changeset 84c767de6202 (bug 1428182)
Backed out changeset 429433caa78c (bug 1428182)
Backed out changeset c576e9d1f68f (bug 1428182)
Backed out changeset 092662eab5eb (bug 1428182)
Backed out changeset 4dd7eaff3ab5 (bug 1428182)
Backed out changeset fbbb0745b139 (bug 1428182)
Backed out changeset 1d1278b289b7 (bug 1428182)
Backed out changeset 55891ffb3768 (bug 1428182)
Backed out changeset 4655e1b1b237 (bug 1428182)
Backed out changeset 377eada51b3c (bug 1428182)
Backed out changeset 17c0e373d921 (bug 1428182)

--HG--
rename : ipc/chromium/src/third_party/libevent/patches/android-api-level.patch => ipc/chromium/src/third_party/libevent/patches/android-arc4random-buf.patch
2018-01-30 01:22:33 +02:00
Jim Chen
4d430ace3d Bug 1428182 - 8. Don't redefine keycodes when using unified headers; r=esawin
The unified headers already define the keycodes in
GeckoEditableSupport.cpp, so only define them ourselves when not using
unified headers (by checking the __ANDROID_API_X__ macros).

MozReview-Commit-ID: 3Ptakcm0rW

--HG--
extra : rebase_source : 01c302fa92ea00374d8f1dae326670dd98ad3ec8
2018-01-29 17:38:14 -05:00
Jim Chen
d7308576ea Bug 1430241 - Call PreventNativeKeyBindings for all key events in child; r=esawin
Call PreventNativeKeyBindings() for all key events to prevent triggering
an assertion in PuppetWidget.

MozReview-Commit-ID: 3x96p9baTze

--HG--
extra : rebase_source : 1f1477074e49ca7be9b3f3956289adf4f288a223
2018-01-19 17:52:27 -05:00
Jim Chen
af3a18ee62 Bug 1416918 - 4b. Move GeckoEditable{Client,Listener} to TextInputController; r=esawin
Move GeckoEditableClient and GeckoEditableListener to inside
TextInputController, next to TextInputController.Delegate. This
consolidates the three internal interfaces used for IME in one place.

The patch also changes the last notifyIMEContext parameter to an int
flag to indicate private browsing or user action. This allows for future
expansion without adding more parameters to notifyIMEContext.

MozReview-Commit-ID: BjscdNr9TkO

--HG--
extra : rebase_source : 87166a55e5978eda4a7c3065db9b68658e33af35
2017-12-13 22:57:21 -05:00
Jim Chen
9db87f4a1c Bug 1416918 - 4. Remove unused code; r=esawin
Remove InputConnectionListener, which was replaced by
TextInputController.Delegate, and remove IME_STATE_PLUGIN, which is not
used anymore.

MozReview-Commit-ID: GCbJXWNCmTk

--HG--
extra : rebase_source : c90bc79585ce4c5b9c0de5e07b0ea52531b65e04
2017-12-13 22:57:21 -05:00
shindli
a0b20fcb81 Merge mozilla-central to mozilla-autoland. r=merge a=merge CLOSED TREE 2017-11-22 23:42:02 +02:00
James Willcox
e626ddf5dc Bug 1409113 - Relax the user input requirement in order to show VKB on Android r=jchen
MozReview-Commit-ID: 4lvuGFyWj76
2017-11-22 10:09:07 -06:00
Jim Chen
82c5935b9b Bug 1416319 - 8. Switch to using LayerSession coordinates APIs; r=rbarker
Use the LayerSession coordinates APIs instead of manually calculating
coordinates using viewport metrics and toolbar height, which is prone to
error.

MozReview-Commit-ID: 4ebI3BHEOXR

--HG--
extra : rebase_source : 264f03f3032f101687c2a39d1cf052ac1805f12b
2017-11-22 14:12:23 -05:00
Jim Chen
bbe7b4e34c Bug 1416310 - 1. Remove getMatrixForLayerRectToViewRect; r=rbarker
Patch gets rid of `LayerView.getMatrixForLayerRectToViewRect`, and just
uses `LayerView.getZoomFactor` directly when calculating the matrix in
GeckoInputConnection. This also lets us avoid the `isCompositorReady`
call on a non-UI thread. To get the correct offset, we need the screen
bounds from Gecko, so it's passed to Java as the first element in the
rect array. Using bounds from Gecko lets us avoid having to deal with
things like the dynamic toolbar animator ourselves.

MozReview-Commit-ID: 6I61SZGyQyO

--HG--
extra : rebase_source : d576fb7ef9a42de10b14db662e5c4833f16f6312
2017-11-20 17:17:00 -05:00
Masayuki Nakano
2fcb0a64f2 Bug 1406446 - part 2: Android widget should use API of InputContextAction rather than accessing EventStateManager r=jchen
Basically, widget code shouldn't access API in dom/events as far as possible
since it's difficult to care widget code when other developers to change under
dom/.

This patch backouts the patch for bug 1402461 which made GeckoEditableSupport
depend on EventStateManager in dom/events.  Now, necessary information is in
InputContextAction and same condition should be shared with Windows.

MozReview-Commit-ID: LMlrizswxUj

--HG--
extra : rebase_source : c13604eac143ec5994c65571bff09887d5c0c221
2017-10-24 02:53:19 +09:00
Jim Chen
5f70c0bf46 Bug 1406168 - 3. Remove AndroidJavaWrappers; r=snorp
Remove AndroidJavaWrappers. Convert nsJNIString usages to use
jni::String and AndroidMotionEvent usages to use java::sdk::MotionEvent.
Move key code constants to GeckoEditableSupport.cpp.

MozReview-Commit-ID: CwcGGADWCNv
2017-11-01 14:48:48 -04:00
James Willcox
59bfaa0f09 Bug 1402461 - Improve user input detection for focus changes in Fennec r=jchen
Differential Revision: https://phabricator.services.mozilla.com/D94

MozReview-Commit-ID: 9VyoskwRrO1
2017-10-04 17:42:24 -05:00
James Willcox
216f3c6511 Bug 1400878 - Don't show keyboard on Android unless the user caused it r=jchen
MozReview-Commit-ID: KURh08X4Q4U
2017-09-20 14:48:00 -05:00
Jan Henning
641e43da0b Bug 1266683 - Part 3 - Update notifyIMEContext JNI bindings to include private mode info. r=jchen
MozReview-Commit-ID: Gl2iRWxo9lE

--HG--
extra : rebase_source : 4b0aad157af22dcb96aeb68b199bfa9404902dea
2017-07-31 22:45:54 +02:00
James Willcox
d0bb12024d Bug 1381916 - Remove support for plugins on Android r=jchen,bsmedberg
MozReview-Commit-ID: AcAIC1QQew2
2017-07-31 12:25:16 -05:00
Jim Chen
84b7350f94 Bug 1351170 - Don't crash on selection exception in Beta; r=me
Don't crash when we encounter a selection exception when in Beta. Still
crash when in Nightly so we can investigate the source of the crash.
r=me for trivial patch.

MozReview-Commit-ID: HgmudX4VfWO
2017-07-25 15:32:53 -04:00
Masayuki Nakano
5c5c82abc8 Bug 1339543 part 5 Remove unnecessary stuff from PuppetWidget r=smaug
MozReview-Commit-ID: 17dbDG1Fqwb

--HG--
extra : rebase_source : 9e1c849791d4b0e7bf132dd2d6a1628103664887
2017-05-17 20:46:47 +09:00
Jim Chen
4ad848635e Bug 1352177 - 3. Update existing binding config files; r=snorp
Update the existing binding config files to the new format. Bundle is no
longer used so Bundle-classes.txt is removed.
2017-05-03 11:36:19 -04:00