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") { ...@@ -597,8 +597,6 @@ source_set("chromeos") {
"dbus/component_updater_service_provider.h", "dbus/component_updater_service_provider.h",
"dbus/drive_file_stream_service_provider.cc", "dbus/drive_file_stream_service_provider.cc",
"dbus/drive_file_stream_service_provider.h", "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.cc",
"dbus/kiosk_info_service_provider.h", "dbus/kiosk_info_service_provider.h",
"dbus/proxy_resolution_service_provider.cc", "dbus/proxy_resolution_service_provider.cc",
......
...@@ -50,7 +50,6 @@ ...@@ -50,7 +50,6 @@
#include "chrome/browser/chromeos/dbus/chrome_virtual_file_request_service_provider_delegate.h" #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/component_updater_service_provider.h"
#include "chrome/browser/chromeos/dbus/drive_file_stream_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/kiosk_info_service_provider.h"
#include "chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h" #include "chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h"
#include "chrome/browser/chromeos/dbus/screen_lock_service_provider.h" #include "chrome/browser/chromeos/dbus/screen_lock_service_provider.h"
...@@ -359,12 +358,11 @@ class DBusServices { ...@@ -359,12 +358,11 @@ class DBusServices {
std::make_unique<ComponentUpdaterServiceProvider>( std::make_unique<ComponentUpdaterServiceProvider>(
g_browser_process->platform_part()->cros_component_manager()))); g_browser_process->platform_part()->cros_component_manager())));
finch_features_service_ = CrosDBusService::Create( chrome_features_service_ = CrosDBusService::Create(
kChromeFeaturesServiceName, kChromeFeaturesServiceName,
dbus::ObjectPath(kChromeFeaturesServicePath), dbus::ObjectPath(kChromeFeaturesServicePath),
CrosDBusService::CreateServiceProviderList( CrosDBusService::CreateServiceProviderList(
std::make_unique<ChromeFeaturesServiceProvider>( std::make_unique<ChromeFeaturesServiceProvider>()));
std::make_unique<FinchFeaturesServiceProviderDelegate>())));
vm_applications_service_ = CrosDBusService::Create( vm_applications_service_ = CrosDBusService::Create(
vm_tools::apps::kVmApplicationsServiceName, vm_tools::apps::kVmApplicationsServiceName,
...@@ -417,7 +415,7 @@ class DBusServices { ...@@ -417,7 +415,7 @@ class DBusServices {
kiosk_info_service_.reset(); kiosk_info_service_.reset();
virtual_file_request_service_.reset(); virtual_file_request_service_.reset();
component_updater_service_.reset(); component_updater_service_.reset();
finch_features_service_.reset(); chrome_features_service_.reset();
vm_applications_service_.reset(); vm_applications_service_.reset();
drive_file_stream_service_.reset(); drive_file_stream_service_.reset();
ProcessDataCollector::Shutdown(); ProcessDataCollector::Shutdown();
...@@ -434,7 +432,7 @@ class DBusServices { ...@@ -434,7 +432,7 @@ class DBusServices {
std::unique_ptr<CrosDBusService> screen_lock_service_; std::unique_ptr<CrosDBusService> screen_lock_service_;
std::unique_ptr<CrosDBusService> virtual_file_request_service_; std::unique_ptr<CrosDBusService> virtual_file_request_service_;
std::unique_ptr<CrosDBusService> component_updater_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> vm_applications_service_;
std::unique_ptr<CrosDBusService> drive_file_stream_service_; std::unique_ptr<CrosDBusService> drive_file_stream_service_;
......
...@@ -4,18 +4,24 @@ ...@@ -4,18 +4,24 @@
#include "chrome/browser/chromeos/dbus/chrome_features_service_provider.h" #include "chrome/browser/chromeos/dbus/chrome_features_service_provider.h"
#include <memory>
#include <utility> #include <utility>
#include "base/bind.h" #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/bus.h"
#include "dbus/message.h" #include "dbus/message.h"
#include "third_party/cros_system_api/dbus/service_constants.h" #include "third_party/cros_system_api/dbus/service_constants.h"
namespace chromeos { namespace chromeos {
ChromeFeaturesServiceProvider::ChromeFeaturesServiceProvider( ChromeFeaturesServiceProvider::ChromeFeaturesServiceProvider()
std::unique_ptr<Delegate> delegate) : weak_ptr_factory_(this) {}
: delegate_(std::move(delegate)), weak_ptr_factory_(this) {}
ChromeFeaturesServiceProvider::~ChromeFeaturesServiceProvider() = default; ChromeFeaturesServiceProvider::~ChromeFeaturesServiceProvider() = default;
...@@ -67,10 +73,16 @@ void ChromeFeaturesServiceProvider::IsCrostiniEnabled( ...@@ -67,10 +73,16 @@ void ChromeFeaturesServiceProvider::IsCrostiniEnabled(
return; 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 = std::unique_ptr<dbus::Response> response =
dbus::Response::FromMethodCall(method_call); dbus::Response::FromMethodCall(method_call);
dbus::MessageWriter writer(response.get()); dbus::MessageWriter writer(response.get());
writer.AppendBool(delegate_->IsCrostiniEnabled(user_id_hash)); writer.AppendBool(IsCrostiniAllowedForProfile(profile));
response_sender.Run(std::move(response)); response_sender.Run(std::move(response));
} }
...@@ -80,7 +92,7 @@ void ChromeFeaturesServiceProvider::IsUsbguardEnabled( ...@@ -80,7 +92,7 @@ void ChromeFeaturesServiceProvider::IsUsbguardEnabled(
std::unique_ptr<dbus::Response> response = std::unique_ptr<dbus::Response> response =
dbus::Response::FromMethodCall(method_call); dbus::Response::FromMethodCall(method_call);
dbus::MessageWriter writer(response.get()); dbus::MessageWriter writer(response.get());
writer.AppendBool(delegate_->IsUsbguardEnabled()); writer.AppendBool(base::FeatureList::IsEnabled(features::kUsbguard));
response_sender.Run(std::move(response)); response_sender.Run(std::move(response));
} }
...@@ -90,7 +102,7 @@ void ChromeFeaturesServiceProvider::IsShillSandboxingEnabled( ...@@ -90,7 +102,7 @@ void ChromeFeaturesServiceProvider::IsShillSandboxingEnabled(
std::unique_ptr<dbus::Response> response = std::unique_ptr<dbus::Response> response =
dbus::Response::FromMethodCall(method_call); dbus::Response::FromMethodCall(method_call);
dbus::MessageWriter writer(response.get()); dbus::MessageWriter writer(response.get());
writer.AppendBool(delegate_->IsShillSandboxingEnabled()); writer.AppendBool(base::FeatureList::IsEnabled(features::kShillSandboxing));
response_sender.Run(std::move(response)); response_sender.Run(std::move(response));
} }
......
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
#ifndef CHROME_BROWSER_CHROMEOS_DBUS_CHROME_FEATURES_SERVICE_PROVIDER_H_ #ifndef CHROME_BROWSER_CHROMEOS_DBUS_CHROME_FEATURES_SERVICE_PROVIDER_H_
#define 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/compiler_specific.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
...@@ -32,22 +30,7 @@ namespace chromeos { ...@@ -32,22 +30,7 @@ namespace chromeos {
class ChromeFeaturesServiceProvider class ChromeFeaturesServiceProvider
: public CrosDBusService::ServiceProviderInterface { : public CrosDBusService::ServiceProviderInterface {
public: public:
// Delegate interface providing additional resources to ChromeFeaturesServiceProvider();
// 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() override; ~ChromeFeaturesServiceProvider() override;
// CrosDBusService::ServiceProviderInterface overrides: // CrosDBusService::ServiceProviderInterface overrides:
...@@ -69,7 +52,6 @@ class ChromeFeaturesServiceProvider ...@@ -69,7 +52,6 @@ class ChromeFeaturesServiceProvider
dbus::MethodCall* method_call, dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender); dbus::ExportedObject::ResponseSender response_sender);
std::unique_ptr<Delegate> delegate_;
// Keep this last so that all weak pointers will be invalidated at the // Keep this last so that all weak pointers will be invalidated at the
// beginning of destruction. // beginning of destruction.
base::WeakPtrFactory<ChromeFeaturesServiceProvider> weak_ptr_factory_; 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