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

Side by Side Diff: content/shell/browser/blink_test_controller.h

Issue 1589643003: OOPIF support for testRunner.dumpAsText and similar layout dumps. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Ready for review. Created 4 years, 11 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 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 #ifndef CONTENT_SHELL_BROWSER_BLINK_TEST_CONTROLLER_H_ 5 #ifndef CONTENT_SHELL_BROWSER_BLINK_TEST_CONTROLLER_H_
6 #define CONTENT_SHELL_BROWSER_BLINK_TEST_CONTROLLER_H_ 6 #define CONTENT_SHELL_BROWSER_BLINK_TEST_CONTROLLER_H_
7 7
8 #include <map>
8 #include <ostream> 9 #include <ostream>
9 #include <string> 10 #include <string>
10 11
11 #include "base/cancelable_callback.h" 12 #include "base/cancelable_callback.h"
12 #include "base/files/file_path.h" 13 #include "base/files/file_path.h"
13 #include "base/macros.h" 14 #include "base/macros.h"
14 #include "base/memory/scoped_ptr.h" 15 #include "base/memory/scoped_ptr.h"
15 #include "base/synchronization/lock.h" 16 #include "base/synchronization/lock.h"
16 #include "base/threading/non_thread_safe.h" 17 #include "base/threading/non_thread_safe.h"
17 #include "build/build_config.h" 18 #include "build/build_config.h"
19 #include "components/test_runner/layout_dump_flags.h"
18 #include "content/public/browser/bluetooth_chooser.h" 20 #include "content/public/browser/bluetooth_chooser.h"
19 #include "content/public/browser/gpu_data_manager_observer.h" 21 #include "content/public/browser/gpu_data_manager_observer.h"
20 #include "content/public/browser/notification_observer.h" 22 #include "content/public/browser/notification_observer.h"
21 #include "content/public/browser/notification_registrar.h" 23 #include "content/public/browser/notification_registrar.h"
22 #include "content/public/browser/web_contents_observer.h" 24 #include "content/public/browser/web_contents_observer.h"
23 #include "content/public/common/web_preferences.h" 25 #include "content/public/common/web_preferences.h"
24 #include "content/shell/common/leak_detection_result.h" 26 #include "content/shell/common/leak_detection_result.h"
25 #include "ui/gfx/geometry/size.h" 27 #include "ui/gfx/geometry/size.h"
26 28
27 #if defined(OS_ANDROID) 29 #if defined(OS_ANDROID)
28 #include "base/threading/thread_restrictions.h" 30 #include "base/threading/thread_restrictions.h"
29 #endif 31 #endif
30 32
31 class SkBitmap; 33 class SkBitmap;
32 34
33 namespace content { 35 namespace content {
34 36
35 class LayoutTestBluetoothChooserFactory; 37 class LayoutTestBluetoothChooserFactory;
36 class LayoutTestDevToolsFrontend; 38 class LayoutTestDevToolsFrontend;
39 class RenderFrameHost;
37 class Shell; 40 class Shell;
38 41
39 #if defined(OS_ANDROID) 42 #if defined(OS_ANDROID)
40 // Android uses a nested message loop for running layout tests because the 43 // Android uses a nested message loop for running layout tests because the
41 // default message loop, provided by the system, does not offer a blocking 44 // default message loop, provided by the system, does not offer a blocking
42 // Run() method. The loop itself, implemented as NestedMessagePumpAndroid, 45 // Run() method. The loop itself, implemented as NestedMessagePumpAndroid,
43 // uses a base::WaitableEvent allowing it to sleep until more events arrive. 46 // uses a base::WaitableEvent allowing it to sleep until more events arrive.
44 class ScopedAllowWaitForAndroidLayoutTests { 47 class ScopedAllowWaitForAndroidLayoutTests {
45 private: 48 private:
46 base::ThreadRestrictions::ScopedAllowWait wait; 49 base::ThreadRestrictions::ScopedAllowWait wait;
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 const BluetoothChooser::EventHandler& event_handler, 136 const BluetoothChooser::EventHandler& event_handler,
134 const GURL& origin); 137 const GURL& origin);
135 138
136 BlinkTestResultPrinter* printer() { return printer_.get(); } 139 BlinkTestResultPrinter* printer() { return printer_.get(); }
137 void set_printer(BlinkTestResultPrinter* printer) { printer_.reset(printer); } 140 void set_printer(BlinkTestResultPrinter* printer) { printer_.reset(printer); }
138 141
139 void DevToolsProcessCrashed(); 142 void DevToolsProcessCrashed();
140 143
141 // WebContentsObserver implementation. 144 // WebContentsObserver implementation.
142 bool OnMessageReceived(const IPC::Message& message) override; 145 bool OnMessageReceived(const IPC::Message& message) override;
146 bool OnMessageReceived(const IPC::Message& message,
147 RenderFrameHost* render_frame_host) override;
143 void PluginCrashed(const base::FilePath& plugin_path, 148 void PluginCrashed(const base::FilePath& plugin_path,
144 base::ProcessId plugin_pid) override; 149 base::ProcessId plugin_pid) override;
145 void RenderViewCreated(RenderViewHost* render_view_host) override; 150 void RenderViewCreated(RenderViewHost* render_view_host) override;
146 void RenderProcessGone(base::TerminationStatus status) override; 151 void RenderProcessGone(base::TerminationStatus status) override;
147 void WebContentsDestroyed() override; 152 void WebContentsDestroyed() override;
148 153
149 // NotificationObserver implementation. 154 // NotificationObserver implementation.
150 void Observe(int type, 155 void Observe(int type,
151 const NotificationSource& source, 156 const NotificationSource& source,
152 const NotificationDetails& details) override; 157 const NotificationDetails& details) override;
(...skipping 10 matching lines...) Expand all
163 168
164 static BlinkTestController* instance_; 169 static BlinkTestController* instance_;
165 170
166 void DiscardMainWindow(); 171 void DiscardMainWindow();
167 void SendTestConfiguration(); 172 void SendTestConfiguration();
168 173
169 // Message handlers. 174 // Message handlers.
170 void OnAudioDump(const std::vector<unsigned char>& audio_dump); 175 void OnAudioDump(const std::vector<unsigned char>& audio_dump);
171 void OnImageDump(const std::string& actual_pixel_hash, const SkBitmap& image); 176 void OnImageDump(const std::string& actual_pixel_hash, const SkBitmap& image);
172 void OnTextDump(const std::string& dump); 177 void OnTextDump(const std::string& dump);
178 void OnInitiateLayoutDump(test_runner::LayoutDumpFlags layout_dump_flags);
179 void OnLayoutDumpResponse(RenderFrameHost* sender, const std::string& dump);
173 void OnPrintMessage(const std::string& message); 180 void OnPrintMessage(const std::string& message);
174 void OnOverridePreferences(const WebPreferences& prefs); 181 void OnOverridePreferences(const WebPreferences& prefs);
175 void OnTestFinished(); 182 void OnTestFinished();
176 void OnClearDevToolsLocalStorage(); 183 void OnClearDevToolsLocalStorage();
177 void OnShowDevTools(const std::string& settings, 184 void OnShowDevTools(const std::string& settings,
178 const std::string& frontend_url); 185 const std::string& frontend_url);
179 void OnCloseDevTools(); 186 void OnCloseDevTools();
180 void OnGoToOffset(int offset); 187 void OnGoToOffset(int offset);
181 void OnReload(); 188 void OnReload();
182 void OnLoadURLForFrame(const GURL& url, const std::string& frame_name); 189 void OnLoadURLForFrame(const GURL& url, const std::string& frame_name);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 229
223 NotificationRegistrar registrar_; 230 NotificationRegistrar registrar_;
224 231
225 const bool is_leak_detection_enabled_; 232 const bool is_leak_detection_enabled_;
226 bool crash_when_leak_found_; 233 bool crash_when_leak_found_;
227 234
228 LayoutTestDevToolsFrontend* devtools_frontend_; 235 LayoutTestDevToolsFrontend* devtools_frontend_;
229 236
230 scoped_ptr<LayoutTestBluetoothChooserFactory> bluetooth_chooser_factory_; 237 scoped_ptr<LayoutTestBluetoothChooserFactory> bluetooth_chooser_factory_;
231 238
239 // Map from frame_tree_node_id into frame-specific dumps.
240 std::map<int, std::string> frame_to_layout_dump_map_;
241 // Number of ShellViewHostMsg_LayoutDumpResponse messages we are waiting for.
242 int pending_layout_dumps_;
243
232 #if defined(OS_ANDROID) 244 #if defined(OS_ANDROID)
233 // Because of the nested message pump implementation, Android needs to allow 245 // Because of the nested message pump implementation, Android needs to allow
234 // waiting on the UI thread while layout tests are being ran. 246 // waiting on the UI thread while layout tests are being ran.
235 ScopedAllowWaitForAndroidLayoutTests reduced_restrictions_; 247 ScopedAllowWaitForAndroidLayoutTests reduced_restrictions_;
236 #endif 248 #endif
237 249
238 DISALLOW_COPY_AND_ASSIGN(BlinkTestController); 250 DISALLOW_COPY_AND_ASSIGN(BlinkTestController);
239 }; 251 };
240 252
241 } // namespace content 253 } // namespace content
242 254
243 #endif // CONTENT_SHELL_BROWSER_BLINK_TEST_CONTROLLER_H_ 255 #endif // CONTENT_SHELL_BROWSER_BLINK_TEST_CONTROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698