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
3// found in the LICENSE file.
4
5#ifndef CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCK_WEB_THEME_ENGINE_MAC_H_
6#define CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCK_WEB_THEME_ENGINE_MAC_H_
7
8#include "base/macros.h"
9#include "third_party/WebKit/public/platform/WebThemeEngine.h"
10
11namespace content {
12
13// This implements the WebThemeEngine API in such a way that we match the Mac
14// port rendering more than usual Chromium path, thus allowing us to share
15// more pixel baselines.
16class MockWebThemeEngineMac : public blink::WebThemeEngine {
17 public:
18  MockWebThemeEngineMac() {}
19  virtual ~MockWebThemeEngineMac() {}
20
21  virtual void paintScrollbarThumb(blink::WebCanvas*,
22                                   blink::WebThemeEngine::State,
23                                   blink::WebThemeEngine::Size,
24                                   const blink::WebRect&,
25                                   const blink::WebThemeEngine::ScrollbarInfo&);
26
27 private:
28  virtual void paintHIThemeScrollbarThumb(
29      blink::WebCanvas*,
30      blink::WebThemeEngine::State,
31      blink::WebThemeEngine::Size,
32      const blink::WebRect&,
33      const blink::WebThemeEngine::ScrollbarInfo&);
34  virtual void paintNSScrollerScrollbarThumb(
35      blink::WebCanvas*,
36      blink::WebThemeEngine::State,
37      blink::WebThemeEngine::Size,
38      const blink::WebRect&,
39      const blink::WebThemeEngine::ScrollbarInfo&);
40
41  DISALLOW_COPY_AND_ASSIGN(MockWebThemeEngineMac);
42};
43
44}  // namespace content
45
46#endif  // CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCK_WEB_THEME_ENGINE_MAC_H_
47