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

Side by Side Diff: content/shell/webkit_test_runner.cc

Issue 11138024: Simplify platform_canvas.h by recognizing that PlatformCanvas does not actually extend (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 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 | Annotate | Revision Log
« no previous file with comments | « content/renderer/webplugin_delegate_proxy.cc ('k') | content/test/mock_render_process.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/shell/webkit_test_runner.h" 5 #include "content/shell/webkit_test_runner.h"
6 6
7 #include "base/md5.h" 7 #include "base/md5.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/stringprintf.h" 10 #include "base/stringprintf.h"
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 106
107 if (recursive) { 107 if (recursive) {
108 for (WebFrame* child = frame->firstChild(); child; 108 for (WebFrame* child = frame->firstChild(); child;
109 child = child->nextSibling()) { 109 child = child->nextSibling()) {
110 result.append(DumpFrameScrollPosition(child, recursive)); 110 result.append(DumpFrameScrollPosition(child, recursive));
111 } 111 }
112 } 112 }
113 return result; 113 return result;
114 } 114 }
115 115
116 bool PaintViewIntoCanvas(WebView* view, skia::PlatformCanvas& canvas) { 116 SkCanvas* PaintViewIntoCanvas(WebView* view) {
117 view->layout(); 117 view->layout();
118 const WebSize& size = view->size(); 118 const WebSize& size = view->size();
119 119
120 if (!canvas.initialize(size.width, size.height, true)) 120 SkCanvas* canvas = skia::CreatePlatformCanvas(size.width, size.height, true,
121 return false; 121 0, skia::RETURN_NULL_ON_FAILURE);
122 122 if (canvas) {
123 view->paint(webkit_glue::ToWebCanvas(&canvas), 123 view->paint(webkit_glue::ToWebCanvas(canvas),
124 WebRect(0, 0, size.width, size.height)); 124 WebRect(0, 0, size.width, size.height));
125 return true; 125 }
126 return canvas;
126 } 127 }
127 128
128 #if !defined(OS_MACOSX) 129 #if !defined(OS_MACOSX)
129 void MakeBitmapOpaque(SkBitmap* bitmap) { 130 void MakeBitmapOpaque(SkBitmap* bitmap) {
130 SkAutoLockPixels lock(*bitmap); 131 SkAutoLockPixels lock(*bitmap);
131 DCHECK(bitmap->config() == SkBitmap::kARGB_8888_Config); 132 DCHECK(bitmap->config() == SkBitmap::kARGB_8888_Config);
132 for (int y = 0; y < bitmap->height(); ++y) { 133 for (int y = 0; y < bitmap->height(); ++y) {
133 uint32_t* row = bitmap->getAddr32(0, y); 134 uint32_t* row = bitmap->getAddr32(0, y);
134 for (int x = 0; x < bitmap->width(); ++x) 135 for (int x = 0; x < bitmap->width(); ++x)
135 row[x] |= 0xFF000000; // Set alpha bits to 1. 136 row[x] |= 0xFF000000; // Set alpha bits to 1.
136 } 137 }
137 } 138 }
138 #endif 139 #endif
139 140
140 void CaptureSnapshot(WebView* view, SkBitmap* snapshot) { 141 void CaptureSnapshot(WebView* view, SkBitmap* snapshot) {
141 skia::PlatformCanvas canvas; 142 SkCanvas* canvas = PaintViewIntoCanvas(view);
142 if (!PaintViewIntoCanvas(view, canvas)) 143 if (!canvas)
143 return; 144 return;
144 145
145 SkDevice* device = skia::GetTopDevice(canvas); 146 SkDevice* device = skia::GetTopDevice(*canvas);
146 147
147 const SkBitmap& bitmap = device->accessBitmap(false); 148 const SkBitmap& bitmap = device->accessBitmap(false);
148 bitmap.copyTo(snapshot, SkBitmap::kARGB_8888_Config); 149 bitmap.copyTo(snapshot, SkBitmap::kARGB_8888_Config);
149 150
150 #if !defined(OS_MACOSX) 151 #if !defined(OS_MACOSX)
151 // Only the expected PNGs for Mac have a valid alpha channel. 152 // Only the expected PNGs for Mac have a valid alpha channel.
152 MakeBitmapOpaque(snapshot); 153 MakeBitmapOpaque(snapshot);
153 #endif 154 #endif
154 155
155 } 156 }
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 const FilePath& current_working_directory) { 339 const FilePath& current_working_directory) {
339 current_working_directory_ = current_working_directory; 340 current_working_directory_ = current_working_directory;
340 } 341 }
341 342
342 void WebKitTestRunner::OnSetIsMainWindow() { 343 void WebKitTestRunner::OnSetIsMainWindow() {
343 is_main_window_ = true; 344 is_main_window_ = true;
344 ShellRenderProcessObserver::GetInstance()->SetMainWindow(render_view(), this); 345 ShellRenderProcessObserver::GetInstance()->SetMainWindow(render_view(), this);
345 } 346 }
346 347
347 } // namespace content 348 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/webplugin_delegate_proxy.cc ('k') | content/test/mock_render_process.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698