KURL HitTestResult::absolutePDFURL() const { if (!(m_innerNonSharedNode && m_innerNonSharedNode->document())) return KURL(); if (!m_innerNonSharedNode->hasTagName(embedTag) && !m_innerNonSharedNode->hasTagName(objectTag)) return KURL(); HTMLPlugInImageElement* element = static_cast<HTMLPlugInImageElement*>(m_innerNonSharedNode.get()); KURL url = m_innerNonSharedNode->document()->completeURL(stripLeadingAndTrailingHTMLSpaces(element->url())); if (!url.isValid()) return KURL(); if (element->serviceType() == "application/pdf" || (element->serviceType().isEmpty() && url.path().lower().endsWith(".pdf"))) return url; return KURL(); }
void WebChromeClient::missingPluginButtonClicked(Element* element) const { ASSERT(element->hasTagName(objectTag) || element->hasTagName(embedTag)); HTMLPlugInImageElement* pluginElement = static_cast<HTMLPlugInImageElement*>(element); m_page->send(Messages::WebPageProxy::MissingPluginButtonClicked(pluginElement->serviceType(), pluginElement->url(), pluginElement->getAttribute(pluginspageAttr))); }
void WebChromeClient::unavailablePluginButtonClicked(Element* element, RenderEmbeddedObject::PluginUnavailabilityReason pluginUnavailabilityReason) const { ASSERT(element->hasTagName(objectTag) || element->hasTagName(embedTag)); ASSERT(pluginUnavailabilityReason == RenderEmbeddedObject::PluginMissing || pluginUnavailabilityReason == RenderEmbeddedObject::InsecurePluginVersion); HTMLPlugInImageElement* pluginElement = static_cast<HTMLPlugInImageElement*>(element); m_page->send(Messages::WebPageProxy::UnavailablePluginButtonClicked(pluginUnavailabilityReason, pluginElement->serviceType(), pluginElement->url(), pluginElement->getAttribute(pluginspageAttr))); }
void WebChromeClient::unavailablePluginButtonClicked(Element* element, RenderEmbeddedObject::PluginUnavailabilityReason pluginUnavailabilityReason) const { #if ENABLE(NETSCAPE_PLUGIN_API) ASSERT(element->hasTagName(objectTag) || element->hasTagName(embedTag) || element->hasTagName(appletTag)); ASSERT(pluginUnavailabilityReason == RenderEmbeddedObject::PluginMissing || pluginUnavailabilityReason == RenderEmbeddedObject::InsecurePluginVersion || pluginUnavailabilityReason); HTMLPlugInImageElement* pluginElement = static_cast<HTMLPlugInImageElement*>(element); String frameURLString = pluginElement->document().frame()->loader().documentLoader()->responseURL().string(); String pageURLString = m_page->mainFrame()->loader().documentLoader()->responseURL().string(); String pluginURLString = pluginElement->document().completeURL(pluginElement->url()).string(); URL pluginspageAttributeURL = element->document().completeURL(stripLeadingAndTrailingHTMLSpaces(pluginElement->getAttribute(pluginspageAttr))); if (!pluginspageAttributeURL.protocolIsInHTTPFamily()) pluginspageAttributeURL = URL(); m_page->send(Messages::WebPageProxy::UnavailablePluginButtonClicked(pluginUnavailabilityReason, pluginElement->serviceType(), pluginURLString, pluginspageAttributeURL.string(), frameURLString, pageURLString)); #else UNUSED_PARAM(element); UNUSED_PARAM(pluginUnavailabilityReason); #endif // ENABLE(NETSCAPE_PLUGIN_API) }