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(); } }
void RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent(Event* event) { if (!shouldUnavailablePluginMessageBeButton(document(), m_pluginUnavailabilityReason)) return; if (!event->isMouseEvent()) return; MouseEvent* mouseEvent = static_cast<MouseEvent*>(event); HTMLPlugInElement* element = toHTMLPlugInElement(this->element()); if (event->type() == eventNames().mousedownEvent && static_cast<MouseEvent*>(event)->button() == LeftButton) { m_mouseDownWasInUnavailablePluginIndicator = isInUnavailablePluginIndicator(mouseEvent); if (m_mouseDownWasInUnavailablePluginIndicator) { frame().eventHandler().setCapturingMouseEventsNode(element); element->setIsCapturingMouseEvents(true); setUnavailablePluginIndicatorIsPressed(true); } event->setDefaultHandled(); } if (event->type() == eventNames().mouseupEvent && static_cast<MouseEvent*>(event)->button() == LeftButton) { if (m_unavailablePluginIndicatorIsPressed) { frame().eventHandler().setCapturingMouseEventsNode(0); element->setIsCapturingMouseEvents(false); setUnavailablePluginIndicatorIsPressed(false); } if (m_mouseDownWasInUnavailablePluginIndicator && isInUnavailablePluginIndicator(mouseEvent)) { if (Page* page = document().page()) page->chrome().client().unavailablePluginButtonClicked(element, m_pluginUnavailabilityReason); } m_mouseDownWasInUnavailablePluginIndicator = false; event->setDefaultHandled(); } if (event->type() == eventNames().mousemoveEvent) { setUnavailablePluginIndicatorIsPressed(m_mouseDownWasInUnavailablePluginIndicator && isInUnavailablePluginIndicator(mouseEvent)); event->setDefaultHandled(); } }