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

Side by Side Diff: chrome/test/automation/tab_proxy.h

Issue 223163003: Remove the remaining automation-based tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « chrome/test/automation/proxy_launcher.cc ('k') | chrome/test/automation/tab_proxy.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 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 CHROME_TEST_AUTOMATION_TAB_PROXY_H_
6 #define CHROME_TEST_AUTOMATION_TAB_PROXY_H_
7
8 #include "build/build_config.h" // NOLINT
9
10 #if defined(OS_WIN)
11 #include <wtypes.h> // NOLINT
12 #endif
13
14 #include <string>
15 #include <vector>
16
17 #include "base/compiler_specific.h"
18 #include "base/memory/ref_counted.h"
19 #include "base/observer_list.h"
20 #include "chrome/common/automation_constants.h"
21 #include "chrome/test/automation/automation_handle_tracker.h"
22 #include "content/public/browser/save_page_type.h"
23 #include "content/public/common/page_type.h"
24 #include "content/public/common/security_style.h"
25 #include "net/cert/cert_status_flags.h"
26 #include "ui/base/window_open_disposition.h"
27 #include "ui/events/keycodes/keyboard_codes.h"
28
29 class BrowserProxy;
30 class GURL;
31
32 namespace IPC {
33 class Message;
34 }
35
36 namespace base {
37 class FilePath;
38 class Value;
39 }
40
41 class TabProxy : public AutomationResourceProxy {
42 public:
43 class TabProxyDelegate {
44 public:
45 virtual bool OnMessageReceived(TabProxy* tab, const IPC::Message& msg) {
46 return false;
47 }
48 virtual void OnChannelError(TabProxy* tab) {}
49
50 protected:
51 virtual ~TabProxyDelegate() {}
52 };
53
54 TabProxy(AutomationMessageSender* sender,
55 AutomationHandleTracker* tracker,
56 int handle);
57
58 // Gets the current url of the tab.
59 bool GetCurrentURL(GURL* url) const WARN_UNUSED_RESULT;
60
61 // Gets the title of the tab.
62 bool GetTabTitle(std::wstring* title) const WARN_UNUSED_RESULT;
63
64 // Gets the tabstrip index of the tab.
65 bool GetTabIndex(int* index) const WARN_UNUSED_RESULT;
66
67 // Executes a javascript in a frame's context whose xpath is provided as the
68 // first parameter and extract the values from the resulting json string.
69 // Examples:
70 // jscript = "window.domAutomationController.send('string');"
71 // will result in value = "string"
72 // jscript = "window.domAutomationController.send(24);"
73 // will result in value = 24
74 // NOTE: If this is called from a ui test, |dom_automation_enabled_| must be
75 // set to true for these functions to work.
76 bool ExecuteAndExtractString(const std::wstring& frame_xpath,
77 const std::wstring& jscript,
78 std::wstring* value) WARN_UNUSED_RESULT;
79 bool ExecuteAndExtractBool(const std::wstring& frame_xpath,
80 const std::wstring& jscript,
81 bool* value) WARN_UNUSED_RESULT;
82 bool ExecuteAndExtractInt(const std::wstring& frame_xpath,
83 const std::wstring& jscript,
84 int* value) WARN_UNUSED_RESULT;
85
86 // Navigates to a url. This method accepts the same kinds of URL input that
87 // can be passed to Chrome on the command line. This is a synchronous call and
88 // hence blocks until the navigation completes.
89 AutomationMsg_NavigationResponseValues NavigateToURL(
90 const GURL& url) WARN_UNUSED_RESULT;
91
92 // Navigates to a url. This method accepts the same kinds of URL input that
93 // can be passed to Chrome on the command line. This is a synchronous call and
94 // hence blocks until the |number_of_navigations| navigations complete.
95 AutomationMsg_NavigationResponseValues
96 NavigateToURLBlockUntilNavigationsComplete(
97 const GURL& url, int number_of_navigations) WARN_UNUSED_RESULT;
98
99
100 // Navigates to a url. This is an asynchronous version of NavigateToURL.
101 // The function returns immediately after sending the LoadURL notification
102 // to the browser.
103 // TODO(vibhor): Add a callback if needed in future.
104 // TODO(mpcomplete): If the navigation results in an auth challenge, the
105 // TabProxy we attach won't know about it. See bug 666730.
106 bool NavigateToURLAsync(const GURL& url) WARN_UNUSED_RESULT;
107
108 // Equivalent to hitting the Back button. This is a synchronous call and
109 // hence blocks until the navigation completes.
110 AutomationMsg_NavigationResponseValues GoBack() WARN_UNUSED_RESULT;
111
112 // Equivalent to hitting the Back button. This is a synchronous call and
113 // hence blocks until the |number_of_navigations| navigations complete.
114 AutomationMsg_NavigationResponseValues GoBackBlockUntilNavigationsComplete(
115 int number_of_navigations) WARN_UNUSED_RESULT;
116
117 // Equivalent to hitting the Forward button. This is a synchronous call and
118 // hence blocks until the navigation completes.
119 AutomationMsg_NavigationResponseValues GoForward() WARN_UNUSED_RESULT;
120
121 // Equivalent to hitting the Forward button. This is a synchronous call and
122 // hence blocks until the |number_of_navigations| navigations complete.
123 AutomationMsg_NavigationResponseValues GoForwardBlockUntilNavigationsComplete(
124 int number_of_navigations) WARN_UNUSED_RESULT;
125
126 // Equivalent to hitting the Reload button. This is a synchronous call and
127 // hence blocks until the navigation completes.
128 AutomationMsg_NavigationResponseValues Reload() WARN_UNUSED_RESULT;
129
130 // Closes the tab. This is synchronous, but does NOT block until the tab has
131 // closed, rather it blocks until the browser has initiated the close. Use
132 // Close(true) if you need to block until tab completely closes.
133 //
134 // Note that this proxy is invalid after this call.
135 bool Close() WARN_UNUSED_RESULT;
136
137 // Variant of close that allows you to specify whether you want to block
138 // until the tab has completely closed (wait_until_closed == true) or block
139 // until the browser has initiated the close (wait_until_closed = false).
140 //
141 // When a tab is closed the browser does additional work via invoke later
142 // and may wait for messages from the renderer. Supplying a value of true to
143 // this method waits until all processing is done. Be careful with this,
144 // when closing the last tab it is possible for the browser to shutdown BEFORE
145 // the tab has completely closed. In other words, this may NOT be sent for
146 // the last tab.
147 bool Close(bool wait_until_closed) WARN_UNUSED_RESULT;
148
149 // Starts a search within the current tab. The parameter |search_string|
150 // specifies what string to search for, |forward| specifies whether to search
151 // in forward direction, and |match_case| specifies case sensitivity
152 // (true=case sensitive). |find_next| specifies whether this is a new search
153 // or a continuation of the old one. |ordinal| is an optional parameter that
154 // returns the ordinal of the active match (also known as "the 7" part of
155 // "7 of 9"). A return value of -1 indicates failure.
156 int FindInPage(const std::wstring& search_string, FindInPageDirection forward,
157 FindInPageCase match_case, bool find_next, int* ordinal);
158
159 bool GetCookies(const GURL& url, std::string* cookies) WARN_UNUSED_RESULT;
160 bool GetCookieByName(const GURL& url,
161 const std::string& name,
162 std::string* cookies) WARN_UNUSED_RESULT;
163 // Waits until the infobar count is |count|.
164 // Returns true on success.
165 bool WaitForInfoBarCount(size_t count) WARN_UNUSED_RESULT;
166
167 // Uses the specified encoding to override encoding of the page in the tab.
168 bool OverrideEncoding(const std::string& encoding) WARN_UNUSED_RESULT;
169
170 // These handlers issue asynchronous Reload, Stop and SaveAs notifications to
171 // the chrome instance.
172 void ReloadAsync();
173 void StopAsync();
174
175 // Notify the JavaScript engine in the render to change its parameters
176 // while performing stress testing. See
177 // |ViewHostMsg_JavaScriptStressTestControl_Commands| in render_messages.h
178 // for information on the arguments.
179 void JavaScriptStressTestControl(int cmd, int param);
180
181 // Calls delegates
182 void AddObserver(TabProxyDelegate* observer);
183 void RemoveObserver(TabProxyDelegate* observer);
184 bool OnMessageReceived(const IPC::Message& message);
185 void OnChannelError();
186 protected:
187 virtual ~TabProxy();
188
189 // Called when tracking the first object. Used for reference counting
190 // purposes.
191 void FirstObjectAdded();
192
193 // Called when no longer tracking any objects. Used for reference counting
194 // purposes.
195 void LastObjectRemoved();
196
197 // Caller takes ownership over returned value. Returns NULL on failure.
198 base::Value* ExecuteAndExtractValue(
199 const std::wstring& frame_xpath,
200 const std::wstring& jscript) WARN_UNUSED_RESULT;
201
202 private:
203 base::Lock list_lock_; // Protects the observers_list_.
204 ObserverList<TabProxyDelegate> observers_list_;
205 DISALLOW_COPY_AND_ASSIGN(TabProxy);
206 };
207
208 #endif // CHROME_TEST_AUTOMATION_TAB_PROXY_H_
OLDNEW
« no previous file with comments | « chrome/test/automation/proxy_launcher.cc ('k') | chrome/test/automation/tab_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698