Home | History | Annotate | Download | only in automation
      1 // Copyright (c) 2011 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 #pragma once
      8 
      9 #include <string>
     10 
     11 #include "base/basictypes.h"
     12 
     13 class AutomationProvider;
     14 class Browser;
     15 class DictionaryValue;
     16 class GURL;
     17 class TabContents;
     18 
     19 namespace IPC {
     20 class Message;
     21 }
     22 
     23 // This file contains automation utility functions.
     24 
     25 namespace automation_util {
     26 
     27 // Returns the browser at the given index of the |BrowserList| or NULL if the
     28 // index is out of range.
     29 Browser* GetBrowserAt(int index);
     30 
     31 // Returns the tab at |tab_index| within the browser at |browser_index| in the
     32 // |BrowserList|. If any of these indices are invalid, NULL will be returned.
     33 TabContents* GetTabContentsAt(int browser_index, int tab_index);
     34 
     35 // Gets the size and value of the cookie string for |url| in the given tab.
     36 // Can be called from any thread.
     37 void GetCookies(const GURL& url,
     38                 TabContents* contents,
     39                 int* value_size,
     40                 std::string* value);
     41 
     42 // Sets a cookie for |url| in the given tab.  Can be called from any thread.
     43 void SetCookie(const GURL& url,
     44                const std::string& value,
     45                TabContents* contents,
     46                int* response_value);
     47 
     48 // Deletes a cookie for |url| in the given tab.  Can be called from any thread.
     49 void DeleteCookie(const GURL& url,
     50                   const std::string& cookie_name,
     51                   TabContents* contents,
     52                   bool* success);
     53 
     54 // Gets the cookies for the given URL. Uses the JSON interface.
     55 // See |TestingAutomationProvider| for example input.
     56 void GetCookiesJSON(AutomationProvider* provider,
     57                     DictionaryValue* args,
     58                     IPC::Message* reply_message);
     59 
     60 // Deletes the cookie with the given name for the URL. Uses the JSON interface.
     61 // See |TestingAutomationProvider| for example input.
     62 void DeleteCookieJSON(AutomationProvider* provider,
     63                       DictionaryValue* args,
     64                       IPC::Message* reply_message);
     65 
     66 // Sets a cookie for the given URL. Uses the JSON interface.
     67 // See |TestingAutomationProvider| for example input.
     68 void SetCookieJSON(AutomationProvider* provider,
     69                    DictionaryValue* args,
     70                    IPC::Message* reply_message);
     71 
     72 }  // namespace automation_util
     73 
     74 #endif  // CHROME_BROWSER_AUTOMATION_AUTOMATION_UTIL_H_
     75