| Index: components/discardable_memory/client/child_discardable_shared_memory_manager.cc
|
| diff --git a/content/child/child_discardable_shared_memory_manager.cc b/components/discardable_memory/client/child_discardable_shared_memory_manager.cc
|
| similarity index 92%
|
| rename from content/child/child_discardable_shared_memory_manager.cc
|
| rename to components/discardable_memory/client/child_discardable_shared_memory_manager.cc
|
| index 1d1aa4c4591f0ba2aaacf3050aeb3e08ba6c4dc4..e756493fba2eb122232ff8d922358ed41d6e581b 100644
|
| --- a/content/child/child_discardable_shared_memory_manager.cc
|
| +++ b/components/discardable_memory/client/child_discardable_shared_memory_manager.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "content/child/child_discardable_shared_memory_manager.h"
|
| +#include "components/discardable_memory/client/child_discardable_shared_memory_manager.h"
|
|
|
| #include <inttypes.h>
|
|
|
| @@ -24,9 +24,8 @@
|
| #include "base/threading/thread_task_runner_handle.h"
|
| #include "base/trace_event/memory_dump_manager.h"
|
| #include "base/trace_event/trace_event.h"
|
| -#include "content/common/child_process_messages.h"
|
|
|
| -namespace content {
|
| +namespace discardable_memory {
|
| namespace {
|
|
|
| // Default allocation size.
|
| @@ -84,16 +83,16 @@ class DiscardableMemoryImpl : public base::DiscardableMemory {
|
| };
|
|
|
| void SendDeletedDiscardableSharedMemoryMessage(
|
| - scoped_refptr<ThreadSafeSender> sender,
|
| + ChildDiscardableSharedMemoryManager::Delegate* delegate,
|
| DiscardableSharedMemoryId id) {
|
| - sender->Send(new ChildProcessHostMsg_DeletedDiscardableSharedMemory(id));
|
| + delegate->DeletedDiscardableSharedMemory(id);
|
| }
|
|
|
| } // namespace
|
|
|
| ChildDiscardableSharedMemoryManager::ChildDiscardableSharedMemoryManager(
|
| - ThreadSafeSender* sender)
|
| - : heap_(base::GetPageSize()), sender_(sender) {
|
| + Delegate* delegate)
|
| + : heap_(base::GetPageSize()), delegate_(delegate) {
|
| base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider(
|
| this, "ChildDiscardableSharedMemoryManager",
|
| base::ThreadTaskRunnerHandle::Get());
|
| @@ -115,8 +114,9 @@ ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableMemory(
|
|
|
| DCHECK_NE(size, 0u);
|
|
|
| + auto size_in_kb = static_cast<base::HistogramBase::Sample>(size / 1024);
|
| UMA_HISTOGRAM_CUSTOM_COUNTS("Memory.DiscardableAllocationSize",
|
| - size / 1024, // In KB
|
| + size_in_kb, // In KB
|
| 1,
|
| 4 * 1024 * 1024, // 4 GB
|
| 50);
|
| @@ -189,9 +189,10 @@ ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableMemory(
|
| AllocateLockedDiscardableSharedMemory(allocation_size_in_bytes, new_id));
|
|
|
| // Create span for allocated memory.
|
| - std::unique_ptr<DiscardableSharedMemoryHeap::Span> new_span(heap_.Grow(
|
| - std::move(shared_memory), allocation_size_in_bytes, new_id,
|
| - base::Bind(&SendDeletedDiscardableSharedMemoryMessage, sender_, new_id)));
|
| + std::unique_ptr<DiscardableSharedMemoryHeap::Span> new_span(
|
| + heap_.Grow(std::move(shared_memory), allocation_size_in_bytes, new_id,
|
| + base::Bind(&SendDeletedDiscardableSharedMemoryMessage,
|
| + delegate_, new_id)));
|
| new_span->set_is_locked(true);
|
|
|
| // Unlock and insert any left over memory into free lists.
|
| @@ -265,7 +266,7 @@ bool ChildDiscardableSharedMemoryManager::LockSpan(
|
| return false;
|
|
|
| size_t offset = span->start() * base::GetPageSize() -
|
| - reinterpret_cast<size_t>(span->shared_memory()->memory());
|
| + reinterpret_cast<size_t>(span->shared_memory()->memory());
|
| size_t length = span->length() * base::GetPageSize();
|
|
|
| switch (span->shared_memory()->Lock(offset, length)) {
|
| @@ -290,7 +291,7 @@ void ChildDiscardableSharedMemoryManager::UnlockSpan(
|
|
|
| DCHECK(span->shared_memory());
|
| size_t offset = span->start() * base::GetPageSize() -
|
| - reinterpret_cast<size_t>(span->shared_memory()->memory());
|
| + reinterpret_cast<size_t>(span->shared_memory()->memory());
|
| size_t length = span->length() * base::GetPageSize();
|
|
|
| span->set_is_locked(false);
|
| @@ -330,9 +331,7 @@ ChildDiscardableSharedMemoryManager::AllocateLockedDiscardableSharedMemory(
|
| "size", size, "id", id);
|
|
|
| base::SharedMemoryHandle handle = base::SharedMemory::NULLHandle();
|
| - sender_->Send(
|
| - new ChildProcessHostMsg_SyncAllocateLockedDiscardableSharedMemory(
|
| - size, id, &handle));
|
| + delegate_->AllocateLockedDiscardableSharedMemory(size, id, &handle);
|
| std::unique_ptr<base::DiscardableSharedMemory> memory(
|
| new base::DiscardableSharedMemory(handle));
|
| if (!memory->Map(size))
|
| @@ -353,4 +352,4 @@ void ChildDiscardableSharedMemoryManager::MemoryUsageChanged(
|
| base::Uint64ToString(new_bytes_free));
|
| }
|
|
|
| -} // namespace content
|
| +} // namespace discardable_memory
|
|
|