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

Side by Side Diff: content/browser/web_contents/web_contents_view_mac.mm

Issue 2442573003: Mac: Don't allow RenderWidgetHostViewCocoa to participate in autolayout. (Closed)
Patch Set: Ensure the fix is independent from the constraints violation (remove upstream) Created 4 years, 2 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
« no previous file with comments | « chrome/browser/ui/browser_browsertest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #import <Carbon/Carbon.h> 5 #import <Carbon/Carbon.h>
6 6
7 #import "content/browser/web_contents/web_contents_view_mac.h" 7 #import "content/browser/web_contents/web_contents_view_mac.h"
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 649
650 - (void)updateWebContentsVisibility { 650 - (void)updateWebContentsVisibility {
651 WebContentsImpl* webContents = [self webContents]; 651 WebContentsImpl* webContents = [self webContents];
652 if (!webContents || webContents->IsBeingDestroyed()) 652 if (!webContents || webContents->IsBeingDestroyed())
653 return; 653 return;
654 654
655 const bool viewVisible = [self window] && ![self isHiddenOrHasHiddenAncestor]; 655 const bool viewVisible = [self window] && ![self isHiddenOrHasHiddenAncestor];
656 webContents->UpdateWebContentsVisibility(viewVisible); 656 webContents->UpdateWebContentsVisibility(viewVisible);
657 } 657 }
658 658
659 // When the subviews require a layout, their size should be reset to the size
660 // of this view. (It is possible for the size to get out of sync as an
661 // optimization in preparation for an upcoming WebContentsView resize.
662 // http://crbug.com/264207)
663 - (void)resizeSubviewsWithOldSize:(NSSize)oldBoundsSize { 659 - (void)resizeSubviewsWithOldSize:(NSSize)oldBoundsSize {
664 for (NSView* subview in self.subviews) 660 // Subviews do not participate in auto layout unless the the size this view
665 [subview setFrame:self.bounds]; 661 // changes. This allows RenderWidgetHostViewMac::SetBounds(..) to select a
662 // size of the subview that differs from its superview in preparation for an
663 // upcoming WebContentsView resize.
664 // See http://crbug.com/264207 and http://crbug.com/655112.
665 }
666
667 - (void)setFrameSize:(NSSize)newSize {
668 [super setFrameSize:newSize];
669
670 // Perform manual layout of subviews, e.g., when the window size changes.
671 for (NSView* subview in [self subviews])
672 [subview setFrame:[self bounds]];
666 } 673 }
667 674
668 - (void)viewWillMoveToWindow:(NSWindow*)newWindow { 675 - (void)viewWillMoveToWindow:(NSWindow*)newWindow {
669 NSWindow* oldWindow = [self window]; 676 NSWindow* oldWindow = [self window];
670 677
671 NSNotificationCenter* notificationCenter = 678 NSNotificationCenter* notificationCenter =
672 [NSNotificationCenter defaultCenter]; 679 [NSNotificationCenter defaultCenter];
673 680
674 // Occlusion is highly undesirable for browser tests, since it will 681 // Occlusion is highly undesirable for browser tests, since it will
675 // flakily change test behavior. 682 // flakily change test behavior.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 718
712 - (void)viewDidHide { 719 - (void)viewDidHide {
713 [self updateWebContentsVisibility]; 720 [self updateWebContentsVisibility];
714 } 721 }
715 722
716 - (void)viewDidUnhide { 723 - (void)viewDidUnhide {
717 [self updateWebContentsVisibility]; 724 [self updateWebContentsVisibility];
718 } 725 }
719 726
720 @end 727 @end
OLDNEW
« no previous file with comments | « chrome/browser/ui/browser_browsertest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698