Fix iOS build.
[WebKit-https.git] / Source / WebKit2 / UIProcess / API / Cocoa / WKWebView.h
1 /*
2  * Copyright (C) 2014 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #import <Foundation/Foundation.h>
27 #import <WebKit2/WKFoundation.h>
28
29 #if WK_API_ENABLED
30
31 #if TARGET_OS_IPHONE
32 #import <UIKit/UIKit.h>
33 #else
34 #import <AppKit/AppKit.h>
35 #endif
36
37 @class WKBackForwardList;
38 @class WKBackForwardListItem;
39 @class WKNavigation;
40 @class WKWebViewConfiguration;
41
42 @protocol WKNavigationDelegate;
43 @protocol WKUIDelegate;
44
45 /*!
46  A @link WKWebView @/link displays interactive Web content.
47  @helperclass @link WKWebViewConfiguration @/link
48  Used to configure @link WKWebView @/link instances.
49  */
50 #if TARGET_OS_IPHONE
51 WK_API_CLASS
52 @interface WKWebView : UIView
53 #else
54 WK_API_CLASS
55 @interface WKWebView : NSView
56 #endif
57
58 /*! @abstract A copy of the configuration with which the @link WKWebView @/link was initialized. */
59 @property (nonatomic, readonly) WKWebViewConfiguration *configuration;
60
61 @property (nonatomic, weak) id <WKNavigationDelegate> navigationDelegate;
62
63 @property (nonatomic, weak) id <WKUIDelegate> UIDelegate;
64
65 /*! @abstract The view's back-forward list. */
66 @property (nonatomic, readonly) WKBackForwardList *backForwardList;
67
68 /*! @abstract Returns a view initialized with the specified frame and configuration.
69  @param frame The frame for the new view.
70  @param configuration The configuration for the new view.
71  @result An initialized view, or nil if the object could not be initialized.
72  @discussion This is a designated initializer. You can use @link -initWithFrame: @/link to
73  initialize an instance with the default configuration.
74
75  The initializer copies
76  @link //apple_ref/doc/methodparam/WKWebView/initWithFrame:configuration:/configuration
77  configuration@/link, so mutating it after initialization has no effect on the
78  @link WKWebView @/link instance.
79  */
80 - (instancetype)initWithFrame:(CGRect)frame configuration:(WKWebViewConfiguration *)configuration WK_DESIGNATED_INITIALIZER;
81
82 - (WKNavigation *)loadRequest:(NSURLRequest *)request;
83
84 /*! @abstract Navigates to an item from the back-forward list and sets it as the current item.
85  @param item The item to navigate to. Must be one of the items in the receiver's back-forward
86  list.
87  @result A new navigation to requested item, or nil if it is the current item.
88  @seealso backForwardList
89  */
90 - (WKNavigation *)goToBackForwardListItem:(WKBackForwardListItem *)item;
91
92 @property (nonatomic, readonly) NSString *title;
93
94 /*! @abstract The active URL. @link WKWebView @/link is KVO-compliant for this property.
95  @discussion This is the URL that should be reflected in the user interface.
96  */
97 @property (nonatomic, readonly) NSURL *activeURL;
98
99 /*! @abstract Whether the view is loading content. @link WKWebView @/link is KVO-compliant for this
100  property. */
101 @property (nonatomic, readonly, getter=isLoading) BOOL loading;
102
103 /*!
104  @abstract An estimate of the fraction complete for a document load. @link WKWebView @/link is
105  KVO-compliant for this property.
106  @discussion This value will range from 0 to 1 and, once a load completes, will remain at 1.0
107  until a new load starts, at which point it will be reset to 0. The value is an estimate based
108  on the total number of bytes expected to be received for a document,
109  including all its possible subresources.
110  */
111 @property (nonatomic, readonly) double estimatedProgress;
112
113 @property (nonatomic, readonly) BOOL hasOnlySecureContent;
114
115 @property (readonly) BOOL canGoBack;
116 @property (readonly) BOOL canGoForward;
117
118 - (WKNavigation *)goBack;
119 - (WKNavigation *)goForward;
120
121 @property (nonatomic) BOOL allowsBackForwardNavigationGestures;
122
123 #if TARGET_OS_IPHONE
124 @property (nonatomic, readonly) UIScrollView *scrollView;
125 #else
126 @property (nonatomic) BOOL allowsMagnification;
127 @property (nonatomic) CGFloat magnification;
128
129 - (void)setMagnification:(CGFloat)magnification centeredAtPoint:(CGPoint)point;
130 #endif
131
132 @end
133
134 #if !TARGET_OS_IPHONE
135
136 @interface WKWebView (WKIBActions) <NSUserInterfaceValidations>
137
138 - (IBAction)goBack:(id)sender;
139 - (IBAction)goForward:(id)sender;
140
141 - (IBAction)stopLoading:(id)sender;
142
143 @end
144
145 #endif
146
147 #endif