Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Side by Side Diff: content/browser/renderer_host/pepper/pepper_file_system_browser_host.h

Issue 55133010: [PPAPI] Fixed FileSystems from JavaScript not having a context. (Closed) Base URL: http://git.chromium.org/chromium/src.git@pepper-fs-fileio-test-disable
Patch Set: Nit: Return early, and un-indent code. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_FILE_SYSTEM_BROWSER_HOST_H_ 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_FILE_SYSTEM_BROWSER_HOST_H_
6 #define CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_FILE_SYSTEM_BROWSER_HOST_H_ 6 #define CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_FILE_SYSTEM_BROWSER_HOST_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/callback.h"
9 #include "base/memory/weak_ptr.h" 10 #include "base/memory/weak_ptr.h"
10 #include "ppapi/c/pp_file_info.h" 11 #include "ppapi/c/pp_file_info.h"
11 #include "ppapi/host/host_message_context.h" 12 #include "ppapi/host/host_message_context.h"
12 #include "ppapi/host/resource_host.h" 13 #include "ppapi/host/resource_host.h"
13 #include "url/gurl.h" 14 #include "url/gurl.h"
14 #include "webkit/browser/fileapi/file_system_context.h" 15 #include "webkit/browser/fileapi/file_system_context.h"
15 #include "webkit/common/fileapi/file_system_types.h" 16 #include "webkit/common/fileapi/file_system_types.h"
16 17
17 namespace content { 18 namespace content {
18 19
19 class BrowserPpapiHost; 20 class BrowserPpapiHost;
20 21
21 class PepperFileSystemBrowserHost : 22 class PepperFileSystemBrowserHost :
22 public ppapi::host::ResourceHost, 23 public ppapi::host::ResourceHost,
23 public base::SupportsWeakPtr<PepperFileSystemBrowserHost> { 24 public base::SupportsWeakPtr<PepperFileSystemBrowserHost> {
24 public: 25 public:
25 // Creates a new PepperFileSystemBrowserHost for a file system of a given 26 // Creates a new PepperFileSystemBrowserHost for a file system of a given
26 // |type|. The host must be opened before use. 27 // |type|. The host must be opened before use.
27 PepperFileSystemBrowserHost(BrowserPpapiHost* host, 28 PepperFileSystemBrowserHost(BrowserPpapiHost* host,
28 PP_Instance instance, 29 PP_Instance instance,
29 PP_Resource resource, 30 PP_Resource resource,
30 PP_FileSystemType type); 31 PP_FileSystemType type);
31 // Creates a new PepperFileSystemBrowserHost with an existing file system at
32 // the given |root_url| and of the given |type|. The file system at |root_url|
33 // must already be opened. Once created, the PepperFileSystemBrowserHost may
34 // be used without being opened.
35 PepperFileSystemBrowserHost(BrowserPpapiHost* host,
36 PP_Instance instance,
37 PP_Resource resource,
38 const GURL& root_url,
39 PP_FileSystemType type);
40 virtual ~PepperFileSystemBrowserHost(); 32 virtual ~PepperFileSystemBrowserHost();
41 33
34 // Opens the PepperFileSystemBrowserHost to use an existing file system at the
35 // given |root_url|. The file system at |root_url| must already be opened and
36 // have the type given by GetType().
37 // Calls |callback| when complete.
38 void OpenExisting(const GURL& root_url, const base::Closure& callback);
39
42 // ppapi::host::ResourceHost override. 40 // ppapi::host::ResourceHost override.
43 virtual int32_t OnResourceMessageReceived( 41 virtual int32_t OnResourceMessageReceived(
44 const IPC::Message& msg, 42 const IPC::Message& msg,
45 ppapi::host::HostMessageContext* context) OVERRIDE; 43 ppapi::host::HostMessageContext* context) OVERRIDE;
46 virtual bool IsFileSystemHost() OVERRIDE; 44 virtual bool IsFileSystemHost() OVERRIDE;
47 45
48 // Supports FileRefs direct access on the host side. 46 // Supports FileRefs direct access on the host side.
49 PP_FileSystemType GetType() const { return type_; } 47 PP_FileSystemType GetType() const { return type_; }
50 bool IsOpened() const { return opened_; } 48 bool IsOpened() const { return opened_; }
51 GURL GetRootUrl() const { return root_url_; } 49 GURL GetRootUrl() const { return root_url_; }
52 scoped_refptr<fileapi::FileSystemContext> GetFileSystemContext() const { 50 scoped_refptr<fileapi::FileSystemContext> GetFileSystemContext() const {
53 return fs_context_; 51 return fs_context_;
54 } 52 }
55 53
56 private: 54 private:
55 void OpenExistingWithContext(
56 const base::Closure& callback,
57 scoped_refptr<fileapi::FileSystemContext> fs_context);
57 void GotFileSystemContext( 58 void GotFileSystemContext(
58 ppapi::host::ReplyMessageContext reply_context, 59 ppapi::host::ReplyMessageContext reply_context,
59 fileapi::FileSystemType file_system_type, 60 fileapi::FileSystemType file_system_type,
60 scoped_refptr<fileapi::FileSystemContext> fs_context); 61 scoped_refptr<fileapi::FileSystemContext> fs_context);
61 void GotIsolatedFileSystemContext( 62 void GotIsolatedFileSystemContext(
62 ppapi::host::ReplyMessageContext reply_context, 63 ppapi::host::ReplyMessageContext reply_context,
63 scoped_refptr<fileapi::FileSystemContext> fs_context); 64 scoped_refptr<fileapi::FileSystemContext> fs_context);
64 void OpenFileSystemComplete( 65 void OpenFileSystemComplete(
65 ppapi::host::ReplyMessageContext reply_context, 66 ppapi::host::ReplyMessageContext reply_context,
66 const GURL& root, 67 const GURL& root,
(...skipping 15 matching lines...) Expand all
82 bool called_open_; // whether open has been called. 83 bool called_open_; // whether open has been called.
83 84
84 base::WeakPtrFactory<PepperFileSystemBrowserHost> weak_factory_; 85 base::WeakPtrFactory<PepperFileSystemBrowserHost> weak_factory_;
85 86
86 DISALLOW_COPY_AND_ASSIGN(PepperFileSystemBrowserHost); 87 DISALLOW_COPY_AND_ASSIGN(PepperFileSystemBrowserHost);
87 }; 88 };
88 89
89 } // namespace content 90 } // namespace content
90 91
91 #endif // CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_FILE_SYSTEM_BROWSER_HOST_ H_ 92 #endif // CONTENT_BROWSER_RENDERER_HOST_PEPPER_PEPPER_FILE_SYSTEM_BROWSER_HOST_ H_
OLDNEW
« no previous file with comments | « chrome/test/ppapi/ppapi_browsertest.cc ('k') | content/browser/renderer_host/pepper/pepper_file_system_browser_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698