Deprecate ObjC SPI in Deprecated Xcode group
[WebKit-https.git] / Source / WebKit / UIProcess / API / Cocoa / WKBrowsingContextController.h
1 /*
2  * Copyright (C) 2011 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 <WebKit/WKBrowsingContextGroup.h>
28 #import <WebKit/WKFoundation.h>
29 #import <WebKit/WKProcessGroup.h>
30
31 #if WK_API_ENABLED
32
33 @class WKBackForwardList;
34 @class WKBackForwardListItem;
35 @protocol WKBrowsingContextHistoryDelegate;
36 @protocol WKBrowsingContextLoadDelegate;
37 @protocol WKBrowsingContextPolicyDelegate;
38
39 WK_CLASS_DEPRECATED_WITH_REPLACEMENT("WKWebView", macos(10.10, WK_MAC_TBA), ios(8.0, WK_IOS_TBA))
40 @interface WKBrowsingContextController : NSObject
41
42 #pragma mark Delegates
43
44 @property (weak) id <WKBrowsingContextLoadDelegate> loadDelegate;
45 @property (weak) id <WKBrowsingContextPolicyDelegate> policyDelegate;
46 @property (weak) id <WKBrowsingContextHistoryDelegate> historyDelegate;
47
48 #pragma mark Loading
49
50 + (void)registerSchemeForCustomProtocol:(NSString *)scheme WK_API_DEPRECATED_WITH_REPLACEMENT("WKURLSchemeHandler", macos(10.10, WK_MAC_TBA), ios(8.0, WK_IOS_TBA));
51 + (void)unregisterSchemeForCustomProtocol:(NSString *)scheme WK_API_DEPRECATED_WITH_REPLACEMENT("WKURLSchemeHandler", macos(10.10, WK_MAC_TBA), ios(8.0, WK_IOS_TBA));
52
53 /* Load a request. This is only valid for requests of non-file: URLs. Passing a
54    file: URL will throw an exception. */
55 - (void)loadRequest:(NSURLRequest *)request;
56 - (void)loadRequest:(NSURLRequest *)request userData:(id)userData;
57
58 /* Load a file: URL. Opens the sandbox only for files within allowedDirectory.
59     - Passing a non-file: URL to either parameter will yield an exception.
60     - Passing nil as the allowedDirectory will open the entire file-system for
61       reading.
62 */
63 - (void)loadFileURL:(NSURL *)URL restrictToFilesWithin:(NSURL *)allowedDirectory;
64 - (void)loadFileURL:(NSURL *)URL restrictToFilesWithin:(NSURL *)allowedDirectory userData:(id)userData;
65
66 /* Load a webpage using the passed in string as its contents. */
67 - (void)loadHTMLString:(NSString *)HTMLString baseURL:(NSURL *)baseURL;
68 - (void)loadHTMLString:(NSString *)HTMLString baseURL:(NSURL *)baseURL userData:(id)userData;
69
70 - (void)loadAlternateHTMLString:(NSString *)string baseURL:(NSURL *)baseURL forUnreachableURL:(NSURL *)unreachableURL;
71
72 /* Load a webpage using the passed in data as its contents. */
73 - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL;
74 - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL userData:(id)userData;
75
76 /* Stops the load associated with the active URL. */
77 - (void)stopLoading;
78
79 /* Reload the currently active URL. */
80 - (void)reload;
81
82 /* Reload the currently active URL, bypassing caches. */
83 - (void)reloadFromOrigin;
84
85 @property (copy) NSString *applicationNameForUserAgent;
86 @property (copy) NSString *customUserAgent;
87
88 #pragma mark Back/Forward
89
90 /* Go to the next webpage in the back/forward list. */
91 - (void)goForward;
92
93 /* Whether there is a next webpage in the back/forward list. */
94 @property(readonly) BOOL canGoForward;
95
96 /* Go to the previous webpage in the back/forward list. */
97 - (void)goBack;
98
99 /* Whether there is a previous webpage in the back/forward list. */
100 @property(readonly) BOOL canGoBack;
101
102 - (void)goToBackForwardListItem:(WKBackForwardListItem *)item;
103
104 @property(readonly) WKBackForwardList *backForwardList;
105
106 #pragma mark Active Load Introspection
107
108 @property (readonly, getter=isLoading) BOOL loading;
109
110 /* URL for the active load. This is the URL that should be shown in user interface. */
111 @property(readonly) NSURL *activeURL;
112
113 /* URL for a request that has been sent, but no response has been received yet. */
114 @property(readonly) NSURL *provisionalURL;
115
116 /* URL for a request that has been received, and is now being used. */
117 @property(readonly) NSURL *committedURL;
118
119 @property(readonly) NSURL *unreachableURL;
120
121 @property(readonly) double estimatedProgress;
122
123 #pragma mark Active Document Introspection
124
125 /* Title of the document associated with the active load. */
126 @property(readonly) NSString *title;
127
128 @property (readonly) NSArray *certificateChain;
129
130 #pragma mark Zoom
131
132 /* Sets the text zoom for the active URL. */
133 @property CGFloat textZoom;
134
135 /* Sets the text zoom for the active URL. */
136 @property CGFloat pageZoom;
137
138 @end
139
140 #endif // WK_API_ENABLED