| 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]) {
|
| StaticHtmlNativeContent* staticNativeController =
|
| [[[OfflinePageNativeContent alloc] initWithLoader:self
|
| browserState:_browserState
|
|
|