Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / web / PageWidgetDelegate.cpp
index 02f1c47..a901be5 100644 (file)
@@ -35,6 +35,7 @@
 #include "core/frame/LocalFrame.h"
 #include "core/page/AutoscrollController.h"
 #include "core/page/EventHandler.h"
+#include "core/page/Page.h"
 #include "core/rendering/RenderView.h"
 #include "core/rendering/compositing/RenderLayerCompositor.h"
 #include "platform/graphics/GraphicsContext.h"
@@ -43,8 +44,6 @@
 #include "web/WebInputEventConversion.h"
 #include "wtf/CurrentTime.h"
 
-using namespace WebCore;
-
 namespace blink {
 
 static inline FrameView* mainFrameView(Page* page)
@@ -68,11 +67,18 @@ void PageWidgetDelegate::animate(Page* page, double monotonicFrameBeginTime)
     page->animator().serviceScriptedAnimations(monotonicFrameBeginTime);
 }
 
-void PageWidgetDelegate::layout(Page* page)
+void PageWidgetDelegate::layout(Page* page, LocalFrame* rootFrame)
 {
-    if (!page || !page->mainFrame())
+    if (!page)
         return;
-    page->animator().updateLayoutAndStyleForPainting();
+
+    if (!rootFrame) {
+        if (!page->mainFrame() || !page->mainFrame()->isLocalFrame())
+            return;
+        rootFrame = toLocalFrame(page->mainFrame());
+    }
+
+    page->animator().updateLayoutAndStyleForPainting(rootFrame);
 }
 
 void PageWidgetDelegate::paint(Page* page, PageOverlayList* overlays, WebCanvas* canvas, const WebRect& rect, CanvasBackground background)
@@ -82,7 +88,7 @@ void PageWidgetDelegate::paint(Page* page, PageOverlayList* overlays, WebCanvas*
     GraphicsContext gc(canvas);
     gc.setCertainlyOpaque(background == Opaque);
     gc.applyDeviceScaleFactor(page->deviceScaleFactor());
-    gc.setUseHighResMarkers(page->deviceScaleFactor() > 1.5f);
+    gc.setDeviceScaleFactor(page->deviceScaleFactor());
     IntRect dirtyRect(rect);
     gc.save(); // Needed to save the canvas, not the GraphicsContext.
     FrameView* view = mainFrameView(page);
@@ -109,36 +115,36 @@ bool PageWidgetDelegate::handleInputEvent(Page* page, PageWidgetEventHandler& ha
     case WebInputEvent::MouseMove:
         if (!frame || !frame->view())
             return true;
-        handler.handleMouseMove(*frame, *static_cast<const WebMouseEvent*>(&event));
+        handler.handleMouseMove(*frame, static_cast<const WebMouseEvent&>(event));
         return true;
     case WebInputEvent::MouseLeave:
         if (!frame || !frame->view())
             return true;
-        handler.handleMouseLeave(*frame, *static_cast<const WebMouseEvent*>(&event));
+        handler.handleMouseLeave(*frame, static_cast<const WebMouseEvent&>(event));
         return true;
     case WebInputEvent::MouseDown:
         if (!frame || !frame->view())
             return true;
-        handler.handleMouseDown(*frame, *static_cast<const WebMouseEvent*>(&event));
+        handler.handleMouseDown(*frame, static_cast<const WebMouseEvent&>(event));
         return true;
     case WebInputEvent::MouseUp:
         if (!frame || !frame->view())
             return true;
-        handler.handleMouseUp(*frame, *static_cast<const WebMouseEvent*>(&event));
+        handler.handleMouseUp(*frame, static_cast<const WebMouseEvent&>(event));
         return true;
 
     case WebInputEvent::MouseWheel:
         if (!frame || !frame->view())
             return false;
-        return handler.handleMouseWheel(*frame, *static_cast<const WebMouseWheelEvent*>(&event));
+        return handler.handleMouseWheel(*frame, static_cast<const WebMouseWheelEvent&>(event));
 
     case WebInputEvent::RawKeyDown:
     case WebInputEvent::KeyDown:
     case WebInputEvent::KeyUp:
-        return handler.handleKeyEvent(*static_cast<const WebKeyboardEvent*>(&event));
+        return handler.handleKeyEvent(static_cast<const WebKeyboardEvent&>(event));
 
     case WebInputEvent::Char:
-        return handler.handleCharEvent(*static_cast<const WebKeyboardEvent*>(&event));
+        return handler.handleCharEvent(static_cast<const WebKeyboardEvent&>(event));
     case WebInputEvent::GestureScrollBegin:
     case WebInputEvent::GestureScrollEnd:
     case WebInputEvent::GestureScrollUpdate:
@@ -154,7 +160,7 @@ bool PageWidgetDelegate::handleInputEvent(Page* page, PageWidgetEventHandler& ha
     case WebInputEvent::GestureTwoFingerTap:
     case WebInputEvent::GestureLongPress:
     case WebInputEvent::GestureLongTap:
-        return handler.handleGestureEvent(*static_cast<const WebGestureEvent*>(&event));
+        return handler.handleGestureEvent(static_cast<const WebGestureEvent&>(event));
 
     case WebInputEvent::TouchStart:
     case WebInputEvent::TouchMove:
@@ -162,7 +168,7 @@ bool PageWidgetDelegate::handleInputEvent(Page* page, PageWidgetEventHandler& ha
     case WebInputEvent::TouchCancel:
         if (!frame || !frame->view())
             return false;
-        return handler.handleTouchEvent(*frame, *static_cast<const WebTouchEvent*>(&event));
+        return handler.handleTouchEvent(*frame, static_cast<const WebTouchEvent&>(event));
 
     case WebInputEvent::GesturePinchBegin:
     case WebInputEvent::GesturePinchEnd:
@@ -210,4 +216,4 @@ bool PageWidgetEventHandler::handleTouchEvent(LocalFrame& mainFrame, const WebTo
     return mainFrame.eventHandler().handleTouchEvent(PlatformTouchEventBuilder(mainFrame.view(), event));
 }
 
-}
+} // namespace blink