| 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 |