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

Side by Side Diff: ios/web/web_state/ui/crw_web_view_content_view.mm

Issue 1689753002: Set CRWWebViewContentView's size before resetting scroll proxy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2623
Patch Set: Created 4 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "ios/web/public/web_state/ui/crw_web_view_content_view.h" 5 #import "ios/web/public/web_state/ui/crw_web_view_content_view.h"
6 6
7 #import <WebKit/WebKit.h> 7 #import <WebKit/WebKit.h>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/mac/scoped_nsobject.h" 10 #include "base/mac/scoped_nsobject.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 - (void)didMoveToSuperview { 72 - (void)didMoveToSuperview {
73 [super didMoveToSuperview]; 73 [super didMoveToSuperview];
74 if (self.superview) { 74 if (self.superview) {
75 self.autoresizingMask = 75 self.autoresizingMask =
76 UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 76 UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
77 [self addSubview:_webView]; 77 [self addSubview:_webView];
78 self.backgroundColor = [UIColor colorWithRed:kBackgroundRGBComponents[0] 78 self.backgroundColor = [UIColor colorWithRed:kBackgroundRGBComponents[0]
79 green:kBackgroundRGBComponents[1] 79 green:kBackgroundRGBComponents[1]
80 blue:kBackgroundRGBComponents[2] 80 blue:kBackgroundRGBComponents[2]
81 alpha:1.0]; 81 alpha:1.0];
82 // The frame needs to be set immediately after the web view is added
83 // as a subview. The change in the frame triggers drawing operations and
84 // if not done after it's added as a subview, the web view exhibits
85 // strange behavior where clicks from certain web sites are not triggered.
86 // The actual value of the frame doesn't matter as long as it's not
87 // CGRectZero. The CRWWebViewContentView's frame will be reset to a correct
88 // value in a subsequent layout pass.
89 // TODO(crbug.com/577793): This is an undocumented and not-well-understood
90 // workaround for this issue.
91 const CGRect kDummyRect = CGRectMake(10, 20, 30, 50);
92 self.frame = kDummyRect;
93 } 82 }
94 } 83 }
95 84
85 - (void)setFrame:(CGRect)frame {
86 if (CGRectEqualToRect(self.frame, frame))
87 return;
88 [super setFrame:frame];
89 [self updateWebViewFrame];
90 }
91
92 - (void)setBounds:(CGRect)bounds {
93 if (CGRectEqualToRect(self.bounds, bounds))
94 return;
95 [super setBounds:bounds];
96 [self updateWebViewFrame];
97 }
98
96 #pragma mark Accessors 99 #pragma mark Accessors
97 100
98 - (UIScrollView*)scrollView { 101 - (UIScrollView*)scrollView {
99 return _scrollView.get(); 102 return _scrollView.get();
100 } 103 }
101 104
102 - (UIView*)webView { 105 - (UIView*)webView {
103 return _webView.get(); 106 return _webView.get();
104 } 107 }
105 108
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 142
140 - (void)updateWebViewFrame { 143 - (void)updateWebViewFrame {
141 CGRect webViewFrame = self.bounds; 144 CGRect webViewFrame = self.bounds;
142 webViewFrame.size.height -= _topContentPadding; 145 webViewFrame.size.height -= _topContentPadding;
143 webViewFrame.origin.y += _topContentPadding; 146 webViewFrame.origin.y += _topContentPadding;
144 147
145 self.webView.frame = webViewFrame; 148 self.webView.frame = webViewFrame;
146 } 149 }
147 150
148 @end 151 @end
OLDNEW
« no previous file with comments | « ios/web/web_state/ui/crw_web_controller_unittest.mm ('k') | ios/web/web_state/ui/crw_wk_web_view_web_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698