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

21229 Коммитов

Автор SHA1 Сообщение Дата
Karl Tomlinson 58fe36c651 bug 1315668 CreateStyleForWidget: store classes on context instead of path r=stransky+263117
CreateStyleForWidget() then provides the same behavior with
g_style_context_save() as contexts from widget root style nodes.

MozReview-Commit-ID: 6lRCp3XOoRr

--HG--
extra : rebase_source : ad161eef11e0dc70c8a487c204f109eceac3b1c4
2016-11-15 15:29:06 +13:00
Karl Tomlinson 7128eab794 bug 1315668 use style context instead of widget for menuitem dimensions r=stransky+263117
This is necessary to switch from caching GtkWidgets to caching
GtkStyleContexts only.

MozReview-Commit-ID: 6Rwinr4AY8l

--HG--
extra : rebase_source : 930a501b3ecd5f124631e3f96fd6ca7611d078ff
2016-11-15 16:11:38 +13:00
Karl Tomlinson e8416905f1 bug 1315668 remove use of gtk_container_get_border_width from menuitems r=stransky+263117
The GtkContainer border-width property defaults to zero.  It is not influenced
by theme CSS.  While theme engines can theoretically modify default values for
properties of any class, I don't think that is something that needs to be
supported.

Removing this code is necessary to switch from caching GtkWidgets to caching
GtkStyleContexts only.

MozReview-Commit-ID: IxgM8qjfK3a

--HG--
extra : rebase_source : c5c94c19227d7e7d31c4a094bb4fb68f094ddb50
2016-11-14 16:13:50 +13:00
Kan-Ru Chen f8100451db Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm
We will use the new type for the generated IPDL message handler
prototype to make sure correct error handling method is called.

MozReview-Commit-ID: AzVbApxFGZ0
2016-11-15 04:26:00 +01:00
Stone Shih 5d6aec8c60 Bug 1315862 Part1: Stop dispatching pointer events in the system group. r=masayuki,smaug
MozReview-Commit-ID: 8Xqp3bxlRFt

--HG--
extra : rebase_source : 25afbefb19e5ae613e9e493ea2f275a36004d523
2016-11-11 18:02:37 +08:00
Kilik Kuo f041399009 Bug 1307818-[P2] Setup MediaCrypto for both in-process and out-of-process decode. r=cpearce,jchen
MozReview-Commit-ID: Ehbm2u8LeLg

--HG--
extra : rebase_source : 63ddb16545e254b468e9f72f8c4ad7c957f8b29b
2016-11-16 22:10:01 +08:00
Kilik Kuo 5d9f1e5975 Bug 1307818-[P1] Provide drmStubId for CDMProxy and instantiate {Local,Remote}MediaDrmBridge. r=cpearce,jchen
MozReview-Commit-ID: EFPn4DOZq4D

--HG--
extra : rebase_source : 7f494fe6f6c6db897b50b159fcd001f3181f15cd
2016-11-16 22:09:34 +08:00
Haik Aftandilian b98f841402 Bug 1315121 - OS X Remote printing (print_via_parent) scaled prints don't fill page; r=mconley
Send the size from PMGetAdjustedPaperRect to the child to use as the page size.
Add an Mac implementation of GetEffectivePageSize that returns the adjusted dimensions.

MozReview-Commit-ID: GgTFgBzkxTy

--HG--
extra : rebase_source : 9b6e3200698a695d3ca03f3848060083b8fe4ae6
2016-11-11 16:18:15 -08:00
Masayuki Nakano a028890899 Bug 1317906 When a key press causes a call of InsertText(), it shouldn't mark keypress as consumed but instead, should mark InsertText() caused composition r=m_kato
Currently, when InsertText() which is caused by a key press causes committing composition, it consumes keypress event.  However, Korean 2-set IME calls InsertText() two times when there is composition and key press causes inserting another character next to the composition.  In this case, current design ignores second InsertText() becuase keypress event is already consumed by the first InsertText() call.

For solving this issue safely, InsertText() should mark current key event as "dispatched composition event". Then, following InsertText() calls should cause composition events instead of keypress events since following event order is too odd:

1. keydown (currently not dispatched by TextEventDisaptcher)
2. compositionupdate
3. compositionend
4. keypress
5. keyup

with the new design this becomes:

1. keydown (currently not dispatched by TextEventDispatcher)
2. compositionupdate
3. compositionend
4. compositionstart
5. compositionupdate
6. compositionend
7. keyup

This is similar to Chromium, although, Chromium includes the second InsertText() call into the first composition, we need to fix it later due to risky.

MozReview-Commit-ID: GL42cU2WIL0

--HG--
extra : rebase_source : 2063c56166f6c9ccee25a74e1d29f94daa6b159c
2016-11-17 13:35:21 +09:00
Stone Shih 6ec033ea44 Bug 1303704 Part1: [Pointer Event] Implement prevent default behavior of pointerdown. r=masayuki
MozReview-Commit-ID: AbO5cBjIwfJ

--HG--
extra : rebase_source : c11b3c0385c28665de20a8b69100ebc33e5b47de
2016-09-20 14:33:08 +08:00
Randall Barker f7e2f57d40 Bug 1314466 - part 7, Update JNI Wrappers r=nchen 2016-11-14 16:45:23 -08:00
David Anderson e48804f907 Add a usingGPUProcess property to nsIGfxInfo. (bug 1317441 part 1, r=mattwoodrow) 2016-11-14 15:02:02 -08:00
James Willcox 7a2672f6a2 Bug 1314974 - Make GeckoView on Android work again r=jchen
--HG--
rename : mobile/android/base/java/org/mozilla/gecko/ScreenManagerHelper.java => mobile/android/geckoview/src/main/java/org/mozilla/gecko/ScreenManagerHelper.java
2016-11-14 14:55:29 -06:00
David Anderson 2c5e03e62e Don't reset devices for each tab when the compositor resets. (bug 1316788, r=rhunt) 2016-11-14 11:47:01 -08:00
Jim Chen ff3982e634 Bug 1307820 - Implement per-GeckoView messaging; r=snorp r=sebastian
Bug 1307820 - 1a. Move GeckoApp EventDispatcher to GeckoView; r=snorp

Make it a GeckoView-specific EventDispatcher instead of
GeckoApp-specific, so that GeckoView consumers can benefit from a
per-view EventDispatcher. In addition, a few events like Gecko:Ready are
moved back to the global EventDispatcher because that makes more sense.

Bug 1307820 - 1b. Don't use GeckoApp EventDispatcher during inflation; r=snorp

During layout inflation, we don't yet have GeckoView and therefore the
GeckoView EventDispatcher, so we should not register events until later,
typically during onAttachedToWindow.

Bug 1307820 - 2. Introduce GeckoBundle; r=snorp

The Android Bundle class has several disadvantages when used for holding
structured data from JS.

The most obvious one is the differentiation between int and double,
which doesn't exist in JS. So when a JS number is converted to either a
Bundle int or double, we run the risk of making a wrong conversion,
resulting in a type mismatch exception when Java uses the Bundle. This
extends to number arrays from JS.

There is one more gotcha when using arrays. When we receive an empty
array from JS, there is no way for us to determine the type of the
array, because even empty arrays in Java have types. We are forced to
pick an arbitrary type like boolean[], which can easily result in a type
mismatch exception when using the array on the Java side.

In addition, Bundle is fairly cumbersome, and we cannot access the inner
structures of Bundle from Java or JNI, making it harder to use.

With these factors in mind, this patch introduces GeckoBundle as a
better choice for Gecko/Java communication. It is almost fully
API-compatible with the Android Bundle; only the Bundle array methods
are different. It resolves the numbers problem by performing conversions
if necessary, and it is a lot more lightweight than Bundle.

Bug 1307820 - 3. Convert BundleEventListener to use GeckoBundle; r=snorp

Convert BundleEventListener from using Bundle to using GeckoBundle.
Because NativeJSContainer still only supports Bundle, we do an extra
conversion when sending Bundle messages, but eventually, as we eliminate
the use of NativeJSContainer, that will go away as well.

Bug 1307820 - 4. Introduce EventDispatcher interfaces; r=snorp

Introduce several new XPCOM interfaces for the new EventDispatcher API,
these interfaces are mostly mirrored after their Java counterparts.

* nsIAndroidEventDispatcher is the main interface for
  registering/unregistering listeners and for dispatching events from
  JS/C++.

* nsIAndroidEventListener is the interface that JS/C++ clients implement
  to receive events.

* nsIAndroidEventCallback is the interface that JS/C++ clients implement
  to receive responses from dispatched events.

* nsIAndroidView is the new interface that every window receives
  that is specific to the window/GeckoView pair. It is passed to chrome
  scripts through window arguments.

Bug 1307820 - 5. Remove EventDispatcher references from gfx code; r=snorp

EventDispatcher was used for JPZC, but NPZC doesn't use it anymore.

Bug 1307820 - 6. General JNI template improvements; r=snorp

This patch includes several improvements to the JNI templates.

* Context::RawClassRef is removed to avoid misuse, as Context::ClassRef
  should be used instead.

* Fix a compile error, in certain usages, in the DisposeNative overload
  in NativeStub.

* Add Ref::IsInstanceOf and Context::IsInstanceOf to mirror the
  JNIEnv::IsInstanceOf call.

* Add Ref::operator* and Context::operator* to provide an easy way to
  get a Context object.

* Add built-in declarations for boxed Java objects (e.g. Boolean,
  Integer, etc).

* Add ObjectArray::New for creating new object arrays of specific types.

* Add lvalue qualifiers to LocalRef::operator= and GlobalRef::operator=,
  to prevent accidentally assigning to rvalues. (e.g.
  `objectArray->GetElement(0) = newObject;`, which won't work as intended.)

Bug 1307820 - 7. Support ownership through RefPtr for native JNI objects; r=snorp

In addition to direct ownership and weak pointer ownership, add a third
ownership model where a native JNI object owns a RefPtr that holds a
strong reference to the actual C++ object. This ownership model works
well with ref-counted objects such as XPCOM objects, and is activated
through the presence of public members AddRef() and Release() in the C++
object.

Bug 1307820 - 8. Implement Gecko-side EventDispatcher; r=snorp

Add a skeletal implementation of EventDispatcher on the Gecko side.
Each widget::EventDispatcher will be associated with a Java
EventDispatcher, so events can be dispatched from Gecko to Java and vice
versa. AndroidBridge and nsWindow will implement
nsIAndroidEventDispatcher through widget::EventDispatcher.

Other patches will add more complete functionality such as
GeckoBundle/JSObject translation and support for callbacks.

Bug 1307820 - 9. Implement dispatching between Gecko/Java; r=snorp

Implement translation between JSObject and GeckoBundle, and use that for
dispatching events from Gecko to Java and vice versa.

Bug 1307820 - 10. Implement callback support; r=snorp

Implement callback support for both Gecko-to-Java events and
Java-to-Gecko events.

For Gecko-to-Java, we translate nsIAndroidEventCallback to a Java
EventCallback through NativeCallbackDelegate and pass it to the Java
listener.

For Java-to-Gecko, we translate EventCallback to a
nsIAndroidEventCallback through JavaCallbackDelegate and pass it to the
Gecko listener.  There is another JavaCallbackDelegate on the Java side
that redirects the callback to a particular thread. For example, if the
event was dispatched from the UI thread, we make sure the callback
happens on the UI thread as well.

Bug 1307820 - 11. Add BundleEventListener support for Gecko thread; r=snorp

Add support for BundleEventListener on the Gecko thread, so that we can
use it to replace any existing GeckoEventListener or NativeEventListener
implementations that require the listener be run synchronously on the
Gecko thread.

Bug 1307820 - 12. Add global EventDispatcher in AndroidBridge; r=snorp

Add an instance of EventDispatcher to AndroidBridge to act as a global
event dispatcher.

Bug 1307820 - 13. Add per-nsWindow EventDispatcher; r=snorp

Add an instance of EventDispatcher to each nsWindow through an
AndroidView object, which implements nsIAndroidView. The nsIAndroidView
is passed to the chrome script through the window argument when opening
the window.

Bug 1307820 - 14. Update auto-generated bindings; r=me

Bug 1307820 - 15. Update testEventDispatcher; r=snorp

Update testEventDispatcher to include new functionalities in
EventDisptcher.

* Add tests for dispatching events to UI/background thread through
  nsIAndroidEventDispatcher::dispatch.

* Add tests for dispatching events to UI/background thread through
  EventDispatcher.dispatch.

* Add tests for dispatching events to Gecko thread through
  EventDispatcher.dispatch.

Each kind of test exercises both the global EventDispatcher through
EventDispatcher.getInstance() and the per-GeckoView EventDispatcher
through GeckoApp.getEventDispatcher().
2016-11-14 21:29:50 +08:00
Karl Tomlinson 5ce06744be bug 1319957 don't realize widgets for their style r=stransky+263117
This was needed in GTK2 to get the style of the widget, but styles are almost
independent of widgets with GTK3, where realizing is not necessary to get the
style context.

MozReview-Commit-ID: GtL2FLDl9uA

--HG--
extra : rebase_source : 926e6b7fee9a15fe5c86be7327c60b146db11316
2016-06-21 19:07:45 +12:00
Sylvestre Ledru a4563a219e Bug 1317973 - Use auto type specifier for variable declarations to improve code readability and maintainability r=tnikkel
MozReview-Commit-ID: 5RDrGaxV3E4

--HG--
extra : rebase_source : d79b2fe895a158c7caffb12f76773fde652c86f9
2016-11-16 15:22:36 +01:00
Sylvestre Ledru 44b5e91069 Bug 1317973 - Replace default bodies of special member functions with = default; r=tnikkel
MozReview-Commit-ID: EV0tM3A26XY

--HG--
extra : rebase_source : 3941138180638f14d47c47672da0aad45a0ab301
2016-11-16 15:23:37 +01:00
Sylvestre Ledru ea79a3956e Bug 1317973 - Replace integer literals which are cast to bool. r=nical
MozReview-Commit-ID: JVWJPYkD2B2

--HG--
extra : rebase_source : 504b719149e0206b9403f1cb59fdf5f0a6c9d98a
2016-11-16 15:24:44 +01:00
Sylvestre Ledru 537da966fe Bug 1317973 - Converts for(...; ...; ...) loops to use the new range-based loops in C++11. r=nical
MozReview-Commit-ID: 8QKcHVaVtPT

--HG--
extra : rebase_source : e19d6a61e3ab78aeaeb7661d31550b00890d2e1c
2016-12-01 12:06:43 +01:00
Wes Kocher cee41d5b80 Merge inbound to central, a=merge 2016-11-11 13:56:45 -08:00
Carsten "Tomcat" Book cc5d30c616 Merge mozilla-central to mozilla-inbound
--HG--
extra : rebase_source : 658b3ffdfa71afff2d44129f50e50e2fbecbd06e
2016-11-11 16:43:07 +01:00
Haik Aftandilian eec30b1b54 Bug 1303051 - Printing Issue: Page Setup not being respected since upgrade to 48.01 on Mac; r=mconley
Adds serialization of native print settings values so
that correct page size, scaling, orientation are sent
to the child after the print dialog is displayed.

Changes the Mac print dialog code to load native
print settings from the "print.macosx.pagesetup-2"
pref and ignore what is passed in.

Overwrites the scaling percentage specified in
the print dialog when "Ignore Scaling and Shrink to
Fit Page Width" is checked.

Scaling on Nightly (remote printing) needs more work
to be done in a follow up bug.

MozReview-Commit-ID: B12ZeHuiYFJ

--HG--
extra : rebase_source : baa2a5865b29db8914fca1242af59674f9630c8e
2016-11-09 17:37:40 -08:00
Masayuki Nakano 99651541fb Bug 791300 KeyboardLayout should respect following WM_(SYS)DEADCHAR messages for supporting chained dead keys r=m_kato
Currently, KeyboardLayout doesn't support chained dead keys because probably, the initial developer didn't expect there are such keyboard layout.  Additionally, if we'd try to handle them with KeyboardLayout, it'd need to create too big and too complicated table at loading such keyboard layout.  It's really nightmare.  Therefore, this patch takes different approach.

Currently, when WM_(SYS)KEYDOWN is received, KeyboardLayout (and NativeKey) respects following WM_(SYS)CHAR.  Similarly, this patch makes KeyboardLayout respect WM_(SYS)DEADCHAR when it handles dead key.  If WM_(SYS)KEYDOWN is followed by WM_DEADCHAR, that means that the key press is in a dead key sequence and not finishing the existing dead key sequence.  Therefore, when WM_(SYS)KEYDOWN is followed by WM_(SYS)DEADCHAR, KeyboardLayout activates dead key sequence.

For supporting dead key chain, this patch makes KeyboardLayout::mActiveDeadKey and KeyboardLayout::mDeadKeyShiftState arrays.  When dead keydown message is received, KeyboardLayout appends an item to each of them.  (I.e., when the array is not empty, it's in a dead key sequence.)

When WM_(SYS)KEYUP is received, KeyboardLayout checks if it's in mActiveDeadKey.  If it's included in the array, it initializes NativeKey as a dead keyup event.

Otherwise, when non-printable key (probably) is received in a dead key sequence, KeyboardLayout doesn't handle it as a part of the dead key sequence.  For example, a modifier key may be pressed for next key.  (Even if the keyboard layout maps text input to a non-printable key, we can ignore them because such key's KeyboardEvent.key value should be decided only with the virtual keyboard.)

MozReview-Commit-ID: 9n8B0YYuKCO

--HG--
extra : rebase_source : d18ca896829274d35cc8b7744c5e1645a9e78784
2016-11-10 23:24:33 +09:00
Jan Horak cf2b65692c Bug 1308936 - Draw tooltips correctly r=karlt
Tooltip widget is made in GTK3 as following tree:
* Tooltip window
 * Horizontal Box
   * Icon (not supported by Firefox)
   * Label
Each element can be fully styled by CSS of GTK theme so we have to draw all
elements with appropriate offset and full box model.

MozReview-Commit-ID: E9yYd5UWBu4

--HG--
extra : amend_source : 99539e914e8d3fa07f6bed8a315e40c7d593f277
2016-11-11 11:31:29 +13:00
Carsten "Tomcat" Book 4b6cab91f9 merge mozilla-inbound to mozilla-central a=merge 2016-11-10 16:59:38 +01:00
David Anderson 3ffb31894f Don't access gfxPlatform from WinCompositorWidget. (bug 1316481, r=mattwoodrow) 2016-11-09 20:49:09 -08:00
Petr Sumbera 433839eccf Bug 1314904 - uname() on success can return non-negative value (not just 0). r=bsmedberg 2016-11-03 03:23:46 -07:00
Jonathan Watt 07c5338755 Bug 1313525 - Remove the nsIPrintOptions interface. r=mstange
--HG--
rename : widget/nsIPrintOptions.idl => widget/nsIPrinterEnumerator.idl
2016-10-28 00:31:14 +01:00
Carsten "Tomcat" Book 5b3af6e85f Merge mozilla-central to mozilla-inbound 2016-11-09 16:39:18 +01:00
Carsten "Tomcat" Book 846adaea6c merge mozilla-inbound to mozilla-central a=merge 2016-11-09 16:38:04 +01:00
Carsten "Tomcat" Book 1d94331de7 Backed out changeset 364305744e4c (bug 1297790) for test bustage 2016-11-09 10:26:27 +01:00
George Wright dd8ff04b54 Bug 1297790 - Add GPU process feature status to the Telemetry environment r=dvander,gfritzsche data-review=bsmedberg 2016-11-09 03:18:32 -05:00
Masatoshi Kimura 85d045c16d Bug 1313280 - Fix invalid non-UTF-8 bytes from widget/. r=jimm
MozReview-Commit-ID: 8rVh7Kbn7F

--HG--
extra : rebase_source : 94c497560156a609526393a4fc769cbbeb8c34e1
extra : source : 01d8b651c9c5b2445130d226ecc4de130d0208a6
2016-11-02 20:46:53 +09:00
Karl Tomlinson cb57489389 bug 1316165 ensure xcb_get_input_focus_reply is called to avoid leaking the reply r=lsalzman
MozReview-Commit-ID: JPi0TeKVCB5

--HG--
extra : rebase_source : e8421b3273ff281d5cf03eea5b98e28951972bd8
2016-11-09 08:56:27 +13:00
Kartikaya Gupta 7e39a2bc59 Bug 1315974 - When creating the widget layer manager, don't assume it will always be a ClientLayerManager. r=mattwoodrow
MozReview-Commit-ID: 8r037jdHJ0E

--HG--
extra : rebase_source : 5f0e406ea6eb497b72f40054ba50cf64a6bd7dfb
2016-11-08 10:42:26 -05:00
Masayuki Nakano dfec2203fe Bug 1312649 part.2 IMEInputHandler::GetVaildAttributesForMarkedText() should return non-empty array r=m_kato
Vietnamese Telex perhaps referes this result and change its behavior. When typying something, Telex starts composition on Chrome but may not behave so on Gecko.

Fortunately, Chromium just returns some attributes when validAttributesForMarkedText: of NSTextInputClient [1] but it doesn't return these styles when attributedSubstringForProposedRange: of NSTextInputClient is called (always returns non-styled plain text) [2].  Therefore, this patch does not touch IMEInputHandler::GetAttributedSubstringFromRange().

*1 <7d85f23cb0/content/browser/renderer_host/render_widget_host_view_mac.mm (2936)>
*2 <7d85f23cb0/content/browser/renderer_host/render_widget_host_view_mac.mm (3036)>

MozReview-Commit-ID: 1gPIiu4Qbud

--HG--
extra : rebase_source : 5336eea303ee157959941dcc4bda2a0931f1f532
2016-11-07 16:19:41 +09:00
Masayuki Nakano 5ddcf36aa2 Bug 1312649 part.1 TextInputHandler::InsertText() should dispatch composition events instead of keypress events when it replaces a range which is different from current selection r=m_kato
Vietnamese Telex IME handles Backspace key immediately after inputting a word even when there is no marked text.  At this time, it tries to replace the word with specific string.  In such case, our editor shouldn't remove anything at handling the Backspace keypress event.

For avoiding this issue, InserText() should dispatch a set of composition for inserting the specified text into the range.  Then, editor won't perform any action of the key.

Additionally, when a Backspace keydown tries to remove the last character of the word, Telex removes it with a composition.  At this time, it creates dummy marked text "a" and make it empty later. So, in this case, InsertText() won't be called, therefore, we need to consume the Backspace keypress when SetMarkedText() is called for preventing removing the previous character of the word.

MozReview-Commit-ID: LfeEHDWn0cZ

--HG--
extra : rebase_source : 4753262ef16bc3875754ae38e966d8512947ad89
2016-11-07 10:30:05 +09:00
James Cheng d1f91996e4 Bug 1314530 Part2 - Add isRemote flag to MediaDrmProxy::Create function to determine if it is oop case. r=cpearce
MozReview-Commit-ID: Dqf1C5nDHct

--HG--
extra : rebase_source : aa957ab7b0ac5fb50b12ab4cd4a3db5fc7273488
2016-11-07 14:01:25 +08:00
Kartikaya Gupta 54c54c7a09 Bug 1315706 - Pass a wrapper struct to various CompositorWidget functions. r=dvander
This is the first step in using these functions without having a
LayerManagerComposite at all.

MozReview-Commit-ID: 2zkuB7Ox4Ut

--HG--
extra : rebase_source : b23988275f5851a2fd30bd3e8a9931107a224c66
2016-11-07 21:16:52 -05:00
Kartikaya Gupta 57f37706cc Bug 1315477 - Add a AsBasicLayerManager() function and use instead of static_casts. r=mattwoodrow
MozReview-Commit-ID: DV6XZBEXw85

--HG--
extra : rebase_source : b82f2ea2d073292c2a9514ba8a4c2d0c8397d90a
2016-11-07 11:38:45 -05:00
Kartikaya Gupta d84df5e838 Bug 1315477 - Remove some instances of static_cast'ing to ClientLayerManager. r=mattwoodrow
MozReview-Commit-ID: 2oqoOE4gZK0

--HG--
extra : rebase_source : eb4bebeb6b79ec83a285facf7fde61ecbd705c43
2016-11-07 11:38:44 -05: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
James Cheng 0615d200fe Bug 1306572 - Part1 - Implement GeckoMediaDrm API as a glue for native CDMProxy and java impl MediaDrmBridge. r=cpearce,jchen
MozReview-Commit-ID: GUKqWvmaaFl

--HG--
extra : rebase_source : 648a4a966c71d7551fe1e52099096b750bf6adbc
2016-11-01 14:39:01 +08:00
Phil Ringnalda 0a6e7a6139 Merge m-c to m-i
MozReview-Commit-ID: FPgY4by0sMY
2016-11-03 20:05:18 -07:00
Phil Ringnalda 0f32b67e2d Merge m-i to m-c, a=merge
MozReview-Commit-ID: Hm1RxN6OaoZ
2016-11-03 19:32:48 -07:00
Lee Salzman fe5b0e4440 Bug 1314291 - use unchecked xcb PutImage requests in nsShmImage. r=karlt
MozReview-Commit-ID: 1rxvpTh5EAl
2016-11-03 20:57:08 -04:00
Kilik Kuo eb35a8ab7e Bug 1306185-[Part1] Provide Java interface to bridge Gecko's gmp-decryption-like API and MediaDrm API r=cpearce,jchen
MozReview-Commit-ID: 3jxofUxcTA9

--HG--
extra : rebase_source : c00f4d79aeca0fbee0cdf16789a7a6ceadab0317
2016-11-01 19:11:38 +08:00
Phil Ringnalda 393b414467 Merge m-i to m-c, a=merge
MozReview-Commit-ID: 48WAQwKUCpw
2016-11-02 19:28:38 -07:00
Kevin Wern 19f18efeac Bug 687787: support focusin/focusout based on webkit/blink r=smaug
Blink and webkit launch focusin after focus and focusout after blur. Despite
this contradiction with the spec, it is best to mirror this new way, as there
is little guidance or existing code to clarify implementation amiguities that
can arise from the spec.

If focus/blur is fired on a window or document, or the event triggers a change
of focus, do not fire the corresponding focusin/focusout. Otherwise, always
fire the corresponding event.

Additionally, add a mochitest and a w3c-platform-test.

MozReview-Commit-ID: AgQ8JBxKIqK
2016-10-06 21:39:53 -04:00
Chris Peterson 469de34a31 Bug 1313903 - Fix -Wmismatched-parameter-types warning in widget/cocoa/nsAppShell.mm. r=spohl
widget/cocoa/nsAppShell.mm:113:47 [-Wmismatched-parameter-types] conflicting parameter types in implementation of 'nextEventMatchingMask:untilDate:inMode:dequeue:': 'NSEventMask' (aka 'unsigned long long') vs 'NSUInteger' (aka 'unsigned long')

NSWindow's nextEventMatchingMask method expects a parameter of type NSEventMask, not NSUInteger, when building  x86_64 with SDK 10.12:

https://developer.apple.com/reference/appkit/nswindow/1419304-nexteventmatchingmask
2016-11-02 21:18:36 -07:00
Wes Kocher df5dbf81cc Merge central to inbound a=merge 2016-11-02 17:31:08 -07:00
Ryan Hunt 8ee59ed7da Bug 1313199 - Sync a device reset from GPU process to main process. r=dvander
--HG--
extra : rebase_source : 4daf0427fee802cd986d7439c0e27eddbf671311
2016-11-06 13:01:52 -06:00
Ryan Hunt fec86bdccd Bug 1313199 - Allow sending reset compositor messages over IPDl. r=dvander
--HG--
extra : rebase_source : 6d949e758d35e40702aa8e8022a6482ed7dbe280
2016-11-06 12:56:53 -06:00
Carsten "Tomcat" Book 8fb395770c Backed out changeset 12d6d9c37b2d (bug 1306185) causing lint perma failures
--HG--
extra : rebase_source : 91ec26ccd8fb9f462e97a81ce1f89169dc7c745a
2016-11-02 15:24:58 +01:00
Kilik Kuo 1a798e8329 Bug 1306185-[Part1] Provide Java interface to bridge Gecko's gmp-decryption-like API and MediaDrm API r=cpearce,jchen
MozReview-Commit-ID: 3jxofUxcTA9

--HG--
extra : rebase_source : 7469af6b253af8e52e48492cc3275a67df15a82f
2016-11-01 19:11:38 +08:00
bechen 196191c51c Bug 1286738 - part2-HardwareCodecCapabilityUtils: Add HasHWVP9() function to check the vp9 hw decoder. r=jya
MozReview-Commit-ID: 1a89GQixKrO

--HG--
extra : rebase_source : fdbc3df00ff8792c9e27a5f8fb2e9321fbde3468
2016-10-26 16:57:55 +08:00
Phil Ringnalda 56dcb2694d Merge m-i to m-c, a=merge
MozReview-Commit-ID: J2Mx0f21eBE
2016-10-31 18:35:14 -07:00
Dylan Roeh 041f83edff Bug 1262251 - Make openWindow() launch Fennec if it isn't already running. r=catalinb 2016-10-31 14:10:25 -05:00
Kartikaya Gupta cb026d2536 Bug 1313170 - Use the widget-level touch injection instead of the OS-level touch injection for some tests. r=dvander
When using the InjectTouchInput API on Windows, the API requires that the caller
keep providing input frames (by calling the API function) at least every 100ms.
If the caller fails to do so, Windows can return an ERROR_TIMEOUT and throw
away the touch sequence. In some tests, it is hard for us to make this guarantee,
because we need to wait for other events between the touchdown and touchup. For
these tests, we can use the widget-level touch injection code that we have as
a fallback for the OS-level touch injection code. The widget-level touch
injection is less representative of real-world usage but allows us to bypass
the timeout problem.

MozReview-Commit-ID: EoVUSZmERUw

--HG--
extra : rebase_source : 4f7ca1a1e6da4479d51526e8f132f5cb23fceb49
2016-10-31 10:05:15 -04:00
Adam Velebil 33caf18ccc Bug 1313565 - Convert NS_STYLE_ORIENT_* to enum class ; r=manishearth,xidorn
MozReview-Commit-ID: LHT6Aa2ojlf

--HG--
extra : rebase_source : cad726aee8e14d7ae60b899a76fcd26edb608507
2016-10-28 06:17:20 +02:00
Phil Ringnalda b6eec64324 Merge m-c to a CLOSED TREE m-i
MozReview-Commit-ID: 2JxLeQ8GYIX
2016-10-27 20:36:38 -07:00
Carsten "Tomcat" Book a15991721b Merge mozilla-central to autoland 2016-10-27 16:50:00 +02:00
Makoto Kato 57b13a9369 Bug 1312302 - Set dummy Selection during initializing TextStore. r=masayuki
When PC supports table mode, TextInputFramme.dll is loaded and it can be used for TIP.

When creating new TextStore object, selection might be nothing yet on e10s.  At this time, GetSelection will return E_FAIL since selection data isn't received yet.  If GetSelection returns error during SetFocus, TextInputFrame.dll will crash.

So we set temporary selection to avoid crash.


MozReview-Commit-ID: HyVSwvhXGJh

--HG--
extra : rebase_source : 9e4838ffc5c8d8cf0e67685c6c1da09ecba6c7a9
extra : amend_source : dda79c9380ee34c82a611fc6a6691cbe63aec63c
2016-10-25 17:53:38 +09:00
Phil Ringnalda 9fa3ebe028 Backed out changeset 582e5f96a727 (bug 1262251) for Linux serviceworker bustage 2016-10-27 18:50:12 -07:00
Jonathan Watt 6f4f6ac656 Bug 1309397 - Remove nsIPrintOptions::ShowPrintSetupDialog. r=vlad, f=myk
--HG--
extra : rebase_source : 367fd1d95303a78f1d5badfe566d481cf3360fea
2016-10-11 16:32:57 +01:00
Dylan Roeh df4c14e4bb Bug 1262251 - Make openWindow() launch Fennec if it isn't already running. r=catalinb 2016-10-27 13:58:39 -05:00
Wes Kocher cbc0a94248 Backed out changeset 0349a81229e7 (bug 1262251) for build bustage a=backout CLOSED TREE
--HG--
extra : amend_source : 68bb204192d6e3f0c2ae4287dbbf09b81f676f64
2016-10-27 11:55:12 -07:00
Ryan Hunt ad202d92b4 Bug 1304637 - Move back to using window display for basic composition paths. r=lsalzman
MozReview-Commit-ID: CutLou4qJi
2016-10-27 14:39:59 -04:00
Dylan Roeh 04eecc22e1 Bug 1262251 - Make openWindow() launch Fennec if it isn't already running. r=catalinb 2016-10-27 12:49:50 -05:00
Jan Horak c2721a5026 Bug 1310850 - Zero scrollbar size could also happen when running GTK 3.20 so we need to set the minimum size of the scrollbar to the minimum size of a thumb. r=karlt
--HG--
extra : rebase_source : eb3ebb6c343dfb09f6d8723f22d76f32f3d7da72
2016-10-25 11:27:00 -04:00
Carsten "Tomcat" Book 9031c83f32 Merge mozilla-central to autoland 2016-10-26 17:14:27 +02:00
Phil Ringnalda 0a5faee022 Merge m-c to autoland 2016-10-25 22:08:13 -07:00
Jim Chen 33170ddb0e Bug 1307816 - 15. Use eContentCommandDelete for deleting text; r=esawin
Use a separate delete command for deleting text, because using regular
composition events for deleting text doesn't seem to work well in
Facebook comment boxes.
2016-10-25 12:28:54 -04:00
Jim Chen 4413af86a7 Bug 1307816 - 14. Save composition update for later; r=esawin
Turns out the Facebook comment box doesn't work well if we send
compositions alongside set/remove span events. This patch adds back the
update composition flag, but only sends composition when necessary,
which is only right before we send key events.

Because onImeUpdateComposition is no longer associated with a separate
action, it no longer sends back a reply using AutoIMESynchronize.
2016-10-25 12:28:54 -04:00
Jim Chen 6d20bc5a00 Bug 1307816 - 13. Expand RemoveIMEComposition to allow canceling; r=esawin
Expand RemoveIMEComposition with a flag to allow canceling the
composition. Also, remove the "ideographic space" hack from before
because it's no longer applicable (the test remains so we can catch
any regressions).
2016-10-25 12:28:54 -04:00
Jim Chen d79992b10f Bug 1307816 - 7. Flush text before sending focus event; r=esawin
We used to flush the Java side text upon receiving the acknowledge-focus
event, at which point the Java side is waiting on the Gecko side.
Because of the async IME refactoring, we can no longer wait on the Java
side, so we have to flush the text early, before sending the first focus
notification. Also, the acknowledge-focus event is no longer needed as a
result.

Our call to InputMethodManager to restart input also has to changed due
to the change in calling sequence between notifyIME and
notifyIMEContext.
2016-10-25 12:28:53 -04:00
Carsten "Tomcat" Book bc8b0b30ea Backed out changeset 67c74a5cfcda (bug 1310850) for bustage 2016-10-25 10:17:34 +02:00
Jan Horak 06cdc2c9fc Bug 1310850 - Zero scrollbar size could also happen when running GTK 3.20 so we need to set the minimum size of the scrollbar to the minimum size of a thumb. r=karlt
--HG--
extra : rebase_source : e18b10da33322c2e4d936694f66788f3002669a2
2016-10-20 02:40:00 +02:00
Mantaroh Yoshinaga 3d795f2c3e Bug 1287983 part 1 - Add transitionstart/transitionrun event handlers. r=masayuki,smaug
This transitionstart and transitionrun event is defined in
editor's draft of CSS Transition Level 2.

https://drafts.csswg.org/css-transitions-2/#transition-events

MozReview-Commit-ID: 6c0GqlaOOPZ

--HG--
extra : rebase_source : 9d16572634a388da25e16096f06087e808ec57ae
2016-10-19 15:16:51 +09:00
Makoto Kato 3147d216e4 Bug 1312936 - Part 1. Use ACString for nsITranserable.getAnyTransferData. r=masayuki
MozReview-Commit-ID: L8eWccMBtVj

--HG--
extra : rebase_source : 39afc27d9b25db779e543446b791a9afd36b2788
2016-10-26 11:07:16 +09:00
Dão Gottwald 998303abfe Bug 582951 - Use CSS outline for checkbox and radio button focus indicator. r=dbaron,jimm 2016-10-22 08:28:53 +02:00
Neil Deakin 99e8db203b Bug 1287823, When a file is available in the drag data we provide, and no uri is available, get the uri of the file and use it as the text/uri-list data, r=karlt 2016-10-21 11:22:15 -04:00
Michelangelo De Simone 07411b2cc6 Bug 1310027 - Remove DOM/mobilemessage and related code. r=Ehsan
MozReview-Commit-ID: ENmSuOCdTnA

--HG--
extra : rebase_source : a178eee07034fb2aa1415b64bec1946230fd1c5e
2016-10-17 17:26:51 -07:00
Karl Tomlinson 19ee6ebe3b bug 1311604 consider block flow direction in vertical writing mode native widget layout r=jfkthame
This follows the same approach of considering block flow for all widgets
(in addition to resizers) as done for other toolkits in
https://hg.mozilla.org/mozilla-central/rev/4a65cacf8a37#l3.10

MozReview-Commit-ID: Ca3SMs1k2Tj

--HG--
extra : rebase_source : 9845e676aa2db5eecd222b7e8a678b2aecca659e
2016-10-20 17:57:55 +13:00
Carsten "Tomcat" Book 2e7511ed5a merge mozilla-inbound to mozilla-central a=merge 2016-10-20 16:47:39 +02:00
KuoE0 685b64a883 Bug 1282003 - (Part 3) Add screen ID to nsWindow and GeckoView to get the correct nsScreen and density. r=snorp
MozReview-Commit-ID: Cd9MS2I1RRQ

--HG--
extra : rebase_source : 3e557dc9bb3836cee6ecb86ddeb3c9647221195c
2016-09-29 14:23:56 +08:00
KuoE0 8ebc7fc433 Bug 1282003 - (Part 2) Add screenManagerHelper in Java. r=snorp
MozReview-Commit-ID: BLw6e7dgldt

--HG--
extra : rebase_source : ee5b4bc83e055836b5a739e519d1873252ce6b53
2016-09-23 23:03:00 +08:00
KuoE0 458ea00ba1 Bug 1282003 - (Part 1) Add display type/density info and addScreen/removeScreen function. r=snorp
MozReview-Commit-ID: 52IoWc1xevL

--HG--
extra : rebase_source : c9b0bc4bf83ff32ac952caa1f714740eb5784bb9
2016-10-03 16:23:23 +08:00
Phil Ringnalda 3e17fd7779 Merge m-i to m-c, a=merge
MozReview-Commit-ID: 6ims5jd1FU5
2016-10-19 18:29:50 -07:00
Phil Ringnalda 7fd865b93f Merge autoland to m-c, a=merge
MozReview-Commit-ID: 3nuTAHtJkkD
2016-10-19 18:25:54 -07:00
Neil Deakin 0b294f9d27 Bug 1301673, convert the image width and height to device pixels so that custom drag images are drawn at the right size, r=tn 2016-10-19 15:01:40 -04:00
Neil Deakin 8ff837e37c Bug 1301673, properly handle disabled drag feedback image and failed drag feedbacks in content processes, r=tn 2016-10-19 15:01:39 -04:00
Neil Deakin 4ca7f3cb5f Bug 1301673, use the correct coordinates when drag feedback is disabled or fails; this allows the drag feedback on Mac to appear as a grey rectangle, r=tn 2016-10-19 15:01:39 -04:00
Neil Deakin 68ac95182c Bug 1301673, use device pixels for the supplied drag position and the computed dragrectangle, r=tn 2016-10-19 15:01:39 -04:00
Neil Deakin 9bb6b7baf0 Bug 1301673, don't confuse different coordinate types in image offsets, r=tn 2016-10-19 15:01:39 -04:00
Neil Deakin 12c7b914da Bug 1301673, use more specific coordinates for screen position in drag calculations, r=tn 2016-10-19 15:01:39 -04:00
Carsten "Tomcat" Book 036a7c4324 merge mozilla-inbound to mozilla-central a=merge 2016-10-19 17:02:38 +02:00
Mason Chang cd84eadb22 Bug 1258751: Delete the CoreGraphics backend. r=mstange 2016-10-18 23:22:44 -04:00
Phil Ringnalda 8377010e6a Merge m-c to m-i
MozReview-Commit-ID: Ihd0iacfcIW

--HG--
rename : devtools/.eslintrc => devtools/.eslintrc.js
2016-10-18 19:45:02 -07:00
Phil Ringnalda 6c91017f20 Merge m-i to m-c, a=merge
MozReview-Commit-ID: FA9OZyjP59N
2016-10-18 19:36:18 -07:00
Martin Stransky 4eaa17a7e4 Bug 1282753 - implement combo boxes by WidgetCache, r=?karlt
MozReview-Commit-ID: FrMbxT2D5p0

--HG--
extra : rebase_source : 4a9205597101ca283a05e92a15c0a1d188dae7cd
2016-10-19 15:13:25 +13:00
Kartikaya Gupta d9a7400119 Bug 1311030 - Remove more code unused since the deletion of JPZ. r=snorp
MozReview-Commit-ID: 1p8aWShTrQf

--HG--
extra : rebase_source : 49d83e86dc9c2b38c7486a04bd7e830d165c34db
2016-10-18 12:34:25 -04:00
Carsten "Tomcat" Book b9686db6da Merge mozilla-central to mozilla-inbound 2016-10-18 10:44:04 +02:00
Carsten "Tomcat" Book 5c08a87874 merge mozilla-inbound to mozilla-central a=merge 2016-10-18 10:38:37 +02:00
stefanh@inbox.com 4efcc85bc7 Bug 1310808 - Make use of the new 10.12 constant NSVisualEffectMaterialSelection. r=mstange. 2016-10-17 22:45:02 +02:00
James Willcox 632ab10f06 Bug 1308534 - Use e10s in GeckoView r=jchen 2016-10-17 15:05:35 -05:00
Makoto Kato 7912a1dc20 Bug 1310453 - Check whether aUri isn't created. r=jimm
Since aUri is nullptr, Firefox will crash on shutdown.


MozReview-Commit-ID: E5ENWsjK7Px

--HG--
extra : rebase_source : d52a301ec0d313f303a98f1d463f9f1120ea44c8
2016-10-17 12:17:42 +09:00
Markus Stange b8a39a4df8 Bug 1292201 - Accumulate integer deltas for scroll wheel events. r=masayuki
MozReview-Commit-ID: 9nhSngI3AAM

--HG--
extra : rebase_source : 8059bcb481be53f2c51991c484447d756ed3e6e2
2016-10-18 14:05:55 -04: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
Carsten "Tomcat" Book 2a3218cb9a Merge mozilla-central to autoland 2016-10-18 10:45:57 +02:00
Kevin Chen 95701b6cbf Bug 1309829 - Remove redundant IdentifyTextureHost call. r=dvander 2016-10-17 20:33:00 +02:00
Chris Peterson e78e23c03d Bug 1310399 - Fix -Wshadow warning in widget/nsBaseWidget.cpp. r=jimm
widget/nsBaseWidget.cpp:1970:14 [-Wshadow] declaration shadows a local variable
2016-10-17 22:37:52 -07:00
John Lin ce8e57f426 Bug 1295106 - Part 1: abstract payload in Sample to support both Java byte array and shared memory. r=snorp
MozReview-Commit-ID: GFcwSyHlR4

--HG--
extra : rebase_source : 442487fcee43d86f974f87c69466e5fbb5d2793f
2016-09-08 11:20:34 +08:00
Eric Rahm 1eb4ae7e0d Bug 1309698 - Remove usage of nsISupportsArray from nsIDragService. r=smaug 2016-10-18 11:56:20 -07:00
Phil Ringnalda 9b9c9ee29e Merge m-c to m-i
MozReview-Commit-ID: A38LFPPm6QL
2016-10-19 18:38:50 -07:00
Ehsan Akhgari d5d66e16c9 Bug 1311214 - Remove b2g OMX encoder/decoder; r=cpearce 2016-10-19 17:44:31 -04:00
Carsten "Tomcat" Book d6850a3a86 merge mozilla-inbound to mozilla-central a=merge 2016-10-17 11:19:02 +02:00
Eric Rahm 52edf921c1 Bug 1310017 - Remove nsISupportsArray usage from nsITransferable and nsIFormatConverter. r=smaug
This converts |nsITransferable.flavorsTransferableCanExport| and
|nsITransferable.flavorsTransferableCanImport| to return a |nsIArray|.

|nsIFormatConverter.getInputDataFlavors| and
|nsIFormatConverter.getOutputDataFlavors| are updated as well.
2016-10-16 12:43:56 -07:00
William Chen 2e57e150b9 Bug 862395 - Part 1: Add requireInteraction property to web notifications. r=baku
--HG--
extra : rebase_source : c1519b7a501427b67638fd3ddacb2ce4e06c3c98
2016-10-12 17:27:40 -07:00
Jan Horak b1c2f1be2f Bug 1289148 - Fixing scrollbar metrics for GTK >= 3.20 r=karlt
The Gtk 3.20 scrollbars has moved towards usual box model. The scrollbar,
trough,thumb and scrollbar button can now have margin, padding and border set,
different for each direction (ie. left, right, bottom, top). The scrollbar
metrics become ignored in Gtk 3.20 and later.

* Draw scrollbar element [for GTK 3.20+]
* The border for scrollbar, trough, thumb and scrollbar buttons is newly
  calculated as margin+padding+border [for GTK 3.20+].
* The margin is subtracted for scrollbar, trough and sb buttons during paint
  function [for GTK 3.6+]
* All scrollbar widget's borders transfered from
  nsNativeThemeGTK::GetWidgetBorder to the moz_gtk_get_widget_border.
* Added helper function NativeThemeToGtkTheme for mapping mozilla's widget type
  to the gtk widget type.
* Scrollbar troughs are now drawn even when there is not enough room for
  the thumb [GTK 3.20+]

MozReview-Commit-ID: jd2q67gKM1

--HG--
extra : rebase_source : ecc8b85401845113d84c6c5a48219a0c3d4f8de3
2016-10-17 11:37:13 +13:00
stefanh@inbox.com 3a689f8b9a Bug 1192053 - Implement NS_THEME_MAC_SOURCE_LIST_SELECTION and NS_THEME_MAC_ACTIVE_SOURCE_LIST_SELECTION. r=mstange. 2016-10-14 22:45:29 +02:00
Eric Rahm ce530b28b5 Bug 1310023 - Use nsIArray rather than nsISupportsArray for window args in widget. r=froydnj
This just swaps out the usage nsISupportsArray with nsIArray when opening a
window. |nsIWindowWatcher.OpenWindow| supports both interfaces, so no changes
are needed there.
2016-10-14 12:51:17 -07:00
Sebastian Hengst 3c1524e5e0 Bug 1306137 - remove b2g camera code: Remove dom/camera/ and code which depends on it. r=aosmond,bkelly
MozReview-Commit-ID: 7gvZrDtmcZP

--HG--
extra : rebase_source : 31f06357fdc36566465668f55bf3fcc5402fe9e0
2016-10-04 20:16:28 +02:00
Sebastian Hengst 2bd34f750f Bug 1306137 - remove b2g camera code: Remove MOZ_B2G_CAMERA. r=aosmond
MozReview-Commit-ID: D207i9boeTJ

--HG--
extra : rebase_source : 390031b8a74ba145008328129079dcb0dee5a6c1
2016-09-28 21:10:32 +02:00
Carsten "Tomcat" Book b474cb6353 merge mozilla-inbound to mozilla-central a=merge 2016-10-14 11:59:12 +02:00
Makoto Kato 29c2ee2410 Bug 1287278 - dropmaker-icon direction is wrong in RTL locale on Linux. r=karlt
Change only right arrows to left arrows when direction is RTL

MozReview-Commit-ID: 3mMCAGCIUYP

--HG--
extra : rebase_source : 54fb3bc6455f2117cb0ddae06c4f895f58204d0f
extra : amend_source : 1398b66e4184c71755801c94ecdc2c22ab961ec0
extra : histedit_source : c17fae6ae45191a685af4274d5a6789fb040d691
2016-10-14 13:37:08 +09:00
Masayuki Nakano 6ca17cf78c Bug 1309515 part.2 TextInputHandler::InsertText() should consume current key event when it dispatches composition events r=m_kato
The cause of bug 1309515 is, HandleKeyDownEvent() dispatches eKeyPress events even after InsertText() dispatches composition events via InsertTextAsCommittingComposition().

Therefore, this patch consumes the current key event after dispatching composition events.

Note that for consistency with Windows, InsertText() should use eKeyPress events rather than composition events at least in this case.  However, changing the behavior has some risk.  So, we should fix this bug with the safest hack for uplift.

MozReview-Commit-ID: 7FYR5N2lATe

--HG--
extra : rebase_source : 4485bd76a68567e8c20a84c2fbca78c626f592c5
2016-10-13 13:18:58 +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
Carsten "Tomcat" Book f3a0e0a65e Merge mozilla-central to autoland
--HG--
extra : rebase_source : ed5871b95beeb440688654cc676c5438c2898ccf
2016-10-13 12:00:23 +02:00
Masayuki Nakano 141de4c2d1 Bug 1304620 part.5 ContentCacheInParent should store the latest composition start offset with mCompositionStartInChild r=m_kato
When ContentCacheInParent receives eCompositionStart, it temporarily sets mCompositionStart to selection start offset.  However, if there is a composition in the remote process, the selection start is caret position in the composition string.  Therefore, it's not useful information.  Instead, the composition start offset should be used because around there are a lot of information.

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

MozReview-Commit-ID: DksPNEsi6Ec

--HG--
extra : rebase_source : bcf2946273d24a4c37c33fa18a321660115e3fb6
2016-10-12 21:52:01 +09:00
Masayuki Nakano 610b4b4a2e Bug 1304620 part.4 ContentCacheInParent::mCompositionStart should be set to better value for mWidgetHasComposition state r=m_kato
ContentCacheInParent::mCompositionStart was set to ContentCacheInChild::mCompositionStart without any check.  However, that's clearly wrong approach.  For example, when the remote process handles some composition events after eCompositionCommit(AsIs) in the parent process, mCompositionStart is valid offset even after mWidgetHasComposition is set to false.  Similarly, even after parent process sends eCompositionStart, the remote process may send invalid offset for mCompositionStart due to no composition in it.

For solving this issue, ContentCacheInParent should check mWidgetHasComposition.

If it's true and coming offset is valid, let's use it (even if mPendingCompositionCount is 2 or bigger since widget shouldn't use WidgetQueryContentEvent when there are some pending events).

If the coming offset is invalid but mWidgetHasComposition is false, let's use selection start instead because HandleQueryContentEvent() can work around selection start offset only.

Otherwise, i.e., mWidgetHasComposition is false, we should always set mCompositionStart to invalid offset.

MozReview-Commit-ID: IONU0Cbhpil

--HG--
extra : rebase_source : 05ae9eb0e7a0bb63b65be7a54103eb798274c8ff
2016-10-12 22:05:09 +09:00
Masayuki Nakano 7a5e29e854 Bug 1304620 part.3 The start offset of TextComposition instance in the parent process shouldn't be updated with older composition in the remote process r=m_kato
When ContentCacheInParent receives content information from the remote process, it notifies TextComposition of the latest composition start offset in the remote process.  However, the information may be older composition's, i.e., the composition was already committed in the process but is still being handled by the remote process.  TextComposition shouldn't work with such obsolete information.

Note that TextComposition instance is created and destroyed when WidgetCompostionEvent is handled by IMEStateManager.  Then, TextComposition instance guarantees that all following composition events for a composition are sent to same EventTarget (including TabParent).  So, TextComposition is always synced with a composition in widget.

MozReview-Commit-ID: 78NuvpE2rPx

--HG--
extra : rebase_source : 3ffbf2513750f4b940bfedd19a8b191f28611115
2016-10-12 22:03:16 +09:00
Masayuki Nakano 06d6d7a752 Bug 1304620 part.2 ContentCacheInParent should manage if there is pending composition in the remote process r=m_kato
If the remote process is busy or user restarts composition too quickly, there could be 2 or more compositions in ContentCache.  For managing such case, ContentCacheInParent should manage the pending composition count which is increased at dispatching eCompositionStart event to the remote process and decreased at receiving eCompositionCommit(AsIs) event from the remote process.

MozReview-Commit-ID: KbTsK20NEZD

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

MozReview-Commit-ID: 5k05IXMgJxw

--HG--
extra : rebase_source : 69be70f22fb9b9dd6125ce390026b0740bd6de8f
2016-10-12 16:42:28 +09:00
Marcos Caceres 4b5d873c87 Bug 1309099 - Web manifest's window.oninstall renamed onappinstalled. r=qdot
MozReview-Commit-ID: lcX2LGGOrw
2016-10-12 12:45:35 -07:00
Carsten "Tomcat" Book 2844380bd4 merge mozilla-inbound to mozilla-central a=merge
--HG--
rename : media/gmp-clearkey/0.1/ClearKeyCencParser.cpp => media/psshparser/PsshParser.cpp
rename : media/gmp-clearkey/0.1/ClearKeyCencParser.h => media/psshparser/PsshParser.h
rename : media/gmp-clearkey/0.1/gtest/TestClearKeyUtils.cpp => media/psshparser/gtest/TestPsshParser.cpp
rename : media/gmp-clearkey/0.1/gtest/moz.build => media/psshparser/gtest/moz.build
2016-10-12 12:01:48 +02:00
Kartikaya Gupta 52890eb2b5 Bug 1309228 - Now that the width and height arguments are no longer needed in browser.js, remove those too. r=rbarker
MozReview-Commit-ID: 8F4qiq1qEmk

--HG--
extra : rebase_source : 497851c3b85b00858e493e282157003af75f3ac4
2016-10-11 10:17:28 -04:00
Neil Deakin 0c8bb0cb96 Bug 1308479, use [NSApp isFullKeyboardAccessEnabled] to get keyboard access state, r=mstange 2016-10-11 14:13:36 -04:00
Stone Shih 1063903850 Bug 1304315 - [Pointer Event] Make all pointer events's default width/height to 1. f=bevistseng. r=smaug,masayuki. 2016-09-21 16:26:21 +08:00
Makoto Kato 4e4bd01aae Bug 1033483 - Send bidi keyboard Information on direction-changed signal. r=karlt
Using direction-changed signal, we detect keyboard change for bidi.

When system uses fcitx's IM and ibus's arabic keyboard layout, this signal might fire often when switching layout and gdk_keymap_get_direction might return invalid bidi information.  But I think that this is rare issue.  Most users don't use Firefox Arabic version (it means that bidi.browser.ui = true) with ibus Arabic layout and fcitx CJK IM.  Since there is no GTK3 API to get current IM module, I cannot find workaround for this.

MozReview-Commit-ID: DL8uUXJFWYz

--HG--
extra : rebase_source : a93e8969b878d01048726e03b24f362ead7e2059
2016-10-10 16:42:03 +09:00
Edwin Flores 5f13602836 Bug 1292311 - Blacklist nVidia drivers <= 187.45 for frequent shutdown crashes - r=jrmuizel 2016-10-13 10:54:16 +01:00
Masayuki Nakano 2fb6e9eb1c Bug 1303273 part.9 NativeKey::mFollowingCharMsgs should be AutoTArray r=m_kato
Similarly, NativeKey is a stack class and mFollowingCharMsgs which stores following char messages of WM_(SYS)KEYDOWN should be AutoTArray for preventing to use heap at handling inputs with usual keyboard layout.

5 is enough size for handling usual keyboard layout because we support only 5 or less characters per dead key sequence.

MozReview-Commit-ID: IphcIOmPW0C

--HG--
extra : rebase_source : 74ce6f9fef73df4b9bbccbbdd713470ff7357889
2016-10-07 14:38:14 +09:00
Masayuki Nakano af0bc7745d Bug 1303273 part.8 UniCharsAndModifiers should use nsAutoString and AutoTArray to store characters and modifiers r=m_kato
Fortunately, UniCharsAndModifiers instances are only in stack.  Therefore, we can make it a stack class and use nsAutoString and AutoTArray for not using heap at handling inputs from usual keyboard layouts.

MozReview-Commit-ID: 9ZPbdjGst64

--HG--
extra : rebase_source : 06a21c20575747591c6bf1a55dff7e6e38884333
2016-10-07 14:32:45 +09:00
Masayuki Nakano 2c0c609d8a Bug 1303273 part.7 Hide UniCharsAndModifiers::mLength and make its type size_t r=m_kato
MozReview-Commit-ID: 7QLdmgopOwG

--HG--
extra : rebase_source : 89d077c20edab65ac7c2c637b2cda94b6d1ab30d
2016-10-07 13:39:15 +09:00
Masayuki Nakano c20c0f333a Bug 1303273 part.6 Hide UniCharsAndModifiers::mModifiers r=m_kato
MozReview-Commit-ID: 9KKN5mlJadg

--HG--
extra : rebase_source : a3109eca884b3795f4a069bc5c694d1f495ef86b
2016-10-07 13:25:40 +09:00
Masayuki Nakano 0d6b0439b4 Bug 1303273 part.5 UniCharsAndModifiers should hide mChars r=m_kato
Now, we have an security issue.  mCommittedCharsAndModifiers may be initialized with multiple WM_(SYS)CHAR messages.  However, if it's generated by odd (or malicious) middleware, mCommittedCharsAndModifiers may be overflown because it has only fixed array.  For fixing this issue, first, we should hide the members for making the users not depend on the design of UniCharsAndModifiers.

This patch changes UniCharsAndModifiers to a class and hiding mChars and adding |CharAt() const|.

MozReview-Commit-ID: 5EjrIhmCdE4

--HG--
extra : rebase_source : a3dc68998f5f177582addd8587c4da86b2d17b3b
2016-10-07 12:04:49 +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