diff options
Diffstat (limited to 'webkit/tools/test_shell/test_webview_delegate.h')
-rw-r--r-- | webkit/tools/test_shell/test_webview_delegate.h | 430 |
1 files changed, 0 insertions, 430 deletions
diff --git a/webkit/tools/test_shell/test_webview_delegate.h b/webkit/tools/test_shell/test_webview_delegate.h deleted file mode 100644 index 334e2a3..0000000 --- a/webkit/tools/test_shell/test_webview_delegate.h +++ /dev/null @@ -1,430 +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. - -// TestWebViewDelegate class: -// This class implements the WebViewDelegate methods for the test shell. One -// instance is owned by each TestShell. - -#ifndef WEBKIT_TOOLS_TEST_SHELL_TEST_WEBVIEW_DELEGATE_H_ -#define WEBKIT_TOOLS_TEST_SHELL_TEST_WEBVIEW_DELEGATE_H_ - -#include <map> -#include <set> -#include <string> -#include <vector> - -#include "base/basictypes.h" -#include "base/memory/scoped_ptr.h" -#include "base/memory/weak_ptr.h" -#include "base/string16.h" -#include "build/build_config.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebFileSystem.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebFileSystemType.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsContext3D.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebRect.h" -#include "third_party/WebKit/Source/WebKit/chromium/public/WebContextMenuData.h" -#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrameClient.h" -#include "third_party/WebKit/Source/WebKit/chromium/public/WebPopupType.h" -#include "third_party/WebKit/Source/WebKit/chromium/public/WebViewClient.h" -#include "webkit/glue/webcursor.h" -#include "webkit/plugins/npapi/webplugin_page_delegate.h" -#include "webkit/tools/test_shell/mock_spellcheck.h" -#include "webkit/tools/test_shell/test_navigation_controller.h" - -#if defined(OS_MACOSX) -#include "third_party/WebKit/Source/WebKit/chromium/public/WebPopupMenuInfo.h" -#endif - -#if defined(OS_WIN) -#include <windows.h> - -#include "webkit/tools/test_shell/drop_delegate.h" -#endif - -#if defined(TOOLKIT_GTK) -#include <gdk/gdk.h> -#endif - -class GURL; -class TestShell; -class WebWidgetHost; - -namespace WebKit { -class WebDeviceOrientationClient; -class WebStorageNamespace; -struct WebWindowFeatures; -} - -class TestWebViewDelegate : public WebKit::WebViewClient, - public WebKit::WebFrameClient, - public webkit::npapi::WebPluginPageDelegate, - public base::SupportsWeakPtr<TestWebViewDelegate> { - public: - struct CapturedContextMenuEvent { - CapturedContextMenuEvent(int in_node_type, - int in_x, - int in_y) - : node_type(in_node_type), - x(in_x), - y(in_y) { - } - - int node_type; - int x; - int y; - }; - - typedef std::vector<CapturedContextMenuEvent> CapturedContextMenuEvents; - - // WebKit::WebViewClient - virtual WebKit::WebView* createView( - WebKit::WebFrame* creator, - const WebKit::WebURLRequest& request, - const WebKit::WebWindowFeatures& features, - const WebKit::WebString& frame_name, - WebKit::WebNavigationPolicy policy); - virtual WebKit::WebWidget* createPopupMenu(WebKit::WebPopupType popup_type); - virtual WebKit::WebWidget* createPopupMenu( - const WebKit::WebPopupMenuInfo& info); - virtual WebKit::WebStorageNamespace* createSessionStorageNamespace( - unsigned quota); - virtual void didAddMessageToConsole( - const WebKit::WebConsoleMessage& message, - const WebKit::WebString& source_name, unsigned source_line); - virtual void didStartLoading(); - virtual void didStopLoading(); - virtual bool shouldBeginEditing(const WebKit::WebRange& range); - virtual bool shouldEndEditing(const WebKit::WebRange& range); - virtual bool shouldInsertNode( - const WebKit::WebNode& node, const WebKit::WebRange& range, - WebKit::WebEditingAction action); - virtual bool shouldInsertText( - const WebKit::WebString& text, const WebKit::WebRange& range, - WebKit::WebEditingAction action); - virtual bool shouldChangeSelectedRange( - const WebKit::WebRange& from, const WebKit::WebRange& to, - WebKit::WebTextAffinity affinity, bool still_selecting); - virtual bool shouldDeleteRange(const WebKit::WebRange& range); - virtual bool shouldApplyStyle( - const WebKit::WebString& style, const WebKit::WebRange& range); - virtual void didBeginEditing(); - virtual void didChangeSelection(bool is_selection_empty); - virtual void didChangeContents(); - virtual void didEndEditing(); - virtual bool handleCurrentKeyboardEvent(); - virtual void spellCheck( - const WebKit::WebString& text, int& misspelledOffset, - int& misspelledLength); - virtual WebKit::WebString autoCorrectWord( - const WebKit::WebString& misspelled_word); - virtual void runModalAlertDialog( - WebKit::WebFrame* frame, const WebKit::WebString& message); - virtual bool runModalConfirmDialog( - WebKit::WebFrame* frame, const WebKit::WebString& message); - virtual bool runModalPromptDialog( - WebKit::WebFrame* frame, const WebKit::WebString& message, - const WebKit::WebString& default_value, WebKit::WebString* actual_value); - virtual bool runModalBeforeUnloadDialog( - WebKit::WebFrame* frame, const WebKit::WebString& message); - virtual void setStatusText(const WebKit::WebString& text); - virtual void startDragging( - WebKit::WebFrame* frame, const WebKit::WebDragData& data, - WebKit::WebDragOperationsMask mask, const WebKit::WebImage& image, - const WebKit::WebPoint& offset); - virtual void navigateBackForwardSoon(int offset); - virtual int historyBackListCount(); - virtual int historyForwardListCount(); - virtual WebKit::WebNotificationPresenter* notificationPresenter(); - virtual WebKit::WebGeolocationClient* geolocationClient(); - virtual WebKit::WebDeviceOrientationClient* deviceOrientationClient(); - virtual WebKit::WebSpeechInputController* speechInputController( - WebKit::WebSpeechInputListener*); - - // WebKit::WebWidgetClient - virtual void didInvalidateRect(const WebKit::WebRect& rect); - virtual void didScrollRect(int dx, int dy, - const WebKit::WebRect& clip_rect); - virtual void scheduleComposite(); - virtual void scheduleAnimation(); - virtual void didFocus(); - virtual void didBlur(); - virtual void didChangeCursor(const WebKit::WebCursorInfo& cursor); - virtual void closeWidgetSoon(); - virtual void show(WebKit::WebNavigationPolicy policy); - virtual void runModal(); - virtual WebKit::WebRect windowRect(); - virtual void setWindowRect(const WebKit::WebRect& rect); - virtual WebKit::WebRect rootWindowRect(); - virtual WebKit::WebRect windowResizerRect(); - virtual WebKit::WebScreenInfo screenInfo(); - - // WebKit::WebFrameClient - virtual WebKit::WebPlugin* createPlugin( - WebKit::WebFrame*, const WebKit::WebPluginParams&); - virtual WebKit::WebMediaPlayer* createMediaPlayer( - WebKit::WebFrame*, const WebKit::WebURL&, WebKit::WebMediaPlayerClient*); - virtual WebKit::WebApplicationCacheHost* createApplicationCacheHost( - WebKit::WebFrame*, WebKit::WebApplicationCacheHostClient*); - virtual bool allowPlugins(WebKit::WebFrame* frame, bool enabled_per_settings); - virtual bool allowImage(WebKit::WebFrame* frame, - bool enabled_per_settings, - const WebKit::WebURL& image_url); - virtual void loadURLExternally( - WebKit::WebFrame*, const WebKit::WebURLRequest&, - WebKit::WebNavigationPolicy); - virtual WebKit::WebNavigationPolicy decidePolicyForNavigation( - WebKit::WebFrame*, WebKit::WebDataSource::ExtraData*, - const WebKit::WebURLRequest&, WebKit::WebNavigationType, - WebKit::WebNavigationPolicy default_policy, bool isRedirect); - // DEPRECATED - virtual WebKit::WebNavigationPolicy decidePolicyForNavigation( - WebKit::WebFrame*, const WebKit::WebURLRequest&, - WebKit::WebNavigationType, WebKit::WebNavigationPolicy default_policy, - bool isRedirect); - virtual bool canHandleRequest( - WebKit::WebFrame*, const WebKit::WebURLRequest&); - virtual WebKit::WebURLError cannotHandleRequestError( - WebKit::WebFrame*, const WebKit::WebURLRequest& request); - virtual WebKit::WebURLError cancelledError( - WebKit::WebFrame*, const WebKit::WebURLRequest& request); - virtual void unableToImplementPolicyWithError( - WebKit::WebFrame*, const WebKit::WebURLError&); - virtual void willPerformClientRedirect( - WebKit::WebFrame*, const WebKit::WebURL& from, const WebKit::WebURL& to, - double interval, double fire_time); - virtual void didCancelClientRedirect(WebKit::WebFrame*); - virtual void didCreateDataSource( - WebKit::WebFrame*, WebKit::WebDataSource*); - virtual void didStartProvisionalLoad(WebKit::WebFrame*); - virtual void didReceiveServerRedirectForProvisionalLoad(WebKit::WebFrame*); - virtual void didFailProvisionalLoad( - WebKit::WebFrame*, const WebKit::WebURLError&); - virtual void didCommitProvisionalLoad( - WebKit::WebFrame*, bool is_new_navigation); - virtual void didReceiveTitle( - WebKit::WebFrame*, const WebKit::WebString& title, - WebKit::WebTextDirection direction); - virtual void didFinishDocumentLoad(WebKit::WebFrame*); - virtual void didHandleOnloadEvents(WebKit::WebFrame*); - virtual void didFinishLoad(WebKit::WebFrame*); - virtual void didNavigateWithinPage( - WebKit::WebFrame*, bool is_new_navigation); - virtual void didChangeLocationWithinPage( - WebKit::WebFrame*); - virtual void assignIdentifierToRequest( - WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLRequest&); - virtual void willSendRequest( - WebKit::WebFrame*, unsigned identifier, WebKit::WebURLRequest&, - const WebKit::WebURLResponse& redirectResponse); - virtual void didReceiveResponse( - WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLResponse&); - virtual void didFinishResourceLoad( - WebKit::WebFrame*, unsigned identifier); - virtual void didFailResourceLoad( - WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLError&); - virtual void didDisplayInsecureContent(WebKit::WebFrame* frame); - virtual void didRunInsecureContent( - WebKit::WebFrame* frame, - const WebKit::WebSecurityOrigin& origin, - const WebKit::WebURL& target_url); - virtual bool allowScript(WebKit::WebFrame* frame, bool enabled_per_settings); - virtual void openFileSystem( - WebKit::WebFrame* frame, - WebKit::WebFileSystemType type, - long long size, - bool create, - WebKit::WebFileSystemCallbacks* callbacks); - - // webkit::npapi::WebPluginPageDelegate - virtual webkit::npapi::WebPluginDelegate* CreatePluginDelegate( - const base::FilePath& url, - const std::string& mime_type) OVERRIDE; - virtual WebKit::WebPlugin* CreatePluginReplacement( - const base::FilePath& file_path) OVERRIDE; - virtual void CreatedPluginWindow( - gfx::PluginWindowHandle handle) OVERRIDE; - virtual void WillDestroyPluginWindow( - gfx::PluginWindowHandle handle) OVERRIDE; - virtual void DidMovePlugin( - const webkit::npapi::WebPluginGeometry& move) OVERRIDE; - virtual void DidStartLoadingForPlugin() OVERRIDE {} - virtual void DidStopLoadingForPlugin() OVERRIDE {} - virtual WebKit::WebCookieJar* GetCookieJar() OVERRIDE; - - explicit TestWebViewDelegate(TestShell* shell); - virtual ~TestWebViewDelegate(); - void Reset(); - - // Additional accessors -#if defined(OS_WIN) - IDropTarget* drop_delegate() { return drop_delegate_.get(); } -#endif - - void set_pending_extra_data(TestShellExtraData* extra_data) { - pending_extra_data_.reset(extra_data); - } - - // Methods for modifying WebPreferences - void SetUserStyleSheetEnabled(bool is_enabled); - void SetUserStyleSheetLocation(const GURL& location); - void SetAuthorAndUserStylesEnabled(bool is_enabled); - - // Sets the webview as a drop target. - void RegisterDragDrop(); - void RevokeDragDrop(); - - void ResetDragDrop(); - - void SetCustomPolicyDelegate(bool is_custom, bool is_permissive); - void WaitForPolicyDelegate(); - - void set_clear_header(const std::string& header) { - clear_headers_.insert(header); - } - const std::set<std::string>& clear_headers() { - return clear_headers_; - } - - void set_block_redirects(bool block_redirects) { - block_redirects_ = block_redirects; - } - bool block_redirects() const { - return block_redirects_; - } - - void set_request_return_null(bool request_return_null) { - request_return_null_ = request_return_null; - } - bool request_return_null() const { - return request_return_null_; - } - - void SetEditCommand(const std::string& name, const std::string& value) { - edit_command_name_ = name; - edit_command_value_ = value; - } - - void ClearEditCommand() { - edit_command_name_.clear(); - edit_command_value_.clear(); - } - - void ClearContextMenuData(); - - const WebKit::WebContextMenuData* last_context_menu_data() const { - return last_context_menu_data_.get(); - } - - MockSpellCheck* mock_spellcheck() { - return &mock_spellcheck_; - } - - private: - // Called the title of the page changes. - // Can be used to update the title of the window. - void SetPageTitle(const base::string16& title); - - // Called when the URL of the page changes. - // Extracts the URL and forwards on to SetAddressBarURL(). - void UpdateAddressBar(WebKit::WebView* webView); - - // Called when the URL of the page changes. - // Should be used to update the text of the URL bar. - void SetAddressBarURL(const GURL& url); - - // Show a JavaScript alert as a popup message. - // The caller should test whether we're in layout test mode and only - // call this function when we really want a message to pop up. - void ShowJavaScriptAlert(const base::string16& message); - - // Tests that require moving or resizing the main window (via resizeTo() or - // moveTo()) pass in Chrome even though Chrome disregards move requests for - // non-popup windows (see TabContents::RequestMove()). These functions allow - // the test shell to mimic its behavior. If setWindowRect() is called for - // the main window, the passed in WebRect is saved as fake_rect_ and we return - // it instead of the real window dimensions whenever rootWindowRect() is - // called. - WebKit::WebRect fake_window_rect(); - void set_fake_window_rect(const WebKit::WebRect&); - - WebWidgetHost* GetWidgetHost(); - - void UpdateForCommittedLoad(WebKit::WebFrame* frame, bool is_new_navigation); - void UpdateURL(WebKit::WebFrame* frame); - void UpdateSessionHistory(WebKit::WebFrame* frame); - void UpdateSelectionClipboard(bool is_empty_selection); - - // Get a string suitable for dumping a frame to the console. - base::string16 GetFrameDescription(WebKit::WebFrame* webframe); - - // Causes navigation actions just printout the intended navigation instead - // of taking you to the page. This is used for cases like mailto, where you - // don't actually want to open the mail program. - bool policy_delegate_enabled_; - - // Toggles the behavior of the policy delegate. If true, then navigations - // will be allowed. Otherwise, they will be ignored (dropped). - bool policy_delegate_is_permissive_; - - // If true, the policy delegate will signal layout test completion. - bool policy_delegate_should_notify_done_; - - // Non-owning pointer. The delegate is owned by the host. - TestShell* shell_; - - // For tracking session history. See RenderView. - int page_id_; - int last_page_id_updated_; - - scoped_ptr<TestShellExtraData> pending_extra_data_; - - // Maps resource identifiers to a descriptive string. - typedef std::map<uint32, std::string> ResourceMap; - ResourceMap resource_identifier_map_; - std::string GetResourceDescription(uint32 identifier); - - scoped_ptr<WebKit::WebContextMenuData> last_context_menu_data_; - - WebCursor current_cursor_; - - WebKit::WebRect fake_rect_; - bool using_fake_rect_; - -#if defined(OS_WIN) - // Classes needed by drag and drop. - scoped_refptr<TestDropDelegate> drop_delegate_; -#endif - -#if defined(TOOLKIT_GTK) - // The type of cursor the window is currently using. - // Used for judging whether a new SetCursor call is actually changing the - // cursor. - GdkCursorType cursor_type_; -#endif - -#if defined(OS_MACOSX) - scoped_ptr<WebKit::WebPopupMenuInfo> popup_menu_info_; - WebKit::WebRect popup_bounds_; -#endif - - // Set of headers to clear in willSendRequest. - std::set<std::string> clear_headers_; - - // true if we should block any redirects - bool block_redirects_; - - // true if we should block (set an empty request for) any requests - bool request_return_null_; - - // Edit command associated to the current keyboard event. - std::string edit_command_name_; - std::string edit_command_value_; - - // The mock spellchecker used in TestWebViewDelegate::spellCheck(). - MockSpellCheck mock_spellcheck_; - - DISALLOW_COPY_AND_ASSIGN(TestWebViewDelegate); -}; - -#endif // WEBKIT_TOOLS_TEST_SHELL_TEST_WEBVIEW_DELEGATE_H_ |