Index: ios/chrome/browser/ui/reader_mode/reader_mode_controller.h |
diff --git a/ios/chrome/browser/ui/reader_mode/reader_mode_controller.h b/ios/chrome/browser/ui/reader_mode/reader_mode_controller.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9f9bcc26847d6a31d23c49fc5315672292e00541 |
--- /dev/null |
+++ b/ios/chrome/browser/ui/reader_mode/reader_mode_controller.h |
@@ -0,0 +1,49 @@ |
+// Copyright 2015 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. |
+ |
+#ifndef IOS_CHROME_BROWSER_UI_READER_MODE_READER_MODE_CONTROLLER_H_ |
+#define IOS_CHROME_BROWSER_UI_READER_MODE_READER_MODE_CONTROLLER_H_ |
+ |
+#import <UIKit/UIKit.h> |
+ |
+class GURL; |
+class ReaderModeChecker; |
+ |
+namespace web { |
+class WebState; |
+} |
+ |
+@protocol ReaderModeControllerDelegate |
+// Called by the controller to retrieve the superview that the reader mode |
+// panel should be a subview of. The panel's position is based on the size of |
+// the superview, which is presumed to fill the device's screen. |
+- (UIView*)superviewForReaderModePanel; |
+ |
+// Called when the distillation finishes. |
+- (void)loadReaderModeHTML:(NSString*)html forURL:(const GURL&)url; |
+@end |
+ |
+// A reader mode controller can trigger distillations on the current visible |
+// page on a web state. |
+@interface ReaderModeController : NSObject |
+ |
+- (instancetype)initWithWebState:(web::WebState*)state |
+ delegate:(id<ReaderModeControllerDelegate>)delegate |
+ NS_DESIGNATED_INITIALIZER; |
+ |
+- (instancetype)init NS_UNAVAILABLE; |
+ |
+// The object that checks if a URL is suitable for reader mode. |
+@property(nonatomic, readonly, assign) ReaderModeChecker* checker; |
+ |
+// Starts a distillation, animates a view on screen to show a waiting UI to the |
+// user while the distillation is ongoing, and calls the delegate once finished. |
+- (void)switchToReaderMode; |
+// Removes the waiting view from the superview returned by the delegate. |
+- (void)exitReaderMode; |
+// Instructs the controller to detach itself from the web state. |
+- (void)detachFromWebState; |
+@end |
+ |
+#endif // IOS_CHROME_BROWSER_UI_READER_MODE_READER_MODE_CONTROLLER_H_ |