| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/clean/chrome/browser/ui/toolbar/toolbar_mediator.h" | 5 #import "ios/clean/chrome/browser/ui/toolbar/toolbar_mediator.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "base/strings/sys_string_conversions.h" | 8 #include "base/strings/sys_string_conversions.h" |
| 9 #import "ios/clean/chrome/browser/ui/toolbar/toolbar_consumer.h" | 9 #import "ios/clean/chrome/browser/ui/toolbar/toolbar_consumer.h" |
| 10 #import "ios/web/public/navigation_manager.h" | 10 #import "ios/web/public/navigation_manager.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 @synthesize webState = _webState; | 26 @synthesize webState = _webState; |
| 27 | 27 |
| 28 - (void)dealloc { | 28 - (void)dealloc { |
| 29 _webStateObserver.reset(); | 29 _webStateObserver.reset(); |
| 30 _webState = nullptr; | 30 _webState = nullptr; |
| 31 } | 31 } |
| 32 | 32 |
| 33 #pragma mark - CRWWebStateObserver | 33 #pragma mark - CRWWebStateObserver |
| 34 | 34 |
| 35 - (void)webState:(web::WebState*)webState didLoadPageWithSuccess:(BOOL)success { | 35 - (void)webState:(web::WebState*)webState didLoadPageWithSuccess:(BOOL)success { |
| 36 const GURL& pageURL = webState->GetVisibleURL(); | |
| 37 [self.consumer setCurrentPageText:base::SysUTF8ToNSString(pageURL.spec())]; | |
| 38 [self.consumer | 36 [self.consumer |
| 39 setCanGoBack:self.webState->GetNavigationManager()->CanGoBack()]; | 37 setCanGoBack:self.webState->GetNavigationManager()->CanGoBack()]; |
| 40 [self.consumer | 38 [self.consumer |
| 41 setCanGoForward:self.webState->GetNavigationManager()->CanGoForward()]; | 39 setCanGoForward:self.webState->GetNavigationManager()->CanGoForward()]; |
| 42 } | 40 } |
| 43 | 41 |
| 44 - (void)webStateDidStartLoading:(web::WebState*)webState { | 42 - (void)webStateDidStartLoading:(web::WebState*)webState { |
| 45 [self.consumer setIsLoading:self.webState->IsLoading()]; | 43 [self.consumer setIsLoading:self.webState->IsLoading()]; |
| 46 } | 44 } |
| 47 | 45 |
| 48 - (void)webStateDidStopLoading:(web::WebState*)webState { | 46 - (void)webStateDidStopLoading:(web::WebState*)webState { |
| 49 [self.consumer setIsLoading:self.webState->IsLoading()]; | 47 [self.consumer setIsLoading:self.webState->IsLoading()]; |
| 50 } | 48 } |
| 51 | 49 |
| 50 - (void)webState:(web::WebState*)webState |
| 51 didChangeLoadingProgress:(double)progress { |
| 52 [self.consumer setProgress:progress]; |
| 53 } |
| 54 |
| 52 #pragma mark - Setters | 55 #pragma mark - Setters |
| 53 | 56 |
| 54 - (void)setWebState:(web::WebState*)webState { | 57 - (void)setWebState:(web::WebState*)webState { |
| 55 _webState = webState; | 58 _webState = webState; |
| 56 _webStateObserver = | 59 _webStateObserver = |
| 57 base::MakeUnique<web::WebStateObserverBridge>(_webState, self); | 60 base::MakeUnique<web::WebStateObserverBridge>(_webState, self); |
| 58 if (self.consumer) { | 61 if (self.consumer) { |
| 59 [self updateConsumer]; | 62 [self updateConsumer]; |
| 60 } | 63 } |
| 61 } | 64 } |
| 62 | 65 |
| 63 - (void)setConsumer:(id<ToolbarConsumer>)consumer { | 66 - (void)setConsumer:(id<ToolbarConsumer>)consumer { |
| 64 _consumer = consumer; | 67 _consumer = consumer; |
| 65 if (self.webState) { | 68 if (self.webState) { |
| 66 [self updateConsumer]; | 69 [self updateConsumer]; |
| 67 } | 70 } |
| 68 } | 71 } |
| 69 | 72 |
| 70 #pragma mark - Helper methods | 73 #pragma mark - Helper methods |
| 71 | 74 |
| 72 // Updates the consumer to match the current WebState. | 75 // Updates the consumer to match the current WebState. |
| 73 - (void)updateConsumer { | 76 - (void)updateConsumer { |
| 74 DCHECK(self.webState); | 77 DCHECK(self.webState); |
| 75 DCHECK(self.consumer); | 78 DCHECK(self.consumer); |
| 76 const GURL& pageURL = self.webState->GetVisibleURL(); | |
| 77 [self.consumer | 79 [self.consumer |
| 78 setCanGoForward:self.webState->GetNavigationManager()->CanGoForward()]; | 80 setCanGoForward:self.webState->GetNavigationManager()->CanGoForward()]; |
| 79 [self.consumer | 81 [self.consumer |
| 80 setCanGoBack:self.webState->GetNavigationManager()->CanGoBack()]; | 82 setCanGoBack:self.webState->GetNavigationManager()->CanGoBack()]; |
| 81 [self.consumer setCurrentPageText:base::SysUTF8ToNSString(pageURL.spec())]; | |
| 82 [self.consumer setIsLoading:self.webState->IsLoading()]; | 83 [self.consumer setIsLoading:self.webState->IsLoading()]; |
| 83 } | 84 } |
| 84 | 85 |
| 85 @end | 86 @end |
| OLD | NEW |