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 |