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

Side by Side Diff: chrome/browser/ui/cocoa/custom_frame_view.mm

Issue 402753002: mac: [Yosemite] Remove unnecessary AppKit private method swizzling. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 6 years, 5 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 | « no previous file | 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 "chrome/browser/ui/cocoa/custom_frame_view.h" 5 #import "chrome/browser/ui/cocoa/custom_frame_view.h"
6 6
7 #import <Carbon/Carbon.h> 7 #import <Carbon/Carbon.h>
8 #include <crt_externs.h> 8 #include <crt_externs.h>
9 #import <objc/runtime.h> 9 #import <objc/runtime.h>
10 #include <string.h> 10 #include <string.h>
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 @selector(drawRect:)); 82 @selector(drawRect:));
83 Method m2 = class_getInstanceMethod(borderViewClass, 83 Method m2 = class_getInstanceMethod(borderViewClass,
84 @selector(drawRectOriginal:)); 84 @selector(drawRectOriginal:));
85 DCHECK(m1 && m2); 85 DCHECK(m1 && m2);
86 if (m1 && m2) { 86 if (m1 && m2) {
87 method_exchangeImplementations(m1, m2); 87 method_exchangeImplementations(m1, m2);
88 } 88 }
89 } 89 }
90 } 90 }
91 91
92 // Swizzle the method that sets the origin for the Lion fullscreen button. Do 92 // In Yosemite, the fullscreen button replaces the zoom button. We no longer
93 // nothing if it cannot be found. 93 // need to swizzle out this AppKit private method.
94 m0 = class_getInstanceMethod([self class], 94 if (base::mac::IsOSMavericksOrEarlier()) {
95 @selector(_fullScreenButtonOrigin)); 95 // Swizzle the method that sets the origin for the Lion fullscreen button.
96 if (m0) { 96 // Do nothing if it cannot be found.
97 BOOL didAdd = class_addMethod(borderViewClass, 97 m0 = class_getInstanceMethod([self class],
98 @selector(_fullScreenButtonOriginOriginal), 98 @selector(_fullScreenButtonOrigin));
99 method_getImplementation(m0), 99 if (m0) {
100 method_getTypeEncoding(m0)); 100 BOOL didAdd = class_addMethod(borderViewClass,
101 if (didAdd) { 101 @selector(_fullScreenButtonOriginOriginal),
102 Method m1 = class_getInstanceMethod(borderViewClass, 102 method_getImplementation(m0),
103 @selector(_fullScreenButtonOrigin)); 103 method_getTypeEncoding(m0));
104 Method m2 = class_getInstanceMethod(borderViewClass, 104 if (didAdd) {
105 @selector(_fullScreenButtonOriginOriginal)); 105 Method m1 = class_getInstanceMethod(borderViewClass,
106 if (m1 && m2) { 106 @selector(_fullScreenButtonOrigin));
107 method_exchangeImplementations(m1, m2); 107 Method m2 = class_getInstanceMethod(
108 borderViewClass, @selector(_fullScreenButtonOriginOriginal));
109 if (m1 && m2) {
110 method_exchangeImplementations(m1, m2);
111 }
108 } 112 }
109 } 113 }
110 } 114 }
111 } 115 }
112 116
113 + (BOOL)canDrawTitle { 117 + (BOOL)canDrawTitle {
114 return gCanDrawTitle; 118 return gCanDrawTitle;
115 } 119 }
116 120
117 + (BOOL)canGetCornerRadius { 121 + (BOOL)canGetCornerRadius {
(...skipping 27 matching lines...) Expand all
145 if ([window respondsToSelector:@selector(fullScreenButtonOriginAdjustment)]) 149 if ([window respondsToSelector:@selector(fullScreenButtonOriginAdjustment)])
146 offset = [window fullScreenButtonOriginAdjustment]; 150 offset = [window fullScreenButtonOriginAdjustment];
147 151
148 NSPoint origin = [self _fullScreenButtonOriginOriginal]; 152 NSPoint origin = [self _fullScreenButtonOriginOriginal];
149 origin.x += offset.x; 153 origin.x += offset.x;
150 origin.y += offset.y; 154 origin.y += offset.y;
151 return origin; 155 return origin;
152 } 156 }
153 157
154 @end 158 @end
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698