Chromium Code Reviews| Index: ios/chrome/browser/ui/browser_view_controller.mm |
| diff --git a/ios/chrome/browser/ui/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view_controller.mm |
| index 3b33bf054592754095b17443f657a14df97b46b4..e8fb03e09104f6d2962e98d6109c986298266329 100644 |
| --- a/ios/chrome/browser/ui/browser_view_controller.mm |
| +++ b/ios/chrome/browser/ui/browser_view_controller.mm |
| @@ -2970,9 +2970,14 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver { |
| - (BOOL)hasControllerForURL:(const GURL&)url { |
| std::string host(url.host()); |
| + if (host == kChromeUIOfflineHost) { |
| + // Only allow offline URL that are fully specified. |
| + return reading_list::IsOfflineURLValid( |
| + url, ReadingListModelFactory::GetForBrowserState(_browserState)); |
| + } |
| return host == kChromeUINewTabHost || host == kChromeUIBookmarksHost || |
| - host == kChromeUITermsHost || host == kChromeUIOfflineHost; |
| + host == kChromeUITermsHost; |
| } |
| - (id<CRWNativeContent>)controllerForURL:(const GURL&)url |
| @@ -3025,7 +3030,8 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver { |
| [self setOverScrollActionControllerToStaticNativeContent: |
| staticNativeController]; |
| nativeController = staticNativeController; |
| - } else if (url_host == kChromeUIOfflineHost) { |
| + } else if (url_host == kChromeUIOfflineHost && |
| + [self hasControllerForURL:url]) { |
|
Eugene But (OOO till 7-30)
2017/04/07 15:17:52
Should |[self hasControllerForURL:url]| be inside
Olivier
2017/04/07 15:44:27
This is possible if the user taps a wrong URL.
In
|
| StaticHtmlNativeContent* staticNativeController = |
| [[[OfflinePageNativeContent alloc] initWithLoader:self |
| browserState:_browserState |