| OLD | NEW | 
|    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 92 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  103  |  103  | 
|  104   // Load support. |  104   // Load support. | 
|  105   // A helper SRPC NaCl module can be loaded given a PP_FileHandle. |  105   // A helper SRPC NaCl module can be loaded given a PP_FileHandle. | 
|  106   // Blocks until the helper module signals initialization is done. |  106   // Blocks until the helper module signals initialization is done. | 
|  107   // Does not update nacl_module_origin(). |  107   // Does not update nacl_module_origin(). | 
|  108   // Returns NULL or the NaClSubprocess of the new helper NaCl module. |  108   // Returns NULL or the NaClSubprocess of the new helper NaCl module. | 
|  109   NaClSubprocess* LoadHelperNaClModule(const nacl::string& helper_url, |  109   NaClSubprocess* LoadHelperNaClModule(const nacl::string& helper_url, | 
|  110                                        PP_FileHandle file_handle, |  110                                        PP_FileHandle file_handle, | 
|  111                                        ErrorInfo* error_info); |  111                                        ErrorInfo* error_info); | 
|  112  |  112  | 
|  113   // Report successful loading of a module. |  | 
|  114   void ReportLoadSuccess(uint64_t loaded_bytes, uint64_t total_bytes); |  | 
|  115   // Report an error that was encountered while loading a module. |  113   // Report an error that was encountered while loading a module. | 
|  116   void ReportLoadError(const ErrorInfo& error_info); |  114   void ReportLoadError(const ErrorInfo& error_info); | 
|  117   // Report loading a module was aborted, typically due to user action. |  | 
|  118   void ReportLoadAbort(); |  | 
|  119  |  | 
|  120   // Report the error code that sel_ldr produces when starting a nexe. |  | 
|  121   void ReportSelLdrLoadStatus(int status); |  | 
|  122  |  115  | 
|  123   nacl::DescWrapperFactory* wrapper_factory() const { return wrapper_factory_; } |  116   nacl::DescWrapperFactory* wrapper_factory() const { return wrapper_factory_; } | 
|  124  |  117  | 
|  125   // Requests a NaCl manifest download from a |url| relative to the page origin. |  | 
|  126   void RequestNaClManifest(const nacl::string& url); |  | 
|  127  |  | 
|  128   // Called back by CallOnMainThread.  Dispatches the first enqueued progress |  118   // Called back by CallOnMainThread.  Dispatches the first enqueued progress | 
|  129   // event. |  119   // event. | 
|  130   void DispatchProgressEvent(int32_t result); |  120   void DispatchProgressEvent(int32_t result); | 
|  131  |  121  | 
|  132   // A helper function that indicates if |url| can be requested by the document |  122   // A helper function that indicates if |url| can be requested by the document | 
|  133   // under the same-origin policy. Strictly speaking, it may be possible for the |  123   // under the same-origin policy. Strictly speaking, it may be possible for the | 
|  134   // document to request the URL using CORS even if this function returns false. |  124   // document to request the URL using CORS even if this function returns false. | 
|  135   bool DocumentCanRequest(const std::string& url); |  125   bool DocumentCanRequest(const std::string& url); | 
|  136  |  126  | 
|  137   // set_exit_status may be called off the main thread. |  127   // set_exit_status may be called off the main thread. | 
|  138   void set_exit_status(int exit_status); |  128   void set_exit_status(int exit_status); | 
|  139  |  129  | 
|  140   const PPB_NaCl_Private* nacl_interface() const { return nacl_interface_; } |  130   const PPB_NaCl_Private* nacl_interface() const { return nacl_interface_; } | 
|  141   pp::UMAPrivate& uma_interface() { return uma_interface_; } |  131   pp::UMAPrivate& uma_interface() { return uma_interface_; } | 
|  142  |  132  | 
|  143  private: |  133  private: | 
|  144   NACL_DISALLOW_COPY_AND_ASSIGN(Plugin); |  134   NACL_DISALLOW_COPY_AND_ASSIGN(Plugin); | 
|  145   // The browser will invoke the destructor via the pp::Instance |  135   // The browser will invoke the destructor via the pp::Instance | 
|  146   // pointer to this object, not from base's Delete(). |  136   // pointer to this object, not from base's Delete(). | 
|  147   ~Plugin(); |  137   ~Plugin(); | 
|  148  |  138  | 
|  149   // Shuts down socket connection, service runtime, and receive thread, |  139   // Shuts down socket connection, service runtime, and receive thread, | 
|  150   // in this order, for the main nacl subprocess. |  140   // in this order, for the main nacl subprocess. | 
|  151   void ShutDownSubprocesses(); |  141   void ShutDownSubprocesses(); | 
|  152  |  142  | 
|  153   // Histogram helper functions, internal to Plugin so they can use |  143   // Histogram helper functions, internal to Plugin so they can use | 
|  154   // uma_interface_ normally. |  144   // uma_interface_ normally. | 
|  155   void HistogramTimeSmall(const std::string& name, int64_t ms); |  145   void HistogramTimeSmall(const std::string& name, int64_t ms); | 
|  156   void HistogramEnumerateLoadStatus(PP_NaClError error_code); |  | 
|  157   void HistogramEnumerateSelLdrLoadStatus(NaClErrorCode error_code); |  | 
|  158  |  146  | 
|  159   // Load a nacl module from the file specified in file_handle. |  147   // Load a nacl module from the file specified in file_handle. | 
|  160   // Only to be used from a background (non-main) thread. |  148   // Only to be used from a background (non-main) thread. | 
|  161   // This will fully initialize the |subprocess| if the load was successful. |  149   // This will fully initialize the |subprocess| if the load was successful. | 
|  162   bool LoadNaClModuleFromBackgroundThread(PP_FileHandle file_handle, |  150   bool LoadNaClModuleFromBackgroundThread(PP_FileHandle file_handle, | 
|  163                                           NaClSubprocess* subprocess, |  151                                           NaClSubprocess* subprocess, | 
|  164                                           const SelLdrStartParams& params); |  152                                           const SelLdrStartParams& params); | 
|  165  |  153  | 
|  166   // Start sel_ldr from the main thread, given the start params. |  154   // Start sel_ldr from the main thread, given the start params. | 
|  167   // |pp_error| is set by CallOnMainThread (should be PP_OK). |  155   // |pp_error| is set by CallOnMainThread (should be PP_OK). | 
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  242  |  230  | 
|  243   PP_NaClFileInfo nexe_file_info_; |  231   PP_NaClFileInfo nexe_file_info_; | 
|  244  |  232  | 
|  245   const PPB_NaCl_Private* nacl_interface_; |  233   const PPB_NaCl_Private* nacl_interface_; | 
|  246   pp::UMAPrivate uma_interface_; |  234   pp::UMAPrivate uma_interface_; | 
|  247 }; |  235 }; | 
|  248  |  236  | 
|  249 }  // namespace plugin |  237 }  // namespace plugin | 
|  250  |  238  | 
|  251 #endif  // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_ |  239 #endif  // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_ | 
| OLD | NEW |