Граф коммитов

833 Коммитов

Автор SHA1 Сообщение Дата
Masayuki Nakano 36f73c43d8 Bug 1435717 - Make calling WidgetEvent::PreventDefault*() stop cross process forwarding too r=smaug
Currently, if an event is consumed in the main process, EventStateManager
does not send it to remote process.  However, this is unexpected behavior
for some WidgetKeyboardEvent dispatchers.  OS sometimes has consumed native
key events before sending applications.  For example, Alt key on Windows
should activate menu bar of focused window but Alt key may be consumed before
focused window receives the event.  In such case, we mark Alt keyboard event
as "consumed before dispatch", and chrome treat it like as its preventDefault()
is called in web content.  (Note that for compatibility with other browsers,
the consumed state is not exposed to web content.  So, Event.defaultPrevented
returns false in web content.)

Therefore, we need to treat "consumed" state and "cross process forwarding"
state separately.  This patch makes calling WidgetEvent::PreventDefault()
always stops cross process forwarding for backward compatibility.  Additionally,
for the special case mentioned above, this patch makes
WidgetEvent::PreventDefaultBeforeDispatch() take additional argument,
|aIfStopCrossProcessForwarding|.  If this is CrossProcessForwarding::eStop,
the event won't be sent to remote process as same as calling PreventDefault().
Otherwise, CrossProcessForwarding::eHold, PreventDefaultBeforeDispatch() call
does not change "cross process forwarding" state.  I.e., if the event's
StopCrossProcessForwarding() and PreventDefault() are not called until
EventStateManager::PostHandleEvent(), the event will be sent to remote process
as usual.

MozReview-Commit-ID: IQGWJvXetxV

--HG--
extra : rebase_source : 4ccdd500e80b8fe29e469ac3b85578e1c07c8358
2018-06-25 18:17:18 +09:00
Xidorn Quan 5d2f11ce8d Bug 1464722 part 6 - Enable scrollbar colors test on mac. r=spohl
MozReview-Commit-ID: IfBhLvGzr5u

--HG--
extra : rebase_source : 088455347ba1975bcec946bba5dc2a40892d0faf
2018-06-25 10:16:25 +10:00
Masayuki Nakano 2c6512d478 Bug 900750 - part 6: Rename |name| in test_keycodes.xul to |currentTestName| r=smaug
|name| is too generic but the scope is too wide in test_keycodes.xul.
So, let's rename it to |currentTestName|.

MozReview-Commit-ID: JvEDhRhKYCU

--HG--
extra : rebase_source : 15e06fabddeddb8e79198aa9f135e2951976aa8e
2018-06-04 20:41:43 +09:00
Masayuki Nakano ec7dded4eb Bug 900750 - part 5: Make NativeKey set KeyboardEvent.key value of AltRight key to "AltGraph" when active keyboard layout has AltGr key r=m_kato,smaug
When AltGr key is pressed, following messages come:

1. WM_KEYDOWN for ControlLeft
2. WM_KEYDOWN for AltLeft
3. WM_SYSKEYUP for ControlLeft
4. WM_KEYUP for AltLeft

In these key sequence, KeyboardEvent.key value of keydown event at #2 and keyup
event at #4 should be "AltGraph".  This patch fixes the key value and
adding new test into test_keycodes.xul to check the behavior with
SynthesizeNativeKey().

MozReview-Commit-ID: JZ6WednB8la

--HG--
extra : rebase_source : 596371ede89e90c23f7e842b26ec8155b911fe60
2018-05-31 18:36:33 +09:00
Masayuki Nakano cccab7b98a Bug 900750 - part 4: Make NativeKey replaces MODIFIER_CONTROL and MODIFIER_ALT of mModKeyState with MODIFIER_ALTGRAPH if user emulates AltGr key press with pressing both Ctrl and Alt keys and current keydown produces character(s) r=m_kato,smaug
Users can emulate AltGr key with pressing both Ctrl key and Alt key on Windows
since AltGr is represented as so in Windows and physical keyboard may not have
AltRight key.

If user emulates AltGr key, we should set MODIFIER_ALTGRAPH to a set of
keyboard events for printable keys only when the key press produces
character(s) or a dead key.  For example:

1. ControlLeft keydown event should make ctrlKey true.
2. AltLeft keydown event should make altKey true (not AltGraph state).
3. ctrlKey and altKey of printable keydown, keypress and keyup events should be
   set to false, but getModifierState("AltGraph") should return true.
4. AltLeft keyup event should make altKey false.
5. ControlLeft keyup event should make ctrlKey false.

(If AltLeft key is pressed first, altKey of AltLeft keydown is true and
both altKey and ctrlKey of the following ControlLeft keydown are true as
usual.)

MozReview-Commit-ID: 8Km8GXPDQw1

--HG--
extra : rebase_source : f4924f075c68361c8ce563910280ea24774c519f
2018-06-04 14:45:28 +09:00
Masayuki Nakano 8fc19f6752 Bug 900750 - part 2: Make ModifierKeyState and VirtualKey treat AltGraph as new modifier and won't set Control and Alt state while AltGraph is active r=m_kato,smaug
By the proposal from Google, <https://github.com/w3c/uievents/issues/147>,
Chromium treat AltRight key as "AltGraph" modifier if the keyboard layout
has AltGr key.

When AltRight key is pressed with a keyboard layout which has AltGr key,
modifiers should as following:

1. "keydown" for ControlLeft:
  ctrlKey:  true, altKey: false, getModifierState("AltGraph"): false
2. "keydown" for AltRight:
  ctrlKey: false, altKey: false, getModifierState("AltGraph"): true
3. Some "keydown", "keypress" and "keyup" events:
  ctrlKey: false, altKey: false, getModifierState("AltGraph"): true
4. "keyup" for ControlLeft:
  ctrlKey: false, altKey: false, getModifierState("AltGraph"): true
5. "keyup" for AltRight:
  ctrlKey: false, altKey: false, getModifierState("AltGraph"): false

So, only when the preceding "keydown" event for ControlLeft, ctrlKey should
be set to true as usual.  However, after AltRight key is pressed actually,
we should treat "AltGraph" modifier is true and both ctrlKey and altKey
should be set to false for web apps can handle text input normally.

So, MODIFIER_ALTGRAPH and MODIFIER_CONTROL/MODIFIER_ALT should not be set
at the same time.

This patch makes ModifierKeyState have only MODIFIER_ALTGRAPH or
MODIFIER_CONTROL/MODIFIER_ALT.

Additionally, this patch makes VirtualKey::ShiftState treat "AltGraph" as a
modifier.  So, now, VirtualKey needs to convert ShiftState to index value when
it accesses its mShiftStates array.  Therefore, this patch adds
VirtualKey::ToIndex() and make each VirtualKey method use it before
accessing mShiftStates.

Note that this patch also fixes bug of WinUtils::SetupKeyModifiersSequence().
The constructor of KeyPair takes 2 keycode values, but the second virtual
keycode can have scancode to distinguish if the key is left or right.
However, WinUtils::SetupKeyModifiersSequence() never sets scancode to
KeyPair.  Therefore, it fails to dispatch AltRight key event.

MozReview-Commit-ID: 7ealxJH9KlZ

--HG--
extra : rebase_source : 761bc4416222def020a0731d6ae7940ef074ebe0
2018-05-30 17:27:31 +09:00
Xidorn Quan 7038d5f944 Bug 1463917 part 2 - Have windows widget render scrollcorner. r=jimm
MozReview-Commit-ID: K4Cu1mL6xvH

--HG--
extra : rebase_source : 01a9c544b918c1be4002535b1a09c5980022bd9d
2018-05-11 10:21:22 +10:00
Joel Maher 50b91c0a14 Bug 1405428 - skip-if = verify on mochitests which do not pass test-verify. r=gbrown 2018-06-10 05:01:47 -04:00
Boris Zbarsky c7f378d7ab Bug 1465875 part 1. Eliminate pointless QIs to nsIDOMNSEditableElement. r=qdot
We expose the relevant APIs on textarea and input elements anyway
(chromeonly).  The QIs will throw on a non-input or non-textarea element, but
none of these consumers expect that to happen.
2018-06-01 22:35:22 -04:00
Xidorn Quan 661ed3d065 Bug 1463993 - Add a rendering test for scrollbar color properties. r=heycam
MozReview-Commit-ID: 442pfDQUUUs

--HG--
extra : rebase_source : 6e336c36f61d7772023e641ca84751c7ddd2b018
2018-05-29 16:37:35 +10:00
Masayuki Nakano 80b5c54449 Bug 1464016 - TextInputHandler should not clear alt/ctrl/meta modifiers of eKeyPress event before sending TextEventDispatcher r=m_kato
If a key combination causes text input, we need to dispatch keypress
events without alt/ctrl/meta modifiers since TextEditor won't handle
keyepress events whose altKey, ctrlKey or metaKey is true as inputting
text.

Currently, TextEventDispatcher sets mCharCode of eKeyPress event from
mKeyValue.  Then, when altKey, ctrlKey or metaKey is true, it'll call
WillDispatchKeyboardEvent() and then, TextInputHandler needs to reset
the charCode value from native event information.

However, the problem is, TextInputHandler::InsertText() is called
with control character when control key is pressed and InsertText()
clears the modifier information before sending eKeyPress event to
TextEvenDispatcher so that TextEventDispatcher won't call
WillDispatchKeyboardEvent() even though control key is actually
pressed.  Therefore, TextInputHandler cannot adjust charCode value
and modifier flags in some cases such as control + option + 'a'.

This patch makes InsertText() stop clearing the modifiers and
makes WillDispatchKeyboardEvent() do it instead.  This procedure
is expected by TextEventDispatcher.

MozReview-Commit-ID: Ig6qgRBeQDh

--HG--
extra : rebase_source : 446e8af0e921946f3409d26ede70446248317673
2018-05-24 20:59:48 +09:00
Masayuki Nakano 1d38d6b282 Bug 1458845 - Make TextEventDispatcher dispatch keypress event even if altKey is true on macOS r=smaug
On macOS, option key is mapped to alt key, and it works like AltGr key on
the other platforms.  Since our editor doesn't accept keypress events as
typing printable character if one of altKey, ctrlKey and metaKey of the
events is true, widget for macOS sets those attributes to false when an
editor has focus.  On the other hand, if no editor has focus, our widget
does not do this hack so that altKey and ctrlKey values of keypress events
are always same as actual user operation and this is same behavior as the
other browsers.  Therefore, we need to keep setting altKey of keypress
events to true if no editor has focus but we need to dispatch keypress
events even on content unless the charCode is 0.

So, only on macOS, WidgetKeyboardEvent::IsInputtingText() does not need
to check altKey state.

MozReview-Commit-ID: 4DMgdOfLqvQ

--HG--
extra : rebase_source : 18db91c0d77c6910a206e6c767e6f3b5cfd1c2ab
2018-05-23 22:27:17 +09:00
Kris Maglione 6b12d08f7d Bug 1462937: Update callers to use nsIFile::GetDirectoryEntries as a nsIDirectoryEnumerator. r=froydnj
MozReview-Commit-ID: Iv4T1MVAF5

--HG--
extra : rebase_source : 1c518883d082884db7f9323a5acc20361228c26b
extra : histedit_source : 70a73c23d1199d3bfbb5379c78930401166c094b
2018-05-19 20:17:45 -07:00
Noemi Erli fa0c01fc6b Bug 1456811 - disabled test_taskbar_progress.xul for frequent failures on Windows 10 !ccov. r=jmaher
--HG--
extra : rebase_source : 45c6884e30a4a5df545b66d7bac6c03f71cdff39
extra : histedit_source : e40f4ff6fad7ad1fef8bab8efd6db9cee6e8ca35
2018-05-14 01:27:00 +03:00
Stefan Hindli 0c522a46ca Bug 1457329 - disabled test_taskbar_jumplistitems.js on Windows 10 for frequent falures. r=jmaher
--HG--
extra : rebase_source : 08458db8e4b571a0ea3e549ba8c4e82d256b022a
extra : histedit_source : 06adf817214d155539edf235e0a9471b4d761a91
2018-05-14 02:19:00 +03:00
Mark Banner 9c03ace970 Bug 1458235 - Fix various cases where Assert.ok or Assert.equal have been called wrongly. r=Gijs
MozReview-Commit-ID: Br3lKpKNVQJ

--HG--
extra : rebase_source : 972c69ecf63bb522b0f368e3c388f4eff558bbe3
2018-05-01 22:15:43 +01:00
Dale Harvey 2beab3540e Bug 1455310 - Add title data and activity to sharing. r=mstange
MozReview-Commit-ID: IL4sqvRwSwu

--HG--
extra : rebase_source : ff973f92552931c725a81c177c02fcbd5c6aab63
2018-04-25 08:23:32 +01:00
Neil Deakin cf9835ac8b Bug 1446961, remove obsolete calls to showPopup and replace usages of the popup box object with the same methods defined on popups, r=paolo 2018-04-27 11:04:36 -04:00
Timothy Guan-tin Chien aaebd8920d Bug 1431246 - Create and update scrollbar markup in nsScrollbarFrame r=enndeakin+6102
nsScrollbarFrame::CreateAnonymousContent() would create the children
markup originally created by XBL. The attributes updated by XBL attribute
inheritance is updated by nsScrollbarFrame::UpdateChildrenAttributeValue().

This removes the XBL part of the scrollbar implementation.

MozReview-Commit-ID: FWi3HR2qkwF

--HG--
extra : rebase_source : c0b1b2ddbccb1d8e9d523db91a5b81fbcfa328e9
2018-04-09 22:01:02 +08:00
Dale Harvey b6759085c8 Bug 1455304 - Filter unwanted sharing providers. r=mstange
MozReview-Commit-ID: 5FKHWzcJDYk

--HG--
extra : rebase_source : 6b997c83596fdd2a5ff294f38fb45d90d67209a7
2018-04-21 09:01:09 +01:00
Boris Zbarsky 5415ab3858 Bug 1455052 part 13. Remove nsIDOMEvent. r=masayuki
MozReview-Commit-ID: 3gmGy4URet3
2018-04-20 12:55:31 -04:00
Boris Zbarsky b7f2b6976a Bug 1429903 part 3. Remove C++ uses of nsIDOMEventTarget. r=mccr8
MozReview-Commit-ID: 4NdssvnWn0H
2018-04-20 00:49:30 -04:00
Boris Zbarsky 01d792d54e Bug 1455055 part 7. Clean up remaining HandleEvent implementations. r=masayuki
MozReview-Commit-ID: LezJYKK74H5
2018-04-20 00:49:30 -04:00
Boris Zbarsky 2b6097ae6d Bug 1455055 part 1. Convert nsIDOMEventListener to taking an Event, not an nsIDOMEvent. r=masayuki
This does no cleanup other than what's needed to compile.  Cleanup coming up in
later patches.

MozReview-Commit-ID: 3sOnkj71n09
2018-04-20 00:49:29 -04:00
Dale Harvey 5aeada7d94 Bug 1363168 - Add support for OSX Share feature. r=Gijs,mstange
MozReview-Commit-ID: sJXl2If9Ou

--HG--
extra : rebase_source : b88ff89e1d28bab28c3575c2f7f30c91bd584aea
2018-03-12 09:16:51 +00:00
Zhang Junzhi 1f63801545 Bug 1358017 - Part 9: Updates some existing mochitests which are not meant to test default actions for wheel events but are affected by auto-dir scrolling. r=masayuki
Some mochitests are not meant to test default actions for wheel events, but they
assume audo-dir is disabled when doing tests for their purposes, so this commit
disables auto-dir for those mochitests.

MozReview-Commit-ID: 5ZQIxgRVpj5

--HG--
extra : rebase_source : a185a2f65179ec9162ec04209b4eb29e8c04125b
2018-04-03 20:23:19 +08:00
Boris Zbarsky 060ebf9b50 Bug 1448398 followup to fix Windows-only test. r=kmag pending
This is a chrome test, so it doesn't need to play SpecialPowers games.

MozReview-Commit-ID: 8DG4lZ5OfbE
2018-03-26 16:42:01 -04:00
Tim Nguyen e002c63fa4 Bug 1444760 - Combine loadURIWithFlags and loadURI methods. r=dao
MozReview-Commit-ID: 5dsyKwvjYht

--HG--
extra : rebase_source : 881e10f2987606e84e55c267260661c0f7b3b746
2018-03-16 23:21:46 +00:00
Margareta Eliza Balazs 27703664b0 Backed out 2 changesets (bug 1444760) for ES lint failure in /builds/worker/checkouts/gecko/browser/base/content/browser.js on a CLOSED TREE
Backed out changeset 71f61091a716 (bug 1444760)
Backed out changeset 4956db1e9bdd (bug 1444760)
2018-03-25 15:29:54 +03:00
Tim Nguyen e2ed0b5dfb Bug 1444760 - Combine loadURIWithFlags and loadURI methods. r=dao
MozReview-Commit-ID: 5dsyKwvjYht

--HG--
extra : rebase_source : 8e9f24d20829021db2239435c7d8d0db08e28bf9
2018-03-16 23:21:46 +00:00
Andreea Pavel d9d9517a78 Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2018-03-20 00:42:18 +02:00
Boris Zbarsky 5f74b75e04 Bug 1446850. Get rid of nsIDOMMouseScrollEvent. r=qdot
MozReview-Commit-ID: ZT9E3Fhtw0
2018-03-19 15:50:56 -04:00
Masayuki Nakano 1c1a60c08d Bug 1446253 - Make EventUtils.synthesizeComposition() dispatch keydown and keyup event in default r=smaug
We'll start to dispatch keydown event and keyup event even during composition.
So, for testing those events won't break our UI, we should make
EventUtils.synhtesizeComposition() and EventUtils.synthesizeCompositionChange()
dispatch keydown event and keyup event even if callers don't specify keyboard
event explicitly.

Typically, "keydown" event is marked as "processed by IME", i.e., keyCode
value is set to DOM_VK_PROCESSKEY and key is set to "Process", with our
widget which handles native IME and key input.  On the other hand, "keyup"
is NOT marked as so.

Therefore, this patch makes TextInputProcessor emulates this behavior without
any new special flags.  And for making possible to emulate special cases,
this patch adds two flags to nsITextInputProcessor.  One is
KEY_DONT_MARK_KEYDOWN_AS_PROCESSED.  The other is KEY_MARK_KEYUP_AS_PROCESSED.
Unfortunately, those flags have opposite meaning but this must be better than
making necessary to one flag for emulating usual keydown/keyup events.

Finally, this makes some tests specify better keyboard information to
synthesizeComposition() and synthesizeCompositionChange() to emulate
actual keyboard events during composition.

MozReview-Commit-ID: ItYaXILkNQE

--HG--
extra : rebase_source : e50cc77c1efbc12686d7ea334d41926c7392b30d
2018-03-16 22:35:07 +09:00
Valentin Gosu af5eeff2e3 Bug 1442239 - Make URI deserialization (nsISerializable.read) happen via nsIURIMutator only r=mayhemer
* Deserialization now only happens via a mutator
* The CID for URI implementations actually returns the nsIURIMutator for each class
* The QueryInterface of mutators implementing nsISerializable will now act as a finalizer if passed the IID of an interface implemented by the URI it holds

MozReview-Commit-ID: H5MUJOEkpia

--HG--
extra : rebase_source : 01c8d16f7d31977eda6ca061e7889cedbf6940c2
2018-03-19 20:22:32 +01:00
Masayuki Nakano 8bd493dbc3 Bug 1343451 - part 2: KeyboardLayout and NativeKey should use native key code value to check if the key event was handled by IME r=m_kato
On Windows, VK_PROCESSKEY key message is sent if the key event is handled by
IME (in IMM mode or IMM-IME).  Therefore, we can set
WidgetKeyboardEvent::mKeyCode to NS_VK_PROCESSKEY and
WidgetKeyboardEvent::mKeyNameIndex to KEY_NAME_INDEX_Process simply when
we receive VK_PROCESSKEY.

MozReview-Commit-ID: 9B8Q7rwfXYD

--HG--
extra : rebase_source : f1ed228b295e6c4bd41192bc773b8118a28db6bc
2017-03-01 15:58:50 +09:00
Cosmin Sabou 462b445081 Backed out 6 changesets (bug 1343451) for mochitest android perma failures on testInputConnection.
Backed out changeset e07105d9698e (bug 1343451)
Backed out changeset dc4a2a5932c3 (bug 1343451)
Backed out changeset 9561ed261d04 (bug 1343451)
Backed out changeset 84a5ec921442 (bug 1343451)
Backed out changeset b34d48936db8 (bug 1343451)
Backed out changeset 4dce7ab14f71 (bug 1343451)
2018-03-12 18:07:46 +02:00
Masayuki Nakano 2b972e10f7 Bug 1343451 - part 2: KeyboardLayout and NativeKey should use native key code value to check if the key event was handled by IME r=m_kato
On Windows, VK_PROCESSKEY key message is sent if the key event is handled by
IME (in IMM mode or IMM-IME).  Therefore, we can set
WidgetKeyboardEvent::mKeyCode to NS_VK_PROCESSKEY and
WidgetKeyboardEvent::mKeyNameIndex to KEY_NAME_INDEX_Process simply when
we receive VK_PROCESSKEY.

MozReview-Commit-ID: 9B8Q7rwfXYD

--HG--
extra : rebase_source : a15105e3b6acf1f1911a8299911353dc4179e2c0
2017-03-01 15:58:50 +09:00
Rob Wu 2209797ba5 Bug 1433030 - Initialize nsTransferable::mPrivateData with false r=jdm
Initialize mPrivateData to false by default again, because the
change that changed the default value from true to false, i.e.
https://hg.mozilla.org/mozilla-central/rev/9e19b58d6494
prevented the clipboard from being backed by the filesystem,
as shown at https://bugzilla.mozilla.org/show_bug.cgi?id=1433030#c7

MozReview-Commit-ID: DEw5ETVqab8

--HG--
extra : rebase_source : 0d15a91c28ae3dee9c7e767a5b2c959574610b0f
2018-03-07 10:21:50 +01:00
Rob Wu 7b7f160bef Bug 335545 - Add test to verify that overflowing clipboard data survives r=mstange
I accidentally broke the ability to retrieve a big string from the
clipboard, and there was no test that failed. So this provides a new
test that does the following:

1. Store a big string in a nsTransferable.
2. Copy it to the clipboard.
3. Create a new nsTransferable, initialize with small data.
4. Populate the nsTransferable with (big) data from the clipboard.
5. Populate the nsTransferable with small data.

After each step, the test checks whether the transferable holds the
expected data and length, and (on non-Windows) checks that the big
data is backed by a file, and small data is not.

MozReview-Commit-ID: 9yuXZxVqD6R

--HG--
extra : rebase_source : 6cec638c59e8ce5a18adbb642779c1dcd457cc5b
2018-02-25 19:08:12 +01:00
Rob Wu 57cfe68440 Bug 335545 - Count FD instead of looking for clipboardcache in test_bug1123480.xul r=mstange
- Count open file descriptors instead of testing the existence of a file
  (because the clipboard is now only reachable through file descriptors,
  and not through a file path).

- Use a fixed string instead of a random string. The previous way of
  generating a string was non-deterministic, and there was a very small
  chance that the generated string was not large enough to trigger the
  cache-to-disk-mode.

- Use "text/unicode" instead of "text/plain", because JavaScript strings
  use two bytes, not one bytes each.

- The cache file is already created when the Transferable is created, so
  check the cache file after assigning data to the nsITransferable, but
  before copying it to the clipboard.

MozReview-Commit-ID: KOkYOm280Oh

--HG--
extra : rebase_source : 3515ff55a316720b87f2473a1450e5d8304728e8
2018-02-25 17:30:13 +01:00
Masayuki Nakano 01d9c81bcf Bug 1440189 - part 2: Make test_assign_event_data.html aware of strict keypress event dispatching mode r=smaug
This a remaining issue of bug 1435180. We need to skip keypress event check of
non-printable key operation in the test.

MozReview-Commit-ID: InobZCbrzWL

--HG--
extra : rebase_source : 9f17cd04500f4ef31c3674087188ec6ee157173b
2018-02-26 18:30:29 +09:00
Florian Quèze 6df7549a3e Bug 1433175 - semi-automated indent fix, r=Mossop. 2018-02-28 18:51:34 +01:00
Florian Quèze c714053d73 Bug 1433175 - scripted patch to replace Components.classes[, Components.interfaces.nsI, Components.utils. and Components.results. with Cc, Ci, Cu and Cr, r=Mossop. 2018-02-28 18:51:33 +01:00
Masayuki Nakano ed18f14624 Bug 1036008 - Use alternative ASCII capable keyboard layout information to decide keyCode even if the key produces an ASCII punctuation character r=smaug
Gecko decides keyCode from an ASCII character which is produced by the key
by itself or with Shift on active keyboard layout or alternative ASCII capable
keyboard layout if active keyboard layout isn't ASCII capable.  However, we've
ignored alternative ASCII capable keyboard layout's character if both the
key itself and with Shift don't produce ASCII alphabet nor ASCII numeral,
i.e., ASCII punctuation characters are not used in alternative ASCII capable
keyboard layout because of avoiding mapping a keyCode value to 2 or more keys.

However, setting 0 to keyCode value makes Firefox unusable with some web
applications which are aware of neither KeyboardEvent.key nor
KeyboardEvent.code.  So, even if we map same keyCode value to a key, we should
avoid setting keyCode value to 0 as far as possible.

This patch's approach is, we behave same keyCode value as the alternative ASCII
capable keyCode is selected when computed keyCode value of active keyboard
layout is 0.  This means that we will make some language users whose keyboard
layout for their language is not ASCII capable can use global web services
which support US keyboard layout of Firefox since the new keyCode values
are mostly computed with US layout on Windows or actual alternative ASCII
capable keyboard layout on macOS and Linux.  In other words, we cannot improve
compatibility with web applications which don't support Firefox  by this patch
since our keyCode values are really different from Chrome's.  So, unfortunately,
if we'd use exactly same keyCode computation as Chromium, we'd break
compatibility with existing web applications which are aware of Firefox since
it's necessary to check UA name or something before using keyCode values.

Note that the most important difference between Windows and the others is,
such keyCode value is computed with alternative ASCII capable keyboard
layout on macOS and Linux but only on Windows, it's computed with OEM virtual
keycode.  This means that only on Windows, the keyCode value may be different
from actual alternative ASCII capable keyboard layout's keyCode.

MozReview-Commit-ID: As289r9wp6i

--HG--
extra : rebase_source : 66181403dbe8ca8dab893edc8f4eec1991d544d0
2018-02-16 15:54:07 +09:00
Masayuki Nakano cf83ee7bb4 Bug 1438157 - part 2: Remove unnecessary second argument of EventUtils.synthesizeKey() r=smaug
Note that this patch also replaces legacy VK_* with KEY_*, and replaces
synthesizeKey() for inputting some characters with sendString() because
it's better and clearer what it does and it sets shiftKey state properly.

MozReview-Commit-ID: De4enbjux3T

--HG--
extra : rebase_source : 2296b84bff8e22f01eeb48cd8614fac5db11136a
2018-02-15 04:15:39 +09:00
Dorel Luca 4234703a53 Merge mozilla-inbound to mozilla-central a=merge 2018-02-15 00:23:02 +02:00
Arthur Edelstein 7d2a9476f0 Bug 1433030 - Stop nsTransferable writing to /tmp in PB windows r=jdm
We shouldn't assume it's safe to write to /tmp unless we know
for sure we are not in a private browsing window. So
use mPrivateData = true as default.

Based on a patch by Neill Miller:
https://trac.torproject.org/projects/tor/ticket/21830
2018-02-12 10:34:00 +02:00
Boris Zbarsky fce30e834b Bug 1436508 part 10. Remove use of nsIDOMKeyEvent in JS. r=masayuki
MozReview-Commit-ID: GGciORX62Yh
2018-02-09 11:17:09 -05:00
Andrew McCreight 5dec0e0beb Bug 1432992, part 1 - Remove definitions of Ci, Cr, Cc, and Cu. r=florian
This patch was autogenerated by my decomponents.py

It covers almost every file with the extension js, jsm, html, py,
xhtml, or xul.

It removes blank lines after removed lines, when the removed lines are
preceded by either blank lines or the start of a new block. The "start
of a new block" is defined fairly hackily: either the line starts with
//, ends with */, ends with {, <![CDATA[, """ or '''. The first two
cover comments, the third one covers JS, the fourth covers JS embedded
in XUL, and the final two cover JS embedded in Python. This also
applies if the removed line was the first line of the file.

It covers the pattern matching cases like "var {classes: Cc,
interfaces: Ci, utils: Cu, results: Cr} = Components;". It'll remove
the entire thing if they are all either Ci, Cr, Cc or Cu, or it will
remove the appropriate ones and leave the residue behind. If there's
only one behind, then it will turn it into a normal, non-pattern
matching variable definition. (For instance, "const { classes: Cc,
Constructor: CC, interfaces: Ci, utils: Cu } = Components" becomes
"const CC = Components.Constructor".)

MozReview-Commit-ID: DeSHcClQ7cG

--HG--
extra : rebase_source : d9c41878036c1ef7766ef5e91a7005025bc1d72b
2018-02-06 09:36:57 -08:00
Florian Quèze 2b1c8dccb6 Bug 1339461 - script-generated patch to convert foo.indexOf(...) == -1 to foo.includes(), r=Mossop. 2018-02-01 20:45:22 +01:00