OLD | NEW |
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 #include "ios/chrome/browser/ui/omnibox/omnibox_view_ios.h" | 5 #include "ios/chrome/browser/ui/omnibox/omnibox_view_ios.h" |
6 | 6 |
7 #import <CoreText/CoreText.h> | 7 #import <CoreText/CoreText.h> |
8 #import <MobileCoreServices/MobileCoreServices.h> | 8 #import <MobileCoreServices/MobileCoreServices.h> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 20 matching lines...) Expand all Loading... |
31 #include "ios/chrome/grit/ios_theme_resources.h" | 31 #include "ios/chrome/grit/ios_theme_resources.h" |
32 #include "ios/web/public/referrer.h" | 32 #include "ios/web/public/referrer.h" |
33 #import "net/base/mac/url_conversions.h" | 33 #import "net/base/mac/url_conversions.h" |
34 #include "skia/ext/skia_utils_ios.h" | 34 #include "skia/ext/skia_utils_ios.h" |
35 #include "ui/base/page_transition_types.h" | 35 #include "ui/base/page_transition_types.h" |
36 #include "ui/base/resource/resource_bundle.h" | 36 #include "ui/base/resource/resource_bundle.h" |
37 #include "ui/base/window_open_disposition.h" | 37 #include "ui/base/window_open_disposition.h" |
38 #include "ui/gfx/color_palette.h" | 38 #include "ui/gfx/color_palette.h" |
39 #include "ui/gfx/image/image.h" | 39 #include "ui/gfx/image/image.h" |
40 | 40 |
| 41 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 42 #error "This file requires ARC support." |
| 43 #endif |
| 44 |
41 using base::UserMetricsAction; | 45 using base::UserMetricsAction; |
42 | 46 |
43 namespace { | 47 namespace { |
44 // The color of the rest of the URL (i.e. after the TLD) in the omnibox. | 48 // The color of the rest of the URL (i.e. after the TLD) in the omnibox. |
45 UIColor* BaseTextColor() { | 49 UIColor* BaseTextColor() { |
46 return [UIColor colorWithWhite:(161 / 255.0) alpha:1.0]; | 50 return [UIColor colorWithWhite:(161 / 255.0) alpha:1.0]; |
47 } | 51 } |
48 | 52 |
49 // The color of the https when there is an error. | 53 // The color of the https when there is an error. |
50 UIColor* ErrorTextColor() { | 54 UIColor* ErrorTextColor() { |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 | 168 |
165 OmniboxViewIOS::OmniboxViewIOS(OmniboxTextFieldIOS* field, | 169 OmniboxViewIOS::OmniboxViewIOS(OmniboxTextFieldIOS* field, |
166 WebOmniboxEditController* controller, | 170 WebOmniboxEditController* controller, |
167 ios::ChromeBrowserState* browser_state, | 171 ios::ChromeBrowserState* browser_state, |
168 id<PreloadProvider> preloader, | 172 id<PreloadProvider> preloader, |
169 id<OmniboxPopupPositioner> positioner) | 173 id<OmniboxPopupPositioner> positioner) |
170 : OmniboxView( | 174 : OmniboxView( |
171 controller, | 175 controller, |
172 base::MakeUnique<ChromeOmniboxClientIOS>(controller, browser_state)), | 176 base::MakeUnique<ChromeOmniboxClientIOS>(controller, browser_state)), |
173 browser_state_(browser_state), | 177 browser_state_(browser_state), |
174 field_([field retain]), | 178 field_(field), |
175 controller_(controller), | 179 controller_(controller), |
176 preloader_(preloader), | 180 preloader_(preloader), |
177 ignore_popup_updates_(false), | 181 ignore_popup_updates_(false), |
178 attributing_display_string_(nil) { | 182 attributing_display_string_(nil) { |
179 popup_view_.reset(new OmniboxPopupViewIOS(this, model(), positioner)); | 183 popup_view_.reset(new OmniboxPopupViewIOS(this, model(), positioner)); |
180 field_delegate_.reset( | 184 field_delegate_.reset( |
181 [[AutocompleteTextFieldDelegate alloc] initWithEditView:this]); | 185 [[AutocompleteTextFieldDelegate alloc] initWithEditView:this]); |
182 [field_ setDelegate:field_delegate_]; | 186 [field_ setDelegate:field_delegate_]; |
183 [field_ addTarget:field_delegate_ | 187 [field_ addTarget:field_delegate_ |
184 action:@selector(textFieldDidChange:) | 188 action:@selector(textFieldDidChange:) |
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
677 UIColor* color = GetSecureTextColor(security_level, [field_ incognito]); | 681 UIColor* color = GetSecureTextColor(security_level, [field_ incognito]); |
678 if (color) { | 682 if (color) { |
679 [attributing_display_string_ addAttribute:NSForegroundColorAttributeName | 683 [attributing_display_string_ addAttribute:NSForegroundColorAttributeName |
680 value:color | 684 value:color |
681 range:range.ToNSRange()]; | 685 range:range.ToNSRange()]; |
682 } | 686 } |
683 } | 687 } |
684 | 688 |
685 NSAttributedString* OmniboxViewIOS::ApplyTextAttributes( | 689 NSAttributedString* OmniboxViewIOS::ApplyTextAttributes( |
686 const base::string16& text) { | 690 const base::string16& text) { |
687 NSMutableAttributedString* as = [[[NSMutableAttributedString alloc] | 691 NSMutableAttributedString* as = [[NSMutableAttributedString alloc] |
688 initWithString:base::SysUTF16ToNSString(text)] autorelease]; | 692 initWithString:base::SysUTF16ToNSString(text)]; |
689 // Cache a pointer to the attributed string to allow the superclass' | 693 // Cache a pointer to the attributed string to allow the superclass' |
690 // virtual method invocations to add attributes. | 694 // virtual method invocations to add attributes. |
691 DCHECK(attributing_display_string_ == nil); | 695 DCHECK(attributing_display_string_ == nil); |
692 base::AutoReset<NSMutableAttributedString*> resetter( | 696 base::AutoReset<NSMutableAttributedString*> resetter( |
693 &attributing_display_string_, as); | 697 &attributing_display_string_, as); |
694 UpdateTextStyle(text, AutocompleteSchemeClassifierImpl()); | 698 UpdateTextStyle(text, AutocompleteSchemeClassifierImpl()); |
695 return as; | 699 return as; |
696 } | 700 } |
697 | 701 |
698 void OmniboxViewIOS::UpdateAppearance() { | 702 void OmniboxViewIOS::UpdateAppearance() { |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
869 // is being left out for now because it was not present before the OmniboxView | 873 // is being left out for now because it was not present before the OmniboxView |
870 // rewrite. | 874 // rewrite. |
871 #if 0 | 875 #if 0 |
872 // When editing is in progress, the url text is not colored, so there is | 876 // When editing is in progress, the url text is not colored, so there is |
873 // nothing to emphasize. (Calling SetText() in that situation would also be | 877 // nothing to emphasize. (Calling SetText() in that situation would also be |
874 // harmful, as it would reset the carat position to the end of the text.) | 878 // harmful, as it would reset the carat position to the end of the text.) |
875 if (!IsEditingOrEmpty()) | 879 if (!IsEditingOrEmpty()) |
876 SetText(GetText()); | 880 SetText(GetText()); |
877 #endif | 881 #endif |
878 } | 882 } |
OLD | NEW |