Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1468)

Unified Diff: content/child/child_thread_impl.cc

Issue 2485623002: discardable_memory: Using mojo IPC to replace Chrome IPC (Closed)
Patch Set: Rebase Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/child/child_thread_impl.cc
diff --git a/content/child/child_thread_impl.cc b/content/child/child_thread_impl.cc
index 7f2755b3e00f3859bfe499adb57561c2686db6ca..afed571379594625455bc8ac55d784317518b44a 100644
--- a/content/child/child_thread_impl.cc
+++ b/content/child/child_thread_impl.cc
@@ -292,7 +292,9 @@ ChildThread* ChildThread::Get() {
}
ChildThreadImpl::Options::Options()
- : auto_start_service_manager_connection(true), connect_to_browser(false) {}
+ : auto_start_service_manager_connection(true),
+ connect_to_browser(false),
+ init_discardable_memory(false) {}
ChildThreadImpl::Options::Options(const Options& other) = default;
@@ -318,8 +320,14 @@ ChildThreadImpl::Options::Builder::AutoStartServiceManagerConnection(
}
ChildThreadImpl::Options::Builder&
-ChildThreadImpl::Options::Builder::ConnectToBrowser(
- bool connect_to_browser) {
+ChildThreadImpl::Options::Builder::InitDiscardableMemory(
+ bool discardable_memory) {
+ options_.init_discardable_memory = discardable_memory;
+ return *this;
+}
+
+ChildThreadImpl::Options::Builder&
+ChildThreadImpl::Options::Builder::ConnectToBrowser(bool connect_to_browser) {
options_.connect_to_browser = connect_to_browser;
return *this;
}
@@ -356,33 +364,6 @@ bool ChildThreadImpl::ChildThreadMessageRouter::RouteMessage(
return handled;
}
-class ChildThreadImpl::ClientDiscardableSharedMemoryManagerDelegate
- : public discardable_memory::ClientDiscardableSharedMemoryManager::
- Delegate {
- public:
- explicit ClientDiscardableSharedMemoryManagerDelegate(
- scoped_refptr<ThreadSafeSender> sender)
- : sender_(sender) {}
- ~ClientDiscardableSharedMemoryManagerDelegate() override {}
-
- void AllocateLockedDiscardableSharedMemory(
- size_t size,
- discardable_memory::DiscardableSharedMemoryId id,
- base::SharedMemoryHandle* handle) override {
- sender_->Send(
- new ChildProcessHostMsg_SyncAllocateLockedDiscardableSharedMemory(
- size, id, handle));
- }
-
- void DeletedDiscardableSharedMemory(
- discardable_memory::DiscardableSharedMemoryId id) override {
- sender_->Send(new ChildProcessHostMsg_DeletedDiscardableSharedMemory(id));
- }
-
- private:
- scoped_refptr<ThreadSafeSender> sender_;
-};
-
ChildThreadImpl::ChildThreadImpl()
: route_provider_binding_(this),
associated_interface_provider_bindings_(
@@ -406,7 +387,7 @@ ChildThreadImpl::ChildThreadImpl(const Options& options)
Init(options);
}
-scoped_refptr<base::SequencedTaskRunner> ChildThreadImpl::GetIOTaskRunner() {
+scoped_refptr<base::SingleThreadTaskRunner> ChildThreadImpl::GetIOTaskRunner() {
if (IsInBrowserProcess())
return browser_process_io_runner_;
return ChildProcess::current()->io_task_runner();
@@ -594,12 +575,15 @@ void ChildThreadImpl::Init(const Options& options) {
shared_bitmap_manager_.reset(
new ChildSharedBitmapManager(thread_safe_sender()));
- client_discardable_shared_memory_manager_delegate_ =
- base::MakeUnique<ClientDiscardableSharedMemoryManagerDelegate>(
- thread_safe_sender());
- discardable_shared_memory_manager_ = base::MakeUnique<
- discardable_memory::ClientDiscardableSharedMemoryManager>(
- client_discardable_shared_memory_manager_delegate_.get());
+ if (options.init_discardable_memory) {
+ discardable_memory::mojom::DiscardableSharedMemoryManagerPtr manager;
+ ChildThread::Get()->GetRemoteInterfaces()->GetInterface(
+ mojo::GetProxy(&manager));
+
+ discardable_shared_memory_manager_ = base::MakeUnique<
+ discardable_memory::ClientDiscardableSharedMemoryManager>(
+ manager.PassInterface(), GetIOTaskRunner().get());
+ }
}
ChildThreadImpl::~ChildThreadImpl() {

Powered by Google App Engine
This is Rietveld 408576698