Index: webkit/tools/test_shell/test_shell.h |
diff --git a/webkit/tools/test_shell/test_shell.h b/webkit/tools/test_shell/test_shell.h |
deleted file mode 100644 |
index d6db56c41ff49b335c3b81092e29838e54860e98..0000000000000000000000000000000000000000 |
--- a/webkit/tools/test_shell/test_shell.h |
+++ /dev/null |
@@ -1,350 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef WEBKIT_TOOLS_TEST_SHELL_TEST_SHELL_H_ |
-#define WEBKIT_TOOLS_TEST_SHELL_TEST_SHELL_H_ |
- |
- |
-#include <list> |
-#include <map> |
-#include <string> |
-#include <vector> |
- |
-#include "base/basictypes.h" |
-#include "base/files/file_path.h" |
-#include "base/files/scoped_temp_dir.h" |
-#include "base/lazy_instance.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/memory/weak_ptr.h" |
-#include "base/strings/string_piece.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebNavigationPolicy.h" |
-#include "ui/gfx/native_widget_types.h" |
-#include "webkit/tools/test_shell/webview_host.h" |
-#include "webkit/tools/test_shell/webwidget_host.h" |
- |
-typedef std::list<gfx::NativeWindow> WindowList; |
- |
-#if defined(OS_WIN) |
-namespace ui { |
-class ScopedOleInitializer; |
-} |
-#endif |
- |
-class GURL; |
-class TestNavigationEntry; |
-class TestNavigationController; |
-class TestNotificationPresenter; |
-class TestShellDevToolsAgent; |
-class TestShellDevToolsClient; |
-class TestWebViewDelegate; |
-struct WebPreferences; |
- |
-namespace WebKit { |
-class WebDeviceOrientationClientMock; |
-class WebGeolocationClientMock; |
-} |
- |
-class TestShell : public base::SupportsWeakPtr<TestShell> { |
-public: |
- struct TestParams { |
- // Load the test defaults. |
- TestParams(); |
- |
- // The kind of output we want from this test. |
- bool dump_tree; |
- bool dump_pixels; |
- |
- // Filename we dump pixels to (when pixel testing is enabled). |
- base::FilePath pixel_file_name; |
- // The md5 hash of the bitmap dump (when pixel testing is enabled). |
- std::string pixel_hash; |
- // URL of the test. |
- std::string test_url; |
- }; |
- |
- TestShell(); |
- virtual ~TestShell(); |
- |
- // Initialization and clean up of logging. |
- static void InitLogging(bool suppress_error_dialogs, |
- bool running_layout_tests, |
- bool enable_gp_fault_error_box); |
- static void CleanupLogging(); |
- |
- // Initialization and clean up of a static member variable. |
- static void InitializeTestShell(bool layout_test_mode, |
- bool allow_external_pages); |
- static void ShutdownTestShell(); |
- |
- static bool layout_test_mode() { return layout_test_mode_; } |
- static bool allow_external_pages() { return allow_external_pages_; } |
- |
- // Called from the destructor to let each platform do any necessary |
- // cleanup. |
- void PlatformCleanUp(); |
- |
- WebKit::WebView* webView() { |
- return m_webViewHost.get() ? m_webViewHost->webview() : NULL; |
- } |
- WebViewHost* webViewHost() { return m_webViewHost.get(); } |
- WebKit::WebWidget* popup() { |
- return m_popupHost ? m_popupHost->webwidget() : NULL; |
- } |
- WebWidgetHost* popupHost() { return m_popupHost; } |
- |
- bool is_loading() const { return is_loading_; } |
- void set_is_loading(bool is_loading) { is_loading_ = is_loading; } |
- |
- bool allow_images() const { return allow_images_; } |
- void set_allow_images(bool allow) { allow_images_ = allow; } |
- |
- bool allow_plugins() const { return allow_plugins_; } |
- void set_allow_plugins(bool allow) { allow_plugins_ = allow; } |
- |
- bool allow_scripts() const { return allow_scripts_; } |
- void set_allow_scripts(bool allow) { allow_scripts_ = allow; } |
- |
- void UpdateNavigationControls(); |
- |
- // A new TestShell window will be opened with devtools url. |
- // DevTools window can be opened manually via menu or automatically when |
- // inspector's layout test url is passed from command line or console. |
- void ShowDevTools(); |
- void CloseDevTools(); |
- |
- void Show(WebKit::WebNavigationPolicy policy); |
- |
- // We use this to avoid relying on Windows focus during layout test mode. |
- void SetFocus(WebWidgetHost* host, bool enable); |
- |
- TestWebViewDelegate* delegate() { return delegate_.get(); } |
- TestWebViewDelegate* popup_delegate() { return popup_delegate_.get(); } |
- TestNavigationController* navigation_controller() { |
- return navigation_controller_.get(); |
- } |
- TestNotificationPresenter* notification_presenter() { |
- return notification_presenter_.get(); |
- } |
- |
- // Resets TestWebViewDelegate. Should be called before loading a page, |
- // since some end-editing event notifications may arrive after the previous |
- // page has finished dumping its text and therefore end up in the next |
- // test's results if the messages are still enabled. |
- void ResetTestController(); |
- |
- bool AcceptsEditing() { |
- return true; |
- } |
- |
- void LoadFile(const base::FilePath& file); |
- void LoadURL(const GURL& url); |
- void LoadURLForFrame(const GURL& url, const base::string16& frame_name); |
- void GoBackOrForward(int offset); |
- void Reload(); |
- bool Navigate(const TestNavigationEntry& entry, bool reload); |
- |
- bool PromptForSaveFile(const wchar_t* prompt_title, base::FilePath* result); |
- base::string16 GetDocumentText(); |
- void DumpDocumentText(); |
- void DumpRenderTree(); |
- |
- gfx::NativeWindow mainWnd() const { return m_mainWnd; } |
- gfx::NativeView webViewWnd() const { return m_webViewHost->view_handle(); } |
- gfx::NativeEditView editWnd() const { return m_editWnd; } |
- gfx::NativeView popupWnd() const { return m_popupHost->view_handle(); } |
- |
- static WindowList* windowList() { return window_list_; } |
- |
- // If shell is non-null, then *shell is assigned upon successful return |
- static bool CreateNewWindow(const GURL& starting_url, |
- TestShell** shell = NULL); |
- |
- static void DestroyWindow(gfx::NativeWindow windowHandle); |
- |
- // Remove the given window from window_list_, return true if it was in the |
- // list and was removed and false otherwise. |
- static bool RemoveWindowFromList(gfx::NativeWindow window); |
- |
- // Implements CreateWebView for TestWebViewDelegate, which in turn |
- // is called as a WebViewDelegate. |
- WebKit::WebView* CreateWebView(); |
- WebKit::WebWidget* CreatePopupWidget(); |
- void ClosePopup(); |
- |
-#if defined(OS_WIN) |
- static ATOM RegisterWindowClass(); |
-#endif |
- |
- // Writes the back-forward list data for every open window into result. |
- // Should call DumpBackForwardListOfWindow on each TestShell window. |
- static void DumpAllBackForwardLists(base::string16* result); |
- |
- // Writes the single back-forward entry into result. |
- void DumpBackForwardEntry(int index, base::string16* result); |
- |
- // Writes the back-forward list data for this test shell into result. |
- void DumpBackForwardList(base::string16* result); |
- |
- static void ResetWebPreferences(); |
- |
- static void SetAllowScriptsToCloseWindows(); |
- |
- static void SetAccelerated2dCanvasEnabled(bool enabled); |
- static void SetAcceleratedCompositingEnabled(bool enabled); |
- |
- static WebPreferences* GetWebPreferences(); |
- |
- // Some layout tests hardcode a file:///tmp/LayoutTests URL. We get around |
- // this by substituting "tmp" with the path to the LayoutTests parent dir. |
- static std::string RewriteLocalUrl(const std::string& url); |
- |
- // Set the JavaScript flags to use. This is a vector as when multiple loads |
- // are specified each load can have different flags passed. |
- static void SetJavaScriptFlags(std::vector<std::string> js_flags) { |
- js_flags_ = js_flags; |
- } |
- |
- // Get the JavaScript flags for a specific load |
- static std::string GetJSFlagsForLoad(size_t load) { |
- if (load >= js_flags_.size()) |
- return std::string(); |
- return js_flags_[load]; |
- } |
- |
- // Have the shell print the StatsTable to stdout on teardown. |
- void DumpStatsTableOnExit() { dump_stats_table_on_exit_ = true; } |
- |
- void CallJSGC(); |
- |
- void set_is_modal(bool value) { is_modal_ = value; } |
- bool is_modal() const { return is_modal_; } |
- |
- const TestParams* test_params() { return test_params_; } |
- void set_test_params(const TestParams* test_params) { |
- test_params_ = test_params; |
- } |
- |
-#if defined(OS_MACOSX) |
- // handle cleaning up a shell given the associated window |
- static void DestroyAssociatedShell(gfx::NativeWindow handle); |
-#endif |
- |
- // Show the "attach to me" dialog, for debugging test shell startup. |
- static void ShowStartupDebuggingDialog(); |
- |
- // This is called indirectly by the modules that need access resources. |
- static base::StringPiece ResourceProvider(int key); |
- |
- TestShellDevToolsAgent* dev_tools_agent() { |
- return dev_tools_agent_.get(); |
- } |
- |
- WebKit::WebDeviceOrientationClientMock* device_orientation_client_mock(); |
- |
- WebKit::WebGeolocationClientMock* geolocation_client_mock(); |
- |
-protected: |
- void CreateDevToolsClient(TestShellDevToolsAgent* agent); |
- bool Initialize(const GURL& starting_url); |
- bool IsSVGTestURL(const GURL& url); |
- void SizeToSVG(); |
- void SizeToDefault(); |
- void SizeTo(int width, int height); |
- void ResizeSubViews(); |
- |
- // Set the focus in interactive mode (pass through to relevant system call). |
- void InteractiveSetFocus(WebWidgetHost* host, bool enable); |
- |
- enum UIControl { |
- BACK_BUTTON, |
- FORWARD_BUTTON, |
- STOP_BUTTON |
- }; |
- |
- void EnableUIControl(UIControl control, bool is_enabled); |
- |
-#if defined(OS_WIN) |
- static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); |
- static LRESULT CALLBACK EditWndProc(HWND, UINT, WPARAM, LPARAM); |
-#endif |
- |
- static void PlatformShutdown(); |
- |
- gfx::NativeWindow m_mainWnd; |
- gfx::NativeEditView m_editWnd; |
- scoped_ptr<WebViewHost> m_webViewHost; |
- WebWidgetHost* m_popupHost; |
-#if defined(OS_WIN) |
- WNDPROC default_edit_wnd_proc_; |
-#endif |
- |
- // Primitive focus controller for layout test mode. |
- WebWidgetHost* m_focusedWidgetHost; |
- |
-private: |
- // A set of all our windows. |
- static WindowList* window_list_; |
-#if defined(OS_MACOSX) |
- typedef std::map<gfx::NativeWindow, TestShell *> WindowMap; |
- static base::LazyInstance<WindowMap> window_map_; |
-#endif |
- |
-#if defined(OS_WIN) |
- static HINSTANCE instance_handle_; |
- |
- static ui::ScopedOleInitializer* ole_initializer_; |
-#endif |
- |
- // True when the app is being run using the --layout-tests switch. |
- static bool layout_test_mode_; |
- |
- // True when we wish to allow test shell to load external pages like |
- // www.google.com even when in --layout-test mode (used for QA to |
- // produce images of the rendered page) |
- static bool allow_external_pages_; |
- |
- scoped_ptr<TestNavigationController> navigation_controller_; |
- scoped_ptr<TestNotificationPresenter> notification_presenter_; |
- |
- scoped_ptr<TestWebViewDelegate> delegate_; |
- scoped_ptr<TestWebViewDelegate> popup_delegate_; |
- |
- base::WeakPtr<TestShell> devtools_shell_; |
- scoped_ptr<TestShellDevToolsAgent> dev_tools_agent_; |
- scoped_ptr<TestShellDevToolsClient> dev_tools_client_; |
- scoped_ptr<WebKit::WebDeviceOrientationClientMock> |
- device_orientation_client_mock_; |
- scoped_ptr<WebKit::WebGeolocationClientMock> geolocation_client_mock_; |
- |
- const TestParams* test_params_; |
- |
- // JavaScript flags. Each element in the vector contains a set of flags as |
- // a string (e.g. "--xxx --yyy"). Each flag set is used for separate loads |
- // of each URL. |
- static std::vector<std::string> js_flags_; |
- |
- // True if we're testing the accelerated canvas 2d path. |
- static bool accelerated_2d_canvas_enabled_; |
- |
- // True if we're testing the accelerated compositing. |
- static bool accelerated_compositing_enabled_; |
- |
- // True if driven from a nested message loop. |
- bool is_modal_; |
- |
- // True if the page is loading. |
- bool is_loading_; |
- |
- bool allow_images_; |
- bool allow_plugins_; |
- bool allow_scripts_; |
- |
- // The preferences for the test shell. |
- static WebPreferences* web_prefs_; |
- |
- // Dump the stats table counters on exit. |
- bool dump_stats_table_on_exit_; |
-}; |
- |
-#endif // WEBKIT_TOOLS_TEST_SHELL_TEST_SHELL_H_ |