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

Side by Side Diff: components/test_runner/pixel_dump.cc

Issue 2509983004: Revert "Change call-sites now that SkCanvas is not ref-counted" (Closed)
Patch Set: Created 4 years, 1 month 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/test_runner/pixel_dump.h" 5 #include "components/test_runner/pixel_dump.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 void CapturePixelsForPrinting(std::unique_ptr<PixelsDumpRequest> dump_request) { 89 void CapturePixelsForPrinting(std::unique_ptr<PixelsDumpRequest> dump_request) {
90 dump_request->web_view->updateAllLifecyclePhases(); 90 dump_request->web_view->updateAllLifecyclePhases();
91 91
92 blink::WebSize page_size_in_pixels = dump_request->web_view->size(); 92 blink::WebSize page_size_in_pixels = dump_request->web_view->size();
93 blink::WebFrame* web_frame = dump_request->web_view->mainFrame(); 93 blink::WebFrame* web_frame = dump_request->web_view->mainFrame();
94 94
95 int page_count = web_frame->printBegin(page_size_in_pixels); 95 int page_count = web_frame->printBegin(page_size_in_pixels);
96 int totalHeight = page_count * (page_size_in_pixels.height + 1) - 1; 96 int totalHeight = page_count * (page_size_in_pixels.height + 1) - 1;
97 97
98 bool is_opaque = false; 98 bool is_opaque = false;
99 std::unique_ptr<SkCanvas> canvas = skia::TryCreateBitmapCanvas( 99 sk_sp<SkCanvas> canvas(skia::TryCreateBitmapCanvas(
100 page_size_in_pixels.width, totalHeight, is_opaque); 100 page_size_in_pixels.width, totalHeight, is_opaque));
101 if (!canvas) { 101 if (!canvas) {
102 LOG(ERROR) << "Failed to create canvas width=" 102 LOG(ERROR) << "Failed to create canvas width="
103 << page_size_in_pixels.width << " height=" << totalHeight; 103 << page_size_in_pixels.width << " height=" << totalHeight;
104 dump_request->callback.Run(SkBitmap()); 104 dump_request->callback.Run(SkBitmap());
105 return; 105 return;
106 } 106 }
107 web_frame->printPagesWithBoundaries(canvas.get(), page_size_in_pixels); 107 web_frame->printPagesWithBoundaries(canvas.get(), page_size_in_pixels);
108 web_frame->printEnd(); 108 web_frame->printEnd();
109 109
110 DrawSelectionRect(*dump_request, canvas.get()); 110 DrawSelectionRect(*dump_request, canvas.get());
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 199
200 blink::WebImage image = static_cast<blink::WebMockClipboard*>( 200 blink::WebImage image = static_cast<blink::WebMockClipboard*>(
201 blink::Platform::current()->clipboard()) 201 blink::Platform::current()->clipboard())
202 ->readRawImage(blink::WebClipboard::Buffer()); 202 ->readRawImage(blink::WebClipboard::Buffer());
203 const SkBitmap& bitmap = image.getSkBitmap(); 203 const SkBitmap& bitmap = image.getSkBitmap();
204 SkAutoLockPixels autoLock(bitmap); 204 SkAutoLockPixels autoLock(bitmap);
205 callback.Run(bitmap); 205 callback.Run(bitmap);
206 } 206 }
207 207
208 } // namespace test_runner 208 } // namespace test_runner
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698