Commit 85a5f770 authored by Alan Lau's avatar Alan Lau Committed by Commit Bot

Pass user agent to SetAssistantOptions

Change-Id: I52953684bd1588b4ceda11379cbd2856de7b1273
Reviewed-on: https://chromium-review.googlesource.com/972626
Commit-Queue: Alan Lau <alanlau@google.com>
Reviewed-by: default avatarXiaohui Chen <xiaohuic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544938}
parent 573f82bc
...@@ -6,10 +6,15 @@ ...@@ -6,10 +6,15 @@
#include <utility> #include <utility>
#include "base/bind.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/strings/stringprintf.h"
#include "base/sys_info.h"
#include "base/task_scheduler/post_task.h"
#include "chromeos/assistant/internal/internal_constants.h" #include "chromeos/assistant/internal/internal_constants.h"
#include "chromeos/assistant/internal/internal_util.h" #include "chromeos/assistant/internal/internal_util.h"
#include "chromeos/services/assistant/service.h" #include "chromeos/services/assistant/service.h"
#include "chromeos/system/version_loader.h"
#include "libassistant/shared/internal_api/assistant_manager_internal.h" #include "libassistant/shared/internal_api/assistant_manager_internal.h"
#include "url/gurl.h" #include "url/gurl.h"
...@@ -29,9 +34,23 @@ AssistantManagerServiceImpl::AssistantManagerServiceImpl( ...@@ -29,9 +34,23 @@ AssistantManagerServiceImpl::AssistantManagerServiceImpl(
AssistantManagerServiceImpl::~AssistantManagerServiceImpl() {} AssistantManagerServiceImpl::~AssistantManagerServiceImpl() {}
void AssistantManagerServiceImpl::Start(const std::string& access_token) { void AssistantManagerServiceImpl::Start(const std::string& access_token) {
// Posting to background thread because GetARCVersion may be blocking
base::PostTaskWithTraitsAndReplyWithResult(
FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_VISIBLE},
base::BindOnce(&chromeos::version_loader::GetARCVersion),
base::BindOnce(&AssistantManagerServiceImpl::StartAssistantInternal,
base::Unretained(this), access_token));
// Set the flag to avoid starting the service multiple times.
running_ = true;
}
void AssistantManagerServiceImpl::StartAssistantInternal(
const std::string& access_token,
const std::string& arc_version) {
auto* internal_options = auto* internal_options =
assistant_manager_internal_->CreateDefaultInternalOptions(); assistant_manager_internal_->CreateDefaultInternalOptions();
SetAssistantOptions(internal_options); SetAssistantOptions(internal_options, BuildUserAgent(arc_version));
assistant_manager_internal_->SetOptions(*internal_options, [](bool success) { assistant_manager_internal_->SetOptions(*internal_options, [](bool success) {
DVLOG(2) << "set options: " << success; DVLOG(2) << "set options: " << success;
}); });
...@@ -40,7 +59,25 @@ void AssistantManagerServiceImpl::Start(const std::string& access_token) { ...@@ -40,7 +59,25 @@ void AssistantManagerServiceImpl::Start(const std::string& access_token) {
SetAccessToken(access_token); SetAccessToken(access_token);
assistant_manager_->Start(); assistant_manager_->Start();
running_ = true; }
std::string AssistantManagerServiceImpl::BuildUserAgent(
const std::string& arc_version) const {
int32_t os_major_version = 0;
int32_t os_minor_version = 0;
int32_t os_bugfix_version = 0;
base::SysInfo::OperatingSystemVersionNumbers(
&os_major_version, &os_minor_version, &os_bugfix_version);
std::string user_agent;
base::StringAppendF(&user_agent, "Mozilla/5.0 (X11; CrOS %s %d.%d.%d)",
base::SysInfo::OperatingSystemArchitecture().c_str(),
os_major_version, os_minor_version, os_bugfix_version);
if (!arc_version.empty()) {
base::StringAppendF(&user_agent, " ARC/%s", arc_version.c_str());
}
return user_agent;
} }
bool AssistantManagerServiceImpl::IsRunning() const { bool AssistantManagerServiceImpl::IsRunning() const {
......
...@@ -57,6 +57,10 @@ class AssistantManagerServiceImpl ...@@ -57,6 +57,10 @@ class AssistantManagerServiceImpl
assistant_client::AssistantManagerInternal* const assistant_manager_internal_; assistant_client::AssistantManagerInternal* const assistant_manager_internal_;
mojo::InterfacePtrSet<mojom::AssistantEventSubscriber> subscribers_; mojo::InterfacePtrSet<mojom::AssistantEventSubscriber> subscribers_;
void StartAssistantInternal(const std::string& access_token,
const std::string& arc_version);
std::string BuildUserAgent(const std::string& arc_version) const;
DISALLOW_COPY_AND_ASSIGN(AssistantManagerServiceImpl); DISALLOW_COPY_AND_ASSIGN(AssistantManagerServiceImpl);
}; };
......
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