Commit 3cd29235 authored by Xiaohui Chen's avatar Xiaohui Chen Committed by Commit Bot

assistant: only refresh token when running

Before we may set auth token while assistant manager is creating, now
we wait for it to reach running state to refresh token.  This may happen
during start and settings toggles.

Bug: b:113591813
Test: locally compile
Change-Id: Iccc672844734be3a25d4b6cc761cc16cbe8e0d34
Reviewed-on: https://chromium-review.googlesource.com/1197844Reviewed-by: default avatarMuyuan Li <muyuanli@chromium.org>
Commit-Queue: Xiaohui Chen <xiaohuic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587818}
parent bb025549
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include "services/service_manager/public/cpp/service_context.h" #include "services/service_manager/public/cpp/service_context.h"
#if BUILDFLAG(ENABLE_CROS_LIBASSISTANT) #if BUILDFLAG(ENABLE_CROS_LIBASSISTANT)
#include "ash/public/interfaces/constants.mojom.h"
#include "chromeos/assistant/internal/internal_constants.h" #include "chromeos/assistant/internal/internal_constants.h"
#include "chromeos/services/assistant/assistant_manager_service_impl.h" #include "chromeos/services/assistant/assistant_manager_service_impl.h"
#include "chromeos/services/assistant/assistant_settings_manager_impl.h" #include "chromeos/services/assistant/assistant_settings_manager_impl.h"
...@@ -261,21 +260,26 @@ void Service::GetAccessTokenCallback(const base::Optional<std::string>& token, ...@@ -261,21 +260,26 @@ void Service::GetAccessTokenCallback(const base::Optional<std::string>& token,
} }
DCHECK(assistant_manager_service_); DCHECK(assistant_manager_service_);
if (assistant_manager_service_->GetState() == switch (assistant_manager_service_->GetState()) {
AssistantManagerService::State::STOPPED) { case AssistantManagerService::State::STOPPED:
assistant_manager_service_->Start( assistant_manager_service_->Start(
token.value(), token.value(),
base::BindOnce( base::BindOnce(
[](scoped_refptr<base::SingleThreadTaskRunner> task_runner, [](scoped_refptr<base::SingleThreadTaskRunner> task_runner,
base::OnceCallback<void()> callback) { base::OnceCallback<void()> callback) {
task_runner->PostTask(FROM_HERE, std::move(callback)); task_runner->PostTask(FROM_HERE, std::move(callback));
}, },
main_thread_task_runner_, main_thread_task_runner_,
base::BindOnce(&Service::FinalizeAssistantManagerService, base::BindOnce(&Service::FinalizeAssistantManagerService,
weak_ptr_factory_.GetWeakPtr()))); weak_ptr_factory_.GetWeakPtr())));
DVLOG(1) << "Request Assistant start"; DVLOG(1) << "Request Assistant start";
} else { break;
assistant_manager_service_->SetAccessToken(token.value()); case AssistantManagerService::State::RUNNING:
assistant_manager_service_->SetAccessToken(token.value());
break;
case AssistantManagerService::State::STARTED:
// in the process of starting, no need to do anything.
break;
} }
token_refresh_timer_->Start(FROM_HERE, expiration_time - base::Time::Now(), token_refresh_timer_->Start(FROM_HERE, expiration_time - base::Time::Now(),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment