| Index: content/browser/browser_io_surface_manager_mac.h
|
| diff --git a/content/browser/browser_io_surface_manager_mac.h b/content/browser/browser_io_surface_manager_mac.h
|
| deleted file mode 100644
|
| index 021d6fd099a352922e1121eb28108db44223d702..0000000000000000000000000000000000000000
|
| --- a/content/browser/browser_io_surface_manager_mac.h
|
| +++ /dev/null
|
| @@ -1,130 +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.
|
| -
|
| -#ifndef CONTENT_BROWSER_BROWSER_IO_SURFACE_MANAGER_MAC_H_
|
| -#define CONTENT_BROWSER_BROWSER_IO_SURFACE_MANAGER_MAC_H_
|
| -
|
| -#include <IOSurface/IOSurface.h>
|
| -#include <mach/mach.h>
|
| -
|
| -#include <map>
|
| -#include <utility>
|
| -
|
| -#include "base/containers/scoped_ptr_hash_map.h"
|
| -#include "base/mac/dispatch_source_mach.h"
|
| -#include "base/mac/scoped_cftyperef.h"
|
| -#include "base/mac/scoped_mach_port.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/memory/singleton.h"
|
| -#include "base/synchronization/lock.h"
|
| -#include "content/common/content_export.h"
|
| -#include "content/common/mac/io_surface_manager_messages.h"
|
| -#include "content/common/mac/io_surface_manager_token.h"
|
| -#include "ui/gfx/mac/io_surface_manager.h"
|
| -
|
| -namespace content {
|
| -
|
| -// TODO(ericrk): Use gfx::GenericSharedMemoryId as the |io_surface_id| in
|
| -// this file. Allows for more type-safe usage of GpuMemoryBufferIds as the
|
| -// type of the |io_surface_id|, as it is a typedef of
|
| -// gfx::GenericSharedMemoryId.
|
| -
|
| -// Implementation of IOSurfaceManager that provides a mechanism for child
|
| -// processes to register and acquire IOSurfaces through a Mach service.
|
| -class CONTENT_EXPORT BrowserIOSurfaceManager : public gfx::IOSurfaceManager {
|
| - public:
|
| - // Returns the global BrowserIOSurfaceManager.
|
| - static BrowserIOSurfaceManager* GetInstance();
|
| -
|
| - // Look up the IOSurfaceManager service port that's been registered with
|
| - // the bootstrap server. |pid| is the process ID of the service.
|
| - static base::mac::ScopedMachSendRight LookupServicePort(pid_t pid);
|
| -
|
| - // Returns the name of the service registered with the bootstrap server.
|
| - static std::string GetMachPortName();
|
| -
|
| - // Overridden from IOSurfaceManager:
|
| - bool RegisterIOSurface(gfx::IOSurfaceId io_surface_id,
|
| - int client_id,
|
| - IOSurfaceRef io_surface) override;
|
| - void UnregisterIOSurface(gfx::IOSurfaceId io_surface_id,
|
| - int client_id) override;
|
| - IOSurfaceRef AcquireIOSurface(gfx::IOSurfaceId io_surface_id) override;
|
| -
|
| - // Performs any necessary setup that cannot happen in the constructor.
|
| - void EnsureRunning();
|
| -
|
| - // Generate a unique unguessable token that the GPU process can use to
|
| - // register/unregister IOSurface for use by clients.
|
| - IOSurfaceManagerToken GenerateGpuProcessToken();
|
| -
|
| - // Invalidate the previously generated GPU process token.
|
| - void InvalidateGpuProcessToken();
|
| -
|
| - // Generate a unique unguessable token that the child process associated
|
| - // |child_process_id| can use to acquire IOSurface references.
|
| - IOSurfaceManagerToken GenerateChildProcessToken(int child_process_id);
|
| -
|
| - // Invalidate a previously generated child process token.
|
| - void InvalidateChildProcessToken(const IOSurfaceManagerToken& token);
|
| -
|
| - private:
|
| - friend class BrowserIOSurfaceManagerTest;
|
| - friend struct base::DefaultSingletonTraits<BrowserIOSurfaceManager>;
|
| -
|
| - BrowserIOSurfaceManager();
|
| - ~BrowserIOSurfaceManager() override;
|
| -
|
| - // Performs any initialization work.
|
| - bool Initialize();
|
| -
|
| - // Message handler that is invoked on |dispatch_source_| when an
|
| - // incoming message needs to be received.
|
| - void HandleRequest();
|
| -
|
| - // Message handlers that are invoked from HandleRequest.
|
| - void HandleRegisterIOSurfaceRequest(
|
| - const IOSurfaceManagerHostMsg_RegisterIOSurface& request,
|
| - IOSurfaceManagerMsg_RegisterIOSurfaceReply* reply);
|
| - bool HandleUnregisterIOSurfaceRequest(
|
| - const IOSurfaceManagerHostMsg_UnregisterIOSurface& request);
|
| - void HandleAcquireIOSurfaceRequest(
|
| - const IOSurfaceManagerHostMsg_AcquireIOSurface& request,
|
| - IOSurfaceManagerMsg_AcquireIOSurfaceReply* reply);
|
| -
|
| - // Whether or not the class has been initialized.
|
| - bool initialized_;
|
| -
|
| - // The Mach port on which the server listens.
|
| - base::mac::ScopedMachReceiveRight server_port_;
|
| -
|
| - // The dispatch source and queue on which Mach messages will be received.
|
| - scoped_ptr<base::DispatchSourceMach> dispatch_source_;
|
| -
|
| - // Stores the IOSurfaces for all GPU clients. The key contains the IOSurface
|
| - // id and the Child process unique id of the owner.
|
| - using IOSurfaceMapKey = std::pair<gfx::IOSurfaceId, int>;
|
| - using IOSurfaceMap =
|
| - std::map<IOSurfaceMapKey, base::ScopedCFTypeRef<IOSurfaceRef>>;
|
| - IOSurfaceMap io_surfaces_;
|
| -
|
| - // Stores the Child process unique id (RenderProcessHost ID) for every
|
| - // token.
|
| - using ChildProcessIdMap = std::map<IOSurfaceManagerToken, int>;
|
| - ChildProcessIdMap child_process_ids_;
|
| -
|
| - // Stores the GPU process token.
|
| - IOSurfaceManagerToken gpu_process_token_;
|
| -
|
| - // Mutex that guards |initialized_|, |io_surfaces_|, |child_process_ids_|
|
| - // and |gpu_process_token_|.
|
| - base::Lock lock_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(BrowserIOSurfaceManager);
|
| -};
|
| -
|
| -} // namespace content
|
| -
|
| -#endif // CONTENT_BROWSER_BROWSER_IO_SURFACE_MANAGER_MAC_H_
|
|
|