diff options
Diffstat (limited to 'ceee')
-rw-r--r-- | ceee/common/common.gyp | 2 | ||||
-rw-r--r-- | ceee/common/np_browser_functions.cc | 435 | ||||
-rw-r--r-- | ceee/common/np_browser_functions.h | 260 | ||||
-rw-r--r-- | ceee/ie/common/chrome_frame_host.cc | 5 | ||||
-rw-r--r-- | ceee/ie/common/chrome_frame_host.h | 1 | ||||
-rw-r--r-- | ceee/ie/common/common.gyp | 4 | ||||
-rw-r--r-- | ceee/ie/plugin/bho/infobar_browser_window.cc | 5 | ||||
-rw-r--r-- | ceee/ie/plugin/bho/infobar_browser_window.h | 1 | ||||
-rw-r--r-- | ceee/ie/plugin/toolband/tool_band.cc | 6 | ||||
-rw-r--r-- | ceee/ie/plugin/toolband/tool_band.h | 1 | ||||
-rw-r--r-- | ceee/ie/plugin/toolband/toolband.gyp | 20 | ||||
-rw-r--r-- | ceee/testing/utils/mock_com.h | 9 | ||||
-rw-r--r-- | ceee/testing/utils/mock_ioleclientsite.gen | 15 | ||||
-rw-r--r-- | ceee/testing/utils/test_utils.gyp | 1 |
14 files changed, 45 insertions, 720 deletions
diff --git a/ceee/common/common.gyp b/ceee/common/common.gyp index ce8cc2b..82f61d6 100644 --- a/ceee/common/common.gyp +++ b/ceee/common/common.gyp @@ -62,8 +62,6 @@ 'initializing_coclass.h', 'install_utils.cc', 'install_utils.h', - 'np_browser_functions.cc', - 'np_browser_functions.h', 'npobject_impl.cc', 'npobject_impl.h', 'npplugin_impl.cc', diff --git a/ceee/common/np_browser_functions.cc b/ceee/common/np_browser_functions.cc deleted file mode 100644 index b421f7c..0000000 --- a/ceee/common/np_browser_functions.cc +++ /dev/null @@ -1,435 +0,0 @@ -// Copyright (c) 2010 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 "ceee/common/np_browser_functions.h" - -#include "base/logging.h" - -namespace npapi { - -// global function pointers (within this namespace) for the NPN functions. -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; - -// 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_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; -} - -void UninitializeBrowserFunctions() { -// 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; -} - -bool IsInitialized() { - // We only check one function for convenience. - return g_getvalue != NULL; -} - -// Function stubs for functions that the host browser implements. - -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, int32_t 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*), // NOLINT - 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); -} - -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); - } -} diff --git a/ceee/common/np_browser_functions.h b/ceee/common/np_browser_functions.h deleted file mode 100644 index 8ab8b63..0000000 --- a/ceee/common/np_browser_functions.h +++ /dev/null @@ -1,260 +0,0 @@ -// Copyright (c) 2010 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. -#ifndef CEEE_COMMON_NP_BROWSER_FUNCTIONS_H_ -#define CEEE_COMMON_NP_BROWSER_FUNCTIONS_H_ - -#include <string> -#include "base/logging.h" -#include "third_party/npapi/bindings/nphostapi.h" - -namespace npapi { - -// Must be called prior to calling any of the browser functions below. -void InitializeBrowserFunctions(NPNetscapeFuncs* functions); -void UninitializeBrowserFunctions(); - -// Returns true iff InitializeBrowserFunctions has been called successully. -bool IsInitialized(); - -// Function stubs for functions that the host browser implements. - -NPError GetURL(NPP instance, const char* URL, const char* window); - -NPError PostURL(NPP instance, const char* URL, const char* window, uint32 len, - const char* buf, NPBool file); - -NPError RequestRead(NPStream* stream, NPByteRange* rangeList); - -NPError NewStream(NPP instance, NPMIMEType type, const char* window, - NPStream** stream); - -int32 Write(NPP instance, NPStream* stream, int32 len, void* buffer); - -NPError DestroyStream(NPP instance, NPStream* stream, NPReason reason); - -void Status(NPP instance, const char* message); - -const char* UserAgent(NPP instance); - -void* MemAlloc(uint32 size); - -void MemFree(void* ptr); - -uint32 MemFlush(uint32 size); - -void ReloadPlugins(NPBool reloadPages); - -void* GetJavaEnv(); - -void* GetJavaPeer(NPP instance); - -NPError GetURLNotify(NPP instance, const char* URL, const char* window, - void* notifyData); - -NPError PostURLNotify(NPP instance, const char* URL, const char* window, - uint32 len, const char* buf, NPBool file, - void* notifyData); - -NPError GetValue(NPP instance, NPNVariable variable, void* ret_value); - -NPError SetValue(NPP instance, NPPVariable variable, void* value); - -void InvalidateRect(NPP instance, NPRect* rect); - -void InvalidateRegion(NPP instance, NPRegion region); - -void ForceRedraw(NPP instance); - -void ReleaseVariantValue(NPVariant* variant); - -NPIdentifier GetStringIdentifier(const NPUTF8* name); - -void GetStringIdentifiers(const NPUTF8** names, int32_t nameCount, - NPIdentifier* identifiers); - -NPIdentifier GetIntIdentifier(int32_t intid); - -int32_t IntFromIdentifier(NPIdentifier identifier); - -bool IdentifierIsString(NPIdentifier identifier); - -NPUTF8* UTF8FromIdentifier(NPIdentifier identifier); - -NPObject* CreateObject(NPP, NPClass* aClass); - -NPObject* RetainObject(NPObject* obj); - -void ReleaseObject(NPObject* obj); - -bool Invoke(NPP npp, NPObject* obj, NPIdentifier methodName, - const NPVariant* args, unsigned argCount, NPVariant* result); - -bool InvokeDefault(NPP npp, NPObject* obj, const NPVariant* args, - unsigned argCount, NPVariant* result); - -bool Evaluate(NPP npp, NPObject* obj, NPString* script, NPVariant* result); - -bool GetProperty(NPP npp, NPObject* obj, NPIdentifier propertyName, - NPVariant* result); - -bool SetProperty(NPP npp, NPObject* obj, NPIdentifier propertyName, - const NPVariant* value); - -bool HasProperty(NPP npp, NPObject* npobj, NPIdentifier propertyName); - -bool HasMethod(NPP npp, NPObject* npobj, NPIdentifier methodName); - -bool RemoveProperty(NPP npp, NPObject* obj, NPIdentifier propertyName); - -void SetException(NPObject* obj, const NPUTF8* message); - -void PushPopupsEnabledState(NPP npp, NPBool enabled); - -void PopPopupsEnabledState(NPP npp); - -bool Enumerate(NPP npp, NPObject* obj, NPIdentifier** identifier, - uint32_t* count); - -void PluginThreadAsyncCall(NPP instance, - void (*func)(void*), // NOLINT - void* userData); - -bool Construct(NPP npp, NPObject* obj, const NPVariant* args, uint32_t argCount, - NPVariant* result); - -// Helper routine that wraps UTF8FromIdentifier to convert a string identifier -// to an STL string. It's not super efficient since it could possibly do two -// heap allocations (STL string has a stack based buffer for smaller strings). -// For debugging purposes it is useful. -std::string StringFromIdentifier(NPIdentifier identifier); - -} // namespace npapi - -// Simple helper class for freeing NPVariants at the end of a scope. -class ScopedNpVariant : public NPVariant { - public: - ScopedNpVariant() { - VOID_TO_NPVARIANT(*this); - } - - ~ScopedNpVariant() { - Free(); - } - - void Free() { - npapi::ReleaseVariantValue(this); - VOID_TO_NPVARIANT(*this); - } - - private: - DISALLOW_COPY_AND_ASSIGN(ScopedNpVariant); -}; - -// Simple helper class for freeing NPObjects at the end of a scope. -template <typename NpoType = NPObject> -class ScopedNpObject { - public: - ScopedNpObject() : npo_(NULL) { - } - - explicit ScopedNpObject(NpoType* npo) : npo_(npo) { - } - - ~ScopedNpObject() { - Free(); - } - - NpoType* get() const { - return npo_; - } - - operator NpoType*() const { - return npo_; - } - - NpoType* operator->() const { - return npo_; - } - - ScopedNpObject<NpoType>& operator=(NpoType* npo) { - if (npo != npo_) { - DCHECK(npo_ == NULL); - npapi::RetainObject(npo); - npo_ = npo; - } - return *this; - } - - void Free() { - if (npo_) { - npapi::ReleaseObject(npo_); - npo_ = NULL; - } - } - - NpoType** Receive() { - DCHECK(npo_ == NULL) << "Object leak. Pointer must be NULL"; - return &npo_; - } - - NpoType* Detach() { - NpoType* p = npo_; - npo_ = NULL; - return p; - } - - void Attach(NpoType* p) { - DCHECK(npo_ == NULL); - npo_ = p; - } - - NpoType* Copy() const { - if (npo_ != NULL) - npapi::RetainObject(npo_); - return npo_; - } - - bool Invoke0(NPP npp, NPIdentifier id, NPVariant* result) { - return npapi::Invoke(npp, npo_, id, NULL, 0, result); - } - bool Invoke0(NPP npp, const NPUTF8* name, NPVariant* result) { - return Invoke0(npp, npapi::GetStringIdentifier(name), result); - } - - bool Invoke1(NPP npp, NPIdentifier id, const NPVariant &arg1, - NPVariant* result) { - return npapi::Invoke(npp, npo_, id, &arg1, 1, result); - } - bool Invoke1(NPP npp, const NPUTF8* name, const NPVariant &arg1, - NPVariant* result) { - return Invoke1(npp, npapi::GetStringIdentifier(name), arg1, result); - } - bool InvokeN(NPP npp, NPIdentifier id, const NPVariant* args, unsigned argc, - NPVariant* result) { - return npapi::Invoke(npp, npo_, id, args, argc, result); - } - bool InvokeN(NPP npp, const NPUTF8* name, const NPVariant* args, - unsigned argc, NPVariant* result) { - return Invoke1(npp, npapi::GetStringIdentifier(name), args, argc, result); - } - - bool GetProperty(NPP npp, NPIdentifier id, NPVariant* result) { - return npapi::GetProperty(npp, npo_, id, result); - } - - bool GetProperty(NPP npp, const NPUTF8* name, NPVariant* result) { - return GetProperty(npp, npapi::GetStringIdentifier(name), result); - } - - private: - NpoType* npo_; - DISALLOW_COPY_AND_ASSIGN(ScopedNpObject); -}; - -// Allocates a new NPUTF8 string and assigns it to the variant. -// If memory allocation fails, the variant type will be set to NULL. -// The memory allocation is done via the npapi browser functions. -void AllocateStringVariant(const std::string& str, NPVariant* var); - -#endif // CEEE_COMMON_NP_BROWSER_FUNCTIONS_H_ diff --git a/ceee/ie/common/chrome_frame_host.cc b/ceee/ie/common/chrome_frame_host.cc index 77c0bc9..66e8efc 100644 --- a/ceee/ie/common/chrome_frame_host.cc +++ b/ceee/ie/common/chrome_frame_host.cc @@ -107,6 +107,11 @@ STDMETHODIMP ChromeFrameHost::GetExtensionApisToAutomate( return hr; } +STDMETHODIMP ChromeFrameHost::ShouldShowVersionMismatchDialog() { + // Only our toolband allows the notification dialog to be shown. + return S_FALSE; +} + HRESULT ChromeFrameHost::Initialize() { return S_OK; } diff --git a/ceee/ie/common/chrome_frame_host.h b/ceee/ie/common/chrome_frame_host.h index ef43499..b04b7b5 100644 --- a/ceee/ie/common/chrome_frame_host.h +++ b/ceee/ie/common/chrome_frame_host.h @@ -143,6 +143,7 @@ class ATL_NO_VTABLE ChromeFrameHost STDMETHOD(GetChromeExtraArguments)(BSTR* args); STDMETHOD(GetChromeProfileName)(BSTR* args); STDMETHOD(GetExtensionApisToAutomate)(BSTR* functions_enabled); + STDMETHOD(ShouldShowVersionMismatchDialog)(); // @} // @name ChromeFrame event handlers diff --git a/ceee/ie/common/common.gyp b/ceee/ie/common/common.gyp index 759c901..7c42be7 100644 --- a/ceee/ie/common/common.gyp +++ b/ceee/ie/common/common.gyp @@ -33,7 +33,7 @@ 'dependencies': [ 'ie_common_settings', '../plugin/toolband/toolband.gyp:toolband_idl', - '../plugin/toolband/toolband.gyp:chrome_tab_idl', + '<(DEPTH)/chrome_frame/chrome_frame.gyp:chrome_tab_idl', ], 'sources': [ 'ie_guids.cc', @@ -54,7 +54,7 @@ '../../../ceee/common/common.gyp:initializing_coclass', '../../../ceee/common/common.gyp:ceee_common', '../../../ceee/testing/utils/test_utils.gyp:test_utils', - '../plugin/toolband/toolband.gyp:chrome_tab_idl', + '<(DEPTH)/chrome_frame/chrome_frame.gyp:chrome_tab_idl', '../plugin/toolband/toolband.gyp:toolband_idl', ], 'sources': [ diff --git a/ceee/ie/plugin/bho/infobar_browser_window.cc b/ceee/ie/plugin/bho/infobar_browser_window.cc index 49fbd85..8a332e4 100644 --- a/ceee/ie/plugin/bho/infobar_browser_window.cc +++ b/ceee/ie/plugin/bho/infobar_browser_window.cc @@ -64,6 +64,11 @@ STDMETHODIMP InfobarBrowserWindow::GetExtensionApisToAutomate( return S_FALSE; } +STDMETHODIMP InfobarBrowserWindow::ShouldShowVersionMismatchDialog() { + // Only our toolband allows the notification dialog to be shown. + return S_FALSE; +} + STDMETHODIMP_(void) InfobarBrowserWindow::OnCfReadyStateChanged(LONG state) { if (state == READYSTATE_COMPLETE) { // We already loaded the extension, enable them in this CF. diff --git a/ceee/ie/plugin/bho/infobar_browser_window.h b/ceee/ie/plugin/bho/infobar_browser_window.h index 7e6dbcb..9c4b39f 100644 --- a/ceee/ie/plugin/bho/infobar_browser_window.h +++ b/ceee/ie/plugin/bho/infobar_browser_window.h @@ -105,6 +105,7 @@ class ATL_NO_VTABLE InfobarBrowserWindow STDMETHOD(GetChromeExtraArguments)(BSTR *args); STDMETHOD(GetChromeProfileName)(BSTR *args); STDMETHOD(GetExtensionApisToAutomate)(BSTR *args); + STDMETHOD(ShouldShowVersionMismatchDialog)(); // @} // @name ChromeFrame event handlers. diff --git a/ceee/ie/plugin/toolband/tool_band.cc b/ceee/ie/plugin/toolband/tool_band.cc index b8dfcea..e3ea63c 100644 --- a/ceee/ie/plugin/toolband/tool_band.cc +++ b/ceee/ie/plugin/toolband/tool_band.cc @@ -234,6 +234,12 @@ STDMETHODIMP ToolBand::GetExtensionApisToAutomate(BSTR* functions_enabled) { return S_FALSE; } +STDMETHODIMP ToolBand::ShouldShowVersionMismatchDialog() { + // Only the toolband shows the warning dialog, meaning it gets shown once + // per tab. + return S_OK; +} + HRESULT ToolBand::Initialize(IUnknown* site) { TRACE_EVENT_INSTANT("ceee.toolband.initialize", this, ""); diff --git a/ceee/ie/plugin/toolband/tool_band.h b/ceee/ie/plugin/toolband/tool_band.h index 33ad61c..e66993f 100644 --- a/ceee/ie/plugin/toolband/tool_band.h +++ b/ceee/ie/plugin/toolband/tool_band.h @@ -140,6 +140,7 @@ class ATL_NO_VTABLE ToolBand : public CComObjectRootEx<CComSingleThreadModel>, STDMETHOD(GetChromeExtraArguments)(BSTR *args); STDMETHOD(GetChromeProfileName)(BSTR *args); STDMETHOD(GetExtensionApisToAutomate)(BSTR *args); + STDMETHOD(ShouldShowVersionMismatchDialog)(); // @} diff --git a/ceee/ie/plugin/toolband/toolband.gyp b/ceee/ie/plugin/toolband/toolband.gyp index 551092d..fd9df79 100644 --- a/ceee/ie/plugin/toolband/toolband.gyp +++ b/ceee/ie/plugin/toolband/toolband.gyp @@ -11,28 +11,10 @@ ], 'targets': [ { - # This target builds Chrome Frame's IDL file to our - # shared intermediate directory - 'target_name': 'chrome_tab_idl', - 'type': 'none', - 'msvs_settings': { - 'VCMIDLTool': { - 'OutputDirectory': '<(SHARED_INTERMEDIATE_DIR)', - }, - }, - 'sources': [ - '../../../../chrome_frame/chrome_tab.idl', - ], - # Add the output dir for those who depend on us. - 'direct_dependent_settings': { - 'include_dirs': ['<(SHARED_INTERMEDIATE_DIR)'], - }, - }, - { 'target_name': 'ceee_ie_lib', 'type': 'static_library', 'dependencies': [ - 'chrome_tab_idl', + '<(DEPTH)/chrome_frame/chrome_frame.gyp:chrome_tab_idl', '../../common/common.gyp:ie_common_settings', '../../../../base/base.gyp:base', '../../../../ceee/common/common.gyp:ceee_common', diff --git a/ceee/testing/utils/mock_com.h b/ceee/testing/utils/mock_com.h index 36f2d65..23cb233 100644 --- a/ceee/testing/utils/mock_com.h +++ b/ceee/testing/utils/mock_com.h @@ -22,6 +22,13 @@ namespace testing { +class IOleClientSiteMockImpl : public IOleClientSite { + // The methods in this class are code generated using this command line: + // [ ceee\testing\utils\com_mock.py IOleClientSite \ + // "%WindowsSdkDir%\Include\OleIdl.h" ] +#include "ceee/testing/utils/mock_ioleclientsite.gen" +}; + class IOleObjecMockImpl: public IOleObject { public: // The methods in this class are code generated using this command line: @@ -139,7 +146,7 @@ class ITravelLogStgMockImpl : public ITravelLogStg { class MockIServiceProvider : public CComObjectRootEx<CComSingleThreadModel>, public testing::StrictMock<IServiceProviderMockImpl> { - DECLARE_NOT_AGGREGATABLE(MockIServiceProvider ) + DECLARE_NOT_AGGREGATABLE(MockIServiceProvider) BEGIN_COM_MAP(MockIServiceProvider) COM_INTERFACE_ENTRY(IServiceProvider) END_COM_MAP() diff --git a/ceee/testing/utils/mock_ioleclientsite.gen b/ceee/testing/utils/mock_ioleclientsite.gen new file mode 100644 index 0000000..a1cce79 --- /dev/null +++ b/ceee/testing/utils/mock_ioleclientsite.gen @@ -0,0 +1,15 @@ +// Copyright (c) 2010 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.
+//
+// Auto-generated by com_mock.py
+
+
+MOCK_METHOD0_WITH_CALLTYPE(__stdcall, SaveObject, HRESULT());
+MOCK_METHOD3_WITH_CALLTYPE(__stdcall, GetMoniker, HRESULT(
+ DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk));
+MOCK_METHOD1_WITH_CALLTYPE(__stdcall, GetContainer, HRESULT(
+ IOleContainer **ppContainer));
+MOCK_METHOD0_WITH_CALLTYPE(__stdcall, ShowObject, HRESULT());
+MOCK_METHOD1_WITH_CALLTYPE(__stdcall, OnShowWindow, HRESULT(BOOL fShow));
+MOCK_METHOD0_WITH_CALLTYPE(__stdcall, RequestNewObjectLayout, HRESULT());
diff --git a/ceee/testing/utils/test_utils.gyp b/ceee/testing/utils/test_utils.gyp index 7a62688..33f7c4b 100644 --- a/ceee/testing/utils/test_utils.gyp +++ b/ceee/testing/utils/test_utils.gyp @@ -54,7 +54,6 @@ 'mshtml_mocks.h', 'mshtml_mocks.py', 'com_mock.py', - '<(SHARED_INTERMEDIATE_DIR)/mshtml_mocks.gen', ], 'actions': [ { |