Home | History | Annotate | Download | only in chromedriver
      1 // Copyright (c) 2013 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_CHROMEDRIVER_WINDOW_COMMANDS_H_
      6 #define CHROME_TEST_CHROMEDRIVER_WINDOW_COMMANDS_H_
      7 
      8 #include <string>
      9 
     10 #include "base/callback_forward.h"
     11 #include "base/memory/scoped_ptr.h"
     12 
     13 namespace base {
     14 class DictionaryValue;
     15 class Value;
     16 }
     17 
     18 struct Session;
     19 class Status;
     20 class WebView;
     21 
     22 typedef base::Callback<Status(
     23     Session* session,
     24     WebView* web_view,
     25     const base::DictionaryValue&,
     26     scoped_ptr<base::Value>*)> WindowCommand;
     27 
     28 // Execute a Window Command on the target window.
     29 Status ExecuteWindowCommand(
     30     const WindowCommand& command,
     31     Session* session,
     32     const base::DictionaryValue& params,
     33     scoped_ptr<base::Value>* value);
     34 
     35 // Loads a URL.
     36 Status ExecuteGet(
     37     Session* session,
     38     WebView* web_view,
     39     const base::DictionaryValue& params,
     40     scoped_ptr<base::Value>* value);
     41 
     42 // Evaluates a given synchronous script with arguments.
     43 Status ExecuteExecuteScript(
     44     Session* session,
     45     WebView* web_view,
     46     const base::DictionaryValue& params,
     47     scoped_ptr<base::Value>* value);
     48 
     49 // Evaluates a given asynchronous script with arguments.
     50 Status ExecuteExecuteAsyncScript(
     51     Session* session,
     52     WebView* web_view,
     53     const base::DictionaryValue& params,
     54     scoped_ptr<base::Value>* value);
     55 
     56 // Changes the targeted frame for the given session.
     57 Status ExecuteSwitchToFrame(
     58     Session* session,
     59     WebView* web_view,
     60     const base::DictionaryValue& params,
     61     scoped_ptr<base::Value>* value);
     62 
     63 // Change focus to the parent frame.
     64 Status ExecuteSwitchToParentFrame(
     65     Session* session,
     66     WebView* web_view,
     67     const base::DictionaryValue& params,
     68     scoped_ptr<base::Value>* value);
     69 
     70 // Get the current page title.
     71 Status ExecuteGetTitle(
     72     Session* session,
     73     WebView* web_view,
     74     const base::DictionaryValue& params,
     75     scoped_ptr<base::Value>* value);
     76 
     77 // Get the current page source.
     78 Status ExecuteGetPageSource(
     79     Session* session,
     80     WebView* web_view,
     81     const base::DictionaryValue& params,
     82     scoped_ptr<base::Value>* value);
     83 
     84 // Search for an element on the page, starting from the document root.
     85 Status ExecuteFindElement(
     86     int interval_ms,
     87     Session* session,
     88     WebView* web_view,
     89     const base::DictionaryValue& params,
     90     scoped_ptr<base::Value>* value);
     91 
     92 // Search for multiple elements on the page, starting from the document root.
     93 Status ExecuteFindElements(
     94     int interval_ms,
     95     Session* session,
     96     WebView* web_view,
     97     const base::DictionaryValue& params,
     98     scoped_ptr<base::Value>* value);
     99 
    100 // Get the current page url.
    101 Status ExecuteGetCurrentUrl(
    102     Session* session,
    103     WebView* web_view,
    104     const base::DictionaryValue& params,
    105     scoped_ptr<base::Value>* value);
    106 
    107 // Navigate backward in the browser history.
    108 Status ExecuteGoBack(
    109     Session* session,
    110     WebView* web_view,
    111     const base::DictionaryValue& params,
    112     scoped_ptr<base::Value>* value);
    113 
    114 // Navigate forward in the browser history.
    115 Status ExecuteGoForward(
    116     Session* session,
    117     WebView* web_view,
    118     const base::DictionaryValue& params,
    119     scoped_ptr<base::Value>* value);
    120 
    121 // Refresh the current page.
    122 Status ExecuteRefresh(
    123     Session* session,
    124     WebView* web_view,
    125     const base::DictionaryValue& params,
    126     scoped_ptr<base::Value>* value);
    127 
    128 // Move the mouse by an offset of the element if specified .
    129 Status ExecuteMouseMoveTo(
    130     Session* session,
    131     WebView* web_view,
    132     const base::DictionaryValue& params,
    133     scoped_ptr<base::Value>* value);
    134 
    135 // Click a mouse button at the coordinates set by the last moveto.
    136 Status ExecuteMouseClick(
    137     Session* session,
    138     WebView* web_view,
    139     const base::DictionaryValue& params,
    140     scoped_ptr<base::Value>* value);
    141 
    142 // Click and hold a mouse button at the coordinates set by the last moveto.
    143 Status ExecuteMouseButtonDown(
    144     Session* session,
    145     WebView* web_view,
    146     const base::DictionaryValue& params,
    147     scoped_ptr<base::Value>* value);
    148 
    149 // Releases the mouse button previously held (where the mouse is currently at).
    150 Status ExecuteMouseButtonUp(
    151     Session* session,
    152     WebView* web_view,
    153     const base::DictionaryValue& params,
    154     scoped_ptr<base::Value>* value);
    155 
    156 // Double-clicks at the current mouse coordinates (set by last moveto).
    157 Status ExecuteMouseDoubleClick(
    158     Session* session,
    159     WebView* web_view,
    160     const base::DictionaryValue& params,
    161     scoped_ptr<base::Value>* value);
    162 
    163 // Touch press at a given coordinate.
    164 Status ExecuteTouchDown(
    165     Session* session,
    166     WebView* web_view,
    167     const base::DictionaryValue& params,
    168     scoped_ptr<base::Value>* value);
    169 
    170 // Touch release at a given coordinate.
    171 Status ExecuteTouchUp(
    172     Session* session,
    173     WebView* web_view,
    174     const base::DictionaryValue& params,
    175     scoped_ptr<base::Value>* value);
    176 
    177 // Touch move at a given coordinate.
    178 Status ExecuteTouchMove(
    179     Session* session,
    180     WebView* web_view,
    181     const base::DictionaryValue& params,
    182     scoped_ptr<base::Value>* value);
    183 
    184 Status ExecuteGetActiveElement(
    185     Session* session,
    186     WebView* web_view,
    187     const base::DictionaryValue& params,
    188     scoped_ptr<base::Value>* value);
    189 
    190 // Send a sequence of key strokes to the active element.
    191 Status ExecuteSendKeysToActiveElement(
    192     Session* session,
    193     WebView* web_view,
    194     const base::DictionaryValue& params,
    195     scoped_ptr<base::Value>* value);
    196 
    197 // Gets the status of the application cache (window.applicationCache.status).
    198 Status ExecuteGetAppCacheStatus(
    199     Session* session,
    200     WebView* web_view,
    201     const base::DictionaryValue& params,
    202     scoped_ptr<base::Value>* value);
    203 
    204 Status ExecuteIsBrowserOnline(
    205     Session* session,
    206     WebView* web_view,
    207     const base::DictionaryValue& params,
    208     scoped_ptr<base::Value>* value);
    209 
    210 Status ExecuteGetStorageItem(
    211     const char* storage,
    212     Session* session,
    213     WebView* web_view,
    214     const base::DictionaryValue& params,
    215     scoped_ptr<base::Value>* value);
    216 
    217 Status ExecuteGetStorageKeys(
    218     const char* storage,
    219     Session* session,
    220     WebView* web_view,
    221     const base::DictionaryValue& params,
    222     scoped_ptr<base::Value>* value);
    223 
    224 Status ExecuteSetStorageItem(
    225     const char* storage,
    226     Session* session,
    227     WebView* web_view,
    228     const base::DictionaryValue& params,
    229     scoped_ptr<base::Value>* value);
    230 
    231 Status ExecuteRemoveStorageItem(
    232     const char* storage,
    233     Session* session,
    234     WebView* web_view,
    235     const base::DictionaryValue& params,
    236     scoped_ptr<base::Value>* value);
    237 
    238 Status ExecuteClearStorage(
    239     const char* storage,
    240     Session* session,
    241     WebView* web_view,
    242     const base::DictionaryValue& params,
    243     scoped_ptr<base::Value>* value);
    244 
    245 Status ExecuteGetStorageSize(
    246     const char* storage,
    247     Session* session,
    248     WebView* web_view,
    249     const base::DictionaryValue& params,
    250     scoped_ptr<base::Value>* value);
    251 
    252 Status ExecuteScreenshot(
    253     Session* session,
    254     WebView* web_view,
    255     const base::DictionaryValue& params,
    256     scoped_ptr<base::Value>* value);
    257 
    258 // Retrieve all cookies visible to the current page.
    259 Status ExecuteGetCookies(
    260     Session* session,
    261     WebView* web_view,
    262     const base::DictionaryValue& params,
    263     scoped_ptr<base::Value>* value);
    264 
    265 // Set a cookie. If the cookie path is not specified, it should be set to "/".
    266 // If the domain is omitted, it should default to the current page's domain.
    267 Status ExecuteAddCookie(
    268     Session* session,
    269     WebView* web_view,
    270     const base::DictionaryValue& params,
    271     scoped_ptr<base::Value>* value);
    272 
    273 // Delete the cookie with the given name if it exists in the current page.
    274 Status ExecuteDeleteCookie(
    275     Session* session,
    276     WebView* web_view,
    277     const base::DictionaryValue& params,
    278     scoped_ptr<base::Value>* value);
    279 
    280 // Delete all cookies visible to the current page.
    281 Status ExecuteDeleteAllCookies(
    282     Session* session,
    283     WebView* web_view,
    284     const base::DictionaryValue& params,
    285     scoped_ptr<base::Value>* value);
    286 
    287 Status ExecuteSetLocation(
    288     Session* session,
    289     WebView* web_view,
    290     const base::DictionaryValue& params,
    291     scoped_ptr<base::Value>* value);
    292 
    293 Status ExecuteTakeHeapSnapshot(
    294     Session* session,
    295     WebView* web_view,
    296     const base::DictionaryValue& params,
    297     scoped_ptr<base::Value>* value);
    298 
    299 #endif  // CHROME_TEST_CHROMEDRIVER_WINDOW_COMMANDS_H_
    300