| Index: trunk/src/content/browser/renderer_host/pepper/pepper_file_io_host.h
|
| ===================================================================
|
| --- trunk/src/content/browser/renderer_host/pepper/pepper_file_io_host.h (revision 233010)
|
| +++ trunk/src/content/browser/renderer_host/pepper/pepper_file_io_host.h (working copy)
|
| @@ -1,150 +0,0 @@
|
| -// Copyright 2013 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_RENDERER_PEPPER_PEPPER_FILE_IO_HOST_H_
|
| -#define CONTENT_RENDERER_PEPPER_PEPPER_FILE_IO_HOST_H_
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/callback_forward.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/platform_file.h"
|
| -#include "content/browser/renderer_host/pepper/browser_ppapi_host_impl.h"
|
| -#include "ipc/ipc_listener.h"
|
| -#include "ipc/ipc_platform_file.h"
|
| -#include "ppapi/c/pp_file_info.h"
|
| -#include "ppapi/c/pp_time.h"
|
| -#include "ppapi/host/host_message_context.h"
|
| -#include "ppapi/host/resource_host.h"
|
| -#include "ppapi/shared_impl/file_io_state_manager.h"
|
| -#include "url/gurl.h"
|
| -#include "webkit/browser/fileapi/file_system_context.h"
|
| -#include "webkit/browser/fileapi/file_system_operation_runner.h"
|
| -#include "webkit/common/quota/quota_types.h"
|
| -
|
| -using ppapi::host::ReplyMessageContext;
|
| -
|
| -namespace content {
|
| -class QuotaFileIO;
|
| -
|
| -class PepperFileIOHost : public ppapi::host::ResourceHost,
|
| - public base::SupportsWeakPtr<PepperFileIOHost> {
|
| - public:
|
| - typedef base::Callback<void (base::PlatformFileError)>
|
| - NotifyCloseFileCallback;
|
| -
|
| - PepperFileIOHost(BrowserPpapiHostImpl* host,
|
| - PP_Instance instance,
|
| - PP_Resource resource);
|
| - virtual ~PepperFileIOHost();
|
| -
|
| - // ppapi::host::ResourceHost override.
|
| - virtual int32_t OnResourceMessageReceived(
|
| - const IPC::Message& msg,
|
| - ppapi::host::HostMessageContext* context) OVERRIDE;
|
| -
|
| - struct UIThreadStuff {
|
| - UIThreadStuff();
|
| - ~UIThreadStuff();
|
| - base::ProcessId resolved_render_process_id;
|
| - scoped_refptr<fileapi::FileSystemContext> file_system_context;
|
| - };
|
| - private:
|
| - int32_t OnHostMsgOpen(ppapi::host::HostMessageContext* context,
|
| - PP_Resource file_ref_resource,
|
| - int32_t open_flags);
|
| - int32_t OnHostMsgTouch(ppapi::host::HostMessageContext* context,
|
| - PP_Time last_access_time,
|
| - PP_Time last_modified_time);
|
| - int32_t OnHostMsgWrite(ppapi::host::HostMessageContext* context,
|
| - int64_t offset,
|
| - const std::string& buffer);
|
| - int32_t OnHostMsgSetLength(ppapi::host::HostMessageContext* context,
|
| - int64_t length);
|
| - int32_t OnHostMsgClose(ppapi::host::HostMessageContext* context);
|
| - int32_t OnHostMsgFlush(ppapi::host::HostMessageContext* context);
|
| - int32_t OnHostMsgRequestOSFileHandle(
|
| - ppapi::host::HostMessageContext* context);
|
| -
|
| - void GotPluginAllowedToCallRequestOSFileHandle(
|
| - ppapi::host::ReplyMessageContext reply_context,
|
| - bool plugin_allowed);
|
| -
|
| - // Callback handlers. These mostly convert the PlatformFileError to the
|
| - // PP_Error code and send back the reply. Note that the argument
|
| - // ReplyMessageContext is copied so that we have a closure containing all
|
| - // necessary information to reply.
|
| - void ExecutePlatformGeneralCallback(ReplyMessageContext reply_context,
|
| - base::PlatformFileError error_code);
|
| - void ExecutePlatformOpenFileCallback(ReplyMessageContext reply_context,
|
| - base::PlatformFileError error_code,
|
| - base::PassPlatformFile file,
|
| - bool unused_created);
|
| - void ExecutePlatformWriteCallback(ReplyMessageContext reply_context,
|
| - base::PlatformFileError error_code,
|
| - int bytes_written);
|
| -
|
| - void GotUIThreadStuffForInternalFileSystems(
|
| - ReplyMessageContext reply_context,
|
| - int platform_file_flags,
|
| - UIThreadStuff ui_thread_stuff);
|
| - void DidOpenInternalFile(
|
| - ReplyMessageContext reply_context,
|
| - base::PlatformFileError result,
|
| - base::PlatformFile file,
|
| - const base::Closure& on_close_callback);
|
| - void GotResolvedRenderProcessId(
|
| - ReplyMessageContext reply_context,
|
| - base::FilePath path,
|
| - int platform_file_flags,
|
| - base::ProcessId resolved_render_process_id);
|
| -
|
| - void DidCloseFile(base::PlatformFileError error);
|
| -
|
| - // Adds file_ to |reply_context| with the specified |open_flags|.
|
| - bool AddFileToReplyContext(
|
| - int32_t open_flags,
|
| - ppapi::host::ReplyMessageContext* reply_context) const;
|
| -
|
| - BrowserPpapiHostImpl* browser_ppapi_host_;
|
| -
|
| - RenderProcessHost* render_process_host_;
|
| - int render_process_id_;
|
| - base::ProcessId resolved_render_process_id_;
|
| -
|
| - base::PlatformFile file_;
|
| -
|
| - // The file system type specified in the Open() call. This will be
|
| - // PP_FILESYSTEMTYPE_INVALID before open was called. This value does not
|
| - // indicate that the open command actually succeeded.
|
| - PP_FileSystemType file_system_type_;
|
| -
|
| - // Valid only for PP_FILESYSTEMTYPE_LOCAL{PERSISTENT,TEMPORARY}.
|
| - scoped_refptr<fileapi::FileSystemContext> file_system_context_;
|
| - scoped_ptr<fileapi::FileSystemOperationRunner> file_system_operation_runner_;
|
| - fileapi::FileSystemURL file_system_url_;
|
| - base::Closure on_close_callback_;
|
| -
|
| - // Used to check if we can pass file handle to plugins.
|
| - quota::QuotaLimitType quota_policy_;
|
| -
|
| - // Pointer to a QuotaFileIO instance, which is valid only while a file
|
| - // of type PP_FILESYSTEMTYPE_LOCAL{PERSISTENT,TEMPORARY} is opened.
|
| - scoped_ptr<QuotaFileIO> quota_file_io_;
|
| -
|
| - int32_t open_flags_;
|
| -
|
| - ppapi::FileIOStateManager state_manager_;
|
| -
|
| - scoped_refptr<base::MessageLoopProxy> file_message_loop_;
|
| -
|
| - base::WeakPtrFactory<PepperFileIOHost> weak_factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(PepperFileIOHost);
|
| -};
|
| -
|
| -} // namespace content
|
| -
|
| -#endif // CONTENT_RENDERER_PEPPER_PEPPER_FILE_IO_HOST_H_
|
|
|