diff options
author | dzhioev <dzhioev@chromium.org> | 2014-09-19 10:09:18 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-19 17:09:47 +0000 |
commit | 958e55816c7f9960588b3da7021cd37ec910846b (patch) | |
tree | 5802e12df712f1abd5628c3b5299f600b498ebaf /components | |
parent | 1fce1ab55d2128dcb3bcf9945b4c8b388a354484 (diff) | |
download | chromium_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')
-rw-r--r-- | components/pairing.gypi | 2 | ||||
-rw-r--r-- | components/pairing/shark_connection_listener.cc | 46 | ||||
-rw-r--r-- | components/pairing/shark_connection_listener.h | 48 |
3 files changed, 96 insertions, 0 deletions
diff --git a/components/pairing.gypi b/components/pairing.gypi index 6feb729..6fea47c 100644 --- a/components/pairing.gypi +++ b/components/pairing.gypi @@ -35,6 +35,8 @@ 'pairing/message_buffer.h', 'pairing/proto_decoder.cc', 'pairing/proto_decoder.h', + 'pairing/shark_connection_listener.cc', + 'pairing/shark_connection_listener.h', ], }, { 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_ |