| 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_
|
|
|