Commit Graph

882 Commits

Author SHA1 Message Date
Masayuki Nakano
bd8834c19e Bug 1346499 Don't remove Ctrl nor Alt modifier state at dispatching eKeyPress event when the modifier doesn't change inputting character r=m_kato
Ctrl+Space causes WM_CHAR of ' '.  On the other native applications, you can input ' ' with this key combination though, we shouldn't allow this because we need to remove Ctrl and Alt modifier state at dispatching keypress event for the limitation of TextEditor but this is important key combination for custom shortcut keys.

So, when Ctrl or Alt key is pressed but it doesn't change the inputting character, i.e., the character can be inputted without Ctrl or Alt, we shouldn't remove those modifier state from eKeyPress event.

MozReview-Commit-ID: 7omLvNdQWzW

--HG--
extra : rebase_source : 66d5015567799c489d925ac2419358913f808d63
2017-03-14 00:32:50 +09:00
Andreas Farre
85536fcfc4 Bug 1337392 - Update test cases to match new cursor behavior. r=smaug
MozReview-Commit-ID: 4BdZyeqTBAx
2017-03-08 16:41:42 +01:00
Joel Maher
8681dbd17f Bug 1285414 - Intermittent widget/tests/test_assign_event_data.html. disable for android debug. r=gbrown 2017-03-03 09:18:58 -07:00
Carsten "Tomcat" Book
4a4777d1aa merge mozilla-inbound to mozilla-central a=merge 2017-03-02 14:02:48 +01:00
Masayuki Nakano
944a1927bb Bug 1342865 When Control key is pressed and InsertText() isn't called on macOS, its KeyboardEvent.key value should be characters which are inputted by the key without Control key state r=m_kato
Because of conforming to UI Events KeyboardEvent key Values, when some modifier keys cause not inputting character, the KeyboardEvent.key value should be computed with removing all modifier state except glyph modifier keys.

When Control key is pressed, Cocoa fires odd key events typically.  For example, characters isn't computed with same logic of UI Events KeyboardEvent key Values especially when Option key is pressed (see adding testcases for the detail).

Therefore, this patch makes TISInputSourceWrapper::InitKeyEvent() ignore both characters and charactersIgnoringModifiers at computing KeyboardEvent.key value when Control key is pressed and InsertText() isn't called.

On the other hand, this patch does NOT touch the path to compute KeyboardEvent.key when Command key is pressed.  It should be changed in different bug because Command key behavior isn't so simple.

MozReview-Commit-ID: dMHgUEOnQw

--HG--
extra : rebase_source : 7a67c98d2bf6ca38c7e6ae9dcbad01020d9cea31
2017-03-01 10:58:55 +09:00
Jim Chen
e559b260ee 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.
2017-03-01 15:29:30 -05:00
Masatoshi Kimura
7be7b11a1c Bug 1342144 - Remove version parameter from the type attribute of script elements. r=jmaher
This patch is generated by the following sed script:
find . ! -wholename '*/.hg*' -type f \( -iname '*.html' -o -iname '*.xhtml' -o -iname '*.xul' -o -iname '*.js' \) -exec sed -i -e 's/\(\(text\|application\)\/javascript\);version=1.[0-9]/\1/g' {} \;

MozReview-Commit-ID: AzhtdwJwVNg

--HG--
extra : rebase_source : e8f90249454c0779d926f87777f457352961748d
2017-02-23 06:10:07 +09:00
Wes Kocher
18e735dcef Merge m-c to inbound, a=merge
MozReview-Commit-ID: EfMOcZbAiSe
2017-01-27 16:39:29 -08:00
Wes Kocher
7cd28f7e5d Merge inbound to central, a=merge
MozReview-Commit-ID: HvoljuLV6Gj
2017-01-27 16:37:18 -08:00
Gijs Kruitbosch
8faf5c08a8 Bug 1333164 - fix invalid references to mochitest stylesheet, r=erahm
MozReview-Commit-ID: 1Xxt72jYdm7

--HG--
extra : rebase_source : 15d854ffd6a142687fe5232149a0e370f1c058c2
2017-01-24 14:24:04 +00:00
Florian Quèze
b11907c7aa Bug 1334156 - script-generated patch to replace .ownerDocument.defaultView with .ownerGlobal, r=jaws. 2017-01-27 10:51:03 +01:00
Florian Quèze
be4dbae285 Bug 1334199 - script-generated patch to omit getComputedStyle's second argument when it's falsy, r=jaws. 2017-01-27 10:51:02 +01:00
Tooru Fujisawa
bc4b754a71 Bug 1321230 - Remove legacy generator from widget/. r=m_kato 2017-01-28 00:42:47 +09:00
Jim Chen
8b160783a8 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.
2017-01-23 14:35:04 -05:00
Mark Banner
16e6d381ac Bug 503613 - Remove old 'tail =' lines from xpcshell.ini files; r=gps
MozReview-Commit-ID: 62Hp5ISxowJ

--HG--
extra : rebase_source : daa8efb3409031fea553f4fd0c9d0746e38dc308
extra : histedit_source : b4c23aacf678ba0d0ac9c09191a7c494ead11a08
2017-01-18 10:30:39 +00:00
Ryan VanderMeulen
9e4ddf00bd Backed out 3 changesets (bug 1319660) for causing bug 1329446.
Backed out changeset d506d3c193c9 (bug 1319660)
Backed out changeset 93353b53a706 (bug 1319660)
Backed out changeset 9a7c2edd54b8 (bug 1319660)

--HG--
extra : rebase_source : 43ad1287462697f2312aa18925a462eb85c52495
2017-01-18 10:55:53 -05:00
Florian Quèze
85611a7b6d Bug 1331081 - script generated patch to omit addEventListener/removeEventListener's third parameter when it's false, r=jaws.
--HG--
extra : rebase_source : a22344ee1569f58f1f0a01017bfe0d46a6a14602
2017-01-17 11:50:25 +01:00
Masatoshi Kimura
6d14303fe1 Bug 1149966 - Remove enablePrivilege calls from remaining mochitest. r=jmaher
MozReview-Commit-ID: D7KglhS4PCw

--HG--
extra : rebase_source : 405e747a2edac8714f4f90ccab8c0960e25fd0ea
extra : source : d5d6a19c81306edfaaf3e836c990bb40923623f4
2016-12-05 01:23:40 +09:00
Phil Ringnalda
225ab0637e Backed out changeset 27f8d8e9c4dc (bug 1149966) for frequent timeouts in test_form_submission.html
MozReview-Commit-ID: K5mb2MCCiGx
2017-01-09 18:42:17 -08:00
Masatoshi Kimura
4218f827c0 Bug 1149966 - Remove enablePrivilege calls from remaining mochitest. r=jmaher
MozReview-Commit-ID: D7KglhS4PCw

--HG--
extra : rebase_source : 4d0f848ea393a3db7e82d0e07700fe626e7caa49
extra : source : d5d6a19c81306edfaaf3e836c990bb40923623f4
2016-12-05 01:23:40 +09:00
Jim Chen
a0b925e4e6 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.
2017-01-04 14:46:10 -05:00
Masayuki Nakano
7436f01057 Bug 564411 Move all methods/attributes of nsIEditorIMESupport to nsIEditor r=smaug
Doing QI from nsIEditor to nsIEditorIMESupport doesn't make sense because editor should always support all methods and attributes of nsIEditorIMESupport (it does NOT mean that all nsIEditor implementation need to support IME).

This patch moves all of them to nsIEditor for avoiding redundant QIs.

MozReview-Commit-ID: DzIKuGHG4iy

--HG--
extra : rebase_source : cc5e9a6ae4572ebe461d9770ffa5c23d33dc8526
2016-12-20 21:47:31 +09:00
Sebastian Hengst
0dbcdfb374 Bug 1310297 - Remove test annotations using b2g, mulet or gonk: widget. r=RyanVM
MozReview-Commit-ID: KSDBQN7QkdO

--HG--
extra : rebase_source : 9c9eba1106befbd5dba9751d9a6ac7ec19adcfce
2016-11-05 11:29:22 +01:00
Masayuki Nakano
bd146a2e1e Bug 1310565 TextInputHandler shouldn't dispatch a composition events when a key press causes 2 or more characters r=m_kato
TextInputHandler::InsertText() dispatches a set of composition events when a key press causes 2 or more characters (Note that InsertText() is typically called only when IME is available because it's called via [NSResponder interpretKeyEvents]).  However, this is different from the behavior of Windows.  On Windows, NativeKey dispatches two ore more eKeyPress events in this case.

So, for consistency between platforms, TextInputHandler should dispatch eKeyPress events in such case.

MozReview-Commit-ID: EMvaL7sklKf

--HG--
extra : rebase_source : 0309d32d692a2394f53cd59216c6e774068e452b
2016-10-18 15:26:54 +09:00
Masayuki Nakano
d7f167f262 Bug 1309515 part.1 Add automated tests for Arabic - PC keyboard layout which can input 2 characters with a key press r=m_kato
MozReview-Commit-ID: GAEIklrf6H0

--HG--
extra : rebase_source : c365e19e8b8e6a878924ad264be3c78fcc4cbb3a
2016-10-14 12:06:30 +09:00
Masayuki Nakano
ae437d0a9a Bug 1303273 part.4 Add automated tests for bug 1293505, bug 1307703 and bug 1297985 r=m_kato
Now, NativeKey respects following WM_CHAR message.  Therefore, we can create a test for bug 1293505 which a function key causes a printable character.

Additionally, bug 1307703 is now fixed by the previous patch.  So, let's add automated test for it too.

Finally, now, I found a way to test with some keyboard layouts which are not available on old Windows.  Therefore, we should add automated tests for bug 1297985 too.

MozReview-Commit-ID: IqCEPbPYrcQ

--HG--
extra : rebase_source : 451d0264f1180cae7d7035a498f1c13416d53246
2016-10-07 11:42:20 +09:00
Masayuki Nakano
8c926d5f82 Bug 1303273 part.3 Dispatch eKeyPress events without NativeKey::HandleCharMessage() when it handles WM_(SYS)KEYDOWN message and there are following WM_(SYS)CHAR messages which includes non-control character r=m_kato
This patch creates NativeKey::DispatchKeyPressEventsWithRetrievedCharMessages() for dispatching eKeyPress event with mCommittedCharsAndModifiers when it stores following printable WM_(SYS)CHAR messages.

Using loop for dispatching eKeyPress event for every WM_(SYS)CHAR message is wrong because WidgetKeyboardEvent::mKeyValue is initialized with mCommittedCharsAndModifiers and it causes TextEventDispatcher dispatching multiple eKeyPress events at every call of MaybeDispatchKeypressEvents().  Therefore, if mKeyValue is "^^", eKeyPress event is dispatched 4 times --for the first message, eKeyPress events are fired for each "^" and for the second message, eKeyPress events are fired again for each "^"--.  Therefore, when it handles WM_(SYS)KEYDOWN and it causes inputting one or more printable characters, it's the easiest way not to use HandleCharMessage().

The new method calls TextEventDispatcher::MaybeDispatchKeypressEvents() only once and it requests to call the callback method with new argument of MaybeDispatchKeypressEvents() when it needs to dispatch 2 or more eKeyPress events.  Then, NativeKey::WillDispatchKeyboardEvent() can set each eKeyPress event to raw information of the message and proper modifier state.

With this change, we can dispatch multiple eKeyPress events with retrieved WM_(SYS)CHAR message information rather than retrieved information from active keyboard layout.  Therefore, NeedsToHandleWithoutFollowingCharMessages() doesn't return true even when mCommittedCharsAndModifiers stores two or more characters.

FYI: there is a bug in test_keycodes.xul. That is, Alt+'A' of Greek keyboard layout should cause WM_SYSCHAR with a corresponding Greek character but ASCII characters are specified.  Therefore, this patch includes the fix of these bugs

MozReview-Commit-ID: JVm7ZJVug0O

--HG--
extra : rebase_source : 414ecbe2c01c53f294d1346414b1a289aa0abfe8
2016-10-06 20:52:03 +09:00
Masayuki Nakano
642d448ca7 Bug 1303273 part.2 KeyboardLayout::InitNativeKey() should initialize aNativeKey.mCommittedCharsAndModifiers with following WM_CHAR or WM_SYSCHAR messages which are not providing a control character r=m_kato
First, mCommittedCharsAndModifiers should be initialized with following char messages because the messages could be different from the information of current keyboard layout.

So, this patch guarantees that mCommittedCharsAndModifiers are same as the user expected when there is one or more WM_CHAR or WM_SYSCHAR messages.

MozReview-Commit-ID: I5Ack0xccoL

--HG--
extra : rebase_source : e4c7af75fd200f30ec52b53dc05f49ae8887c6f0
2016-10-07 11:36:34 +09:00
Masayuki Nakano
337db43f23 Bug 1307112 part.8 NativeKey::HandleCharMessage() shouldn't dispatch eKeyPress event when its message is inputting a control character r=m_kato
This patch makes NativeKey::HandleCharMessage() stop dispatching eKeyPress event when the message is inputting a control character.  NativeKey::HandleCharMessage() runs following cases:

1. WM_KEYDOWN followed by a WM_CHAR message whose wParam is not a control character causes inputting printable characters.
2. WM_CHAR message is received without WM_KEYDOWN message.

So, when HandleCharMessage() is called for a control character, it's unusual case.  E.g., another application sends only WM_CHAR message with a control character.

On the other hand, Gecko is the only browser which dispatches "keypress" event even if pressed printable key doesn't cause inputting any characters.  And such "keypress" event is used for shortcut key handling and some default action handling.  So, even if we stop dispatching eKeyPress event from HandleCharMessage(), it shouldn't affect most users.

Note that this patch does NOT change the behavior when the user inputs a control character with usual keyboard layout such as Ctrl+A of en-US keyboard layout because DispatchKeyPressEventsWithoutCharMessage() dispatches eKeyPress event in such cases.

This patch also adds a lot of tests with Ctrl or Alt state for detecting regressions.

MozReview-Commit-ID: KUNqTp7RDSc

--HG--
extra : rebase_source : f91e37b0b82a8e8a95444a08f6d3101f14fadc50
2016-10-05 15:18:00 +09:00
Masayuki Nakano
1c049b2afa Bug 1307112 part.7 Get rid of Enter and Backspace key hack in NativeKey class r=m_kato
Currently, Enter and Backspace keys are handled without following WM_(SYS)CHAR message.  However, older code needs hack for them for avoiding conflict with Ctrl+J vs. Ctrl+Enter, etc.

So, we can get rid of them now.  And when a keydown causes inputting a control character, NativeKey should handle it with keyboard layout (i.e., without following char message(s)).

MozReview-Commit-ID: 6bVuK0BzFbx

--HG--
extra : rebase_source : 08ff45c1990ef8f3ed7703c69b2dc22e5f1dd6f5
2016-10-04 00:21:40 +09:00
Masayuki Nakano
0cf4a632e5 Bug 1300937 part.3 NativeKeyCodes.js should specify scan code to WIN_VK_ABNT_C1 explicitly for avoiding (perhaps) a bug of MapVirtualKeyEx() API r=smaug
Unfortunately, MapVirtualKeyEx() doesn't compute ABNT C1's scan code from its virtual keycode, 0xC1.  Therefore, NativeKeyCodes.js should specify 0x0056 explicitly.  Fortunately, this key in physical keyboard always generates the scan code value with any keyboard layouts.  Therefore, this can test new regressions as expected.

FYI: ABNT C1 key is a key in Brazilian keyboard.  It's at between "ShiftLeft" and "KeyZ".

MozReview-Commit-ID: GmpnFKOsnKD

--HG--
extra : rebase_source : 197b249740056e5c4b7c6f3b556f91f50a838d52
2016-09-13 19:55:29 +09:00
Masayuki Nakano
05960c4ff6 Bug 1300937 part.2 Automated tests which synthesize native key events on Windows should specify scan code value explicitly r=smaug
On Windows, some keys are called "extended key".  Their scan code include 0xE000.  For example, Enter key in standard position is 0x001C but Numpad's Enter key is 0xE01C.  Unfortunately, both of them cause same virtual keycode value, VK_RETURN.  Therefore, currently, nsIDOMWindowUtils.sendNativeKey() can synthesize only one native key event of them (only non-extended key's event).  Additionally, MapVirtualKeyEx() API with MAPVK_VK_TO_VSC (even with MAPVK_VK_TO_VSC_EX) don't return extended scancode value as expected.

For solving these issues, we should include scan code value to the virtual keycode value at calling sendNativeKey().

Fortunately, virtual keycode value on Windows is 0 ~ 255 (0x00 ~ 0xFF) but aNativeKeyCode of sendNativeKey() is int32_t.  So, we can use upper 16 bit for specifying scan code.

This patch explicitly specifies scan code value at defining WIN_VK_* in NativeKeyCodes.js.  Additionally, this patch duplicates native virtual keycode definition for Home, End, Insert, Delete, PageUp, PageDown, ArrowUp, ArrowLeft, ArrowDown, ArrowRight and Enter as WIN_VK_* and WIN_VK_NUMPAD_*.  This makes automated tests can specify both positions' keys explicitly.

Finally, this patch adds some tests to test_keycodes.xul for testing KeyboardEvent.code value of those keys in both positions.

MozReview-Commit-ID: 8n1rQ71dilg

--HG--
extra : rebase_source : 8215e56ba1ed9fc54c04eb7ca037b12c3ced5c1b
2016-09-13 19:38:23 +09:00
Masayuki Nakano
1042db50c8 Bug 1300937 part.1 Check KeyboardEvent.key and KeyboardEvent.code in test_keycodes.xul r=smaug
MozReview-Commit-ID: AntOqvmTCcW

--HG--
extra : rebase_source : a223980232f1c5bf03b3dc5685afe2990e5dc893
2016-09-13 21:48:45 +09:00
Carsten "Tomcat" Book
31fdf0df86 Backed out changeset 6a8bf7596f42 (bug 1300937) for m-oth test failures
--HG--
extra : rebase_source : 187813acb705820a33bddf1cffcd8d22754fe785
2016-09-15 17:04:33 +02:00
Carsten "Tomcat" Book
915d632972 Backed out changeset be88a60abb7a (bug 1300937)
--HG--
extra : rebase_source : 19b90e94e16547a7a718a7c4c2f587e64fbe4b7a
2016-09-15 17:04:16 +02:00
Carsten "Tomcat" Book
9ce8c3febe Backed out changeset e94d6d577103 (bug 1300937)
--HG--
extra : rebase_source : 4d10055ca5e6f67a3e085d7ea06dc4eae90eace3
2016-09-15 17:04:14 +02:00
Masayuki Nakano
ca5214b9da Bug 1300937 part.3 NativeKeyCodes.js should specify scan code to WIN_VK_ABNT_C1 explicitly for avoiding (perhaps) a bug of MapVirtualKeyEx() API r=smaug
Unfortunately, MapVirtualKeyEx() doesn't compute ABNT C1's scan code from its virtual keycode, 0xC1.  Therefore, NativeKeyCodes.js should specify 0x0056 explicitly.  Fortunately, this key in physical keyboard always generates the scan code value with any keyboard layouts.  Therefore, this can test new regressions as expected.

FYI: ABNT C1 key is a key in Brazilian keyboard.  It's at between "ShiftLeft" and "KeyZ".

MozReview-Commit-ID: GmpnFKOsnKD

--HG--
extra : rebase_source : 37f78552a1ebba6f61c38add0138b84ddef36c3e
2016-09-13 19:55:29 +09:00
Masayuki Nakano
e8eae5c2a2 Bug 1300937 part.2 Automated tests which synthesize native key events on Windows should specify scan code value explicitly r=smaug
On Windows, some keys are called "extended key".  Their scan code include 0xE000.  For example, Enter key in standard position is 0x001C but Numpad's Enter key is 0xE01C.  Unfortunately, both of them cause same virtual keycode value, VK_RETURN.  Therefore, currently, nsIDOMWindowUtils.sendNativeKey() can synthesize only one native key event of them (only non-extended key's event).  Additionally, MapVirtualKeyEx() API with MAPVK_VK_TO_VSC (even with MAPVK_VK_TO_VSC_EX) don't return extended scancode value as expected.

For solving these issues, we should include scan code value to the virtual keycode value at calling sendNativeKey().

Fortunately, virtual keycode value on Windows is 0 ~ 255 (0x00 ~ 0xFF) but aNativeKeyCode of sendNativeKey() is int32_t.  So, we can use upper 16 bit for specifying scan code.

This patch explicitly specifies scan code value at defining WIN_VK_* in NativeKeyCodes.js.  Additionally, this patch duplicates native virtual keycode definition for Home, End, Insert, Delete, PageUp, PageDown, ArrowUp, ArrowLeft, ArrowDown, ArrowRight and Enter as WIN_VK_* and WIN_VK_NUMPAD_*.  This makes automated tests can specify both positions' keys explicitly.

Finally, this patch adds some tests to test_keycodes.xul for testing KeyboardEvent.code value of those keys in both positions.

MozReview-Commit-ID: 8n1rQ71dilg

--HG--
extra : rebase_source : 0f4bb9193aa06cd7985590636b77a6e2a71ac2e4
2016-09-13 19:38:23 +09:00
Masayuki Nakano
748c42b18b Bug 1300937 part.1 Check KeyboardEvent.key and KeyboardEvent.code in test_keycodes.xul r=smaug
MozReview-Commit-ID: AntOqvmTCcW

--HG--
extra : rebase_source : 7f5a550cf7e3464f1d568f9cc30ec2bc97a31c55
2016-09-13 21:48:45 +09:00
Masayuki Nakano
af766dd2bc Bug 1291172 Add eQueryTextRectArray tests which compare with eQueryTextRect result r=smaug
eQueryTextRect is used by widget and eQueryTextRectArray is used by ContentCacheInChild.  So, matching their result guarantees that widget can get same result both in non-e10s mode and e10s mode.  So, the matching should be tested.

MozReview-Commit-ID: 6GfbyvZ9X7H

--HG--
extra : rebase_source : 12511d84cbd94b3f4edf42367a84ee45abc66d9e
2016-09-06 18:59:40 +09:00
Masayuki Nakano
62fe8134f6 Bug 1300319 part.0 Add automated tests for Ctrl+Backspace, Alt+Backspace, Ctrl+Enter and Alt+Enter because Backspace and Enter are handled with special path in mozilla::widget::NativeKey on Windows r=m_kato
MozReview-Commit-ID: 8LuYx65I5kY

--HG--
extra : rebase_source : 71e08f991535b485948f7720e8a214245c0203e7
2016-09-05 16:10:46 +09:00
Masayuki Nakano
370905b797 Bug 1293638 NativeKey::WillDispatchKeyboardEvent() should set alternative charCode values properly when other shift state inputs longer text r=m_kato
There are 2 bugs and this patch fixes them once.

First, NativeKey::WillDispatchKeyboardEvent() is used to setting alternative charCode values for every eKeyPress event.  However, for supporting "reserved" shortcut keys, now, it sets alternative charCode values to eKeyDown too.  However, they are really different.  eKeyPress events are fired for every character to be inputted by a key press sequence.  On the other hand, eKeyDown event is fired only once for a key sequence.  Therefore, now, NativeKey::WillDispatchKeyboardEvent() needs to set alternative charCode values for all characters inputted by the key sequence to eKeyDown event.

The other is not a new bug.  NativeKey::WillDispatchKeyboardEvent() sets the last eKeyPress event's special alternative charCode values, such as unshifted Latin character, shifted Latin character and some character which can be computed from virtual keycode.  This is performed when given index is the last index of the longest input string of the key.  However, the value includes different shift key state.  I.e., when different shift key causes longer text input, NativeKey::WillDispatchKeyboardEvent() won't set the special alternative charCode values to any eKeyPress events.  For example, when Ctrl+T is pressed with Arabic keyboard layout, its unshifted input string length is 1 but shifted input string length is 2.  Then, eKeyPress event is fired only once, but NativeKey::WillDispatchKeyboardEvent() waits second eKeyPress event.

Therefore, this patch makes the method append alternative charCodes for all remaining characters and detect the last event correctly with mCommittedCharsAndModifiers (it's used for KeyboardEvent.key value of eKeyDown event and the count of eKeyPress events is same as the value's length).

MozReview-Commit-ID: 6adUnmi5KYy

--HG--
extra : rebase_source : 8c04a3a155f2fcb9a5a8b3e9e0a176c678dc6265
2016-09-01 14:26:02 +09:00
Masayuki Nakano
8087f7b562 Bug 1293505 part.3 Fix wrong key emulation in test_keycodes.xul r=m_kato
Some tests in test_keycodes.xul emulate native key event with printable character even when Ctrl or Alt key is pressed.

With en-US keyboard layout, Ctrl+[A-Z] causes a control character's WM_CHAR message. However, the other OEM keys and numeric keys don't cause WM_CHAR message when Ctrl is pressed.  So, we need to fix some wrong emulations in it now.

MozReview-Commit-ID: bhF5XeClnd

--HG--
extra : rebase_source : 16b7c1e725cf8877b2b44f8d7f52e129889ed25f
2016-08-31 17:36:53 +09:00
Ou Shinjo
22a583130d Bug 1274484 Removing TestWinTSF.cpp r=masayuki
Since TestWinTSF.cpp isn't available for long time, we should remove it.

Although, we need to create automated tests for native IME handlers, but we should do it in another bug and new frame works should be writable by JS for easier to write tests.
2016-08-31 09:31:51 +09:00
Aryeh Gregor
f3e54042f1 Bug 1271115 - Merge ChromeUtils.js into EventUtils.js; r=jmaher
This allows plain mochitests to use the functions as well, which is
necessary to get them to work with e10s.

MozReview-Commit-ID: J4um2mliJcZ
2016-08-25 16:57:09 +03:00
Masayuki Nakano
31b8311dd7 Bug 1286464 part.0 Add eQueryTextRect tests for line breakers r=smaug
MozReview-Commit-ID: 2SxNlyjc4KM

--HG--
extra : rebase_source : 19003eb0f337c6a0bcea1014db0117ba00d344bb
2016-07-30 22:00:30 +09:00
Nicholas Nethercote
e7f10a07fd Bug 1293603 (part 2) - Make Run() declarations consistent. r=erahm.
This patch makes most Run() declarations in subclasses of nsIRunnable have the
same form: |NS_IMETHOD Run() override|.

As a result of these changes, I had to add |override| to a couple of other
functions to satisfy clang's -Winconsistent-missing-override warning.

--HG--
extra : rebase_source : 815d0018b0b13329bb5698c410f500dddcc3ee12
2016-08-08 12:18:10 +10:00
Decky Coss
b69450d2ea Bug 1287655 - place textarea/input cursor at end of text when initialized; r=smaug
MozReview-Commit-ID: 2srGXFmla07

--HG--
extra : transplant_source : %3Cn%D30%86%24%82%90%29%191%9C%8A%EB%0D%5D%E2%20%22%E5
2016-07-21 14:52:49 -04:00
Tom Tromey
5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Masayuki Nakano
60bb642e47 Bug 1275528 part.1 Support a way to query content relative to insertion point r=smaug
Native IME handler may want to query content relative to start of selection (or composition if there is it). Additionally, in e10s mode, insertion point in actual content may be different from the cache in parent.  Therefore, in some cases, it does make sense to query content with offset relative to start of selection or composition.

This patch implements it simply and only in non-e10s mode.

Additionally, this fixes a bug of nsQueryContentEventResult::GetOffset() which hasn't been accepted its calls even if the event message is valid (eQueryTextContent, eQueryTextRect and eQueryCaretRect).

MozReview-Commit-ID: 34I7vyTUAgO

--HG--
extra : rebase_source : d79ba0dc3e002f7691495ee1ff8bdb3854d8f6fe
2016-06-16 14:10:49 +09:00
Masayuki Nakano
d5bf222ecd Bug 1275914 part.7 Add automated tests to query IME selections r=smaug
MozReview-Commit-ID: GwBU6Evcpfa

--HG--
extra : rebase_source : d6a54b3ab227fbae75e723b277f0ff1e95d44044
2016-06-20 16:31:29 +09:00
Joel Maher
a6fcbcf0a3 Bug 1270962 - move tests which access the clipboard to subsuite 'clipboard'. r=bgrins,ryanvm,armenzg a=merge
MozReview-Commit-ID: IZziPmwFtHj

--HG--
extra : source : a50249d48b1e86a3749bccc51ece4d1a827a621c
2016-05-25 15:28:24 -04:00
Ryan VanderMeulen
395004da77 No bug - Re-enable some more tests that were disabled on e10s without a tracking bug.
--HG--
extra : histedit_source : fa83d576e38f400a6ec395101ea34b58573676aa
2016-04-25 21:45:46 -04:00
Kyle Huey
c73656947b Bug 1265927: Move nsRunnable to mozilla::Runnable, CancelableRunnable to mozilla::CancelableRunnable. r=froydnj 2016-04-25 17:23:21 -07:00
Timothy Nikkel
11ebb71e31 Bug 1199023. Fix expectations of widget/tests/test_native_key_bindings_mac.html when a scrollbar is added to the iframe it is run in. r=jryans
The scrollbar changes when the test wraps, and so an operation that deletes text until the end of line deletes a different amount of text, and thus affects where the end of line is after the delete.
2016-04-11 22:19:45 -05:00
Peter Van der Beken
d59dcd41d0 Bug 1251361 - "Assertion failure: cache->PreservingWrapper()" with <marquee>, navigation, adoptNode. r=smaug.
Remove explicit calls to ReleaseWrapper and rely on cycle collection.

--HG--
extra : rebase_source : 3e641270347cea197034946cbb06edd3677675fd
2016-03-04 17:54:10 +01:00
Wes Kocher
953cf80ae2 Backed out changeset 54ee322b50cf (bug 1251361) for apparently causing a bunch of OSX m(bc) leaks
MozReview-Commit-ID: 8v0LiT3sA15

--HG--
extra : rebase_source : 9cdefc51f45a40aed71289958f89883faa757e43
2016-04-04 12:32:42 -07:00
Peter Van der Beken
cd3d6088a5 Bug 1251361 - "Assertion failure: cache->PreservingWrapper()" with <marquee>, navigation, adoptNode. r=smaug.
Remove explicit calls to ReleaseWrapper and rely on cycle collection.
2016-03-04 17:54:10 +01:00
Masayuki Nakano
3af2033805 Bug 1154183 part.7 Don't dispatch preceding keydown events of reserved keypress events on content in the default event group r=smaug
MozReview-Commit-ID: 5zdkdfNxbxb
2016-03-22 15:05:25 +09:00
Jim Chen
ae409c5147 Bug 1254629 - Let query events fail when content root is wrong; r=masayuki
Make query events fail (including when caching selection) if the queried
content root is different from what we expected.

Also, introduce a fix-up to the selection fix in test_imestate.html.
2016-03-16 14:20:30 -04:00
Carsten "Tomcat" Book
c05ed2b925 Backed out changeset 0359d3b3dc55 (bug 1254629) for rc4 perma failures 2016-03-16 10:29:10 +01:00
Jim Chen
1f14c2a2c3 Bug 1254629 - Let query events fail when content root is wrong; r=masayuki
Make query events fail (including when caching selection) if the queried
content root is different from what we expected.

Also, introduce a fix-up to the selection fix in test_imestate.html.
2016-03-16 02:16:56 -04:00
Masayuki Nakano
79ec55bd08 Bug 1249184 Dead key shouldn't cause keypress event on Mac OS X r=smaug+m_kato 2016-03-16 13:50:01 +09:00
Masayuki Nakano
1fd5361cb0 Bug 1137563 part.5 Set charCode of dead key's keypress event on Mac to the dead char r=m_kato 2016-03-16 13:47:50 +09:00
Masayuki Nakano
063150ff0d Bug 1137563 part.4 Implement IMEInputHandler::WillDispatchKeyboardEvent() r=m_kato 2016-03-16 13:47:50 +09:00
Masayuki Nakano
e0d18691b8 Bug 1203059 part.4 Update test_keycodes.xul for the new behavior r=smaug 2016-03-16 10:58:28 +09:00
Masayuki Nakano
12a007fd7f Bug 1203059 part.2 When an event is reserved by chrome, it should be fired only on chrome r=smaug 2016-03-16 10:58:28 +09:00
Xidorn Quan
b8db274b17 Bug 1255659 part 2 - Add 'fullscreen' tag to tests which ever put window into fullscreen. r=smaug
MozReview-Commit-ID: EBynEGbpYQU

--HG--
extra : rebase_source : 1f777ff519e602403486d24e739b252a2dfc8428
2016-03-11 10:45:00 +08:00
Wes Kocher
2e2090e51e Backed out changeset fd7564bd9998 (bug 1254629) for windows failures in test_windowless_ime.html
MozReview-Commit-ID: IEl8esnckqP
2016-03-11 14:05:08 -08:00
Jim Chen
33195c666d Bug 1254629 - Let query events fail when content root is wrong; r=masayuki
Make query events fail (including when caching selection) if the queried
content root is different from what we expected.

Also, introduce a fix-up to the selection fix in test_imestate.html.
2016-03-11 13:47:22 -05:00
Drew Willcoxon
fcfc071a48 Bug 1253479 - [e10s] Make widget/tests/test_assign_event_data.html work under e10s. r=masayuki 2016-03-10 16:56:13 -08:00
Drew Willcoxon
f9662f1a06 Bug 1253713 - [e10s] Make widget/tests/test_plugin_scroll_invalidation.html work under e10s. r=mccr8
MozReview-Commit-ID: AZ7MZWHoWhr

--HG--
rename : widget/tests/plugin_scroll_invalidation.html => dom/plugins/test/mochitest/plugin_scroll_invalidation.html
rename : widget/tests/test_plugin_scroll_invalidation.html => dom/plugins/test/mochitest/test_plugin_scroll_invalidation.html
2016-03-04 16:57:04 -08:00
Jim Chen
6e298a23a6 Bug 1248459 - Don't query out-of-bounds selection; r=masayuki
During a query selection event, fail if the selection is outside of the
editor's root content. This can happen if the placeholder text in an
input field is somehow selected. The placeholder is in a separate
element outside of the root content.

Also fix a bug in test_imestate, where the selection was not properly
reset at the start of a test.
2016-03-03 13:10:07 -05:00
Masayuki Nakano
b6593edc11 Bug 1240336 Setting same value to either <input> or <textarea> shouldn't cause committing existing composition r=ehsan 2016-01-21 16:52:27 +09:00
Jonathan Griffin
59f626fe96 Bug 1232780 - Disable mochitests which fail on e10s so we can get that suite running, a=test-only 2016-01-05 12:02:47 -08:00
Markus Stange
8d6e827631 Bug 1209970 - Fire scroll events early in the refresh tick. r=mats
With APZ we want to be firing scroll events to content more consistently, so
we tie them to the refresh driver tick rather than firing them on paint or
haphazardly on the next spin of the event loop.

Patch by Markus Stange, test fixes by Kartikaya Gupta

--HG--
extra : commitid : 7nnkRC8afAJ
2015-12-17 17:19:30 -05:00
Masayuki Nakano
c62bfb339f Bug 1213589 part.9 ContentEventHandler::ShouldBreakLineBefore() should return false if the content is unknown HTML element r=smaug 2015-12-02 13:20:01 +09:00
Masayuki Nakano
ca5b42279c Bug 1213589 part.8 When there are no nodes causing text, ContentEventHandler should set start of the editor root to start of the range r=smaug 2015-12-02 13:20:01 +09:00
Masayuki Nakano
bd5dd51e5f Bug 1213589 part.7 Add new testcases to runSetSelectionEventTest() and runQueryTextContentEventTest() for checking the behavior with open tag r=smaug 2015-12-02 13:20:01 +09:00
Masayuki Nakano
14e03f9711 Bug 1213589 part.6 ContentEventHandler should insert line breaks at open tag of elements except non-replaced inline elements r=smaug 2015-12-02 13:20:00 +09:00
Masayuki Nakano
661b0d48d5 Bug 1213589 part.5 Redesign the rules to create range in ContentEventHandler::SetRangeFromFlatTextOffset() r=smaug 2015-12-02 13:20:00 +09:00
Chris Peterson
44d581458a Bug 1223258 - Fix -Wunreachable-code warnings in widget. r=masayuki
widget/tests/TestAppShellSteadyState.cpp:397:5: warning: code will never be executed [-Wunreachable-code]
widget\widgetutils.cpp(95) : warning C4702: unreachable code
widget\mouseevents.h(97) : warning C4702: unreachable code
widget\textevents.h(492) : warning C4702: unreachable code
2015-11-08 22:46:00 -08:00
Masayuki Nakano
0727f7951c Bug 1218032 part.3 IMEContentObserver should notify IME of anything without script runner r=smaug 2015-11-10 11:49:05 +09:00
Masayuki Nakano
486057dcc7 Bug 1215517 part.3 Test the result of eQuerySelectedText in runSetSelectionEventTest() for checking the behavior of ContentEventHandler::GetFlatTextOffsetOfRange() rs=smaug 2015-10-20 14:14:17 +09:00
Masayuki Nakano
6a1e5ce6ca Bug 1215517 part.2 Add tests for eQueryTextContent event in rich text editor r=smaug 2015-10-20 14:14:17 +09:00
Masayuki Nakano
ddd89b2467 Bug 1215517 part.1 Add tests for eSetSelection event in rich text editor rs=smaug 2015-10-20 14:14:17 +09: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
Felipe Gomes
af0b8f3d1f Bug 605813 - Re-enable test_taskbar_progress.xul on Windows. r=me 2015-10-15 18:39:28 -03:00
Hiroyuki Ikezoe
c080139694 Bug 1167627 - Part 5: Use mozinfo in widget/. 2015-08-25 14:54:00 +02:00
Carsten "Tomcat" Book
08997000eb Backed out 2 changesets (bug 1202902) to recking bug 1202902 to be able to reopen inbound on a CLOSED TREE
Backed out changeset 647025383676 (bug 1202902)
Backed out changeset d70c7fe532c6 (bug 1202902)
2015-10-07 14:03:21 +02:00
Carsten "Tomcat" Book
e7ef778c9d Backed out 1 changesets (bug 1202902) for causing merge conflicts to mozilla-central
Backed out changeset cfc1820361f5 (bug 1202902)

--HG--
extra : rebase_source : 5d3db72337754bc7ab0ed0c30b2896100411ff92
2015-10-07 12:13:45 +02:00
Shu-yu Guo
d06b6030f6 Bug 1202902 - Scripted fix the world. 2015-10-06 14:00:31 -07:00
Kaustabh Datta Choudhury
92494c4d5f Bug 1162003 - Enable run-by-dir mode for mochitest_chrome on Fx desktop debug builds. r=jmaher 2015-10-06 09:46:24 -04:00
Masayuki Nakano
f961371a5e Bug 1109410 Resolve CSS transform in ContentEventHandler::ConvertToRootViewRelativeOffset() r=roc 2015-10-05 14:46:39 +09:00
Tooru Fujisawa
60b3dd821e Bug 1207499 - Part 12: Remove use of expression closure from widget/. r=roc
--HG--
extra : commitid : GR0hQlmclGY
extra : rebase_source : b0f1b90db5c4e8547041842b5efe7b0fb3281eb4
2015-09-23 18:42:20 +09:00
Kaustabh Datta Choudhury
d64ac7ea6b Bug 1162003 - Enable run-by-dir mode for mochitest_chrome on Fx desktop opt builds. r=jmaher 2015-09-23 13:39:45 -04:00
Shu-yu Guo
64db2267cf Bug 1202902 - Mass replace toplevel 'let' with 'var' in preparation for global lexical scope. (rs=jorendorff) 2015-09-15 11:19:45 -07: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
e463292274 Bug 895274 part.153 Rename NS_QUERY_TEXT_CONTENT to eQueryTextContent r=smaug 2015-09-10 10:40:05 +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
d177b04a17 Bug 895274 part.145 Rename NS_SELECTION_SET to eSetSelection r=smaug 2015-09-08 23:33:38 +09:00
Masayuki Nakano
ce68802c6e Bug 1200980 part.5 Fix window_composition_text_querycontent.xul for the new input event behavior r=smaug 2015-09-08 12:54:14 +09:00
Nicholas Nethercote
f44287005f Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.

--HG--
extra : rebase_source : 82e3387abfbd5f1471e953961d301d3d97ed2973
2015-08-27 20:44:53 -07:00
Kyle Huey
76e3009ab8 Bug 1179909: Refactor stable state handling. r=smaug
This is motivated by three separate but related problems:

1. Our concept of recursion depth is broken for things that run from AfterProcessNextEvent observers (e.g. Promises). We decrement the recursionDepth counter before firing observers, so a Promise callback running at the lowest event loop depth has a recursion depth of 0 (whereas a regular nsIRunnable would be 1). This is a problem because it's impossible to distinguish a Promise running after a sync XHR's onreadystatechange handler from a top-level event (since the former runs with depth 2 - 1 = 1, and the latter runs with just 1).

2. The nsIThreadObserver mechanism that is used by a lot of code to run "after" the current event is a poor fit for anything that runs script. First, the order the observers fire in is the order they were added, not anything fixed by spec. Additionally, running script can cause the event loop to spin, which is a big source of pain here (bholley has some nasty bug caused by this).

3. We run Promises from different points in the code for workers and main thread. The latter runs from XPConnect's nsIThreadObserver callbacks, while the former runs from a hardcoded call to run Promises in the worker event loop. What workers do is particularly problematic because it means we can't get the right recursion depth no matter what we do to nsThread.

The solve this, this patch does the following:

1. Consolidate some handling of microtasks and all handling of stable state from appshell and WorkerPrivate into CycleCollectedJSRuntime.
2. Make the recursionDepth counter only available to CycleCollectedJSRuntime (and its consumers) and remove it from the nsIThreadInternal and nsIThreadObserver APIs.
3. Adjust the recursionDepth counter so that microtasks run with the recursionDepth of the task they are associated with.
4. Introduce the concept of metastable state to replace appshell's RunBeforeNextEvent. Metastable state is reached after every microtask or task is completed. This provides the semantics that bent and I want for IndexedDB, where transactions autocommit at the end of a microtask and do not "spill" from one microtask into a subsequent microtask. This differs from appshell's RunBeforeNextEvent in two ways:
a) It fires between microtasks, which was the motivation for starting this.
b) It no longer ensures that we're at the same event loop depth in the native event queue. bent decided we don't care about this.
5. Reorder stable state to happen after microtasks such as Promises, per HTML. Right now we call the regular thread observers, including appshell, before the main thread observer (XPConnect), so stable state tasks happen before microtasks.
2015-08-11 06:10:46 -07:00
Geoff Brown
52d4e225a0 Bug 1026290 - Update mochitest-chrome manifests for android; r=jgriffin 2015-07-10 14:41:59 -06:00
Masayuki Nakano
ecdd7a7f0f Bug 549674 part.1 Commit composition string at setting value of <input> or <textarea> r=smaug 2015-06-18 23:56:20 +09:00
Masayuki Nakano
5c6b7ed14c Bug 1162818 part.7 Add test for reframing focused editor when it has composition r=smaug 2015-06-05 02:06:10 +09:00
Gijs Kruitbosch
767141ec34 Bug 763894, bug 1080100 - disable test on debug for frequent intermittent orange, rs=test-only,me
--HG--
extra : rebase_source : bc6f8968eb6cd4b22bd7c157bb075b74c1fb90bd
2015-05-27 17:15:33 +01:00
Masayuki Nakano
91298b51a5 Bug 1167022 part.4 Get rid of MozIMEFocus(In|Out) events r=smaug 2015-05-26 16:45:26 +09:00
Masayuki Nakano
e370b5e7e0 Bug 1167022 part.3 Fix test_imestate.html for conforming to the new IME focus notification behavior r=nchen 2015-05-26 16:45:26 +09:00
Phil Ringnalda
53b4601f96 Back out 4 changesets (bug 1167022) for reftest-e10s bustage
CLOSED TREE

Backed out changeset de4013b979a7 (bug 1167022)
Backed out changeset b97f76c4be1c (bug 1167022)
Backed out changeset cbc7f8b88a46 (bug 1167022)
Backed out changeset 00b1c04181d3 (bug 1167022)
2015-05-23 21:40:21 -07:00
Masayuki Nakano
bdb3dae876 Bug 1167022 part.4 Get rid of MozIMEFocus(In|Out) events r=smaug 2015-05-24 10:11:37 +09:00
Masayuki Nakano
999bfdde66 Bug 1167022 part.3 Fix test_imestate.html for conforming to the new IME focus notification behavior r=nchen 2015-05-24 10:11:37 +09:00
Birunthan Mohanathas
3ffa8d565d Bug 1166840 - Remove unused document argument in uses of nsIClipboardHelper.copyString. r=ehsan 2015-05-21 21:49:30 +01: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
Carsten "Tomcat" Book
7ef9b42c28 merge mozilla-central to mozilla-inbound IGNORE IDL
--HG--
extra : rebase_source : 294f0cad1bada4ebf38f24ff52ebbd7798de5912
extra : amend_source : d7b1044b736cf3e351efbef9610c83a14e6543ae
2015-04-22 16:09:56 +02:00
Kartikaya Gupta
53dd599648 Back out cset 17aad8f83237 (bug 1154499) now that we have a nightly with APZ enabled. r=me a=me 2015-04-22 09:36:25 -04:00
David Anderson
9ae1c872f4 Enable APZ for E10S on Windows for one Nightly. This patch will be backed out after one nightly. (bug 1154459, r=kats, a=ryanvm) 2015-04-21 15:35:19 -04:00
Maksim Lebedev
71409e1dc3 Bug 974305 - Add a test for WidgetPointerEvent::AssignPointerEventData(). r=smaug 2015-04-22 16:09:10 +09:00
Phil Ringnalda
d68dd54c30 Backed out changeset ffde08dc5ceb (bug 1154459) for bustage
CLOSED TREE
2015-04-19 08:19:14 -07:00
David Anderson
4f6a850738 Enable APZ for E10S on Windows for one nightly build. (bug 1154459, r=kats) 2015-04-17 11:49:55 -04:00
David Anderson
605d89d902 Make test_wheeltransaction.xul work with asynchronous scrolling. (bug 1140293, r=mstange)
--HG--
extra : rebase_source : 185871e093d11b8d9fe24b1c0dfc952314fd874b
2015-04-16 21:38:19 -04:00
Neil Deakin
af1ece91c4 Bug 1153248, re-enable a bunch of tests that now work with e10s, r=billm 2015-04-16 15:38:12 -04:00
Kartikaya Gupta
f0f1261931 Bug 1146349 - Update some widget tests to deal with async native key event synthesization. r=smaug,masayuki 2015-04-14 11:36:36 -04:00
Kartikaya Gupta
5cf2d407fd Bug 1146349 - Make the native event synthesization functions in DOMWindowUtils async. r=smaug 2015-04-14 11:36:36 -04:00
Ms2ger
f1fc41b0e5 Bug 949614 - Use === for SimpleTest.is; r=Waldo
This is more likely to be correct, and a necessary step in case we ever want
to move to Object.is.

This keeps ise as an alias for is, and introduces is_loosely for the old
behaviour.
2015-04-14 15:28:13 +02:00
Masayuki Nakano
8c1890067d Bug 492394 part.1 NS_QUERY_CHARACTER_AT_POINT should also return tentative caret offset for the point r=smaug, sr=smaug 2015-04-14 14:27:37 +09:00
David Anderson
01d5761755 Fix tests that depend on synchronous scrolling. (bug 1140293, r=mstange,masayuki,kgilbert) 2015-04-13 00:51:43 -04:00
Carsten "Tomcat" Book
4861b6d51f Backed out changeset 1158acbea753 (bug 1140293) for frequent windows m-oth test failures in test_wheeltransaction.xul 2015-04-08 10:22:34 +02:00
Masayuki Nakano
f24ba16bfb Bug 1151186 part.1 Don't reset IME enabled state after focus is changed by JS during setting focus r=enndeakin 2015-04-08 11:50:12 +09:00
dvander@alliedmods.net
d6e650ec3e Fix tests that depend on synchronous scrolling. (bug 1140293, r=mstange,masayuki,kgilbert) 2015-04-07 18:20:43 -07:00
Ehsan Akhgari
883849ee32 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Robert O'Callahan
843379803a Bug 69787. Implement MouseEvent.offsetX/Y. r=mats,smaug
--HG--
extra : rebase_source : 0120fa29fb94c1c2f992b4e3bae63c5120b90f4b
2015-03-14 00:50:10 +13:00
Jonathan Griffin
d1c61bc9b6 Bug 1116187 - Disable failing mochitest-chrome tests for B2G, r=gbrown 2015-02-06 16:30:37 -08:00
Kim Moir
f6218e038c Bug 1137575 - Disable test_native_mouse_mac.xul on OSX 10.10. r=mstange
CLOSED TREE
2015-02-27 06:54:00 -05:00
Phil Ringnalda
85f8005fd8 Bug 1134111 - Update test_platform_colors.xul to include new 10.10 color for -moz-cellhighlight 2015-02-20 20:14:48 -08:00
Anish
45de248a8b Bug 1056851 - Change existing callers of SpecialPowers.setBoolPref/setIntPref/setCharPref to SpecialPowers.pushPrefEnv. r=jmaher,mwargers 2015-02-19 11:53:01 -05:00
Carsten "Tomcat" Book
c0d53e2918 Backed out changeset 6885e993936a (bug 1056851) for crashtest failures 2015-02-19 15:02:05 +01:00
Anish
e7006d8a59 Bug 1056851 - Change existing callers of SpecialPowers.setBoolPref/setIntPref/setCharPref to SpecialPowers.pushPrefEnv. r=jmaher 2015-02-19 07:26:41 -05:00
Masayuki Nakano
019965a1f6 Bug 1119609 part.14 Reimplement/redesign EventUtils.synthesizeKey() with nsITextInputProcessor r=smaug 2015-02-19 15:50:20 +09:00
Masayuki Nakano
26f706d27e Bug 1119609 part.13 EventUtils.synthesizeComposition() and synthesizeCompositionChange() should take KeyboardEvent for emulating composition state change caused by a key operation rs=smaug 2015-02-19 15:50:20 +09:00
Michael Schloh von Bennewitz
f8a246c05b Bug 1123480 - Component: widget nsTransferable private browsing correction. r=jdm
This patch mitigates violation of private browsing disk access. The DataStruct API and implementation is modified to obey private browsing design when used by objects such as nsTransferable (during clipboard data caching for example.)

Without this patch, a user is misled by use of private browsing when copying (or in some case just selecting) large blocks of text. A condition (presently hard coded at one million bytes kLargeDatasetSize) produces a cache file on disk regardless of whether private browsing is in use. This violates Mozilla's design (documented online at https://support.mozilla.org/kb/private-browsing-browse-web-without-saving-info/ and https://wiki.mozilla.org/PrivateBrowsing) This patch simply corrects the violation, discovered and resolved by the Tor Browser community.
2015-02-18 06:52:00 -05: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
30dc84c107 Bug 917322 part.20 Add tests of async commit at requesting to commit a composition r=smaug 2015-01-28 15:27:33 +09:00
Masayuki Nakano
7a85c69f66 Bug 917322 part.16 Rename COMPOSITION_ATTR_* in EventUtils.js with new constants of nsITextInputProcessor r=smaug 2015-01-28 15:27:33 +09:00
Masayuki Nakano
afb256c118 Bug 917322 part.10 Remove unnecessary synthesizeComposition(compositionstart) from all tests r=smaug 2015-01-28 15:27:32 +09:00
Phil Ringnalda
8343f75c28 Bug 1122882 - Fix test_platform_colors.xul for 10.10 2015-01-17 00:24:13 -08:00
Joel Maher
6286ce360e Bug 926830 - Test cleanup for plugin enabledState usage, widget. r=gfritzsche 2014-02-17 15:58:06 +01:00
Ehsan Akhgari
390eaebf41 Bug 1117044 - Mark virtual overridden functions as MOZ_OVERRIDE in widget; r=roc 2015-01-02 09:02:51 -05:00
Ehsan Akhgari
09a262787c Bug 649012 - Fail mochitest-plains which use flaky timeouts (setTimeout(x) for x > 0); r=ted
We are white-listing the existing set of tests that use setTimeout
like this.  Hopefully these tests will be investigated and fixed
in the future, so that we can narrow down the white-list.

This check is only turned on for mochitest-plain for now.
2014-12-11 13:34:40 -05:00
Masayuki Nakano
9f491a5703 Bug 1077345 part.7 Use synthesizeComposition({"compositioncommit") in the tests r=smaug 2014-11-25 14:02:32 +09:00
Masayuki Nakano
c56c9a574f Bug 1077345 part.5 Use synthesizeComposition({"compositioncommitasis") in the tests r=smaug 2014-11-25 14:02:31 +09:00
Mike Hommey
47c853314f Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.

Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.

Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09:00
Andrew Halberstadt
d292ee73f1 Bug 1066735 - Remove root b2g and android specific xpcshell manifests, r=chmanchester 2014-10-07 18:18:28 -04:00
Masayuki Nakano
17d8fb7e4a Bug 960871 part.11 Rename EventUtils.synthesizeText() to EventUtils.synthesizeCompositionChange() r=smaug 2014-10-07 19:01:50 +09:00
Masayuki Nakano
09a5b86212 Bug 960871 part.4 Rename NS_TEXT_TEXT to NS_COMPOSITION_CHANGE and fix comments which mention text events r=smaug 2014-10-07 19:01:47 +09:00
Masayuki Nakano
5825b07b8e Bug 975383 part.9 Remove compositionupdate event dispatchers from all tests r=smaug 2014-10-03 15:33:50 +09:00
Gijs Kruitbosch
55e3cc3889 Bug 1044595 - fix default/active button text on OS X 10.10, r=mstange,jaws
--HG--
extra : rebase_source : c558491822fc158d44a127cfd5014bd5338d05f1
2014-09-12 00:31:15 +01:00
Masayuki Nakano
2c80ff7fe9 Bug 1062053 part.1 nsTextStore should use StaticRefPtr for storing COM objects r=jimm 2014-09-11 12:56:09 +09:00
Markus Stange
18e617e6e4 Bug 1043421 - Make native Mac menus observe mutations from the observed elements directly. r=smichaud 2014-09-09 17:14:46 +02:00
Mike Hommey
0060683747 Bug 1059090 - Don't require SOURCES to be set for CPP_UNIT_TESTS and SIMPLE_PROGRAMS. r=mshal 2014-09-03 14:16:37 +09:00
Mike Hommey
ed70c5f377 Bug 1041941 - Use templates for programs, simple programs, libraries and C++ unit tests. r=gps 2014-09-03 14:10:54 +09:00
Ehsan Akhgari
d65b8ee5d4 Bug 1061001 - Fix more bad implicit constructors in widget; r=roc 2014-08-31 23:33:13 -04:00
Ms2ger
5b546538b2 Bug 1048780 - Call the standard matches() rather than the proprietary mozMatchesSelector(); r=jst
This also includes a test that mozMatchesSelector is still exposed and works.

--HG--
rename : js/xpconnect/tests/chrome/test_mozMatchesSelector.xul => js/xpconnect/tests/chrome/test_matches.xul
rename : js/xpconnect/tests/mochitest/file_mozMatchesSelector.html => js/xpconnect/tests/mochitest/file_matches.html
2014-08-12 14:30:59 +02:00
Markus Stange
60c8751103 Bug 1041571 - Add some basic leak testing for nsSystemStatusBarCocoa. r=smichaud 2014-08-07 13:23:08 +02:00
Mike Hommey
89777800f9 Bug 1047267 - Move remaining OS_LIBS and EXTRA_LIBS to moz.build. r=gps
* * *
Bug 1047267 - To fold with "Move remaining OS_LIBS and EXTRA_LIBS to moz.build"
2014-08-07 14:21:03 +09:00
Alexandre Poirot
7ea4dd517f Bug 1027242 - Blacklist mulet's failing tests + expose 'mulet' to ini files; fix previous bustage on a CLOSED TREE, r=ahal 2014-07-02 15:40:56 -07:00
Mike Hommey
7cab62150a Bug 1041936 part 2 - Directly use the static library "xul" to link into "xul-gtest" instead of having an intermediate library "xul" used by "xul-shared" and "xul-gtest". r=gps 2014-07-23 13:33:09 +09:00
Mike Hommey
5fab42fcaf Bug 1036894 part 8 - Move most in-tree library linkage information to moz.build, as USE_LIBS. r=gps 2014-07-23 13:30:52 +09:00
Mike Hommey
6d6d400ea1 Bug 1036894 part 6 - Emit SimplePrograms for CPP_UNIT_TESTs, and make the corresponding moz.build config look like that of SIMPLE_PROGRAMS. r=gps 2014-07-23 13:29:44 +09:00
Jonathan Griffin
1c5d8636ac Backed out changeset 64586374a208 on a CLOSED TREE 2014-07-22 18:29:57 -07:00
Alexandre Poirot
98afd25e0d Bug 1027242 - Blacklist mulet's failing tests + expose 'mulet' to ini files; fix previous bustage on a CLOSED TREE, r=ahal 2014-07-02 15:40:56 -07:00
Jonathan Griffin
38f79ff899 Backout 4f6d9db92389 for bustage on a CLOSED TREE 2014-07-22 17:55:50 -07:00
Alexandre Poirot
37506aa45c Bug 1027242 - Blacklist mulet's failing tests + expose 'mulet' to ini files. r=ahal 2014-07-02 15:40:56 -07:00
Birunthan Mohanathas
c8a0322529 Bug 815952 - Stop clearing clipboard data originating from a private window after closing private windows. r=ehsan
This reverts bug 462106.
2014-07-14 12:35:30 -07:00
Jim Blandy
7e20285e70 Bug 914753: Make Emacs file variable header lines correct, or at least consistent. DONTBUILD r=ehsan
The -*- file variable lines -*- establish per-file settings that Emacs will
pick up. This patch makes the following changes to those lines (and touches
nothing else):

 - Never set the buffer's mode.

   Years ago, Emacs did not have a good JavaScript mode, so it made sense
   to use Java or C++ mode in .js files. However, Emacs has had js-mode for
   years now; it's perfectly serviceable, and is available and enabled by
   default in all major Emacs packagings.

   Selecting a mode in the -*- file variable line -*- is almost always the
   wrong thing to do anyway. It overrides Emacs's default choice, which is
   (now) reasonable; and even worse, it overrides settings the user might
   have made in their '.emacs' file for that file extension. It's only
   useful when there's something specific about that particular file that
   makes a particular mode appropriate.

 - Correctly propagate settings that establish the correct indentation
   level for this file: c-basic-offset and js2-basic-offset should be
   js-indent-level. Whatever value they're given should be preserved;
   different parts of our tree use different indentation styles.

 - We don't use tabs in Mozilla JS code. Always set indent-tabs-mode: nil.
   Remove tab-width: settings, at least in files that don't contain tab
   characters.

 - Remove js2-mode settings that belong in the user's .emacs file, like
   js2-skip-preprocessor-directives.
2014-06-24 22:12:07 -07:00
Benoit Jacob
30a15f5822 Bug 1028588 - Fix dangerous public destructors in widget/ - r=roc 2014-06-24 12:36:44 -04:00
Masayuki Nakano
f850719aaf Bug 1028485 Don't set caret position over actual inserted string at commiting composition r=ehsan 2014-06-24 10:06:20 +09:00
Birunthan Mohanathas
51ba75d135 Bug 1016240 - Exterminate CR+LF line endings. r=briansmith,cpearce,ehsan,gavin 2014-06-18 17:56:02 -07:00
stefanh@inbox.com
9530e9ea0e Bug 1022912 - make -moz-mac-menutextdisable lighter and remove obsolete color from widget/tests/test_platform_colors.xul. r=mstange. 2014-06-10 11:45:09 +02:00
Mike Conley
8697a1814f Bug 1021466 - Part 2: Make it possible to pass in an nsITabParent when opening windows, and then stash that nsITabParent in the newly created chrome docshell. r=smaug. 2014-06-05 22:51:14 -04:00
Masayuki Nakano
d0367270e1 Bug 1008772 part.3 Fix new orages caused by tabbrowser consuming some key events at keydown r=smaug 2014-06-05 11:57:54 +09:00
Birunthan Mohanathas
aea8617b92 Bug 869836 - Part 7: Use AppendLiteral instead of Append where possible. r=ehsan 2014-05-22 06:48:51 +03:00
Karl Tomlinson
ad013d9073 mochitest for bug 835044
--HG--
extra : transplant_source : %10Q%89%3F%ED%CA%BB%10/%98W%ED%7F%1F%E6%E9KM%D9%D6
2014-05-14 12:12:27 +12:00
Birunthan Mohanathas
5f1fde8824 Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
Masayuki Nakano
ecab2beca9 Bug 993253 Implement DOM InputEvent interface with isComposing attribute r=smaug+ehsan 2014-04-10 16:11:37 +09:00
Masayuki Nakano
023a9dda6e Bug 993234 part.2 Add tests for KeyboardEvent.isComposing r=smaug 2014-04-10 16:11:37 +09:00
Neil Deakin
f9e1db1ab8 Bug 475981, remove titles from a bunch of tests, fixing box wrapped in a block warnings,r=neil 2014-04-04 13:11:12 -04:00
Bill McCloskey
fd05f3eb04 Bug 982828 - [e10s] Disable mochitest-plain tests that don't pass in e10s (r=ted) 2014-03-13 21:38:19 -07:00
Wes Kocher
3b83e5bb22 Backed out changeset 88425ad0f06a (bug 982828) for introducing various mochitest-5 failures on a CLOSED TREE
* * *
Backed out changeset 94f9ebdc6662 (bug 982828)
2014-03-13 19:41:21 -07:00
Bill McCloskey
e784b5aef6 Bug 982828 - [e10s] Disable mochitest-plain tests that don't pass in e10s (r=ted) 2014-03-13 15:41:41 -07:00
Bill McCloskey
006786a6b4 Backed out changeset d6261f65070a 2014-03-13 15:52:27 -07:00
Bill McCloskey
ed100f425c Bug 982828 - [e10s] Disable mochitest-plain tests that don't pass in e10s (r=ted) 2014-03-13 15:41:41 -07:00
Vaibhav Agarwal
c75ff964a1 Bug 971132 - B2G mochitests should use the new manifest format for runtests; r=jmaher 2014-03-13 10:40:10 -04:00
Masayuki Nakano
7419257b87 Bug 981226 Rename nsContentEventHandler to mozilla::ContentEventHandler (and clean up it) r=smaug
--HG--
rename : dom/events/nsContentEventHandler.cpp => dom/events/ContentEventHandler.cpp
rename : dom/events/nsContentEventHandler.h => dom/events/ContentEventHandler.h
2014-03-11 14:08:02 +09:00
Jan Jongboom
e5e34cc74c Bug 948065 - Mochitest for nsIClipboard. r=ehsan 2014-03-05 14:18:37 -05:00
Masayuki Nakano
59ea783e22 Bug 974318 part.2 TextComposition should store TextRangeArray at editor handling text event and nsEditor should refer it r=smaug+ehsan 2014-03-04 22:48:26 +09:00
Boris Zbarsky
2ab672042c Bug 972312 part 2. Get rid of InternalScriptErrorEvent and just use mozilla::dom::ErrorEvent for the cases that used to use it. r=smaug,khuey 2014-02-23 00:01:12 -05:00
Carsten "Tomcat" Book
7bb450e8c7 Backed out changeset f2cade11e3c0 (bug 926830) for mochitest memory leak on a CLOSED TREE 2014-02-21 14:32:28 +01:00
Georg Fritzsche
4639861d12 Bug 926830 - Test cleanup for plugin enabledState usage, widget. r=roc 2014-02-17 15:58:06 +01:00