• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_BROWSER_AUTOMATION_AUTOMATION_UTIL_H_
6 #define CHROME_BROWSER_AUTOMATION_AUTOMATION_UTIL_H_
7 
8 #include <string>
9 
10 #include "base/basictypes.h"
11 
12 class AutomationProvider;
13 class Browser;
14 class GURL;
15 class Profile;
16 
17 namespace content {
18 class RenderViewHost;
19 class WebContents;
20 }
21 
22 namespace base {
23 class DictionaryValue;
24 }
25 
26 namespace extensions {
27 class Extension;
28 }
29 
30 namespace IPC {
31 class Message;
32 }
33 
34 // This file contains automation utility functions.
35 
36 namespace automation_util {
37 
38 // Returns the browser at the given index of the |BrowserList| or NULL if the
39 // index is out of range.
40 Browser* GetBrowserAt(int index);
41 
42 // Returns the tab at |tab_index| within the browser at |browser_index| in the
43 // |BrowserList|. If any of these indices are invalid, NULL will be returned.
44 content::WebContents* GetWebContentsAt(int browser_index, int tab_index);
45 
46 #if defined(OS_CHROMEOS)
47 // Returns the appropriate profile depending on signed in state of user.
48 Profile* GetCurrentProfileOnChromeOS(std::string* error_message);
49 #endif
50 
51 // Returns the browser that contains the given tab, or NULL if none exists.
52 Browser* GetBrowserForTab(content::WebContents* tab);
53 
54 // Gets the size and value of the cookie string for |url| in the given tab.
55 // Can be called from any thread.
56 void GetCookies(const GURL& url,
57                 content::WebContents* contents,
58                 int* value_size,
59                 std::string* value);
60 
61 // Sets a cookie for |url| in the given tab.  Can be called from any thread.
62 void SetCookie(const GURL& url,
63                const std::string& value,
64                content::WebContents* contents,
65                int* response_value);
66 
67 // Deletes a cookie for |url| in the given tab.  Can be called from any thread.
68 void DeleteCookie(const GURL& url,
69                   const std::string& cookie_name,
70                   content::WebContents* contents,
71                   bool* success);
72 
73 // Gets the cookies for the given URL. Uses the JSON interface.
74 // See |TestingAutomationProvider| for example input.
75 void GetCookiesJSON(AutomationProvider* provider,
76                     base::DictionaryValue* args,
77                     IPC::Message* reply_message);
78 
79 // Deletes the cookie with the given name for the URL. Uses the JSON interface.
80 // See |TestingAutomationProvider| for example input.
81 void DeleteCookieJSON(AutomationProvider* provider,
82                       base::DictionaryValue* args,
83                       IPC::Message* reply_message);
84 
85 // Sets a cookie for the given URL. Uses the JSON interface.
86 // See |TestingAutomationProvider| for example input.
87 void SetCookieJSON(AutomationProvider* provider,
88                    base::DictionaryValue* args,
89                    IPC::Message* reply_message);
90 
91 // Sends a JSON error reply if an app modal dialog is active. Returns whether
92 // an error reply was sent.
93 bool SendErrorIfModalDialogActive(AutomationProvider* provider,
94                                   IPC::Message* message);
95 
96 }  // namespace automation_util
97 
98 #endif  // CHROME_BROWSER_AUTOMATION_AUTOMATION_UTIL_H_
99