| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/memory/discardable_memory.h" | 7 #include "base/memory/discardable_memory.h" |
| 8 #include "content/child/child_discardable_shared_memory_manager.h" | 8 #include "content/child/child_discardable_shared_memory_manager.h" |
| 9 #include "content/child/child_thread_impl.h" | 9 #include "content/child/child_thread_impl.h" |
| 10 #include "content/common/host_discardable_shared_memory_manager.h" | 10 #include "content/common/host_discardable_shared_memory_manager.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 const size_t kSize = 1024 * 1024; // 1MiB. | 53 const size_t kSize = 1024 * 1024; // 1MiB. |
| 54 | 54 |
| 55 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | 55 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
| 56 | 56 |
| 57 scoped_ptr<base::DiscardableMemory> memory; | 57 scoped_ptr<base::DiscardableMemory> memory; |
| 58 PostTaskToInProcessRendererAndWait(base::Bind( | 58 PostTaskToInProcessRendererAndWait(base::Bind( |
| 59 &ChildDiscardableSharedMemoryManagerBrowserTest::AllocateLockedMemory, | 59 &ChildDiscardableSharedMemoryManagerBrowserTest::AllocateLockedMemory, |
| 60 kSize, &memory)); | 60 kSize, &memory)); |
| 61 | 61 |
| 62 ASSERT_TRUE(memory); | 62 ASSERT_TRUE(memory); |
| 63 void* addr = memory->Memory(); | 63 void* addr = memory->data(); |
| 64 ASSERT_NE(nullptr, addr); | 64 ASSERT_NE(nullptr, addr); |
| 65 | 65 |
| 66 PostTaskToInProcessRendererAndWait( | 66 PostTaskToInProcessRendererAndWait( |
| 67 base::Bind(&ChildDiscardableSharedMemoryManagerBrowserTest::UnlockMemory, | 67 base::Bind(&ChildDiscardableSharedMemoryManagerBrowserTest::UnlockMemory, |
| 68 memory.get())); | 68 memory.get())); |
| 69 | 69 |
| 70 // Purge all unlocked memory. | 70 // Purge all unlocked memory. |
| 71 HostDiscardableSharedMemoryManager::current()->SetMemoryLimit(0); | 71 HostDiscardableSharedMemoryManager::current()->SetMemoryLimit(0); |
| 72 | 72 |
| 73 bool result = true; | 73 bool result = true; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 89 const size_t kNumberOfInstances = 1024 + 1; // >4GiB total. | 89 const size_t kNumberOfInstances = 1024 + 1; // >4GiB total. |
| 90 | 90 |
| 91 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | 91 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
| 92 | 92 |
| 93 scoped_ptr<base::DiscardableMemory> instances[kNumberOfInstances]; | 93 scoped_ptr<base::DiscardableMemory> instances[kNumberOfInstances]; |
| 94 for (auto& memory : instances) { | 94 for (auto& memory : instances) { |
| 95 PostTaskToInProcessRendererAndWait(base::Bind( | 95 PostTaskToInProcessRendererAndWait(base::Bind( |
| 96 &ChildDiscardableSharedMemoryManagerBrowserTest::AllocateLockedMemory, | 96 &ChildDiscardableSharedMemoryManagerBrowserTest::AllocateLockedMemory, |
| 97 kLargeSize, &memory)); | 97 kLargeSize, &memory)); |
| 98 ASSERT_TRUE(memory); | 98 ASSERT_TRUE(memory); |
| 99 void* addr = memory->Memory(); | 99 void* addr = memory->data(); |
| 100 ASSERT_NE(nullptr, addr); | 100 ASSERT_NE(nullptr, addr); |
| 101 PostTaskToInProcessRendererAndWait(base::Bind( | 101 PostTaskToInProcessRendererAndWait(base::Bind( |
| 102 &ChildDiscardableSharedMemoryManagerBrowserTest::UnlockMemory, | 102 &ChildDiscardableSharedMemoryManagerBrowserTest::UnlockMemory, |
| 103 memory.get())); | 103 memory.get())); |
| 104 } | 104 } |
| 105 | 105 |
| 106 for (auto& memory : instances) { | 106 for (auto& memory : instances) { |
| 107 PostTaskToInProcessRendererAndWait( | 107 PostTaskToInProcessRendererAndWait( |
| 108 base::Bind(&ChildDiscardableSharedMemoryManagerBrowserTest::FreeMemory, | 108 base::Bind(&ChildDiscardableSharedMemoryManagerBrowserTest::FreeMemory, |
| 109 base::Passed(&memory))); | 109 base::Passed(&memory))); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 131 kSize); | 131 kSize); |
| 132 | 132 |
| 133 PostTaskToInProcessRendererAndWait(base::Bind( | 133 PostTaskToInProcessRendererAndWait(base::Bind( |
| 134 &ChildDiscardableSharedMemoryManagerBrowserTest::ReleaseFreeMemory)); | 134 &ChildDiscardableSharedMemoryManagerBrowserTest::ReleaseFreeMemory)); |
| 135 | 135 |
| 136 EXPECT_EQ(HostDiscardableSharedMemoryManager::current()->GetBytesAllocated(), | 136 EXPECT_EQ(HostDiscardableSharedMemoryManager::current()->GetBytesAllocated(), |
| 137 0u); | 137 0u); |
| 138 } | 138 } |
| 139 | 139 |
| 140 } // content | 140 } // content |
| OLD | NEW |