5a2942c5ec4ec52240ec5aac84a1bbcd5fa6d237
[WebKit-https.git] / Source / WebKit2 / UIProcess / API / Cocoa / WKPreferences.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 <WebKit/WKFoundation.h>
27
28 #if WK_API_ENABLED
29
30 #import <CoreGraphics/CoreGraphics.h>
31 #import <Foundation/Foundation.h>
32
33 /*! WKPreferences encapsulates the preferences you can change for one or more WKWebViews. 
34  A @link WKWebView @/link can specify which WKPreferences object it uses through its @link WKWebViewConfiguration @/link.
35  */
36 WK_CLASS_AVAILABLE(10_10, 8_0)
37 @interface      : NSObject
38
39 /*! @abstract Returns an initialized WKPreferences object.
40  @param userDefaultsKeyPrefix The user defaults key prefix.
41  @discussion If the userDefaultsKeyPrefix argument is non-nil, it is prepended to the keys used to store preferences
42  in the user defaults database. If the argument is nil, the preferences object won't save anything to the user defaults database.
43  */
44 - (instancetype)initWithUserDefaultsKeyPrefix:(NSString *)userDefaultsKeyPrefix WK_DESIGNATED_INITIALIZER;
45
46 /*! @abstract The user defaults key prefix.
47  */
48 @property (nonatomic, readonly) NSString *userDefaultsKeyPrefix;
49
50 /*! @abstract The minimum font size in points. Defaults to 0.
51  */
52 @property (nonatomic) CGFloat minimumFontSize;
53
54 /*! @abstract Whether JavaScript is enabled. Defaults to YES.
55  */
56 @property (nonatomic, getter=isJavaScriptEnabled) BOOL javaScriptEnabled;
57
58 /*! @abstract Whether JavaScript can open windows without user interaction. Defaults to NO on iOS and YES on OS X.
59  */
60 @property (nonatomic) BOOL javaScriptCanOpenWindowsAutomatically;
61
62 /*! @abstract Whether the WKWebView suppresses content rendering until it is fully loaded into memory. Defaults to NO.
63  */
64 @property (nonatomic) BOOL suppressesIncrementalRendering;
65
66 #if TARGET_OS_IPHONE
67 /*! @abstract Whether HTML5 videos play inline or use the native full-screen controller. Defaults to NO.
68  */
69 @property (nonatomic) BOOL allowsInlineMediaPlayback;
70
71 /*! @abstract Whether HTML5 videos can play automatically or require the user to start playing them. Defaults to YES.
72  */
73 @property (nonatomic) BOOL mediaPlaybackRequiresUserAction;
74
75 /*! @abstract Whether AirPlay is allowed. Defaults to YES.
76  */
77 @property (nonatomic) BOOL mediaPlaybackAllowsAirPlay;
78
79 #endif
80
81 #if !TARGET_OS_IPHONE
82 /*! @abstract Whether Java is enabled. Defaults to YES.
83  */
84 @property (nonatomic, getter=isJavaEnabled) BOOL javaEnabled;
85
86 /*! abstract Whether plug-ins are enabled. Defaults to YES.
87  */
88 @property (nonatomic, getter=arePlugInsEnabled) BOOL plugInsEnabled;
89 #endif
90
91 @end
92
93 #endif