| Index: content/browser/browser_io_surface_manager_mac_unittest.cc
|
| diff --git a/content/browser/browser_io_surface_manager_mac_unittest.cc b/content/browser/browser_io_surface_manager_mac_unittest.cc
|
| deleted file mode 100644
|
| index 38de070ead532ef2df2d53f49a2f68f4f7b85981..0000000000000000000000000000000000000000
|
| --- a/content/browser/browser_io_surface_manager_mac_unittest.cc
|
| +++ /dev/null
|
| @@ -1,331 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "content/browser/browser_io_surface_manager_mac.h"
|
| -
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "ui/gfx/mac/io_surface_manager.h"
|
| -
|
| -namespace content {
|
| -
|
| -class BrowserIOSurfaceManagerTest : public testing::Test {
|
| - public:
|
| - void EnsureRunning() { io_surface_manager_.EnsureRunning(); }
|
| -
|
| - IOSurfaceManagerToken GenerateGpuProcessToken() {
|
| - return io_surface_manager_.GenerateGpuProcessToken();
|
| - }
|
| -
|
| - void InvalidateGpuProcessToken() {
|
| - io_surface_manager_.InvalidateGpuProcessToken();
|
| - }
|
| -
|
| - IOSurfaceManagerToken GenerateChildProcessToken(int child_process_id) {
|
| - return io_surface_manager_.GenerateChildProcessToken(child_process_id);
|
| - }
|
| -
|
| - void InvalidateChildProcessToken(const IOSurfaceManagerToken& token) {
|
| - io_surface_manager_.InvalidateChildProcessToken(token);
|
| - }
|
| -
|
| - bool HandleRegisterIOSurfaceRequest(
|
| - const IOSurfaceManagerHostMsg_RegisterIOSurface& request,
|
| - IOSurfaceManagerMsg_RegisterIOSurfaceReply* reply) {
|
| - io_surface_manager_.HandleRegisterIOSurfaceRequest(request, reply);
|
| - return reply->result;
|
| - }
|
| -
|
| - bool HandleUnregisterIOSurfaceRequest(
|
| - const IOSurfaceManagerHostMsg_UnregisterIOSurface& request) {
|
| - return io_surface_manager_.HandleUnregisterIOSurfaceRequest(request);
|
| - }
|
| -
|
| - bool HandleAcquireIOSurfaceRequest(
|
| - const IOSurfaceManagerHostMsg_AcquireIOSurface& request,
|
| - IOSurfaceManagerMsg_AcquireIOSurfaceReply* reply) {
|
| - io_surface_manager_.HandleAcquireIOSurfaceRequest(request, reply);
|
| - return reply->result;
|
| - }
|
| -
|
| - // Helper function used to register an IOSurface for testing.
|
| - void RegisterIOSurface(const IOSurfaceManagerToken& gpu_process_token,
|
| - int io_surface_id,
|
| - int client_id,
|
| - mach_port_t io_surface_port) {
|
| - IOSurfaceManagerHostMsg_RegisterIOSurface request = {{0}};
|
| - IOSurfaceManagerMsg_RegisterIOSurfaceReply reply = {{0}};
|
| - request.io_surface_id = io_surface_id;
|
| - request.client_id = client_id;
|
| - request.io_surface_port.name = GetIOSurfaceMachPort();
|
| - memcpy(request.token_name, gpu_process_token.name,
|
| - sizeof(gpu_process_token.name));
|
| - ASSERT_TRUE(HandleRegisterIOSurfaceRequest(request, &reply));
|
| - ASSERT_TRUE(reply.result);
|
| - }
|
| -
|
| - mach_port_t GetIOSurfaceMachPort() {
|
| - if (!io_surface_) {
|
| - io_surface_.reset(gfx::IOSurfaceManager::CreateIOSurface(
|
| - gfx::Size(32, 32), gfx::BufferFormat::BGRA_8888));
|
| - io_surface_port_.reset(IOSurfaceCreateMachPort(io_surface_));
|
| - }
|
| - return io_surface_port_.get();
|
| - }
|
| -
|
| - private:
|
| - BrowserIOSurfaceManager io_surface_manager_;
|
| - base::ScopedCFTypeRef<IOSurfaceRef> io_surface_;
|
| - base::mac::ScopedMachSendRight io_surface_port_;
|
| -};
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest, EnsureRunning) {
|
| - EnsureRunning();
|
| - base::mac::ScopedMachSendRight service_port =
|
| - BrowserIOSurfaceManager::LookupServicePort(getpid());
|
| - EXPECT_TRUE(service_port.is_valid());
|
| -}
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest, RegisterIOSurfaceSucceeds) {
|
| - const int kIOSurfaceId = 1;
|
| - const int kClientId = 1;
|
| -
|
| - base::ScopedCFTypeRef<IOSurfaceRef> io_surface(
|
| - gfx::IOSurfaceManager::CreateIOSurface(gfx::Size(32, 32),
|
| - gfx::BufferFormat::BGRA_8888));
|
| - base::mac::ScopedMachSendRight io_surface_port(
|
| - IOSurfaceCreateMachPort(io_surface));
|
| -
|
| - IOSurfaceManagerToken gpu_process_token = GenerateGpuProcessToken();
|
| -
|
| - IOSurfaceManagerHostMsg_RegisterIOSurface request = {{0}};
|
| - IOSurfaceManagerMsg_RegisterIOSurfaceReply reply = {{0}};
|
| -
|
| - request.io_surface_id = kIOSurfaceId;
|
| - request.client_id = kClientId;
|
| - request.io_surface_port.name = GetIOSurfaceMachPort();
|
| - memcpy(request.token_name, gpu_process_token.name,
|
| - sizeof(gpu_process_token.name));
|
| - EXPECT_TRUE(HandleRegisterIOSurfaceRequest(request, &reply));
|
| - EXPECT_TRUE(reply.result);
|
| -}
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest, RegisterIOSurfaceFailsWithInvalidToken) {
|
| - const int kIOSurfaceId = 1;
|
| - const int kClientId = 1;
|
| -
|
| - IOSurfaceManagerHostMsg_RegisterIOSurface request = {{0}};
|
| - IOSurfaceManagerMsg_RegisterIOSurfaceReply reply = {{0}};
|
| - request.io_surface_id = kIOSurfaceId;
|
| - request.client_id = kClientId;
|
| - // Fails as request doesn't contain a valid token.
|
| - EXPECT_FALSE(HandleRegisterIOSurfaceRequest(request, &reply));
|
| -}
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest,
|
| - RegisterIOSurfaceFailsWithChildProcessToken) {
|
| - const int kIOSurfaceId = 1;
|
| - const int kClientId = 1;
|
| -
|
| - IOSurfaceManagerToken child_process_token =
|
| - GenerateChildProcessToken(kClientId);
|
| -
|
| - IOSurfaceManagerHostMsg_RegisterIOSurface request = {{0}};
|
| - IOSurfaceManagerMsg_RegisterIOSurfaceReply reply = {{0}};
|
| - request.io_surface_id = kIOSurfaceId;
|
| - request.client_id = kClientId;
|
| - memcpy(request.token_name, child_process_token.name,
|
| - sizeof(child_process_token.name));
|
| - // Fails as child process is not allowed to register IOSurfaces.
|
| - EXPECT_FALSE(HandleRegisterIOSurfaceRequest(request, &reply));
|
| -}
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest, RegisterIOSurfaceFailsWithInvalidPort) {
|
| - const int kIOSurfaceId = 1;
|
| - const int kClientId = 1;
|
| - const mach_port_t kIOInvalidSurfacePortId = 100u;
|
| -
|
| - base::ScopedCFTypeRef<IOSurfaceRef> io_surface(
|
| - gfx::IOSurfaceManager::CreateIOSurface(gfx::Size(32, 32),
|
| - gfx::BufferFormat::BGRA_8888));
|
| - base::mac::ScopedMachSendRight io_surface_port(
|
| - IOSurfaceCreateMachPort(io_surface));
|
| -
|
| - IOSurfaceManagerToken gpu_process_token = GenerateGpuProcessToken();
|
| -
|
| - IOSurfaceManagerHostMsg_RegisterIOSurface request = {{0}};
|
| - IOSurfaceManagerMsg_RegisterIOSurfaceReply reply = {{0}};
|
| -
|
| - request.io_surface_id = kIOSurfaceId;
|
| - request.client_id = kClientId;
|
| - request.io_surface_port.name = kIOInvalidSurfacePortId;
|
| - memcpy(request.token_name, gpu_process_token.name,
|
| - sizeof(gpu_process_token.name));
|
| - EXPECT_FALSE(HandleRegisterIOSurfaceRequest(request, &reply));
|
| - EXPECT_FALSE(reply.result);
|
| -}
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest, UnregisterIOSurfaceSucceeds) {
|
| - const int kIOSurfaceId = 1;
|
| - const int kClientId = 1;
|
| -
|
| - IOSurfaceManagerToken gpu_process_token = GenerateGpuProcessToken();
|
| -
|
| - RegisterIOSurface(gpu_process_token, kIOSurfaceId, kClientId, 0);
|
| -
|
| - IOSurfaceManagerHostMsg_UnregisterIOSurface request = {{0}};
|
| - request.io_surface_id = kIOSurfaceId;
|
| - request.client_id = kClientId;
|
| - memcpy(request.token_name, gpu_process_token.name,
|
| - sizeof(gpu_process_token.name));
|
| - EXPECT_TRUE(HandleUnregisterIOSurfaceRequest(request));
|
| -}
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest, UnregisterIOSurfaceFailsWithInvalidToken) {
|
| - const int kIOSurfaceId = 1;
|
| - const int kClientId = 1;
|
| -
|
| - IOSurfaceManagerToken gpu_process_token = GenerateGpuProcessToken();
|
| -
|
| - RegisterIOSurface(gpu_process_token, kIOSurfaceId, kClientId, 0);
|
| -
|
| - IOSurfaceManagerHostMsg_UnregisterIOSurface request = {{0}};
|
| - request.io_surface_id = kIOSurfaceId;
|
| - request.client_id = kClientId;
|
| - // Fails as request doesn't contain valid GPU token.
|
| - EXPECT_FALSE(HandleUnregisterIOSurfaceRequest(request));
|
| -}
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest,
|
| - UnregisterIOSurfaceFailsWithChildProcessToken) {
|
| - const int kIOSurfaceId = 1;
|
| - const int kClientId = 1;
|
| -
|
| - IOSurfaceManagerToken gpu_process_token = GenerateGpuProcessToken();
|
| - IOSurfaceManagerToken child_process_token =
|
| - GenerateChildProcessToken(kClientId);
|
| -
|
| - RegisterIOSurface(gpu_process_token, kIOSurfaceId, kClientId, 0);
|
| -
|
| - IOSurfaceManagerHostMsg_UnregisterIOSurface request = {{0}};
|
| - request.io_surface_id = kIOSurfaceId;
|
| - request.client_id = kClientId;
|
| - memcpy(request.token_name, child_process_token.name,
|
| - sizeof(child_process_token.name));
|
| - // Fails as child process is not allowed to unregister IOSurfaces.
|
| - EXPECT_FALSE(HandleUnregisterIOSurfaceRequest(request));
|
| -}
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest, AcquireIOSurfaceSucceeds) {
|
| - const int kIOSurfaceId = 10;
|
| - const int kClientId = 1;
|
| - const mach_port_t io_surface_port = GetIOSurfaceMachPort();
|
| -
|
| - IOSurfaceManagerToken gpu_process_token = GenerateGpuProcessToken();
|
| - IOSurfaceManagerToken child_process_token =
|
| - GenerateChildProcessToken(kClientId);
|
| -
|
| - RegisterIOSurface(gpu_process_token, kIOSurfaceId, kClientId,
|
| - io_surface_port);
|
| -
|
| - IOSurfaceManagerHostMsg_AcquireIOSurface request = {{0}};
|
| - IOSurfaceManagerMsg_AcquireIOSurfaceReply reply = {{0}};
|
| - request.io_surface_id = kIOSurfaceId;
|
| - memcpy(request.token_name, child_process_token.name,
|
| - sizeof(child_process_token.name));
|
| - EXPECT_TRUE(HandleAcquireIOSurfaceRequest(request, &reply));
|
| -}
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest, AcquireIOSurfaceFailsWithInvalidToken) {
|
| - const int kIOSurfaceId = 10;
|
| - const int kClientId = 1;
|
| - const mach_port_t io_surface_port = GetIOSurfaceMachPort();
|
| -
|
| - IOSurfaceManagerToken gpu_process_token = GenerateGpuProcessToken();
|
| -
|
| - RegisterIOSurface(gpu_process_token, kIOSurfaceId, kClientId,
|
| - io_surface_port);
|
| -
|
| - IOSurfaceManagerHostMsg_AcquireIOSurface request = {{0}};
|
| - IOSurfaceManagerMsg_AcquireIOSurfaceReply reply = {{0}};
|
| - request.io_surface_id = kIOSurfaceId;
|
| - // Fails as request doesn't contain valid token.
|
| - EXPECT_FALSE(HandleAcquireIOSurfaceRequest(request, &reply));
|
| -}
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest,
|
| - AcquireIOSurfaceFailsWithWrongChildProcessToken) {
|
| - const int kIOSurfaceId = 10;
|
| - const int kClientId1 = 1;
|
| - const int kClientId2 = 2;
|
| - const mach_port_t io_surface_port = GetIOSurfaceMachPort();
|
| -
|
| - IOSurfaceManagerToken gpu_process_token = GenerateGpuProcessToken();
|
| - IOSurfaceManagerToken child_process_token2 =
|
| - GenerateChildProcessToken(kClientId2);
|
| -
|
| - RegisterIOSurface(gpu_process_token, kIOSurfaceId, kClientId1,
|
| - io_surface_port);
|
| -
|
| - IOSurfaceManagerHostMsg_AcquireIOSurface request = {{0}};
|
| - IOSurfaceManagerMsg_AcquireIOSurfaceReply reply = {{0}};
|
| - request.io_surface_id = kIOSurfaceId;
|
| - memcpy(request.token_name, child_process_token2.name,
|
| - sizeof(child_process_token2.name));
|
| - EXPECT_TRUE(HandleAcquireIOSurfaceRequest(request, &reply));
|
| - // Fails as child process 2 is not allowed to acquire this IOSurface.
|
| - EXPECT_EQ(static_cast<mach_port_t>(MACH_PORT_NULL),
|
| - reply.io_surface_port.name);
|
| -}
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest,
|
| - AcquireIOSurfaceFailsAfterInvalidatingChildProcessToken) {
|
| - const int kIOSurfaceId = 10;
|
| - const int kClientId = 1;
|
| - const mach_port_t io_surface_port = GetIOSurfaceMachPort();
|
| -
|
| - IOSurfaceManagerToken gpu_process_token = GenerateGpuProcessToken();
|
| - IOSurfaceManagerToken child_process_token =
|
| - GenerateChildProcessToken(kClientId);
|
| -
|
| - RegisterIOSurface(gpu_process_token, kIOSurfaceId, kClientId,
|
| - io_surface_port);
|
| -
|
| - InvalidateChildProcessToken(child_process_token);
|
| -
|
| - IOSurfaceManagerHostMsg_AcquireIOSurface request = {{0}};
|
| - IOSurfaceManagerMsg_AcquireIOSurfaceReply reply = {{0}};
|
| - request.io_surface_id = kIOSurfaceId;
|
| - memcpy(request.token_name, child_process_token.name,
|
| - sizeof(child_process_token.name));
|
| - // Fails as token is no longer valid.
|
| - EXPECT_FALSE(HandleAcquireIOSurfaceRequest(request, &reply));
|
| -}
|
| -
|
| -TEST_F(BrowserIOSurfaceManagerTest,
|
| - AcquireIOSurfaceAfterInvalidatingGpuProcessToken) {
|
| - const int kIOSurfaceId = 10;
|
| - const int kClientId = 1;
|
| - const mach_port_t io_surface_port = GetIOSurfaceMachPort();
|
| -
|
| - IOSurfaceManagerToken gpu_process_token = GenerateGpuProcessToken();
|
| - IOSurfaceManagerToken child_process_token =
|
| - GenerateChildProcessToken(kClientId);
|
| -
|
| - RegisterIOSurface(gpu_process_token, kIOSurfaceId, kClientId,
|
| - io_surface_port);
|
| -
|
| - InvalidateGpuProcessToken();
|
| -
|
| - IOSurfaceManagerHostMsg_AcquireIOSurface request = {{0}};
|
| - IOSurfaceManagerMsg_AcquireIOSurfaceReply reply = {{0}};
|
| - request.io_surface_id = kIOSurfaceId;
|
| - memcpy(request.token_name, child_process_token.name,
|
| - sizeof(child_process_token.name));
|
| - EXPECT_TRUE(HandleAcquireIOSurfaceRequest(request, &reply));
|
| - // Should return invalid port.
|
| - EXPECT_EQ(static_cast<mach_port_t>(MACH_PORT_NULL),
|
| - reply.io_surface_port.name);
|
| -}
|
| -
|
| -} // namespace content
|
|
|