Commit a53bc459 authored by Michael Chang's avatar Michael Chang Committed by Commit Bot

Add Updater self-registration for macOS for Install & Promote

Currently the macOS updater code for //chrome/updater lacks self
registration. Adding self registration for Install and Promote
functionalities.

Bug: 1097373
Change-Id: I2a435b49cbcf76a32d6a4c38185b6b55e5c786b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2255124
Commit-Queue: Michael Chang <donchan@microsoft.com>
Reviewed-by: default avatarJoshua Pawlicki <waffles@chromium.org>
Cr-Commit-Position: refs/heads/master@{#783055}
parent 96a12c74
...@@ -113,7 +113,9 @@ source_set("install_app") { ...@@ -113,7 +113,9 @@ source_set("install_app") {
deps = [ deps = [
":updater_setup_sources", ":updater_setup_sources",
"//base", "//base",
"//chrome/updater:base",
"//chrome/updater:lib", "//chrome/updater:lib",
"//chrome/updater:version_header",
] ]
allow_circular_includes_from = [ "//chrome/updater:lib" ] allow_circular_includes_from = [ "//chrome/updater:lib" ]
......
...@@ -5,10 +5,18 @@ ...@@ -5,10 +5,18 @@
#include "chrome/updater/mac/setup/install_app.h" #include "chrome/updater/mac/setup/install_app.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/memory/ref_counted.h"
#include "base/task/task_traits.h" #include "base/task/task_traits.h"
#include "base/task/thread_pool.h" #include "base/task/thread_pool.h"
#include "base/version.h"
#include "chrome/updater/app/app.h" #include "chrome/updater/app/app.h"
#include "chrome/updater/configurator.h"
#include "chrome/updater/constants.h"
#include "chrome/updater/mac/setup/setup.h" #include "chrome/updater/mac/setup/setup.h"
#include "chrome/updater/persisted_data.h"
#include "chrome/updater/prefs.h"
#include "chrome/updater/registration_data.h"
#include "chrome/updater/updater_version.h"
namespace updater { namespace updater {
...@@ -17,13 +25,43 @@ namespace { ...@@ -17,13 +25,43 @@ namespace {
class AppInstall : public App { class AppInstall : public App {
private: private:
~AppInstall() override = default; ~AppInstall() override = default;
void Initialize() override;
void Uninitialize() override;
void FirstTaskRun() override; void FirstTaskRun() override;
void SetupDone(int result);
scoped_refptr<Configurator> config_;
}; };
void AppInstall::Initialize() {
config_ = base::MakeRefCounted<Configurator>(CreateGlobalPrefs());
}
void AppInstall::Uninitialize() {
PrefsCommitPendingWrites(config_->GetPrefService());
}
void AppInstall::FirstTaskRun() { void AppInstall::FirstTaskRun() {
base::ThreadPool::PostTaskAndReplyWithResult( base::ThreadPool::PostTaskAndReplyWithResult(
FROM_HERE, {base::MayBlock()}, base::BindOnce(&InstallCandidate), FROM_HERE, {base::MayBlock()}, base::BindOnce(&InstallCandidate),
base::BindOnce(&AppInstall::Shutdown, this)); base::BindOnce(&AppInstall::SetupDone, this));
}
void AppInstall::SetupDone(int result) {
if (result != 0) {
Shutdown(result);
return;
}
RegistrationRequest request;
request.app_id = kUpdaterAppId;
request.version = base::Version(UPDATER_VERSION_STRING);
base::MakeRefCounted<PersistedData>(config_->GetPrefService())
->RegisterApp(request);
Shutdown(0);
} }
} // namespace } // namespace
......
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