Commit c9b5d530 authored by yileili's avatar yileili Committed by Commit Bot

Refresh access token only for auth error.

Bug: b:114756954
Test: Manual
Change-Id: I1d58906771ad789232d8c01f6de06ea44ad8e3f8
Reviewed-on: https://chromium-review.googlesource.com/1226527
Commit-Queue: Yilei Li <yileili@google.com>
Reviewed-by: default avatarXiaohui Chen <xiaohuic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592467}
parent 364ea97b
...@@ -642,6 +642,14 @@ void AssistantManagerServiceImpl::OnNotificationRemoved( ...@@ -642,6 +642,14 @@ void AssistantManagerServiceImpl::OnNotificationRemoved(
weak_factory_.GetWeakPtr(), grouping_key)); weak_factory_.GetWeakPtr(), grouping_key));
} }
void AssistantManagerServiceImpl::OnCommunicationError(int error_code) {
main_thread_task_runner_->PostTask(
FROM_HERE,
base::BindOnce(
&AssistantManagerServiceImpl::OnCommunicationErrorOnMainThread,
weak_factory_.GetWeakPtr(), error_code));
}
void AssistantManagerServiceImpl::OnVoiceInteractionSettingsEnabled( void AssistantManagerServiceImpl::OnVoiceInteractionSettingsEnabled(
bool enabled) { bool enabled) {
assistant_enabled_ = enabled; assistant_enabled_ = enabled;
...@@ -888,6 +896,12 @@ void AssistantManagerServiceImpl::OnNotificationRemovedOnMainThread( ...@@ -888,6 +896,12 @@ void AssistantManagerServiceImpl::OnNotificationRemovedOnMainThread(
[grouping_key](auto* ptr) { ptr->OnRemoveNotification(grouping_key); }); [grouping_key](auto* ptr) { ptr->OnRemoveNotification(grouping_key); });
} }
void AssistantManagerServiceImpl::OnCommunicationErrorOnMainThread(
int error_code) {
if (IsAuthError(error_code))
service_->RequestAccessToken();
}
void AssistantManagerServiceImpl::OnRecognitionStateChangedOnMainThread( void AssistantManagerServiceImpl::OnRecognitionStateChangedOnMainThread(
assistant_client::ConversationStateListener::RecognitionState state, assistant_client::ConversationStateListener::RecognitionState state,
const assistant_client::ConversationStateListener::RecognitionResult& const assistant_client::ConversationStateListener::RecognitionResult&
......
...@@ -124,6 +124,7 @@ class AssistantManagerServiceImpl ...@@ -124,6 +124,7 @@ class AssistantManagerServiceImpl
bool IsSettingSupported(const std::string& setting_id) override; bool IsSettingSupported(const std::string& setting_id) override;
bool SupportsModifySettings() override; bool SupportsModifySettings() override;
void OnNotificationRemoved(const std::string& grouping_key) override; void OnNotificationRemoved(const std::string& grouping_key) override;
void OnCommunicationError(int error_code) override;
// Last search source will be cleared after it is retrieved. // Last search source will be cleared after it is retrieved.
std::string GetLastSearchSource() override; std::string GetLastSearchSource() override;
...@@ -171,6 +172,7 @@ class AssistantManagerServiceImpl ...@@ -171,6 +172,7 @@ class AssistantManagerServiceImpl
void OnShowNotificationOnMainThread( void OnShowNotificationOnMainThread(
const mojom::AssistantNotificationPtr& notification); const mojom::AssistantNotificationPtr& notification);
void OnNotificationRemovedOnMainThread(const std::string& grouping_id); void OnNotificationRemovedOnMainThread(const std::string& grouping_id);
void OnCommunicationErrorOnMainThread(int error_code);
void OnRecognitionStateChangedOnMainThread( void OnRecognitionStateChangedOnMainThread(
assistant_client::ConversationStateListener::RecognitionState state, assistant_client::ConversationStateListener::RecognitionState state,
const assistant_client::ConversationStateListener::RecognitionResult& const assistant_client::ConversationStateListener::RecognitionResult&
......
...@@ -59,7 +59,6 @@ Service::Service() ...@@ -59,7 +59,6 @@ Service::Service()
main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()), main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
power_manager_observer_(this), power_manager_observer_(this),
voice_interaction_observer_binding_(this), voice_interaction_observer_binding_(this),
assistant_interaction_subscriber_binding_(this),
weak_ptr_factory_(this) { weak_ptr_factory_(this) {
registry_.AddInterface<mojom::AssistantPlatform>(base::BindRepeating( registry_.AddInterface<mojom::AssistantPlatform>(base::BindRepeating(
&Service::BindAssistantPlatformConnection, base::Unretained(this))); &Service::BindAssistantPlatformConnection, base::Unretained(this)));
...@@ -168,15 +167,6 @@ void Service::OnVoiceInteractionHotwordEnabled(bool enabled) { ...@@ -168,15 +167,6 @@ void Service::OnVoiceInteractionHotwordEnabled(bool enabled) {
RequestAccessToken(); RequestAccessToken();
} }
void Service::OnInteractionFinished(
mojom::AssistantInteractionResolution resolution) {
if (resolution == mojom::AssistantInteractionResolution::kError) {
// When communicateion error happens, it could be caused by auth errors.
// Retry with a new auth token to attempt recovery.
RequestAccessToken();
}
}
void Service::BindAssistantSettingsManager( void Service::BindAssistantSettingsManager(
mojom::AssistantSettingsManagerRequest request) { mojom::AssistantSettingsManagerRequest request) {
DCHECK(assistant_settings_manager_); DCHECK(assistant_settings_manager_);
...@@ -309,14 +299,6 @@ void Service::CreateAssistantManagerService(bool enable_hotword) { ...@@ -309,14 +299,6 @@ void Service::CreateAssistantManagerService(bool enable_hotword) {
assistant_manager_service_.get()->GetAssistantSettingsManager(); assistant_manager_service_.get()->GetAssistantSettingsManager();
registry_.AddInterface<mojom::AssistantSettingsManager>(base::BindRepeating( registry_.AddInterface<mojom::AssistantSettingsManager>(base::BindRepeating(
&Service::BindAssistantSettingsManager, base::Unretained(this))); &Service::BindAssistantSettingsManager, base::Unretained(this)));
// Subscribe to Assistant interaction events.
chromeos::assistant::mojom::AssistantInteractionSubscriberPtr
interaction_subscriber_ptr;
assistant_interaction_subscriber_binding_.Bind(
mojo::MakeRequest(&interaction_subscriber_ptr));
assistant_manager_service_->AddAssistantInteractionSubscriber(
std::move(interaction_subscriber_ptr));
#endif #endif
} }
......
...@@ -42,7 +42,6 @@ class AssistantSettingsManager; ...@@ -42,7 +42,6 @@ class AssistantSettingsManager;
class Service : public service_manager::Service, class Service : public service_manager::Service,
public chromeos::PowerManagerClient::Observer, public chromeos::PowerManagerClient::Observer,
public ash::mojom::SessionActivationObserver, public ash::mojom::SessionActivationObserver,
public mojom::AssistantInteractionSubscriber,
public mojom::AssistantPlatform, public mojom::AssistantPlatform,
public ash::mojom::VoiceInteractionObserver { public ash::mojom::VoiceInteractionObserver {
public: public:
...@@ -55,6 +54,8 @@ class Service : public service_manager::Service, ...@@ -55,6 +54,8 @@ class Service : public service_manager::Service,
return assistant_controller_.get(); return assistant_controller_.get();
} }
void RequestAccessToken();
void SetIdentityManagerForTesting( void SetIdentityManagerForTesting(
identity::mojom::IdentityManagerPtr identity_manager); identity::mojom::IdentityManagerPtr identity_manager);
...@@ -95,30 +96,9 @@ class Service : public service_manager::Service, ...@@ -95,30 +96,9 @@ class Service : public service_manager::Service,
ash::mojom::AssistantAllowedState state) override {} ash::mojom::AssistantAllowedState state) override {}
void OnLocaleChanged(const std::string& locale) override {} void OnLocaleChanged(const std::string& locale) override {}
// chromeos::assistant::mojom::AssistantInteractionSubscriber:
void OnInteractionStarted(bool is_voice_interaction) override{};
void OnInteractionFinished(
mojom::AssistantInteractionResolution resolution) override;
void OnHtmlResponse(const std::string& response) override{};
void OnSuggestionsResponse(
std::vector<mojom::AssistantSuggestionPtr> response) override{};
void OnTextResponse(const std::string& response) override{};
void OnOpenUrlResponse(const GURL& url) override{};
void OnSpeechRecognitionStarted() override{};
void OnSpeechRecognitionIntermediateResult(
const std::string& high_confidence_text,
const std::string& low_confidence_text) override{};
void OnSpeechRecognitionEndOfUtterance() override{};
void OnSpeechRecognitionFinalResult(
const std::string& final_result) override{};
void OnSpeechLevelUpdated(float speech_level) override{};
void OnTtsStarted(bool due_to_error) override{};
void BindAssistantSettingsManager( void BindAssistantSettingsManager(
mojom::AssistantSettingsManagerRequest request); mojom::AssistantSettingsManagerRequest request);
void RequestAccessToken();
identity::mojom::IdentityManager* GetIdentityManager(); identity::mojom::IdentityManager* GetIdentityManager();
void GetPrimaryAccountInfoCallback( void GetPrimaryAccountInfoCallback(
...@@ -173,8 +153,6 @@ class Service : public service_manager::Service, ...@@ -173,8 +153,6 @@ class Service : public service_manager::Service,
ash::mojom::VoiceInteractionControllerPtr voice_interaction_controller_; ash::mojom::VoiceInteractionControllerPtr voice_interaction_controller_;
mojo::Binding<ash::mojom::VoiceInteractionObserver> mojo::Binding<ash::mojom::VoiceInteractionObserver>
voice_interaction_observer_binding_; voice_interaction_observer_binding_;
mojo::Binding<chromeos::assistant::mojom::AssistantInteractionSubscriber>
assistant_interaction_subscriber_binding_;
base::WeakPtrFactory<Service> weak_ptr_factory_; base::WeakPtrFactory<Service> weak_ptr_factory_;
......
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