| Index: webkit/plugins/ppapi/plugin_delegate.h
|
| ===================================================================
|
| --- webkit/plugins/ppapi/plugin_delegate.h (revision 213561)
|
| +++ webkit/plugins/ppapi/plugin_delegate.h (working copy)
|
| @@ -1,712 +0,0 @@
|
| -// Copyright (c) 2012 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_PLUGINS_PPAPI_PLUGIN_DELEGATE_H_
|
| -#define WEBKIT_PLUGINS_PPAPI_PLUGIN_DELEGATE_H_
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/callback.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/shared_memory.h"
|
| -#include "base/message_loop/message_loop_proxy.h"
|
| -#include "base/platform_file.h"
|
| -#include "base/process.h"
|
| -#include "base/sync_socket.h"
|
| -#include "base/time/time.h"
|
| -#include "ipc/ipc_platform_file.h"
|
| -#include "media/video/capture/video_capture.h"
|
| -#include "media/video/video_decode_accelerator.h"
|
| -#include "ppapi/c/dev/pp_video_dev.h"
|
| -#include "ppapi/c/dev/ppb_device_ref_dev.h"
|
| -#include "ppapi/c/pp_completion_callback.h"
|
| -#include "ppapi/c/pp_errors.h"
|
| -#include "ppapi/c/pp_file_info.h"
|
| -#include "ppapi/c/pp_instance.h"
|
| -#include "ppapi/c/pp_resource.h"
|
| -#include "ppapi/c/pp_stdint.h"
|
| -#include "ppapi/c/ppb_tcp_socket.h"
|
| -#include "ppapi/c/private/ppb_flash.h"
|
| -#include "ppapi/c/private/ppb_tcp_socket_private.h"
|
| -#include "ppapi/c/private/ppb_udp_socket_private.h"
|
| -#include "ppapi/shared_impl/dir_contents.h"
|
| -#include "ui/gfx/size.h"
|
| -#include "url/gurl.h"
|
| -#include "webkit/common/fileapi/file_system_types.h"
|
| -#include "webkit/common/quota/quota_types.h"
|
| -#include "webkit/plugins/webkit_plugins_export.h"
|
| -
|
| -class GURL;
|
| -class SkBitmap;
|
| -class SkCanvas;
|
| -class TransportDIB;
|
| -struct PP_NetAddress_Private;
|
| -
|
| -namespace IPC {
|
| -struct ChannelHandle;
|
| -}
|
| -
|
| -namespace WebKit {
|
| -class WebGraphicsContext3D;
|
| -}
|
| -
|
| -namespace base {
|
| -class MessageLoopProxy;
|
| -class Time;
|
| -}
|
| -
|
| -namespace content {
|
| -class RendererPpapiHost;
|
| -}
|
| -
|
| -namespace fileapi {
|
| -struct DirectoryEntry;
|
| -}
|
| -
|
| -namespace gfx {
|
| -class Point;
|
| -}
|
| -
|
| -namespace gpu {
|
| -class CommandBuffer;
|
| -struct Mailbox;
|
| -}
|
| -
|
| -namespace ppapi {
|
| -class PepperFilePath;
|
| -class PpapiPermissions;
|
| -class PPB_X509Certificate_Fields;
|
| -class SocketOptionData;
|
| -struct DeviceRefData;
|
| -struct HostPortPair;
|
| -struct Preferences;
|
| -
|
| -namespace thunk {
|
| -class ResourceCreationAPI;
|
| -}
|
| -
|
| -} // namespace ppapi
|
| -
|
| -namespace WebKit {
|
| -typedef SkCanvas WebCanvas;
|
| -class WebGamepads;
|
| -class WebPlugin;
|
| -struct WebCompositionUnderline;
|
| -struct WebCursorInfo;
|
| -struct WebURLError;
|
| -class WebURLLoaderClient;
|
| -class WebURLResponse;
|
| -}
|
| -
|
| -namespace webkit_glue {
|
| -class P2PTransport;
|
| -class NetworkListObserver;
|
| -} // namespace webkit_glue
|
| -
|
| -namespace webkit {
|
| -
|
| -namespace ppapi {
|
| -
|
| -class FileIO;
|
| -class FullscreenContainer;
|
| -class PluginInstanceImpl;
|
| -class PluginModule;
|
| -class PPB_Broker_Impl;
|
| -class PPB_Flash_Menu_Impl;
|
| -class PPB_ImageData_Impl;
|
| -class PPB_TCPSocket_Private_Impl;
|
| -
|
| -// Virtual interface that the browser implements to implement features for
|
| -// PPAPI plugins.
|
| -class PluginDelegate {
|
| - public:
|
| - // This interface is used for the PluginModule to tell the code in charge of
|
| - // re-using modules which modules currently exist.
|
| - //
|
| - // It is different than the other interfaces, which are scoped to the
|
| - // lifetime of the plugin instance. The implementor of this interface must
|
| - // outlive all plugin modules, and is in practice a singleton
|
| - // (PepperPluginRegistry). This requirement means we can't do the obvious
|
| - // thing and just have a PluginDelegate call for this purpose (when the
|
| - // module is being deleted, we know there are no more PluginInstances that
|
| - // have PluginDelegates).
|
| - class ModuleLifetime {
|
| - public:
|
| - // Notification that the given plugin object is no longer usable. It either
|
| - // indicates the module was deleted, or that it has crashed.
|
| - //
|
| - // This can be called from the module's destructor, so you should not
|
| - // dereference the given pointer.
|
| - virtual void PluginModuleDead(PluginModule* dead_module) = 0;
|
| - };
|
| -
|
| - // This class is implemented by the PluginDelegate implementation and is
|
| - // designed to manage the lifetime and communication with the proxy's
|
| - // HostDispatcher for out-of-process PPAPI plugins.
|
| - //
|
| - // The point of this is to avoid having a relationship from the PPAPI 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;
|
| -
|
| - virtual base::ProcessId GetPeerProcessId() = 0;
|
| - virtual int GetPluginChildId() = 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 SkCanvas* 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 WEBKIT_PLUGINS_EXPORT PlatformGraphics2D {
|
| - public:
|
| - virtual ~PlatformGraphics2D() {}
|
| -
|
| - virtual bool ReadImageData(PP_Resource image, const PP_Point* top_left) = 0;
|
| -
|
| - // Assciates this device with the given plugin instance. You can pass NULL
|
| - // to clear the existing device. Returns true on success. In this case, a
|
| - // repaint of the page will also be scheduled. Failure means that the device
|
| - // is already bound to a different instance, and nothing will happen.
|
| - virtual bool BindToInstance(PluginInstanceImpl* new_instance) = 0;
|
| -
|
| - // Paints the current backing store to the web page.
|
| - virtual void Paint(WebKit::WebCanvas* canvas,
|
| - const gfx::Rect& plugin_rect,
|
| - const gfx::Rect& paint_rect) = 0;
|
| -
|
| - // Notifications about the view's progress painting. See PluginInstance.
|
| - // These messages are used to send Flush callbacks to the plugin.
|
| - virtual void ViewWillInitiatePaint() = 0;
|
| - virtual void ViewInitiatedPaint() = 0;
|
| - virtual void ViewFlushedPaint() = 0;
|
| -
|
| - virtual bool IsAlwaysOpaque() const = 0;
|
| - virtual void SetScale(float scale) = 0;
|
| - virtual float GetScale() const = 0;
|
| - virtual PPB_ImageData_Impl* ImageData() = 0;
|
| - };
|
| -
|
| - class PlatformContext3D {
|
| - public:
|
| - virtual ~PlatformContext3D() {}
|
| -
|
| - // Initialize the context.
|
| - virtual bool Init(const int32* attrib_list,
|
| - PlatformContext3D* share_context) = 0;
|
| -
|
| - // Retrieves the mailbox name for the front buffer backing the context.
|
| - virtual void GetBackingMailbox(::gpu::Mailbox* mailbox) = 0;
|
| -
|
| - // Returns true if the backing texture is always opaque.
|
| - virtual bool IsOpaque() = 0;
|
| -
|
| - // This call will return the address of the command buffer for this context
|
| - // that is constructed in Initialize() and is valid until this context is
|
| - // destroyed.
|
| - virtual ::gpu::CommandBuffer* GetCommandBuffer() = 0;
|
| -
|
| - // If the command buffer is routed in the GPU channel, return the route id.
|
| - // Otherwise return 0.
|
| - virtual int GetCommandBufferRouteId() = 0;
|
| -
|
| - // Set an optional callback that will be invoked when the context is lost
|
| - // (e.g. gpu process crash). Takes ownership of the callback.
|
| - virtual void SetContextLostCallback(
|
| - const base::Callback<void()>& callback) = 0;
|
| -
|
| - // Set an optional callback that will be invoked when the GPU process
|
| - // sends a console message.
|
| - typedef base::Callback<void(const std::string&, int)>
|
| - ConsoleMessageCallback;
|
| - virtual void SetOnConsoleMessageCallback(
|
| - const ConsoleMessageCallback& callback) = 0;
|
| -
|
| - // Run the callback once the channel has been flushed.
|
| - virtual bool Echo(const base::Callback<void()>& callback) = 0;
|
| - };
|
| -
|
| - // The base class of clients used by |PlatformAudioOutput| and
|
| - // |PlatformAudioInput|.
|
| - class PlatformAudioClientBase {
|
| - protected:
|
| - virtual ~PlatformAudioClientBase() {}
|
| -
|
| - 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;
|
| - };
|
| -
|
| - class PlatformAudioOutputClient : public PlatformAudioClientBase {
|
| - protected:
|
| - virtual ~PlatformAudioOutputClient() {}
|
| - };
|
| -
|
| - class PlatformAudioOutput {
|
| - public:
|
| - // 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 ~PlatformAudioOutput() {}
|
| - };
|
| -
|
| - class PlatformAudioInputClient : public PlatformAudioClientBase {
|
| - public:
|
| - virtual void StreamCreationFailed() = 0;
|
| -
|
| - protected:
|
| - virtual ~PlatformAudioInputClient() {}
|
| - };
|
| -
|
| - class PlatformAudioInput {
|
| - public:
|
| - virtual void StartCapture() = 0;
|
| - virtual void StopCapture() = 0;
|
| -
|
| - // Closes the stream. Make sure to call this before the object is
|
| - // destructed.
|
| - virtual void ShutDown() = 0;
|
| -
|
| - protected:
|
| - virtual ~PlatformAudioInput() {}
|
| - };
|
| -
|
| - // Interface for PlatformVideoDecoder is directly inherited from general media
|
| - // VideoDecodeAccelerator interface.
|
| - class PlatformVideoDecoder : public media::VideoDecodeAccelerator {
|
| - public:
|
| - virtual ~PlatformVideoDecoder() {}
|
| - };
|
| -
|
| - class PlatformVideoCaptureEventHandler
|
| - : public media::VideoCapture::EventHandler {
|
| - public:
|
| - virtual ~PlatformVideoCaptureEventHandler() {}
|
| -
|
| - virtual void OnInitialized(media::VideoCapture* capture,
|
| - bool succeeded) = 0;
|
| - };
|
| -
|
| - class PlatformVideoCapture : public media::VideoCapture,
|
| - public base::RefCounted<PlatformVideoCapture> {
|
| - public:
|
| - // Detaches the event handler and stops sending notifications to it.
|
| - virtual void DetachEventHandler() = 0;
|
| -
|
| - protected:
|
| - virtual ~PlatformVideoCapture() {}
|
| -
|
| - private:
|
| - friend class base::RefCounted<PlatformVideoCapture>;
|
| - };
|
| -
|
| - // Provides access to the ppapi broker.
|
| - class Broker {
|
| - public:
|
| - // Decrements the references to the broker.
|
| - // When there are no more references, this renderer's dispatcher is
|
| - // destroyed, allowing the broker to shutdown if appropriate.
|
| - // Callers should not reference this object after calling Disconnect().
|
| - virtual void Disconnect(webkit::ppapi::PPB_Broker_Impl* client) = 0;
|
| -
|
| - protected:
|
| - virtual ~Broker() {}
|
| - };
|
| -
|
| - // Notification that the given plugin is focused or unfocused.
|
| - virtual void PluginFocusChanged(webkit::ppapi::PluginInstanceImpl* instance,
|
| - bool focused) = 0;
|
| - // Notification that the text input status of the given plugin is changed.
|
| - virtual void PluginTextInputTypeChanged(
|
| - webkit::ppapi::PluginInstanceImpl* instance) = 0;
|
| - // Notification that the caret position in the given plugin is changed.
|
| - virtual void PluginCaretPositionChanged(
|
| - webkit::ppapi::PluginInstanceImpl* instance) = 0;
|
| - // Notification that the plugin requested to cancel the current composition.
|
| - virtual void PluginRequestedCancelComposition(
|
| - webkit::ppapi::PluginInstanceImpl* instance) = 0;
|
| - // Notification that the text selection in the given plugin is changed.
|
| - virtual void PluginSelectionChanged(
|
| - webkit::ppapi::PluginInstanceImpl* instance) = 0;
|
| - // Requests simulating IME events for testing purpose.
|
| - virtual void SimulateImeSetComposition(
|
| - const base::string16& text,
|
| - const std::vector<WebKit::WebCompositionUnderline>& underlines,
|
| - int selection_start,
|
| - int selection_end) = 0;
|
| - virtual void SimulateImeConfirmComposition(const base::string16& text) = 0;
|
| -
|
| - // Notification that the given plugin has crashed. When a plugin crashes, all
|
| - // instances associated with that plugin will notify that they've crashed via
|
| - // this function.
|
| - virtual void PluginCrashed(PluginInstanceImpl* instance) = 0;
|
| -
|
| - // Indicates that the given instance has been created.
|
| - virtual void InstanceCreated(PluginInstanceImpl* 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(PluginInstanceImpl* instance) = 0;
|
| -
|
| - // Creates the resource creation API for the given instance.
|
| - virtual scoped_ptr< ::ppapi::thunk::ResourceCreationAPI>
|
| - CreateResourceCreationAPI(PluginInstanceImpl* instance) = 0;
|
| -
|
| - // Returns a pointer (ownership not transferred) to the bitmap to paint the
|
| - // sad plugin screen with. Returns NULL on failure.
|
| - virtual SkBitmap* GetSadPluginBitmap() = 0;
|
| -
|
| - // Creates a replacement plug-in that is shown when the plug-in at |file_path|
|
| - // couldn't be loaded.
|
| - virtual WebKit::WebPlugin* CreatePluginReplacement(
|
| - const base::FilePath& file_path) = 0;
|
| -
|
| - // The caller will own the pointer returned from this.
|
| - virtual PlatformImage2D* CreateImage2D(int width, int height) = 0;
|
| -
|
| - // Returns the internal PlatformGraphics2D implementation.
|
| - virtual PlatformGraphics2D* GetGraphics2D(PluginInstanceImpl* instance,
|
| - PP_Resource graphics_2d) = 0;
|
| -
|
| - // The caller will own the pointer returned from this.
|
| - virtual PlatformContext3D* CreateContext3D() = 0;
|
| -
|
| - // If |device_id| is empty, the default video capture device will be used. The
|
| - // user can start using the returned object to capture video right away.
|
| - // Otherwise, the specified device will be used. The user needs to wait till
|
| - // |handler| gets an OnInitialized() notification to start using the returned
|
| - // object.
|
| - virtual PlatformVideoCapture* CreateVideoCapture(
|
| - const std::string& device_id,
|
| - const GURL& document_url,
|
| - PlatformVideoCaptureEventHandler* handler) = 0;
|
| -
|
| - // The caller will own the pointer returned from this.
|
| - virtual PlatformVideoDecoder* CreateVideoDecoder(
|
| - media::VideoDecodeAccelerator::Client* client,
|
| - int32 command_buffer_route_id) = 0;
|
| -
|
| - // Get audio hardware output sample rate.
|
| - virtual uint32_t GetAudioHardwareOutputSampleRate() = 0;
|
| -
|
| - // Get audio hardware output buffer size.
|
| - virtual uint32_t GetAudioHardwareOutputBufferSize() = 0;
|
| -
|
| - // The caller is responsible for calling Shutdown() on the returned pointer
|
| - // to clean up the corresponding resources allocated during this call.
|
| - virtual PlatformAudioOutput* CreateAudioOutput(
|
| - uint32_t sample_rate,
|
| - uint32_t sample_count,
|
| - PlatformAudioOutputClient* client) = 0;
|
| -
|
| - // If |device_id| is empty, the default audio input device will be used.
|
| - // The caller is responsible for calling Shutdown() on the returned pointer
|
| - // to clean up the corresponding resources allocated during this call.
|
| - virtual PlatformAudioInput* CreateAudioInput(
|
| - const std::string& device_id,
|
| - const GURL& document_url,
|
| - uint32_t sample_rate,
|
| - uint32_t sample_count,
|
| - PlatformAudioInputClient* client) = 0;
|
| -
|
| - // A pointer is returned immediately, but it is not ready to be used until
|
| - // BrokerConnected has been called.
|
| - // The caller is responsible for calling Disconnect() on the returned pointer
|
| - // to clean up the corresponding resources allocated during this call.
|
| - virtual Broker* ConnectToBroker(webkit::ppapi::PPB_Broker_Impl* 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;
|
| -
|
| - // Sends an async IPC to open a local file.
|
| - typedef base::Callback<void (base::PlatformFileError, base::PassPlatformFile)>
|
| - AsyncOpenFileCallback;
|
| - virtual bool AsyncOpenFile(const base::FilePath& path,
|
| - int flags,
|
| - const AsyncOpenFileCallback& callback) = 0;
|
| -
|
| - // These functions expose some of PepperFileSystemHost methods for
|
| - // PPB_FileRef_Impl (which is in webkit) to access. Once we migrate FileRef
|
| - // to the new design in content/, we won't need this delegation.
|
| - // TODO(victorhsieh): remove these delegation.
|
| - virtual bool IsFileSystemOpened(PP_Instance instance,
|
| - PP_Resource resource) const = 0;
|
| - virtual PP_FileSystemType GetFileSystemType(PP_Instance instance,
|
| - PP_Resource resource) const = 0;
|
| - virtual GURL GetFileSystemRootUrl(PP_Instance instance,
|
| - PP_Resource resource) const = 0;
|
| -
|
| - // Sends an async IPC to open a file through filesystem API.
|
| - // When a file is successfully opened, |callback| is invoked with
|
| - // PLATFORM_FILE_OK, the opened file handle, and a callback function for
|
| - // notifying that the file is closed. When the users of this function
|
| - // finished using the file, they must close the file handle and then must call
|
| - // the supplied callback function.
|
| - typedef base::Callback<void (base::PlatformFileError)>
|
| - NotifyCloseFileCallback;
|
| - typedef base::Callback<
|
| - void (base::PlatformFileError error,
|
| - base::PassPlatformFile file,
|
| - quota::QuotaLimitType quota_policy,
|
| - const NotifyCloseFileCallback& close_file_callback)>
|
| - AsyncOpenFileSystemURLCallback;
|
| - virtual void AsyncOpenFileSystemURL(
|
| - const GURL& path,
|
| - int flags,
|
| - const AsyncOpenFileSystemURLCallback& callback) = 0;
|
| -
|
| - // Callback typedefs for FileSystem related methods.
|
| - typedef base::Callback<void (base::PlatformFileError)> StatusCallback;
|
| - typedef base::Callback<void(
|
| - const std::vector<fileapi::DirectoryEntry>& entries,
|
| - bool has_more)> ReadDirectoryCallback;
|
| - typedef base::Callback<void(
|
| - const base::PlatformFileInfo& file_info)> MetadataCallback;
|
| -
|
| - virtual void MakeDirectory(
|
| - const GURL& path,
|
| - bool recursive,
|
| - const StatusCallback& callback) = 0;
|
| - virtual void Query(const GURL& path,
|
| - const MetadataCallback& success_callback,
|
| - const StatusCallback& error_callback) = 0;
|
| - virtual void ReadDirectoryEntries(
|
| - const GURL& path,
|
| - const ReadDirectoryCallback& success_callback,
|
| - const StatusCallback& error_callback) = 0;
|
| - virtual void Touch(const GURL& path,
|
| - const base::Time& last_access_time,
|
| - const base::Time& last_modified_time,
|
| - const StatusCallback& callback) = 0;
|
| - virtual void SetLength(const GURL& path,
|
| - int64_t length,
|
| - const StatusCallback& callback) = 0;
|
| - virtual void Delete(const GURL& path,
|
| - const StatusCallback& callback) = 0;
|
| - virtual void Rename(const GURL& file_path,
|
| - const GURL& new_file_path,
|
| - const StatusCallback& callback) = 0;
|
| - virtual void ReadDirectory(
|
| - const GURL& directory_path,
|
| - const ReadDirectoryCallback& success_callback,
|
| - const StatusCallback& error_callback) = 0;
|
| -
|
| - // For quota handlings for FileIO API.
|
| - typedef base::Callback<void (int64)> AvailableSpaceCallback;
|
| - virtual void QueryAvailableSpace(const GURL& origin,
|
| - quota::StorageType type,
|
| - const AvailableSpaceCallback& callback) = 0;
|
| - virtual void WillUpdateFile(const GURL& file_path) = 0;
|
| - virtual void DidUpdateFile(const GURL& file_path, int64_t delta) = 0;
|
| -
|
| - // Synchronously returns the platform file path for a filesystem URL.
|
| - virtual void SyncGetFileSystemPlatformPath(const GURL& url,
|
| - base::FilePath* platform_path) = 0;
|
| -
|
| - // Returns a MessageLoopProxy instance associated with the message loop
|
| - // of the file thread in this renderer.
|
| - virtual scoped_refptr<base::MessageLoopProxy>
|
| - GetFileThreadMessageLoopProxy() = 0;
|
| -
|
| - // For PPB_TCPSocket_Private.
|
| - virtual uint32 TCPSocketCreate() = 0;
|
| - virtual void TCPSocketConnect(PPB_TCPSocket_Private_Impl* socket,
|
| - uint32 socket_id,
|
| - const std::string& host,
|
| - uint16_t port) = 0;
|
| - virtual void TCPSocketConnectWithNetAddress(
|
| - PPB_TCPSocket_Private_Impl* socket,
|
| - uint32 socket_id,
|
| - const PP_NetAddress_Private& addr) = 0;
|
| - virtual void TCPSocketSSLHandshake(
|
| - uint32 socket_id,
|
| - const std::string& server_name,
|
| - uint16_t server_port,
|
| - const std::vector<std::vector<char> >& trusted_certs,
|
| - const std::vector<std::vector<char> >& untrusted_certs) = 0;
|
| - virtual void TCPSocketRead(uint32 socket_id, int32_t bytes_to_read) = 0;
|
| - virtual void TCPSocketWrite(uint32 socket_id, const std::string& buffer) = 0;
|
| - virtual void TCPSocketDisconnect(uint32 socket_id) = 0;
|
| - virtual void TCPSocketSetOption(uint32 socket_id,
|
| - PP_TCPSocket_Option name,
|
| - const ::ppapi::SocketOptionData& value) = 0;
|
| - virtual void RegisterTCPSocket(PPB_TCPSocket_Private_Impl* socket,
|
| - uint32 socket_id) = 0;
|
| -
|
| - // For PPB_TCPServerSocket_Private.
|
| - virtual void TCPServerSocketListen(PP_Resource socket_resource,
|
| - const PP_NetAddress_Private& addr,
|
| - int32_t backlog) = 0;
|
| - virtual void TCPServerSocketAccept(uint32 server_socket_id) = 0;
|
| - virtual void TCPServerSocketStopListening(
|
| - PP_Resource socket_resource,
|
| - uint32 socket_id) = 0;
|
| -
|
| - // Add/remove a network list observer.
|
| - virtual bool AddNetworkListObserver(
|
| - webkit_glue::NetworkListObserver* observer) = 0;
|
| - virtual void RemoveNetworkListObserver(
|
| - webkit_glue::NetworkListObserver* observer) = 0;
|
| -
|
| - // For PPB_X509Certificate_Private.
|
| - virtual bool X509CertificateParseDER(
|
| - const std::vector<char>& der,
|
| - ::ppapi::PPB_X509Certificate_Fields* fields) = 0;
|
| -
|
| - // Create a fullscreen container for a plugin instance. This effectively
|
| - // switches the plugin to fullscreen.
|
| - virtual FullscreenContainer* CreateFullscreenContainer(
|
| - PluginInstanceImpl* instance) = 0;
|
| -
|
| - // Gets the size of the screen. The fullscreen window will be created at that
|
| - // size.
|
| - virtual gfx::Size GetScreenSize() = 0;
|
| -
|
| - // Returns a string with the name of the default 8-bit char encoding.
|
| - virtual std::string GetDefaultEncoding() = 0;
|
| -
|
| - // Sets the minimum and maximum zoom factors.
|
| - virtual void ZoomLimitsChanged(double minimum_factor,
|
| - double maximum_factor) = 0;
|
| -
|
| - // Create an anonymous shared memory segment of size |size| bytes, and return
|
| - // a pointer to it, or NULL on error. Caller owns the returned pointer.
|
| - virtual base::SharedMemory* CreateAnonymousSharedMemory(size_t size) = 0;
|
| -
|
| - // Returns the current preferences.
|
| - virtual ::ppapi::Preferences GetPreferences() = 0;
|
| -
|
| - // Locks the mouse for |instance|. If false is returned, the lock is not
|
| - // possible. If true is returned then the lock is pending. Success or
|
| - // failure will be delivered asynchronously via
|
| - // PluginInstance::OnLockMouseACK().
|
| - virtual bool LockMouse(PluginInstanceImpl* instance) = 0;
|
| -
|
| - // Unlocks the mouse if |instance| currently owns the mouse lock. Whenever an
|
| - // plugin instance has lost the mouse lock, it will be notified by
|
| - // PluginInstance::OnMouseLockLost(). Please note that UnlockMouse() is not
|
| - // the only cause of losing mouse lock. For example, a user may press the Esc
|
| - // key to quit the mouse lock mode, which also results in an OnMouseLockLost()
|
| - // call to the current mouse lock owner.
|
| - virtual void UnlockMouse(PluginInstanceImpl* instance) = 0;
|
| -
|
| - // Returns true iff |instance| currently owns the mouse lock.
|
| - virtual bool IsMouseLocked(PluginInstanceImpl* instance) = 0;
|
| -
|
| - // Notifies that |instance| has changed the cursor.
|
| - // This will update the cursor appearance if it is currently over the plugin
|
| - // instance.
|
| - virtual void DidChangeCursor(PluginInstanceImpl* instance,
|
| - const WebKit::WebCursorInfo& cursor) = 0;
|
| -
|
| - // Notifies that |instance| has received a mouse event.
|
| - virtual void DidReceiveMouseEvent(PluginInstanceImpl* instance) = 0;
|
| -
|
| - // Determines if the browser entered fullscreen mode.
|
| - virtual bool IsInFullscreenMode() = 0;
|
| -
|
| - // Retrieve current gamepad data.
|
| - virtual void SampleGamepads(WebKit::WebGamepads* data) = 0;
|
| -
|
| - // Returns true if the containing page is visible.
|
| - virtual bool IsPageVisible() const = 0;
|
| -
|
| - typedef base::Callback<
|
| - void (int /* request_id */,
|
| - bool /* succeeded */,
|
| - const std::vector< ::ppapi::DeviceRefData>& /* devices */)>
|
| - EnumerateDevicesCallback;
|
| -
|
| - // Enumerates devices of the specified type. The request ID passed into the
|
| - // callback will be the same as the return value.
|
| - virtual int EnumerateDevices(PP_DeviceType_Dev type,
|
| - const EnumerateDevicesCallback& callback) = 0;
|
| - // Stop enumerating devices of the specified |request_id|. The |request_id|
|
| - // is the return value of EnumerateDevicesCallback.
|
| - virtual void StopEnumerateDevices(int request_id) = 0;
|
| -
|
| - // Share a given handle with the target process.
|
| - virtual IPC::PlatformFileForTransit ShareHandleWithRemote(
|
| - base::PlatformFile handle,
|
| - base::ProcessId target_process_id,
|
| - bool should_close_source) const = 0;
|
| -
|
| - // Returns true if running in process.
|
| - virtual bool IsRunningInProcess(PP_Instance instance) const = 0;
|
| -
|
| - // Notifies the plugin of the document load. This should initiate the call to
|
| - // PPP_Instance.HandleDocumentLoad.
|
| - //
|
| - // The loader object should set itself on the PluginInstance as the document
|
| - // loader using set_document_loader.
|
| - virtual void HandleDocumentLoad(PluginInstanceImpl* instance,
|
| - const WebKit::WebURLResponse& response) = 0;
|
| -
|
| - // Sets up the renderer host and out-of-process proxy for an external plugin
|
| - // module. Returns the renderer host, or NULL if it couldn't be created.
|
| - virtual content::RendererPpapiHost* CreateExternalPluginModule(
|
| - scoped_refptr<PluginModule> module,
|
| - const base::FilePath& path,
|
| - ::ppapi::PpapiPermissions permissions,
|
| - const IPC::ChannelHandle& channel_handle,
|
| - base::ProcessId plugin_pid,
|
| - int plugin_child_id) = 0;
|
| -};
|
| -
|
| -} // namespace ppapi
|
| -} // namespace webkit
|
| -
|
| -#endif // WEBKIT_PLUGINS_PPAPI_PLUGIN_DELEGATE_H_
|
|
|