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 |