Replace DATA_TRANSFER_ITEMS by a runtime flag and add a stub implementation
https://bugs.webkit.org/show_bug.cgi?id=175474
.:
<rdar://problem/33844628>
Reviewed by Wenson Hsieh.
* Source/cmake/OptionsMac.cmake:
* Source/cmake/OptionsWin.cmake:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmake/tools/vsprops/FeatureDefines.props:
* Source/cmake/tools/vsprops/FeatureDefinesCairo.props:
Source/JavaScriptCore:
<rdar://problem/33844628>
Reviewed by Wenson Hsieh.
* Configurations/FeatureDefines.xcconfig:
* runtime/CommonIdentifiers.h:
Source/WebCore:
<rdar://problem/33844628>
Reviewed by Wenson Hsieh.
Replaced the build flag by a runtime flag and added a stub implementation for DataTransferItemList
and DataTransferItem to make it compile. DataTransferItemList is created lazily by DataTransfer.items,
and its lifetime is tied to DataTransfer by forwarding ref and deref.
See https://html.spec.whatwg.org/multipage/dnd.html#the-datatransferitemlist-interface
Tests: editing/pasteboard/datatransfer-idl.html
* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* WebCore.xcodeproj/project.pbxproj:
* dom/DataTransfer.cpp:
(WebCore::DataTransfer::items): Added. Create DataTransferItemList lazily
* dom/DataTransfer.h:
* dom/DataTransfer.idl:
* dom/DataTransferItem.cpp:
(WebCore::DataTransferItem::DataTransferItem): Added a stub implementation.
(WebCore::DataTransferItem::~DataTransferItem): Ditto.
(WebCore::DataTransferItem::getAsString const): Ditto.
(WebCore::DataTransferItem::getAsFile const): Ditto.
* dom/DataTransferItem.h:
(WebCore::DataTransferItemList): Devirtualized functions.
(WebCore::DataTransferItemList::kind const):
(WebCore::DataTransferItemList::type const):
* dom/DataTransferItem.idl:
* dom/DataTransferItemList.cpp: Added.
(WebCore::DataTransferItemList::length const): Added a stub implementation.
(WebCore::DataTransferItemList::item): Ditto.
(WebCore::DataTransferItemList::add): Ditto.
(WebCore::DataTransferItemList::remove): Ditto.
(WebCore::DataTransferItemList::clear): Ditto.
* dom/DataTransferItemList.h:
(WebCore::DataTransferItemList::DataTransferItemList):
(WebCore::DataTransferItemList::~DataTransferItemList): Deleted.
(WebCore::DataTransferItemList::ref): Forwards to DataTransfer's ref.
(WebCore::DataTransferItemList::deref): Ditto.
* dom/DataTransferItemList.idl: Updated to match the latest specification.
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setDataTransferItemsEnabled): Added.
(WebCore::RuntimeEnabledFeatures::dataTransferItemsEnabled const): Added.
Source/WebCore/PAL:
<rdar://problem/33844628>
Reviewed by Wenson Hsieh.
* Configurations/FeatureDefines.xcconfig:
Source/WebKit:
<rdar://problem/33844628>
Reviewed by Wenson Hsieh.
Replaced the build flag by a runtime flag and disabled the feature by default.
* Configurations/FeatureDefines.xcconfig:
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetDataTransferItemsEnabled): Added to be used by WebKitTestRunner.
(WKPreferencesGetDataTransferItemsEnabled): Ditto.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Source/WebKitLegacy/mac:
<rdar://problem/33844628>
Reviewed by Wenson Hsieh.
Replaced the build flag by a runtime flag and disabled the feature by default.
* Configurations/FeatureDefines.xcconfig:
* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]): Disables dataTransfer.items by default.
(-[WebPreferences dataTransferItemsEnabled]): Added.
(-[WebPreferences setDataTransferItemsEnabled:]): Added.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WTF:
Reviewed by Wenson Hsieh.
* wtf/FeatureDefines.h:
Tools:
<rdar://problem/33844628>
Reviewed by Wenson Hsieh.
Enable dataTransfer.items by default in DumpRenderTree and WebKitTestRunner for testing purposes.
* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
LayoutTests:
<rdar://problem/33844628>
Reviewed by Wenson Hsieh.
Added a W3C-style IDL test.
* editing/pasteboard/datatransfer-idl.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@220627 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebKitLegacy/mac/WebView/WebPreferences.mm b/Source/WebKitLegacy/mac/WebView/WebPreferences.mm
index 147c738..0634fb4 100644
--- a/Source/WebKitLegacy/mac/WebView/WebPreferences.mm
+++ b/Source/WebKitLegacy/mac/WebView/WebPreferences.mm
@@ -624,6 +624,7 @@
#endif
[NSNumber numberWithBool:YES], WebKitShadowDOMEnabledPreferenceKey,
[NSNumber numberWithBool:YES], WebKitCustomElementsEnabledPreferenceKey,
+ [NSNumber numberWithBool:NO], WebKitDataTransferItemsEnabledPreferenceKey,
[NSNumber numberWithBool:YES], WebKitModernMediaControlsEnabledPreferenceKey,
#if ENABLE(WEBGL2)
[NSNumber numberWithBool:NO], WebKitWebGL2EnabledPreferenceKey,
@@ -2974,6 +2975,16 @@
[self _setBoolValue:flag forKey:WebKitCustomElementsEnabledPreferenceKey];
}
+- (BOOL)dataTransferItemsEnabled
+{
+ return [self _boolValueForKey:WebKitDataTransferItemsEnabledPreferenceKey];
+}
+
+- (void)setDataTransferItemsEnabled:(BOOL)flag
+{
+ [self _setBoolValue:flag forKey:WebKitDataTransferItemsEnabledPreferenceKey];
+}
+
- (BOOL)cacheAPIEnabled
{
return [self _boolValueForKey:WebKitCacheAPIEnabledPreferenceKey];