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

Unified Diff: chrome_frame/np_browser_functions.cc

Issue 7276037: Remove NPAPI support from Chrome Frame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 6 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: chrome_frame/np_browser_functions.cc
===================================================================
--- chrome_frame/np_browser_functions.cc (revision 90713)
+++ chrome_frame/np_browser_functions.cc (working copy)
@@ -1,533 +0,0 @@
-// Copyright (c) 2009 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.
-
-#include "chrome_frame/np_browser_functions.h"
-
-#include "base/logging.h"
-
-namespace npapi {
-
-// global function pointers (within this namespace) for the NPN functions.
-struct NpVersion {
- struct {
- uint8 minor;
- uint8 major;
- } v;
-
- void set_version(uint16 version) {
- v.minor = version & 0xFF;
- v.major = version >> 8;
- }
-
- uint16 version() const {
- return v.minor | (v.major << 8);
- }
-};
-
-NpVersion g_version = {0};
-
-NPN_GetURLProcPtr g_geturl = NULL;
-NPN_PostURLProcPtr g_posturl = NULL;
-NPN_RequestReadProcPtr g_requestread = NULL;
-NPN_NewStreamProcPtr g_newstream = NULL;
-NPN_WriteProcPtr g_write = NULL;
-NPN_DestroyStreamProcPtr g_destroystream = NULL;
-NPN_StatusProcPtr g_status = NULL;
-NPN_UserAgentProcPtr g_useragent = NULL;
-NPN_MemAllocProcPtr g_memalloc = NULL;
-NPN_MemFreeProcPtr g_memfree = NULL;
-NPN_MemFlushProcPtr g_memflush = NULL;
-NPN_ReloadPluginsProcPtr g_reloadplugins = NULL;
-NPN_GetJavaEnvProcPtr g_getJavaEnv = NULL;
-NPN_GetJavaPeerProcPtr g_getJavaPeer = NULL;
-NPN_GetURLNotifyProcPtr g_geturlnotify = NULL;
-NPN_PostURLNotifyProcPtr g_posturlnotify = NULL;
-NPN_GetValueProcPtr g_getvalue = NULL;
-NPN_SetValueProcPtr g_setvalue = NULL;
-NPN_InvalidateRectProcPtr g_invalidaterect = NULL;
-NPN_InvalidateRegionProcPtr g_invalidateregion = NULL;
-NPN_ForceRedrawProcPtr g_forceredraw = NULL;
-NPN_GetStringIdentifierProcPtr g_getstringidentifier = NULL;
-NPN_GetStringIdentifiersProcPtr g_getstringidentifiers = NULL;
-NPN_GetIntIdentifierProcPtr g_getintidentifier = NULL;
-NPN_IdentifierIsStringProcPtr g_identifierisstring = NULL;
-NPN_UTF8FromIdentifierProcPtr g_utf8fromidentifier = NULL;
-NPN_IntFromIdentifierProcPtr g_intfromidentifier = NULL;
-NPN_CreateObjectProcPtr g_createobject = NULL;
-NPN_RetainObjectProcPtr g_retainobject = NULL;
-NPN_ReleaseObjectProcPtr g_releaseobject = NULL;
-NPN_InvokeProcPtr g_invoke = NULL;
-NPN_InvokeDefaultProcPtr g_invoke_default = NULL;
-NPN_EvaluateProcPtr g_evaluate = NULL;
-NPN_GetPropertyProcPtr g_getproperty = NULL;
-NPN_SetPropertyProcPtr g_setproperty = NULL;
-NPN_RemovePropertyProcPtr g_removeproperty = NULL;
-NPN_HasPropertyProcPtr g_hasproperty = NULL;
-NPN_HasMethodProcPtr g_hasmethod = NULL;
-NPN_ReleaseVariantValueProcPtr g_releasevariantvalue = NULL;
-NPN_SetExceptionProcPtr g_setexception = NULL;
-NPN_PushPopupsEnabledStateProcPtr g_pushpopupsenabledstate = NULL;
-NPN_PopPopupsEnabledStateProcPtr g_poppopupsenabledstate = NULL;
-NPN_EnumerateProcPtr g_enumerate = NULL;
-NPN_PluginThreadAsyncCallProcPtr g_pluginthreadasynccall = NULL;
-NPN_ConstructProcPtr g_construct = NULL;
-NPN_GetValueForURLPtr g_getvalueforurl = NULL;
-NPN_SetValueForURLPtr g_setvalueforurl = NULL;
-NPN_GetAuthenticationInfoPtr g_getauthenticationinfo = NULL;
-NPN_URLRedirectResponsePtr g_urlredirectresponse = NULL;
-
-// Must be called prior to calling any of the browser functions below.
-void InitializeBrowserFunctions(NPNetscapeFuncs* functions) {
- CHECK(functions);
- DCHECK(g_geturl == NULL || g_geturl == functions->geturl);
-
- g_version.set_version(functions->version);
-
- g_geturl = functions->geturl;
- g_posturl = functions->posturl;
- g_requestread = functions->requestread;
- g_newstream = functions->newstream;
- g_write = functions->write;
- g_destroystream = functions->destroystream;
- g_status = functions->status;
- g_useragent = functions->uagent;
- g_memalloc = functions->memalloc;
- g_memfree = functions->memfree;
- g_memflush = functions->memflush;
- g_reloadplugins = functions->reloadplugins;
- g_getJavaEnv = functions->getJavaEnv;
- g_getJavaPeer = functions->getJavaPeer;
- g_geturlnotify = functions->geturlnotify;
- g_posturlnotify = functions->posturlnotify;
- g_getvalue = functions->getvalue;
- g_setvalue = functions->setvalue;
- g_invalidaterect = functions->invalidaterect;
- g_invalidateregion = functions->invalidateregion;
- g_forceredraw = functions->forceredraw;
- g_getstringidentifier = functions->getstringidentifier;
- g_getstringidentifiers = functions->getstringidentifiers;
- g_getintidentifier = functions->getintidentifier;
- g_identifierisstring = functions->identifierisstring;
- g_utf8fromidentifier = functions->utf8fromidentifier;
- g_intfromidentifier = functions->intfromidentifier;
- g_createobject = functions->createobject;
- g_retainobject = functions->retainobject;
- g_releaseobject = functions->releaseobject;
- g_invoke = functions->invoke;
- g_invoke_default = functions->invokeDefault;
- g_evaluate = functions->evaluate;
- g_getproperty = functions->getproperty;
- g_setproperty = functions->setproperty;
- g_removeproperty = functions->removeproperty;
- g_hasproperty = functions->hasproperty;
- g_hasmethod = functions->hasmethod;
- g_releasevariantvalue = functions->releasevariantvalue;
- g_setexception = functions->setexception;
- g_pushpopupsenabledstate = functions->pushpopupsenabledstate;
- g_poppopupsenabledstate = functions->poppopupsenabledstate;
- g_enumerate = functions->enumerate;
- g_pluginthreadasynccall = functions->pluginthreadasynccall;
- g_construct = functions->construct;
- g_urlredirectresponse = functions->urlredirectresponse;
-
- if (g_version.v.minor >= NPVERS_HAS_URL_AND_AUTH_INFO) {
- g_getvalueforurl = functions->getvalueforurl;
- g_setvalueforurl = functions->setvalueforurl;
- g_getauthenticationinfo = functions->getauthenticationinfo;
- }
-}
-
-void UninitializeBrowserFunctions() {
- g_version.set_version(0);
-
- // We skip doing this in the official build as it doesn't serve much purpose
-// during shutdown. The reason for it being here in the other types of builds
-// is to spot potential browser bugs whereby the browser leaves living objects
-// in our DLL after shutdown has been called. In theory those objects could
-// trigger a call to the browser functions after shutdown has been called
-// and for non official builds we want that to simply crash.
-// For official builds we leave the function pointers around since they
-// continue to valid.
- g_geturl = NULL;
- g_posturl = NULL;
- g_requestread = NULL;
- g_newstream = NULL;
- g_write = NULL;
- g_destroystream = NULL;
- g_status = NULL;
- g_useragent = NULL;
- g_memalloc = NULL;
- g_memfree = NULL;
- g_memflush = NULL;
- g_reloadplugins = NULL;
- g_getJavaEnv = NULL;
- g_getJavaPeer = NULL;
- g_geturlnotify = NULL;
- g_posturlnotify = NULL;
- g_getvalue = NULL;
- g_setvalue = NULL;
- g_invalidaterect = NULL;
- g_invalidateregion = NULL;
- g_forceredraw = NULL;
- g_getstringidentifier = NULL;
- g_getstringidentifiers = NULL;
- g_getintidentifier = NULL;
- g_identifierisstring = NULL;
- g_utf8fromidentifier = NULL;
- g_intfromidentifier = NULL;
- g_createobject = NULL;
- g_retainobject = NULL;
- g_releaseobject = NULL;
- g_invoke = NULL;
- g_invoke_default = NULL;
- g_evaluate = NULL;
- g_getproperty = NULL;
- g_setproperty = NULL;
- g_removeproperty = NULL;
- g_hasproperty = NULL;
- g_hasmethod = NULL;
- g_releasevariantvalue = NULL;
- g_setexception = NULL;
- g_pushpopupsenabledstate = NULL;
- g_poppopupsenabledstate = NULL;
- g_enumerate = NULL;
- g_pluginthreadasynccall = NULL;
- g_construct = NULL;
- g_getvalueforurl = NULL;
- g_setvalueforurl = NULL;
- g_getauthenticationinfo = NULL;
-}
-
-bool IsInitialized() {
- // We only check one function for convenience.
- return g_getvalue != NULL;
-}
-
-// Function stubs for functions that the host browser implements.
-uint8 VersionMinor() {
- return g_version.v.minor;
-}
-
-uint8 VersionMajor() {
- return g_version.v.major;
-}
-
-NPError GetURL(NPP instance, const char* URL, const char* window) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_geturl(instance, URL, window);
-}
-
-NPError PostURL(NPP instance, const char* URL, const char* window, uint32 len,
- const char* buf, NPBool file) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_posturl(instance, URL, window, len, buf, file);
-}
-
-NPError RequestRead(NPStream* stream, NPByteRange* rangeList) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_requestread(stream, rangeList);
-}
-
-NPError NewStream(NPP instance, NPMIMEType type, const char* window,
- NPStream** stream) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_newstream(instance, type, window, stream);
-}
-
-int32 Write(NPP instance, NPStream* stream, int32 len, void* buffer) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_write(instance, stream, len, buffer);
-}
-
-NPError DestroyStream(NPP instance, NPStream* stream, NPReason reason) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_destroystream(instance, stream, reason);
-}
-
-void Status(NPP instance, const char* message) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_status(instance, message);
-}
-
-const char* UserAgent(NPP instance) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_useragent(instance);
-}
-
-void* MemAlloc(uint32 size) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_memalloc(size);
-}
-
-void MemFree(void* ptr) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_memfree(ptr);
-}
-
-uint32 MemFlush(uint32 size) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_memflush(size);
-}
-
-void ReloadPlugins(NPBool reloadPages) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_reloadplugins(reloadPages);
-}
-
-void* GetJavaEnv() {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_getJavaEnv();
-}
-
-void* GetJavaPeer(NPP instance) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_getJavaPeer(instance);
-}
-
-NPError GetURLNotify(NPP instance, const char* URL, const char* window,
- void* notifyData) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_geturlnotify(instance, URL, window, notifyData);
-}
-
-NPError PostURLNotify(NPP instance, const char* URL, const char* window,
- uint32 len, const char* buf, NPBool file,
- void* notifyData) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_posturlnotify(instance, URL, window, len, buf, file, notifyData);
-}
-
-NPError GetValue(NPP instance, NPNVariable variable, void* ret_value) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_getvalue(instance, variable, ret_value);
-}
-
-NPError SetValue(NPP instance, NPPVariable variable, void* value) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_setvalue(instance, variable, value);
-}
-
-void InvalidateRect(NPP instance, NPRect* rect) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_invalidaterect(instance, rect);
-}
-
-void InvalidateRegion(NPP instance, NPRegion region) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_invalidateregion(instance, region);
-}
-
-void ForceRedraw(NPP instance) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_forceredraw(instance);
-}
-
-void ReleaseVariantValue(NPVariant* variant) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_releasevariantvalue(variant);
-}
-
-NPIdentifier GetStringIdentifier(const NPUTF8* name) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_getstringidentifier(name);
-}
-
-void GetStringIdentifiers(const NPUTF8** names, int nameCount,
- NPIdentifier* identifiers) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_getstringidentifiers(names, nameCount, identifiers);
-}
-
-NPIdentifier GetIntIdentifier(int32_t intid) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_getintidentifier(intid);
-}
-
-int32_t IntFromIdentifier(NPIdentifier identifier) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_intfromidentifier(identifier);
-}
-
-bool IdentifierIsString(NPIdentifier identifier) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_identifierisstring(identifier);
-
-}
-
-NPUTF8* UTF8FromIdentifier(NPIdentifier identifier) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_utf8fromidentifier(identifier);
-
-}
-
-NPObject* CreateObject(NPP instance, NPClass* aClass) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_createobject(instance, aClass);
-
-}
-
-NPObject* RetainObject(NPObject* obj) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_retainobject(obj);
-
-}
-
-void ReleaseObject(NPObject* obj) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_releaseobject(obj);
-
-}
-
-bool Invoke(NPP npp, NPObject* obj, NPIdentifier methodName,
- const NPVariant* args, unsigned argCount, NPVariant* result) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_invoke(npp, obj, methodName, args, argCount, result);
-}
-
-bool InvokeDefault(NPP npp, NPObject* obj, const NPVariant* args,
- unsigned argCount, NPVariant* result) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_invoke_default(npp, obj, args, argCount, result);
-}
-
-bool Evaluate(NPP npp, NPObject* obj, NPString* script, NPVariant* result) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_evaluate(npp, obj, script, result);
-}
-
-bool GetProperty(NPP npp, NPObject* obj, NPIdentifier propertyName,
- NPVariant* result) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_getproperty(npp, obj, propertyName, result);
-}
-
-bool SetProperty(NPP npp, NPObject* obj, NPIdentifier propertyName,
- const NPVariant* value) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_setproperty(npp, obj, propertyName, value);
-}
-
-bool HasProperty(NPP npp, NPObject* npobj, NPIdentifier propertyName) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_hasproperty(npp, npobj, propertyName);
-}
-
-bool HasMethod(NPP npp, NPObject* npobj, NPIdentifier methodName) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_hasmethod(npp, npobj, methodName);
-}
-
-bool RemoveProperty(NPP npp, NPObject* obj, NPIdentifier propertyName) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_removeproperty(npp, obj, propertyName);
-}
-
-void SetException(NPObject* obj, const NPUTF8* message) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_setexception(obj, message);
-}
-
-void PushPopupsEnabledState(NPP npp, NPBool enabled) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_pushpopupsenabledstate(npp, enabled);
-}
-
-void PopPopupsEnabledState(NPP npp) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_poppopupsenabledstate(npp);
-}
-
-bool Enumerate(NPP npp, NPObject* obj, NPIdentifier** identifier,
- uint32_t* count) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_enumerate(npp, obj, identifier, count);
-}
-
-void PluginThreadAsyncCall(NPP instance, void (*func)(void*), void* userData) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_pluginthreadasynccall(instance, func, userData);
-}
-
-bool Construct(NPP npp, NPObject* obj, const NPVariant* args, uint32_t argCount,
- NPVariant* result) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- return g_construct(npp, obj, args, argCount, result);
-}
-
-NPError GetValueForURL(NPP instance, NPNURLVariable variable, const char* url,
- char** value, uint32* len) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- DCHECK(npapi::VersionMinor() >= NPVERS_HAS_URL_AND_AUTH_INFO);
- if (!g_getvalueforurl) {
- NOTREACHED();
- return NPERR_INCOMPATIBLE_VERSION_ERROR;
- }
-
- return g_getvalueforurl(instance, variable, url, value, len);
-}
-
-NPError SetValueForURL(NPP instance, NPNURLVariable variable, const char* url,
- const char* value, uint32 len) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- DCHECK(npapi::VersionMinor() >= NPVERS_HAS_URL_AND_AUTH_INFO);
- if (!g_setvalueforurl) {
- NOTREACHED();
- return NPERR_INCOMPATIBLE_VERSION_ERROR;
- }
-
- return g_setvalueforurl(instance, variable, url, value, len);
-}
-
-NPError GetAuthenticationInfo(NPP instance, const char* protocol,
- const char* host, int32 port, const char* scheme,
- const char *realm, char** username, uint32* ulen,
- char** password, uint32* plen) {
- DCHECK(IsInitialized()) << __FUNCTION__;
- DCHECK(npapi::VersionMinor() >= NPVERS_HAS_URL_AND_AUTH_INFO);
- if (g_getauthenticationinfo) {
- NOTREACHED();
- return NPERR_INCOMPATIBLE_VERSION_ERROR;
- }
-
- return g_getauthenticationinfo(instance, protocol, host, port, scheme,
- realm, username, ulen, password, plen);
-}
-
-void URLRedirectResponse(NPP instance, void* notify_data, NPBool allow) {
- if (!g_urlredirectresponse) {
- NOTREACHED() << "Unexpected call to NPN_URLRedirectResponse";
- return;
- }
- return g_urlredirectresponse(instance, notify_data, allow);
-}
-
-std::string StringFromIdentifier(NPIdentifier identifier) {
- std::string ret;
- NPUTF8* utf8 = UTF8FromIdentifier(identifier);
- if (utf8) {
- ret = utf8;
- MemFree(utf8);
- }
- return ret;
-}
-
-} // namespace npapi
-
-void AllocateStringVariant(const std::string& str, NPVariant* var) {
- DCHECK(var);
-
- int len = str.length();
- NPUTF8* buffer = reinterpret_cast<NPUTF8*>(npapi::MemAlloc(len + 1));
- if (buffer) {
- buffer[len] = '\0';
- memcpy(buffer, str.c_str(), len);
- STRINGN_TO_NPVARIANT(buffer, len, *var);
- } else {
- NULL_TO_NPVARIANT(*var);
- }
-}
-
-bool BrowserSupportsRedirectNotification() {
- return npapi::g_urlredirectresponse != NULL;
-}

Powered by Google App Engine
This is Rietveld 408576698