Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(788)

Side by Side Diff: third_party/WebKit/Source/core/frame/LocalFrame.cpp

Issue 2924013002: Rename CreateDragImage to CreateDragImageForFrame to avoid name conflicts (Closed)
Patch Set: updated Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
3 * 1999 Lars Knoll <knoll@kde.org> 3 * 1999 Lars Knoll <knoll@kde.org>
4 * 1999 Antti Koivisto <koivisto@kde.org> 4 * 1999 Antti Koivisto <koivisto@kde.org>
5 * 2000 Simon Hausmann <hausmann@kde.org> 5 * 2000 Simon Hausmann <hausmann@kde.org>
6 * 2000 Stefan Schimanski <1Stein@gmx.de> 6 * 2000 Stefan Schimanski <1Stein@gmx.de>
7 * 2001 George Staikos <staikos@kde.org> 7 * 2001 George Staikos <staikos@kde.org>
8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
9 * rights reserved. 9 * rights reserved.
10 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> 10 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com>
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 #include "third_party/skia/include/core/SkSurface.h" 110 #include "third_party/skia/include/core/SkSurface.h"
111 111
112 namespace blink { 112 namespace blink {
113 113
114 using namespace HTMLNames; 114 using namespace HTMLNames;
115 115
116 namespace { 116 namespace {
117 117
118 // Converts from bounds in CSS space to device space based on the given 118 // Converts from bounds in CSS space to device space based on the given
119 // frame. 119 // frame.
120 // TODO(tanvir.rizvi): DeviceSpaceBounds is used for drag related functionality
121 // and is irrelevant to core functionality of LocalFrame. This should be moved
122 // out of LocalFrame to appropriate place.
120 static FloatRect DeviceSpaceBounds(const FloatRect css_bounds, 123 static FloatRect DeviceSpaceBounds(const FloatRect css_bounds,
121 const LocalFrame& frame) { 124 const LocalFrame& frame) {
122 float device_scale_factor = frame.GetPage()->DeviceScaleFactorDeprecated(); 125 float device_scale_factor = frame.GetPage()->DeviceScaleFactorDeprecated();
123 float page_scale_factor = frame.GetPage()->GetVisualViewport().Scale(); 126 float page_scale_factor = frame.GetPage()->GetVisualViewport().Scale();
124 FloatRect device_bounds(css_bounds); 127 FloatRect device_bounds(css_bounds);
125 device_bounds.SetWidth(css_bounds.Width() * device_scale_factor * 128 device_bounds.SetWidth(css_bounds.Width() * device_scale_factor *
126 page_scale_factor); 129 page_scale_factor);
127 device_bounds.SetHeight(css_bounds.Height() * device_scale_factor * 130 device_bounds.SetHeight(css_bounds.Height() * device_scale_factor *
128 page_scale_factor); 131 page_scale_factor);
129 return device_bounds; 132 return device_bounds;
130 } 133 }
131 134
132 // Returns a DragImage whose bitmap contains |contents|, positioned and scaled 135 // Returns a DragImage whose bitmap contains |contents|, positioned and scaled
133 // in device space. 136 // in device space.
134 static std::unique_ptr<DragImage> CreateDragImage( 137 // TODO(tanvir.rizvi): CreateDragImageForFrame is used for drag related
138 // functionality and is irrelevant to core functionality of LocalFrame. This
139 // should be moved out of LocalFrame to appropriate place.
140 static std::unique_ptr<DragImage> CreateDragImageForFrame(
135 const LocalFrame& frame, 141 const LocalFrame& frame,
136 float opacity, 142 float opacity,
137 RespectImageOrientationEnum image_orientation, 143 RespectImageOrientationEnum image_orientation,
138 const FloatRect& css_bounds, 144 const FloatRect& css_bounds,
139 PaintRecordBuilder& builder, 145 PaintRecordBuilder& builder,
140 const PropertyTreeState& property_tree_state) { 146 const PropertyTreeState& property_tree_state) {
141 float device_scale_factor = frame.GetPage()->DeviceScaleFactorDeprecated(); 147 float device_scale_factor = frame.GetPage()->DeviceScaleFactorDeprecated();
142 float page_scale_factor = frame.GetPage()->GetVisualViewport().Scale(); 148 float page_scale_factor = frame.GetPage()->GetVisualViewport().Scale();
143 149
144 FloatRect device_bounds = DeviceSpaceBounds(css_bounds, frame); 150 FloatRect device_bounds = DeviceSpaceBounds(css_bounds, frame);
(...skipping 16 matching lines...) Expand all
161 167
162 RefPtr<Image> image = StaticBitmapImage::Create(surface->makeImageSnapshot()); 168 RefPtr<Image> image = StaticBitmapImage::Create(surface->makeImageSnapshot());
163 float screen_device_scale_factor = 169 float screen_device_scale_factor =
164 frame.GetPage()->GetChromeClient().GetScreenInfo().device_scale_factor; 170 frame.GetPage()->GetChromeClient().GetScreenInfo().device_scale_factor;
165 171
166 return DragImage::Create(image.Get(), image_orientation, 172 return DragImage::Create(image.Get(), image_orientation,
167 screen_device_scale_factor, kInterpolationHigh, 173 screen_device_scale_factor, kInterpolationHigh,
168 opacity); 174 opacity);
169 } 175 }
170 176
177 // TODO(tanvir.rizvi): DraggedNodeImageBuilder is used for drag related
178 // functionality and is irrelevant to core functionality of LocalFrame. This
179 // should be moved out of LocalFrame to appropriate place.
171 class DraggedNodeImageBuilder { 180 class DraggedNodeImageBuilder {
172 STACK_ALLOCATED(); 181 STACK_ALLOCATED();
173 182
174 public: 183 public:
175 DraggedNodeImageBuilder(const LocalFrame& local_frame, Node& node) 184 DraggedNodeImageBuilder(const LocalFrame& local_frame, Node& node)
176 : local_frame_(&local_frame), 185 : local_frame_(&local_frame),
177 node_(&node) 186 node_(&node)
178 #if DCHECK_IS_ON() 187 #if DCHECK_IS_ON()
179 , 188 ,
180 dom_tree_version_(node.GetDocument().DomTreeVersion()) 189 dom_tree_version_(node.GetDocument().DomTreeVersion())
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 PaintLayerFlags flags = kPaintLayerHaveTransparency | 230 PaintLayerFlags flags = kPaintLayerHaveTransparency |
222 kPaintLayerAppliedTransform | 231 kPaintLayerAppliedTransform |
223 kPaintLayerUncachedClipRects; 232 kPaintLayerUncachedClipRects;
224 PaintRecordBuilder builder(DeviceSpaceBounds(bounding_box, *local_frame_)); 233 PaintRecordBuilder builder(DeviceSpaceBounds(bounding_box, *local_frame_));
225 PaintLayerPainter(*layer).Paint(builder.Context(), painting_info, flags); 234 PaintLayerPainter(*layer).Paint(builder.Context(), painting_info, flags);
226 PropertyTreeState border_box_properties = PropertyTreeState::Root(); 235 PropertyTreeState border_box_properties = PropertyTreeState::Root();
227 if (RuntimeEnabledFeatures::SlimmingPaintV2Enabled()) { 236 if (RuntimeEnabledFeatures::SlimmingPaintV2Enabled()) {
228 border_box_properties = 237 border_box_properties =
229 *layer->GetLayoutObject().LocalBorderBoxProperties(); 238 *layer->GetLayoutObject().LocalBorderBoxProperties();
230 } 239 }
231 return CreateDragImage( 240 return CreateDragImageForFrame(
232 *local_frame_, 1.0f, 241 *local_frame_, 1.0f,
233 LayoutObject::ShouldRespectImageOrientation(dragged_layout_object), 242 LayoutObject::ShouldRespectImageOrientation(dragged_layout_object),
234 bounding_box, builder, border_box_properties); 243 bounding_box, builder, border_box_properties);
235 } 244 }
236 245
237 private: 246 private:
238 const Member<const LocalFrame> local_frame_; 247 const Member<const LocalFrame> local_frame_;
239 const Member<Node> node_; 248 const Member<Node> node_;
240 #if DCHECK_IS_ON() 249 #if DCHECK_IS_ON()
241 const uint64_t dom_tree_version_; 250 const uint64_t dom_tree_version_;
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 751
743 double LocalFrame::DevicePixelRatio() const { 752 double LocalFrame::DevicePixelRatio() const {
744 if (!page_) 753 if (!page_)
745 return 0; 754 return 0;
746 755
747 double ratio = page_->DeviceScaleFactorDeprecated(); 756 double ratio = page_->DeviceScaleFactorDeprecated();
748 ratio *= PageZoomFactor(); 757 ratio *= PageZoomFactor();
749 return ratio; 758 return ratio;
750 } 759 }
751 760
761 // TODO(tanvir.rizvi): NodeImage is used only by DataTransfer,
762 // and is irrelevant to LocalFrame core functionality, so it can be moved to
763 // DataTransfer.
752 std::unique_ptr<DragImage> LocalFrame::NodeImage(Node& node) { 764 std::unique_ptr<DragImage> LocalFrame::NodeImage(Node& node) {
753 DraggedNodeImageBuilder image_node(*this, node); 765 DraggedNodeImageBuilder image_node(*this, node);
754 return image_node.CreateImage(); 766 return image_node.CreateImage();
755 } 767 }
756 768
769 // TODO(tanvir.rizvi): DragImageForSelection is used only by DragController,
770 // and is irrelevant to LocalFrame core functionality, so it can be moved to
771 // DragController.
757 std::unique_ptr<DragImage> LocalFrame::DragImageForSelection(float opacity) { 772 std::unique_ptr<DragImage> LocalFrame::DragImageForSelection(float opacity) {
758 if (!Selection().ComputeVisibleSelectionInDOMTreeDeprecated().IsRange()) 773 if (!Selection().ComputeVisibleSelectionInDOMTreeDeprecated().IsRange())
759 return nullptr; 774 return nullptr;
760 775
761 view_->UpdateAllLifecyclePhasesExceptPaint(); 776 view_->UpdateAllLifecyclePhasesExceptPaint();
762 DCHECK(GetDocument()->IsActive()); 777 DCHECK(GetDocument()->IsActive());
763 778
764 FloatRect painting_rect = FloatRect(Selection().Bounds()); 779 FloatRect painting_rect = FloatRect(Selection().Bounds());
765 GlobalPaintFlags paint_flags = 780 GlobalPaintFlags paint_flags =
766 kGlobalPaintSelectionOnly | kGlobalPaintFlattenCompositingLayers; 781 kGlobalPaintSelectionOnly | kGlobalPaintFlattenCompositingLayers;
767 782
768 PaintRecordBuilder builder(DeviceSpaceBounds(painting_rect, *this)); 783 PaintRecordBuilder builder(DeviceSpaceBounds(painting_rect, *this));
769 view_->PaintContents(builder.Context(), paint_flags, 784 view_->PaintContents(builder.Context(), paint_flags,
770 EnclosingIntRect(painting_rect)); 785 EnclosingIntRect(painting_rect));
771 return CreateDragImage(*this, opacity, kDoNotRespectImageOrientation, 786 return CreateDragImageForFrame(*this, opacity, kDoNotRespectImageOrientation,
772 painting_rect, builder, PropertyTreeState::Root()); 787 painting_rect, builder,
788 PropertyTreeState::Root());
773 } 789 }
774 790
775 String LocalFrame::SelectedText() const { 791 String LocalFrame::SelectedText() const {
776 return Selection().SelectedText(); 792 return Selection().SelectedText();
777 } 793 }
778 794
779 String LocalFrame::SelectedTextForClipboard() const { 795 String LocalFrame::SelectedTextForClipboard() const {
780 if (!GetDocument()) 796 if (!GetDocument())
781 return g_empty_string; 797 return g_empty_string;
782 DCHECK(!GetDocument()->NeedsLayoutTreeUpdate()); 798 DCHECK(!GetDocument()->NeedsLayoutTreeUpdate());
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
1217 void LocalFrame::SetViewportIntersectionFromParent( 1233 void LocalFrame::SetViewportIntersectionFromParent(
1218 const IntRect& viewport_intersection) { 1234 const IntRect& viewport_intersection) {
1219 if (remote_viewport_intersection_ != viewport_intersection) { 1235 if (remote_viewport_intersection_ != viewport_intersection) {
1220 remote_viewport_intersection_ = viewport_intersection; 1236 remote_viewport_intersection_ = viewport_intersection;
1221 if (View()) 1237 if (View())
1222 View()->ScheduleAnimation(); 1238 View()->ScheduleAnimation();
1223 } 1239 }
1224 } 1240 }
1225 1241
1226 } // namespace blink 1242 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698