| Index: chrome/browser/chromeos/arc/extensions/fake_arc_support.cc
|
| diff --git a/chrome/browser/chromeos/arc/extensions/fake_arc_support.cc b/chrome/browser/chromeos/arc/extensions/fake_arc_support.cc
|
| index 2b2063ac1c8d92f58eea59e8d079e6ccbe820a82..dd103e6b6fd83cab75a9164325bb028eee5af4ef 100644
|
| --- a/chrome/browser/chromeos/arc/extensions/fake_arc_support.cc
|
| +++ b/chrome/browser/chromeos/arc/extensions/fake_arc_support.cc
|
| @@ -24,8 +24,11 @@ FakeArcSupport::FakeArcSupport(ArcSupportHost* support_host)
|
|
|
| FakeArcSupport::~FakeArcSupport() {
|
| // Ensure that message host is disconnected.
|
| - if (native_message_host_)
|
| - Close();
|
| + if (native_message_host_) {
|
| + support_host_->UnsetMessageHost(
|
| + static_cast<ArcSupportMessageHost*>(native_message_host_.get()));
|
| + native_message_host_.reset();
|
| + }
|
| }
|
|
|
| void FakeArcSupport::Open(Profile* profile) {
|
| @@ -44,8 +47,21 @@ void FakeArcSupport::Close() {
|
| native_message_host_.reset();
|
| }
|
|
|
| -void FakeArcSupport::ClickAgreeButton() {
|
| +void FakeArcSupport::EmulateAuthCodeResponse(const std::string& auth_code) {
|
| + DCHECK_EQ(ui_page_, ArcSupportHost::UIPage::LSO);
|
| + base::DictionaryValue message;
|
| + message.SetString("event", "onAuthSucceeded");
|
| + message.SetString("code", auth_code);
|
| + OnMessage(message);
|
| +}
|
| +
|
| +void FakeArcSupport::EmulateAuthFailure() {
|
| DCHECK(native_message_host_);
|
| + DCHECK_EQ(ui_page_, ArcSupportHost::UIPage::LSO);
|
| + native_message_host_->OnMessage("{\"event\": \"onAuthFailed\"}");
|
| +}
|
| +
|
| +void FakeArcSupport::ClickAgreeButton() {
|
| DCHECK_EQ(ui_page_, ArcSupportHost::UIPage::TERMS);
|
|
|
| base::DictionaryValue message;
|
| @@ -53,13 +69,7 @@ void FakeArcSupport::ClickAgreeButton() {
|
| message.SetBoolean("isMetricsEnabled", metrics_mode_);
|
| message.SetBoolean("isBackupRestoreEnabled", backup_and_restore_mode_);
|
| message.SetBoolean("isLocationServiceEnabled", location_service_mode_);
|
| -
|
| - std::string message_string;
|
| - if (!base::JSONWriter::Write(message, &message_string)) {
|
| - NOTREACHED();
|
| - return;
|
| - }
|
| - native_message_host_->OnMessage(message_string);
|
| + OnMessage(message);
|
| }
|
|
|
| void FakeArcSupport::ClickRetryButton() {
|
| @@ -68,6 +78,12 @@ void FakeArcSupport::ClickRetryButton() {
|
| native_message_host_->OnMessage("{\"event\": \"onRetryClicked\"}");
|
| }
|
|
|
| +void FakeArcSupport::ClickSendFeedbackButton() {
|
| + DCHECK(native_message_host_);
|
| + DCHECK_EQ(ui_page_, ArcSupportHost::UIPage::ERROR);
|
| + native_message_host_->OnMessage("{\"event\": \"onSendFeedbackClicked\"}");
|
| +}
|
| +
|
| void FakeArcSupport::PostMessageFromNativeHost(
|
| const std::string& message_string) {
|
| std::unique_ptr<base::DictionaryValue> message =
|
| @@ -124,4 +140,14 @@ void FakeArcSupport::CloseChannel(const std::string& error_message) {
|
| NOTREACHED();
|
| }
|
|
|
| +void FakeArcSupport::OnMessage(const base::DictionaryValue& message) {
|
| + DCHECK(native_message_host_);
|
| + std::string message_string;
|
| + if (!base::JSONWriter::Write(message, &message_string)) {
|
| + NOTREACHED();
|
| + return;
|
| + }
|
| + native_message_host_->OnMessage(message_string);
|
| +}
|
| +
|
| } // namespace arc
|
|
|