Commit Graph

42 Commits

Author SHA1 Message Date
Masayuki Nakano
ad8cd7c6be Bug 1304620 part.5 ContentCacheInParent should store the latest composition start offset with mCompositionStartInChild r=m_kato
When ContentCacheInParent receives eCompositionStart, it temporarily sets mCompositionStart to selection start offset.  However, if there is a composition in the remote process, the selection start is caret position in the composition string.  Therefore, it's not useful information.  Instead, the composition start offset should be used because around there are a lot of information.

For that, ContentCacheInParent should always store compostion start offset in the remote process with mCompositionStartInChild even if mWidgetHasComposition is false.  And when it receives eCompositionStart, mCompositionStart should be set to mCompositionStartInChild.

MozReview-Commit-ID: DksPNEsi6Ec
2016-10-12 21:52:01 +09:00
Masayuki Nakano
6e85e1b210 Bug 1304620 part.2 ContentCacheInParent should manage if there is pending composition in the remote process r=m_kato
If the remote process is busy or user restarts composition too quickly, there could be 2 or more compositions in ContentCache.  For managing such case, ContentCacheInParent should manage the pending composition count which is increased at dispatching eCompositionStart event to the remote process and decreased at receiving eCompositionCommit(AsIs) event from the remote process.

MozReview-Commit-ID: KbTsK20NEZD
2016-10-12 17:09:02 +09:00
Masayuki Nakano
12c44fc34d Bug 1304620 part.1 Rename ContentCacheInParent::mIsComposing to mWidgetHasComposition r=m_kato
For making the meaning of ContentCacheInParent::mIsComposing clearer, let's rename it to mWidgetHasComposition.  It becomes true when the parent process sends eCompositionStart to the remote process and false when the parent process sends eCompositionCommit(AsIs).  So, it represents if the widget (i.e., the native IME handler in the chrome process) has composition.

MozReview-Commit-ID: 5k05IXMgJxw
2016-10-12 16:42:28 +09:00
Masayuki Nakano
e534b8afb9 Bug 1291082 part.2 ContentCache::TextRectArray::IsOverlappingWith() shouldn't include end offset in its range r=m_kato
ContentCache::TextRectArray's end offset is computed as start offset + its length.  Therefore, end offset is the last offset in the range + 1.  So, IsOverlappingWith() shouldn't return true only when end offset is overlapped with given range.

That means that when TextRectArray doesn't have rects, i.e., mRects is empty, IsOverlappingWith() always returns false. And when TextRectArray has one or more rects, IsOverlappingWith() should compare its range and given range without "=".

MozReview-Commit-ID: JxNPcEwikjR
2016-08-16 16:07:54 +09:00
Masayuki Nakano
5720b06a3f Bug 1257446 part.1 ContentCache should store previous character of selection r=m_kato
This patch makes ContentCache store previous character's rect of selection anchor and selection focus because if caret is at end of a line, IME may query the last character of the line.

MozReview-Commit-ID: 5X1K8KtrYfl
2016-07-22 20:47:51 +09:00
Masayuki Nakano
b2bf2a9c19 Bug 1291082 ContentCacheInParent::GetUnionTextRects() shouldn't use mTextRectArray when it's empty r=m_kato
This must be able to reproduce with some IMEs which creates 0 length composition string.  In such case, mTextRectArray isn't available, but mTextRectArray.GetUnionRectAsFarAsPossible() always assumes that it's valid and has at least one rect.  Therefore, it can meet this crash.

Therefore, this patch makes that ContentCacheInParent::GetUnionTextRects() not use mTextRectArray when it's not valid nor doesn't have rects.

MozReview-Commit-ID: 2yLMo4lxI3Z
2016-08-02 12:02:14 +09:00
Masayuki Nakano
63f8860982 Bug 1280182 ContentCache should return non-empty rect as far as possible if query content event is relative to insertion point r=m_kato
ContentCache may store composition string's rects which are inserted by one or more older composition event.  Even in such case, native IME, especially TIP of TSF, expects non-empty rects.

Therefore, if native IME handler uses "insertion point relative query", ContentCache should return non-empty rect as far as possible.  For example, even if query offset or range is not in its rect array of composition string, ContentCache should adjust the offset into the stored range.

MozReview-Commit-ID: 7hcIqxOWFk2
2016-06-22 14:16:59 +09:00
Masayuki Nakano
b8bf98ad12 Bug 1275918 part.2 Update TextComposition::mCompositionStartOffset when it's modified in the remote process r=m_kato
MozReview-Commit-ID: H1SJTWWav6G
2016-06-14 21:06:34 +09:00
Masayuki Nakano
7b53804ee8 Bug 1275918 part.1 ContentCache should retrieve the latest composition start offset from TextComposition and send it to the parent process r=m_kato
MozReview-Commit-ID: EoMZtqoMue3
2016-06-13 18:17:58 +09: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
140ee81e3d Bug 895274 part.187 Rename NS_QUERY_TEXT_RECT to eQueryTextRect r=smaug 2015-09-11 21:21:26 +09:00
Masayuki Nakano
15f8cfb6ff Bug 895274 part.155 Rename NS_QUERY_EDITOR_RECT to eQueryEditorRect r=smaug 2015-09-10 10:40:06 +09:00
Masayuki Nakano
4da85524cd Bug 895274 part.154 Rename NS_QUERY_CARET_RECT to eQueryCaretRect r=smaug 2015-09-10 10:40:06 +09:00
Masayuki Nakano
921b5a25be Bug 895274 part.153 Rename NS_QUERY_TEXT_CONTENT to eQueryTextContent r=smaug 2015-09-10 10:40:05 +09:00
Masayuki Nakano
e934ee7f55 Bug 895274 part.152 Rename NS_QUERY_SELECTED_TEXT to eQuerySelectedText r=smaug 2015-09-10 10:40:05 +09:00
Masayuki Nakano
d36f87a852 Bug 895274 part.3 Make the enum of event messages a named enum IGNORE IDL r=smaug 2015-08-26 21:56:59 +09:00
Masayuki Nakano
458be995b7 Bug 1185316 TabParent should flush pending IME notifications after child process handles all sending events r=smaug 2015-07-22 14:51:36 +09:00
Masayuki Nakano
8964507a55 Bug 1184986 NOTIFY_IME_OF_POSITION_CHANGE should be put off until all sending events are recieved by child process r=smaug 2015-07-22 14:15:06 +09:00
Masayuki Nakano
310fa5311b Bug 1184004 part.3 IPC methods to notify IME should use IMENotification for its argument r=smaug 2015-07-17 13:30:01 +09:00
Masayuki Nakano
df99507c27 Bug 1176954 part.8 ContentCacheInParent::OnEventNeedingAckReceived() should log the event message r=smaug 2015-07-11 10:53:56 +09:00
Masayuki Nakano
3317063a2b Bug 1176954 part.3 Don't send selection change, text change nor composition update notification to IME from TabParent until all events sent to the child process is received by it r=smaug 2015-07-11 10:53:55 +09:00
Masayuki Nakano
c55c64c3df Bug 1176954 part.2 ContentCache in parent process should manage how many events are sent but not yet received r=smaug 2015-07-11 10:53:55 +09:00
Masayuki Nakano
26cddc3bad Bug 1177388 Create ContentCacheInParent and ContentCacheInChild for making their purpose clearer r=m_kato 2015-06-26 08:21:13 +09:00
Masayuki Nakano
47a008bb94 Bug 1173678 ContentCache should return union rect even if some character rects are not cached but the first character of the range is cached r=m_kato 2015-06-17 10:03:58 +09:00
Masayuki Nakano
d5a8780ff0 Bug 1171814 ContentCache should store first character rect because Yosemite's Japanese IME sometimes tries to query it r=m_kato 2015-06-17 10:03:58 +09:00
Masayuki Nakano
2c1901b07b Bug 1171810 ContentCache should store union text rect of whole selected text r=m_kato 2015-06-08 11:46:17 +09:00
Masayuki Nakano
554bcde257 Bug 1166436 part.19 ContentCache::mSelection should have invalid state and it should be checked r=m_kato 2015-06-05 18:28:21 +09:00
Masayuki Nakano
9ad8b1ea99 Bug 1166436 part.16 Make each member of mozilla::ContentCache used by chrome process or content process r=m_kato 2015-06-05 18:28:21 +09:00
Masayuki Nakano
50ca144c01 Bug 1166436 part.14 Store text rects after focus/anchor of selection r=m_kato 2015-06-05 18:28:20 +09:00
Masayuki Nakano
865ec91fe4 Bug 1166436 part.13 mozilla::ContentCache should guess caret offset if the offset is in the range of cached text rects r=m_kato 2015-06-05 18:28:20 +09:00
Masayuki Nakano
4be1862bf8 Bug 1166436 part.12 Log the behavior of mozilla::ContentCache r=m_kato 2015-06-05 18:28:20 +09:00
Masayuki Nakano
29e39d8433 Bug 1166436 part.11 Remove unnecessary public methods of mozilla::ContentCache r=m_kato 2015-06-05 18:28:20 +09:00
Masayuki Nakano
7027bdf00c Bug 1166436 part.10 Optimize IME notification handling in PuppetWidget r=m_kato 2015-06-05 18:28:20 +09:00
Masayuki Nakano
86280e3d23 Bug 1166436 part.9 PuppetWidget should have mozilla::ContentCache and send it to TabParent r=m_kato 2015-06-05 18:28:20 +09:00
Masayuki Nakano
ca79d83fcb Bug 1166436 part.8 Make mozilla::ContentCache available in IPC r=m_kato 2015-06-05 18:28:19 +09:00
Masayuki Nakano
29698e8c65 Bug 1166436 part.7 mozilla::ContentCache should handle WidgetQueryContentEvent r=m_kato 2015-06-05 18:28:19 +09:00
Masayuki Nakano
d7cc2d7458 Bug 1166436 part.6 mContentCache should store editor rect and TabParent should use it r=m_kato 2015-06-05 18:28:19 +09:00
Masayuki Nakano
bf5c5fd587 Bug 1166436 part.5 mContentCache should store writing mode at selection and TabParent should use it r=m_kato 2015-06-05 18:28:19 +09:00
Masayuki Nakano
5652a197fc Bug 1166436 part.4 mozilla::ContentCache should store text rects and caret rect and TabParent should use them r=m_kato 2015-06-05 18:28:19 +09:00
Masayuki Nakano
73284ee831 Bug 1166436 part.3 mozilla::ContentCache should store active composition information and TabParent should use them r=m_kato 2015-06-05 18:28:19 +09:00
Masayuki Nakano
1811b8227a Bug 1166436 part.2 mozilla::ContentCache should store a selection range and TabParent should use it r=m_kato 2015-06-05 18:28:19 +09:00
Masayuki Nakano
c26ed5c6f8 Bug 1166436 part.1 Create mozilla::ContentCache and TabParent should store the text to it r=m_kato 2015-06-05 18:28:18 +09:00