OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 <stddef.h> | 5 #include <stddef.h> |
6 #include <string.h> | 6 #include <string.h> |
7 | 7 |
8 #include "content/common/host_shared_bitmap_manager.h" | 8 #include "content/common/host_shared_bitmap_manager.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
(...skipping 11 matching lines...) Expand all Loading... |
22 size_t size_in_bytes; | 22 size_t size_in_bytes; |
23 EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes)); | 23 EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes)); |
24 std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory()); | 24 std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory()); |
25 bitmap->CreateAndMapAnonymous(size_in_bytes); | 25 bitmap->CreateAndMapAnonymous(size_in_bytes); |
26 memset(bitmap->memory(), 0xff, size_in_bytes); | 26 memset(bitmap->memory(), 0xff, size_in_bytes); |
27 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); | 27 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); |
28 | 28 |
29 HostSharedBitmapManagerClient client(manager_.get()); | 29 HostSharedBitmapManagerClient client(manager_.get()); |
30 base::SharedMemoryHandle handle; | 30 base::SharedMemoryHandle handle; |
31 bitmap->ShareToProcess(base::GetCurrentProcessHandle(), &handle); | 31 bitmap->ShareToProcess(base::GetCurrentProcessHandle(), &handle); |
32 client.ChildAllocatedSharedBitmap(size_in_bytes, handle, | 32 client.ChildAllocatedSharedBitmap(size_in_bytes, handle, id); |
33 base::GetCurrentProcessHandle(), id); | |
34 | 33 |
35 std::unique_ptr<cc::SharedBitmap> large_bitmap; | 34 std::unique_ptr<cc::SharedBitmap> large_bitmap; |
36 large_bitmap = manager_->GetSharedBitmapFromId(gfx::Size(1024, 1024), id); | 35 large_bitmap = manager_->GetSharedBitmapFromId(gfx::Size(1024, 1024), id); |
37 EXPECT_TRUE(large_bitmap.get() == NULL); | 36 EXPECT_TRUE(large_bitmap.get() == NULL); |
38 | 37 |
39 std::unique_ptr<cc::SharedBitmap> very_large_bitmap; | 38 std::unique_ptr<cc::SharedBitmap> very_large_bitmap; |
40 very_large_bitmap = | 39 very_large_bitmap = |
41 manager_->GetSharedBitmapFromId(gfx::Size(1, (1 << 30) | 1), id); | 40 manager_->GetSharedBitmapFromId(gfx::Size(1, (1 << 30) | 1), id); |
42 EXPECT_TRUE(very_large_bitmap.get() == NULL); | 41 EXPECT_TRUE(very_large_bitmap.get() == NULL); |
43 | 42 |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes)); | 107 EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes)); |
109 std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory()); | 108 std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory()); |
110 bitmap->CreateAndMapAnonymous(size_in_bytes); | 109 bitmap->CreateAndMapAnonymous(size_in_bytes); |
111 memset(bitmap->memory(), 0xff, size_in_bytes); | 110 memset(bitmap->memory(), 0xff, size_in_bytes); |
112 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); | 111 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); |
113 | 112 |
114 base::SharedMemoryHandle handle; | 113 base::SharedMemoryHandle handle; |
115 std::unique_ptr<HostSharedBitmapManagerClient> client( | 114 std::unique_ptr<HostSharedBitmapManagerClient> client( |
116 new HostSharedBitmapManagerClient(manager_.get())); | 115 new HostSharedBitmapManagerClient(manager_.get())); |
117 bitmap->ShareToProcess(base::GetCurrentProcessHandle(), &handle); | 116 bitmap->ShareToProcess(base::GetCurrentProcessHandle(), &handle); |
118 client->ChildAllocatedSharedBitmap(size_in_bytes, handle, | 117 client->ChildAllocatedSharedBitmap(size_in_bytes, handle, id); |
119 base::GetCurrentProcessHandle(), id); | |
120 | 118 |
121 std::unique_ptr<cc::SharedBitmap> shared_bitmap; | 119 std::unique_ptr<cc::SharedBitmap> shared_bitmap; |
122 shared_bitmap = manager_->GetSharedBitmapFromId(bitmap_size, id); | 120 shared_bitmap = manager_->GetSharedBitmapFromId(bitmap_size, id); |
123 ASSERT_TRUE(shared_bitmap.get() != NULL); | 121 ASSERT_TRUE(shared_bitmap.get() != NULL); |
124 | 122 |
125 EXPECT_EQ(1u, manager_->AllocatedBitmapCount()); | 123 EXPECT_EQ(1u, manager_->AllocatedBitmapCount()); |
126 client.reset(); | 124 client.reset(); |
127 EXPECT_EQ(0u, manager_->AllocatedBitmapCount()); | 125 EXPECT_EQ(0u, manager_->AllocatedBitmapCount()); |
128 | 126 |
129 std::unique_ptr<cc::SharedBitmap> shared_bitmap2; | 127 std::unique_ptr<cc::SharedBitmap> shared_bitmap2; |
(...skipping 10 matching lines...) Expand all Loading... |
140 size_t size_in_bytes; | 138 size_t size_in_bytes; |
141 EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes)); | 139 EXPECT_TRUE(cc::SharedBitmap::SizeInBytes(bitmap_size, &size_in_bytes)); |
142 std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory()); | 140 std::unique_ptr<base::SharedMemory> bitmap(new base::SharedMemory()); |
143 bitmap->CreateAndMapAnonymous(size_in_bytes); | 141 bitmap->CreateAndMapAnonymous(size_in_bytes); |
144 memset(bitmap->memory(), 0xff, size_in_bytes); | 142 memset(bitmap->memory(), 0xff, size_in_bytes); |
145 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); | 143 cc::SharedBitmapId id = cc::SharedBitmap::GenerateId(); |
146 HostSharedBitmapManagerClient client(manager_.get()); | 144 HostSharedBitmapManagerClient client(manager_.get()); |
147 | 145 |
148 base::SharedMemoryHandle handle; | 146 base::SharedMemoryHandle handle; |
149 bitmap->ShareToProcess(base::GetCurrentProcessHandle(), &handle); | 147 bitmap->ShareToProcess(base::GetCurrentProcessHandle(), &handle); |
150 client.ChildAllocatedSharedBitmap(size_in_bytes, handle, | 148 client.ChildAllocatedSharedBitmap(size_in_bytes, handle, id); |
151 base::GetCurrentProcessHandle(), id); | |
152 | 149 |
153 std::unique_ptr<base::SharedMemory> bitmap2(new base::SharedMemory()); | 150 std::unique_ptr<base::SharedMemory> bitmap2(new base::SharedMemory()); |
154 bitmap2->CreateAndMapAnonymous(size_in_bytes); | 151 bitmap2->CreateAndMapAnonymous(size_in_bytes); |
155 memset(bitmap2->memory(), 0x00, size_in_bytes); | 152 memset(bitmap2->memory(), 0x00, size_in_bytes); |
156 | 153 |
157 client.ChildAllocatedSharedBitmap(size_in_bytes, bitmap2->handle(), | 154 client.ChildAllocatedSharedBitmap(size_in_bytes, bitmap2->handle(), id); |
158 base::GetCurrentProcessHandle(), id); | |
159 | 155 |
160 std::unique_ptr<cc::SharedBitmap> shared_bitmap; | 156 std::unique_ptr<cc::SharedBitmap> shared_bitmap; |
161 shared_bitmap = manager_->GetSharedBitmapFromId(bitmap_size, id); | 157 shared_bitmap = manager_->GetSharedBitmapFromId(bitmap_size, id); |
162 ASSERT_TRUE(shared_bitmap.get() != NULL); | 158 ASSERT_TRUE(shared_bitmap.get() != NULL); |
163 EXPECT_EQ(memcmp(shared_bitmap->pixels(), bitmap->memory(), size_in_bytes), | 159 EXPECT_EQ(memcmp(shared_bitmap->pixels(), bitmap->memory(), size_in_bytes), |
164 0); | 160 0); |
165 client.ChildDeletedSharedBitmap(id); | 161 client.ChildDeletedSharedBitmap(id); |
166 } | 162 } |
167 | 163 |
168 } // namespace | 164 } // namespace |
169 } // namespace content | 165 } // namespace content |
OLD | NEW |