Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(464)

Unified Diff: ios/chrome/browser/ui/first_run/static_file_view_controller.mm

Issue 2590473002: Upstream Chrome on iOS source code [5/11]. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/first_run/static_file_view_controller.mm
diff --git a/ios/chrome/browser/ui/first_run/static_file_view_controller.mm b/ios/chrome/browser/ui/first_run/static_file_view_controller.mm
new file mode 100644
index 0000000000000000000000000000000000000000..90616408a33c64b1c2f7e3d4884a985d4b2f5324
--- /dev/null
+++ b/ios/chrome/browser/ui/first_run/static_file_view_controller.mm
@@ -0,0 +1,76 @@
+// Copyright 2013 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.
+
+#include "ios/chrome/browser/ui/first_run/static_file_view_controller.h"
+
+#include <WebKit/WebKit.h>
+
+#include "base/logging.h"
+#include "base/mac/scoped_nsobject.h"
+#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
+#import "ios/chrome/browser/ui/material_components/utils.h"
+#include "ios/chrome/browser/ui/rtl_geometry.h"
+#import "ios/third_party/material_components_ios/src/components/AppBar/src/MaterialAppBar.h"
+#import "ios/third_party/material_components_ios/src/components/FlexibleHeader/src/MaterialFlexibleHeader.h"
+#import "ios/third_party/material_components_ios/src/components/Palettes/src/MaterialPalettes.h"
+#import "ios/web/public/web_view_creation_util.h"
+
+@interface StaticFileViewController ()<UIScrollViewDelegate> {
+ ios::ChromeBrowserState* _browserState; // weak
+ base::scoped_nsobject<NSURL> _URL;
+ // YES if the header has been configured for RTL.
+ BOOL _headerLaidOutForRTL;
+ // The web view used to display the static content.
+ base::scoped_nsobject<WKWebView> _webView;
+ // The header.
+ base::scoped_nsobject<MDCAppBar> _appBar;
+}
+
+@end
+
+@implementation StaticFileViewController
+
+- (instancetype)initWithBrowserState:(ios::ChromeBrowserState*)browserState
+ URL:(NSURL*)URL {
+ DCHECK(browserState);
+ DCHECK(URL);
+ self = [super init];
+ if (self) {
+ _appBar.reset([[MDCAppBar alloc] init]);
+ [self addChildViewController:[_appBar headerViewController]];
+ _browserState = browserState;
+ _URL.reset([URL retain]);
+ }
+ return self;
+}
+
+- (void)dealloc {
+ [_webView scrollView].delegate = nil;
+ [super dealloc];
+}
+
+#pragma mark - UIViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ _webView.reset([web::BuildWKWebView(self.view.bounds, _browserState) retain]);
+ [_webView setAutoresizingMask:UIViewAutoresizingFlexibleWidth |
+ UIViewAutoresizingFlexibleHeight];
+
+ // Loads terms of service into the web view.
+ [_webView loadRequest:[NSURLRequest requestWithURL:_URL]];
+ [_webView setBackgroundColor:[UIColor whiteColor]];
+ [self.view addSubview:_webView];
+
+ ConfigureAppBarWithCardStyle(_appBar);
+ [_appBar headerViewController].headerView.trackingScrollView =
+ [_webView scrollView];
+ [_webView scrollView].delegate = [_appBar headerViewController];
+
+ // Add the app bar at the end.
+ [_appBar addSubviewsToParent];
+}
+
+@end

Powered by Google App Engine
This is Rietveld 408576698