OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/renderer/layout_test/layout_test_render_frame_observer.h
" | 5 #include "content/shell/renderer/layout_test/layout_test_render_frame_observer.h
" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
| 9 #include "base/callback.h" |
9 #include "content/public/common/associated_interface_registry.h" | 10 #include "content/public/common/associated_interface_registry.h" |
10 #include "content/public/renderer/render_frame.h" | 11 #include "content/public/renderer/render_frame.h" |
11 #include "content/shell/renderer/layout_test/blink_test_runner.h" | 12 #include "content/shell/renderer/layout_test/blink_test_runner.h" |
12 #include "content/shell/renderer/layout_test/layout_test_render_thread_observer.
h" | 13 #include "content/shell/renderer/layout_test/layout_test_render_thread_observer.
h" |
13 #include "content/shell/test_runner/web_test_interfaces.h" | 14 #include "content/shell/test_runner/web_test_interfaces.h" |
14 #include "content/shell/test_runner/web_test_runner.h" | 15 #include "content/shell/test_runner/web_test_runner.h" |
| 16 #include "third_party/WebKit/public/platform/WebCompositeAndReadbackAsyncCallbac
k.h" |
| 17 #include "third_party/WebKit/public/web/WebFrameWidget.h" |
15 #include "third_party/WebKit/public/web/WebLocalFrame.h" | 18 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
| 19 #include "third_party/WebKit/public/web/WebView.h" |
16 | 20 |
17 namespace content { | 21 namespace content { |
18 | 22 |
| 23 namespace { |
| 24 |
| 25 class CompositeAndReadbackCallback |
| 26 : public blink::WebCompositeAndReadbackAsyncCallback { |
| 27 public: |
| 28 explicit CompositeAndReadbackCallback(base::OnceClosure callback) |
| 29 : callback_(std::move(callback)) {} |
| 30 |
| 31 virtual ~CompositeAndReadbackCallback() = default; |
| 32 |
| 33 // WebCompositeAndReadbackAsyncCallback implementation. |
| 34 void DidCompositeAndReadback(const SkBitmap& bitmap) override { |
| 35 LOG(ERROR) << "DidCompositeAndReadback"; |
| 36 std::move(callback_).Run(); |
| 37 delete this; |
| 38 } |
| 39 |
| 40 private: |
| 41 base::OnceClosure callback_; |
| 42 }; |
| 43 |
| 44 } // namespace |
| 45 |
19 LayoutTestRenderFrameObserver::LayoutTestRenderFrameObserver( | 46 LayoutTestRenderFrameObserver::LayoutTestRenderFrameObserver( |
20 RenderFrame* render_frame) | 47 RenderFrame* render_frame) |
21 : RenderFrameObserver(render_frame), binding_(this) { | 48 : RenderFrameObserver(render_frame), binding_(this) { |
22 test_runner::WebTestRunner* test_runner = | 49 test_runner::WebTestRunner* test_runner = |
23 LayoutTestRenderThreadObserver::GetInstance() | 50 LayoutTestRenderThreadObserver::GetInstance() |
24 ->test_interfaces() | 51 ->test_interfaces() |
25 ->TestRunner(); | 52 ->TestRunner(); |
26 render_frame->GetWebFrame()->SetContentSettingsClient( | 53 render_frame->GetWebFrame()->SetContentSettingsClient( |
27 test_runner->GetWebContentSettings()); | 54 test_runner->GetWebContentSettings()); |
28 render_frame->GetWebFrame()->SetTextCheckClient( | 55 render_frame->GetWebFrame()->SetTextCheckClient( |
(...skipping 16 matching lines...) Expand all Loading... |
45 void LayoutTestRenderFrameObserver::DumpFrameLayout( | 72 void LayoutTestRenderFrameObserver::DumpFrameLayout( |
46 DumpFrameLayoutCallback callback) { | 73 DumpFrameLayoutCallback callback) { |
47 std::string dump = | 74 std::string dump = |
48 LayoutTestRenderThreadObserver::GetInstance() | 75 LayoutTestRenderThreadObserver::GetInstance() |
49 ->test_interfaces() | 76 ->test_interfaces() |
50 ->TestRunner() | 77 ->TestRunner() |
51 ->DumpLayout(render_frame()->GetWebFrame()); | 78 ->DumpLayout(render_frame()->GetWebFrame()); |
52 std::move(callback).Run(dump); | 79 std::move(callback).Run(dump); |
53 } | 80 } |
54 | 81 |
| 82 void LayoutTestRenderFrameObserver::TriggerCompositing( |
| 83 TriggerCompositingCallback callback) { |
| 84 blink::WebWidget* widget = |
| 85 render_frame()->IsMainFrame() |
| 86 ? render_frame()->GetWebFrame()->View()->GetWidget() |
| 87 : render_frame()->GetWebFrame()->FrameWidget(); |
| 88 |
| 89 // DO NOT SUBMIT. |
| 90 LOG(ERROR) << "LayoutTestRenderFrameObserver::TriggerCompositing" |
| 91 << "; IsMainFrame = " << render_frame()->IsMainFrame() |
| 92 << "; widget = " << widget; |
| 93 |
| 94 if (widget) { |
| 95 widget->CompositeAndReadbackAsync( |
| 96 new CompositeAndReadbackCallback(std::move(callback))); |
| 97 } else { |
| 98 std::move(callback).Run(); |
| 99 } |
| 100 } |
| 101 |
55 void LayoutTestRenderFrameObserver::ReplicateTestConfiguration( | 102 void LayoutTestRenderFrameObserver::ReplicateTestConfiguration( |
56 mojom::ShellTestConfigurationPtr config) { | 103 mojom::ShellTestConfigurationPtr config) { |
57 BlinkTestRunner::Get(render_frame()->GetRenderView()) | 104 BlinkTestRunner::Get(render_frame()->GetRenderView()) |
58 ->OnReplicateTestConfiguration(std::move(config)); | 105 ->OnReplicateTestConfiguration(std::move(config)); |
59 } | 106 } |
60 | 107 |
61 void LayoutTestRenderFrameObserver::SetTestConfiguration( | 108 void LayoutTestRenderFrameObserver::SetTestConfiguration( |
62 mojom::ShellTestConfigurationPtr config) { | 109 mojom::ShellTestConfigurationPtr config) { |
63 BlinkTestRunner::Get(render_frame()->GetRenderView()) | 110 BlinkTestRunner::Get(render_frame()->GetRenderView()) |
64 ->OnSetTestConfiguration(std::move(config)); | 111 ->OnSetTestConfiguration(std::move(config)); |
65 } | 112 } |
66 | 113 |
67 void LayoutTestRenderFrameObserver::SetupSecondaryRenderer() { | 114 void LayoutTestRenderFrameObserver::SetupSecondaryRenderer() { |
68 BlinkTestRunner::Get(render_frame()->GetRenderView()) | 115 BlinkTestRunner::Get(render_frame()->GetRenderView()) |
69 ->OnSetupSecondaryRenderer(); | 116 ->OnSetupSecondaryRenderer(); |
70 } | 117 } |
71 | 118 |
72 } // namespace content | 119 } // namespace content |
OLD | NEW |