本文整理汇总了C++中HTMLPlugInElement类的典型用法代码示例。如果您正苦于以下问题:C++ HTMLPlugInElement类的具体用法?C++ HTMLPlugInElement怎么用?C++ HTMLPlugInElement使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了HTMLPlugInElement类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addPlugInsFromNodeListMatchingOriginHash
static void addPlugInsFromNodeListMatchingOriginHash(HTMLPlugInImageElementList& plugInList, PassRefPtr<NodeList> collection, unsigned originHash)
{
for (unsigned i = 0, length = collection->length(); i < length; i++) {
Node* node = collection->item(i);
if (node->isPluginElement()) {
HTMLPlugInElement* plugInElement = toHTMLPlugInElement(node);
if (plugInElement->isPlugInImageElement() && plugInElement->displayState() <= HTMLPlugInElement::DisplayingSnapshot && plugInElement->plugInOriginHash() == originHash)
plugInList.append(toHTMLPlugInImageElement(node));
}
}
}
示例2: pluginInstance
static Instance* pluginInstance(Node* node)
{
if (!node)
return 0;
if (!(node->hasTagName(objectTag) || node->hasTagName(embedTag) || node->hasTagName(appletTag)))
return 0;
HTMLPlugInElement* plugInElement = static_cast<HTMLPlugInElement*>(node);
// The plugin element holds an owning reference, so we don't have to.
Instance* instance = plugInElement->getInstance().get();
if (!instance || !instance->rootObject())
return 0;
return instance;
}
示例3: npObjectIndexedGetter
v8::Handle<v8::Value> npObjectIndexedGetter(uint32_t index, const v8::AccessorInfo& info)
{
HTMLPlugInElement* imp = C::toNative(info.Holder());
ScriptInstance scriptInstance = imp->getInstance();
if (!scriptInstance)
return v8Undefined();
v8::Local<v8::Object> instance = v8::Local<v8::Object>::New(scriptInstance->instance());
if (instance.IsEmpty())
return v8Undefined();
return npObjectGetIndexedProperty(instance, index, info);
}
示例4: npObjectNamedSetter
static v8::Handle<v8::Value> npObjectNamedSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info)
{
HTMLPlugInElement* imp = C::toNative(info.Holder());
ScriptInstance scriptInstance = imp->getInstance();
if (!scriptInstance)
return v8Undefined();
v8::Local<v8::Object> instance = v8::Local<v8::Object>::New(scriptInstance->instance());
if (instance.IsEmpty())
return v8Undefined();
return npObjectSetNamedProperty(instance, name, value, info);
}
示例5: npObjectNamedSetter
static void npObjectNamedSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::PropertyCallbackInfo<v8::Value>& info)
{
HTMLPlugInElement* imp = C::toNative(info.Holder());
ScriptInstance scriptInstance = imp->getInstance();
if (!scriptInstance)
return;
v8::Local<v8::Object> instance = scriptInstance->newLocal(v8::Isolate::GetCurrent());
if (instance.IsEmpty())
return;
npObjectSetNamedProperty(instance, name, value, info);
}
示例6: npObjectIndexedGetter
void npObjectIndexedGetter(uint32_t index, const v8::PropertyCallbackInfo<v8::Value>& info)
{
HTMLPlugInElement* imp = C::toNative(info.Holder());
ScriptInstance scriptInstance = imp->getInstance();
if (!scriptInstance)
return;
v8::Local<v8::Object> instance = scriptInstance->newLocal(v8::Isolate::GetCurrent());
if (instance.IsEmpty())
return;
npObjectGetIndexedProperty(instance, index, info);
}
示例7: pluginInstance
Instance* pluginInstance(Node* node)
{
if (!node)
return 0;
if (!isPluginElement(node))
return 0;
HTMLPlugInElement* plugInElement = static_cast<HTMLPlugInElement*>(node);
// The plugin element holds an owning reference, so we don't have to.
Instance* instance = plugInElement->getInstance().get();
if (!instance || !instance->rootObject())
return 0;
return instance;
}
示例8: addPlugInsFromNodeListMatchingPlugInOrigin
static void addPlugInsFromNodeListMatchingPlugInOrigin(HTMLPlugInImageElementList& plugInList, PassRefPtr<NodeList> collection, const String& plugInOrigin, const String& mimeType)
{
for (unsigned i = 0, length = collection->length(); i < length; i++) {
Node* node = collection->item(i);
if (node->isPluginElement()) {
HTMLPlugInElement* plugInElement = toHTMLPlugInElement(node);
if (plugInElement->isPlugInImageElement()) {
HTMLPlugInImageElement* plugInImageElement = toHTMLPlugInImageElement(node);
const KURL& loadedURL = plugInImageElement->loadedUrl();
String otherMimeType = plugInImageElement->loadedMimeType();
if (plugInOrigin == loadedURL.host() && mimeType == otherMimeType)
plugInList.append(plugInImageElement);
}
}
}
}
示例9: handleMissingPluginIndicatorEvent
void RenderEmbeddedObject::handleMissingPluginIndicatorEvent(Event* event)
{
if (Page* page = document()->page()) {
if (!page->chrome()->client()->shouldMissingPluginMessageBeButton())
return;
}
if (!event->isMouseEvent())
return;
MouseEvent* mouseEvent = static_cast<MouseEvent*>(event);
HTMLPlugInElement* element = static_cast<HTMLPlugInElement*>(node());
if (event->type() == eventNames().mousedownEvent && static_cast<MouseEvent*>(event)->button() == LeftButton) {
m_mouseDownWasInMissingPluginIndicator = isInMissingPluginIndicator(mouseEvent);
if (m_mouseDownWasInMissingPluginIndicator) {
if (Frame* frame = document()->frame()) {
frame->eventHandler()->setCapturingMouseEventsNode(element);
element->setIsCapturingMouseEvents(true);
}
setMissingPluginIndicatorIsPressed(true);
}
event->setDefaultHandled();
}
if (event->type() == eventNames().mouseupEvent && static_cast<MouseEvent*>(event)->button() == LeftButton) {
if (m_missingPluginIndicatorIsPressed) {
if (Frame* frame = document()->frame()) {
frame->eventHandler()->setCapturingMouseEventsNode(0);
element->setIsCapturingMouseEvents(false);
}
setMissingPluginIndicatorIsPressed(false);
}
if (m_mouseDownWasInMissingPluginIndicator && isInMissingPluginIndicator(mouseEvent)) {
if (Page* page = document()->page())
page->chrome()->client()->missingPluginButtonClicked(element);
}
m_mouseDownWasInMissingPluginIndicator = false;
event->setDefaultHandled();
}
if (event->type() == eventNames().mousemoveEvent) {
setMissingPluginIndicatorIsPressed(m_mouseDownWasInMissingPluginIndicator && isInMissingPluginIndicator(mouseEvent));
event->setDefaultHandled();
}
}
示例10: scriptDidInteractWithPlugin
void DOMTimer::scriptDidInteractWithPlugin(HTMLPlugInElement& pluginElement)
{
if (!DOMTimerFireState::current)
return;
if (pluginElement.isUserObservable())
DOMTimerFireState::current->scriptDidInteractWithUserObservablePlugin = true;
else
DOMTimerFireState::current->scriptDidInteractWithNonUserObservablePlugin = true;
}
示例11: toHTMLPlugInElement
void RenderEmbeddedObject::paintContents(PaintInfo& paintInfo, const LayoutPoint& paintOffset)
{
if (!element() || !element()->isPluginElement())
return;
HTMLPlugInElement* plugInElement = toHTMLPlugInElement(element());
if (plugInElement->displayState() > HTMLPlugInElement::DisplayingSnapshot) {
RenderPart::paintContents(paintInfo, paintOffset);
if (!plugInElement->isRestartedPlugin())
return;
}
if (!plugInElement->isPlugInImageElement())
return;
Image* snapshot = toHTMLPlugInImageElement(plugInElement)->snapshotImage();
if (snapshot)
paintSnapshotImage(paintInfo, paintOffset, snapshot);
}
示例12: pluginScriptObject
JSObject* pluginScriptObject(ExecState* exec, JSHTMLElement* jsHTMLElement)
{
HTMLElement* element = jsHTMLElement->impl();
if (!isPluginElement(element))
return 0;
HTMLPlugInElement* pluginElement = static_cast<HTMLPlugInElement*>(element);
// First, see if we can ask the plug-in view for its script object.
if (JSObject* scriptObject = pluginScriptObjectFromPluginViewBase(pluginElement, jsHTMLElement->globalObject()))
return scriptObject;
// Otherwise, fall back to getting the object from the instance.
// The plugin element holds an owning reference, so we don't have to.
Instance* instance = pluginElement->getInstance().get();
if (!instance || !instance->rootObject())
return 0;
return instance->createRuntimeObject(exec);
}
示例13: npObjectInvokeImpl
// FIXME: need comments.
// Params: holder could be HTMLEmbedElement or NPObject
static v8::Handle<v8::Value> npObjectInvokeImpl(const v8::Arguments& args, InvokeFunctionType functionId)
{
NPObject* npObject;
// These three types are subtypes of HTMLPlugInElement.
if (V8HTMLAppletElement::HasInstance(args.Holder()) || V8HTMLEmbedElement::HasInstance(args.Holder())
|| V8HTMLObjectElement::HasInstance(args.Holder())) {
// The holder object is a subtype of HTMLPlugInElement.
HTMLPlugInElement* element = V8DOMWrapper::convertDOMWrapperToNode<HTMLPlugInElement>(args.Holder());
ScriptInstance scriptInstance = element->getInstance();
if (scriptInstance)
npObject = V8DOMWrapper::convertToNativeObject<NPObject>(V8ClassIndex::NPOBJECT, scriptInstance->instance());
else
npObject = 0;
} else {
// The holder object is not a subtype of HTMLPlugInElement, it must be an NPObject which has three
// internal fields.
if (args.Holder()->InternalFieldCount() != V8Custom::kNPObjectInternalFieldCount)
return throwError("NPMethod called on non-NPObject", V8Proxy::ReferenceError);
npObject = V8DOMWrapper::convertToNativeObject<NPObject>(V8ClassIndex::NPOBJECT, args.Holder());
}
// Verify that our wrapper wasn't using a NPObject which has already been deleted.
if (!npObject || !_NPN_IsAlive(npObject))
return throwError("NPObject deleted", V8Proxy::ReferenceError);
// Wrap up parameters.
int numArgs = args.Length();
OwnArrayPtr<NPVariant> npArgs(new NPVariant[numArgs]);
for (int i = 0; i < numArgs; i++)
convertV8ObjectToNPVariant(args[i], npObject, &npArgs[i]);
NPVariant result;
VOID_TO_NPVARIANT(result);
switch (functionId) {
case InvokeMethod:
if (npObject->_class->invoke) {
v8::Handle<v8::String> functionName(v8::String::Cast(*args.Data()));
NPIdentifier identifier = getStringIdentifier(functionName);
npObject->_class->invoke(npObject, identifier, npArgs.get(), numArgs, &result);
}
break;
case InvokeConstruct:
if (npObject->_class->construct)
npObject->_class->construct(npObject, npArgs.get(), numArgs, &result);
break;
case InvokeDefault:
if (npObject->_class->invokeDefault)
npObject->_class->invokeDefault(npObject, npArgs.get(), numArgs, &result);
break;
default:
break;
}
for (int i=0; i < numArgs; i++)
_NPN_ReleaseVariantValue(&npArgs[i]);
// Unwrap return values.
v8::Handle<v8::Value> returnValue = convertNPVariantToV8Object(&result, npObject);
_NPN_ReleaseVariantValue(&result);
return returnValue;
}
示例14: npObjectInvokeImpl
// FIXME: need comments.
// Params: holder could be HTMLEmbedElement or NPObject
static void npObjectInvokeImpl(const v8::FunctionCallbackInfo<v8::Value>& args, InvokeFunctionType functionId)
{
NPObject* npObject;
WrapperWorldType currentWorldType = worldType(args.GetIsolate());
// These three types are subtypes of HTMLPlugInElement.
if (V8HTMLAppletElement::HasInstance(args.Holder(), args.GetIsolate(), currentWorldType) || V8HTMLEmbedElement::HasInstance(args.Holder(), args.GetIsolate(), currentWorldType)
|| V8HTMLObjectElement::HasInstance(args.Holder(), args.GetIsolate(), currentWorldType)) {
// The holder object is a subtype of HTMLPlugInElement.
HTMLPlugInElement* element;
if (V8HTMLAppletElement::HasInstance(args.Holder(), args.GetIsolate(), currentWorldType))
element = V8HTMLAppletElement::toNative(args.Holder());
else if (V8HTMLEmbedElement::HasInstance(args.Holder(), args.GetIsolate(), currentWorldType))
element = V8HTMLEmbedElement::toNative(args.Holder());
else
element = V8HTMLObjectElement::toNative(args.Holder());
ScriptInstance scriptInstance = element->getInstance();
if (scriptInstance) {
v8::Isolate* isolate = v8::Isolate::GetCurrent();
v8::HandleScope handleScope(isolate);
npObject = v8ObjectToNPObject(scriptInstance->newLocal(isolate));
} else
npObject = 0;
} else {
// The holder object is not a subtype of HTMLPlugInElement, it must be an NPObject which has three
// internal fields.
if (args.Holder()->InternalFieldCount() != npObjectInternalFieldCount) {
throwError(v8ReferenceError, "NPMethod called on non-NPObject", args.GetIsolate());
return;
}
npObject = v8ObjectToNPObject(args.Holder());
}
// Verify that our wrapper wasn't using a NPObject which has already been deleted.
if (!npObject || !_NPN_IsAlive(npObject)) {
throwError(v8ReferenceError, "NPObject deleted", args.GetIsolate());
return;
}
// Wrap up parameters.
int numArgs = args.Length();
OwnArrayPtr<NPVariant> npArgs = adoptArrayPtr(new NPVariant[numArgs]);
for (int i = 0; i < numArgs; i++)
convertV8ObjectToNPVariant(args[i], npObject, &npArgs[i]);
NPVariant result;
VOID_TO_NPVARIANT(result);
bool retval = true;
switch (functionId) {
case InvokeMethod:
if (npObject->_class->invoke) {
v8::Handle<v8::String> functionName = v8::Handle<v8::String>::Cast(args.Data());
NPIdentifier identifier = getStringIdentifier(functionName);
retval = npObject->_class->invoke(npObject, identifier, npArgs.get(), numArgs, &result);
}
break;
case InvokeConstruct:
if (npObject->_class->construct)
retval = npObject->_class->construct(npObject, npArgs.get(), numArgs, &result);
break;
case InvokeDefault:
if (npObject->_class->invokeDefault)
retval = npObject->_class->invokeDefault(npObject, npArgs.get(), numArgs, &result);
break;
default:
break;
}
if (!retval)
throwError(v8GeneralError, "Error calling method on NPObject.", args.GetIsolate());
for (int i = 0; i < numArgs; i++)
_NPN_ReleaseVariantValue(&npArgs[i]);
// Unwrap return values.
v8::Handle<v8::Value> returnValue;
if (_NPN_IsAlive(npObject))
returnValue = convertNPVariantToV8Object(&result, npObject, args.GetIsolate());
_NPN_ReleaseVariantValue(&result);
v8SetReturnValue(args, returnValue);
}
开发者ID:IllusionRom-deprecated,项目名称:android_platform_external_chromium_org_third_party_WebKit,代码行数:87,代码来源:V8NPObject.cpp
示例15: switch
bool PluginView::platformGetValue(NPNVariable variable, void* value, NPError* result)
{
switch (variable) {
case NPNVWindowNPObject: {
NPObject* windowScriptObject =
m_parentFrame->script()->windowScriptNPObject();
// Return value is expected to be retained, as described
// here:
// <http://www.mozilla.org/projects/plugin/npruntime.html>
if (windowScriptObject)
_NPN_RetainObject(windowScriptObject);
void** v = (void**)value;
*v = windowScriptObject;
*result = NPERR_NO_ERROR;
return true;
}
case NPNVPluginElementNPObject: {
NPObject* pluginScriptObject = 0;
if (m_element->hasTagName(appletTag) ||
m_element->hasTagName(embedTag) ||
m_element->hasTagName(objectTag)) {
HTMLPlugInElement* pluginElement =
static_cast<HTMLPlugInElement*>(m_element);
pluginScriptObject = pluginElement->getNPObject();
}
// Return value is expected to be retained, as described
// here:
// <http://www.mozilla.org/projects/plugin/npruntime.html>
if (pluginScriptObject)
_NPN_RetainObject(pluginScriptObject);
void** v = (void**)value;
*v = pluginScriptObject;
*result = NPERR_NO_ERROR;
return true;
}
case NPNVnetscapeWindow: {
// Return the top level WebView Java object associated
// with this instance.
jobject *retObject = static_cast<jobject*>(value);
// TODO: Is it safe for this to be NULL? It looks from the NPNVWindowNPObject case that it is.
*retObject = android::WebViewCore::getWebViewCore(parent())->getWebViewJavaObject();
*result = NPERR_NO_ERROR;
return true;
}
case NPNVisOfflineBool: {
if (value == NULL) {
*result = NPERR_GENERIC_ERROR;
return true;
}
bool* retValue = static_cast<bool*>(value);
*retValue = !networkStateNotifier().onLine();
*result = NPERR_NO_ERROR;
return true;
}
case kSupportedDrawingModel_ANPGetValue: {
uint32_t* bits = reinterpret_cast<uint32_t*>(value);
*bits = kBitmap_ANPDrawingModel & kSurface_ANPDrawingModel;
*result = NPERR_NO_ERROR;
return true;
}
case kJavaContext_ANPGetValue: {
jobject* retObject = static_cast<jobject*>(value);
// TODO: Is it safe for this to be NULL? It looks from the NPNVWindowNPObject case that it is.
*retObject = android::WebViewCore::getWebViewCore(parent())->getContext();
*result = NPERR_NO_ERROR;
return true;
}
default: {
NPError error = NPERR_GENERIC_ERROR;
(void)anp_getInterface(variable, value, &error);
*result = error;
return true;
}
}
}