Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Side by Side Diff: chrome/test/chromedriver/window_commands.cc

Issue 848483002: [chromedriver] Use center of first ClientRect when moving mouse to an element. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add some extra checks to testMoveToElementAndClick Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 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 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/chromedriver/window_commands.h" 5 #include "chrome/test/chromedriver/window_commands.h"
6 6
7 #include <list> 7 #include <list>
8 #include <string> 8 #include <string>
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 bool has_element = params.GetString("element", &element_id); 463 bool has_element = params.GetString("element", &element_id);
464 int x_offset = 0; 464 int x_offset = 0;
465 int y_offset = 0; 465 int y_offset = 0;
466 bool has_offset = params.GetInteger("xoffset", &x_offset) && 466 bool has_offset = params.GetInteger("xoffset", &x_offset) &&
467 params.GetInteger("yoffset", &y_offset); 467 params.GetInteger("yoffset", &y_offset);
468 if (!has_element && !has_offset) 468 if (!has_element && !has_offset)
469 return Status(kUnknownError, "at least an element or offset should be set"); 469 return Status(kUnknownError, "at least an element or offset should be set");
470 470
471 WebPoint location; 471 WebPoint location;
472 if (has_element) { 472 if (has_element) {
473 Status status = ScrollElementIntoView( 473 WebPoint offset(x_offset, y_offset);
474 session, web_view, element_id, &location); 474 Status status = ScrollElementIntoView(session, web_view, element_id,
475 has_offset ? &offset : nullptr, &location);
475 if (status.IsError()) 476 if (status.IsError())
476 return status; 477 return status;
477 } else { 478 } else {
478 location = session->mouse_position; 479 location = session->mouse_position;
479 } 480 if (has_offset)
480 481 location.Offset(x_offset, y_offset);
481 if (has_offset) {
482 location.Offset(x_offset, y_offset);
483 } else {
484 WebSize size;
485 Status status = GetElementSize(session, web_view, element_id, &size);
486 if (status.IsError())
487 return status;
488 location.Offset(size.width / 2, size.height / 2);
489 } 482 }
490 483
491 std::list<MouseEvent> events; 484 std::list<MouseEvent> events;
492 events.push_back( 485 events.push_back(
493 MouseEvent(kMovedMouseEventType, kNoneMouseButton, 486 MouseEvent(kMovedMouseEventType, kNoneMouseButton,
494 location.x, location.y, session->sticky_modifiers, 0)); 487 location.x, location.y, session->sticky_modifiers, 0));
495 Status status = 488 Status status =
496 web_view->DispatchMouseEvents(events, session->GetCurrentFrameId()); 489 web_view->DispatchMouseEvents(events, session->GetCurrentFrameId());
497 if (status.IsOk()) 490 if (status.IsOk())
498 session->mouse_position = location; 491 session->mouse_position = location;
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 return status; 869 return status;
877 } 870 }
878 871
879 Status ExecuteTakeHeapSnapshot( 872 Status ExecuteTakeHeapSnapshot(
880 Session* session, 873 Session* session,
881 WebView* web_view, 874 WebView* web_view,
882 const base::DictionaryValue& params, 875 const base::DictionaryValue& params,
883 scoped_ptr<base::Value>* value) { 876 scoped_ptr<base::Value>* value) {
884 return web_view->TakeHeapSnapshot(value); 877 return web_view->TakeHeapSnapshot(value);
885 } 878 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698