Index: ppapi/native_client/src/trusted/plugin/plugin.h |
diff --git a/ppapi/native_client/src/trusted/plugin/plugin.h b/ppapi/native_client/src/trusted/plugin/plugin.h |
deleted file mode 100644 |
index b1855f969965f1fddcc991d474604f1ddca389c0..0000000000000000000000000000000000000000 |
--- a/ppapi/native_client/src/trusted/plugin/plugin.h |
+++ /dev/null |
@@ -1,187 +0,0 @@ |
-// -*- c++ -*- |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-// The portable representation of an instance and root scriptable object. |
-// The PPAPI version of the plugin instantiates a subclass of this class. |
- |
-#ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_ |
-#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_ |
- |
-#include <stdio.h> |
- |
-#include <string> |
- |
-#include "native_client/src/include/nacl_macros.h" |
-#include "native_client/src/include/nacl_scoped_ptr.h" |
- |
-#include "ppapi/c/private/ppb_nacl_private.h" |
-#include "ppapi/cpp/instance.h" |
-#include "ppapi/cpp/private/uma_private.h" |
-#include "ppapi/cpp/url_loader.h" |
-#include "ppapi/cpp/var.h" |
-#include "ppapi/cpp/view.h" |
- |
-#include "ppapi/native_client/src/trusted/plugin/nacl_subprocess.h" |
-#include "ppapi/native_client/src/trusted/plugin/pnacl_coordinator.h" |
-#include "ppapi/native_client/src/trusted/plugin/service_runtime.h" |
-#include "ppapi/native_client/src/trusted/plugin/utility.h" |
- |
-#include "ppapi/utility/completion_callback_factory.h" |
- |
-namespace nacl { |
-class DescWrapper; |
-class DescWrapperFactory; |
-} // namespace nacl |
- |
-namespace pp { |
-class CompletionCallback; |
-class URLLoader; |
-class URLUtil_Dev; |
-} |
- |
-namespace plugin { |
- |
-class ErrorInfo; |
-class Manifest; |
- |
-int32_t ConvertFileDescriptor(PP_FileHandle handle); |
- |
-const PP_NaClFileInfo kInvalidNaClFileInfo = { |
- PP_kInvalidFileHandle, |
- 0, // token_lo |
- 0, // token_hi |
-}; |
- |
-class Plugin : public pp::Instance { |
- public: |
- explicit Plugin(PP_Instance instance); |
- |
- // ----- Methods inherited from pp::Instance: |
- |
- // Initializes this plugin with <embed/object ...> tag attribute count |argc|, |
- // names |argn| and values |argn|. Returns false on failure. |
- // Gets called by the browser right after New(). |
- bool Init(uint32_t argc, const char* argn[], const char* argv[]) override; |
- |
- // Handles document load, when the plugin is a MIME type handler. |
- bool HandleDocumentLoad(const pp::URLLoader& url_loader) override; |
- |
- // Load support. |
- // |
- // Starts NaCl module but does not wait until low-level |
- // initialization (e.g. ld.so dynamic loading of manifest files) is |
- // done. The module will become ready later, asynchronously. Other |
- // event handlers should block until the module is ready before |
- // trying to communicate with it, i.e., until nacl_ready_state is |
- // DONE. |
- // |
- // NB: currently we do not time out, so if the untrusted code |
- // does not signal that it is ready, then we will deadlock the main |
- // thread of the renderer on this subsequent event delivery. We |
- // should include a time-out at which point we declare the |
- // nacl_ready_state to be done, and let the normal crash detection |
- // mechanism(s) take over. |
- void LoadNaClModule(PP_NaClFileInfo file_info, |
- bool uses_nonsfi_mode, |
- PP_NaClAppProcessType process_type); |
- |
- // Load support. |
- // A helper SRPC NaCl module can be loaded given a PP_NaClFileInfo. |
- // Blocks until the helper module signals initialization is done. |
- // Does not update nacl_module_origin(). |
- // Returns NULL or the NaClSubprocess of the new helper NaCl module. |
- NaClSubprocess* LoadHelperNaClModule(const std::string& helper_url, |
- PP_NaClFileInfo file_info, |
- ErrorInfo* error_info); |
- |
- // Report an error that was encountered while loading a module. |
- void ReportLoadError(const ErrorInfo& error_info); |
- |
- nacl::DescWrapperFactory* wrapper_factory() const { return wrapper_factory_; } |
- |
- const PPB_NaCl_Private* nacl_interface() const { return nacl_interface_; } |
- pp::UMAPrivate& uma_interface() { return uma_interface_; } |
- |
- private: |
- NACL_DISALLOW_COPY_AND_ASSIGN(Plugin); |
- // The browser will invoke the destructor via the pp::Instance |
- // pointer to this object, not from base's Delete(). |
- ~Plugin() override; |
- |
- // Shuts down socket connection, service runtime, and receive thread, |
- // in this order, for the main nacl subprocess. |
- void ShutDownSubprocesses(); |
- |
- // Histogram helper functions, internal to Plugin so they can use |
- // uma_interface_ normally. |
- void HistogramTimeSmall(const std::string& name, int64_t ms); |
- |
- // Loads and starts a helper (e.g. llc, ld) NaCl module. |
- // Only to be used from a background (non-main) thread for the PNaCl |
- // translator. This will fully initialize the |subprocess| if the load was |
- // successful. |
- bool LoadHelperNaClModuleInternal(NaClSubprocess* subprocess, |
- const SelLdrStartParams& params); |
- |
- // Start sel_ldr from the main thread, given the start params. |
- // |pp_error| is set by CallOnMainThread (should be PP_OK). |
- void StartSelLdrOnMainThread(int32_t pp_error, |
- ServiceRuntime* service_runtime, |
- const SelLdrStartParams& params, |
- pp::CompletionCallback callback); |
- |
- // Signals that StartSelLdr has finished. |
- // This is invoked on the main thread. |
- void SignalStartSelLdrDone(int32_t pp_error, |
- bool* started, |
- ServiceRuntime* service_runtime); |
- |
- // This is invoked on the main thread. |
- void StartNexe(int32_t pp_error, ServiceRuntime* service_runtime); |
- |
- // Callback used when getting the URL for the .nexe file. If the URL loading |
- // is successful, the file descriptor is opened and can be passed to sel_ldr |
- // with the sandbox on. |
- void NexeFileDidOpen(int32_t pp_error); |
- |
- // Callback used when a .nexe is translated from bitcode. If the translation |
- // is successful, the file descriptor is opened and can be passed to sel_ldr |
- // with the sandbox on. |
- void BitcodeDidTranslate(int32_t pp_error); |
- |
- // NaCl ISA selection manifest file support. The manifest file is specified |
- // using the "nacl" attribute in the <embed> tag. First, the manifest URL (or |
- // data: URI) is fetched, then the JSON is parsed. Once a valid .nexe is |
- // chosen for the sandbox ISA, any current service runtime is shut down, the |
- // .nexe is loaded and run. |
- |
- // Callback used when getting the manifest file as a local file descriptor. |
- void NaClManifestFileDidOpen(int32_t pp_error); |
- |
- // Processes the JSON manifest string and starts loading the nexe. |
- void ProcessNaClManifest(const std::string& manifest_json); |
- |
- // Keep track of the NaCl module subprocess that was spun up in the plugin. |
- NaClSubprocess main_subprocess_; |
- |
- bool uses_nonsfi_mode_; |
- |
- nacl::DescWrapperFactory* wrapper_factory_; |
- |
- pp::CompletionCallbackFactory<Plugin> callback_factory_; |
- |
- nacl::scoped_ptr<PnaclCoordinator> pnacl_coordinator_; |
- |
- int exit_status_; |
- |
- PP_NaClFileInfo nexe_file_info_; |
- |
- const PPB_NaCl_Private* nacl_interface_; |
- pp::UMAPrivate uma_interface_; |
-}; |
- |
-} // namespace plugin |
- |
-#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PLUGIN_H_ |