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

Side by Side Diff: ppapi/native_client/src/trusted/plugin/plugin.h

Issue 297763002: Pepper: Remove url_info_map from trusted plugin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | ppapi/native_client/src/trusted/plugin/plugin.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // -*- c++ -*- 1 // -*- c++ -*-
2 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be 3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file. 4 // found in the LICENSE file.
5 5
6 // The portable representation of an instance and root scriptable object. 6 // The portable representation of an instance and root scriptable object.
7 // The PPAPI version of the plugin instantiates a subclass of this class. 7 // The PPAPI version of the plugin instantiates a subclass of this class.
8 8
9 #ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_ 9 #ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_
10 #define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_ 10 #define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 nacl::DescWrapperFactory* wrapper_factory() const { return wrapper_factory_; } 142 nacl::DescWrapperFactory* wrapper_factory() const { return wrapper_factory_; }
143 143
144 // Requests a NaCl manifest download from a |url| relative to the page origin. 144 // Requests a NaCl manifest download from a |url| relative to the page origin.
145 void RequestNaClManifest(const nacl::string& url); 145 void RequestNaClManifest(const nacl::string& url);
146 146
147 // Called back by CallOnMainThread. Dispatches the first enqueued progress 147 // Called back by CallOnMainThread. Dispatches the first enqueued progress
148 // event. 148 // event.
149 void DispatchProgressEvent(int32_t result); 149 void DispatchProgressEvent(int32_t result);
150 150
151 // Requests a URL asynchronously resulting in a call to pp_callback with 151 // Requests a URL asynchronously resulting in a call to pp_callback with
152 // a PP_Error indicating status. On success an open file descriptor 152 // a PP_Error indicating status.
153 // corresponding to the url body is recorded for further lookup.
154 bool StreamAsFile(const nacl::string& url, 153 bool StreamAsFile(const nacl::string& url,
154 NaClFileInfo *out_file_info,
155 const pp::CompletionCallback& callback); 155 const pp::CompletionCallback& callback);
156 156
157 // Returns rich information for a file retrieved by StreamAsFile(). This info
158 // contains a file descriptor. The caller must take ownership of this
159 // descriptor.
160 struct NaClFileInfo GetFileInfo(const nacl::string& url);
161
162 // A helper function that indicates if |url| can be requested by the document 157 // A helper function that indicates if |url| can be requested by the document
163 // under the same-origin policy. Strictly speaking, it may be possible for the 158 // under the same-origin policy. Strictly speaking, it may be possible for the
164 // document to request the URL using CORS even if this function returns false. 159 // document to request the URL using CORS even if this function returns false.
165 bool DocumentCanRequest(const std::string& url); 160 bool DocumentCanRequest(const std::string& url);
166 161
167 // set_exit_status may be called off the main thread. 162 // set_exit_status may be called off the main thread.
168 void set_exit_status(int exit_status); 163 void set_exit_status(int exit_status);
169 164
170 const PPB_NaCl_Private* nacl_interface() const { return nacl_interface_; } 165 const PPB_NaCl_Private* nacl_interface() const { return nacl_interface_; }
171 pp::UMAPrivate& uma_interface() { return uma_interface_; } 166 pp::UMAPrivate& uma_interface() { return uma_interface_; }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 void ProcessNaClManifest(const nacl::string& manifest_json); 243 void ProcessNaClManifest(const nacl::string& manifest_json);
249 244
250 // Logs timing information to a UMA histogram, and also logs the same timing 245 // Logs timing information to a UMA histogram, and also logs the same timing
251 // information divided by the size of the nexe to another histogram. 246 // information divided by the size of the nexe to another histogram.
252 void HistogramStartupTimeSmall(const std::string& name, float dt); 247 void HistogramStartupTimeSmall(const std::string& name, float dt);
253 void HistogramStartupTimeMedium(const std::string& name, float dt); 248 void HistogramStartupTimeMedium(const std::string& name, float dt);
254 249
255 // Callback used when loading a URL for SRPC-based StreamAsFile(). 250 // Callback used when loading a URL for SRPC-based StreamAsFile().
256 void UrlDidOpenForStreamAsFile(int32_t pp_error, 251 void UrlDidOpenForStreamAsFile(int32_t pp_error,
257 FileDownloader* url_downloader, 252 FileDownloader* url_downloader,
253 NaClFileInfo* out_file_info,
258 pp::CompletionCallback pp_callback); 254 pp::CompletionCallback pp_callback);
259 255
260 // Open an app file by requesting a file descriptor from the browser. This 256 // Open an app file by requesting a file descriptor from the browser. This
261 // method first checks that the url is for an installed file before making the 257 // method first checks that the url is for an installed file before making the
262 // request so it won't slow down non-installed file downloads. 258 // request so it won't slow down non-installed file downloads.
263 bool OpenURLFast(const nacl::string& url, FileDownloader* downloader); 259 bool OpenURLFast(const nacl::string& url, FileDownloader* downloader);
264 260
265 void SetExitStatusOnMainThread(int32_t pp_error, int exit_status); 261 void SetExitStatusOnMainThread(int32_t pp_error, int exit_status);
266 262
267 // Keep track of the NaCl module subprocess that was spun up in the plugin. 263 // Keep track of the NaCl module subprocess that was spun up in the plugin.
268 NaClSubprocess main_subprocess_; 264 NaClSubprocess main_subprocess_;
269 265
270 bool uses_nonsfi_mode_; 266 bool uses_nonsfi_mode_;
271 267
272 nacl::DescWrapperFactory* wrapper_factory_; 268 nacl::DescWrapperFactory* wrapper_factory_;
273 269
274 // Original, unresolved URL for the .nexe program to load. 270 // Original, unresolved URL for the .nexe program to load.
275 std::string program_url_; 271 std::string program_url_;
276 272
277 pp::CompletionCallbackFactory<Plugin> callback_factory_; 273 pp::CompletionCallbackFactory<Plugin> callback_factory_;
278 274
279 nacl::scoped_ptr<PnaclCoordinator> pnacl_coordinator_; 275 nacl::scoped_ptr<PnaclCoordinator> pnacl_coordinator_;
280 276
281 // Keep track of the FileDownloaders created to fetch urls. 277 // Keep track of the FileDownloaders created to fetch urls.
282 std::set<FileDownloader*> url_downloaders_; 278 std::set<FileDownloader*> url_downloaders_;
283 // Keep track of file descriptors opened by StreamAsFile().
284 // These are owned by the browser.
285 std::map<nacl::string, NaClFileInfoAutoCloser*> url_file_info_map_;
286 279
287 // Callback to receive .nexe and .dso download progress notifications. 280 // Callback to receive .nexe and .dso download progress notifications.
288 static void UpdateDownloadProgress( 281 static void UpdateDownloadProgress(
289 PP_Instance pp_instance, 282 PP_Instance pp_instance,
290 PP_Resource pp_resource, 283 PP_Resource pp_resource,
291 int64_t bytes_sent, 284 int64_t bytes_sent,
292 int64_t total_bytes_to_be_sent, 285 int64_t total_bytes_to_be_sent,
293 int64_t bytes_received, 286 int64_t bytes_received,
294 int64_t total_bytes_to_be_received); 287 int64_t total_bytes_to_be_received);
295 288
296 // Finds the file downloader which owns the given URL loader. This is used 289 // Finds the file downloader which owns the given URL loader. This is used
297 // in UpdateDownloadProgress to map a url loader back to the URL being 290 // in UpdateDownloadProgress to map a url loader back to the URL being
298 // downloaded. 291 // downloaded.
299 const FileDownloader* FindFileDownloader(PP_Resource url_loader) const; 292 const FileDownloader* FindFileDownloader(PP_Resource url_loader) const;
300 293
301 int64_t time_of_last_progress_event_; 294 int64_t time_of_last_progress_event_;
302 int exit_status_; 295 int exit_status_;
303 296
304 int32_t manifest_id_; 297 int32_t manifest_id_;
305 298
306 PP_FileHandle nexe_handle_; 299 PP_FileHandle nexe_handle_;
307 300
308 const PPB_NaCl_Private* nacl_interface_; 301 const PPB_NaCl_Private* nacl_interface_;
309 pp::UMAPrivate uma_interface_; 302 pp::UMAPrivate uma_interface_;
310 }; 303 };
311 304
312 } // namespace plugin 305 } // namespace plugin
313 306
314 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_ 307 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_
OLDNEW
« no previous file with comments | « no previous file | ppapi/native_client/src/trusted/plugin/plugin.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698