| 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 |