Home | History | Annotate | Download | only in automation
      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