X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2FWebKit%2FSource%2Fweb%2FWebPluginContainerImpl.h;h=206c9178c7a0533257fc974dd3db3507c3dadd67;hb=4a1a0bdd01eef90b0826a0e761d3379d3715c10f;hp=46728ee49c15c26f3ee90f5d85531522531f6e4b;hpb=b1be5ca53587d23e7aeb77b26861fdc0a181ffd8;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/WebKit/Source/web/WebPluginContainerImpl.h b/src/third_party/WebKit/Source/web/WebPluginContainerImpl.h index 46728ee..206c917 100644 --- a/src/third_party/WebKit/Source/web/WebPluginContainerImpl.h +++ b/src/third_party/WebKit/Source/web/WebPluginContainerImpl.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2009 Google Inc. All rights reserved. + * Copyright (C) 2014 Opera Software ASA. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -31,6 +32,7 @@ #ifndef WebPluginContainerImpl_h #define WebPluginContainerImpl_h +#include "core/frame/FrameDestructionObserver.h" #include "core/plugins/PluginView.h" #include "platform/Widget.h" #include "public/web/WebPluginContainer.h" @@ -42,7 +44,8 @@ struct NPObject; -namespace WebCore { +namespace blink { + class GestureEvent; class HTMLPlugInElement; class IntRect; @@ -51,30 +54,25 @@ class MouseEvent; class PlatformGestureEvent; class ResourceError; class ResourceResponse; -class TouchEvent; -class WheelEvent; -class Widget; -} - -namespace blink { - -struct WebPrintParams; - class ScrollbarGroup; +class TouchEvent; class WebPlugin; class WebPluginLoadObserver; class WebExternalTextureLayer; +class WheelEvent; +class Widget; +struct WebPrintParams; -class WebPluginContainerImpl FINAL : public WebCore::PluginView, public WebPluginContainer { +class WebPluginContainerImpl FINAL : public PluginView, public WebPluginContainer, public FrameDestructionObserver { public: - static PassRefPtr create(WebCore::HTMLPlugInElement* element, WebPlugin* webPlugin) + static PassRefPtr create(HTMLPlugInElement* element, WebPlugin* webPlugin) { return adoptRef(new WebPluginContainerImpl(element, webPlugin)); } // PluginView methods virtual WebLayer* platformLayer() const OVERRIDE; - virtual NPObject* scriptableObject() OVERRIDE; + virtual v8::Local scriptableObject(v8::Isolate*) OVERRIDE; virtual bool getFormValue(String&) OVERRIDE; virtual bool supportsKeyboardFocus() const OVERRIDE; virtual bool supportsInputMethod() const OVERRIDE; @@ -82,16 +80,16 @@ public: virtual bool wantsWheelEvents() OVERRIDE; // Widget methods - virtual void setFrameRect(const WebCore::IntRect&) OVERRIDE; - virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect&) OVERRIDE; - virtual void invalidateRect(const WebCore::IntRect&) OVERRIDE; + virtual void setFrameRect(const IntRect&) OVERRIDE; + virtual void paint(GraphicsContext*, const IntRect&) OVERRIDE; + virtual void invalidateRect(const IntRect&) OVERRIDE; virtual void setFocus(bool) OVERRIDE; virtual void show() OVERRIDE; virtual void hide() OVERRIDE; - virtual void handleEvent(WebCore::Event*) OVERRIDE; + virtual void handleEvent(Event*) OVERRIDE; virtual void frameRectsChanged() OVERRIDE; virtual void setParentVisible(bool) OVERRIDE; - virtual void setParent(WebCore::Widget*) OVERRIDE; + virtual void setParent(Widget*) OVERRIDE; virtual void widgetPositionsUpdated() OVERRIDE; virtual bool isPluginContainer() const OVERRIDE { return true; } virtual void eventListenersRemoved() OVERRIDE; @@ -101,11 +99,12 @@ public: virtual WebElement element() OVERRIDE; virtual void invalidate() OVERRIDE; virtual void invalidateRect(const WebRect&) OVERRIDE; - virtual void scrollRect(int dx, int dy, const WebRect&) OVERRIDE; + virtual void scrollRect(const WebRect&) OVERRIDE; virtual void reportGeometry() OVERRIDE; virtual void allowScriptObjects() OVERRIDE; virtual void clearScriptObjects() OVERRIDE; virtual NPObject* scriptableObjectForElement() OVERRIDE; + virtual v8::Local v8ObjectForElement() OVERRIDE; virtual WebString executeScriptURL(const WebURL&, bool popupsAllowed) OVERRIDE; virtual void loadFrameRequest(const WebURLRequest&, const WebString& target, bool notifyNeeded, void* notifyData) OVERRIDE; virtual void zoomLevelChanged(double zoomLevel) OVERRIDE; @@ -133,10 +132,12 @@ public: // If the plugin content should not be scaled to the printable area of // the page, then this method should return true. bool isPrintScalingDisabled() const; + // Returns number of copies to be printed. + int getCopiesToPrint() const; // Sets up printing at the specified WebPrintParams. Returns the number of pages to be printed at these settings. int printBegin(const WebPrintParams&) const; // Prints the page specified by pageNumber (0-based index) into the supplied canvas. - bool printPage(int pageNumber, WebCore::GraphicsContext* gc); + bool printPage(int pageNumber, GraphicsContext*); // Ends the print operation. void printEnd(); @@ -148,10 +149,10 @@ public: bool executeEditCommand(const WebString& name, const WebString& value); // Resource load events for the plugin's source data: - virtual void didReceiveResponse(const WebCore::ResourceResponse&) OVERRIDE; + virtual void didReceiveResponse(const ResourceResponse&) OVERRIDE; virtual void didReceiveData(const char *data, int dataLength) OVERRIDE; virtual void didFinishLoading() OVERRIDE; - virtual void didFailLoading(const WebCore::ResourceError&) OVERRIDE; + virtual void didFailLoading(const ResourceError&) OVERRIDE; void willDestroyPluginLoadObserver(WebPluginLoadObserver*); @@ -160,32 +161,41 @@ public: void willStartLiveResize(); void willEndLiveResize(); - bool paintCustomOverhangArea(WebCore::GraphicsContext*, const WebCore::IntRect&, const WebCore::IntRect&, const WebCore::IntRect&); + bool paintCustomOverhangArea(GraphicsContext*, const IntRect&, const IntRect&, const IntRect&); + +#if ENABLE(OILPAN) + virtual void detach() OVERRIDE; +#endif private: - WebPluginContainerImpl(WebCore::HTMLPlugInElement* element, WebPlugin* webPlugin); + WebPluginContainerImpl(HTMLPlugInElement*, WebPlugin*); virtual ~WebPluginContainerImpl(); - void handleMouseEvent(WebCore::MouseEvent*); - void handleDragEvent(WebCore::MouseEvent*); - void handleWheelEvent(WebCore::WheelEvent*); - void handleKeyboardEvent(WebCore::KeyboardEvent*); - void handleTouchEvent(WebCore::TouchEvent*); - void handleGestureEvent(WebCore::GestureEvent*); + void handleMouseEvent(MouseEvent*); + void handleDragEvent(MouseEvent*); + void handleWheelEvent(WheelEvent*); + void handleKeyboardEvent(KeyboardEvent*); + void handleTouchEvent(TouchEvent*); + void handleGestureEvent(GestureEvent*); - void synthesizeMouseEventIfPossible(WebCore::TouchEvent*); + void synthesizeMouseEventIfPossible(TouchEvent*); void focusPlugin(); - void calculateGeometry(const WebCore::IntRect& frameRect, - WebCore::IntRect& windowRect, - WebCore::IntRect& clipRect, - Vector& cutOutRects); - WebCore::IntRect windowClipRect() const; - void windowCutOutRects(const WebCore::IntRect& frameRect, - Vector& cutOutRects); - - WebCore::HTMLPlugInElement* m_element; + void calculateGeometry( + const IntRect& frameRect, + IntRect& windowRect, + IntRect& clipRect, + Vector& cutOutRects); + IntRect windowClipRect() const; + void windowCutOutRects( + const IntRect& frameRect, + Vector& cutOutRects); + + // FIXME: Oilpan: consider moving Widget to the heap and turn this + // into a traced member. For the time being, it is a bare pointer + // of its owning PlugInElement and managed as such. + HTMLPlugInElement* m_element; WebPlugin* m_webPlugin; Vector m_pluginLoadObservers; @@ -199,7 +209,7 @@ private: bool m_wantsWheelEvents; }; -DEFINE_TYPE_CASTS(WebPluginContainerImpl, WebCore::Widget, widget, widget->isPluginContainer(), widget.isPluginContainer()); +DEFINE_TYPE_CASTS(WebPluginContainerImpl, Widget, widget, widget->isPluginContainer(), widget.isPluginContainer()); // Unlike Widget, we need not worry about object type for container. // WebPluginContainerImpl is the only subclass of WebPluginContainer. DEFINE_TYPE_CASTS(WebPluginContainerImpl, WebPluginContainer, container, true, true);