1d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// found in the LICENSE file. 4d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 5d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#ifndef CONTENT_RENDERER_PEPPER_PEPPER_FILE_REF_RENDERER_HOST_H_ 6d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#define CONTENT_RENDERER_PEPPER_PEPPER_FILE_REF_RENDERER_HOST_H_ 7d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include <string> 9d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 10d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "base/basictypes.h" 11d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "base/files/file_path.h" 12d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "base/memory/weak_ptr.h" 13d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "content/public/renderer/renderer_ppapi_host.h" 14d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "content/renderer/pepper/pepper_file_system_host.h" 15d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ipc/ipc_message.h" 16d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ppapi/c/pp_file_info.h" 17d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ppapi/c/pp_instance.h" 18d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ppapi/c/pp_resource.h" 19d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ppapi/host/host_message_context.h" 20d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ppapi/host/resource_host.h" 21d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "url/gurl.h" 22d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 23d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)namespace content { 24d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 25a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass PepperFileRefRendererHost : public ppapi::host::ResourceHost { 26d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) public: 27d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) PepperFileRefRendererHost(RendererPpapiHost* host, 28d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) PP_Instance instance, 29d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) PP_Resource resource, 30d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) PP_Resource file_system, 31d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) const std::string& internal_path); 32d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 33d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) PepperFileRefRendererHost(RendererPpapiHost* host, 34d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) PP_Instance instance, 35d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) PP_Resource resource, 36d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) const base::FilePath& external_path); 37d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 38d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) virtual ~PepperFileRefRendererHost(); 39d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 40d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) PP_FileSystemType GetFileSystemType() const; 41d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) GURL GetFileSystemURL() const; 42d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) base::FilePath GetExternalFilePath() const; 43d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 44d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) // ppapi::host::ResourceHost override. 45d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) virtual int32_t OnResourceMessageReceived( 46d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) const IPC::Message& msg, 47d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) ppapi::host::HostMessageContext* context) OVERRIDE; 48d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) virtual bool IsFileRefHost() OVERRIDE; 49d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 50d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) private: 51d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) PP_FileSystemType file_system_type_; 52d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) std::string internal_path_; 53d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) base::FilePath external_path_; 54d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) base::WeakPtr<PepperFileSystemHost> fs_host_; 55d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 56d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(PepperFileRefRendererHost); 57d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)}; 58d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 59d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)} // namespace content 60d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 61d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#endif // CONTENT_RENDERER_PEPPER_PEPPER_FILE_REF_RENDERER_HOST_H_ 62