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") {
"dbus/chrome_features_service_provider.h",
"dbus/chrome_proxy_resolution_service_provider_delegate.cc",
"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.h",
"dbus/drive_file_stream_service_provider.cc",
......
......@@ -47,7 +47,6 @@
#include "chrome/browser/chromeos/boot_times_recorder.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_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/kiosk_info_service_provider.h"
......@@ -347,9 +346,7 @@ class DBusServices {
kVirtualFileRequestServiceName,
dbus::ObjectPath(kVirtualFileRequestServicePath),
CrosDBusService::CreateServiceProviderList(
std::make_unique<VirtualFileRequestServiceProvider>(
std::make_unique<
ChromeVirtualFileRequestServiceProviderDelegate>())));
std::make_unique<VirtualFileRequestServiceProvider>()));
component_updater_service_ = CrosDBusService::Create(
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 @@
#include "chrome/browser/chromeos/dbus/virtual_file_request_service_provider.h"
#include <stdint.h>
#include <memory>
#include <string>
#include <utility>
#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 "third_party/cros_system_api/dbus/service_constants.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);
}
VirtualFileRequestServiceProvider::VirtualFileRequestServiceProvider(
std::unique_ptr<Delegate> delegate)
: delegate_(std::move(delegate)), weak_ptr_factory_(this) {}
} // namespace
VirtualFileRequestServiceProvider::VirtualFileRequestServiceProvider()
: weak_ptr_factory_(this) {}
VirtualFileRequestServiceProvider::~VirtualFileRequestServiceProvider() =
default;
......@@ -57,13 +77,15 @@ void VirtualFileRequestServiceProvider::HandleReadRequest(
method_call, DBUS_ERROR_INVALID_ARGS, std::string()));
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(
method_call, DBUS_ERROR_FAILED, std::string()));
return;
}
response_sender.Run(dbus::Response::FromMethodCall(method_call));
}
void VirtualFileRequestServiceProvider::HandleIdReleased(
......@@ -76,12 +98,14 @@ void VirtualFileRequestServiceProvider::HandleIdReleased(
method_call, DBUS_ERROR_INVALID_ARGS, std::string()));
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(
method_call, DBUS_ERROR_FAILED, std::string()));
return;
}
response_sender.Run(dbus::Response::FromMethodCall(method_call));
}
} // namespace chromeos
......@@ -5,13 +5,6 @@
#ifndef 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/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
......@@ -29,23 +22,7 @@ namespace chromeos {
class VirtualFileRequestServiceProvider
: public CrosDBusService::ServiceProviderInterface {
public:
// TODO(derat): Move the delegate into this class.
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();
~VirtualFileRequestServiceProvider() override;
// CrosDBusService::ServiceProviderInterface overrides:
......@@ -58,8 +35,6 @@ class VirtualFileRequestServiceProvider
void HandleIdReleased(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<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