searching for reviewer(esawin)
7595a01c76d14e3ed3f18f35b154632b6207f0e5: Bug 1353459 - handle queueInputBuffer exceptions. r=esawin. a=gchang
John Lin <jolin@mozilla.com> - Tue, 18 Apr 2017 17:59:28 +0800 - rev 375968
Push 11069 by ihsiao@mozilla.com at Tue, 18 Apr 2017 10:00:59 +0000
Bug 1353459 - handle queueInputBuffer exceptions. r=esawin. a=gchang MozReview-Commit-ID: 1IgLfpmGnN3
b7cdc8cfc61fc06eaa036beb6e06da09d4d4728f: Bug 1353459 - handle queueInputBuffer exceptions. r=esawin. a=gchang
John Lin <jolin@mozilla.com> - Tue, 11 Apr 2017 16:26:12 +0800 - rev 375962
Push 11066 by ihsiao@mozilla.com at Tue, 18 Apr 2017 08:21:05 +0000
Bug 1353459 - handle queueInputBuffer exceptions. r=esawin. a=gchang MozReview-Commit-ID: 1Tm0vcl3Uv7
e0352fcf12c17aee1f3e5ccd5c363b517bbdc0a3: Bug 1349883 - Part 2: Reveal more input buffer status to callbacks. r=esawin, r=jya, a=gchang
John Lin <jolin@mozilla.com> - Thu, 13 Apr 2017 17:32:14 +0800 - rev 375917
Push 11058 by ryanvm@gmail.com at Fri, 14 Apr 2017 20:06:37 +0000
Bug 1349883 - Part 2: Reveal more input buffer status to callbacks. r=esawin, r=jya, a=gchang Promise based MediaDataDecoder expects one response per request, but ICodecCallbacks was not designed that way. onInputExhausted() is called only when there are none or just a few input buffers waiting to be queued, and onOutput() is called as soon as output buffers are available. It means these 2 kinds of events are usually interleaved and hard to align with pending promises. Reporting each input buffer status makes it easier for RemoteDataDecoder to resolve promise properly. MozReview-Commit-ID: 3FoPzXruRnh
fc16131f93233db6253a19ed010d9c5ab6a31303: Bug 1349883 - Part 1: Combine output buffer index and sample records. r=esawin, r=jya, a=gchang
John Lin <jolin@mozilla.com> - Thu, 13 Apr 2017 17:30:41 +0800 - rev 375916
Push 11058 by ryanvm@gmail.com at Fri, 14 Apr 2017 20:06:37 +0000
Bug 1349883 - Part 1: Combine output buffer index and sample records. r=esawin, r=jya, a=gchang MozReview-Commit-ID: ERbFUoyvVhZ
b69fad4653f16f5c22d6870607eddc406c2424ce: Bug 1344752 - Guard against blurring when replacing text. r=esawin, a=gchang
Jim Chen <nchen@mozilla.com> - Fri, 10 Mar 2017 14:10:15 -0500 - rev 375222
Push 10903 by ryanvm@gmail.com at Wed, 15 Mar 2017 23:12:31 +0000
Bug 1344752 - Guard against blurring when replacing text. r=esawin, a=gchang Inside OnImeReplaceText, an action can cause the editor to blur and mDispatcher to be reset. We should guard against that and abandon subsequent actions.
952cd4007da70fce3fdd9f8a1e4606e87db38871: Bug 1339685 - Split GeckoEditable into parent and child classes; r=nalexander r=esawin r=snorp
Jim Chen <nchen@mozilla.com> - Thu, 02 Mar 2017 13:47:14 -0500 - rev 374755
Push 10863 by jlorenzo@mozilla.com at Mon, 06 Mar 2017 23:02:23 +0000
Bug 1339685 - Split GeckoEditable into parent and child classes; r=nalexander r=esawin r=snorp Bug 1339685 - 1. Support compiling GeckoView aidl from multiple packages; r=nalexander Specify a list of AIDL files for GeckoView so we can include AIDLs from multiple packages, and not just those from the org.mozilla.gecko.process package. Bug 1339685 - 2. Add AIDLs for GeckoEditable; r=esawin Add IGeckoEditableParent.aidl and IGeckoEditableChild.aidl for two-way communication between the parent, which lives in the main process, and the child, which lives in the main process or a child content process. Bug 1339685 - 3. Refactor some GeckoEditable code; r=esawin Auto-generate native constants for the constants in GeckoEditableClient, instead of keeping a separate set of constants in native code. Bug 1339685 - 4. Add GeckoEditableChild; r=esawin Add the GeckoEditableChild class, which is currently only used in the main process as the interface between the native nsWindow and GeckoEditable. Eventually, it will be expanded to child content processes as the interface between the native PuppetWidget and main process GeckoEditable. Bug 1339685 - 5. Use GeckoEditableChild from GeckoEditable; r=esawin Make calls to GeckoEditableChild from GeckoEditable, and remove code that exists in GeckoEditableChild from GeckoEditable. Bug 1339685 - 6. Add GetNativeObject member to proxied native calls; r=snorp Add a convenience function for getting the C++ object that is the target of the native call. Bug 1339685 - 7. Use GeckoEditableChild from native code; r=esawin Make nsWindow and GeckoEditableSupport use GeckoEditableChild for communication. nsWindow still keeps a reference to GeckoEditable for switching views. Bug 1339685 - 8. Updated generated bindings; r=me
4048d3a531078eb13aed019c5cc5f68da49967c5: Bug 1137567 - Make nsWindow for Android use TextEventDispatcher; r=esawin r=rbarker r=masayuki r=snorp
Jim Chen <nchen@mozilla.com> - Wed, 01 Mar 2017 15:29:30 -0500 - rev 374548
Push 10863 by jlorenzo@mozilla.com at Mon, 06 Mar 2017 23:02:23 +0000
Bug 1137567 - Make nsWindow for Android use TextEventDispatcher; r=esawin r=rbarker r=masayuki r=snorp Bug 1137567 - 1. Allow dispatching key events during composition; r=esawin We potentially dispatch key events during composition to provide compatibility for pages that only listen to key events. Bug 1137567 - 2. Allow keyboard events in DispatchInputEvent when not on APZ thread; r=rbarker We use nsIWidget::DispatchInputEvent to dispatch our keyboard events on the Gecko thread, which on Android is not the APZ controller thread. We should allow these events to pass instead of crashing. Bug 1137567 - 3. Add GeckoEditableSupport class to support TextEventDispatcher; r=masayuki Add a separate GeckoEditableSupport class, which implements TextEventDispatcherListener and uses TextEventDispatcher for IME operations. The new class is entirely separate from nsWindow to allow it to be independently used in content processes as well. Most of the code is copied from nsWindow::GeckoViewSupport, and adapted to use TextEventDispatcher. Bug 1137567 - 4. Make nsWindow::WindowPtr available for outside classes; r=snorp Make nsWindow::WindowPtr available not just for classes inside nsWindow but for outside classes as well. Also, add support for RefPtr native objects to nsWindow::NativePtr. Bug 1137567 - 5. Use GeckoEditableSupport in nsWindow; r=esawin Use the new GeckoEditableSupport class in nsWindow to replace the previous code in nsWindow::GeckoViewSupport. GeckoEditable native methods now go to GeckoEditableSupport instead of GeckoViewSupport. Several native methods in GeckoEditable are changed from dispatchTo="proxy" to dispatchTo="gecko", because we no longer need the special nsWindow::WindowEvent wrapper for our native calls. Bug 1137567 - 6. Use pushPrefEnv in test_assign_event_data.html; r=masayuki setAndObserveCompositionPref in test_assign_event_data.html does not invoke the callback if the pref is already set. This patch changes it to use SpecialPowers.pushPrefEnv so the callback is always invoked.
13bd2c36c19425fb40e73db798db68c3a806771f: Bug 1137567 - Make nsWindow for Android use TextEventDispatcher; r=esawin r=rbarker r=masayuki r=snorp
Jim Chen <nchen@mozilla.com> - Fri, 24 Feb 2017 16:28:18 -0500 - rev 373922
Push 10863 by jlorenzo@mozilla.com at Mon, 06 Mar 2017 23:02:23 +0000
Bug 1137567 - Make nsWindow for Android use TextEventDispatcher; r=esawin r=rbarker r=masayuki r=snorp Bug 1137567 - 1. Allow dispatching key events during composition; r=esawin We potentially dispatch key events during composition to provide compatibility for pages that only listen to key events. Bug 1137567 - 2. Allow keyboard events in DispatchInputEvent when not on APZ thread; r=rbarker We use nsIWidget::DispatchInputEvent to dispatch our keyboard events on the Gecko thread, which on Android is not the APZ controller thread. We should allow these events to pass instead of crashing. Bug 1137567 - 3. Add GeckoEditableSupport class to support TextEventDispatcher; r=masayuki Add a separate GeckoEditableSupport class, which implements TextEventDispatcherListener and uses TextEventDispatcher for IME operations. The new class is entirely separate from nsWindow to allow it to be independently used in content processes as well. Most of the code is copied from nsWindow::GeckoViewSupport, and adapted to use TextEventDispatcher. Bug 1137567 - 4. Make nsWindow::WindowPtr available for outside classes; r=snorp Make nsWindow::WindowPtr available not just for classes inside nsWindow but for outside classes as well. Also, add support for RefPtr native objects to nsWindow::NativePtr. Bug 1137567 - 5. Use GeckoEditableSupport in nsWindow; r=esawin Use the new GeckoEditableSupport class in nsWindow to replace the previous code in nsWindow::GeckoViewSupport. GeckoEditable native methods now go to GeckoEditableSupport instead of GeckoViewSupport. Several native methods in GeckoEditable are changed from dispatchTo="proxy" to dispatchTo="gecko", because we no longer need the special nsWindow::WindowEvent wrapper for our native calls.
427fd576729151744a2bdd7f433cdf78c0ba3015: Bug 1339160 - 4. Use GeckoService to extract libs on update; r=esawin
Jim Chen <nchen@mozilla.com> - Wed, 15 Feb 2017 17:13:05 -0500 - rev 372229
Push 10863 by jlorenzo@mozilla.com at Mon, 06 Mar 2017 23:02:23 +0000
Bug 1339160 - 4. Use GeckoService to extract libs on update; r=esawin Use the GeckoService load-libs action to load and extract new libraries when we receive the update broadcast. This makes us not block the UI thread to extract libs, and lets Fennec run normally if the user launches Fennec right after updating.
a0bd28150d4f8654aaf3a05f0c97eea1f8233af7: Bug 1319660 - Fix possible crash when editing contentEditable; r=esawin r=masayuki r=smaug
Jim Chen <nchen@mozilla.com> - Mon, 23 Jan 2017 14:35:04 -0500 - rev 359817
Push 10863 by jlorenzo@mozilla.com at Mon, 06 Mar 2017 23:02:23 +0000
Bug 1319660 - Fix possible crash when editing contentEditable; r=esawin r=masayuki r=smaug Bug 1319660 - 1. Don't take shortcut if old replacement ranges don't match; r=esawin The block at [1] is a shortcut we take when we reconcile Java text changes with Gecko text changes. However, we only checked that the new ranges are the same, i.e. that the new Gecko text is the same as the new Java text. We should also be checking that the old ranges are the same, i.e. that the replaced Gecko text is the same as the replaced Java text. [1] https://dxr.mozilla.org/mozilla-central/rev/bbbd2f7539f224a482cc6d2dd10e6a5f31c8baf3/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoEditable.java#1233 Bug 1319660 - 2. Use previous node instead of sibling when adjusting last node; r=masayuki r=smaug nsContentIterator in pre mode adjusts its last node if the node is a childless node like <br>. However, right now it's using GetPrevSibling, which can lead to error in some edge cases such as: <p></p><div><br></div> In this case, if the last node is <br> with offset 0, GetPrevSibling will return <p> because <p> is <br>'s parent's previous sibling, and the last node will be set to <p>. However, the correct last node in this case is <div>, because <br> with offset 0 refers to the position to the left of <br>, which is <div> with offset 0. In this case, PrevNode returns the correct <div> value, so we should set the last node to the result of PrevNode. For the first node, for a childless node in pre mode, GetNextSibling and NextNode are the same, so there is no bug in this case. Nevertheless, this patch changes the call to NextNode to be consistent with calling PrevNode for the last node. Bug 1319660 - 3. Add test for correctly adjusting last node in content iterator; r=masayuki Add a test for the previous patch that makes sure querying selected text in an edge case works correctly. Bug 1319660 - 4. Add test for start node regression; r=me Add a new test case for the NextNode() regression. r=me for trivial test-only patch. Bug 1319660 - 5. Restore GetNextSibling call for first node of pre-content-iterator; r=smaug The last patch changed the `GetNextSibling()` call to `NextNode()` because I assumed they're equivalent in this case. That turned out to not be the case because we can reach this line even if the node has children -- the index just has to be after the last child. So this patch restores the `GetNextSibling` call to restore the correct behavior. I also added some comment to clarify that we can reach this line due to one of two conditions: 1) the node has no children; 2) the node has children but the index is after the last child. This patch also replaces the `HasChildren()` check when setting `cChild`. If the index is after the last child (i.e. index == childCount), `GetChildAt()` fails and we erroneously log an assertion warning, even though the input was valid. The new check handles all cases whether start node has children or not.
5ae7001fbd3f6441525f70a8c4c2db12c5ce5b00: Bug 1319660 - Fix possible crash when editing contentEditable; r=esawin r=masayuki r=smaug a=lizzard a=jcristau
Jim Chen <nchen@mozilla.com> - Mon, 23 Jan 2017 14:35:04 -0500 - rev 358802
Push 10659 by cbook@mozilla.com at Wed, 01 Feb 2017 14:58:22 +0000
Bug 1319660 - Fix possible crash when editing contentEditable; r=esawin r=masayuki r=smaug a=lizzard a=jcristau Bug 1319660 - 1. Don't take shortcut if old replacement ranges don't match; r=esawin The block at [1] is a shortcut we take when we reconcile Java text changes with Gecko text changes. However, we only checked that the new ranges are the same, i.e. that the new Gecko text is the same as the new Java text. We should also be checking that the old ranges are the same, i.e. that the replaced Gecko text is the same as the replaced Java text. [1] https://dxr.mozilla.org/mozilla-central/rev/bbbd2f7539f224a482cc6d2dd10e6a5f31c8baf3/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoEditable.java#1233 Bug 1319660 - 2. Use previous node instead of sibling when adjusting last node; r=masayuki r=smaug nsContentIterator in pre mode adjusts its last node if the node is a childless node like <br>. However, right now it's using GetPrevSibling, which can lead to error in some edge cases such as: <p></p><div><br></div> In this case, if the last node is <br> with offset 0, GetPrevSibling will return <p> because <p> is <br>'s parent's previous sibling, and the last node will be set to <p>. However, the correct last node in this case is <div>, because <br> with offset 0 refers to the position to the left of <br>, which is <div> with offset 0. In this case, PrevNode returns the correct <div> value, so we should set the last node to the result of PrevNode. For the first node, for a childless node in pre mode, GetNextSibling and NextNode are the same, so there is no bug in this case. Nevertheless, this patch changes the call to NextNode to be consistent with calling PrevNode for the last node. Bug 1319660 - 3. Add test for correctly adjusting last node in content iterator; r=masayuki Add a test for the previous patch that makes sure querying selected text in an edge case works correctly. Bug 1319660 - 4. Add test for start node regression; r=me Add a new test case for the NextNode() regression. r=me for trivial test-only patch. Bug 1319660 - 5. Restore GetNextSibling call for first node of pre-content-iterator; r=smaug The last patch changed the `GetNextSibling()` call to `NextNode()` because I assumed they're equivalent in this case. That turned out to not be the case because we can reach this line even if the node has children -- the index just has to be after the last child. So this patch restores the `GetNextSibling` call to restore the correct behavior. I also added some comment to clarify that we can reach this line due to one of two conditions: 1) the node has no children; 2) the node has children but the index is after the last child. This patch also replaces the `HasChildren()` check when setting `cChild`. If the index is after the last child (i.e. index == childCount), `GetChildAt()` fails and we erroneously log an assertion warning, even though the input was valid. The new check handles all cases whether start node has children or not.
fb6a2290e35d17db060dfe3c541ca04f3a6f9230: Bug 1330515 - Try to recover from IME errors; r=esawin
Jim Chen <nchen@mozilla.com> - Fri, 13 Jan 2017 14:39:27 -0500 - rev 357434
Push 10621 by jlund@mozilla.com at Mon, 23 Jan 2017 16:02:43 +0000
Bug 1330515 - Try to recover from IME errors; r=esawin Instead of throwing IME exceptions, try to recover from IME errors by flushing the entire text unless we already tried that before. This prevents annoying crashes, and deals with known IME bugs that are too risky to uplift to older releases.
7398e758604e4a79e0523bd8448ecab8c1722f15: Bug 1324530 - part 2: rewrite the logic of discarding invalid buffers for flush. r=esawin
John Lin <jolin@mozilla.com> - Wed, 28 Dec 2016 15:56:42 +0800 - rev 357291
Push 10621 by jlund@mozilla.com at Mon, 23 Jan 2017 16:02:43 +0000
Bug 1324530 - part 2: rewrite the logic of discarding invalid buffers for flush. r=esawin MozReview-Commit-ID: EwTRMaJOJhK
6179997594f3d06eed3f8e5c93f06e741a3027c1: Bug 1324530 - part 1: add method to AsyncCodec for resuming receiving input buffers after flush(). r=esawin
John Lin <jolin@mozilla.com> - Wed, 28 Dec 2016 15:41:55 +0800 - rev 357290
Push 10621 by jlund@mozilla.com at Mon, 23 Jan 2017 16:02:43 +0000
Bug 1324530 - part 1: add method to AsyncCodec for resuming receiving input buffers after flush(). r=esawin 2 birds with 1 stone: - according to MediaCodec doc, when running in async mode start() must be called after flush() to 'resume receiving input buffers'. - in JellyBeanAsyncCodec's case, explicit resuming polling input buffers helps Codec decide which buffers are invalid by flush(). MozReview-Commit-ID: Ee5QbppgsVf
3e71466a060d556bb59245c2a93bd614044fb94d: Bug 1324530 - part 2: rewrite the logic of discarding invalid buffers for flush. r=esawin
John Lin <jolin@mozilla.com> - Wed, 28 Dec 2016 15:56:42 +0800 - rev 356248
Push 10621 by jlund@mozilla.com at Mon, 23 Jan 2017 16:02:43 +0000
Bug 1324530 - part 2: rewrite the logic of discarding invalid buffers for flush. r=esawin MozReview-Commit-ID: EwTRMaJOJhK
cce21c0cb2ddea6198ebb09a2b7be4a7907ae672: Bug 1324530 - part 1: add method to AsyncCodec for resuming receiving input buffers after flush(). r=esawin
John Lin <jolin@mozilla.com> - Wed, 28 Dec 2016 15:41:55 +0800 - rev 356247
Push 10621 by jlund@mozilla.com at Mon, 23 Jan 2017 16:02:43 +0000
Bug 1324530 - part 1: add method to AsyncCodec for resuming receiving input buffers after flush(). r=esawin 2 birds with 1 stone: - according to MediaCodec doc, when running in async mode start() must be called after flush() to 'resume receiving input buffers'. - in JellyBeanAsyncCodec's case, explicit resuming polling input buffers helps Codec decide which buffers are invalid by flush(). MozReview-Commit-ID: Ee5QbppgsVf
9a7c2edd54b8dd6c3d6471560ac1b096b2955536: Bug 1319660 - 1. Don't take shortcut if old replacement ranges don't match; r=esawin
Jim Chen <nchen@mozilla.com> - Wed, 04 Jan 2017 14:46:10 -0500 - rev 355991
Push 10621 by jlund@mozilla.com at Mon, 23 Jan 2017 16:02:43 +0000
Bug 1319660 - 1. Don't take shortcut if old replacement ranges don't match; r=esawin The block at [1] is a shortcut we take when we reconcile Java text changes with Gecko text changes. However, we only checked that the new ranges are the same, i.e. that the new Gecko text is the same as the new Java text. We should also be checking that the old ranges are the same, i.e. that the replaced Gecko text is the same as the replaced Java text. [1] https://dxr.mozilla.org/mozilla-central/rev/bbbd2f7539f224a482cc6d2dd10e6a5f31c8baf3/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoEditable.java#1233
8ac25acdf9c15f4a8798f17aee228987be641635: Bug 1323687 - re-query output buffers after format change. r=esawin
John Lin <jolin@mozilla.com> - Thu, 15 Dec 2016 18:10:14 +0800 - rev 354093
Push 10621 by jlund@mozilla.com at Mon, 23 Jan 2017 16:02:43 +0000
Bug 1323687 - re-query output buffers after format change. r=esawin MozReview-Commit-ID: 8L1MH3ODU8d
75790798dd71805bdf5b2f9c4a0d2b5b79cd8b89: Bug 1322710 - Don't use SpannableStringBuilder.equals; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 13 Dec 2016 03:21:46 -0500 - rev 353715
Push 10621 by jlund@mozilla.com at Mon, 23 Jan 2017 16:02:43 +0000
Bug 1322710 - Don't use SpannableStringBuilder.equals; r=esawin Don't use the system SpannableStringBuilder.equals implementation, because of a bug in Android N+ that incorrectly compares spans.
82701190b854a4a4adc9805a123421aa02c25ea9: Bug 1313991 - Rewrite input buffer polling logic. r=esawin
John Lin <jolin@mozilla.com> - Mon, 21 Nov 2016 15:36:06 +0800 - rev 352220
Push 10621 by jlund@mozilla.com at Mon, 23 Jan 2017 16:02:43 +0000
Bug 1313991 - Rewrite input buffer polling logic. r=esawin - poll all buffers when started or flushed. - retry only for timed out. - remove unnecessary polling MozReview-Commit-ID: DU9vvjJkwDH
11c4cd93ffc02884634f45abec0ca737df7c4d3b: Bug 1330515 - Try to recover from IME errors. r=esawin, a=lizzard
Jim Chen <nchen@mozilla.com> - Fri, 13 Jan 2017 14:39:27 -0500 - rev 350288
Push 10595 by ryanvm@gmail.com at Wed, 18 Jan 2017 02:24:22 +0000
Bug 1330515 - Try to recover from IME errors. r=esawin, a=lizzard Instead of throwing IME exceptions, try to recover from IME errors by flushing the entire text unless we already tried that before. This prevents annoying crashes, and deals with known IME bugs that are too risky to uplift to older releases.
720cb3b359c98ef39da959199dabdc0800f1c6db: Bug 1314546 - Always putenv(MOZ_LINKER_EXTRACT) for Android r=esawin,glandium
Andrzej Hunt <ahunt@mozilla.com> - Fri, 04 Nov 2016 15:48:58 +0100 - rev 348681
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1314546 - Always putenv(MOZ_LINKER_EXTRACT) for Android r=esawin,glandium This allows artifact builds to load the new compressed native libraries correctly, without requiring build config changes. MozReview-Commit-ID: 3xZzoV3wFda
b2721e0ef0ef0fc3398e02d80293321bcd3ebe8f: Bug 1315512 - Fix XZ library decompression on x86. r=esawin
Nick Alexander <nalexander@mozilla.com> - Mon, 07 Nov 2016 20:04:24 -0800 - rev 348302
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1315512 - Fix XZ library decompression on x86. r=esawin MozReview-Commit-ID: 6mp3ABRi2gZ
7fa6baac8f3790a6d217c88c7187e98cf1e22e0f: Bug 1123514 - Correctly calculate text replacement offset; r=esawin
Jim Chen <nchen@mozilla.com> - Sun, 06 Nov 2016 18:44:09 -0500 - rev 348057
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1123514 - Correctly calculate text replacement offset; r=esawin Fix a mistake in calculating the correct offset for one of the replacement steps, which caused the IndexOutOfBoundsException. The old code used `oldEnd` for the second text replacement without taking into account the offset change as a result of the first text replacement that was already performed. The new code correctly takes the offset, `delta`, into account.
803d5895353dd7053a80b3fcd702a17aeff7aad2: Bug 1123514 - Add test for wrong offset calculation; r=esawin
Jim Chen <nchen@mozilla.com> - Sun, 06 Nov 2016 18:44:09 -0500 - rev 348056
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1123514 - Add test for wrong offset calculation; r=esawin Add a test that creates conditions for wrong offset calculation and potentially causes an exception.
fb50e86c0ad54262cb5fde0847ec72baf02d794a: Bug 1307816 - 15. Use eContentCommandDelete for deleting text; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:54 -0400 - rev 346114
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 15. Use eContentCommandDelete for deleting text; r=esawin Use a separate delete command for deleting text, because using regular composition events for deleting text doesn't seem to work well in Facebook comment boxes.
6319555e8a495d168f0341bc5d7c3bfa1c422f67: Bug 1307816 - 14. Save composition update for later; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:54 -0400 - rev 346113
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 14. Save composition update for later; r=esawin Turns out the Facebook comment box doesn't work well if we send compositions alongside set/remove span events. This patch adds back the update composition flag, but only sends composition when necessary, which is only right before we send key events. Because onImeUpdateComposition is no longer associated with a separate action, it no longer sends back a reply using AutoIMESynchronize.
9740602ca9d274b00be9b81f23381efb4fd27dcd: Bug 1307816 - 13. Expand RemoveIMEComposition to allow canceling; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:54 -0400 - rev 346112
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 13. Expand RemoveIMEComposition to allow canceling; r=esawin Expand RemoveIMEComposition with a flag to allow canceling the composition. Also, remove the "ideographic space" hack from before because it's no longer applicable (the test remains so we can catch any regressions).
67eeff0d462ae902c882adc0bc41012243a75b71: Bug 1307816 - 12. Fix up selection and composition when replacing text from Gecko; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:54 -0400 - rev 346111
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 12. Fix up selection and composition when replacing text from Gecko; r=esawin When a Gecko text change spans larger than our original request, we have to do the replacement in parts in order to preserve any spans from the original request. There was a bug where the selection is moved to the wrong offset after the three replacements. This patch switches the order of the two replacements and manually fixes up the selection. For any text changes that originated on the Gecko side, this patch also splits the replacement into two parts (delete + insert), so that old composing spans are properly cleared first. This new behavior changes the expected result for the test added by bug 1051556, so the test is changed as well.. I think this new behavior is more correct, but if it results in regressions, we can reevaluate.
a96c35419566daaa7436ef4fc53dcbca6d9c4af0: Bug 1307816 - 11. Use GeckoThread for waiting on Gecko; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:54 -0400 - rev 346110
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 11. Use GeckoThread for waiting on Gecko; r=esawin Right now we send a "process-gecko-events" message to GeckoInputConnection in order to wait on Gecko during testing. However, now we have GeckoThread.waitOnGecko() to do that, so we can just use that directly.
fdc8c569252fa1fb7992ba8c49722be8e105dd1a: Bug 1307816 - 10. Move text/selection assert methods to InputConnectionTest; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:53 -0400 - rev 346109
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 10. Move text/selection assert methods to InputConnectionTest; r=esawin Under asynchronous IME, when we check text/selection for correctness, we have to wait for the IC thread to sync the shadow text first. In order to do that inside the assert methods, we have to move them to inside InputConnectionTest, so that they can call processGeckoEvents() and processInputConnectionEvents(). Also, ignore a single newline character, if present, at the end of the actual text, because it's a side effect of some editing operations in Gecko (e.g. clearing all text in an HTML editor).
72519ac4115b99f0f904ac6fbf163d04edc7ad3d: Bug 1307816 - 9. Fix IC thread switching after async refactoring; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:53 -0400 - rev 346108
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 9. Fix IC thread switching after async refactoring; r=esawin When switching the IC thread from one thread to another, we can no longer block on the old IC thread waiting for the Gecko thread. However, we still block on the new IC thread, waiting for the old IC thread to finish processing any old events.
7ab2291527e5232ee901fb522a3ad272809947e9: Bug 1307816 - 8. Sync shadow text to current text; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:53 -0400 - rev 346107
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 8. Sync shadow text to current text; r=esawin Sync the shadow text to the current text when the selection or text changes on the Gecko side, provided we are not in batch mode and if we don't have pending actions. Otherwise, remember the skipped sync and re-sync when we exit batch mode and/or finish all pending actions.
f250f52b697a3e73aa801a3b05e3d2cc2f858b7a: Bug 1307816 - 7. Flush text before sending focus event; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:53 -0400 - rev 346106
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 7. Flush text before sending focus event; r=esawin We used to flush the Java side text upon receiving the acknowledge-focus event, at which point the Java side is waiting on the Gecko side. Because of the async IME refactoring, we can no longer wait on the Java side, so we have to flush the text early, before sending the first focus notification. Also, the acknowledge-focus event is no longer needed as a result. Our call to InputMethodManager to restart input also has to changed due to the change in calling sequence between notifyIME and notifyIMEContext.
05de8736810048be8ec61d7e0576fadf410ef06e: Bug 1307816 - 6. Remove ActionQueue and switch to AsyncText; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:53 -0400 - rev 346105
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 6. Remove ActionQueue and switch to AsyncText; r=esawin Due to async IME refactoring, we no longer need the blocking mechanism in ActionQueue. As a result of the simplified code, we can remove ActionQueue entirely and move its code to under GeckoEditable. ActionQueue.offer() is now icOfferAction(). This patch also makes mText an instance of AsyncText, and change all accesses to mText to reflect the new async interface, i.e. accesses on the Gecko thread go through getCurrentText() and the current*** methods, and accesses on the IC thread go through getShadowText() and the shadow*** methods.
bc892befd1352205a8bfe5353d5c58cdfab7930d: Bug 1307816 - 5. Add AsyncText class for handling asynchronous text editing; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:53 -0400 - rev 346104
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 5. Add AsyncText class for handling asynchronous text editing; r=esawin AsyncText keeps two copies of the text - the current copy on the Gecko thread that is the authoritative version of the text, and the shadow copy on the IC thread that reflects what we think the current text is. When editing the text on the IC thread, the shadow copy is modified directly, and then the modification is sent to the Gecko thread, which modifies the current copy concurrently. Depending on what Gecko does to the text, the current copy may diverge from the shadow copy, but periodically, the shadow copy is synced to the current copy through AsyncText.syncShadowText() to make the two copies identical again.
1d0a76e70bb663d441fa437d6198f0091f46ef13: Bug 1307816 - 4. Stop sending separate composition updates; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:53 -0400 - rev 346103
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 4. Stop sending separate composition updates; r=esawin As part of async IME refactoring, we will no longer send composition updates separately. Instead, composition updates will be integrated into the set-span and remove-span events, similar to what we already do for replace-text events.
f6fa7ff4145dccd20f59ede30798b26db8f62d3a: Bug 1307816 - 3. Don't implement GeckoEditableListener in GeckoEditable; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:53 -0400 - rev 346102
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 3. Don't implement GeckoEditableListener in GeckoEditable; r=esawin GeckoEditable implemented GeckoEditableListener because GeckoAppShell called its methods through GeckoEditableListener, but now we use JNI to call GeckoEditable methods directly, so GeckoEditable no longer has to implement GeckoEditableListener. This change also lets us simplify GeckoEditableListener by making onTextChange and onSelectionChange no longer have any parameters.
f007c6a5a0a8ee5663b560dd8a42307f7d14371c: Bug 1307816 - 2. Make clearSpans call go through Gekco; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:53 -0400 - rev 346101
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 2. Make clearSpans call go through Gekco; r=esawin Currently, clearSpans calls are carried out immediately, but that makes it out of order in relation to other calls, which have to go through Gecko. This patch fixes this issue.
309cb93a58c55ad01273da23b0a1256353267c78: Bug 1307816 - 1. Remove legacy IME code; r=esawin
Jim Chen <nchen@mozilla.com> - Tue, 25 Oct 2016 12:28:52 -0400 - rev 346100
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1307816 - 1. Remove legacy IME code; r=esawin Remove the event listener in GeckoEditable that was used for old text selection code. It's no longer relevant for the new accessible carets code.
9f2f66e3762fac55594ae72c24634b13eea36ab4: Bug 1306483 - Part 2: send notification immediately when caller sender shares looper with buffer poller. r=esawin
John Lin <jolin@mozilla.com> - Thu, 20 Oct 2016 15:43:25 +0800 - rev 345997
Push 10298 by raliiev@mozilla.com at Mon, 14 Nov 2016 12:33:03 +0000
Bug 1306483 - Part 2: send notification immediately when caller sender shares looper with buffer poller. r=esawin MozReview-Commit-ID: 9hZB6TI4A6X
1d86193c7b9a2e268fbb70f4b92461f1b5c7283c: Bug 1257777 - Part 2: Implement async codec using API level 16 MediaCodec. r=esawin
John Lin <jolin@mozilla.com> - Fri, 05 Aug 2016 15:32:55 +0800 - rev 335463
Push 10033 by raliiev@mozilla.com at Mon, 19 Sep 2016 13:50:26 +0000
Bug 1257777 - Part 2: Implement async codec using API level 16 MediaCodec. r=esawin Asynchronous mode was not available until API level 21. To make it transparent to the caller, introduce a wrapper interface that mimics the new API. MozReview-Commit-ID: 7idq2lQo35I
f64f8bc8415f1cffff58478438d2a3af81272985: Bug 1292453 - MDSM should enter dormant state when its reader is suspended. r=esawin
JW Wang <jwwang@mozilla.com> - Tue, 09 Aug 2016 14:43:22 +0800 - rev 334738
Push 10033 by raliiev@mozilla.com at Mon, 19 Sep 2016 13:50:26 +0000
Bug 1292453 - MDSM should enter dormant state when its reader is suspended. r=esawin MozReview-Commit-ID: Fg7jBtGEHBy
64c473c3414f8f837e5f524f4e484e562d1d405a: Bug 1220773 - Do not run our updater if app was installed from Google Play. r=ahunt,esawin
Sebastian Kaspari <s.kaspari@gmail.com> - Tue, 26 Jul 2016 10:36:37 +0200 - rev 331798
Push 9858 by jlund@mozilla.com at Mon, 01 Aug 2016 14:37:10 +0000
Bug 1220773 - Do not run our updater if app was installed from Google Play. r=ahunt,esawin MozReview-Commit-ID: Bz4kErHzhen
bc0eabedf19547d3176b0219ba2fb79ea83486fc: Bug 1283739 - Prevent reentrant calls to showSoftInput and hideSoftInput; r=esawin
Jim Chen <nchen@mozilla.com> - Mon, 11 Jul 2016 18:07:35 -0400 - rev 329639
Push 9858 by jlund@mozilla.com at Mon, 01 Aug 2016 14:37:10 +0000
Bug 1283739 - Prevent reentrant calls to showSoftInput and hideSoftInput; r=esawin Add a check to showSoftInput and hideSoftInput To prevent an infinite recursive loop of showSoftInput indirectly calling onCreateInputConnection, which calls showSoftInput again,
c5e185e1b58c4162e3bdec04d603c2d9171a425e: Bug 1283739 - Prevent reentrant calls to showSoftInput and hideSoftInput; r=esawin, a=gchang
Jim Chen <nchen@mozilla.com> - Mon, 11 Jul 2016 18:07:35 -0400 - rev 325427
Push 9785 by cbook@mozilla.com at Thu, 14 Jul 2016 10:36:50 +0000
Bug 1283739 - Prevent reentrant calls to showSoftInput and hideSoftInput; r=esawin, a=gchang Add a check to showSoftInput and hideSoftInput To prevent an infinite recursive loop of showSoftInput indirectly calling onCreateInputConnection, which calls showSoftInput again,
1ece2881d7b68ad3119803f1db6d66a4e403c5c7: Bug 1275371 - Don't forward delete on shift+backspace; r=esawin
Jim Chen <nchen@mozilla.com> - Fri, 27 May 2016 14:29:15 -0400 - rev 323858
Push 9671 by raliiev@mozilla.com at Mon, 06 Jun 2016 20:27:52 +0000
Bug 1275371 - Don't forward delete on shift+backspace; r=esawin Shift+backspace causes a forward delete on some platforms, but not on Android. The new Google keyboard is sending us shift+backspace, and we need to handle it normally like a backspace.
867bca2fa2a37ab87fa46045a1970d9f6dc23939: Bug 1275371 - Add test for shift+backspace; r=esawin
Jim Chen <nchen@mozilla.com> - Fri, 27 May 2016 14:29:15 -0400 - rev 323857
Push 9671 by raliiev@mozilla.com at Mon, 06 Jun 2016 20:27:52 +0000
Bug 1275371 - Add test for shift+backspace; r=esawin
90e58b8e1443b523a7c2e454228600d9d918f00e: Bug 1268471 - [2.1] Remove doorhanger bug workround. r=esawin
Eugen Sawin <esawin@mozilla.com> - Mon, 09 May 2016 14:49:33 +0200 - rev 321172
Push 9671 by raliiev@mozilla.com at Mon, 06 Jun 2016 20:27:52 +0000
Bug 1268471 - [2.1] Remove doorhanger bug workround. r=esawin
6b4ca99fc5f5e40d607a3ac19b674079e491e482: Bug 1255222 - Implement InputConnection.getHandler for Android N; r=esawin
Jim Chen <nchen@mozilla.com> - Wed, 04 May 2016 13:58:27 -0400 - rev 320625
Push 9671 by raliiev@mozilla.com at Mon, 06 Jun 2016 20:27:52 +0000
Bug 1255222 - Implement InputConnection.getHandler for Android N; r=esawin Implement the new InputConnection.getHandler method for running input methods on a separate thread in Android N.