blob: c2799234df117e756c2c51b20a416d53dde01249 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
#import "remoting/ios/app/web_view_controller.h"
#import <WebKit/WebKit.h>
#import "remoting/ios/app/remoting_theme.h"
#import "remoting/ios/app/view_utils.h"
@interface WebViewController () {
NSString* _urlString;
}
@end
@implementation WebViewController
- (instancetype)initWithUrl:(NSString*)url title:(NSString*)title {
if (self = [super init]) {
_urlString = url;
self.title = title;
}
return self;
}
#pragma mark - UIViewController
- (void)loadView {
WKWebView* webView =
[[WKWebView alloc] initWithFrame:CGRectZero
configuration:[[WKWebViewConfiguration alloc] init]];
NSURLRequest* request =
[NSURLRequest requestWithURL:[NSURL URLWithString:_urlString]];
[webView loadRequest:request];
self.view = webView;
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// Show a close button if it is the first view in the navigation stack.
UIViewController* firstViewController =
[self.navigationController.viewControllers firstObject];
if ((firstViewController == self ||
firstViewController == self.parentViewController) &&
!self.navigationItem.leftBarButtonItem &&
!self.navigationItem.leftBarButtonItems.count) {
self.navigationItem.leftBarButtonItem =
[[UIBarButtonItem alloc] initWithImage:RemotingTheme.closeIcon
style:UIBarButtonItemStylePlain
target:self
action:@selector(didTapClose:)];
remoting::SetAccessibilityInfoFromImage(
self.navigationItem.leftBarButtonItem);
}
}
#pragma mark - Private
- (void)didTapClose:(id)button {
[self dismissViewControllerAnimated:YES completion:nil];
}
@end