blob: 0f5933cc8a8b7877cd429eb012d5b1e16e08da95 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.h"
#include "base/bind.h"
#include "base/values.h"
#include "content/public/browser/web_ui.h"
namespace chromeos {
namespace settings {
PointerHandler::PointerHandler() {}
PointerHandler::~PointerHandler() {}
void PointerHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback(
"initializePointerSettings",
base::BindRepeating(&PointerHandler::HandleInitialize,
base::Unretained(this)));
}
void PointerHandler::OnJavascriptAllowed() {
if (!pointer_device_observer_) {
pointer_device_observer_.reset(new system::PointerDeviceObserver());
pointer_device_observer_->Init();
}
pointer_device_observer_->AddObserver(this);
pointer_device_observer_->CheckDevices();
}
void PointerHandler::OnJavascriptDisallowed() {
pointer_device_observer_->RemoveObserver(this);
}
void PointerHandler::TouchpadExists(bool exists) {
FireWebUIListener("has-touchpad-changed", base::Value(exists));
}
void PointerHandler::MouseExists(bool exists) {
FireWebUIListener("has-mouse-changed", base::Value(exists));
}
void PointerHandler::HandleInitialize(const base::ListValue* args) {
AllowJavascript();
}
} // namespace settings
} // namespace chromeos