Diff
Modified: trunk/Source/WebKit2/ChangeLog (197869 => 197870)
--- trunk/Source/WebKit2/ChangeLog 2016-03-09 20:11:46 UTC (rev 197869)
+++ trunk/Source/WebKit2/ChangeLog 2016-03-09 20:22:28 UTC (rev 197870)
@@ -1,3 +1,23 @@
+2016-03-09 Brent Fulgham <[email protected]>
+
+ Local HTML should be blocked from localStorage access unless "Disable Local File Restrictions" is checked
+ https://bugs.webkit.org/show_bug.cgi?id=155185
+
+ Reviewed by Anders Carlsson.
+ <rdar://problem/11101440>
+
+ Tested by TestWebKitAPI tests IndexedDB.IndexedDBMultiProcess and IndexedDB.IndexedDBPersistence.
+
+ Allow Cocoa WKWebViewConfiguration access to the 'allowUniversalAccessFromFileURLs' setting.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (- [WKWebView _initializeWithConfiguration]): Set 'allowUniversalAccessFromFileURLsKey' in
+ page configuration.
+ * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
+ (-[WKWebViewConfiguration _allowUniversalAccessFromFileURLs]): Added,
+ (-[WKWebViewConfiguration _setAllowUniversalAccessFromFileURLs:]): Added.
+ * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
+
2016-03-09 Enrica Casucci <[email protected]>
Add two finger tap on links.
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (197869 => 197870)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2016-03-09 20:11:46 UTC (rev 197869)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2016-03-09 20:22:28 UTC (rev 197870)
@@ -386,7 +386,8 @@
pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::_javascript_MarkupEnabledKey(), WebKit::WebPreferencesStore::Value(!![_configuration _allowsJavaScriptMarkup]));
pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::shouldConvertPositionStyleOnCopyKey(), WebKit::WebPreferencesStore::Value(!![_configuration _convertsPositionStyleOnCopy]));
pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::httpEquivEnabledKey(), WebKit::WebPreferencesStore::Value(!![_configuration _allowsMetaRefresh]));
-
+ pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::allowUniversalAccessFromFileURLsKey(), WebKit::WebPreferencesStore::Value(!![_configuration _allowUniversalAccessFromFileURLs]));
+
#if PLATFORM(MAC)
pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::showsURLsInToolTipsEnabledKey(), WebKit::WebPreferencesStore::Value(!![_configuration _showsURLsInToolTips]));
pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::serviceControlsEnabledKey(), WebKit::WebPreferencesStore::Value(!![_configuration _serviceControlsEnabled]));
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm (197869 => 197870)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm 2016-03-09 20:11:46 UTC (rev 197869)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm 2016-03-09 20:22:28 UTC (rev 197870)
@@ -97,6 +97,7 @@
BOOL _allowsJavaScriptMarkup;
BOOL _convertsPositionStyleOnCopy;
BOOL _allowsMetaRefresh;
+ BOOL _allowUniversalAccessFromFileURLs;
#if PLATFORM(IOS)
LazyInitialized<RetainPtr<WKWebViewContentProviderRegistry>> _contentProviderRegistry;
@@ -151,6 +152,7 @@
_allowsJavaScriptMarkup = YES;
_convertsPositionStyleOnCopy = NO;
_allowsMetaRefresh = YES;
+ _allowUniversalAccessFromFileURLs = NO;
return self;
}
@@ -232,6 +234,7 @@
configuration->_allowsJavaScriptMarkup = self->_allowsJavaScriptMarkup;
configuration->_convertsPositionStyleOnCopy = self->_convertsPositionStyleOnCopy;
configuration->_allowsMetaRefresh = self->_allowsMetaRefresh;
+ configuration->_allowUniversalAccessFromFileURLs = self->_allowUniversalAccessFromFileURLs;
#if PLATFORM(IOS)
configuration->_allowsInlineMediaPlayback = self->_allowsInlineMediaPlayback;
@@ -476,6 +479,16 @@
_allowsJavaScriptMarkup = allowsJavaScriptMarkup;
}
+- (BOOL)_allowUniversalAccessFromFileURLs
+{
+ return _allowUniversalAccessFromFileURLs;
+}
+
+- (void)_setAllowUniversalAccessFromFileURLs:(BOOL)allowUniversalAccessFromFileURLs
+{
+ _allowUniversalAccessFromFileURLs = allowUniversalAccessFromFileURLs;
+}
+
- (BOOL)_convertsPositionStyleOnCopy
{
return _convertsPositionStyleOnCopy;
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h (197869 => 197870)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h 2016-03-09 20:11:46 UTC (rev 197869)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h 2016-03-09 20:22:28 UTC (rev 197870)
@@ -49,6 +49,7 @@
@property (nonatomic, setter=_setAllowsJavaScriptMarkup:) BOOL _allowsJavaScriptMarkup WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
@property (nonatomic, setter=_setConvertsPositionStyleOnCopy:) BOOL _convertsPositionStyleOnCopy WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
@property (nonatomic, setter=_setAllowsMetaRefresh:) BOOL _allowsMetaRefresh WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+@property (nonatomic, setter=_setAllowUniversalAccessFromFileURLs:) BOOL _allowUniversalAccessFromFileURLs WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
#if TARGET_OS_IPHONE
@property (nonatomic, setter=_setAlwaysRunsAtForegroundPriority:) BOOL _alwaysRunsAtForegroundPriority WK_AVAILABLE(NA, 9_0);
Modified: trunk/Tools/ChangeLog (197869 => 197870)
--- trunk/Tools/ChangeLog 2016-03-09 20:11:46 UTC (rev 197869)
+++ trunk/Tools/ChangeLog 2016-03-09 20:22:28 UTC (rev 197870)
@@ -1,3 +1,18 @@
+2016-03-09 Brent Fulgham <[email protected]>
+
+ Local HTML should be blocked from localStorage access unless "Disable Local File Restrictions" is checked
+ https://bugs.webkit.org/show_bug.cgi?id=155185
+ <rdar://problem/11101440>
+
+ Reviewed by Anders Carlsson.
+
+ * TestWebKitAPI/Tests/WebKit2/CloseFromWithinCreatePage.cpp:
+ (TestWebKitAPI::TEST): Allow local file accesss to run test.
+ * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm:
+ (TEST): Ditto.
+ * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBPersistence.mm:
+ (TEST): Ditto.
+
2016-03-09 Tim Horton <[email protected]>
Removing and re-adding a script message handler with the same name results in an unusable message handler
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit2/CloseFromWithinCreatePage.cpp (197869 => 197870)
--- trunk/Tools/TestWebKitAPI/Tests/WebKit2/CloseFromWithinCreatePage.cpp 2016-03-09 20:11:46 UTC (rev 197869)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2/CloseFromWithinCreatePage.cpp 2016-03-09 20:22:28 UTC (rev 197870)
@@ -29,6 +29,7 @@
#include "PlatformUtilities.h"
#include "PlatformWebView.h"
+#include <WebKit/WKPreferencesRefPrivate.h>
namespace TestWebKitAPI {
@@ -74,6 +75,12 @@
uiClient.runJavaScriptAlert = runJavaScriptAlert;
WKPageSetPageUIClient(webView.page(), &uiClient.base);
+ // Allow file URLs to load non-file resources
+ WKRetainPtr<WKPreferencesRef> preferences(AdoptWK, WKPreferencesCreate());
+ WKPageGroupRef pageGroup = WKPageGetPageGroup(webView.page());
+ WKPreferencesSetUniversalAccessFromFileURLsAllowed(preferences.get(), true);
+ WKPageGroupSetPreferences(pageGroup, preferences.get());
+
WKRetainPtr<WKURLRef> url(AdoptWK, Util::createURLForResource("close-from-within-create-page", "html"));
WKPageLoadURL(webView.page(), url.get());
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm (197869 => 197870)
--- trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm 2016-03-09 20:11:46 UTC (rev 197869)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm 2016-03-09 20:22:28 UTC (rev 197870)
@@ -30,6 +30,7 @@
#import <WebKit/WebKit.h>
#import <WebKit/WKProcessPoolPrivate.h>
#import <WebKit/WKUserContentControllerPrivate.h>
+#import <WebKit/WKWebViewConfigurationPrivate.h>
#import <WebKit/_WKProcessPoolConfiguration.h>
#import <WebKit/_WKUserStyleSheet.h>
#import <wtf/RetainPtr.h>
@@ -57,6 +58,10 @@
RetainPtr<IndexedDBMPMessageHandler> handler = adoptNS([[IndexedDBMPMessageHandler alloc] init]);
RetainPtr<WKWebViewConfiguration> configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
[[configuration userContentController] addScriptMessageHandler:handler.get() name:@"testHandler"];
+
+ // Allow file URLs to load non-file resources
+ [configuration _setAllowUniversalAccessFromFileURLs:YES];
+
[configuration.get().processPool _terminateDatabaseProcess];
RetainPtr<WKWebView> webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]);
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBPersistence.mm (197869 => 197870)
--- trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBPersistence.mm 2016-03-09 20:11:46 UTC (rev 197869)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBPersistence.mm 2016-03-09 20:22:28 UTC (rev 197870)
@@ -30,6 +30,7 @@
#import <WebKit/WebKit.h>
#import <WebKit/WKProcessPoolPrivate.h>
#import <WebKit/WKUserContentControllerPrivate.h>
+#import <WebKit/WKWebViewConfigurationPrivate.h>
#import <WebKit/_WKProcessPoolConfiguration.h>
#import <WebKit/_WKUserStyleSheet.h>
#import <wtf/RetainPtr.h>
@@ -72,6 +73,9 @@
RetainPtr<WKWebViewConfiguration> configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
[[configuration userContentController] addScriptMessageHandler:handler.get() name:@"testHandler"];
+ // Allow file URLs to load non-file resources
+ [configuration _setAllowUniversalAccessFromFileURLs:YES];
+
RetainPtr<WKWebView> webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]);
NSURLRequest *request = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"IndexedDBPersistence-1" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]];