summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatthewyuan@chromium.org <matthewyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-29 04:06:13 +0000
committermatthewyuan@chromium.org <matthewyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-29 04:06:13 +0000
commit41ba39da7487fe15d6bb9cfce2c73adeb67cc3d9 (patch)
treece30562e77d04111c2ed588a4a8384e84a2001bc
parentbc95b29a78525437e295555008e54bf7a7b17f9c (diff)
downloadchromium_src-41ba39da7487fe15d6bb9cfce2c73adeb67cc3d9.zip
chromium_src-41ba39da7487fe15d6bb9cfce2c73adeb67cc3d9.tar.gz
chromium_src-41ba39da7487fe15d6bb9cfce2c73adeb67cc3d9.tar.bz2
Merge 286042 "Revert of mac: Toolbar renders incorrectly when do..."
> Revert of mac: Toolbar renders incorrectly when downloads bar is open. (https://codereview.chromium.org/419683008/) > > Reason for revert: > NSInvalidArgumentException reason Unlocking Focus on wrong view (<NSView: 0x#>), expected <FastResizeView: 0x#> > > https://code.google.com/p/chromium/issues/detail?id=397089 > > Original issue's description: > > mac: Toolbar renders incorrectly when downloads bar is open. > > > > The toolbar's superview chromeContentView was incorrectly sized and was too > > small. This happened because chromeContentView's layout was not being updated > > in -[BrowserWindowController layoutSubviews]. > > > > I updated the unit tests in browser_window_controller_unittest.mm with 2 changes: > > - All layout checking should use window coordinates, to ensure consistency. > > - Layout checking should ensure that the frame of each view is within the > > bounds of the superview. > > > > BUG=396740 > > > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=285796 > > TBR=shess@chromium.org > NOTREECHECKS=true > NOTRY=true > BUG=396740 > > Review URL: https://codereview.chromium.org/425853007 TBR=erikchen@chromium.org Review URL: https://codereview.chromium.org/429473002 git-svn-id: svn://svn.chromium.org/chrome/branches/2107/src@286078 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/ui/cocoa/browser_window_controller_private.mm8
-rw-r--r--chrome/browser/ui/cocoa/browser_window_controller_unittest.mm59
2 files changed, 8 insertions, 59 deletions
diff --git a/chrome/browser/ui/cocoa/browser_window_controller_private.mm b/chrome/browser/ui/cocoa/browser_window_controller_private.mm
index 6a6a4f0..9b0aa21 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller_private.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller_private.mm
@@ -185,14 +185,6 @@ willPositionSheet:(NSWindow*)sheet
NSWindow* window = [self window];
NSView* contentView = [window contentView];
NSRect contentBounds = [contentView bounds];
-
- // Lay out the chromeContentView.
- NSView* chromeContentView = [self chromeContentView];
- BOOL autoresizesSubviews = [chromeContentView autoresizesSubviews];
- [chromeContentView setAutoresizesSubviews:NO];
- [chromeContentView setFrame:contentBounds];
- [chromeContentView setAutoresizesSubviews:autoresizesSubviews];
-
CGFloat minX = NSMinX(contentBounds);
CGFloat minY = NSMinY(contentBounds);
CGFloat width = NSWidth(contentBounds);
diff --git a/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm b/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm
index 67f5e71..269fa15 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm
@@ -20,7 +20,6 @@
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/cocoa/cocoa_profile_test.h"
-#import "chrome/browser/ui/cocoa/fast_resize_view.h"
#include "chrome/browser/ui/cocoa/find_bar/find_bar_bridge.h"
#import "chrome/browser/ui/cocoa/nsview_additions.h"
#include "chrome/browser/ui/cocoa/tabs/tab_strip_view.h"
@@ -243,61 +242,19 @@ TEST_F(BrowserWindowControllerTest, TestIncognitoWidthSpace) {
namespace {
-// Returns the frame of the view in window coordinates.
-NSRect FrameInWindowForView(NSView* view) {
- return [[view superview] convertRect:[view frame] toView:nil];
-}
-
-// Whether the view's frame is within the bounds of the superview.
-BOOL ViewContainmentValid(NSView* view) {
- if (NSIsEmptyRect([view frame]))
- return true;
-
- return NSContainsRect([[view superview] bounds], [view frame]);
-}
-
-// Checks the view hierarchy rooted at |view| to ensure that each view is
-// properly contained.
-BOOL ViewHierarchyContainmentValid(NSView* view) {
- // TODO(erikchen): Fix these views to have correct containment.
- // http://crbug.com/397665.
- if ([view isKindOfClass:NSClassFromString(@"DownloadShelfView")])
- return YES;
- if ([view isKindOfClass:NSClassFromString(@"BookmarkBarToolbarView")])
- return YES;
- if ([view isKindOfClass:NSClassFromString(@"BrowserActionsContainerView")])
- return YES;
-
- if (!ViewContainmentValid(view)) {
- LOG(ERROR) << "View violates containment: " <<
- [[view description] UTF8String];
- return false;
- }
-
- for (NSView* subview in [view subviews]) {
- BOOL result = ViewHierarchyContainmentValid(subview);
- if (!result)
- return false;
- }
-
- return true;
-}
-
// Verifies that the toolbar, infobar, tab content area, and download shelf
// completely fill the area under the tabstrip.
void CheckViewPositions(BrowserWindowController* controller) {
- EXPECT_TRUE(ViewHierarchyContainmentValid([[controller window] contentView]));
-
- NSRect contentView = FrameInWindowForView([[controller window] contentView]);
- NSRect tabstrip = FrameInWindowForView([controller tabStripView]);
- NSRect toolbar = FrameInWindowForView([controller toolbarView]);
- NSRect infobar = FrameInWindowForView([controller infoBarContainerView]);
- NSRect tabContent = FrameInWindowForView([controller tabContentArea]);
- NSRect download = FrameInWindowForView([[controller downloadShelf] view]);
+ NSRect contentView = [[[controller window] contentView] bounds];
+ NSRect tabstrip = [[controller tabStripView] frame];
+ NSRect toolbar = [[controller toolbarView] frame];
+ NSRect infobar = [[controller infoBarContainerView] frame];
+ NSRect contentArea = [[controller tabContentArea] frame];
+ NSRect download = [[[controller downloadShelf] view] frame];
EXPECT_EQ(NSMinY(contentView), NSMinY(download));
- EXPECT_EQ(NSMaxY(download), NSMinY(tabContent));
- EXPECT_EQ(NSMaxY(tabContent), NSMinY(infobar));
+ EXPECT_EQ(NSMaxY(download), NSMinY(contentArea));
+ EXPECT_EQ(NSMaxY(contentArea), NSMinY(infobar));
// Bookmark bar frame is random memory when hidden.
if ([controller bookmarkBarVisible]) {