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

293 Коммитов

Автор SHA1 Сообщение Дата
Emilio Cobos Álvarez 55361bf402 Bug 1660660 - Fix deadlock in gamepad initialization code. r=cmartin
StartGamepadMonitoring() can end up in AddGamepad, and acquire the lock
again on the same thread, effectively dead-locking.

This is a regression from bug 1657404. Relevant stack:

    (gdb) bt
    #0  0x00007fd19bace801 in clock_nanosleep@GLIBC_2.2.5 () at /lib64/libc.so.6
    #1  0x00007fd19bad4157 in nanosleep () at /lib64/libc.so.6
    #2  0x00007fd19bad408e in sleep () at /lib64/libc.so.6
    #3  0x00007fd195233e87 in ah_crap_handler(int) (signum=11) at /home/emilio/src/moz/gecko-4/toolkit/xre/nsSigHandlers.cpp:95
    #4  0x00007fd1952165c4 in nsProfileLock::FatalSignalHandler(int, siginfo_t*, void*) (signo=11, info=0x7fd14abb9db0, context=0x7fd14abb9c80) at /home/emilio/src/moz/gecko-4/toolkit/profile/nsProfileLock.cpp:177
    #5  0x00007fd1964973b2 in WasmTrapHandler(int, siginfo_t*, void*) (signum=11, info=<optimized out>, context=<optimized out>) at /home/emilio/src/moz/gecko-4/js/src/wasm/WasmSignalHandlers.cpp:978
    #6  0x00007fd19bf3ca90 in <signal handler called> () at /lib64/libpthread.so.0
    #7  mozilla::detail::MutexImpl::mutexLock() (this=<optimized out>) at /home/emilio/src/moz/gecko-4/mozglue/misc/Mutex_posix.cpp:118
    #8  mozilla::detail::MutexImpl::lock() (this=<optimized out>) at /home/emilio/src/moz/gecko-4/mozglue/misc/Mutex_posix.cpp:142
    #9  0x00007fd190cc795a in mozilla::OffTheBooksMutex::Lock() (this=0x7fd136649398) at /home/emilio/src/moz/gecko-4/xpcom/threads/BlockingResourceBase.cpp:318
    #10 0x00007fd19326e65e in mozilla::detail::BaseAutoLock<mozilla::Mutex&>::BaseAutoLock(mozilla::Mutex&) (this=<optimized out>, aLock=...) at /home/emilio/src/moz/gecko-4/obj-debug-no-sccache/dist/include/mozilla/Mutex.h:159
    #11 mozilla::dom::GamepadPlatformService::NotifyGamepadChange<mozilla::dom::GamepadAdded>(unsigned int, mozilla::dom::GamepadAdded const&) (this=0x7fd136649380, aIndex=1, aInfo=...)
        at /home/emilio/src/moz/gecko-4/dom/gamepad/GamepadPlatformService.cpp:65
    #12 0x00007fd193269178 in mozilla::dom::GamepadPlatformService::AddGamepad(char const*, mozilla::dom::GamepadMappingType, mozilla::dom::GamepadHand, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)
        (this=0x7fd136649380, aID=<optimized out>, aMapping=mozilla::dom::GamepadMappingType::_empty, aHand=mozilla::dom::GamepadHand::_empty, aNumButtons=11, aNumAxes=8, aHaptics=0, aNumLightIndicator=0, aNumTouchEvents=0)
        at /home/emilio/src/moz/gecko-4/dom/gamepad/GamepadPlatformService.cpp:96
    #13 0x00007fd19326de4a in (anonymous namespace)::LinuxGamepadService::AddDevice(mozilla::udev_device*) (this=<optimized out>, dev=<optimized out>) at /home/emilio/src/moz/gecko-4/dom/gamepad/linux/LinuxGamepad.cpp:139
    #14 0x00007fd19326a156 in (anonymous namespace)::LinuxGamepadService::ScanForDevices() (this=<optimized out>) at /home/emilio/src/moz/gecko-4/dom/gamepad/linux/LinuxGamepad.cpp:188
    #15 (anonymous namespace)::LinuxGamepadService::Startup() (this=<optimized out>) at /home/emilio/src/moz/gecko-4/dom/gamepad/linux/LinuxGamepad.cpp:233
    #16 mozilla::dom::StartGamepadMonitoring() () at /home/emilio/src/moz/gecko-4/dom/gamepad/linux/LinuxGamepad.cpp:334
    #17 0x00007fd193269c6b in mozilla::dom::GamepadPlatformService::AddChannelParent(mozilla::dom::GamepadEventChannelParent*) (this=<optimized out>, aParent=<optimized out>)
        at /home/emilio/src/moz/gecko-4/dom/gamepad/GamepadPlatformService.cpp:225
    #18 0x00007fd19326d175 in mozilla::dom::GamepadEventChannelParent::Init() (this=0x7fd136e76a00) at /home/emilio/src/moz/gecko-4/dom/gamepad/ipc/GamepadEventChannelParent.cpp:50
    #19 0x00007fd1913ba3a6 in mozilla::ipc::BackgroundParentImpl::RecvPGamepadEventChannelConstructor(mozilla::dom::PGamepadEventChannelParent*) (this=0x7fd13f888000, aActor=0x0)
        at /home/emilio/src/moz/gecko-4/ipc/glue/BackgroundParentImpl.cpp:1109
    #20 0x00007fd1917c7da1 in mozilla::ipc::PBackgroundParent::OnMessageReceived(IPC::Message const&) (this=0x7fd13f888000, msg__=...) at PBackgroundParent.cpp:4967
    #21 0x00007fd1913ea71d in mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) (this=0x7fd13f8880f8, aProxy=0x7fd13ff48140, aMsg=...)

Differential Revision: https://phabricator.services.mozilla.com/D87967
2020-08-24 17:06:58 +00:00
Chris Martin 17152b83bf Bug 1609068 - Part 2: Add Mac OS Xbox wireless gamepads remapping. r=baku
Original Author: Daosheng Mu

Differential Revision: https://phabricator.services.mozilla.com/D84918
2020-08-20 17:57:42 +00:00
Chris Martin de0e8c0812 Bug 1609068 - Part 1: Replace map with unordered_map for more efficiently querying remapped game buttons. r=baku
Original author: Daosheng Mu

Differential Revision: https://phabricator.services.mozilla.com/D84917
2020-08-20 17:40:32 +00:00
Daosheng Mu db07868613 Bug 1539178 - Add a threshold on gamepad axes to avoid gamepads be unintentionally activated. r=cmartin,baku
Differential Revision: https://phabricator.services.mozilla.com/D86287
2020-08-10 18:14:39 +00:00
Chris Martin c563fec3f1 Bug 1657404 - Refactor gamepad monitoring - Part 2 r=daoshengmu
Substitute and eliminate MaybeStopGamepadMonitoring(). The logic to do this
is so dependent on GamepadPlatformService that it should probably just be a
member.

Differential Revision: https://phabricator.services.mozilla.com/D86267
2020-08-07 13:27:55 +00:00
Chris Martin 1e641f2551 Bug 1657404 - Refactor gamepad monitoring - Part 1 r=daoshengmu
The starting/stopping of gamepad monitoring is probably a decision that
should be made at the level of the GamepadPlatformService, not in the IPC
actor. This is step 1, later I will expand some of these functions because
it makes the code easier to understand.

Differential Revision: https://phabricator.services.mozilla.com/D86266
2020-08-07 13:32:17 +00:00
Daosheng Mu 13641acbb5 Bug 1647504 - Implement XInputGetState extention for supporting xbox guide button. r=cmartin
Differential Revision: https://phabricator.services.mozilla.com/D80584
2020-08-06 23:07:03 +00:00
Chris Martin c946e6eaf9 Bug 1656349 - Refactor the IPC lifetimes for the PGamepadEventChannel object r=daoshengmu
Change the GamepadEventChannel so it is fully-initialized by the IPC
constuctor and needs no separate "init" message, and so its completely
destroyed by the ActorDestroy() message so it needs no "cleanup" message.

This simplifies the object lifetime, as well as unifies the IPC error vs
clean shutdown paths.

Differential Revision: https://phabricator.services.mozilla.com/D85481
2020-08-04 21:27:53 +00:00
Sylvestre Ledru 843f943758 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D85678
2020-08-02 15:29:15 +00:00
Butkovits Atila 64a8612aa9 Backed out changeset 562a834a3692 (bug 1656349) for build bustages at BackgroundParentImpl. CLOSED TREE 2020-08-01 01:02:44 +03:00
Chris Martin 583e1cc437 Bug 1656349 - Refactor the IPC lifetimes for the PGamepadEventChannel object r=daoshengmu
Change the GamepadEventChannel so it is fully-initialized by the IPC
constuctor and needs no separate "init" message, and so its completely
destroyed by the ActorDestroy() message so it needs no "cleanup" message.

This simplifies the object lifetime, as well as unifies the IPC error vs
clean shutdown paths.

Differential Revision: https://phabricator.services.mozilla.com/D85481
2020-07-31 19:40:55 +00:00
Daosheng Mu cc8ccbd66b Bug 1648865 - Convert Gamepad trigger axis values to button values. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D81428
2020-07-23 18:13:24 +00:00
Simon Giesecke cd8b8939b9 Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Marcos Cáceres a20f1c126d Bug 1591329 - Require secure context for getGamePads() and events r=kip
Differential Revision: https://phabricator.services.mozilla.com/D80444
2020-06-26 20:01:28 +00:00
Jean-Yves Avenard 87438519f0 Bug 1637500 - P2. Rename methods as they are not always dealing with "threads". r=froydnj
Before P1, GetCurrentThreadSerialEventTarget would have always returned the same data as NS_GetCurrentThread, making the comment incorrect Now it will properly return the running TaskQueue if any.

This change of name more clearly exposes what they are doing, as we aren't always dealing with threads directly; but a nsISerialEventTarget

Differential Revision: https://phabricator.services.mozilla.com/D80354
2020-06-23 05:05:36 +00:00
Daosheng Mu 433f122bcc Bug 1538805 - Send GamepadAdded events to the later GamepadEventChannels. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D74769
2020-05-23 03:14:42 +00:00
Aaron Klotz 7a8903706b Bug 1637452: Part 17 - Fix JNI includes in dom; r=nika
In this bug we're moving away from monolithic JNI headers to class-specific
headers so that we don't have to rebuild the world every time we make a change
to a JNI interface.

Differential Revision: https://phabricator.services.mozilla.com/D75380
2020-05-15 17:06:28 +00:00
Simon Giesecke 200e2d6504 Bug 1626570 - Improve handling of copying arrays in dom/gamepad/. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D73649
2020-05-11 08:20:52 +00:00
Daosheng Mu 9f2be88da1 Bug 1027207 - Dealing Playstation3 controller btn/axis remapping. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D72983
2020-05-06 01:43:20 +00:00
Daosheng Mu 2b669b7fa8 Bug 1631635 - Implement IsPositionEmulated for XRInputSource. r=kip,imanol
Differential Revision: https://phabricator.services.mozilla.com/D71678
2020-04-21 11:17:34 +00:00
Daosheng Mu 595afe46cc Bug 1617023 - Part 1: Integrating Gamepad with XRInputSource. r=kip
Differential Revision: https://phabricator.services.mozilla.com/D67431

--HG--
extra : moz-landing-system : lando
2020-04-08 03:23:34 +00:00
Stefan Hindli 585cd46052 Backed out 3 changesets (bug 1617023) for causing mass bustages CLOSED TREE
Backed out changeset 2ff0eabe84e9 (bug 1617023)
Backed out changeset 8cadc6705690 (bug 1617023)
Backed out changeset 3a6247b39244 (bug 1617023)
2020-04-08 04:26:40 +03:00
Daosheng Mu 91ad9bdf58 Bug 1617023 - Part 1: Integrating Gamepad with XRInputSource. r=kip
Differential Revision: https://phabricator.services.mozilla.com/D67431

--HG--
extra : moz-landing-system : lando
2020-04-07 22:55:41 +00:00
Daosheng Mu 7f945fd97b Bug 1611310 - Implement XRInputSource module. r=kip
Differential Revision: https://phabricator.services.mozilla.com/D67430

--HG--
extra : moz-landing-system : lando
2020-04-07 23:49:47 +00:00
Stefan Hindli 3b135390cf Backed out changeset 717f97c0d871 (bug 1611310) for causing mass build bustages CLOSED TREE 2020-04-08 01:46:32 +03:00
Stefan Hindli 21c4b1ce50 Backed out 5 changesets (bug 1617023, bug 1627141, bug 1626812) for causing being related to Bug 1611310 CLOSED TREE
Backed out changeset b975de50682b (bug 1627141)
Backed out changeset 481325c44e80 (bug 1626812)
Backed out changeset 546b90fd1689 (bug 1617023)
Backed out changeset f54ac49bbc0a (bug 1617023)
Backed out changeset 1ebf382e7133 (bug 1617023)
2020-04-08 01:45:47 +03:00
Daosheng Mu 184166d359 Bug 1617023 - Part 1: Integrating Gamepad with XRInputSource. r=kip
Differential Revision: https://phabricator.services.mozilla.com/D67431

--HG--
extra : moz-landing-system : lando
2020-04-07 22:24:43 +00:00
Daosheng Mu e2b211270f Bug 1611310 - Implement XRInputSource module. r=kip
Differential Revision: https://phabricator.services.mozilla.com/D67430

--HG--
extra : moz-landing-system : lando
2020-04-07 21:26:01 +00:00
Daosheng Mu c56864f05a Bug 1627753 - Using signed long for index attribute in Gamepad. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D69854

--HG--
extra : moz-landing-system : lando
2020-04-07 09:13:50 +00:00
Eric Rahm 53f27d440b Bug 1626450 - Remove stray references to "nsAutoPtr.h" in dom/. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D69121

--HG--
extra : moz-landing-system : lando
2020-04-03 21:05:26 +00:00
Simon Giesecke aaf6cb4e75 Bug 1617628 - Hide nsBaseHashtable Put overloads in nsRefPtrHashtable subclass. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63899

--HG--
extra : moz-landing-system : lando
2020-02-25 17:03:36 +00:00
Simon Giesecke ed593cfea0 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/gamepad. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D63168

--HG--
extra : moz-landing-system : lando
2020-02-20 16:03:33 +00:00
Daosheng Mu 568789dad6 Bug 1606562 - Fixes XInput thumb value ranges. r=jmathies
sThumbXXX in XInput is a short and its value range is between -32768 and 32767.

Differential Revision: https://phabricator.services.mozilla.com/D60876

--HG--
extra : moz-landing-system : lando
2020-02-12 02:16:13 +00:00
Edgar Chen 9e846bd48a bug 1610296 - Rename TypedArray_base::ComputeLengthAndData to TypedArray_base::ComputeState; r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D60514

--HG--
extra : moz-landing-system : lando
2020-01-23 03:22:06 +00:00
Daosheng Mu 33fd265be2 Bug 1604405 - Replace gamepad button array index with axis array index in Mac OS. r=baku
- Fixes wrong usage of button array index for axis id
- Added more warning and conditions for avoiding crashes happen
- Corrected aIndex vs aButton when checking button count.

Differential Revision: https://phabricator.services.mozilla.com/D57423

--HG--
extra : moz-landing-system : lando
2019-12-18 15:50:23 +00:00
Daosheng Mu 29a45f1bde Bug 1579492 - Unregister input report callback when removing Cocoa gamepads. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D56256

--HG--
extra : moz-landing-system : lando
2019-12-16 08:26:37 +00:00
Daosheng Mu 509204cd2d Bug 1593841 - Using Gamepad axis array index as its index in default remapper on Mac OS. r=baku
We notice for some unknown gamepads, their axes don't follow the kAxisUsageMin rule, so we should choose to
use array index as the axis id.

Differential Revision: https://phabricator.services.mozilla.com/D56058

--HG--
extra : moz-landing-system : lando
2019-12-06 19:19:50 +00:00
Gabriele Svelto ace6d1063f Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442

--HG--
extra : moz-landing-system : lando
2019-12-06 09:24:56 +00:00
Dorel Luca a381d5c96d Backed out changeset f6e53d1c6518 (bug 1600545) for Android build bustage. CLOSED TREE 2019-12-04 17:32:27 +02:00
Gabriele Svelto bc9290f767 Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442

--HG--
extra : moz-landing-system : lando
2019-12-04 15:01:19 +00:00
Kearwood "Kip" Gilbert a88d971183 Bug 1598483 - Expand XR and Gamepad related structs and enums to support WebXR r=daoshengmu,baku
The structs in moz_external_api.h need to be expanded to support WebXR.

We should land these changes separately to enable working on WebXR features and FxR Android-side code in parallel.

The changes have been carefully made, additive-ly, to avoid breaking existing code before the rest of the WebXR implementation has landed.

Differential Revision: https://phabricator.services.mozilla.com/D54216

--HG--
extra : moz-landing-system : lando
2019-11-29 11:30:36 +00:00
Gabriele Svelto 10d41866a5 Bug 1585156 - Remove useless inclusions of nsIDOMWindow.h and nsIDOMWindowUtils.h r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D47678

--HG--
extra : moz-landing-system : lando
2019-09-30 22:06:47 +00:00
Daosheng Mu a7ca387905 Bug 1579492 - Check if nullptr in DarwinGamepadService::ReportChangedCallback(). r=baku
Differential Revision: https://phabricator.services.mozilla.com/D45135

--HG--
extra : moz-landing-system : lando
2019-09-09 11:58:01 +00:00
Imanol Fernandez dea3eb36d1 Bug 1574996 - Fix broken VRPose arrays. r=kip
Fix broken array and simplify Pose::SetFloat32Array (remove bCreate parameter)

Differential Revision: https://phabricator.services.mozilla.com/D42541

--HG--
extra : moz-landing-system : lando
2019-08-20 18:34:24 +00:00
Imanol Fernandez 5c78386c22 Bug 1569605 - Reuse WebVR FrameData Float32Arrays. r=kip,rbarker
Summary Do not recreate WebVR FrameData Float32Arrays every frame.:

Differential Revision: https://phabricator.services.mozilla.com/D39683

--HG--
extra : moz-landing-system : lando
2019-07-30 00:23:38 +00:00
Nicholas Nethercote 18fae65f38 Bug 1563139 - Remove StaticPrefs.h. r=glandium
This requires replacing inclusions of it with inclusions of more specific prefs
files.

The exception is that StaticPrefsAll.h, which is equivalent to StaticPrefs.h,
and is used in `Codegen.py` because doing something smarter is tricky and
suitable for a follow-up. As a result, any change to StaticPrefList.yaml will
still trigger recompilation of all the generated DOM bindings files, but that's
still a big improvement over trigger recompilation of every file that uses
static prefs.

Most of the changes in this commit are very boring. The only changes that are
not boring are modules/libpref/*, Codegen.py, and ServoBindings.toml.

Differential Revision: https://phabricator.services.mozilla.com/D39138

--HG--
extra : moz-landing-system : lando
2019-07-26 01:10:23 +00:00
Daosheng Mu 43693c08b6 Bug 1523353 - Part 2: DS4 gamepad multitouch and lightindicator support on Mac OS. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D37463

--HG--
extra : moz-landing-system : lando
2019-07-15 07:37:19 +00:00
Daosheng Mu 3087968487 Bug 1523353 - Part 1: Remapping MacOS gamepads to standard gamepads. r=baku
Follow the same rule that how we did remapping on Windows at Bug 1545180. Besides, dpad on MacOS needs to be accessed as axis values, we also did this way on Windows.

https://bugzilla.mozilla.org/show_bug.cgi?id=1523353#c2

Differential Revision: https://phabricator.services.mozilla.com/D37144

--HG--
extra : moz-landing-system : lando
2019-07-15 07:36:36 +00:00
Sylvestre Ledru 131d0c6a02 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D35622

--HG--
extra : moz-landing-system : lando
2019-07-06 08:18:28 +00:00
Daosheng Mu 3d724ce105 Bug 1555484 - Clean DS4 GamepadTouchState when stopping touching. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D33209

--HG--
extra : moz-landing-system : lando
2019-06-19 17:30:33 +00:00