| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "ios/chrome/browser/ui/ntp/new_tab_page_controller.h" | 5 #import "ios/chrome/browser/ui/ntp/new_tab_page_controller.h" |
| 6 | 6 |
| 7 #import <QuartzCore/QuartzCore.h> | 7 #import <QuartzCore/QuartzCore.h> |
| 8 | 8 |
| 9 #import "base/ios/weak_nsobject.h" | 9 #import "base/ios/weak_nsobject.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| 11 #include "base/mac/objc_property_releaser.h" | 11 #include "base/mac/objc_release_properties.h" |
| 12 #include "base/metrics/user_metrics.h" | 12 #include "base/metrics/user_metrics.h" |
| 13 #include "base/metrics/user_metrics_action.h" | 13 #include "base/metrics/user_metrics_action.h" |
| 14 #include "components/prefs/pref_service.h" | 14 #include "components/prefs/pref_service.h" |
| 15 #include "components/search_engines/template_url_service.h" | 15 #include "components/search_engines/template_url_service.h" |
| 16 #include "components/strings/grit/components_strings.h" | 16 #include "components/strings/grit/components_strings.h" |
| 17 #include "components/sync_sessions/synced_session.h" | 17 #include "components/sync_sessions/synced_session.h" |
| 18 #include "ios/chrome/browser/browser_state/chrome_browser_state.h" | 18 #include "ios/chrome/browser/browser_state/chrome_browser_state.h" |
| 19 #include "ios/chrome/browser/pref_names.h" | 19 #include "ios/chrome/browser/pref_names.h" |
| 20 #include "ios/chrome/browser/search_engines/template_url_service_factory.h" | 20 #include "ios/chrome/browser/search_engines/template_url_service_factory.h" |
| 21 #include "ios/chrome/browser/sync/sync_setup_service.h" | 21 #include "ios/chrome/browser/sync/sync_setup_service.h" |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 MOST_VISITED_PAGE_ID = 1 << kPageIdOffset, | 101 MOST_VISITED_PAGE_ID = 1 << kPageIdOffset, |
| 102 BOOKMARKS_PAGE_ID = 3 << kPageIdOffset, | 102 BOOKMARKS_PAGE_ID = 3 << kPageIdOffset, |
| 103 OPEN_TABS_PAGE_ID = 4 << kPageIdOffset, | 103 OPEN_TABS_PAGE_ID = 4 << kPageIdOffset, |
| 104 }; | 104 }; |
| 105 | 105 |
| 106 } // anonymous namespace | 106 } // anonymous namespace |
| 107 | 107 |
| 108 @interface NewTabPageController () { | 108 @interface NewTabPageController () { |
| 109 ios::ChromeBrowserState* browserState_; // Weak. | 109 ios::ChromeBrowserState* browserState_; // Weak. |
| 110 id<UrlLoader> loader_; // Weak. | 110 id<UrlLoader> loader_; // Weak. |
| 111 id<CRWSwipeRecognizerProvider> swipeRecognizerProvider_; // Weak. | |
| 112 id<NewTabPageControllerObserver> newTabPageObserver_; // Weak. | 111 id<NewTabPageControllerObserver> newTabPageObserver_; // Weak. |
| 113 | 112 |
| 114 NewTabPageView* newTabPageView_; | |
| 115 | |
| 116 base::scoped_nsobject<RecentTabsPanelController> openTabsController_; | 113 base::scoped_nsobject<RecentTabsPanelController> openTabsController_; |
| 117 // Has the scrollView been initialized. | 114 // Has the scrollView been initialized. |
| 118 BOOL scrollInitialized_; | 115 BOOL scrollInitialized_; |
| 119 | 116 |
| 120 // Dominant color cache. Key: (NSString*)url, val: (UIColor*)dominantColor. | 117 // Dominant color cache. Key: (NSString*)url, val: (UIColor*)dominantColor. |
| 121 NSMutableDictionary* dominantColorCache_; // Weak, owned by bvc. | 118 NSMutableDictionary* dominantColorCache_; // Weak, owned by bvc. |
| 122 | 119 |
| 123 // Delegate to focus and blur the omnibox. | 120 // Delegate to focus and blur the omnibox. |
| 124 base::WeakNSProtocol<id<OmniboxFocuser>> focuser_; | 121 base::WeakNSProtocol<id<OmniboxFocuser>> focuser_; |
| 125 | 122 |
| 126 // Delegate to fetch the ToolbarModel and current web state from. | 123 // Delegate to fetch the ToolbarModel and current web state from. |
| 127 base::WeakNSProtocol<id<WebToolbarDelegate>> webToolbarDelegate_; | 124 base::WeakNSProtocol<id<WebToolbarDelegate>> webToolbarDelegate_; |
| 128 | 125 |
| 129 base::scoped_nsobject<TabModel> tabModel_; | 126 base::scoped_nsobject<TabModel> tabModel_; |
| 130 | |
| 131 base::mac::ObjCPropertyReleaser propertyReleaser_NewTabPageController_; | |
| 132 } | 127 } |
| 133 | 128 |
| 134 // Load and bring panel into view. | 129 // Load and bring panel into view. |
| 135 - (void)showPanel:(NewTabPageBarItem*)item; | 130 - (void)showPanel:(NewTabPageBarItem*)item; |
| 136 // Load panel on demand. | 131 // Load panel on demand. |
| 137 - (BOOL)loadPanel:(NewTabPageBarItem*)item; | 132 - (BOOL)loadPanel:(NewTabPageBarItem*)item; |
| 138 // After a panel changes, update metrics and prefs information. | 133 // After a panel changes, update metrics and prefs information. |
| 139 - (void)panelChanged:(NewTabPageBarItem*)item; | 134 - (void)panelChanged:(NewTabPageBarItem*)item; |
| 140 // Update current controller and tab bar index. Used to call reload. | 135 // Update current controller and tab bar index. Used to call reload. |
| 141 - (void)updateCurrentController:(NewTabPageBarItem*)item | 136 - (void)updateCurrentController:(NewTabPageBarItem*)item |
| (...skipping 27 matching lines...) Expand all Loading... |
| 169 loader:(id<UrlLoader>)loader | 164 loader:(id<UrlLoader>)loader |
| 170 focuser:(id<OmniboxFocuser>)focuser | 165 focuser:(id<OmniboxFocuser>)focuser |
| 171 ntpObserver:(id<NewTabPageControllerObserver>)ntpObserver | 166 ntpObserver:(id<NewTabPageControllerObserver>)ntpObserver |
| 172 browserState:(ios::ChromeBrowserState*)browserState | 167 browserState:(ios::ChromeBrowserState*)browserState |
| 173 colorCache:(NSMutableDictionary*)colorCache | 168 colorCache:(NSMutableDictionary*)colorCache |
| 174 webToolbarDelegate:(id<WebToolbarDelegate>)webToolbarDelegate | 169 webToolbarDelegate:(id<WebToolbarDelegate>)webToolbarDelegate |
| 175 tabModel:(TabModel*)tabModel { | 170 tabModel:(TabModel*)tabModel { |
| 176 self = [super initWithNibName:nil url:url]; | 171 self = [super initWithNibName:nil url:url]; |
| 177 if (self) { | 172 if (self) { |
| 178 DCHECK(browserState); | 173 DCHECK(browserState); |
| 179 propertyReleaser_NewTabPageController_.Init(self, | |
| 180 [NewTabPageController class]); | |
| 181 browserState_ = browserState; | 174 browserState_ = browserState; |
| 182 loader_ = loader; | 175 loader_ = loader; |
| 183 newTabPageObserver_ = ntpObserver; | 176 newTabPageObserver_ = ntpObserver; |
| 184 focuser_.reset(focuser); | 177 focuser_.reset(focuser); |
| 185 webToolbarDelegate_.reset(webToolbarDelegate); | 178 webToolbarDelegate_.reset(webToolbarDelegate); |
| 186 tabModel_.reset([tabModel retain]); | 179 tabModel_.reset([tabModel retain]); |
| 187 dominantColorCache_ = colorCache; | 180 dominantColorCache_ = colorCache; |
| 188 self.title = l10n_util::GetNSString(IDS_NEW_TAB_TITLE); | 181 self.title = l10n_util::GetNSString(IDS_NEW_TAB_TITLE); |
| 189 scrollInitialized_ = NO; | 182 scrollInitialized_ = NO; |
| 190 | 183 |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 } | 268 } |
| 276 | 269 |
| 277 - (void)dealloc { | 270 - (void)dealloc { |
| 278 // Animations can last past the life of the NTP controller, nil out the | 271 // Animations can last past the life of the NTP controller, nil out the |
| 279 // delegate. | 272 // delegate. |
| 280 self.ntpView.scrollView.delegate = nil; | 273 self.ntpView.scrollView.delegate = nil; |
| 281 [googleLandingController_ setDelegate:nil]; | 274 [googleLandingController_ setDelegate:nil]; |
| 282 [bookmarkController_ setDelegate:nil]; | 275 [bookmarkController_ setDelegate:nil]; |
| 283 [openTabsController_ setDelegate:nil]; | 276 [openTabsController_ setDelegate:nil]; |
| 284 [[NSNotificationCenter defaultCenter] removeObserver:self]; | 277 [[NSNotificationCenter defaultCenter] removeObserver:self]; |
| 278 base::mac::ReleaseProperties(self); |
| 285 [super dealloc]; | 279 [super dealloc]; |
| 286 } | 280 } |
| 287 | 281 |
| 288 #pragma mark - CRWNativeContent | 282 #pragma mark - CRWNativeContent |
| 289 | 283 |
| 290 // Note: No point implementing -handleLowMemory because all native content | 284 // Note: No point implementing -handleLowMemory because all native content |
| 291 // views but the selected one are dropped, and the selected view doesn't | 285 // views but the selected one are dropped, and the selected view doesn't |
| 292 // need to do anything. | 286 // need to do anything. |
| 293 | 287 |
| 294 - (void)reload { | 288 - (void)reload { |
| (...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 676 | 670 |
| 677 - (void)updateNtpBarShadowForPanelController: | 671 - (void)updateNtpBarShadowForPanelController: |
| 678 (id<NewTabPagePanelProtocol>)ntpPanelController { | 672 (id<NewTabPagePanelProtocol>)ntpPanelController { |
| 679 if (currentController_ != ntpPanelController) | 673 if (currentController_ != ntpPanelController) |
| 680 return; | 674 return; |
| 681 [self.ntpView.tabBar | 675 [self.ntpView.tabBar |
| 682 setShadowAlpha:[ntpPanelController alphaForBottomShadow]]; | 676 setShadowAlpha:[ntpPanelController alphaForBottomShadow]]; |
| 683 } | 677 } |
| 684 | 678 |
| 685 @end | 679 @end |
| OLD | NEW |