New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 767309 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Email to this user bounced
Closed: Nov 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Device Service: InputServiceLinux

Project Member Reported by ke...@intel.com, Sep 21 2017

Issue description

Besides hid_service and hid_connections, there is an InputServiceLinux that also located in //device/hid folder. It also needs to be mojofied.

Tasks:

1) Define a Mojo interface for //device/hid/input_service_linux{.cc|.h}
2) Update //device/hid/public/interfaces, convert clients of InputServiceLinux to use the new added mojo interface.
3) Move it from //device/hid to //services/device/hid.

 

Comment 1 by ke...@intel.com, Sep 21 2017

Status: Started (was: Untriaged)
Mojoifying InputServiceLinux likely means we can also remove InputServiceProxy because we no longer need to manually post tasks between threads.

Comment 3 by ke...@intel.com, Sep 21 2017

Yes exactly. Will remove InputServiceProxy. All clients will hold a InterfacePtr instead of task_runner.

Thanks:)
Project Member

Comment 4 by bugdroid1@chromium.org, Oct 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f3248cf54e35995397fd8eec3d0cfc948af48084

commit f3248cf54e35995397fd8eec3d0cfc948af48084
Author: Ke He <ke.he@intel.com>
Date: Wed Oct 04 20:00:04 2017

Add input_service.mojom.

Define the mojom::InputDeviceInfo. Simply replace the old
native InputDeviceInfo. Make sure all the existed test cases pass.

In next CL we'll do the mojofication. The InputServiceProxy will
be removed then.

BUG= 767309 

Change-Id: Ic307a794592e74d73fb016c56ec24c027441c41b
Reviewed-on: https://chromium-review.googlesource.com/676944
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
Commit-Queue: Ke He <ke.he@intel.com>
Cr-Commit-Position: refs/heads/master@{#506491}
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/chrome/browser/chromeos/device/input_service_proxy.cc
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/chrome/browser/chromeos/device/input_service_proxy.h
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/chrome/browser/chromeos/device/input_service_proxy_browsertest.cc
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/chrome/browser/chromeos/device/input_service_test_helper.cc
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/chrome/browser/chromeos/device/input_service_test_helper.h
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/chrome/browser/chromeos/login/bluetooth_host_pairing_browsertest.cc
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/chrome/browser/chromeos/login/hid_detection_browsertest.cc
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/chrome/browser/chromeos/login/screens/hid_detection_screen.cc
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/chrome/browser/chromeos/login/screens/hid_detection_screen.h
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/chrome/browser/chromeos/login/screens/hid_detection_screen_browsertest.cc
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/components/pairing/bluetooth_host_pairing_controller.cc
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/components/pairing/bluetooth_host_pairing_controller.h
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/device/hid/fake_input_service_linux.cc
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/device/hid/fake_input_service_linux.h
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/device/hid/input_service_linux.cc
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/device/hid/input_service_linux.h
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/device/hid/input_service_linux_unittest.cc
[modify] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/device/hid/public/interfaces/BUILD.gn
[add] https://crrev.com/f3248cf54e35995397fd8eec3d0cfc948af48084/device/hid/public/interfaces/input_service.mojom

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a8a4682fdc89641f84f729b0651784a1409155bf

commit a8a4682fdc89641f84f729b0651784a1409155bf
Author: Ke He <ke.he@intel.com>
Date: Tue Oct 17 13:00:00 2017

Save connected devices in HidDetectionScreen.

This is a preparation CL for mojofication on InputServiceLinux.

Before this CL, the HidDetectionScreen always query the InputServiceProxy
for connected devices. As a part of InputServiceLinux mojofication,
the InputServiceProxy will be removed. All clients will be converted to
use the InputDeviceManager mojo Interfaces.

In HidDetectionScreen, to avoid calling mojo interface frequently and to
make the logic of creating/deleting the InterfacePtr<InputDeviceManager>
more simple, it should get and maintain the list of devices instead of
always doing query.

To test, go through the following cases:
1. If a Chrome OS device has sufficient input devices (mouse, keyboard),
the HID detection screen should be skipped.
2. If a Chrome OS device doesn't have sufficient input devices (mouse, 
keyboard), the HID detection screen should show up.
3. Put a few Bluetooth devices in pairing mode, and when HID detection
screen shows up, make sure the detection screen can detect them and
pair with them.
4. Show HID detection screen first, and then put a few Bluetooth devices
in pairing mode, make sure the detection screen can detect the new
Bluetooth devices and pair with them.
5. On HID detection screen, test Chrome OS device can pair with several
Bluetooth devices and then go forward to the Network screen and login
the user session, test the Bluetooth is still power on and the
Bluetooth devices can still be used.
6. On HID detection screen, connect a wire keyboard and mouse (not
Bluetooth one), and go forward to the Network screen, test that the
Bluetooth should be powered off.

BUG= 767309 

Change-Id: I518b9a322ca162a861a241261f780d065e3e946e
Reviewed-on: https://chromium-review.googlesource.com/680500
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Xiaoqian Dai <xdai@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Ke He <ke.he@intel.com>
Cr-Commit-Position: refs/heads/master@{#509372}
[modify] https://crrev.com/a8a4682fdc89641f84f729b0651784a1409155bf/chrome/browser/chromeos/login/screens/hid_detection_screen.cc
[modify] https://crrev.com/a8a4682fdc89641f84f729b0651784a1409155bf/chrome/browser/chromeos/login/screens/hid_detection_screen.h

Project Member

Comment 6 by bugdroid1@chromium.org, Oct 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/749d2584138a653686af0a2923cbd91cf0480df9

commit 749d2584138a653686af0a2923cbd91cf0480df9
Author: Ke He <ke.he@intel.com>
Date: Tue Oct 31 05:44:57 2017

InputServiceLinux mojofication.

Mojofy the InputServiceLinux, convert all its clients to use mojo
interfaces.

Removed the useless InputServiceProxy, rewrite the FakeInputServiceLinux
to make sure the browsertests fit for using mojo.

Make the InputServiceLinux owned by Device Service.

BUG= 767309 

Change-Id: I32d9d61adb996e41df5d7a80c9a5c4ef16c87fa6

TBR=sky@chromium.org

Change-Id: I32d9d61adb996e41df5d7a80c9a5c4ef16c87fa6
Reviewed-on: https://chromium-review.googlesource.com/701323
Commit-Queue: Ke He <ke.he@intel.com>
Reviewed-by: Xiaoqian Dai <xdai@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512754}
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/chrome/browser/chromeos/BUILD.gn
[delete] https://crrev.com/8bb99981f32c5166550c7a08f2a924226204085c/chrome/browser/chromeos/device/DEPS
[delete] https://crrev.com/8bb99981f32c5166550c7a08f2a924226204085c/chrome/browser/chromeos/device/input_service_proxy.cc
[delete] https://crrev.com/8bb99981f32c5166550c7a08f2a924226204085c/chrome/browser/chromeos/device/input_service_proxy.h
[delete] https://crrev.com/8bb99981f32c5166550c7a08f2a924226204085c/chrome/browser/chromeos/device/input_service_proxy_browsertest.cc
[delete] https://crrev.com/8bb99981f32c5166550c7a08f2a924226204085c/chrome/browser/chromeos/device/input_service_test_helper.cc
[delete] https://crrev.com/8bb99981f32c5166550c7a08f2a924226204085c/chrome/browser/chromeos/device/input_service_test_helper.h
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/chrome/browser/chromeos/login/bluetooth_host_pairing_browsertest.cc
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/chrome/browser/chromeos/login/hid_detection_browsertest.cc
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/chrome/browser/chromeos/login/screens/hid_detection_screen.cc
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/chrome/browser/chromeos/login/screens/hid_detection_screen.h
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/chrome/browser/chromeos/login/screens/hid_detection_screen_browsertest.cc
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/chrome/browser/chromeos/login/wizard_controller.cc
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/chrome/test/BUILD.gn
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/components/pairing/BUILD.gn
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/components/pairing/DEPS
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/components/pairing/bluetooth_host_pairing_controller.cc
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/components/pairing/bluetooth_host_pairing_controller.h
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/components/pairing/shark_connection_listener.cc
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/components/pairing/shark_connection_listener.h
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/content/public/app/mojo/content_browser_manifest.json
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/device/hid/BUILD.gn
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/device/hid/fake_input_service_linux.cc
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/device/hid/fake_input_service_linux.h
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/device/hid/input_service_linux.cc
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/device/hid/input_service_linux.h
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/device/hid/input_service_linux_unittest.cc
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/device/hid/public/interfaces/input_service.mojom
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/services/device/device_service.cc
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/services/device/device_service.h
[modify] https://crrev.com/749d2584138a653686af0a2923cbd91cf0480df9/services/device/manifest.json

Comment 7 by ke...@intel.com, Nov 9 2017

Status: Fixed (was: Started)
Project Member

Comment 8 by bugdroid1@chromium.org, May 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7590a1827c762fd0594946a8071a68d5c841e92d

commit 7590a1827c762fd0594946a8071a68d5c841e92d
Author: Ke He <ke.he@intel.com>
Date: Tue May 22 01:16:55 2018

Mechanically correct the MACROS in header files of HID.

BUG= 767309 

Change-Id: I13700674bcbf809aed77aa28d24b792bfe2aefa5
Reviewed-on: https://chromium-review.googlesource.com/1067244
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Ke He <ke.he@intel.com>
Cr-Commit-Position: refs/heads/master@{#560442}
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/hid_connection.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/hid_connection_impl.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/hid_connection_linux.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/hid_connection_mac.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/hid_connection_win.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/hid_device_info.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/hid_manager_impl.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/hid_service.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/hid_service_linux.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/hid_service_mac.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/hid_service_win.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/input_service_linux.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/mock_hid_connection.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/mock_hid_service.h
[modify] https://crrev.com/7590a1827c762fd0594946a8071a68d5c841e92d/services/device/hid/test_report_descriptors.h

Sign in to add a comment