| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 #include "core/frame/LocalFrame.h" | 35 #include "core/frame/LocalFrame.h" |
| 36 #include "core/layout/LayoutView.h" | 36 #include "core/layout/LayoutView.h" |
| 37 #include "core/layout/compositing/DeprecatedPaintLayerCompositor.h" | 37 #include "core/layout/compositing/DeprecatedPaintLayerCompositor.h" |
| 38 #include "core/page/AutoscrollController.h" | 38 #include "core/page/AutoscrollController.h" |
| 39 #include "core/page/EventHandler.h" | 39 #include "core/page/EventHandler.h" |
| 40 #include "core/page/Page.h" | 40 #include "core/page/Page.h" |
| 41 #include "core/paint/TransformRecorder.h" | 41 #include "core/paint/TransformRecorder.h" |
| 42 #include "platform/Logging.h" | 42 #include "platform/Logging.h" |
| 43 #include "platform/graphics/GraphicsContext.h" | 43 #include "platform/graphics/GraphicsContext.h" |
| 44 #include "platform/graphics/paint/ClipRecorder.h" | 44 #include "platform/graphics/paint/ClipRecorder.h" |
| 45 #include "platform/graphics/paint/DisplayItemListContextRecorder.h" |
| 45 #include "platform/graphics/paint/DrawingRecorder.h" | 46 #include "platform/graphics/paint/DrawingRecorder.h" |
| 46 #include "platform/graphics/paint/SkPictureBuilder.h" | |
| 47 #include "platform/transforms/AffineTransform.h" | 47 #include "platform/transforms/AffineTransform.h" |
| 48 #include "public/web/WebInputEvent.h" | 48 #include "public/web/WebInputEvent.h" |
| 49 #include "web/PageOverlayList.h" | 49 #include "web/PageOverlayList.h" |
| 50 #include "web/WebInputEventConversion.h" | 50 #include "web/WebInputEventConversion.h" |
| 51 #include "wtf/CurrentTime.h" | 51 #include "wtf/CurrentTime.h" |
| 52 | 52 |
| 53 namespace blink { | 53 namespace blink { |
| 54 | 54 |
| 55 void PageWidgetDelegate::animate(Page& page, double monotonicFrameBeginTime, Loc
alFrame& root) | 55 void PageWidgetDelegate::animate(Page& page, double monotonicFrameBeginTime, Loc
alFrame& root) |
| 56 { | 56 { |
| 57 RefPtrWillBeRawPtr<FrameView> view = root.view(); | 57 RefPtrWillBeRawPtr<FrameView> view = root.view(); |
| 58 if (!view) | 58 if (!view) |
| 59 return; | 59 return; |
| 60 page.autoscrollController().animate(monotonicFrameBeginTime); | 60 page.autoscrollController().animate(monotonicFrameBeginTime); |
| 61 page.animator().serviceScriptedAnimations(monotonicFrameBeginTime); | 61 page.animator().serviceScriptedAnimations(monotonicFrameBeginTime); |
| 62 } | 62 } |
| 63 | 63 |
| 64 void PageWidgetDelegate::layout(Page& page, LocalFrame& root) | 64 void PageWidgetDelegate::layout(Page& page, LocalFrame& root) |
| 65 { | 65 { |
| 66 page.animator().updateLayoutAndStyleForPainting(&root); | 66 page.animator().updateLayoutAndStyleForPainting(&root); |
| 67 } | 67 } |
| 68 | 68 |
| 69 void PageWidgetDelegate::paint(Page& page, PageOverlayList* overlays, WebCanvas*
canvas, | 69 void PageWidgetDelegate::paint(Page& page, PageOverlayList* overlays, WebCanvas*
canvas, |
| 70 const WebRect& rect, LocalFrame& root) | 70 const WebRect& rect, LocalFrame& root) |
| 71 { | 71 { |
| 72 if (rect.isEmpty()) | 72 if (rect.isEmpty()) |
| 73 return; | 73 return; |
| 74 | 74 |
| 75 IntRect intRect(rect); | 75 OwnPtr<GraphicsContext> context = GraphicsContext::deprecatedCreateWithCanva
s(canvas); |
| 76 SkPictureBuilder builder(intRect); | 76 { |
| 77 GraphicsContext* context = &builder.context(); | 77 DisplayItemListContextRecorder contextRecorder(*context); |
| 78 GraphicsContext& paintContext = contextRecorder.context(); |
| 78 | 79 |
| 79 // FIXME: device scale factor settings are layering violations and should no
t | 80 // FIXME: device scale factor settings are layering violations and shoul
d not |
| 80 // be used within Blink paint code. | 81 // be used within Blink paint code. |
| 81 float scaleFactor = page.deviceScaleFactor(); | 82 float scaleFactor = page.deviceScaleFactor(); |
| 82 context->setDeviceScaleFactor(scaleFactor); | 83 paintContext.setDeviceScaleFactor(scaleFactor); |
| 83 | 84 |
| 84 AffineTransform scale; | 85 AffineTransform scale; |
| 85 scale.scale(scaleFactor); | 86 scale.scale(scaleFactor); |
| 86 | 87 TransformRecorder scaleRecorder(paintContext, root, scale); |
| 87 { | |
| 88 TransformRecorder scaleRecorder(*context, root, scale); | |
| 89 | 88 |
| 90 IntRect dirtyRect(rect); | 89 IntRect dirtyRect(rect); |
| 91 FrameView* view = root.view(); | 90 FrameView* view = root.view(); |
| 92 if (view) { | 91 if (view) { |
| 93 ClipRecorder clipRecorder(*context, root, DisplayItem::PageWidgetDel
egateClip, LayoutRect(dirtyRect)); | 92 ClipRecorder clipRecorder(paintContext, root, DisplayItem::PageWidge
tDelegateClip, LayoutRect(dirtyRect)); |
| 94 | 93 |
| 95 view->paint(context, dirtyRect); | 94 view->paint(&paintContext, dirtyRect); |
| 96 if (overlays) | 95 if (overlays) |
| 97 overlays->paintWebFrame(*context); | 96 overlays->paintWebFrame(paintContext); |
| 98 } else { | 97 } else { |
| 99 DrawingRecorder drawingRecorder(*context, root, DisplayItem::PageWid
getDelegateBackgroundFallback, dirtyRect); | 98 DrawingRecorder drawingRecorder(paintContext, root, DisplayItem::Pag
eWidgetDelegateBackgroundFallback, dirtyRect); |
| 100 if (!drawingRecorder.canUseCachedDrawing()) | 99 if (!drawingRecorder.canUseCachedDrawing()) |
| 101 context->fillRect(dirtyRect, Color::white); | 100 paintContext.fillRect(dirtyRect, Color::white); |
| 102 } | 101 } |
| 103 } | 102 } |
| 104 builder.endRecording()->playback(canvas); | |
| 105 } | 103 } |
| 106 | 104 |
| 107 bool PageWidgetDelegate::handleInputEvent(PageWidgetEventHandler& handler, const
WebInputEvent& event, LocalFrame* root) | 105 bool PageWidgetDelegate::handleInputEvent(PageWidgetEventHandler& handler, const
WebInputEvent& event, LocalFrame* root) |
| 108 { | 106 { |
| 109 switch (event.type) { | 107 switch (event.type) { |
| 110 | 108 |
| 111 // FIXME: WebKit seems to always return false on mouse events processing | 109 // FIXME: WebKit seems to always return false on mouse events processing |
| 112 // methods. For now we'll assume it has processed them (as we are only | 110 // methods. For now we'll assume it has processed them (as we are only |
| 113 // interested in whether keyboard events are processed). | 111 // interested in whether keyboard events are processed). |
| 114 // FIXME: Why do we return true when there is no root or the root is | 112 // FIXME: Why do we return true when there is no root or the root is |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 { | 205 { |
| 208 return mainFrame.eventHandler().handleWheelEvent(PlatformWheelEventBuilder(m
ainFrame.view(), event)); | 206 return mainFrame.eventHandler().handleWheelEvent(PlatformWheelEventBuilder(m
ainFrame.view(), event)); |
| 209 } | 207 } |
| 210 | 208 |
| 211 bool PageWidgetEventHandler::handleTouchEvent(LocalFrame& mainFrame, const WebTo
uchEvent& event) | 209 bool PageWidgetEventHandler::handleTouchEvent(LocalFrame& mainFrame, const WebTo
uchEvent& event) |
| 212 { | 210 { |
| 213 return mainFrame.eventHandler().handleTouchEvent(PlatformTouchEventBuilder(m
ainFrame.view(), event)); | 211 return mainFrame.eventHandler().handleTouchEvent(PlatformTouchEventBuilder(m
ainFrame.view(), event)); |
| 214 } | 212 } |
| 215 | 213 |
| 216 } // namespace blink | 214 } // namespace blink |
| OLD | NEW |