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

Side by Side Diff: content/child/webthemeengine_impl_default.cc

Issue 1054243002: Avoid calling the GetSystemMetrics API in the renderer process on Windows to get the scrollbar metr… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/child/webthemeengine_impl_default.h" 5 #include "content/child/webthemeengine_impl_default.h"
6 #include "content/public/common/renderer_preferences.h"
6 7
7 #include "skia/ext/platform_canvas.h" 8 #include "skia/ext/platform_canvas.h"
8 #include "third_party/WebKit/public/platform/WebRect.h" 9 #include "third_party/WebKit/public/platform/WebRect.h"
9 #include "third_party/WebKit/public/platform/WebSize.h" 10 #include "third_party/WebKit/public/platform/WebSize.h"
10 #include "ui/native_theme/native_theme.h" 11 #include "ui/native_theme/native_theme.h"
11 12
12 using blink::WebCanvas; 13 using blink::WebCanvas;
13 using blink::WebColor; 14 using blink::WebColor;
14 using blink::WebRect; 15 using blink::WebRect;
15 using blink::WebThemeEngine; 16 using blink::WebThemeEngine;
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 native_theme_extra_params->progress_bar.value_rect_width = 154 native_theme_extra_params->progress_bar.value_rect_width =
154 extra_params->progressBar.valueRectWidth; 155 extra_params->progressBar.valueRectWidth;
155 native_theme_extra_params->progress_bar.value_rect_height = 156 native_theme_extra_params->progress_bar.value_rect_height =
156 extra_params->progressBar.valueRectHeight; 157 extra_params->progressBar.valueRectHeight;
157 break; 158 break;
158 default: 159 default:
159 break; // Parts that have no extra params get here. 160 break; // Parts that have no extra params get here.
160 } 161 }
161 } 162 }
162 163
164 int32 WebThemeEngineImpl::vertical_scroll_bar_width_ = 0;
165 int32 WebThemeEngineImpl::horizontal_scroll_bar_height_ = 0;
brucedawson 2015/04/03 17:00:24 I can't see anywhere where this variable (or the t
ananta 2015/04/03 19:17:03 Caching them on an if needed basis.
166 int32 WebThemeEngineImpl::vertical_arrow_bitmap_height_ = 0;
167 int32 WebThemeEngineImpl::horizontal_arrow_bitmap_width_ = 0;
168
163 blink::WebSize WebThemeEngineImpl::getSize(WebThemeEngine::Part part) { 169 blink::WebSize WebThemeEngineImpl::getSize(WebThemeEngine::Part part) {
164 ui::NativeTheme::ExtraParams extra; 170 ui::NativeTheme::ExtraParams extra;
165 return ui::NativeTheme::instance()->GetPartSize(NativeThemePart(part), 171 ui::NativeTheme::Part native_theme_part = NativeThemePart(part);
166 ui::NativeTheme::kNormal, 172 #if defined(OS_WIN)
167 extra); 173 switch (native_theme_part) {
174 case ui::NativeTheme::kScrollbarDownArrow:
175 case ui::NativeTheme::kScrollbarLeftArrow:
176 case ui::NativeTheme::kScrollbarRightArrow:
177 case ui::NativeTheme::kScrollbarUpArrow:
178 case ui::NativeTheme::kScrollbarHorizontalThumb:
179 case ui::NativeTheme::kScrollbarVerticalThumb:
180 case ui::NativeTheme::kScrollbarHorizontalTrack:
181 case ui::NativeTheme::kScrollbarVerticalTrack: {
182 // If we have the scrollbar width cached return it.
183 if (WebThemeEngineImpl::vertical_scroll_bar_width_) {
brucedawson 2015/04/03 17:00:24 When would we not have the scrollbar width cached?
ananta 2015/04/03 19:17:04 Removed the check. The metrics default to 17
184 return gfx::Size(WebThemeEngineImpl::vertical_scroll_bar_width_,
185 WebThemeEngineImpl::vertical_scroll_bar_width_);
186 }
187 break;
188 }
189
190 default:
191 break;
192 }
193 #endif
194 return ui::NativeTheme::instance()->GetPartSize(native_theme_part,
195 ui::NativeTheme::kNormal,
196 extra);
168 } 197 }
169 198
170 void WebThemeEngineImpl::paint( 199 void WebThemeEngineImpl::paint(
171 blink::WebCanvas* canvas, 200 blink::WebCanvas* canvas,
172 WebThemeEngine::Part part, 201 WebThemeEngine::Part part,
173 WebThemeEngine::State state, 202 WebThemeEngine::State state,
174 const blink::WebRect& rect, 203 const blink::WebRect& rect,
175 const WebThemeEngine::ExtraParams* extra_params) { 204 const WebThemeEngine::ExtraParams* extra_params) {
176 ui::NativeTheme::ExtraParams native_theme_extra_params; 205 ui::NativeTheme::ExtraParams native_theme_extra_params;
177 GetNativeThemeExtraParams( 206 GetNativeThemeExtraParams(
(...skipping 14 matching lines...) Expand all
192 const blink::WebRect& rect) { 221 const blink::WebRect& rect) {
193 ui::NativeTheme::instance()->PaintStateTransition( 222 ui::NativeTheme::instance()->PaintStateTransition(
194 canvas, 223 canvas,
195 NativeThemePart(part), 224 NativeThemePart(part),
196 NativeThemeState(startState), 225 NativeThemeState(startState),
197 NativeThemeState(endState), 226 NativeThemeState(endState),
198 progress, 227 progress,
199 gfx::Rect(rect)); 228 gfx::Rect(rect));
200 } 229 }
201 230
231 // static
232 void WebThemeEngineImpl::SetVerticalScrollbarWidth(
233 int32 vertical_scroll_bar_width) {
234 vertical_scroll_bar_width_ = vertical_scroll_bar_width;
235 }
236
237 // static
238 void WebThemeEngineImpl::SetHorizontalScrollbarHeight(
239 int32 horizontal_scroll_bar_height) {
240 horizontal_scroll_bar_height_ = horizontal_scroll_bar_height;
241 }
242
243 // static
244 void WebThemeEngineImpl::SetVerticalArrowBitmapHeight(
245 int32 vertical_arrow_bitmap_height) {
246 vertical_arrow_bitmap_height_ = vertical_arrow_bitmap_height;
247 }
248
249 // static
250 void WebThemeEngineImpl::SetHorizontalArrowBitmapWidth(
251 int32 horizontal_arrow_bitmap_width) {
252 horizontal_arrow_bitmap_width_ = horizontal_arrow_bitmap_width;
253 }
254
202 } // namespace content 255 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698