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

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

Issue 61643022: Proxy private UMA pepper interface for out-of-process and NaCl plugins. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove errant file, fix comment typo Created 7 years 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 // -*- 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_
11 11
12 #include <stdio.h> 12 #include <stdio.h>
13 13
14 #include <map> 14 #include <map>
15 #include <queue> 15 #include <queue>
16 #include <set> 16 #include <set>
17 #include <string> 17 #include <string>
18 18
19 #include "native_client/src/include/nacl_macros.h" 19 #include "native_client/src/include/nacl_macros.h"
20 #include "native_client/src/include/nacl_scoped_ptr.h" 20 #include "native_client/src/include/nacl_scoped_ptr.h"
21 #include "native_client/src/include/nacl_string.h" 21 #include "native_client/src/include/nacl_string.h"
22 #include "native_client/src/trusted/validator/nacl_file_info.h" 22 #include "native_client/src/trusted/validator/nacl_file_info.h"
23 23
24 #include "ppapi/c/private/ppb_nacl_private.h" 24 #include "ppapi/c/private/ppb_nacl_private.h"
25 #include "ppapi/cpp/private/instance_private.h" 25 #include "ppapi/cpp/private/instance_private.h"
26 #include "ppapi/cpp/private/uma_private.h"
26 #include "ppapi/cpp/url_loader.h" 27 #include "ppapi/cpp/url_loader.h"
27 #include "ppapi/cpp/var.h" 28 #include "ppapi/cpp/var.h"
28 #include "ppapi/cpp/view.h" 29 #include "ppapi/cpp/view.h"
29 30
30 #include "ppapi/native_client/src/trusted/plugin/file_downloader.h" 31 #include "ppapi/native_client/src/trusted/plugin/file_downloader.h"
31 #include "ppapi/native_client/src/trusted/plugin/nacl_subprocess.h" 32 #include "ppapi/native_client/src/trusted/plugin/nacl_subprocess.h"
32 #include "ppapi/native_client/src/trusted/plugin/pnacl_coordinator.h" 33 #include "ppapi/native_client/src/trusted/plugin/pnacl_coordinator.h"
33 #include "ppapi/native_client/src/trusted/plugin/service_runtime.h" 34 #include "ppapi/native_client/src/trusted/plugin/service_runtime.h"
34 #include "ppapi/native_client/src/trusted/plugin/utility.h" 35 #include "ppapi/native_client/src/trusted/plugin/utility.h"
35 36
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 265
265 // Extracts the exit status from the (main) service runtime. 266 // Extracts the exit status from the (main) service runtime.
266 int exit_status() const { 267 int exit_status() const {
267 if (NULL == main_service_runtime()) { 268 if (NULL == main_service_runtime()) {
268 return -1; 269 return -1;
269 } 270 }
270 return main_service_runtime()->exit_status(); 271 return main_service_runtime()->exit_status();
271 } 272 }
272 273
273 const PPB_NaCl_Private* nacl_interface() const { return nacl_interface_; } 274 const PPB_NaCl_Private* nacl_interface() const { return nacl_interface_; }
275 const pp::UMAPrivate& uma_interface() const { return uma_interface_; }
274 276
275 private: 277 private:
276 NACL_DISALLOW_COPY_AND_ASSIGN(Plugin); 278 NACL_DISALLOW_COPY_AND_ASSIGN(Plugin);
277 // Prevent construction and destruction from outside the class: 279 // Prevent construction and destruction from outside the class:
278 // must use factory New() method instead. 280 // must use factory New() method instead.
279 explicit Plugin(PP_Instance instance); 281 explicit Plugin(PP_Instance instance);
280 // The browser will invoke the destructor via the pp::Instance 282 // The browser will invoke the destructor via the pp::Instance
281 // pointer to this object, not from base's Delete(). 283 // pointer to this object, not from base's Delete().
282 ~Plugin(); 284 ~Plugin();
283 285
284 bool EarlyInit(int argc, const char* argn[], const char* argv[]); 286 bool EarlyInit(int argc, const char* argn[], const char* argv[]);
285 // Shuts down socket connection, service runtime, and receive thread, 287 // Shuts down socket connection, service runtime, and receive thread,
286 // in this order, for the main nacl subprocess. 288 // in this order, for the main nacl subprocess.
287 void ShutDownSubprocesses(); 289 void ShutDownSubprocesses();
288 290
289 ScriptablePlugin* scriptable_plugin() const { return scriptable_plugin_; } 291 ScriptablePlugin* scriptable_plugin() const { return scriptable_plugin_; }
290 void set_scriptable_plugin(ScriptablePlugin* scriptable_plugin) { 292 void set_scriptable_plugin(ScriptablePlugin* scriptable_plugin) {
291 scriptable_plugin_ = scriptable_plugin; 293 scriptable_plugin_ = scriptable_plugin;
292 } 294 }
293 295
294 // Access the service runtime for the main NaCl subprocess. 296 // Access the service runtime for the main NaCl subprocess.
295 ServiceRuntime* main_service_runtime() const { 297 ServiceRuntime* main_service_runtime() const {
296 return main_subprocess_.service_runtime(); 298 return main_subprocess_.service_runtime();
297 } 299 }
298 300
301 // Histogram helper functions, internal to Plugin so they can use
302 // uma_interface_ normally.
303 void HistogramTimeSmall(const std::string& name, int64_t ms);
304 void HistogramTimeMedium(const std::string& name, int64_t ms);
305 void HistogramTimeLarge(const std::string& name, int64_t ms);
306 void HistogramSizeKB(const std::string& name, int32_t sample);
307 void HistogramEnumerate(const std::string& name,
308 int sample,
309 int maximum,
310 int out_of_range_replacement);
311 void HistogramEnumerateOsArch(const std::string& sandbox_isa);
312 void HistogramEnumerateLoadStatus(PluginErrorCode error_code,
313 bool is_installed);
314 void HistogramEnumerateSelLdrLoadStatus(NaClErrorCode error_code,
315 bool is_installed);
316 void HistogramEnumerateManifestIsDataURI(bool is_data_uri);
317 void HistogramHTTPStatusCode(const std::string& name, int status);
318
299 // Help load a nacl module, from the file specified in wrapper. 319 // Help load a nacl module, from the file specified in wrapper.
300 // This will fully initialize the |subprocess| if the load was successful. 320 // This will fully initialize the |subprocess| if the load was successful.
301 bool LoadNaClModuleCommon(nacl::DescWrapper* wrapper, 321 bool LoadNaClModuleCommon(nacl::DescWrapper* wrapper,
302 NaClSubprocess* subprocess, 322 NaClSubprocess* subprocess,
303 const Manifest* manifest, 323 const Manifest* manifest,
304 bool should_report_uma, 324 bool should_report_uma,
305 const SelLdrStartParams& params, 325 const SelLdrStartParams& params,
306 const pp::CompletionCallback& init_done_cb, 326 const pp::CompletionCallback& init_done_cb,
307 const pp::CompletionCallback& crash_cb); 327 const pp::CompletionCallback& crash_cb);
308 328
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 int64_t total_bytes_to_be_received); 497 int64_t total_bytes_to_be_received);
478 498
479 // Finds the file downloader which owns the given URL loader. This is used 499 // Finds the file downloader which owns the given URL loader. This is used
480 // in UpdateDownloadProgress to map a url loader back to the URL being 500 // in UpdateDownloadProgress to map a url loader back to the URL being
481 // downloaded. 501 // downloaded.
482 const FileDownloader* FindFileDownloader(PP_Resource url_loader) const; 502 const FileDownloader* FindFileDownloader(PP_Resource url_loader) const;
483 503
484 int64_t time_of_last_progress_event_; 504 int64_t time_of_last_progress_event_;
485 505
486 const PPB_NaCl_Private* nacl_interface_; 506 const PPB_NaCl_Private* nacl_interface_;
507 pp::UMAPrivate uma_interface_;
487 }; 508 };
488 509
489 } // namespace plugin 510 } // namespace plugin
490 511
491 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_ 512 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698