Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1398)

Unified Diff: chrome/browser/chromeos/system/input_device_settings_impl_ozone.cc

Issue 1883453002: mash: Use a stub InputController implementation when running mustash. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/system/input_device_settings_impl_ozone.cc
diff --git a/chrome/browser/chromeos/system/input_device_settings_impl_ozone.cc b/chrome/browser/chromeos/system/input_device_settings_impl_ozone.cc
index c0ad7b67fdb38101dde0b3e21761ac0e67cc5ab1..2ed1c3dbe5f6057e0aae60e5ad539484f5ab0e3f 100644
--- a/chrome/browser/chromeos/system/input_device_settings_impl_ozone.cc
+++ b/chrome/browser/chromeos/system/input_device_settings_impl_ozone.cc
@@ -9,6 +9,10 @@
#include "ui/ozone/public/input_controller.h"
#include "ui/ozone/public/ozone_platform.h"
+#if defined(MOJO_SHELL_CLIENT)
+#include "content/public/common/mojo_shell_connection.h"
+#endif
+
namespace chromeos {
namespace system {
@@ -17,6 +21,15 @@ namespace {
InputDeviceSettings* g_instance = nullptr;
InputDeviceSettings* g_test_instance = nullptr;
+std::unique_ptr<ui::InputController> CreateStubInputControllerIfNecessary() {
+#if defined(MOJO_SHELL_CLIENT)
+ content::MojoShellConnection* conn = content::MojoShellConnection::Get();
+ if (conn && conn->UsingExternalShell())
+ return ui::CreateStubInputController();
+#endif
+ return nullptr;
+}
+
// InputDeviceSettings for Linux without X11 (a.k.a. Ozone).
class InputDeviceSettingsImplOzone : public InputDeviceSettings {
public:
@@ -43,6 +56,10 @@ class InputDeviceSettingsImplOzone : public InputDeviceSettings {
void SetInternalTouchpadEnabled(bool enabled) override;
void SetTouchscreensEnabled(bool enabled) override;
+ // TODO(sad): A stub input controller is used when running inside mus.
+ // http://crbug.com/601981
+ std::unique_ptr<ui::InputController> stub_controller_;
+
// Cached InputController pointer. It should be fixed throughout the browser
// session.
ui::InputController* input_controller_;
@@ -55,10 +72,13 @@ class InputDeviceSettingsImplOzone : public InputDeviceSettings {
};
InputDeviceSettingsImplOzone::InputDeviceSettingsImplOzone()
- : input_controller_(
- ui::OzonePlatform::GetInstance()->GetInputController()) {
+ : stub_controller_(CreateStubInputControllerIfNecessary()),
+ input_controller_(
+ stub_controller_
+ ? stub_controller_.get()
+ : ui::OzonePlatform::GetInstance()->GetInputController()) {
// Make sure the input controller does exist.
- DCHECK(ui::OzonePlatform::GetInstance()->GetInputController());
+ DCHECK(input_controller_);
}
void InputDeviceSettingsImplOzone::TouchpadExists(
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698