Commit 27fd642c authored by Daniel Erat's avatar Daniel Erat Committed by Commit Bot

chromeos: Remove VirtualFileRequestServiceProvider::Delegate

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

Bug: 843392
Change-Id: Iaafc3d7d79c6c39cca0e8de2febe31bad07efd6e
Reviewed-on: https://chromium-review.googlesource.com/1184159
Commit-Queue: Dan Erat <derat@chromium.org>
Reviewed-by: default avatarRyo Hashimoto <hashimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585485}
parent 8dd16ecb
...@@ -597,8 +597,6 @@ source_set("chromeos") { ...@@ -597,8 +597,6 @@ source_set("chromeos") {
"dbus/chrome_features_service_provider.h", "dbus/chrome_features_service_provider.h",
"dbus/chrome_proxy_resolution_service_provider_delegate.cc", "dbus/chrome_proxy_resolution_service_provider_delegate.cc",
"dbus/chrome_proxy_resolution_service_provider_delegate.h", "dbus/chrome_proxy_resolution_service_provider_delegate.h",
"dbus/chrome_virtual_file_request_service_provider_delegate.cc",
"dbus/chrome_virtual_file_request_service_provider_delegate.h",
"dbus/component_updater_service_provider.cc", "dbus/component_updater_service_provider.cc",
"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",
......
...@@ -47,7 +47,6 @@ ...@@ -47,7 +47,6 @@
#include "chrome/browser/chromeos/boot_times_recorder.h" #include "chrome/browser/chromeos/boot_times_recorder.h"
#include "chrome/browser/chromeos/dbus/chrome_features_service_provider.h" #include "chrome/browser/chromeos/dbus/chrome_features_service_provider.h"
#include "chrome/browser/chromeos/dbus/chrome_proxy_resolution_service_provider_delegate.h" #include "chrome/browser/chromeos/dbus/chrome_proxy_resolution_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/kiosk_info_service_provider.h" #include "chrome/browser/chromeos/dbus/kiosk_info_service_provider.h"
...@@ -347,9 +346,7 @@ class DBusServices { ...@@ -347,9 +346,7 @@ class DBusServices {
kVirtualFileRequestServiceName, kVirtualFileRequestServiceName,
dbus::ObjectPath(kVirtualFileRequestServicePath), dbus::ObjectPath(kVirtualFileRequestServicePath),
CrosDBusService::CreateServiceProviderList( CrosDBusService::CreateServiceProviderList(
std::make_unique<VirtualFileRequestServiceProvider>( std::make_unique<VirtualFileRequestServiceProvider>()));
std::make_unique<
ChromeVirtualFileRequestServiceProviderDelegate>())));
component_updater_service_ = CrosDBusService::Create( component_updater_service_ = CrosDBusService::Create(
kComponentUpdaterServiceName, kComponentUpdaterServiceName,
......
// Copyright 2017 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/chrome_virtual_file_request_service_provider_delegate.h"
#include "chrome/browser/chromeos/arc/arc_session_manager.h"
#include "chrome/browser/chromeos/arc/fileapi/arc_file_system_bridge.h"
#include "chrome/browser/profiles/profile.h"
namespace chromeos {
namespace {
arc::ArcFileSystemBridge* GetArcFileSystemBridge() {
arc::ArcSessionManager* session_manager = arc::ArcSessionManager::Get();
if (!session_manager)
return nullptr;
Profile* profile = session_manager->profile();
if (!profile)
return nullptr;
return arc::ArcFileSystemBridge::GetForBrowserContext(profile);
}
} // namespace
ChromeVirtualFileRequestServiceProviderDelegate::
ChromeVirtualFileRequestServiceProviderDelegate() = default;
ChromeVirtualFileRequestServiceProviderDelegate::
~ChromeVirtualFileRequestServiceProviderDelegate() = default;
bool ChromeVirtualFileRequestServiceProviderDelegate::HandleReadRequest(
const std::string& id,
int64_t offset,
int64_t size,
base::ScopedFD pipe_write_end) {
arc::ArcFileSystemBridge* bridge = GetArcFileSystemBridge();
if (!bridge)
return false;
return bridge->HandleReadRequest(id, offset, size, std::move(pipe_write_end));
}
bool ChromeVirtualFileRequestServiceProviderDelegate::HandleIdReleased(
const std::string& id) {
arc::ArcFileSystemBridge* bridge = GetArcFileSystemBridge();
if (!bridge)
return false;
return bridge->HandleIdReleased(id);
}
} // namespace chromeos
// Copyright 2017 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_CHROME_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_DELEGATE_H_
#define CHROME_BROWSER_CHROMEOS_DBUS_CHROME_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_DELEGATE_H_
#include <string>
#include "base/compiler_specific.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
#include "chrome/browser/chromeos/dbus/virtual_file_request_service_provider.h"
namespace chromeos {
// Chrome's VirtualFileRequestServiceProvider::Delegate implementation.
class ChromeVirtualFileRequestServiceProviderDelegate
: public VirtualFileRequestServiceProvider::Delegate {
public:
ChromeVirtualFileRequestServiceProviderDelegate();
~ChromeVirtualFileRequestServiceProviderDelegate() override;
// VirtualFileRequestServiceProvider::Delegate overrides:
bool HandleReadRequest(const std::string& id,
int64_t offset,
int64_t size,
base::ScopedFD pipe_write_end) override;
bool HandleIdReleased(const std::string& id) override;
private:
DISALLOW_COPY_AND_ASSIGN(ChromeVirtualFileRequestServiceProviderDelegate);
};
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_DBUS_CHROME_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_DELEGATE_H_
...@@ -4,17 +4,37 @@ ...@@ -4,17 +4,37 @@
#include "chrome/browser/chromeos/dbus/virtual_file_request_service_provider.h" #include "chrome/browser/chromeos/dbus/virtual_file_request_service_provider.h"
#include <stdint.h>
#include <memory>
#include <string>
#include <utility> #include <utility>
#include "base/bind.h" #include "base/bind.h"
#include "base/files/scoped_file.h"
#include "chrome/browser/chromeos/arc/arc_session_manager.h"
#include "chrome/browser/chromeos/arc/fileapi/arc_file_system_bridge.h"
#include "chrome/browser/profiles/profile.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 {
namespace {
arc::ArcFileSystemBridge* GetArcFileSystemBridge() {
arc::ArcSessionManager* session_manager = arc::ArcSessionManager::Get();
if (!session_manager)
return nullptr;
Profile* profile = session_manager->profile();
if (!profile)
return nullptr;
return arc::ArcFileSystemBridge::GetForBrowserContext(profile);
}
} // namespace
VirtualFileRequestServiceProvider::VirtualFileRequestServiceProvider( VirtualFileRequestServiceProvider::VirtualFileRequestServiceProvider()
std::unique_ptr<Delegate> delegate) : weak_ptr_factory_(this) {}
: delegate_(std::move(delegate)), weak_ptr_factory_(this) {}
VirtualFileRequestServiceProvider::~VirtualFileRequestServiceProvider() = VirtualFileRequestServiceProvider::~VirtualFileRequestServiceProvider() =
default; default;
...@@ -57,13 +77,15 @@ void VirtualFileRequestServiceProvider::HandleReadRequest( ...@@ -57,13 +77,15 @@ void VirtualFileRequestServiceProvider::HandleReadRequest(
method_call, DBUS_ERROR_INVALID_ARGS, std::string())); method_call, DBUS_ERROR_INVALID_ARGS, std::string()));
return; return;
} }
if (!delegate_->HandleReadRequest(id, offset, size,
std::move(pipe_write_end))) { arc::ArcFileSystemBridge* bridge = GetArcFileSystemBridge();
if (bridge &&
bridge->HandleReadRequest(id, offset, size, std::move(pipe_write_end))) {
response_sender.Run(dbus::Response::FromMethodCall(method_call));
} else {
response_sender.Run(dbus::ErrorResponse::FromMethodCall( response_sender.Run(dbus::ErrorResponse::FromMethodCall(
method_call, DBUS_ERROR_FAILED, std::string())); method_call, DBUS_ERROR_FAILED, std::string()));
return;
} }
response_sender.Run(dbus::Response::FromMethodCall(method_call));
} }
void VirtualFileRequestServiceProvider::HandleIdReleased( void VirtualFileRequestServiceProvider::HandleIdReleased(
...@@ -76,12 +98,14 @@ void VirtualFileRequestServiceProvider::HandleIdReleased( ...@@ -76,12 +98,14 @@ void VirtualFileRequestServiceProvider::HandleIdReleased(
method_call, DBUS_ERROR_INVALID_ARGS, std::string())); method_call, DBUS_ERROR_INVALID_ARGS, std::string()));
return; return;
} }
if (!delegate_->HandleIdReleased(id)) {
arc::ArcFileSystemBridge* bridge = GetArcFileSystemBridge();
if (bridge && bridge->HandleIdReleased(id)) {
response_sender.Run(dbus::Response::FromMethodCall(method_call));
} else {
response_sender.Run(dbus::ErrorResponse::FromMethodCall( response_sender.Run(dbus::ErrorResponse::FromMethodCall(
method_call, DBUS_ERROR_FAILED, std::string())); method_call, DBUS_ERROR_FAILED, std::string()));
return;
} }
response_sender.Run(dbus::Response::FromMethodCall(method_call));
} }
} // namespace chromeos } // namespace chromeos
...@@ -5,13 +5,6 @@ ...@@ -5,13 +5,6 @@
#ifndef CHROME_BROWSER_CHROMEOS_DBUS_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_H_ #ifndef CHROME_BROWSER_CHROMEOS_DBUS_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_H_
#define CHROME_BROWSER_CHROMEOS_DBUS_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_H_ #define CHROME_BROWSER_CHROMEOS_DBUS_VIRTUAL_FILE_REQUEST_SERVICE_PROVIDER_H_
#include <stdint.h>
#include <memory>
#include <string>
#include "base/compiler_specific.h"
#include "base/files/scoped_file.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
...@@ -29,23 +22,7 @@ namespace chromeos { ...@@ -29,23 +22,7 @@ namespace chromeos {
class VirtualFileRequestServiceProvider class VirtualFileRequestServiceProvider
: public CrosDBusService::ServiceProviderInterface { : public CrosDBusService::ServiceProviderInterface {
public: public:
// TODO(derat): Move the delegate into this class. VirtualFileRequestServiceProvider();
class Delegate {
public:
virtual ~Delegate() {}
// Writes the requested data to the given pipe write end.
virtual bool HandleReadRequest(const std::string& id,
int64_t offset,
int64_t size,
base::ScopedFD pipe_write_end) = 0;
// Releases resources associated with the ID.
virtual bool HandleIdReleased(const std::string& id) = 0;
};
explicit VirtualFileRequestServiceProvider(
std::unique_ptr<Delegate> delegate);
~VirtualFileRequestServiceProvider() override; ~VirtualFileRequestServiceProvider() override;
// CrosDBusService::ServiceProviderInterface overrides: // CrosDBusService::ServiceProviderInterface overrides:
...@@ -58,8 +35,6 @@ class VirtualFileRequestServiceProvider ...@@ -58,8 +35,6 @@ class VirtualFileRequestServiceProvider
void HandleIdReleased(dbus::MethodCall* method_call, void HandleIdReleased(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<VirtualFileRequestServiceProvider> weak_ptr_factory_; base::WeakPtrFactory<VirtualFileRequestServiceProvider> weak_ptr_factory_;
......
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