1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/updater/app/app_server_posix.h"
#include <utility>
#include "base/functional/bind.h"
#include "base/logging.h"
#include "base/sequence_checker.h"
#include "chrome/updater/app/server/posix/update_service_internal_stub.h"
#include "chrome/updater/app/server/posix/update_service_stub.h"
#include "chrome/updater/constants.h"
#include "chrome/updater/posix/setup.h"
namespace updater {
AppServerPosix::AppServerPosix() = default;
AppServerPosix::~AppServerPosix() = default;
void AppServerPosix::UninstallSelf() {
UninstallCandidate(updater_scope());
}
void AppServerPosix::Uninitialize() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
// These delegates need to have a reference to the AppServer. Reset them to
// break the circular reference.
active_duty_stub_.reset();
active_duty_internal_stub_.reset();
AppServer::Uninitialize();
}
void AppServerPosix::ActiveDutyInternal(
scoped_refptr<UpdateServiceInternal> update_service_internal) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
active_duty_internal_stub_ = std::make_unique<UpdateServiceInternalStub>(
std::move(update_service_internal), updater_scope(),
base::BindRepeating(&AppServerPosix::TaskStarted, this),
base::BindRepeating(&AppServerPosix::TaskCompleted, this));
}
void AppServerPosix::ActiveDuty(scoped_refptr<UpdateService> update_service) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
active_duty_stub_ = std::make_unique<UpdateServiceStub>(
std::move(update_service), updater_scope(),
base::BindRepeating(&AppServerPosix::TaskStarted, this),
base::BindRepeating(&AppServerPosix::TaskCompleted, this));
}
bool AppServerPosix::SwapInNewVersion() {
int result = PromoteCandidate(updater_scope());
VLOG_IF(1, result != kErrorOk) << __func__ << " failed: " << result;
return result == kErrorOk;
}
bool AppServerPosix::ShutdownIfIdleAfterTask() {
return true;
}
void AppServerPosix::OnDelayedTaskComplete() {}
} // namespace updater
|