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

Unified Diff: ppapi/native_client/src/trusted/plugin/plugin.h

Issue 9390028: Remove browser support for non-PPAPI nexes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: ppapi/native_client/src/trusted/plugin/plugin.h
===================================================================
--- ppapi/native_client/src/trusted/plugin/plugin.h (revision 121986)
+++ ppapi/native_client/src/trusted/plugin/plugin.h (working copy)
@@ -21,7 +21,6 @@
#include "native_client/src/include/nacl_scoped_ptr.h"
#include "native_client/src/include/nacl_string.h"
#include "native_client/src/trusted/plugin/file_downloader.h"
-#include "native_client/src/trusted/plugin/method_map.h"
#include "native_client/src/trusted/plugin/nacl_subprocess.h"
#include "native_client/src/trusted/plugin/pnacl_coordinator.h"
#include "native_client/src/trusted/plugin/service_runtime.h"
@@ -63,15 +62,8 @@
class Manifest;
class PnaclCoordinator;
class ProgressEvent;
-class ScriptableHandle;
+class ScriptablePlugin;
-typedef enum {
- METHOD_CALL = 0,
- PROPERTY_GET,
- PROPERTY_SET
-} CallType;
-
-
class Plugin : public pp::InstancePrivate {
public:
// Factory method for creation.
@@ -170,6 +162,9 @@
// Report loading a module was aborted, typically due to user action.
void ReportLoadAbort();
+ // Write a text string on the JavaScript console.
+ void AddToConsole(const nacl::string& text);
+
// Dispatch a JavaScript event to indicate a key step in loading.
// |event_type| is a character string indicating which type of progress
// event (loadstart, progress, error, abort, load, loadend). Events are
@@ -202,7 +197,6 @@
char** argn() const { return argn_; }
char** argv() const { return argv_; }
- BrowserInterface* browser_interface() const { return browser_interface_; }
Plugin* plugin() const { return const_cast<Plugin*>(this); }
// URL resolution support.
@@ -262,17 +256,16 @@
bool StartProxiedExecution(NaClSrpcChannel* srpc_channel,
ErrorInfo* error_info);
- // Determines whether experimental APIs are usable.
- static bool ExperimentalJavaScriptApisAreEnabled();
+ // Support for property getting.
+ typedef void (Plugin::* PropertyGetter)(NaClSrpcArg* prop_value);
+ void AddPropertyGet(const nacl::string& prop_name, PropertyGetter getter);
+ bool HasProperty(const nacl::string& prop_name);
+ bool GetProperty(const nacl::string& prop_name, NaClSrpcArg* prop_value);
+ // The supported property getters.
+ void GetExitStatus(NaClSrpcArg* prop_value);
+ void GetLastError(NaClSrpcArg* prop_value);
+ void GetReadyStateProperty(NaClSrpcArg* prop_value);
- // Methods for method and property dispatch.
- bool InitParams(uintptr_t method_id, CallType call_type, SrpcParams* params);
- bool HasMethod(uintptr_t method_id, CallType call_type);
- bool Invoke(uintptr_t method_id, CallType call_type, SrpcParams* params);
- std::vector<uintptr_t>* GetPropertyIdentifiers() {
- return property_get_methods_.Keys();
- }
-
// The size returned when a file download operation is unable to determine
// the size of the file to load. W3C ProgressEvents specify that unknown
// sizes return 0.
@@ -337,18 +330,14 @@
// pointer to this object, not from base's Delete().
~Plugin();
- bool Init(BrowserInterface* browser_interface,
- int argc,
- char* argn[],
- char* argv[]);
- void LoadMethods();
+ bool Init(int argc, char* argn[], char* argv[]);
// Shuts down socket connection, service runtime, and receive thread,
// in this order, for the main nacl subprocess.
void ShutDownSubprocesses();
- ScriptableHandle* scriptable_handle() const { return scriptable_handle_; }
- void set_scriptable_handle(ScriptableHandle* scriptable_handle) {
- scriptable_handle_ = scriptable_handle;
+ ScriptablePlugin* scriptable_plugin() const { return scriptable_plugin_; }
+ void set_scriptable_plugin(ScriptablePlugin* scriptable_plugin) {
+ scriptable_plugin_ = scriptable_plugin;
}
// Access the service runtime for the main NaCl subprocess.
@@ -356,11 +345,6 @@
return main_subprocess_.service_runtime();
}
- // Setting the properties and methods exported.
- void AddPropertyGet(RpcFunction function_ptr,
- const char* name,
- const char* outs);
-
// Help load a nacl module, from the file specified in wrapper.
// This will fully initialize the |subprocess| if the load was successful.
bool LoadNaClModuleCommon(nacl::DescWrapper* wrapper,
@@ -370,13 +354,7 @@
ErrorInfo* error_info,
pp::CompletionCallback init_done_cb,
pp::CompletionCallback crash_cb);
- bool StartSrpcServices(NaClSubprocess* subprocess, ErrorInfo* error_info);
- bool StartSrpcServicesCommon(NaClSubprocess* subprocess,
- ErrorInfo* error_info);
- bool StartJSObjectProxy(NaClSubprocess* subprocess, ErrorInfo* error_info);
- MethodInfo* GetMethodInfo(uintptr_t method_id, CallType call_type);
-
// 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.
@@ -454,8 +432,7 @@
// Shuts down the proxy for PPAPI nexes.
void ShutdownProxy(); // Nexe shutdown + proxy deletion.
- BrowserInterface* browser_interface_;
- ScriptableHandle* scriptable_handle_;
+ ScriptablePlugin* scriptable_plugin_;
int argc_;
char** argn_;
@@ -472,7 +449,7 @@
nacl::DescWrapperFactory* wrapper_factory_;
- MethodMap property_get_methods_;
+ std::map<nacl::string, PropertyGetter> property_getters_;
// File download support. |nexe_downloader_| can be opened with a specific
// callback to run when the file has been downloaded and is opened for

Powered by Google App Engine
This is Rietveld 408576698