summaryrefslogtreecommitdiffstats
path: root/components/pairing
diff options
context:
space:
mode:
authordzhioev <dzhioev@chromium.org>2014-09-19 10:09:18 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-19 17:09:47 +0000
commit958e55816c7f9960588b3da7021cd37ec910846b (patch)
tree5802e12df712f1abd5628c3b5299f600b498ebaf /components/pairing
parent1fce1ab55d2128dcb3bcf9945b4c8b388a354484 (diff)
downloadchromium_src-958e55816c7f9960588b3da7021cd37ec910846b.zip
chromium_src-958e55816c7f9960588b3da7021cd37ec910846b.tar.gz
chromium_src-958e55816c7f9960588b3da7021cd37ec910846b.tar.bz2
Host pairing OOBE starts at the right time.
The following behaviour implmented: * If "new-remora-oobe" switch is not set, OOBE starts with with the regular "remora" UI. At the same time wizard controller we start to listen for incoming connection from shark controller. If connection is established, we switch UI to the new one. * Otherwise, we launch the new UI from the beginning of OOBE. Several small issues fixed as well. BUG=405150 TEST=manually Review URL: https://codereview.chromium.org/528803002 Cr-Commit-Position: refs/heads/master@{#295721}
Diffstat (limited to 'components/pairing')
-rw-r--r--components/pairing/shark_connection_listener.cc46
-rw-r--r--components/pairing/shark_connection_listener.h48
2 files changed, 94 insertions, 0 deletions
diff --git a/components/pairing/shark_connection_listener.cc b/components/pairing/shark_connection_listener.cc
new file mode 100644
index 0000000..ce63aa0
--- /dev/null
+++ b/components/pairing/shark_connection_listener.cc
@@ -0,0 +1,46 @@
+// Copyright 2014 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 "components/pairing/shark_connection_listener.h"
+
+#include "base/logging.h"
+#include "base/threading/thread_restrictions.h"
+#include "components/pairing/bluetooth_host_pairing_controller.h"
+
+namespace pairing_chromeos {
+
+SharkConnectionListener::SharkConnectionListener(OnConnectedCallback callback)
+ : callback_(callback) {
+ controller_.reset(new BluetoothHostPairingController());
+ controller_->AddObserver(this);
+ controller_->StartPairing();
+}
+
+SharkConnectionListener::~SharkConnectionListener() {
+ if (controller_)
+ controller_->RemoveObserver(this);
+}
+
+void SharkConnectionListener::PairingStageChanged(Stage new_stage) {
+ if (new_stage == HostPairingController::STAGE_WAITING_FOR_CODE_CONFIRMATION) {
+ controller_->RemoveObserver(this);
+ callback_.Run(controller_.Pass());
+ callback_.Reset();
+ }
+}
+
+void SharkConnectionListener::ConfigureHost(
+ bool accepted_eula,
+ const std::string& lang,
+ const std::string& timezone,
+ bool send_reports,
+ const std::string& keyboard_layout) {
+ NOTREACHED();
+}
+
+void SharkConnectionListener::EnrollHost(const std::string& auth_token) {
+ NOTREACHED();
+}
+
+} // namespace pairing_chromeos
diff --git a/components/pairing/shark_connection_listener.h b/components/pairing/shark_connection_listener.h
new file mode 100644
index 0000000..e2e786b
--- /dev/null
+++ b/components/pairing/shark_connection_listener.h
@@ -0,0 +1,48 @@
+// Copyright 2014 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.
+
+#ifndef COMPONENTS_PAIRING_SHARK_CONNECTION_LISTENER_H_
+#define COMPONENTS_PAIRING_SHARK_CONNECTION_LISTENER_H_
+
+#include <string>
+
+#include "base/callback.h"
+#include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
+#include "components/pairing/host_pairing_controller.h"
+
+namespace pairing_chromeos {
+
+// Listens for incoming connection from shark controller. If connection
+// is established, invokes callback passing HostPairingController
+// as an argument.
+class SharkConnectionListener : public HostPairingController::Observer {
+ public:
+ typedef base::Callback<void(scoped_ptr<HostPairingController>)>
+ OnConnectedCallback;
+
+ explicit SharkConnectionListener(OnConnectedCallback callback);
+ virtual ~SharkConnectionListener();
+
+ private:
+ typedef HostPairingController::Stage Stage;
+
+ // HostPairingController::Observer overrides:
+ virtual void PairingStageChanged(Stage new_stage) OVERRIDE;
+ virtual void ConfigureHost(bool accepted_eula,
+ const std::string& lang,
+ const std::string& timezone,
+ bool send_reports,
+ const std::string& keyboard_layout) OVERRIDE;
+ virtual void EnrollHost(const std::string& auth_token) OVERRIDE;
+
+ OnConnectedCallback callback_;
+ scoped_ptr<HostPairingController> controller_;
+
+ DISALLOW_COPY_AND_ASSIGN(SharkConnectionListener);
+};
+
+} // namespace pairing_chromeos
+
+#endif // COMPONENTS_PAIRING_SHARK_CONNECTION_LISTENER_H_