| OLD | NEW | 
|---|
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "chrome/test/automation/browser_proxy.h" | 5 #include "chrome/test/automation/browser_proxy.h" | 
| 6 | 6 | 
| 7 #include <algorithm> | 7 #include <algorithm> | 
| 8 | 8 | 
| 9 #include "base/json/json_reader.h" | 9 #include "base/json/json_reader.h" | 
| 10 #include "base/logging.h" | 10 #include "base/logging.h" | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 22 using base::TimeTicks; | 22 using base::TimeTicks; | 
| 23 | 23 | 
| 24 | 24 | 
| 25 bool BrowserProxy::ActivateTab(int tab_index) { | 25 bool BrowserProxy::ActivateTab(int tab_index) { | 
| 26   if (!is_valid()) | 26   if (!is_valid()) | 
| 27     return false; | 27     return false; | 
| 28 | 28 | 
| 29   int activate_tab_response = -1; | 29   int activate_tab_response = -1; | 
| 30 | 30 | 
| 31   if (!sender_->Send(new AutomationMsg_ActivateTab( | 31   if (!sender_->Send(new AutomationMsg_ActivateTab( | 
| 32                          0, handle_, tab_index, &activate_tab_response))) { | 32                          handle_, tab_index, &activate_tab_response))) { | 
| 33     return false; | 33     return false; | 
| 34   } | 34   } | 
| 35 | 35 | 
| 36   if (activate_tab_response >= 0) | 36   if (activate_tab_response >= 0) | 
| 37     return true; | 37     return true; | 
| 38 | 38 | 
| 39   return false; | 39   return false; | 
| 40 } | 40 } | 
| 41 | 41 | 
| 42 bool BrowserProxy::BringToFront() { | 42 bool BrowserProxy::BringToFront() { | 
| 43   if (!is_valid()) | 43   if (!is_valid()) | 
| 44     return false; | 44     return false; | 
| 45 | 45 | 
| 46   bool succeeded = false; | 46   bool succeeded = false; | 
| 47 | 47 | 
| 48   if (!sender_->Send(new AutomationMsg_BringBrowserToFront( | 48   if (!sender_->Send(new AutomationMsg_BringBrowserToFront( | 
| 49                          0, handle_, &succeeded))) { | 49                          handle_, &succeeded))) { | 
| 50     return false; | 50     return false; | 
| 51   } | 51   } | 
| 52 | 52 | 
| 53   return succeeded; | 53   return succeeded; | 
| 54 } | 54 } | 
| 55 | 55 | 
| 56 bool BrowserProxy::IsMenuCommandEnabled(int id, bool* enabled) { | 56 bool BrowserProxy::IsMenuCommandEnabled(int id, bool* enabled) { | 
| 57   if (!is_valid()) | 57   if (!is_valid()) | 
| 58     return false; | 58     return false; | 
| 59 | 59 | 
| 60   return sender_->Send(new AutomationMsg_IsMenuCommandEnabled(0, handle_, id, | 60   return sender_->Send(new AutomationMsg_IsMenuCommandEnabled(handle_, id, | 
| 61                                                               enabled)); | 61                                                               enabled)); | 
| 62 } | 62 } | 
| 63 | 63 | 
| 64 bool BrowserProxy::AppendTab(const GURL& tab_url) { | 64 bool BrowserProxy::AppendTab(const GURL& tab_url) { | 
| 65   if (!is_valid()) | 65   if (!is_valid()) | 
| 66     return false; | 66     return false; | 
| 67 | 67 | 
| 68   int append_tab_response = -1; | 68   int append_tab_response = -1; | 
| 69 | 69 | 
| 70   sender_->Send(new AutomationMsg_AppendTab(0, handle_, tab_url, | 70   sender_->Send(new AutomationMsg_AppendTab(handle_, tab_url, | 
| 71                                             &append_tab_response)); | 71                                             &append_tab_response)); | 
| 72   return append_tab_response >= 0; | 72   return append_tab_response >= 0; | 
| 73 } | 73 } | 
| 74 | 74 | 
| 75 bool BrowserProxy::GetActiveTabIndex(int* active_tab_index) const { | 75 bool BrowserProxy::GetActiveTabIndex(int* active_tab_index) const { | 
| 76   if (!is_valid()) | 76   if (!is_valid()) | 
| 77     return false; | 77     return false; | 
| 78 | 78 | 
| 79   if (!active_tab_index) { | 79   if (!active_tab_index) { | 
| 80     NOTREACHED(); | 80     NOTREACHED(); | 
| 81     return false; | 81     return false; | 
| 82   } | 82   } | 
| 83 | 83 | 
| 84   int active_tab_index_response = -1; | 84   int active_tab_index_response = -1; | 
| 85 | 85 | 
| 86   if (!sender_->Send(new AutomationMsg_ActiveTabIndex( | 86   if (!sender_->Send(new AutomationMsg_ActiveTabIndex( | 
| 87                          0, handle_, &active_tab_index_response))) { | 87                          handle_, &active_tab_index_response))) { | 
| 88     return false; | 88     return false; | 
| 89   } | 89   } | 
| 90 | 90 | 
| 91   if (active_tab_index_response >= 0) { | 91   if (active_tab_index_response >= 0) { | 
| 92     *active_tab_index = active_tab_index_response; | 92     *active_tab_index = active_tab_index_response; | 
| 93     return true; | 93     return true; | 
| 94   } | 94   } | 
| 95 | 95 | 
| 96   return false; | 96   return false; | 
| 97 } | 97 } | 
| 98 | 98 | 
| 99 scoped_refptr<TabProxy> BrowserProxy::GetTab(int tab_index) const { | 99 scoped_refptr<TabProxy> BrowserProxy::GetTab(int tab_index) const { | 
| 100   if (!is_valid()) | 100   if (!is_valid()) | 
| 101     return NULL; | 101     return NULL; | 
| 102 | 102 | 
| 103   int tab_handle = 0; | 103   int tab_handle = 0; | 
| 104 | 104 | 
| 105   sender_->Send(new AutomationMsg_Tab(0, handle_, tab_index, &tab_handle)); | 105   sender_->Send(new AutomationMsg_Tab(handle_, tab_index, &tab_handle)); | 
| 106   if (!tab_handle) | 106   if (!tab_handle) | 
| 107     return NULL; | 107     return NULL; | 
| 108 | 108 | 
| 109   TabProxy* tab = static_cast<TabProxy*>(tracker_->GetResource(tab_handle)); | 109   TabProxy* tab = static_cast<TabProxy*>(tracker_->GetResource(tab_handle)); | 
| 110   if (!tab) { | 110   if (!tab) { | 
| 111     tab = new TabProxy(sender_, tracker_, tab_handle); | 111     tab = new TabProxy(sender_, tracker_, tab_handle); | 
| 112     tab->AddRef(); | 112     tab->AddRef(); | 
| 113   } | 113   } | 
| 114 | 114 | 
| 115   // Since there is no scoped_refptr::attach. | 115   // Since there is no scoped_refptr::attach. | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
| 130     return false; | 130     return false; | 
| 131 | 131 | 
| 132   if (!num_tabs) { | 132   if (!num_tabs) { | 
| 133     NOTREACHED(); | 133     NOTREACHED(); | 
| 134     return false; | 134     return false; | 
| 135   } | 135   } | 
| 136 | 136 | 
| 137   int tab_count_response = -1; | 137   int tab_count_response = -1; | 
| 138 | 138 | 
| 139   if (!sender_->Send(new AutomationMsg_TabCount( | 139   if (!sender_->Send(new AutomationMsg_TabCount( | 
| 140                          0, handle_, &tab_count_response))) { | 140                          handle_, &tab_count_response))) { | 
| 141     return false; | 141     return false; | 
| 142   } | 142   } | 
| 143 | 143 | 
| 144   if (tab_count_response >= 0) { | 144   if (tab_count_response >= 0) { | 
| 145     *num_tabs = tab_count_response; | 145     *num_tabs = tab_count_response; | 
| 146     return true; | 146     return true; | 
| 147   } | 147   } | 
| 148 | 148 | 
| 149   return false; | 149   return false; | 
| 150 } | 150 } | 
| 151 | 151 | 
| 152 bool BrowserProxy::GetType(Browser::Type* type) const { | 152 bool BrowserProxy::GetType(Browser::Type* type) const { | 
| 153   if (!is_valid()) | 153   if (!is_valid()) | 
| 154     return false; | 154     return false; | 
| 155 | 155 | 
| 156   if (!type) { | 156   if (!type) { | 
| 157     NOTREACHED(); | 157     NOTREACHED(); | 
| 158     return false; | 158     return false; | 
| 159   } | 159   } | 
| 160 | 160 | 
| 161   int type_as_int; | 161   int type_as_int; | 
| 162   if (!sender_->Send(new AutomationMsg_Type(0, handle_, &type_as_int))) | 162   if (!sender_->Send(new AutomationMsg_Type(handle_, &type_as_int))) | 
| 163     return false; | 163     return false; | 
| 164 | 164 | 
| 165   *type = static_cast<Browser::Type>(type_as_int); | 165   *type = static_cast<Browser::Type>(type_as_int); | 
| 166   return true; | 166   return true; | 
| 167 } | 167 } | 
| 168 | 168 | 
| 169 bool BrowserProxy::ApplyAccelerator(int id) { | 169 bool BrowserProxy::ApplyAccelerator(int id) { | 
| 170   return RunCommandAsync(id); | 170   return RunCommandAsync(id); | 
| 171 } | 171 } | 
| 172 | 172 | 
| 173 bool BrowserProxy::SimulateDrag(const gfx::Point& start, | 173 bool BrowserProxy::SimulateDrag(const gfx::Point& start, | 
| 174                                 const gfx::Point& end, | 174                                 const gfx::Point& end, | 
| 175                                 int flags, | 175                                 int flags, | 
| 176                                 bool press_escape_en_route) { | 176                                 bool press_escape_en_route) { | 
| 177   if (!is_valid()) | 177   if (!is_valid()) | 
| 178     return false; | 178     return false; | 
| 179 | 179 | 
| 180   std::vector<gfx::Point> drag_path; | 180   std::vector<gfx::Point> drag_path; | 
| 181   drag_path.push_back(start); | 181   drag_path.push_back(start); | 
| 182   drag_path.push_back(end); | 182   drag_path.push_back(end); | 
| 183 | 183 | 
| 184   bool result = false; | 184   bool result = false; | 
| 185 | 185 | 
| 186   if (!sender_->Send(new AutomationMsg_WindowDrag( | 186   if (!sender_->Send(new AutomationMsg_WindowDrag( | 
| 187           0, handle_, drag_path, flags, press_escape_en_route, &result))) { | 187           handle_, drag_path, flags, press_escape_en_route, &result))) { | 
| 188     return false; | 188     return false; | 
| 189   } | 189   } | 
| 190 | 190 | 
| 191   return result; | 191   return result; | 
| 192 } | 192 } | 
| 193 | 193 | 
| 194 bool BrowserProxy::WaitForTabCountToBecome(int count) { | 194 bool BrowserProxy::WaitForTabCountToBecome(int count) { | 
| 195   bool success = false; | 195   bool success = false; | 
| 196   if (!sender_->Send(new AutomationMsg_WaitForTabCountToBecome( | 196   if (!sender_->Send(new AutomationMsg_WaitForTabCountToBecome( | 
| 197                          0, handle_, count, &success))) { | 197                          handle_, count, &success))) { | 
| 198     return false; | 198     return false; | 
| 199   } | 199   } | 
| 200 | 200 | 
| 201   return success; | 201   return success; | 
| 202 } | 202 } | 
| 203 | 203 | 
| 204 bool BrowserProxy::WaitForTabToBecomeActive(int tab, | 204 bool BrowserProxy::WaitForTabToBecomeActive(int tab, | 
| 205                                             int wait_timeout) { | 205                                             int wait_timeout) { | 
| 206   const TimeTicks start = TimeTicks::Now(); | 206   const TimeTicks start = TimeTicks::Now(); | 
| 207   const TimeDelta timeout = TimeDelta::FromMilliseconds(wait_timeout); | 207   const TimeDelta timeout = TimeDelta::FromMilliseconds(wait_timeout); | 
| 208   while (TimeTicks::Now() - start < timeout) { | 208   while (TimeTicks::Now() - start < timeout) { | 
| 209     PlatformThread::Sleep(automation::kSleepTime); | 209     PlatformThread::Sleep(automation::kSleepTime); | 
| 210     int active_tab; | 210     int active_tab; | 
| 211     if (GetActiveTabIndex(&active_tab) && active_tab == tab) | 211     if (GetActiveTabIndex(&active_tab) && active_tab == tab) | 
| 212       return true; | 212       return true; | 
| 213   } | 213   } | 
| 214   // If we get here, the active tab hasn't changed. | 214   // If we get here, the active tab hasn't changed. | 
| 215   return false; | 215   return false; | 
| 216 } | 216 } | 
| 217 | 217 | 
| 218 bool BrowserProxy::OpenFindInPage() { | 218 bool BrowserProxy::OpenFindInPage() { | 
| 219   if (!is_valid()) | 219   if (!is_valid()) | 
| 220     return false; | 220     return false; | 
| 221 | 221 | 
| 222   return sender_->Send(new AutomationMsg_OpenFindInPage(0, handle_)); | 222   return sender_->Send(new AutomationMsg_OpenFindInPage(handle_)); | 
| 223   // This message expects no response. | 223   // This message expects no response. | 
| 224 } | 224 } | 
| 225 | 225 | 
| 226 bool BrowserProxy::GetFindWindowLocation(int* x, int* y) { | 226 bool BrowserProxy::GetFindWindowLocation(int* x, int* y) { | 
| 227   if (!is_valid() || !x || !y) | 227   if (!is_valid() || !x || !y) | 
| 228     return false; | 228     return false; | 
| 229 | 229 | 
| 230   return sender_->Send( | 230   return sender_->Send(new AutomationMsg_FindWindowLocation(handle_, x, y)); | 
| 231       new AutomationMsg_FindWindowLocation(0, handle_, x, y)); |  | 
| 232 } | 231 } | 
| 233 | 232 | 
| 234 bool BrowserProxy::IsFindWindowFullyVisible(bool* is_visible) { | 233 bool BrowserProxy::IsFindWindowFullyVisible(bool* is_visible) { | 
| 235   if (!is_valid()) | 234   if (!is_valid()) | 
| 236     return false; | 235     return false; | 
| 237 | 236 | 
| 238   if (!is_visible) { | 237   if (!is_visible) { | 
| 239     NOTREACHED(); | 238     NOTREACHED(); | 
| 240     return false; | 239     return false; | 
| 241   } | 240   } | 
| 242 | 241 | 
| 243   return sender_->Send( | 242   return sender_->Send( | 
| 244       new AutomationMsg_FindWindowVisibility(0, handle_, is_visible)); | 243       new AutomationMsg_FindWindowVisibility(handle_, is_visible)); | 
| 245 } | 244 } | 
| 246 | 245 | 
| 247 bool BrowserProxy::RunCommandAsync(int browser_command) const { | 246 bool BrowserProxy::RunCommandAsync(int browser_command) const { | 
| 248   if (!is_valid()) | 247   if (!is_valid()) | 
| 249     return false; | 248     return false; | 
| 250 | 249 | 
| 251   bool result = false; | 250   bool result = false; | 
| 252 | 251 | 
| 253   sender_->Send(new AutomationMsg_WindowExecuteCommandAsync(0, handle_, | 252   sender_->Send(new AutomationMsg_WindowExecuteCommandAsync(handle_, | 
| 254                                                             browser_command, | 253                                                             browser_command, | 
| 255                                                             &result)); | 254                                                             &result)); | 
| 256 | 255 | 
| 257   return result; | 256   return result; | 
| 258 } | 257 } | 
| 259 | 258 | 
| 260 bool BrowserProxy::RunCommand(int browser_command) const { | 259 bool BrowserProxy::RunCommand(int browser_command) const { | 
| 261   if (!is_valid()) | 260   if (!is_valid()) | 
| 262     return false; | 261     return false; | 
| 263 | 262 | 
| 264   bool result = false; | 263   bool result = false; | 
| 265 | 264 | 
| 266   sender_->Send(new AutomationMsg_WindowExecuteCommand(0, handle_, | 265   sender_->Send(new AutomationMsg_WindowExecuteCommand(handle_, | 
| 267                                                        browser_command, | 266                                                        browser_command, | 
| 268                                                        &result)); | 267                                                        &result)); | 
| 269 | 268 | 
| 270   return result; | 269   return result; | 
| 271 } | 270 } | 
| 272 | 271 | 
| 273 bool BrowserProxy::GetBookmarkBarVisibility(bool* is_visible, | 272 bool BrowserProxy::GetBookmarkBarVisibility(bool* is_visible, | 
| 274                                             bool* is_animating) { | 273                                             bool* is_animating) { | 
| 275   if (!is_valid()) | 274   if (!is_valid()) | 
| 276     return false; | 275     return false; | 
| 277 | 276 | 
| 278   if (!is_visible || !is_animating) { | 277   if (!is_visible || !is_animating) { | 
| 279     NOTREACHED(); | 278     NOTREACHED(); | 
| 280     return false; | 279     return false; | 
| 281   } | 280   } | 
| 282 | 281 | 
| 283   return sender_->Send(new AutomationMsg_BookmarkBarVisibility( | 282   return sender_->Send(new AutomationMsg_BookmarkBarVisibility( | 
| 284       0, handle_, is_visible, is_animating)); | 283       handle_, is_visible, is_animating)); | 
| 285 } | 284 } | 
| 286 | 285 | 
| 287 bool BrowserProxy::GetBookmarksAsJSON(std::string *json_string) { | 286 bool BrowserProxy::GetBookmarksAsJSON(std::string *json_string) { | 
| 288   if (!is_valid()) | 287   if (!is_valid()) | 
| 289     return false; | 288     return false; | 
| 290 | 289 | 
| 291   if (!WaitForBookmarkModelToLoad()) | 290   if (!WaitForBookmarkModelToLoad()) | 
| 292     return false; | 291     return false; | 
| 293 | 292 | 
| 294   bool result = false; | 293   bool result = false; | 
| 295   sender_->Send(new AutomationMsg_GetBookmarksAsJSON(0, handle_, | 294   sender_->Send(new AutomationMsg_GetBookmarksAsJSON(handle_, | 
| 296                                                      json_string, | 295                                                      json_string, | 
| 297                                                      &result)); | 296                                                      &result)); | 
| 298   return result; | 297   return result; | 
| 299 } | 298 } | 
| 300 | 299 | 
| 301 bool BrowserProxy::WaitForBookmarkModelToLoad() { | 300 bool BrowserProxy::WaitForBookmarkModelToLoad() { | 
| 302   if (!is_valid()) | 301   if (!is_valid()) | 
| 303     return false; | 302     return false; | 
| 304 | 303 | 
| 305   bool result = false; | 304   bool result = false; | 
| 306   sender_->Send(new AutomationMsg_WaitForBookmarkModelToLoad(0, handle_, | 305   sender_->Send(new AutomationMsg_WaitForBookmarkModelToLoad(handle_, &result)); | 
| 307                                                              &result)); |  | 
| 308   return result; | 306   return result; | 
| 309 } | 307 } | 
| 310 | 308 | 
| 311 bool BrowserProxy::AddBookmarkGroup(int64 parent_id, int index, | 309 bool BrowserProxy::AddBookmarkGroup(int64 parent_id, int index, | 
| 312                                     std::wstring& title) { | 310                                     std::wstring& title) { | 
| 313   if (!is_valid()) | 311   if (!is_valid()) | 
| 314     return false; | 312     return false; | 
| 315   bool result = false; | 313   bool result = false; | 
| 316   sender_->Send(new AutomationMsg_AddBookmarkGroup(0, handle_, | 314   sender_->Send(new AutomationMsg_AddBookmarkGroup(handle_, | 
| 317                                                    parent_id, index, | 315                                                    parent_id, index, | 
| 318                                                    title, | 316                                                    title, | 
| 319                                                    &result)); | 317                                                    &result)); | 
| 320   return result; | 318   return result; | 
| 321 } | 319 } | 
| 322 | 320 | 
| 323 bool BrowserProxy::AddBookmarkURL(int64 parent_id, int index, | 321 bool BrowserProxy::AddBookmarkURL(int64 parent_id, int index, | 
| 324                                   std::wstring& title, const GURL& url) { | 322                                   std::wstring& title, const GURL& url) { | 
| 325   if (!is_valid()) | 323   if (!is_valid()) | 
| 326     return false; | 324     return false; | 
| 327   bool result = false; | 325   bool result = false; | 
| 328   sender_->Send(new AutomationMsg_AddBookmarkURL(0, handle_, | 326   sender_->Send(new AutomationMsg_AddBookmarkURL(handle_, | 
| 329                                                  parent_id, index, | 327                                                  parent_id, index, | 
| 330                                                  title, url, | 328                                                  title, url, | 
| 331                                                  &result)); | 329                                                  &result)); | 
| 332   return result; | 330   return result; | 
| 333 } | 331 } | 
| 334 | 332 | 
| 335 bool BrowserProxy::ReparentBookmark(int64 id, int64 new_parent_id, int index) { | 333 bool BrowserProxy::ReparentBookmark(int64 id, int64 new_parent_id, int index) { | 
| 336   if (!is_valid()) | 334   if (!is_valid()) | 
| 337     return false; | 335     return false; | 
| 338   bool result = false; | 336   bool result = false; | 
| 339   sender_->Send(new AutomationMsg_ReparentBookmark(0, handle_, | 337   sender_->Send(new AutomationMsg_ReparentBookmark(handle_, | 
| 340                                                    id, new_parent_id, | 338                                                    id, new_parent_id, | 
| 341                                                    index, | 339                                                    index, | 
| 342                                                    &result)); | 340                                                    &result)); | 
| 343   return result; | 341   return result; | 
| 344 } | 342 } | 
| 345 | 343 | 
| 346 bool BrowserProxy::SetBookmarkTitle(int64 id, const std::wstring& title) { | 344 bool BrowserProxy::SetBookmarkTitle(int64 id, const std::wstring& title) { | 
| 347   if (!is_valid()) | 345   if (!is_valid()) | 
| 348     return false; | 346     return false; | 
| 349   bool result = false; | 347   bool result = false; | 
| 350   sender_->Send(new AutomationMsg_SetBookmarkTitle(0, handle_, | 348   sender_->Send(new AutomationMsg_SetBookmarkTitle(handle_, | 
| 351                                                    id, title, | 349                                                    id, title, | 
| 352                                                    &result)); | 350                                                    &result)); | 
| 353   return result; | 351   return result; | 
| 354 } | 352 } | 
| 355 | 353 | 
| 356 bool BrowserProxy::SetBookmarkURL(int64 id, const GURL& url) { | 354 bool BrowserProxy::SetBookmarkURL(int64 id, const GURL& url) { | 
| 357   if (!is_valid()) | 355   if (!is_valid()) | 
| 358     return false; | 356     return false; | 
| 359   bool result = false; | 357   bool result = false; | 
| 360   sender_->Send(new AutomationMsg_SetBookmarkURL(0, handle_, | 358   sender_->Send(new AutomationMsg_SetBookmarkURL(handle_, | 
| 361                                                  id, url, | 359                                                  id, url, | 
| 362                                                  &result)); | 360                                                  &result)); | 
| 363   return result; | 361   return result; | 
| 364 } | 362 } | 
| 365 | 363 | 
| 366 bool BrowserProxy::RemoveBookmark(int64 id) { | 364 bool BrowserProxy::RemoveBookmark(int64 id) { | 
| 367   if (!is_valid()) | 365   if (!is_valid()) | 
| 368     return false; | 366     return false; | 
| 369   bool result = false; | 367   bool result = false; | 
| 370   sender_->Send(new AutomationMsg_RemoveBookmark(0, handle_, | 368   sender_->Send(new AutomationMsg_RemoveBookmark(handle_, | 
| 371                                                  id, | 369                                                  id, | 
| 372                                                  &result)); | 370                                                  &result)); | 
| 373   return result; | 371   return result; | 
| 374 } | 372 } | 
| 375 | 373 | 
| 376 bool BrowserProxy::IsShelfVisible(bool* is_visible) { | 374 bool BrowserProxy::IsShelfVisible(bool* is_visible) { | 
| 377   if (!is_valid()) | 375   if (!is_valid()) | 
| 378     return false; | 376     return false; | 
| 379 | 377 | 
| 380   if (!is_visible) { | 378   if (!is_visible) { | 
| 381     NOTREACHED(); | 379     NOTREACHED(); | 
| 382     return false; | 380     return false; | 
| 383   } | 381   } | 
| 384 | 382 | 
| 385   return sender_->Send(new AutomationMsg_ShelfVisibility(0, handle_, | 383   return sender_->Send(new AutomationMsg_ShelfVisibility(handle_, | 
| 386                                                          is_visible)); | 384                                                          is_visible)); | 
| 387 } | 385 } | 
| 388 | 386 | 
| 389 bool BrowserProxy::SetShelfVisible(bool is_visible) { | 387 bool BrowserProxy::SetShelfVisible(bool is_visible) { | 
| 390   if (!is_valid()) | 388   if (!is_valid()) | 
| 391     return false; | 389     return false; | 
| 392 | 390 | 
| 393   return sender_->Send(new AutomationMsg_SetShelfVisibility(0, handle_, | 391   return sender_->Send(new AutomationMsg_SetShelfVisibility(handle_, | 
| 394                                                             is_visible)); | 392                                                             is_visible)); | 
| 395 } | 393 } | 
| 396 | 394 | 
| 397 bool BrowserProxy::SetIntPreference(const std::string& name, int value) { | 395 bool BrowserProxy::SetIntPreference(const std::string& name, int value) { | 
| 398   if (!is_valid()) | 396   if (!is_valid()) | 
| 399     return false; | 397     return false; | 
| 400 | 398 | 
| 401   bool result = false; | 399   bool result = false; | 
| 402 | 400 | 
| 403   sender_->Send(new AutomationMsg_SetIntPreference(0, handle_, name, value, | 401   sender_->Send(new AutomationMsg_SetIntPreference(handle_, name, value, | 
| 404                                                    &result)); | 402                                                    &result)); | 
| 405   return result; | 403   return result; | 
| 406 } | 404 } | 
| 407 | 405 | 
| 408 bool BrowserProxy::SetStringPreference(const std::string& name, | 406 bool BrowserProxy::SetStringPreference(const std::string& name, | 
| 409                                        const std::string& value) { | 407                                        const std::string& value) { | 
| 410   if (!is_valid()) | 408   if (!is_valid()) | 
| 411     return false; | 409     return false; | 
| 412 | 410 | 
| 413   bool result = false; | 411   bool result = false; | 
| 414 | 412 | 
| 415   sender_->Send(new AutomationMsg_SetStringPreference(0, handle_, name, value, | 413   sender_->Send(new AutomationMsg_SetStringPreference(handle_, name, value, | 
| 416                                                       &result)); | 414                                                       &result)); | 
| 417   return result; | 415   return result; | 
| 418 } | 416 } | 
| 419 | 417 | 
| 420 bool BrowserProxy::GetBooleanPreference(const std::string& name, | 418 bool BrowserProxy::GetBooleanPreference(const std::string& name, | 
| 421                                         bool* value) { | 419                                         bool* value) { | 
| 422   if (!is_valid()) | 420   if (!is_valid()) | 
| 423     return false; | 421     return false; | 
| 424 | 422 | 
| 425   bool result = false; | 423   bool result = false; | 
| 426 | 424 | 
| 427   sender_->Send(new AutomationMsg_GetBooleanPreference(0, handle_, name, value, | 425   sender_->Send(new AutomationMsg_GetBooleanPreference(handle_, name, value, | 
| 428                                                        &result)); | 426                                                        &result)); | 
| 429   return result; | 427   return result; | 
| 430 } | 428 } | 
| 431 | 429 | 
| 432 bool BrowserProxy::SetBooleanPreference(const std::string& name, | 430 bool BrowserProxy::SetBooleanPreference(const std::string& name, | 
| 433                                         bool value) { | 431                                         bool value) { | 
| 434   if (!is_valid()) | 432   if (!is_valid()) | 
| 435     return false; | 433     return false; | 
| 436 | 434 | 
| 437   bool result = false; | 435   bool result = false; | 
| 438 | 436 | 
| 439   sender_->Send(new AutomationMsg_SetBooleanPreference(0, handle_, name, | 437   sender_->Send(new AutomationMsg_SetBooleanPreference(handle_, name, | 
| 440                                                        value, &result)); | 438                                                        value, &result)); | 
| 441   return result; | 439   return result; | 
| 442 } | 440 } | 
| 443 | 441 | 
| 444 bool BrowserProxy::SetDefaultContentSetting(ContentSettingsType content_type, | 442 bool BrowserProxy::SetDefaultContentSetting(ContentSettingsType content_type, | 
| 445                                             ContentSetting setting) { | 443                                             ContentSetting setting) { | 
| 446   return SetContentSetting(std::string(), content_type, setting); | 444   return SetContentSetting(std::string(), content_type, setting); | 
| 447 } | 445 } | 
| 448 | 446 | 
| 449 bool BrowserProxy::SetContentSetting(const std::string& host, | 447 bool BrowserProxy::SetContentSetting(const std::string& host, | 
| 450                                      ContentSettingsType content_type, | 448                                      ContentSettingsType content_type, | 
| 451                                      ContentSetting setting) { | 449                                      ContentSetting setting) { | 
| 452   if (!is_valid()) | 450   if (!is_valid()) | 
| 453     return false; | 451     return false; | 
| 454 | 452 | 
| 455   bool result = false; | 453   bool result = false; | 
| 456 | 454 | 
| 457   sender_->Send(new AutomationMsg_SetContentSetting(0, handle_, host, | 455   sender_->Send(new AutomationMsg_SetContentSetting(handle_, host, | 
| 458                                                     content_type, setting, | 456                                                     content_type, setting, | 
| 459                                                     &result)); | 457                                                     &result)); | 
| 460   return result; | 458   return result; | 
| 461 } | 459 } | 
| 462 | 460 | 
| 463 bool BrowserProxy::TerminateSession() { | 461 bool BrowserProxy::TerminateSession() { | 
| 464   if (!is_valid()) | 462   if (!is_valid()) | 
| 465     return false; | 463     return false; | 
| 466 | 464 | 
| 467   bool result = false; | 465   bool result = false; | 
| 468 | 466 | 
| 469   sender_->Send(new AutomationMsg_TerminateSession(0, handle_, &result)); | 467   sender_->Send(new AutomationMsg_TerminateSession(handle_, &result)); | 
| 470 | 468 | 
| 471   return result; | 469   return result; | 
| 472 } | 470 } | 
| 473 | 471 | 
| 474 scoped_refptr<WindowProxy> BrowserProxy::GetWindow() const { | 472 scoped_refptr<WindowProxy> BrowserProxy::GetWindow() const { | 
| 475   if (!is_valid()) | 473   if (!is_valid()) | 
| 476     return NULL; | 474     return NULL; | 
| 477 | 475 | 
| 478   bool handle_ok = false; | 476   bool handle_ok = false; | 
| 479   int window_handle = 0; | 477   int window_handle = 0; | 
| 480 | 478 | 
| 481   sender_->Send(new AutomationMsg_WindowForBrowser(0, handle_, &handle_ok, | 479   sender_->Send(new AutomationMsg_WindowForBrowser(handle_, &handle_ok, | 
| 482                                                    &window_handle)); | 480                                                    &window_handle)); | 
| 483   if (!handle_ok) | 481   if (!handle_ok) | 
| 484     return NULL; | 482     return NULL; | 
| 485 | 483 | 
| 486   WindowProxy* window = | 484   WindowProxy* window = | 
| 487       static_cast<WindowProxy*>(tracker_->GetResource(window_handle)); | 485       static_cast<WindowProxy*>(tracker_->GetResource(window_handle)); | 
| 488   if (!window) { | 486   if (!window) { | 
| 489     window = new WindowProxy(sender_, tracker_, window_handle); | 487     window = new WindowProxy(sender_, tracker_, window_handle); | 
| 490     window->AddRef(); | 488     window->AddRef(); | 
| 491   } | 489   } | 
| 492 | 490 | 
| 493   // Since there is no scoped_refptr::attach. | 491   // Since there is no scoped_refptr::attach. | 
| 494   scoped_refptr<WindowProxy> result; | 492   scoped_refptr<WindowProxy> result; | 
| 495   result.swap(&window); | 493   result.swap(&window); | 
| 496   return result; | 494   return result; | 
| 497 } | 495 } | 
| 498 | 496 | 
| 499 scoped_refptr<AutocompleteEditProxy> BrowserProxy::GetAutocompleteEdit() { | 497 scoped_refptr<AutocompleteEditProxy> BrowserProxy::GetAutocompleteEdit() { | 
| 500   if (!is_valid()) | 498   if (!is_valid()) | 
| 501     return NULL; | 499     return NULL; | 
| 502 | 500 | 
| 503   bool handle_ok = false; | 501   bool handle_ok = false; | 
| 504   int autocomplete_edit_handle = 0; | 502   int autocomplete_edit_handle = 0; | 
| 505 | 503 | 
| 506   sender_->Send(new AutomationMsg_AutocompleteEditForBrowser( | 504   sender_->Send(new AutomationMsg_AutocompleteEditForBrowser( | 
| 507       0, handle_, &handle_ok, &autocomplete_edit_handle)); | 505       handle_, &handle_ok, &autocomplete_edit_handle)); | 
| 508 | 506 | 
| 509   if (!handle_ok) | 507   if (!handle_ok) | 
| 510     return NULL; | 508     return NULL; | 
| 511 | 509 | 
| 512   AutocompleteEditProxy* p = static_cast<AutocompleteEditProxy*>( | 510   AutocompleteEditProxy* p = static_cast<AutocompleteEditProxy*>( | 
| 513         tracker_->GetResource(autocomplete_edit_handle)); | 511         tracker_->GetResource(autocomplete_edit_handle)); | 
| 514 | 512 | 
| 515   if (!p) { | 513   if (!p) { | 
| 516     p = new AutocompleteEditProxy(sender_, tracker_, autocomplete_edit_handle); | 514     p = new AutocompleteEditProxy(sender_, tracker_, autocomplete_edit_handle); | 
| 517     p->AddRef(); | 515     p->AddRef(); | 
| 518   } | 516   } | 
| 519 | 517 | 
| 520   // Since there is no scoped_refptr::attach. | 518   // Since there is no scoped_refptr::attach. | 
| 521   scoped_refptr<AutocompleteEditProxy> result; | 519   scoped_refptr<AutocompleteEditProxy> result; | 
| 522   result.swap(&p); | 520   result.swap(&p); | 
| 523   return result; | 521   return result; | 
| 524 } | 522 } | 
| 525 | 523 | 
| 526 bool BrowserProxy::IsFullscreen(bool* is_fullscreen) { | 524 bool BrowserProxy::IsFullscreen(bool* is_fullscreen) { | 
| 527   DCHECK(is_fullscreen); | 525   DCHECK(is_fullscreen); | 
| 528 | 526 | 
| 529   if (!is_valid()) | 527   if (!is_valid()) | 
| 530     return false; | 528     return false; | 
| 531 | 529 | 
| 532   return sender_->Send(new AutomationMsg_IsFullscreen(0, handle_, | 530   return sender_->Send(new AutomationMsg_IsFullscreen(handle_, is_fullscreen)); | 
| 533                                                       is_fullscreen)); |  | 
| 534 } | 531 } | 
| 535 | 532 | 
| 536 bool BrowserProxy::IsFullscreenBubbleVisible(bool* is_visible) { | 533 bool BrowserProxy::IsFullscreenBubbleVisible(bool* is_visible) { | 
| 537   DCHECK(is_visible); | 534   DCHECK(is_visible); | 
| 538 | 535 | 
| 539   if (!is_valid()) | 536   if (!is_valid()) | 
| 540     return false; | 537     return false; | 
| 541 | 538 | 
| 542   return sender_->Send(new AutomationMsg_IsFullscreenBubbleVisible(0, handle_, | 539   return sender_->Send(new AutomationMsg_IsFullscreenBubbleVisible(handle_, | 
| 543                                                                    is_visible)); | 540                                                                    is_visible)); | 
| 544 } | 541 } | 
| 545 | 542 | 
| 546 bool BrowserProxy::ShutdownSessionService() { | 543 bool BrowserProxy::ShutdownSessionService() { | 
| 547   bool did_shutdown = false; | 544   bool did_shutdown = false; | 
| 548   bool succeeded = sender_->Send( | 545   bool succeeded = sender_->Send( | 
| 549       new AutomationMsg_ShutdownSessionService(0, handle_, &did_shutdown)); | 546       new AutomationMsg_ShutdownSessionService(handle_, &did_shutdown)); | 
| 550 | 547 | 
| 551   if (!succeeded) { | 548   if (!succeeded) { | 
| 552     DLOG(ERROR) << | 549     DLOG(ERROR) << | 
| 553         "ShutdownSessionService did not complete in a timely fashion"; | 550         "ShutdownSessionService did not complete in a timely fashion"; | 
| 554     return false; | 551     return false; | 
| 555   } | 552   } | 
| 556 | 553 | 
| 557   return did_shutdown; | 554   return did_shutdown; | 
| 558 } | 555 } | 
| 559 | 556 | 
| 560 bool BrowserProxy::StartTrackingPopupMenus() { | 557 bool BrowserProxy::StartTrackingPopupMenus() { | 
| 561   if (!is_valid()) | 558   if (!is_valid()) | 
| 562     return false; | 559     return false; | 
| 563 | 560 | 
| 564   bool result = false; | 561   bool result = false; | 
| 565   if (!sender_->Send(new AutomationMsg_StartTrackingPopupMenus | 562   if (!sender_->Send(new AutomationMsg_StartTrackingPopupMenus( | 
| 566       (0, handle_, &result))) | 563           handle_, &result))) | 
| 567     return false; | 564     return false; | 
| 568   return result; | 565   return result; | 
| 569 } | 566 } | 
| 570 | 567 | 
| 571 bool BrowserProxy::WaitForPopupMenuToOpen() { | 568 bool BrowserProxy::WaitForPopupMenuToOpen() { | 
| 572   if (!is_valid()) | 569   if (!is_valid()) | 
| 573     return false; | 570     return false; | 
| 574 | 571 | 
| 575   bool result = false; | 572   bool result = false; | 
| 576   if (!sender_->Send(new AutomationMsg_WaitForPopupMenuToOpen | 573   if (!sender_->Send(new AutomationMsg_WaitForPopupMenuToOpen(&result))) | 
| 577       (0, &result))) |  | 
| 578     return false; | 574     return false; | 
| 579   return result; | 575   return result; | 
| 580 } | 576 } | 
| 581 | 577 | 
| 582 bool BrowserProxy::SendJSONRequest(const std::string& request, | 578 bool BrowserProxy::SendJSONRequest(const std::string& request, | 
| 583                                    std::string* response) { | 579                                    std::string* response) { | 
| 584   if (!is_valid()) | 580   if (!is_valid()) | 
| 585     return false; | 581     return false; | 
| 586 | 582 | 
| 587   bool result = false; | 583   bool result = false; | 
| 588   return sender_->Send(new AutomationMsg_SendJSONRequest(0, handle_, | 584   return sender_->Send(new AutomationMsg_SendJSONRequest(handle_, | 
| 589                                                          request, response, | 585                                                          request, response, | 
| 590                                                          &result)); | 586                                                          &result)); | 
| 591   return result; | 587   return result; | 
| 592 } | 588 } | 
| 593 | 589 | 
| 594 bool BrowserProxy::GetInitialLoadTimes(float* min_start_time, | 590 bool BrowserProxy::GetInitialLoadTimes(float* min_start_time, | 
| 595                                        float* max_stop_time, | 591                                        float* max_stop_time, | 
| 596                                        std::vector<float>* stop_times) { | 592                                        std::vector<float>* stop_times) { | 
| 597   std::string json_response; | 593   std::string json_response; | 
| 598   const char* kJSONCommand = "{\"command\": \"GetInitialLoadTimes\"}"; | 594   const char* kJSONCommand = "{\"command\": \"GetInitialLoadTimes\"}"; | 
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 643     if (i == 0) | 639     if (i == 0) | 
| 644       *min_start_time = start_ms; | 640       *min_start_time = start_ms; | 
| 645 | 641 | 
| 646     *min_start_time = std::min(start_ms, *min_start_time); | 642     *min_start_time = std::min(start_ms, *min_start_time); | 
| 647     *max_stop_time = std::max(stop_ms, *max_stop_time); | 643     *max_stop_time = std::max(stop_ms, *max_stop_time); | 
| 648     stop_times->push_back(stop_ms); | 644     stop_times->push_back(stop_ms); | 
| 649   } | 645   } | 
| 650   std::sort(stop_times->begin(), stop_times->end()); | 646   std::sort(stop_times->begin(), stop_times->end()); | 
| 651   return true; | 647   return true; | 
| 652 } | 648 } | 
| OLD | NEW | 
|---|