Commit Graph

85 Commits

Author SHA1 Message Date
Masayuki Nakano
3b6cadf939 Bug 1305355 part.1 TextComposition::GetSelectionStartOffset() should query normal selection range when composition string is empty r=smaug
TextComposition::GetSelectionStartOffset() tries to query the start offset of the composition if there is a composition. Therefore, it tries to query first clause when it has some clause information of the composition string.  However, even if the composition string is empty, TextComposition::mRanges which refers CompositionEvent::mRanges of the last eCompositionChange event may have empty clause information.  In such case, this method tries to query not existing IME selection range.  Then, this returns UINT32_MAX and ContentCacheInChild will query character rects around the offset and ContentEventHandler::SetRangeFromFlatTextOffset() will meet odd case.

For avoiding this issue, TextComposition::GetSelectionStartOffset() should query normal selection when composition string in the editor is empty.  Note that TextComposition::mString will be updated after the editor completes updating its DOM contents.  Therefore, TextComposition should refer mLastData which is set before dispatching eCompositionChange in the tree.

MozReview-Commit-ID: F2UGCQLXLSz

--HG--
extra : rebase_source : 0349a74f20f0948afa9989552a88047788aa1585
2016-09-26 21:06:26 +09:00
Kan-Ru Chen
b6d880aca1 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES


--HG--
rename : mfbt/unused.h => mfbt/Unused.h
2016-08-24 14:47:04 +08:00
Chris Peterson
d634a99cad Bug 1277106 - Part 4: Remove MOZ_UTF16() macro. r=Waldo 2016-07-19 21:07:53 -07:00
Masayuki Nakano
f8210c2a4e Bug 1275918 part.2 Update TextComposition::mCompositionStartOffset when it's modified in the remote process r=m_kato
MozReview-Commit-ID: H1SJTWWav6G

--HG--
extra : rebase_source : 6d7d79e7d4d719b720bed4f4c20196079fb8b5fb
2016-06-14 21:06:34 +09:00
Masayuki Nakano
de8073afbb Bug 1275914 part.8 TextComposition should always update its composition start offset during composing r=smaug
TextComposition should update its composition start offset after every DOM event dispatch with first clause's selection type if there is composition string.

MozReview-Commit-ID: HFkePci1PhU

--HG--
extra : rebase_source : c7af075115505b52e48d8bbd5f2dd1d9001fe36e
2016-06-20 16:34:40 +09:00
Masayuki Nakano
dafb6dae1b Bug 1275914 part.3 TextComposition should use IMEContentObserver or ContentEventHandler directly when it queries the selection r=smaug
TextComposition queries selection start offset a lot of times.  Therefore, for reducing the runtime cost, it should use IMEContentObserver if it's available or ContentEventHandler, otherwise.

MozReview-Commit-ID: 61GgQZDX2HP

--HG--
extra : rebase_source : 2080f77fa36e967e070495b11cc7b72e42e63fd1
2016-06-10 19:45:21 +09:00
Masayuki Nakano
b44f10c1f3 Bug 1275914 part.2 Modify TextComposition::mCompositionStartOffset after every composition event dispatch r=smaug
When composition string hasn't been non-empty, insertion point of the composition string can be changed by a DOM event handler.  E.g., compositionstart, first compositionupdate and first text.  Therefore, TextComposition should update the composition start offset cache after every event dispatch.

MozReview-Commit-ID: FOPewPTRuCn

--HG--
extra : rebase_source : 95fbba8130a1d21e957cee305b3b2a433bfae56a
2016-06-10 19:32:49 +09:00
Masayuki Nakano
7716923106 Bug 1275914 part.1 TextComposition should store target clause offset from start of the composition instead of start of the editor r=smaug
It's enough to store target clause offset from start of the composition and better to modify mCompositionStartOffset because when even if mCompositionStartOffset is changed, we don't need to modify the target clause offset.

This patch renames mCompositionTargetOffset to mTargetClauseOffsetInComposition.

MozReview-Commit-ID: 1wt2OTUUjkY

--HG--
extra : rebase_source : 1bb87899c6f2e374252aaa00535915d42c6bb29d
2016-06-02 14:26:47 +09:00
Masayuki Nakano
77f6ee4369 Bug 1278084 part.3 TextComposition shouldn't decide composition string which is only an ideographic space as a placeholder r=m_kato
Currently, when TextComposition tries to forcibly commit composition synchronously, it cancels the composition if there is only an ideographic space since legacy Chinese IMEs for Windows were used an ideographic space as a placeholder and shows actual composition string in its owning window (called reading window).

However, Japanese TIPs basically use composition to input an ideographic space. Unfortunately, this intentional input of an ideographic space is always canceled if an editor commits to composition at every input event in TSF mode because TSF cannot commit during a call of ITextStore::RequestLock().  Additionally, we will enable e10s mode, then, on all platforms, requesting commit composition is handled asynchronously.

Therefore, we should make the hack disabled in default settings now. If we'll find a way to distinguish if an ideographic space is a placeholder, we should recover this hack. Note that such input fields cannot handle such legacy IMEs, so, disabling the hack in default settings must be fine.

MozReview-Commit-ID: IdBcfBxeJum

--HG--
extra : rebase_source : 18ca5cd1083ade8813703cec05c020dc03f09f63
2016-06-07 21:25:24 +09:00
Masayuki Nakano
54e57600e1 Bug 1275906 part.2 TextComposition should use IMEContentObserver for sending NOTIFY_IME_OF_COMPOSITION_EVENT_HANDLED if the editor which has the composition is in the active IMEContentObserver r=smaug
For sending NOTIFY_IME_OF_COMPOSITION_EVENT_HANDLED after the other change notifications which was caused by the user input, we need to use IMEContentObserver::IMENotificationSender because it sends the notifications when it's safe to do it.

This patch makes TextComposition use IMEContentObserver to send the notification.  However, if there is no active IMEContentObserver, e.g., composition events are fired on unfocused window, TextComposition sends it by itself (same as current implementation).

If IMEContentObserver stops observing when it has pending NOTIFY_IME_OF_COMPOSITION_EVENT_HANDLED, it cannot send the notification (i.e., it is discarded completely in such case). However, in such case, IMEContentObserver sends NOTIFY_IME_OF_BLUR.  So, anyway, native IME handler should treat the blur notification as it including NOTIFY_IME_OF_COMPOSITION_EVENT_HANDLED.

On the other hand, we're buggy if composition events are fired in non-active window.  Even in such case, IMEContentObserver should be created for active editor in each document and it notifies IME of the changes. But this is out of the scope of this bug.

MozReview-Commit-ID: 7Q0ZsJTh4hX

--HG--
extra : rebase_source : 6417f991fa8c0fbe3f25b27bacf4257e5485aecc
2016-06-01 22:14:41 +09:00
Masayuki Nakano
e67330e0b4 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

--HG--
extra : rebase_source : 3331b8f48e8b460c7f9b088064dcda9488f3403c
2016-05-31 11:39:15 +09:00
Masayuki Nakano
07b6f24132 Bug 1259657 Rename WidgetGUIEvent::widget to WidgetGUIEvent::mWidget r=smaug
MozReview-Commit-ID: 167PQWJDEHW

--HG--
extra : rebase_source : 6cd44095b9f33e03190972f043087786cbd772f2
2016-04-14 17:03:14 +09:00
Arata Furukawa
28360f6c90 Bug 1259655 - part 2 Rename WidgetEventTime::timeStamp to WidgetEventTime::mTimeStamp r=masayuki
MozReview-Commit-ID: LRgPxoynx0

--HG--
extra : source : 506d58da4e67501a00b676c99997597fa5fe5679
2016-03-28 13:49:02 +09:00
Arata Furukawa
676913b9bb Bug 1259655 - part 1 Rename WidgetEventTime::time to WidgetEventTime::mTime r=masayuki
MozReview-Commit-ID: 7lBCEVkanvF

--HG--
extra : source : d629f018d02594951b7deccf1e1fce279d04694c
2016-03-28 13:29:42 +09:00
Masayuki Nakano
cea0b9cf02 Bug 1256589 part.6 Move the implementation of IsTrusted() from dom::Event to WidgetEvent r=smaug
MozReview-Commit-ID: 1SgMbTL8csl

--HG--
extra : rebase_source : 748fa8a594176edf7b2addd038b8031019d0dd35
extra : source : f4ce36e68ce06c405a6fab31facc120b94709aed
2016-03-17 16:01:30 +09:00
Masayuki Nakano
d185d40ab2 Bug 1256589 part.1 Move the implementation of StopPropagation() from dom::Event to WidgetEvent r=smaug
MozReview-Commit-ID: Br5eBgC8TbW

--HG--
extra : rebase_source : 0e5743583f80b3e9e09397f49bd438bfe0f49d06
extra : source : 745c9d855d209780a884bd7a3d2cd3cdc20632af
2016-03-17 11:17:42 +09:00
Makoto Kato
b8e6c382ed Bug 1208944 - Part 6. Get vaild TextRangeArray on compositionupdate. r=masayuki 2015-12-29 22:57:38 +09:00
Makoto Kato
75748e49e3 Bug 1208944 - Part 2-b. Workaround for OSX. r=masayuki 2015-12-29 22:57:38 +09:00
Makoto Kato
7d206bd88b Bug 1208944 - Part 2-a. Handle CompositionEvent on plugin. r=masayuki 2015-12-29 22:57:37 +09:00
Sebastian Hengst
e082884d78 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
d1e8691a64 Bug 1208944 - Part 6. Get vaild TextRangeArray on compositionupdate. r=masayuki 2015-12-29 22:57:38 +09:00
Makoto Kato
a8252f4408 Bug 1208944 - Part 2-b. Workaround for OSX. r=masayuki 2015-12-29 22:57:38 +09:00
Makoto Kato
6046567f5d Bug 1208944 - Part 2-a. Handle CompositionEvent on plugin. r=masayuki 2015-12-29 22:57:37 +09:00
Masayuki Nakano
4d21fa83d0 Bug 1179632 part.6 KeyboardEvent.isComposing shouldn't expose IME state on different document r=smaug 2015-12-04 18:50:43 +09:00
Masayuki Nakano
3d27dcecfa Bug 1179632 part.5 WidgetCompositionEvent::mNativeIMEContext should be used at looking for a TextComposition instance for a WidgetCompositionEvent r=smaug 2015-12-04 18:50:34 +09:00
Masayuki Nakano
da7a2f4f8d 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
6cad726628 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
Birunthan Mohanathas
9985829ecc Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Nathan Froyd
01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Masayuki Nakano
888b2103ea Bug 895274 part.194 Rename NS_COMPOSITION_COMMIT to eCompositionCommit r=smaug 2015-09-11 21:21:27 +09:00
Masayuki Nakano
ed4dac1ca6 Bug 895274 part.193 Rename NS_COMPOSITION_CHANGE to eCompositionChange r=smaug 2015-09-11 21:21:27 +09:00
Masayuki Nakano
1e538fa11e Bug 895274 part.192 Rename NS_COMPOSITION_UPDATE to eCompositionUpdate r=smaug 2015-09-11 21:21:27 +09:00
Masayuki Nakano
ebdc7bd69b Bug 895274 part.191 Rename NS_COMPOSITION_END to eCompositionEnd r=smaug 2015-09-11 21:21:27 +09:00
Masayuki Nakano
0f2bfad9b1 Bug 895274 part.190 Rename NS_COMPOSITION_START to eCompositionStart r=smaug 2015-09-11 21:21:27 +09:00
Masayuki Nakano
966f685af3 Bug 895274 part.188 Rename NS_COMPOSITION_COMMIT_AS_IS to eCompositionCommitAsIs r=smaug 2015-09-11 21:21:26 +09:00
Masayuki Nakano
a8fd5ffc76 Bug 895274 part.152 Rename NS_QUERY_SELECTED_TEXT to eQuerySelectedText r=smaug 2015-09-10 10:40:05 +09:00
Masayuki Nakano
94b05ec84b Bug 1200980 part.4 nsPlaintextEditor should notify editor observers of the end of edit action when NS_COMPOSITION_CHANGE isn't followed by NS_COMPOSITION_END r=smaug 2015-09-08 12:54:14 +09:00
Masayuki Nakano
0d22745cda 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
66f2c27305 Bug 895274 part.1 Rename WidgetEvent::message to WidgetEvent::mMessage r=smaug 2015-08-22 10:34:51 +09:00
Aryeh Gregor
0ccef27b6a Bug 1179451 - Part 1: Rewrite some ternary operators as if/else. r=froydnj
--HG--
extra : rebase_source : 161e415b6f518bf2b82e45b6f7f8d21298712d81
2015-08-13 15:22:48 +03:00
Masayuki Nakano
4d9802aec0 Bug 1176955 part.2 NOTIFY_IME_OF_SELECTION should have a flag which indicates if it's caused by a selection event r=smaug 2015-07-17 11:25:00 +09:00
Masayuki Nakano
6a5c380903 Bug 1176955 part.1 TextComposition should guarantee that WidgetSelectionEvent should be handled by same content as the target of composition events when there is a composition r=smaug 2015-07-17 11:25:00 +09:00
Masayuki Nakano
b577b3a7ed Bug 1179122 TextComposition should manage a composition which is even in a child process r=smaug 2015-07-03 11:49:36 +09:00
Masayuki Nakano
0453e65380 Bug 1162818 part.1 nsEditor shouldn't release/forget mComposition becuase it should be handled by it after reframing r=ehsan 2015-06-05 02:06:09 +09:00
Andrew McCreight
9e8f4b219e Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Tooru Fujisawa
e108ae29ec Bug 1158456 - Remove control characters from composition string, and add dom.compositionevent.allow_control_characters pref to control it. r=masayuki 2015-05-01 13:49:29 +09:00
Tooru Fujisawa
bfcb13b445 Bug 1125934 - Discard redundant NS_COMPOSITION_CHANGE event which is send just before NS_COMPOSITION_END on TSF. r=masayuki 2015-02-11 12:20:02 +09:00
Masayuki Nakano
dd277f3277 Bug 917322 part.7 TextEventDispatcher should manage if it has composition r=smaug 2015-01-28 15:27:31 +09:00
Masayuki Nakano
c207c66fed Bug 1077345 part.6 Add NS_COMPOSITION event which automatically commits composition with its mData r=smaug 2014-11-25 14:02:32 +09:00
Masayuki Nakano
7c2cde510e Bug 1077345 part.4 Add NS_COMPOSITION_COMMIT_AS_IS event which automatically commits composition with the last data r=smaug 2014-11-25 14:02:31 +09:00