summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/testing_automation_provider_mac.mm
diff options
context:
space:
mode:
authorkkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-05 23:33:39 +0000
committerkkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-05 23:33:39 +0000
commit06552c1abc14f20e5dcc374a44c17e2cd29d9746 (patch)
tree972d20be4d74fa45c642cdae6fd98fd9f9c3cdfb /chrome/browser/automation/testing_automation_provider_mac.mm
parent10459c9813df78815d9ff900ac0af221b75db74b (diff)
downloadchromium_src-06552c1abc14f20e5dcc374a44c17e2cd29d9746.zip
chromium_src-06552c1abc14f20e5dcc374a44c17e2cd29d9746.tar.gz
chromium_src-06552c1abc14f20e5dcc374a44c17e2cd29d9746.tar.bz2
[Mac] Fix getting the tab content's bounds in the automation provider.
BUG=none TEST=none Review URL: http://codereview.chromium.org/3539008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61582 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation/testing_automation_provider_mac.mm')
-rw-r--r--chrome/browser/automation/testing_automation_provider_mac.mm20
1 files changed, 13 insertions, 7 deletions
diff --git a/chrome/browser/automation/testing_automation_provider_mac.mm b/chrome/browser/automation/testing_automation_provider_mac.mm
index 4d368b1..bd50ad4 100644
--- a/chrome/browser/automation/testing_automation_provider_mac.mm
+++ b/chrome/browser/automation/testing_automation_provider_mac.mm
@@ -56,19 +56,25 @@ void TestingAutomationProvider::WindowGetViewBounds(int handle,
DCHECK([controller isKindOfClass:[BrowserWindowController class]]);
if (![controller isKindOfClass:[BrowserWindowController class]])
return;
- NSView* tab = [controller selectedTabView];
+ NSView* tab =
+ [[[controller tabStripController] activeTabContentsController] view];
if (!tab)
return;
- NSPoint coords = NSZeroPoint;
+ NSRect rect = [tab convertRectToBase:[tab bounds]];
+ // The origin of the bounding box should be the top left of the tab contents,
+ // not bottom left, to match other platforms.
+ rect.origin.y += rect.size.height;
+ CGFloat coord_sys_height;
if (screen_coordinates) {
- coords = [window convertBaseToScreen:[tab convertPoint:NSZeroPoint
- toView:nil]];
+ rect.origin = [window convertBaseToScreen:rect.origin];
+ coord_sys_height = [[window screen] frame].size.height;
} else {
- coords = [tab convertPoint:NSZeroPoint toView:[window contentView]];
+ coord_sys_height = [window frame].size.height;
}
- // Flip coordinate system
- coords.y = [[window screen] frame].size.height - coords.y;
+ // Flip coordinate system.
+ rect.origin.y = coord_sys_height - rect.origin.y;
+ *bounds = gfx::Rect(NSRectToCGRect(rect));
*success = true;
}