Index: webkit/glue/plugins/pepper_plugin_delegate.h |
=================================================================== |
--- webkit/glue/plugins/pepper_plugin_delegate.h (revision 69381) |
+++ webkit/glue/plugins/pepper_plugin_delegate.h (working copy) |
@@ -1,312 +0,0 @@ |
-// Copyright (c) 2010 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 WEBKIT_GLUE_PLUGINS_PEPPER_PLUGIN_DELEGATE_H_ |
-#define WEBKIT_GLUE_PLUGINS_PEPPER_PLUGIN_DELEGATE_H_ |
- |
-#include <string> |
- |
-#include "base/callback.h" |
-#include "base/platform_file.h" |
-#include "base/ref_counted.h" |
-#include "base/shared_memory.h" |
-#include "base/sync_socket.h" |
-#include "gfx/size.h" |
-#include "googleurl/src/gurl.h" |
-#include "ppapi/c/pp_completion_callback.h" |
-#include "ppapi/c/pp_errors.h" |
-#include "ppapi/c/pp_instance.h" |
-#include "ppapi/c/pp_stdint.h" |
-#include "webkit/fileapi/file_system_types.h" |
-#include "webkit/glue/plugins/pepper_dir_contents.h" |
- |
-class AudioMessageFilter; |
-class GURL; |
- |
-namespace base { |
-class MessageLoopProxy; |
-class Time; |
-} |
- |
-namespace fileapi { |
-class FileSystemCallbackDispatcher; |
-} |
- |
-namespace gfx { |
-class Rect; |
-} |
- |
-namespace gpu { |
-namespace gles2 { |
-class GLES2Implementation; |
-} |
-} |
- |
-namespace skia { |
-class PlatformCanvas; |
-} |
- |
-namespace WebKit { |
-class WebFileChooserCompletion; |
-struct WebFileChooserParams; |
-} |
- |
-struct PP_VideoCompressedDataBuffer_Dev; |
-struct PP_VideoDecoderConfig_Dev; |
-struct PP_VideoUncompressedDataBuffer_Dev; |
- |
-class TransportDIB; |
- |
-namespace pepper { |
- |
-class FileIO; |
-class PluginInstance; |
-class FullscreenContainer; |
- |
-// Virtual interface that the browser implements to implement features for |
-// Pepper plugins. |
-class PluginDelegate { |
- public: |
- // This class is implemented by the PluginDelegate implementation and is |
- // designed to manage the lifetime and communicatin with the proxy's |
- // HostDispatcher for out-of-process pepper plugins. |
- // |
- // The point of this is to avoid having a relationship from the pepper plugin |
- // implementation to the ppapi proxy code. Otherwise, things like the IPC |
- // system will be dependencies of the webkit directory, which we don't want. |
- // |
- // The PluginModule will scope the lifetime of this object to its own |
- // lifetime, so the implementation can use this to manage the HostDispatcher |
- // lifetime without introducing the dependency. |
- class OutOfProcessProxy { |
- public: |
- virtual ~OutOfProcessProxy() {} |
- |
- // Implements GetInterface for the proxied plugin. |
- virtual const void* GetProxiedInterface(const char* name) = 0; |
- |
- // Notification to the out-of-process layer that the given plugin instance |
- // has been created. This will happen before the normal PPB_Instance method |
- // calls so the out-of-process code can set up the tracking information for |
- // the new instance. |
- virtual void AddInstance(PP_Instance instance) = 0; |
- |
- // Like AddInstance but removes the given instance. This is called after |
- // regular instance shutdown so the out-of-process code can clean up its |
- // tracking information. |
- virtual void RemoveInstance(PP_Instance instance) = 0; |
- }; |
- |
- // Represents an image. This is to allow the browser layer to supply a correct |
- // image representation. In Chrome, this will be a TransportDIB. |
- class PlatformImage2D { |
- public: |
- virtual ~PlatformImage2D() {} |
- |
- // Caller will own the returned pointer, returns NULL on failure. |
- virtual skia::PlatformCanvas* Map() = 0; |
- |
- // Returns the platform-specific shared memory handle of the data backing |
- // this image. This is used by PPAPI proxying to send the image to the |
- // out-of-process plugin. On success, the size in bytes will be placed into |
- // |*bytes_count|. Returns 0 on failure. |
- virtual intptr_t GetSharedMemoryHandle(uint32* byte_count) const = 0; |
- |
- virtual TransportDIB* GetTransportDIB() const = 0; |
- }; |
- |
- class PlatformContext3D { |
- public: |
- virtual ~PlatformContext3D() {} |
- |
- // Initialize the context. |
- virtual bool Init() = 0; |
- |
- // Present the rendered frame to the compositor. |
- virtual bool SwapBuffers() = 0; |
- |
- // Get the last EGL error. |
- virtual unsigned GetError() = 0; |
- |
- // Resize the backing texture used as a back buffer by OpenGL. |
- virtual void ResizeBackingTexture(const gfx::Size& size) = 0; |
- |
- // Set an optional callback that will be invoked when the side effects of |
- // a SwapBuffers call become visible to the compositor. Takes ownership |
- // of the callback. |
- virtual void SetSwapBuffersCallback(Callback0::Type* callback) = 0; |
- |
- // If the plugin instance is backed by an OpenGL, return its ID in the |
- // compositors namespace. Otherwise return 0. Returns 0 by default. |
- virtual unsigned GetBackingTextureId() = 0; |
- |
- // This call will return the address of the GLES2 implementation for this |
- // context that is constructed in Initialize() and is valid until this |
- // context is destroyed. |
- virtual gpu::gles2::GLES2Implementation* GetGLES2Implementation() = 0; |
- }; |
- |
- class PlatformAudio { |
- public: |
- class Client { |
- protected: |
- virtual ~Client() {} |
- |
- public: |
- // Called when the stream is created. |
- virtual void StreamCreated(base::SharedMemoryHandle shared_memory_handle, |
- size_t shared_memory_size, |
- base::SyncSocket::Handle socket) = 0; |
- }; |
- |
- // Starts the playback. Returns false on error or if called before the |
- // stream is created or after the stream is closed. |
- virtual bool StartPlayback() = 0; |
- |
- // Stops the playback. Returns false on error or if called before the stream |
- // is created or after the stream is closed. |
- virtual bool StopPlayback() = 0; |
- |
- // Closes the stream. Make sure to call this before the object is |
- // destructed. |
- virtual void ShutDown() = 0; |
- |
- protected: |
- virtual ~PlatformAudio() {} |
- }; |
- |
- class PlatformVideoDecoder { |
- public: |
- virtual ~PlatformVideoDecoder() {} |
- |
- // Returns false on failure. |
- virtual bool Decode(PP_VideoCompressedDataBuffer_Dev& input_buffer) = 0; |
- virtual int32_t Flush(PP_CompletionCallback& callback) = 0; |
- virtual bool ReturnUncompressedDataBuffer( |
- PP_VideoUncompressedDataBuffer_Dev& buffer) = 0; |
- }; |
- |
- // Indicates that the given instance has been created. |
- virtual void InstanceCreated(pepper::PluginInstance* instance) = 0; |
- |
- // Indicates that the given instance is being destroyed. This is called from |
- // the destructor, so it's important that the instance is not dereferenced |
- // from this call. |
- virtual void InstanceDeleted(pepper::PluginInstance* instance) = 0; |
- |
- // The caller will own the pointer returned from this. |
- virtual PlatformImage2D* CreateImage2D(int width, int height) = 0; |
- |
- // The caller will own the pointer returned from this. |
- virtual PlatformContext3D* CreateContext3D() = 0; |
- |
- // The caller will own the pointer returned from this. |
- virtual PlatformVideoDecoder* CreateVideoDecoder( |
- const PP_VideoDecoderConfig_Dev& decoder_config) = 0; |
- |
- // The caller will own the pointer returned from this. |
- virtual PlatformAudio* CreateAudio(uint32_t sample_rate, |
- uint32_t sample_count, |
- PlatformAudio::Client* client) = 0; |
- |
- // Notifies that the number of find results has changed. |
- virtual void NumberOfFindResultsChanged(int identifier, |
- int total, |
- bool final_result) = 0; |
- |
- // Notifies that the index of the currently selected item has been updated. |
- virtual void SelectedFindResultChanged(int identifier, int index) = 0; |
- |
- // Runs a file chooser. |
- virtual bool RunFileChooser( |
- const WebKit::WebFileChooserParams& params, |
- WebKit::WebFileChooserCompletion* chooser_completion) = 0; |
- |
- // Sends an async IPC to open a file. |
- typedef Callback2<base::PlatformFileError, base::PlatformFile |
- >::Type AsyncOpenFileCallback; |
- virtual bool AsyncOpenFile(const FilePath& path, |
- int flags, |
- AsyncOpenFileCallback* callback) = 0; |
- virtual bool OpenFileSystem( |
- const GURL& url, |
- fileapi::FileSystemType type, |
- long long size, |
- fileapi::FileSystemCallbackDispatcher* dispatcher) = 0; |
- virtual bool MakeDirectory( |
- const FilePath& path, |
- bool recursive, |
- fileapi::FileSystemCallbackDispatcher* dispatcher) = 0; |
- virtual bool Query(const FilePath& path, |
- fileapi::FileSystemCallbackDispatcher* dispatcher) = 0; |
- virtual bool Touch(const FilePath& path, |
- const base::Time& last_access_time, |
- const base::Time& last_modified_time, |
- fileapi::FileSystemCallbackDispatcher* dispatcher) = 0; |
- virtual bool Delete(const FilePath& path, |
- fileapi::FileSystemCallbackDispatcher* dispatcher) = 0; |
- virtual bool Rename(const FilePath& file_path, |
- const FilePath& new_file_path, |
- fileapi::FileSystemCallbackDispatcher* dispatcher) = 0; |
- virtual bool ReadDirectory( |
- const FilePath& directory_path, |
- fileapi::FileSystemCallbackDispatcher* dispatcher) = 0; |
- |
- virtual base::PlatformFileError OpenModuleLocalFile( |
- const std::string& module_name, |
- const FilePath& path, |
- int flags, |
- base::PlatformFile* file) = 0; |
- virtual base::PlatformFileError RenameModuleLocalFile( |
- const std::string& module_name, |
- const FilePath& path_from, |
- const FilePath& path_to) = 0; |
- virtual base::PlatformFileError DeleteModuleLocalFileOrDir( |
- const std::string& module_name, |
- const FilePath& path, |
- bool recursive) = 0; |
- virtual base::PlatformFileError CreateModuleLocalDir( |
- const std::string& module_name, |
- const FilePath& path) = 0; |
- virtual base::PlatformFileError QueryModuleLocalFile( |
- const std::string& module_name, |
- const FilePath& path, |
- base::PlatformFileInfo* info) = 0; |
- virtual base::PlatformFileError GetModuleLocalDirContents( |
- const std::string& module_name, |
- const FilePath& path, |
- PepperDirContents* contents) = 0; |
- |
- // Returns a MessageLoopProxy instance associated with the message loop |
- // of the file thread in this renderer. |
- virtual scoped_refptr<base::MessageLoopProxy> |
- GetFileThreadMessageLoopProxy() = 0; |
- |
- // Create a fullscreen container for a plugin instance. This effectively |
- // switches the plugin to fullscreen. |
- virtual FullscreenContainer* CreateFullscreenContainer( |
- PluginInstance* instance) = 0; |
- |
- // Returns a string with the name of the default 8-bit char encoding. |
- virtual std::string GetDefaultEncoding() = 0; |
- |
- // Sets the mininum and maximium zoom factors. |
- virtual void ZoomLimitsChanged(double minimum_factor, |
- double maximum_factor) = 0; |
- |
- // Retrieves the proxy information for the given URL in PAC format. On error, |
- // this will return an empty string. |
- virtual std::string ResolveProxy(const GURL& url) = 0; |
- |
- // Tell the browser when resource loading starts/ends. |
- virtual void DidStartLoading() = 0; |
- virtual void DidStopLoading() = 0; |
- |
- // Sets restrictions on how the content can be used (i.e. no print/copy). |
- virtual void SetContentRestriction(int restrictions) = 0; |
-}; |
- |
-} // namespace pepper |
- |
-#endif // WEBKIT_GLUE_PLUGINS_PEPPER_PLUGIN_DELEGATE_H_ |