| Index: chrome/test/webdriver/session.cc
 | 
| diff --git a/chrome/test/webdriver/session.cc b/chrome/test/webdriver/session.cc
 | 
| index ebb7fae51ab67c7e07f8124585ccd6f4ba31935d..9dd93e823532fed427b862227ef23fa57c75ea48 100644
 | 
| --- a/chrome/test/webdriver/session.cc
 | 
| +++ b/chrome/test/webdriver/session.cc
 | 
| @@ -314,11 +314,22 @@ bool Session::MouseDrag(const gfx::Point& start,
 | 
|    return success;
 | 
|  }
 | 
|  
 | 
| -bool Session::GetCookies(const GURL& url, std::string* cookies) {
 | 
| +bool Session::GetCookies(const std::string& url, ListValue** cookies) {
 | 
|    bool success = false;
 | 
|    RunSessionTask(NewRunnableMethod(
 | 
|        automation_.get(),
 | 
|        &Automation::GetCookies,
 | 
| +      url,
 | 
| +      cookies,
 | 
| +      &success));
 | 
| +  return success;
 | 
| +}
 | 
| +
 | 
| +bool Session::GetCookiesDeprecated(const GURL& url, std::string* cookies) {
 | 
| +  bool success = false;
 | 
| +  RunSessionTask(NewRunnableMethod(
 | 
| +      automation_.get(),
 | 
| +      &Automation::GetCookiesDeprecated,
 | 
|        current_target_.window_id,
 | 
|        url,
 | 
|        cookies,
 | 
| @@ -326,11 +337,11 @@ bool Session::GetCookies(const GURL& url, std::string* cookies) {
 | 
|    return success;
 | 
|  }
 | 
|  
 | 
| -bool Session::GetCookieByName(const GURL& url,
 | 
| -                              const std::string& cookie_name,
 | 
| -                              std::string* cookie) {
 | 
| +bool Session::GetCookieByNameDeprecated(const GURL& url,
 | 
| +                                        const std::string& cookie_name,
 | 
| +                                        std::string* cookie) {
 | 
|    std::string cookies;
 | 
| -  if (!GetCookies(url, &cookies))
 | 
| +  if (!GetCookiesDeprecated(url, &cookies))
 | 
|      return false;
 | 
|  
 | 
|    std::string namestr = cookie_name + "=";
 | 
| @@ -345,11 +356,24 @@ bool Session::GetCookieByName(const GURL& url,
 | 
|    return true;
 | 
|  }
 | 
|  
 | 
| -bool Session::DeleteCookie(const GURL& url, const std::string& cookie_name) {
 | 
| +bool Session::DeleteCookie(const std::string& url,
 | 
| +                           const std::string& cookie_name) {
 | 
|    bool success = false;
 | 
|    RunSessionTask(NewRunnableMethod(
 | 
|        automation_.get(),
 | 
|        &Automation::DeleteCookie,
 | 
| +      url,
 | 
| +      cookie_name,
 | 
| +      &success));
 | 
| +  return success;
 | 
| +}
 | 
| +
 | 
| +bool Session::DeleteCookieDeprecated(const GURL& url,
 | 
| +                                     const std::string& cookie_name) {
 | 
| +  bool success = false;
 | 
| +  RunSessionTask(NewRunnableMethod(
 | 
| +      automation_.get(),
 | 
| +      &Automation::DeleteCookieDeprecated,
 | 
|        current_target_.window_id,
 | 
|        url,
 | 
|        cookie_name,
 | 
| @@ -357,11 +381,22 @@ bool Session::DeleteCookie(const GURL& url, const std::string& cookie_name) {
 | 
|    return success;
 | 
|  }
 | 
|  
 | 
| -bool Session::SetCookie(const GURL& url, const std::string& cookie) {
 | 
| +bool Session::SetCookie(const std::string& url, DictionaryValue* cookie_dict) {
 | 
|    bool success = false;
 | 
|    RunSessionTask(NewRunnableMethod(
 | 
|        automation_.get(),
 | 
|        &Automation::SetCookie,
 | 
| +      url,
 | 
| +      cookie_dict,
 | 
| +      &success));
 | 
| +  return success;
 | 
| +}
 | 
| +
 | 
| +bool Session::SetCookieDeprecated(const GURL& url, const std::string& cookie) {
 | 
| +  bool success = false;
 | 
| +  RunSessionTask(NewRunnableMethod(
 | 
| +      automation_.get(),
 | 
| +      &Automation::SetCookieDeprecated,
 | 
|        current_target_.window_id,
 | 
|        url,
 | 
|        cookie,
 | 
| @@ -495,15 +530,37 @@ bool Session::CloseWindow() {
 | 
|    return success;
 | 
|  }
 | 
|  
 | 
| -std::string Session::GetVersion() {
 | 
| +std::string Session::GetBrowserVersion() {
 | 
|    std::string version;
 | 
|    RunSessionTask(NewRunnableMethod(
 | 
|        automation_.get(),
 | 
| -      &Automation::GetVersion,
 | 
| +      &Automation::GetBrowserVersion,
 | 
|        &version));
 | 
|    return version;
 | 
|  }
 | 
|  
 | 
| +bool Session::CompareBrowserVersion(int client_build_no,
 | 
| +                                    int client_patch_no,
 | 
| +                                    bool* is_newer_or_equal) {
 | 
| +  std::string version = GetBrowserVersion();
 | 
| +  std::vector<std::string> split_version;
 | 
| +  base::SplitString(version, '.', &split_version);
 | 
| +  if (split_version.size() != 4)
 | 
| +    return false;
 | 
| +  int build_no, patch_no;
 | 
| +  if (!base::StringToInt(split_version[2], &build_no) ||
 | 
| +      !base::StringToInt(split_version[3], &patch_no)) {
 | 
| +    return false;
 | 
| +  }
 | 
| +  if (build_no < client_build_no)
 | 
| +    *is_newer_or_equal = false;
 | 
| +  else if (build_no > client_build_no)
 | 
| +    *is_newer_or_equal = true;
 | 
| +  else
 | 
| +    *is_newer_or_equal = patch_no >= client_patch_no;
 | 
| +  return true;
 | 
| +}
 | 
| +
 | 
|  ErrorCode Session::FindElement(const FrameId& frame_id,
 | 
|                                 const WebElementId& root_element,
 | 
|                                 const std::string& locator,
 | 
| 
 |