Commit db1594c2 authored by Daniel Erat's avatar Daniel Erat Committed by Commit Bot

chromeos: Remove ChromeFeaturesServiceProvider::Delegate.

Now that ChromeFeaturesServiceProvider lives in
//chrome/browser/chromeos/dbus, it no longer needs a
Delegate interface.

Bug: 843392
Change-Id: Ia4b4a737e8cde0b517f6975994238dc8f03fec1a
Reviewed-on: https://chromium-review.googlesource.com/1184168Reviewed-by: default avatarSteven Bennetts <stevenjb@chromium.org>
Commit-Queue: Dan Erat <derat@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584936}
parent e17cb994
......@@ -597,8 +597,6 @@ source_set("chromeos") {
"dbus/component_updater_service_provider.h",
"dbus/drive_file_stream_service_provider.cc",
"dbus/drive_file_stream_service_provider.h",
"dbus/finch_features_service_provider_delegate.cc",
"dbus/finch_features_service_provider_delegate.h",
"dbus/kiosk_info_service_provider.cc",
"dbus/kiosk_info_service_provider.h",
"dbus/proxy_resolution_service_provider.cc",
......
......@@ -50,7 +50,6 @@
#include "chrome/browser/chromeos/dbus/chrome_virtual_file_request_service_provider_delegate.h"
#include "chrome/browser/chromeos/dbus/component_updater_service_provider.h"
#include "chrome/browser/chromeos/dbus/drive_file_stream_service_provider.h"
#include "chrome/browser/chromeos/dbus/finch_features_service_provider_delegate.h"
#include "chrome/browser/chromeos/dbus/kiosk_info_service_provider.h"
#include "chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h"
#include "chrome/browser/chromeos/dbus/screen_lock_service_provider.h"
......@@ -359,12 +358,11 @@ class DBusServices {
std::make_unique<ComponentUpdaterServiceProvider>(
g_browser_process->platform_part()->cros_component_manager())));
finch_features_service_ = CrosDBusService::Create(
chrome_features_service_ = CrosDBusService::Create(
kChromeFeaturesServiceName,
dbus::ObjectPath(kChromeFeaturesServicePath),
CrosDBusService::CreateServiceProviderList(
std::make_unique<ChromeFeaturesServiceProvider>(
std::make_unique<FinchFeaturesServiceProviderDelegate>())));
std::make_unique<ChromeFeaturesServiceProvider>()));
vm_applications_service_ = CrosDBusService::Create(
vm_tools::apps::kVmApplicationsServiceName,
......@@ -417,7 +415,7 @@ class DBusServices {
kiosk_info_service_.reset();
virtual_file_request_service_.reset();
component_updater_service_.reset();
finch_features_service_.reset();
chrome_features_service_.reset();
vm_applications_service_.reset();
drive_file_stream_service_.reset();
ProcessDataCollector::Shutdown();
......@@ -434,7 +432,7 @@ class DBusServices {
std::unique_ptr<CrosDBusService> screen_lock_service_;
std::unique_ptr<CrosDBusService> virtual_file_request_service_;
std::unique_ptr<CrosDBusService> component_updater_service_;
std::unique_ptr<CrosDBusService> finch_features_service_;
std::unique_ptr<CrosDBusService> chrome_features_service_;
std::unique_ptr<CrosDBusService> vm_applications_service_;
std::unique_ptr<CrosDBusService> drive_file_stream_service_;
......
......@@ -4,18 +4,24 @@
#include "chrome/browser/chromeos/dbus/chrome_features_service_provider.h"
#include <memory>
#include <utility>
#include "base/bind.h"
#include "base/feature_list.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/crostini/crostini_util.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/common/chrome_features.h"
#include "dbus/bus.h"
#include "dbus/message.h"
#include "third_party/cros_system_api/dbus/service_constants.h"
namespace chromeos {
ChromeFeaturesServiceProvider::ChromeFeaturesServiceProvider(
std::unique_ptr<Delegate> delegate)
: delegate_(std::move(delegate)), weak_ptr_factory_(this) {}
ChromeFeaturesServiceProvider::ChromeFeaturesServiceProvider()
: weak_ptr_factory_(this) {}
ChromeFeaturesServiceProvider::~ChromeFeaturesServiceProvider() = default;
......@@ -67,10 +73,16 @@ void ChromeFeaturesServiceProvider::IsCrostiniEnabled(
return;
}
Profile* profile =
user_id_hash.empty()
? ProfileManager::GetActiveUserProfile()
: g_browser_process->profile_manager()->GetProfileByPath(
ProfileHelper::GetProfilePathByUserIdHash(user_id_hash));
std::unique_ptr<dbus::Response> response =
dbus::Response::FromMethodCall(method_call);
dbus::MessageWriter writer(response.get());
writer.AppendBool(delegate_->IsCrostiniEnabled(user_id_hash));
writer.AppendBool(IsCrostiniAllowedForProfile(profile));
response_sender.Run(std::move(response));
}
......@@ -80,7 +92,7 @@ void ChromeFeaturesServiceProvider::IsUsbguardEnabled(
std::unique_ptr<dbus::Response> response =
dbus::Response::FromMethodCall(method_call);
dbus::MessageWriter writer(response.get());
writer.AppendBool(delegate_->IsUsbguardEnabled());
writer.AppendBool(base::FeatureList::IsEnabled(features::kUsbguard));
response_sender.Run(std::move(response));
}
......@@ -90,7 +102,7 @@ void ChromeFeaturesServiceProvider::IsShillSandboxingEnabled(
std::unique_ptr<dbus::Response> response =
dbus::Response::FromMethodCall(method_call);
dbus::MessageWriter writer(response.get());
writer.AppendBool(delegate_->IsShillSandboxingEnabled());
writer.AppendBool(base::FeatureList::IsEnabled(features::kShillSandboxing));
response_sender.Run(std::move(response));
}
......
......@@ -5,8 +5,6 @@
#ifndef CHROME_BROWSER_CHROMEOS_DBUS_CHROME_FEATURES_SERVICE_PROVIDER_H_
#define CHROME_BROWSER_CHROMEOS_DBUS_CHROME_FEATURES_SERVICE_PROVIDER_H_
#include <memory>
#include "base/compiler_specific.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
......@@ -32,22 +30,7 @@ namespace chromeos {
class ChromeFeaturesServiceProvider
: public CrosDBusService::ServiceProviderInterface {
public:
// Delegate interface providing additional resources to
// ChromeFeaturesServiceProvider.
class Delegate {
public:
Delegate() {}
virtual ~Delegate() {}
virtual bool IsCrostiniEnabled(const std::string& user_id_hash) = 0;
virtual bool IsUsbguardEnabled() = 0;
virtual bool IsShillSandboxingEnabled() = 0;
private:
DISALLOW_COPY_AND_ASSIGN(Delegate);
};
explicit ChromeFeaturesServiceProvider(std::unique_ptr<Delegate> delegate);
ChromeFeaturesServiceProvider();
~ChromeFeaturesServiceProvider() override;
// CrosDBusService::ServiceProviderInterface overrides:
......@@ -69,7 +52,6 @@ class ChromeFeaturesServiceProvider
dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender);
std::unique_ptr<Delegate> delegate_;
// Keep this last so that all weak pointers will be invalidated at the
// beginning of destruction.
base::WeakPtrFactory<ChromeFeaturesServiceProvider> weak_ptr_factory_;
......
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/chromeos/dbus/finch_features_service_provider_delegate.h"
#include "base/feature_list.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/crostini/crostini_util.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/common/chrome_features.h"
namespace chromeos {
FinchFeaturesServiceProviderDelegate::FinchFeaturesServiceProviderDelegate() {}
FinchFeaturesServiceProviderDelegate::~FinchFeaturesServiceProviderDelegate() {}
bool FinchFeaturesServiceProviderDelegate::IsCrostiniEnabled(
const std::string& user_id_hash) {
Profile* profile = nullptr;
if (!user_id_hash.empty()) {
profile = g_browser_process->profile_manager()->GetProfileByPath(
ProfileHelper::GetProfilePathByUserIdHash(user_id_hash));
} else {
profile = ProfileManager::GetActiveUserProfile();
}
return IsCrostiniAllowedForProfile(profile);
}
bool FinchFeaturesServiceProviderDelegate::IsUsbguardEnabled() {
return base::FeatureList::IsEnabled(features::kUsbguard);
}
bool FinchFeaturesServiceProviderDelegate::IsShillSandboxingEnabled() {
return base::FeatureList::IsEnabled(features::kShillSandboxing);
}
} // namespace chromeos
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_DBUS_FINCH_FEATURES_SERVICE_PROVIDER_DELEGATE_H_
#define CHROME_BROWSER_CHROMEOS_DBUS_FINCH_FEATURES_SERVICE_PROVIDER_DELEGATE_H_
#include "base/macros.h"
#include "chrome/browser/chromeos/dbus/chrome_features_service_provider.h"
namespace chromeos {
// Finch implementation of ChromeFeaturesServiceProvider::Delegate.
class FinchFeaturesServiceProviderDelegate
: public ChromeFeaturesServiceProvider::Delegate {
public:
FinchFeaturesServiceProviderDelegate();
~FinchFeaturesServiceProviderDelegate() override;
// ChromeServiceProvider::Delegate:
bool IsCrostiniEnabled(const std::string& user_id_hash) override;
bool IsUsbguardEnabled() override;
bool IsShillSandboxingEnabled() override;
private:
DISALLOW_COPY_AND_ASSIGN(FinchFeaturesServiceProviderDelegate);
};
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_DBUS_FINCH_FEATURES_SERVICE_PROVIDER_DELEGATE_H_
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