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

Side by Side Diff: chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm

Issue 171973004: NSView cleanup for CoreAnimation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 10 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) 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 "chrome/browser/ui/cocoa/tabs/tab_strip_controller.h" 5 #import "chrome/browser/ui/cocoa/tabs/tab_strip_controller.h"
6 6
7 #import <QuartzCore/QuartzCore.h> 7 #import <QuartzCore/QuartzCore.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 #include <limits> 10 #include <limits>
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 #include "grit/ui_resources.h" 64 #include "grit/ui_resources.h"
65 #include "skia/ext/skia_utils_mac.h" 65 #include "skia/ext/skia_utils_mac.h"
66 #import "third_party/google_toolbox_for_mac/src/AppKit/GTMNSAnimation+Duration.h " 66 #import "third_party/google_toolbox_for_mac/src/AppKit/GTMNSAnimation+Duration.h "
67 #include "ui/base/cocoa/animation_utils.h" 67 #include "ui/base/cocoa/animation_utils.h"
68 #import "ui/base/cocoa/tracking_area.h" 68 #import "ui/base/cocoa/tracking_area.h"
69 #include "ui/base/l10n/l10n_util.h" 69 #include "ui/base/l10n/l10n_util.h"
70 #include "ui/base/models/list_selection_model.h" 70 #include "ui/base/models/list_selection_model.h"
71 #include "ui/base/resource/resource_bundle.h" 71 #include "ui/base/resource/resource_bundle.h"
72 #include "ui/base/theme_provider.h" 72 #include "ui/base/theme_provider.h"
73 #include "ui/gfx/image/image.h" 73 #include "ui/gfx/image/image.h"
74 #include "ui/gfx/mac/scoped_ns_disable_screen_updates.h"
74 75
75 using base::UserMetricsAction; 76 using base::UserMetricsAction;
76 using content::OpenURLParams; 77 using content::OpenURLParams;
77 using content::Referrer; 78 using content::Referrer;
78 using content::WebContents; 79 using content::WebContents;
79 80
80 namespace { 81 namespace {
81 82
82 // A value to indicate tab layout should use the full available width of the 83 // A value to indicate tab layout should use the full available width of the
83 // view. 84 // view.
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 } 607 }
607 608
608 // Finds the TabContentsController associated with the given index into the tab 609 // Finds the TabContentsController associated with the given index into the tab
609 // model and swaps out the sole child of the contentArea to display its 610 // model and swaps out the sole child of the contentArea to display its
610 // contents. 611 // contents.
611 - (void)swapInTabAtIndex:(NSInteger)modelIndex { 612 - (void)swapInTabAtIndex:(NSInteger)modelIndex {
612 DCHECK(modelIndex >= 0 && modelIndex < tabStripModel_->count()); 613 DCHECK(modelIndex >= 0 && modelIndex < tabStripModel_->count());
613 NSInteger index = [self indexFromModelIndex:modelIndex]; 614 NSInteger index = [self indexFromModelIndex:modelIndex];
614 TabContentsController* controller = [tabContentsArray_ objectAtIndex:index]; 615 TabContentsController* controller = [tabContentsArray_ objectAtIndex:index];
615 616
617 // Make sure we do not draw any transient arrangements of views.
618 gfx::ScopedNSDisableScreenUpdates ns_disabler;
616 // Make sure that any layers that move are not animated to their new 619 // Make sure that any layers that move are not animated to their new
617 // positions. 620 // positions.
618 ScopedCAActionDisabler disabler; 621 ScopedCAActionDisabler ca_disabler;
619 622
620 // Resize the new view to fit the window. Calling |view| may lazily 623 // Resize the new view to fit the window. Calling |view| may lazily
621 // instantiate the TabContentsController from the nib. Until we call 624 // instantiate the TabContentsController from the nib. Until we call
622 // |-ensureContentsVisible|, the controller doesn't install the RWHVMac into 625 // |-ensureContentsVisible|, the controller doesn't install the RWHVMac into
623 // the view hierarchy. This is in order to avoid sending the renderer a 626 // the view hierarchy. This is in order to avoid sending the renderer a
624 // spurious default size loaded from the nib during the call to |-view|. 627 // spurious default size loaded from the nib during the call to |-view|.
625 NSView* newView = [controller view]; 628 NSView* newView = [controller view];
626 629
627 // Turns content autoresizing off, so removing and inserting views won't 630 // Turns content autoresizing off, so removing and inserting views won't
628 // trigger unnecessary content relayout. 631 // trigger unnecessary content relayout.
(...skipping 1596 matching lines...) Expand 10 before | Expand all | Expand 10 after
2225 NSView* GetSheetParentViewForWebContents(WebContents* web_contents) { 2228 NSView* GetSheetParentViewForWebContents(WebContents* web_contents) {
2226 // View hierarchy of the contents view: 2229 // View hierarchy of the contents view:
2227 // NSView -- switchView, same for all tabs 2230 // NSView -- switchView, same for all tabs
2228 // +- NSView -- TabContentsController's view 2231 // +- NSView -- TabContentsController's view
2229 // +- TabContentsViewCocoa 2232 // +- TabContentsViewCocoa
2230 // 2233 //
2231 // Changing it? Do not forget to modify 2234 // Changing it? Do not forget to modify
2232 // -[TabStripController swapInTabAtIndex:] too. 2235 // -[TabStripController swapInTabAtIndex:] too.
2233 return [web_contents->GetView()->GetNativeView() superview]; 2236 return [web_contents->GetView()->GetNativeView() superview];
2234 } 2237 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698