From 3786cf8746f91f39f8770a6cc5cd49f346bbd5cd Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Wed, 21 Jul 2021 18:04:18 -0700 Subject: [PATCH] browser(webkit): implement more modernizr features (#7780) --- browser_patches/webkit/BUILD_NUMBER | 4 +- browser_patches/webkit/patches/bootstrap.diff | 664 ++++++++++++++++-- 2 files changed, 611 insertions(+), 57 deletions(-) diff --git a/browser_patches/webkit/BUILD_NUMBER b/browser_patches/webkit/BUILD_NUMBER index cd1a665480..c5f610faf6 100644 --- a/browser_patches/webkit/BUILD_NUMBER +++ b/browser_patches/webkit/BUILD_NUMBER @@ -1,2 +1,2 @@ -1518 -Changed: einbinder@chromium.org Wed 21 Jul 2021 05:45:33 PM PDT +1519 +Changed: pavel.feldman@gmail.com Wed 21 Jul 2021 06:03:19 PM PDT diff --git a/browser_patches/webkit/patches/bootstrap.diff b/browser_patches/webkit/patches/bootstrap.diff index 318c275775..6ae89d23de 100644 --- a/browser_patches/webkit/patches/bootstrap.diff +++ b/browser_patches/webkit/patches/bootstrap.diff @@ -926,17 +926,22 @@ index 882a2d56befef0aba460cc8ff041969e0d2c1ed3..71d4bfc4a4bc5a43bd2b98aefa316b4e ], "events": [ diff --git a/Source/JavaScriptCore/inspector/protocol/Page.json b/Source/JavaScriptCore/inspector/protocol/Page.json -index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..35b44b9fc9bbde387991155e6fa3d26a0fd368d5 100644 +index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..3f5c442ac9aad17ab75edf2e245eb058ebcf2c13 100644 --- a/Source/JavaScriptCore/inspector/protocol/Page.json +++ b/Source/JavaScriptCore/inspector/protocol/Page.json -@@ -21,13 +21,15 @@ +@@ -21,13 +21,20 @@ "ShowDebugBorders", "ShowRepaintCounter", "WebRTCEncryptionEnabled", - "WebSecurityEnabled" + "WebSecurityEnabled", + "DeviceOrientationEventEnabled", -+ "SpeechRecognitionEnabled" ++ "SpeechRecognitionEnabled", ++ "PointerLockEnabled", ++ "NotificationsEnabled", ++ "FullScreenEnabled", ++ "InputTypeMonthEnabled", ++ "InputTypeWeekEnabled" ] }, { @@ -947,7 +952,7 @@ index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..35b44b9fc9bbde387991155e6fa3d26a "description": "Resource type as it was perceived by the rendering engine." }, { -@@ -49,6 +51,12 @@ +@@ -49,6 +56,12 @@ "enum": ["Light", "Dark"], "description": "Page appearance name." }, @@ -960,7 +965,7 @@ index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..35b44b9fc9bbde387991155e6fa3d26a { "id": "Frame", "type": "object", -@@ -112,6 +120,51 @@ +@@ -112,6 +125,51 @@ { "name": "secure", "type": "boolean", "description": "True if cookie is secure." }, { "name": "sameSite", "$ref": "CookieSameSitePolicy", "description": "Cookie Same-Site policy." } ] @@ -1012,7 +1017,7 @@ index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..35b44b9fc9bbde387991155e6fa3d26a } ], "commands": [ -@@ -131,6 +184,14 @@ +@@ -131,6 +189,14 @@ { "name": "revalidateAllResources", "type": "boolean", "optional": true, "description": "If true, all cached subresources will be revalidated when the main resource loads. Otherwise, only expired cached subresources will be revalidated (the default behavior for most WebKit clients)." } ] }, @@ -1027,7 +1032,7 @@ index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..35b44b9fc9bbde387991155e6fa3d26a { "name": "navigate", "description": "Navigates current page to the given URL.", -@@ -204,7 +265,8 @@ +@@ -204,7 +270,8 @@ "name": "setBootstrapScript", "targetTypes": ["page"], "parameters": [ @@ -1037,7 +1042,7 @@ index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..35b44b9fc9bbde387991155e6fa3d26a ] }, { -@@ -270,6 +332,28 @@ +@@ -270,6 +337,28 @@ { "name": "appearance", "$ref": "Appearance", "optional": true } ] }, @@ -1066,7 +1071,7 @@ index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..35b44b9fc9bbde387991155e6fa3d26a { "name": "snapshotNode", "description": "Capture a snapshot of the specified node that does not include unrelated layers.", -@@ -290,7 +374,8 @@ +@@ -290,7 +379,8 @@ { "name": "y", "type": "integer", "description": "Y coordinate" }, { "name": "width", "type": "integer", "description": "Rectangle width" }, { "name": "height", "type": "integer", "description": "Rectangle height" }, @@ -1076,7 +1081,7 @@ index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..35b44b9fc9bbde387991155e6fa3d26a ], "returns": [ { "name": "dataURL", "type": "string", "description": "Base64-encoded image data (PNG)." } -@@ -308,12 +393,77 @@ +@@ -308,12 +398,77 @@ { "name": "setScreenSizeOverride", "description": "Overrides screen size exposed to DOM and used in media queries for testing with provided values.", @@ -1155,7 +1160,7 @@ index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..35b44b9fc9bbde387991155e6fa3d26a } ], "events": [ -@@ -321,14 +471,16 @@ +@@ -321,14 +476,16 @@ "name": "domContentEventFired", "targetTypes": ["page"], "parameters": [ @@ -1174,7 +1179,7 @@ index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..35b44b9fc9bbde387991155e6fa3d26a ] }, { -@@ -338,6 +490,14 @@ +@@ -338,6 +495,14 @@ { "name": "frame", "$ref": "Frame", "description": "Frame object." } ] }, @@ -1189,7 +1194,7 @@ index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..35b44b9fc9bbde387991155e6fa3d26a { "name": "frameDetached", "description": "Fired when frame has been detached from its parent.", -@@ -377,6 +537,22 @@ +@@ -377,6 +542,22 @@ { "name": "frameId", "$ref": "Network.FrameId", "description": "Id of the frame that has cleared its scheduled navigation." } ] }, @@ -1212,7 +1217,7 @@ index db52479a72d459be23d4d8d080c0ed15ea9fc4c0..35b44b9fc9bbde387991155e6fa3d26a { "name": "defaultAppearanceDidChange", "description": "Fired when page's default appearance changes, even if there is a forced appearance.", -@@ -385,6 +561,28 @@ +@@ -385,6 +566,28 @@ "parameters": [ { "name": "appearance", "$ref": "Appearance", "description": "Name of the appearance that is active (not considering any forced appearance.)" } ] @@ -1787,6 +1792,43 @@ index dae9b3a9bc92fbafd4e30194b4d1a8d83dbd2cff..63cd8218c3cce5991121391ef0890e6e // Do not use icu::TimeZone::createDefault. ICU internally has a cache for timezone and createDefault returns this cached value. m_timeZoneCache = std::unique_ptr(bitwise_cast(icu::TimeZone::detectHostTimeZone())); #endif +diff --git a/Source/PlatformWPE.cmake b/Source/PlatformWPE.cmake +index fabd776e617d07a6c30b9f2df30f884491259359..d9c39df7db565545108c765407ce1cda544856f7 100644 +--- a/Source/PlatformWPE.cmake ++++ b/Source/PlatformWPE.cmake +@@ -8,32 +8,3 @@ list(APPEND DocumentationDependencies + "${CMAKE_SOURCE_DIR}/Source/WebKit/UIProcess/API/wpe/docs/wpe-${WPE_API_DOC_VERSION}-sections.txt" + "${CMAKE_SOURCE_DIR}/Source/WebKit/WebProcess/InjectedBundle/API/wpe/docs/wpe-webextensions-${WPE_API_DOC_VERSION}-sections.txt" + ) +- +-if (ENABLE_GTKDOC) +- install(DIRECTORY ${CMAKE_BINARY_DIR}/Documentation/wpe-${WPE_API_VERSION}/html/wpe-${WPE_API_VERSION} +- DESTINATION "${CMAKE_INSTALL_DATADIR}/gtk-doc/html" +- ) +- install(DIRECTORY ${CMAKE_BINARY_DIR}/Documentation/wpe-webextensions-${WPE_API_VERSION}/html/wpe-webextensions-${WPE_API_VERSION} +- DESTINATION "${CMAKE_INSTALL_DATADIR}/gtk-doc/html" +- ) +-endif () +- +-ADD_GTKDOC_GENERATOR("docs-build.stamp" "--wpe") +-if (ENABLE_GTKDOC) +- add_custom_target(gtkdoc ALL DEPENDS "${CMAKE_BINARY_DIR}/docs-build.stamp") +-elseif (NOT ENABLED_COMPILER_SANITIZERS AND NOT CMAKE_CROSSCOMPILING AND NOT APPLE) +- add_custom_target(gtkdoc DEPENDS "${CMAKE_BINARY_DIR}/docs-build.stamp") +- +- # Add a default build step which check that documentation does not have any warnings +- # or errors. This is useful to prevent breaking documentation inadvertently during +- # the course of development. +- if (DEVELOPER_MODE) +- ADD_GTKDOC_GENERATOR("docs-build-no-html.stamp" "--wpe;--skip-html") +- add_custom_target(gtkdoc-no-html ALL DEPENDS "${CMAKE_BINARY_DIR}/docs-build-no-html.stamp") +- endif () +-endif () +- +-if (DEVELOPER_MODE) +- add_custom_target(Documentation DEPENDS gtkdoc) +- WEBKIT_DECLARE_DIST_TARGETS(WPE wpewebkit ${TOOLS_DIR}/wpe/manifest.txt.in) +-endif () diff --git a/Source/ThirdParty/libwebrtc/CMakeLists.txt b/Source/ThirdParty/libwebrtc/CMakeLists.txt index 4345be38811965680c7c8e80d64234e130b16548..d8ea7866e3df2d8dcc6adc7a0dd021c4b96d4249 100644 --- a/Source/ThirdParty/libwebrtc/CMakeLists.txt @@ -1938,7 +1980,7 @@ index d8677555342ee0168223a0bc3ef54603b1a23460..b9ee7198a702cbc0241de3a33b65a694 41323A1D2665288B00B38623 /* packet_sequencer.cc in Sources */, 4131BF2D234B88200028A615 /* rtc_stats_collector.cc in Sources */, diff --git a/Source/WTF/Scripts/Preferences/WebPreferences.yaml b/Source/WTF/Scripts/Preferences/WebPreferences.yaml -index 9b681a741c311ec2246f5b6de5df46e6f713d90c..1e3c9c43e2c7ef31e364ca056bf107e537325768 100644 +index 9b681a741c311ec2246f5b6de5df46e6f713d90c..4039cfad08a83b2fc814a445ccc4b937348d862f 100644 --- a/Source/WTF/Scripts/Preferences/WebPreferences.yaml +++ b/Source/WTF/Scripts/Preferences/WebPreferences.yaml @@ -1020,7 +1020,7 @@ InspectorStartsAttached: @@ -1950,6 +1992,24 @@ index 9b681a741c311ec2246f5b6de5df46e6f713d90c..1e3c9c43e2c7ef31e364ca056bf107e5 InspectorWindowFrame: type: String +@@ -1737,6 +1737,17 @@ PluginsEnabled: + WebCore: + default: false + ++PointerLockEnabled: ++ type: bool ++ condition: ENABLE(POINTER_LOCK) ++ defaultValue: ++ WebKitLegacy: ++ default: true ++ WebKit: ++ default: true ++ WebCore: ++ default: true ++ + PrivateClickMeasurementEnabled: + type: bool + humanReadableName: "Private Click Measurement" diff --git a/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml b/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml index c42ebeba067c15d7f5dc0e90ab3db452e922a4ed..4b31bafde566a1171a8c02c28a23eef0621241bd 100644 --- a/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml @@ -2221,6 +2281,18 @@ index 7995d4dd461de036cd8691b3ff181aeaefb12d92..49207cd294acebb4bac53ecb28817baa return false; } +diff --git a/Source/WebCore/Modules/notifications/Notification.idl b/Source/WebCore/Modules/notifications/Notification.idl +index d031bb73cda05092105d604dc608f89f6c834e8e..df98881af1df16ba4674edac42b3b0ca0d6740e1 100644 +--- a/Source/WebCore/Modules/notifications/Notification.idl ++++ b/Source/WebCore/Modules/notifications/Notification.idl +@@ -34,6 +34,7 @@ + [ + Conditional=NOTIFICATIONS, + ActiveDOMObject, ++ EnabledBySetting=Notifications, + ExportMacro=WEBCORE_EXPORT, + Exposed=Window + ] interface Notification : EventTarget { diff --git a/Source/WebCore/Modules/speech/cocoa/WebSpeechRecognizerTask.mm b/Source/WebCore/Modules/speech/cocoa/WebSpeechRecognizerTask.mm index f1b96958057d2fe6044d2c7b259db6c5ceb44efe..29e51dad380285fb16bd32ef04efde2ac4ed6479 100644 --- a/Source/WebCore/Modules/speech/cocoa/WebSpeechRecognizerTask.mm @@ -2499,7 +2571,7 @@ index 220b4a87f39b5df253e859126502fb3aa181c97c..bd5b0d39f09b21ef8ef4b3996e6f3ee0 { AXComputedObjectAttributeCache* attributeCache = nullptr; diff --git a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h -index 0b5f8ee23e93b84f1aa673e69482ee1f67c7f046..a2b616187210fcdf21eeb4aa4172bb626bc74cca 100644 +index 0b5f8ee23e93b84f1aa673e69482ee1f67c7f046..f7e3db9f6a19ee3b0485c9e5c4ae5a83780b49a6 100644 --- a/Source/WebCore/bindings/js/WebCoreBuiltinNames.h +++ b/Source/WebCore/bindings/js/WebCoreBuiltinNames.h @@ -89,6 +89,8 @@ namespace WebCore { @@ -2511,6 +2583,14 @@ index 0b5f8ee23e93b84f1aa673e69482ee1f67c7f046..a2b616187210fcdf21eeb4aa4172bb62 macro(DocumentTimeline) \ macro(EnterPictureInPictureEvent) \ macro(ExtendableEvent) \ +@@ -183,6 +185,7 @@ namespace WebCore { + macro(NavigatorCredentials) \ + macro(NavigatorMediaDevices) \ + macro(NavigatorUserMedia) \ ++ macro(Notification) \ + macro(OfflineAudioContext) \ + macro(OffscreenCanvas) \ + macro(OffscreenCanvasRenderingContext2D) \ diff --git a/Source/WebCore/css/MediaQueryEvaluator.cpp b/Source/WebCore/css/MediaQueryEvaluator.cpp index a47b2fe549a89414a207864aabe897d07a59727c..53357bc9ce111bcb1241256647c3630ae767213d 100644 --- a/Source/WebCore/css/MediaQueryEvaluator.cpp @@ -2593,6 +2673,42 @@ index 1c1cbc1f55089ea7c73c83f04db3caddc5a8b3b3..f1ccf42cf7f699747b31873ab9d96b3f Exposed=Window ] interface DeviceOrientationEvent : Event { readonly attribute unrestricted double? alpha; +diff --git a/Source/WebCore/dom/Document+PointerLock.idl b/Source/WebCore/dom/Document+PointerLock.idl +index 898027004b8553cac8130541026af70ffb5ee073..ea5b3b292c9be31eba0353589da75a952ebebe90 100644 +--- a/Source/WebCore/dom/Document+PointerLock.idl ++++ b/Source/WebCore/dom/Document+PointerLock.idl +@@ -25,6 +25,7 @@ + + // https://w3c.github.io/pointerlock/#extensions-to-the-document-interface + [ ++ EnabledBySetting=PointerLock, + Conditional=POINTER_LOCK + ] partial interface Document { + [NotEnumerable] attribute EventHandler onpointerlockchange; // FIXME: Should be enumerable. +diff --git a/Source/WebCore/dom/DocumentOrShadowRoot+PointerLock.idl b/Source/WebCore/dom/DocumentOrShadowRoot+PointerLock.idl +index 9b8dbfc15ce078702321abcd6c0e636df7a60510..3c1fe92297c6229fd6594c2bebf50a34091ebb36 100644 +--- a/Source/WebCore/dom/DocumentOrShadowRoot+PointerLock.idl ++++ b/Source/WebCore/dom/DocumentOrShadowRoot+PointerLock.idl +@@ -25,6 +25,7 @@ + + // https://w3c.github.io/pointerlock/#extensions-to-the-documentorshadowroot-mixin + [ ++ EnabledBySetting=PointerLock, + Conditional=POINTER_LOCK + ] partial interface mixin DocumentOrShadowRoot { + readonly attribute Element? pointerLockElement; +diff --git a/Source/WebCore/dom/Element+PointerLock.idl b/Source/WebCore/dom/Element+PointerLock.idl +index f27718c1e2b8cd0a8075e556d4cdba7d9ae8fc54..04fcd27fbb9e4366d2144b328471d75fafdc7dfa 100644 +--- a/Source/WebCore/dom/Element+PointerLock.idl ++++ b/Source/WebCore/dom/Element+PointerLock.idl +@@ -24,6 +24,7 @@ + */ + + [ ++ EnabledBySetting=PointerLock, + Conditional=POINTER_LOCK + ] partial interface Element { + undefined requestPointerLock(); diff --git a/Source/WebCore/dom/PointerEvent.cpp b/Source/WebCore/dom/PointerEvent.cpp index f21879fdfbc64e7d2f11ab084d46794a9e601110..151c9b72f0f552c2ff741305c4c0a8c7f51a92e3 100644 --- a/Source/WebCore/dom/PointerEvent.cpp @@ -3931,7 +4047,7 @@ index 7cdc5865e58e9a9a30ea25202692d4b9aa77b2d6..7c42be0cbadf9a594926cbe89ce510b0 std::unique_ptr m_frontendDispatcher; diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp -index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42752ccb97 100644 +index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..308022b846e08c1aa996ffc9e45db3261aa25f1d 100644 --- a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp +++ b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp @@ -32,19 +32,25 @@ @@ -4078,7 +4194,34 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 case Protocol::Page::Setting::ICECandidateFilteringEnabled: inspectedPageSettings.setICECandidateFilteringEnabledInspectorOverride(value); return { }; -@@ -476,6 +526,10 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page +@@ -464,6 +514,26 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page + inspectedPageSettings.setNeedsSiteSpecificQuirksInspectorOverride(value); + return { }; + ++ case Protocol::Page::Setting::NotificationsEnabled: ++ inspectedPageSettings.setNotificationsEnabled(value.value_or(false)); ++ return { }; ++ ++ case Protocol::Page::Setting::FullScreenEnabled: ++ inspectedPageSettings.setFullScreenEnabled(value.value_or(false)); ++ return { }; ++ ++ case Protocol::Page::Setting::InputTypeMonthEnabled: ++ inspectedPageSettings.setInputTypeMonthEnabled(value.value_or(false)); ++ return { }; ++ ++ case Protocol::Page::Setting::InputTypeWeekEnabled: ++ inspectedPageSettings.setInputTypeWeekEnabled(value.value_or(false)); ++ return { }; ++ ++ case Protocol::Page::Setting::PointerLockEnabled: ++ inspectedPageSettings.setPointerLockEnabled(value.value_or(false)); ++ return { }; ++ + case Protocol::Page::Setting::ScriptEnabled: + inspectedPageSettings.setScriptEnabledInspectorOverride(value); + return { }; +@@ -476,6 +546,10 @@ Protocol::ErrorStringOr InspectorPageAgent::overrideSetting(Protocol::Page inspectedPageSettings.setShowRepaintCounterInspectorOverride(value); return { }; @@ -4089,7 +4232,7 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 case Protocol::Page::Setting::WebRTCEncryptionEnabled: inspectedPageSettings.setWebRTCEncryptionEnabledInspectorOverride(value); return { }; -@@ -696,9 +750,13 @@ Protocol::ErrorStringOr> InspectorP +@@ -696,9 +770,13 @@ Protocol::ErrorStringOr> InspectorP return { { content, base64Encoded } }; } @@ -4105,7 +4248,7 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 return { }; } -@@ -801,15 +859,16 @@ Protocol::ErrorStringOr InspectorPageAgent::setShowPaintRects(bool show) +@@ -801,15 +879,16 @@ Protocol::ErrorStringOr InspectorPageAgent::setShowPaintRects(bool show) return { }; } @@ -4127,7 +4270,7 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 } void InspectorPageAgent::frameNavigated(Frame& frame) -@@ -817,13 +876,23 @@ void InspectorPageAgent::frameNavigated(Frame& frame) +@@ -817,13 +896,23 @@ void InspectorPageAgent::frameNavigated(Frame& frame) m_frontendDispatcher->frameNavigated(buildObjectForFrame(&frame)); } @@ -4154,7 +4297,7 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 } Frame* InspectorPageAgent::frameForId(const Protocol::Network::FrameId& frameId) -@@ -835,20 +904,18 @@ String InspectorPageAgent::frameId(Frame* frame) +@@ -835,20 +924,18 @@ String InspectorPageAgent::frameId(Frame* frame) { if (!frame) return emptyString(); @@ -4181,7 +4324,7 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 } Frame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, const Protocol::Network::FrameId& frameId) -@@ -859,11 +926,6 @@ Frame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, const +@@ -859,11 +946,6 @@ Frame* InspectorPageAgent::assertFrame(Protocol::ErrorString& errorString, const return frame; } @@ -4193,7 +4336,7 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 void InspectorPageAgent::frameStartedLoading(Frame& frame) { m_frontendDispatcher->frameStartedLoading(frameId(&frame)); -@@ -884,6 +946,12 @@ void InspectorPageAgent::frameClearedScheduledNavigation(Frame& frame) +@@ -884,6 +966,12 @@ void InspectorPageAgent::frameClearedScheduledNavigation(Frame& frame) m_frontendDispatcher->frameClearedScheduledNavigation(frameId(&frame)); } @@ -4206,7 +4349,7 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 #if ENABLE(DARK_MODE_CSS) || HAVE(OS_DARK_MODE_SUPPORT) void InspectorPageAgent::defaultAppearanceDidChange(bool useDarkAppearance) { -@@ -893,13 +961,22 @@ void InspectorPageAgent::defaultAppearanceDidChange(bool useDarkAppearance) +@@ -893,13 +981,22 @@ void InspectorPageAgent::defaultAppearanceDidChange(bool useDarkAppearance) void InspectorPageAgent::didClearWindowObjectInWorld(Frame& frame, DOMWrapperWorld& world) { @@ -4232,7 +4375,7 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 } void InspectorPageAgent::didPaint(RenderObject& renderer, const LayoutRect& rect) -@@ -943,6 +1020,52 @@ void InspectorPageAgent::didRecalculateStyle() +@@ -943,6 +1040,52 @@ void InspectorPageAgent::didRecalculateStyle() m_overlay->update(); } @@ -4285,7 +4428,7 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 Ref InspectorPageAgent::buildObjectForFrame(Frame* frame) { ASSERT_ARG(frame, frame); -@@ -1079,11 +1202,13 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotNode(Protocol::DOM:: +@@ -1079,11 +1222,13 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotNode(Protocol::DOM:: return snapshot->toDataURL("image/png"_s, std::nullopt, PreserveResolution::Yes); } @@ -4300,7 +4443,7 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 IntRect rectangle(x, y, width, height); auto snapshot = snapshotFrameRect(m_inspectedPage.mainFrame(), rectangle, WTFMove(options)); -@@ -1094,6 +1219,47 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, i +@@ -1094,6 +1239,47 @@ Protocol::ErrorStringOr InspectorPageAgent::snapshotRect(int x, int y, i return snapshot->toDataURL("image/png"_s, std::nullopt, PreserveResolution::Yes); } @@ -4348,7 +4491,7 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 #if ENABLE(WEB_ARCHIVE) && USE(CF) Protocol::ErrorStringOr InspectorPageAgent::archive() { -@@ -1106,7 +1272,6 @@ Protocol::ErrorStringOr InspectorPageAgent::archive() +@@ -1106,7 +1292,6 @@ Protocol::ErrorStringOr InspectorPageAgent::archive() } #endif @@ -4356,7 +4499,7 @@ index 64117425ba5c5b6a71d190dfc8f1eefb4ffc637c..3a63079e3bba97ef638224c476169e42 Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::optional&& width, std::optional&& height) { if (width.has_value() != height.has_value()) -@@ -1121,6 +1286,595 @@ Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::opt +@@ -1121,6 +1306,595 @@ Protocol::ErrorStringOr InspectorPageAgent::setScreenSizeOverride(std::opt m_inspectedPage.mainFrame().setOverrideScreenSize(FloatSize(width.value_or(0), height.value_or(0))); return { }; } @@ -8304,10 +8447,10 @@ index 0000000000000000000000000000000000000000..07fb260a5203167fdf94a552949394bb +} diff --git a/Source/WebCore/platform/wpe/DragImageWPE.cpp b/Source/WebCore/platform/wpe/DragImageWPE.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..0c684ea504c0c93895ab75a880b4d2febc946813 +index 0000000000000000000000000000000000000000..e77e6db7a93a9dfcaad3866eb445edf4ebfe33b5 --- /dev/null +++ b/Source/WebCore/platform/wpe/DragImageWPE.cpp -@@ -0,0 +1,68 @@ +@@ -0,0 +1,73 @@ +/* + * Copyright (C) 2010,2017 Igalia S.L. + * @@ -8375,6 +8518,11 @@ index 0000000000000000000000000000000000000000..0c684ea504c0c93895ab75a880b4d2fe + return nullptr; +} + ++DragImageRef createDragImageForColor(const Color&, const FloatRect&, float, Path&) ++{ ++ return nullptr; ++} ++ +} diff --git a/Source/WebCore/platform/wpe/PlatformScreenWPE.cpp b/Source/WebCore/platform/wpe/PlatformScreenWPE.cpp index bbdd1ce76241d933ada9c43fabae4912cbfa64e1..e6ae01a77350c519b203f6ed2910f63871b9b829 100644 @@ -9499,10 +9647,18 @@ index 8986082af78547fcce4475d05315d3819f914094..dd36140f14413ff911ec096c585673da set(WebKit2GTK_ENUM_GENERATION_HEADERS ${WebKit2GTK_INSTALLED_HEADERS}) list(REMOVE_ITEM WebKit2GTK_ENUM_GENERATION_HEADERS ${WebKit2Gtk_DERIVED_SOURCES_DIR}/webkit2/WebKitEnumTypes.h) diff --git a/Source/WebKit/PlatformWPE.cmake b/Source/WebKit/PlatformWPE.cmake -index e397c07b7cf7170f4d833997d499b4ac7ffcd898..ba2270f561b90cc54682b77c02c9028552e951fa 100644 +index e397c07b7cf7170f4d833997d499b4ac7ffcd898..6e20e31688aaf1d49d3efb5aab42c0330f441a9b 100644 --- a/Source/WebKit/PlatformWPE.cmake +++ b/Source/WebKit/PlatformWPE.cmake -@@ -278,6 +278,7 @@ list(APPEND WebKit_INCLUDE_DIRECTORIES +@@ -154,6 +154,7 @@ set(WPE_API_INSTALLED_HEADERS + ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitOptionMenuItem.h + ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitPermissionRequest.h + ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitPlugin.h ++ ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitPointerLockPermissionRequest.h + ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitPolicyDecision.h + ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitRectangle.h + ${WEBKIT_DIR}/UIProcess/API/wpe/WebKitResponsePolicyDecision.h +@@ -278,6 +279,7 @@ list(APPEND WebKit_INCLUDE_DIRECTORIES "${WEBKIT_DIR}/UIProcess/API/wpe" "${WEBKIT_DIR}/UIProcess/CoordinatedGraphics" "${WEBKIT_DIR}/UIProcess/geoclue" @@ -9510,7 +9666,7 @@ index e397c07b7cf7170f4d833997d499b4ac7ffcd898..ba2270f561b90cc54682b77c02c90285 "${WEBKIT_DIR}/UIProcess/gstreamer" "${WEBKIT_DIR}/UIProcess/linux" "${WEBKIT_DIR}/UIProcess/soup" -@@ -300,8 +301,17 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES +@@ -300,8 +302,17 @@ list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES ${GIO_UNIX_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS} ${LIBSOUP_INCLUDE_DIRS} @@ -10386,7 +10542,7 @@ index 95b4ffb769d711b6a485a005f7a3f58172fcf1ad..a3315174dcce192bf6b04cb98f9d8363 UIProcess/gtk/WebPasteboardProxyGtk.cpp UIProcess/gtk/WebPopupMenuProxyGtk.cpp diff --git a/Source/WebKit/SourcesWPE.txt b/Source/WebKit/SourcesWPE.txt -index f8fb1511f2a019a08a896f7cbf45ca470da28185..eca7474a51db8dcf86fd4c538addd69633ffebe9 100644 +index f8fb1511f2a019a08a896f7cbf45ca470da28185..71283a18036b0d50dc2fa60a6e2e61897211bc8a 100644 --- a/Source/WebKit/SourcesWPE.txt +++ b/Source/WebKit/SourcesWPE.txt @@ -86,6 +86,7 @@ Shared/glib/ProcessExecutablePathGLib.cpp @@ -10405,7 +10561,15 @@ index f8fb1511f2a019a08a896f7cbf45ca470da28185..eca7474a51db8dcf86fd4c538addd696 UIProcess/API/glib/WebKitContextMenuClient.cpp @no-unify UIProcess/API/glib/WebKitCookieManager.cpp @no-unify UIProcess/API/glib/WebKitCredential.cpp @no-unify -@@ -182,6 +184,7 @@ UIProcess/API/wpe/InputMethodFilterWPE.cpp @no-unify +@@ -151,6 +153,7 @@ UIProcess/API/glib/WebKitOptionMenu.cpp @no-unify + UIProcess/API/glib/WebKitOptionMenuItem.cpp @no-unify + UIProcess/API/glib/WebKitPermissionRequest.cpp @no-unify + UIProcess/API/glib/WebKitPlugin.cpp @no-unify ++UIProcess/API/glib/WebKitPointerLockPermissionRequest.cpp @no-unify + UIProcess/API/glib/WebKitPolicyDecision.cpp @no-unify + UIProcess/API/glib/WebKitPrivate.cpp @no-unify + UIProcess/API/glib/WebKitProtocolHandler.cpp @no-unify +@@ -182,6 +185,7 @@ UIProcess/API/wpe/InputMethodFilterWPE.cpp @no-unify UIProcess/API/wpe/PageClientImpl.cpp @no-unify UIProcess/API/wpe/TouchGestureController.cpp @no-unify UIProcess/API/wpe/WebKitColor.cpp @no-unify @@ -10413,7 +10577,7 @@ index f8fb1511f2a019a08a896f7cbf45ca470da28185..eca7474a51db8dcf86fd4c538addd696 UIProcess/API/wpe/WebKitInputMethodContextWPE.cpp @no-unify UIProcess/API/wpe/WebKitPopupMenu.cpp @no-unify UIProcess/API/wpe/WebKitRectangle.cpp @no-unify -@@ -198,6 +201,7 @@ UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp +@@ -198,6 +202,7 @@ UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp UIProcess/geoclue/GeoclueGeolocationProvider.cpp @@ -10421,18 +10585,19 @@ index f8fb1511f2a019a08a896f7cbf45ca470da28185..eca7474a51db8dcf86fd4c538addd696 UIProcess/glib/WebPageProxyGLib.cpp UIProcess/glib/WebProcessPoolGLib.cpp UIProcess/glib/WebProcessProxyGLib.cpp -@@ -220,6 +224,10 @@ UIProcess/linux/MemoryPressureMonitor.cpp +@@ -220,6 +225,11 @@ UIProcess/linux/MemoryPressureMonitor.cpp UIProcess/soup/WebCookieManagerProxySoup.cpp UIProcess/soup/WebProcessPoolSoup.cpp +UIProcess/wpe/InspectorTargetProxyWPE.cpp ++UIProcess/wpe/WebColorPickerWPE.cpp ++UIProcess/wpe/WebDateTimePickerWPE.cpp +UIProcess/wpe/WebPageInspectorEmulationAgentWPE.cpp +UIProcess/wpe/WebPageInspectorInputAgentWPE.cpp -+ UIProcess/wpe/WebPageProxyWPE.cpp WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp -@@ -248,6 +256,8 @@ WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp +@@ -248,6 +258,8 @@ WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp @@ -11238,7 +11403,7 @@ index 78d1578f94793e9e59a3d4d2b33e79ea8530fa04..493cdadac3873508b3efa3048638e73a #endif +int webkitWebContextExistingCount(); diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -index d93eab93a79bbe3005a510224798ff9956c9ae19..52de3373ce0353e9d7dc3e3d7a2d85f3643c8593 100644 +index d93eab93a79bbe3005a510224798ff9956c9ae19..5d4c6b65f2b755ba1ea9d8a1a3e66651cf1c7d88 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp @@ -32,6 +32,7 @@ @@ -11249,6 +11414,22 @@ index d93eab93a79bbe3005a510224798ff9956c9ae19..52de3373ce0353e9d7dc3e3d7a2d85f3 #include "WebKitAuthenticationRequestPrivate.h" #include "WebKitBackForwardListPrivate.h" #include "WebKitContextMenuClient.h" +@@ -51,6 +52,7 @@ + #include "WebKitJavascriptResultPrivate.h" + #include "WebKitNavigationClient.h" + #include "WebKitNotificationPrivate.h" ++#include "WebKitPointerLockPermissionRequest.h" + #include "WebKitPrivate.h" + #include "WebKitResponsePolicyDecision.h" + #include "WebKitScriptDialogPrivate.h" +@@ -85,7 +87,6 @@ + + #if PLATFORM(GTK) + #include "WebKitInputMethodContextImplGtk.h" +-#include "WebKitPointerLockPermissionRequest.h" + #include "WebKitPrintOperationPrivate.h" + #include "WebKitWebInspectorPrivate.h" + #include "WebKitWebViewBasePrivate.h" @@ -133,6 +134,7 @@ enum { CLOSE, @@ -11275,6 +11456,15 @@ index d93eab93a79bbe3005a510224798ff9956c9ae19..52de3373ce0353e9d7dc3e3d7a2d85f3 #endif static gboolean webkitWebViewLoadFail(WebKitWebView* webView, WebKitLoadEvent, const char* failingURI, GError* error) +@@ -526,7 +532,7 @@ static gboolean webkitWebViewDecidePolicy(WebKitWebView*, WebKitPolicyDecision* + + static gboolean webkitWebViewPermissionRequest(WebKitWebView*, WebKitPermissionRequest* request) + { +-#if ENABLE(POINTER_LOCK) ++#if ENABLE(POINTER_LOCK) && PLATFORM(GTK) + if (WEBKIT_IS_POINTER_LOCK_PERMISSION_REQUEST(request)) { + webkit_permission_request_allow(request); + return TRUE; @@ -1609,6 +1615,15 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) G_TYPE_BOOLEAN, 1, WEBKIT_TYPE_SCRIPT_DIALOG); @@ -11474,18 +11664,22 @@ index ecbe433ed888353b1e6013943b4463835c3582d2..7385877fe664515814fc5c3380a2b729 #include #include diff --git a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp -index 9631a3f19d24c29286ab634c0bd65cfbc83f9334..15c2813f21b419fc9067ae88231de2b12829c38f 100644 +index 9631a3f19d24c29286ab634c0bd65cfbc83f9334..3be670503bda2ea35985fb63a9d8906a85ea69d6 100644 --- a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp +++ b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp -@@ -34,6 +34,7 @@ +@@ -32,8 +32,11 @@ + #include "NativeWebWheelEvent.h" + #include "TouchGestureController.h" #include "WPEView.h" ++#include "WebColorPickerWPE.h" ++#include "WebDateTimePickerWPE.h" #include "WebContextMenuProxy.h" #include "WebContextMenuProxyWPE.h" +#include "WebKitDataListSuggestionsDropdown.h" #include "WebKitPopupMenu.h" #include #include -@@ -194,7 +195,7 @@ WebCore::IntPoint PageClientImpl::accessibilityScreenToRootView(const WebCore::I +@@ -194,7 +197,7 @@ WebCore::IntPoint PageClientImpl::accessibilityScreenToRootView(const WebCore::I WebCore::IntRect PageClientImpl::rootViewToAccessibilityScreen(const WebCore::IntRect& rect) { @@ -11494,7 +11688,7 @@ index 9631a3f19d24c29286ab634c0bd65cfbc83f9334..15c2813f21b419fc9067ae88231de2b1 } void PageClientImpl::doneWithKeyEvent(const NativeWebKeyboardEvent&, bool) -@@ -446,4 +447,11 @@ void PageClientImpl::selectionDidChange() +@@ -446,4 +449,23 @@ void PageClientImpl::selectionDidChange() m_view.selectionDidChange(); } @@ -11504,19 +11698,38 @@ index 9631a3f19d24c29286ab634c0bd65cfbc83f9334..15c2813f21b419fc9067ae88231de2b1 + return WebKitDataListSuggestionsDropdown::create(page); +} +#endif ++ ++RefPtr PageClientImpl::createColorPicker(WebPageProxy* page, const WebCore::Color& color, const WebCore::IntRect& rect, Vector&&) ++{ ++ return WebColorPickerWPE::create(*page, color, rect); ++} ++ ++#if ENABLE(DATE_AND_TIME_INPUT_TYPES) ++RefPtr PageClientImpl::createDateTimePicker(WebPageProxy& page) ++{ ++ return WebDateTimePickerWPE::create(page); ++} ++#endif + } // namespace WebKit diff --git a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h -index 8ab8db715db64616a15a06bb2b4760a40ad5f254..0307a117cbd5c4fb767c4905e9e3370efd5ebf9a 100644 +index 8ab8db715db64616a15a06bb2b4760a40ad5f254..107cac00fe80483c893b30b40e1fa8c28043ddc4 100644 --- a/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h +++ b/Source/WebKit/UIProcess/API/wpe/PageClientImpl.h -@@ -166,6 +166,10 @@ private: +@@ -166,6 +166,17 @@ private: void selectionDidChange() override; +#if ENABLE(DATALIST_ELEMENT) + RefPtr createDataListSuggestionsDropdown(WebKit::WebPageProxy& page) override; +#endif ++ ++#if ENABLE(INPUT_TYPE_COLOR) ++ RefPtr createColorPicker(WebPageProxy*, const WebCore::Color& initialColor, const WebCore::IntRect&, Vector&&) override; ++#endif ++#if ENABLE(DATE_AND_TIME_INPUT_TYPES) ++ RefPtr createDateTimePicker(WebPageProxy&) override; ++#endif + WKWPE::View& m_view; }; @@ -11733,6 +11946,76 @@ index 0000000000000000000000000000000000000000..0a099832c3dd959f456fcae49a1d62a9 +} // namespace WebKit + +#endif // ENABLE(DATALIST_ELEMENT) +diff --git a/Source/WebKit/UIProcess/API/wpe/WebKitPointerLockPermissionRequest.h b/Source/WebKit/UIProcess/API/wpe/WebKitPointerLockPermissionRequest.h +new file mode 100644 +index 0000000000000000000000000000000000000000..a47e7eeb15094655c87d41ad0de7973306121184 +--- /dev/null ++++ b/Source/WebKit/UIProcess/API/wpe/WebKitPointerLockPermissionRequest.h +@@ -0,0 +1,64 @@ ++/* ++ * Copyright (C) 2019 Igalia S.L. ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public License ++ * along with this library; see the file COPYING.LIB. If not, write to ++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ */ ++ ++#if !defined(__WEBKIT2_H_INSIDE__) && !defined(WEBKIT2_COMPILATION) ++#error "Only can be included directly." ++#endif ++ ++#ifndef WebKitPointerLockPermissionRequest_h ++#define WebKitPointerLockPermissionRequest_h ++ ++#include ++#include ++ ++G_BEGIN_DECLS ++ ++#define WEBKIT_TYPE_POINTER_LOCK_PERMISSION_REQUEST (webkit_pointer_lock_permission_request_get_type()) ++#define WEBKIT_POINTER_LOCK_PERMISSION_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_POINTER_LOCK_PERMISSION_REQUEST, WebKitPointerLockPermissionRequest)) ++#define WEBKIT_POINTER_LOCK_PERMISSION_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_POINTER_LOCK_PERMISSION_REQUEST, WebKitPointerLockPermissionRequestClass)) ++#define WEBKIT_IS_POINTER_LOCK_PERMISSION_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_POINTER_LOCK_PERMISSION_REQUEST)) ++#define WEBKIT_IS_POINTER_LOCK_PERMISSION_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_POINTER_LOCK_PERMISSION_REQUEST)) ++#define WEBKIT_POINTER_LOCK_PERMISSION_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_POINTER_LOCK_PERMISSION_REQUEST, WebKitPointerLockPermissionRequestClass)) ++ ++typedef struct _WebKitPointerLockPermissionRequest WebKitPointerLockPermissionRequest; ++typedef struct _WebKitPointerLockPermissionRequestClass WebKitPointerLockPermissionRequestClass; ++typedef struct _WebKitPointerLockPermissionRequestPrivate WebKitPointerLockPermissionRequestPrivate; ++ ++struct _WebKitPointerLockPermissionRequest { ++ GObject parent; ++ ++ /*< private >*/ ++ WebKitPointerLockPermissionRequestPrivate *priv; ++}; ++ ++struct _WebKitPointerLockPermissionRequestClass { ++ GObjectClass parent_class; ++ ++ void (*_webkit_reserved0) (void); ++ void (*_webkit_reserved1) (void); ++ void (*_webkit_reserved2) (void); ++ void (*_webkit_reserved3) (void); ++}; ++ ++WEBKIT_API GType ++webkit_pointer_lock_permission_request_get_type (void); ++ ++G_END_DECLS ++ ++#endif diff --git a/Source/WebKit/UIProcess/API/wpe/WebKitWebViewBackend.cpp b/Source/WebKit/UIProcess/API/wpe/WebKitWebViewBackend.cpp index e0fc205b39095cf8aae201a1dcca520461c60de4..872186ad99a7b82f0c61705ff6c5ae4453e5e1d4 100644 --- a/Source/WebKit/UIProcess/API/wpe/WebKitWebViewBackend.cpp @@ -19247,6 +19530,254 @@ index 0000000000000000000000000000000000000000..7453194ca6f032ba86a4c67f5bf12688 +} + +} // namespace WebKit +diff --git a/Source/WebKit/UIProcess/wpe/WebColorPickerWPE.cpp b/Source/WebKit/UIProcess/wpe/WebColorPickerWPE.cpp +new file mode 100644 +index 0000000000000000000000000000000000000000..2433afca5cdbac71d11ae1fce223766091b5c843 +--- /dev/null ++++ b/Source/WebKit/UIProcess/wpe/WebColorPickerWPE.cpp +@@ -0,0 +1,61 @@ ++/* ++ * Copyright (C) 2015 Igalia S.L. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS AS IS'' ++ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS ++ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ++ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF ++ * THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "config.h" ++#include "WebColorPickerWPE.h" ++ ++#if ENABLE(INPUT_TYPE_COLOR) ++ ++#include "WebPageProxy.h" ++ ++namespace WebKit { ++using namespace WebCore; ++ ++Ref WebColorPickerWPE::create(WebPageProxy& page, const Color& initialColor, const IntRect& rect) ++{ ++ return adoptRef(*new WebColorPickerWPE(page, initialColor, rect)); ++} ++ ++WebColorPickerWPE::WebColorPickerWPE(WebPageProxy& page, const Color& initialColor, const IntRect&) ++ : WebColorPicker(&page) ++{ ++} ++ ++WebColorPickerWPE::~WebColorPickerWPE() ++{ ++ endPicker(); ++} ++ ++void WebColorPickerWPE::endPicker() ++{ ++} ++ ++void WebColorPickerWPE::showColorPicker(const Color& color) ++{ ++} ++ ++} // namespace WebKit ++ ++#endif // ENABLE(INPUT_TYPE_COLOR) +diff --git a/Source/WebKit/UIProcess/wpe/WebColorPickerWPE.h b/Source/WebKit/UIProcess/wpe/WebColorPickerWPE.h +new file mode 100644 +index 0000000000000000000000000000000000000000..7edc93b3873dd42a7f877626551ec994395baae9 +--- /dev/null ++++ b/Source/WebKit/UIProcess/wpe/WebColorPickerWPE.h +@@ -0,0 +1,57 @@ ++/* ++ * Copyright (C) 2015 Igalia S.L. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS AS IS'' ++ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS ++ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ++ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF ++ * THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#ifndef WebColorPickerWPE_h ++#define WebColorPickerWPE_h ++ ++#if ENABLE(INPUT_TYPE_COLOR) ++ ++#include "WebColorPicker.h" ++ ++typedef struct _GtkColorChooser GtkColorChooser; ++ ++namespace WebCore { ++class Color; ++class IntRect; ++} ++ ++namespace WebKit { ++ ++class WebColorPickerWPE : public WebColorPicker { ++public: ++ static Ref create(WebPageProxy&, const WebCore::Color&, const WebCore::IntRect&); ++ virtual ~WebColorPickerWPE(); ++ ++ void endPicker() override; ++ void showColorPicker(const WebCore::Color&) override; ++ ++protected: ++ WebColorPickerWPE(WebPageProxy&, const WebCore::Color&, const WebCore::IntRect&); ++}; ++ ++} // namespace WebKit ++ ++#endif // ENABLE(INPUT_TYPE_COLOR) ++#endif // WebColorPickerWPE_h +diff --git a/Source/WebKit/UIProcess/wpe/WebDateTimePickerWPE.cpp b/Source/WebKit/UIProcess/wpe/WebDateTimePickerWPE.cpp +new file mode 100644 +index 0000000000000000000000000000000000000000..a44463faf011fbab08f87bb7007a5e71c2a73758 +--- /dev/null ++++ b/Source/WebKit/UIProcess/wpe/WebDateTimePickerWPE.cpp +@@ -0,0 +1,56 @@ ++/* ++ * Copyright (C) 2020 Apple Inc. All rights reserved. ++ * Copyright (C) 2021 Igalia S.L. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' ++ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS ++ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ++ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF ++ * THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "config.h" ++#include "WebDateTimePickerWPE.h" ++ ++#if ENABLE(DATE_AND_TIME_INPUT_TYPES) ++ ++using namespace WebCore; ++ ++namespace WebKit { ++ ++Ref WebDateTimePickerWPE::create(WebPageProxy& page) ++{ ++ return adoptRef(*new WebDateTimePickerWPE(page)); ++} ++ ++WebDateTimePickerWPE::~WebDateTimePickerWPE() ++{ ++} ++ ++WebDateTimePickerWPE::WebDateTimePickerWPE(WebPageProxy& page) ++ : WebDateTimePicker(page) ++{ ++} ++ ++void WebDateTimePickerWPE::showDateTimePicker(WebCore::DateTimeChooserParameters&& params) ++{ ++} ++ ++} // namespace WebKit ++ ++#endif // ENABLE(DATE_AND_TIME_INPUT_TYPES) +diff --git a/Source/WebKit/UIProcess/wpe/WebDateTimePickerWPE.h b/Source/WebKit/UIProcess/wpe/WebDateTimePickerWPE.h +new file mode 100644 +index 0000000000000000000000000000000000000000..0c0e3fce33b06ee72c4c29d2a4abe9644f4cc895 +--- /dev/null ++++ b/Source/WebKit/UIProcess/wpe/WebDateTimePickerWPE.h +@@ -0,0 +1,50 @@ ++/* ++ * Copyright (C) 2020 Apple Inc. All rights reserved. ++ * Copyright (C) 2021 Igalia S.L. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' ++ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS ++ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ++ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF ++ * THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#pragma once ++ ++#if ENABLE(DATE_AND_TIME_INPUT_TYPES) ++ ++#include "WebDateTimePicker.h" ++#include ++#include ++ ++namespace WebKit { ++ ++class WebDateTimePickerWPE final : public WebDateTimePicker { ++public: ++ static Ref create(WebPageProxy&); ++ ~WebDateTimePickerWPE(); ++ ++private: ++ WebDateTimePickerWPE(WebPageProxy&); ++ ++ void showDateTimePicker(WebCore::DateTimeChooserParameters&&) final; ++}; ++ ++} // namespace WebKit ++ ++#endif // ENABLE(DATE_AND_TIME_INPUT_TYPES) diff --git a/Source/WebKit/UIProcess/wpe/WebPageInspectorEmulationAgentWPE.cpp b/Source/WebKit/UIProcess/wpe/WebPageInspectorEmulationAgentWPE.cpp new file mode 100644 index 0000000000000000000000000000000000000000..5dc76aa302cb574307059e66a1b73730efe920da @@ -20848,7 +21379,7 @@ index 0000000000000000000000000000000000000000..dd6a53e2d57318489b7e49dd7373706d + LIBVPX_LIBRARIES +) diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index 3b0ab40da5002a0a74ec4331aa65fb3b4a35f663..46e31d5c67cb8780be7b01f41983aa2526a4a6ee 100644 +index 3b0ab40da5002a0a74ec4331aa65fb3b4a35f663..e160d294ddb23b6a4c7cc496c51c15026adfc132 100644 --- a/Source/cmake/OptionsGTK.cmake +++ b/Source/cmake/OptionsGTK.cmake @@ -5,6 +5,8 @@ WEBKIT_OPTION_BEGIN() @@ -20906,7 +21437,7 @@ index 3b0ab40da5002a0a74ec4331aa65fb3b4a35f663..46e31d5c67cb8780be7b01f41983aa25 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MOUSE_CURSOR_SCALE PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API PRIVATE OFF) -@@ -180,6 +185,16 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHAREABLE_RESOURCE PRIVATE ON) +@@ -180,6 +185,17 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHAREABLE_RESOURCE PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_API_STATISTICS PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_RTC PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) @@ -20919,12 +21450,13 @@ index 3b0ab40da5002a0a74ec4331aa65fb3b4a35f663..46e31d5c67cb8780be7b01f41983aa25 +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD PRIVATE ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM PRIVATE ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPEECH_SYNTHESIS PRIVATE ON) ++WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_POINTER_LOCK PRIVATE ON) + include(GStreamerDependencies) # Finalize the value for all options. Do not attempt to use an option before diff --git a/Source/cmake/OptionsWPE.cmake b/Source/cmake/OptionsWPE.cmake -index 4469f0aee0f55a362108454928dd50bc7425390c..5c2acec84ebdae5631c7478c103521a109ffbefd 100644 +index 4469f0aee0f55a362108454928dd50bc7425390c..1257bf58bba7ea0001f081fa4d9211ef6689bdb9 100644 --- a/Source/cmake/OptionsWPE.cmake +++ b/Source/cmake/OptionsWPE.cmake @@ -3,6 +3,7 @@ include(VersioningUtils) @@ -20943,7 +21475,7 @@ index 4469f0aee0f55a362108454928dd50bc7425390c..5c2acec84ebdae5631c7478c103521a1 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML PRIVATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API PRIVATE OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NOTIFICATIONS PRIVATE ON) -@@ -68,15 +68,28 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL2 PRIVATE OFF) +@@ -68,15 +68,35 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL2 PRIVATE OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_RTC PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBXR PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) @@ -20957,8 +21489,15 @@ index 4469f0aee0f55a362108454928dd50bc7425390c..5c2acec84ebdae5631c7478c103521a1 +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PRIVATE ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DEVICE_ORIENTATION PRIVATE ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD PRIVATE ON) ++WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR PRIVATE ON) ++WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATE PRIVATE ON) ++WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATETIMELOCAL PRIVATE ON) ++WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_MONTH PRIVATE ON) ++WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_TIME PRIVATE ON) ++WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_WEEK PRIVATE ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM PRIVATE ON) +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPEECH_SYNTHESIS PRIVATE ON) ++WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_POINTER_LOCK PRIVATE ON) + # Public options specific to the WPE port. Do not add any options here unless # there is a strong reason we should support changing the value of the option, @@ -20976,7 +21515,7 @@ index 4469f0aee0f55a362108454928dd50bc7425390c..5c2acec84ebdae5631c7478c103521a1 WEBKIT_OPTION_DEFINE(USE_WOFF2 "Whether to enable support for WOFF2 Web Fonts." PUBLIC ON) diff --git a/Source/cmake/OptionsWin.cmake b/Source/cmake/OptionsWin.cmake -index ae2ab4d10367dbf6bc38f9a0246cab2485b6fb67..882158624ffa6b032911ec5c7fe175b0ac7e740b 100644 +index ae2ab4d10367dbf6bc38f9a0246cab2485b6fb67..7629d6711783694d963c89685d03cfe0a9c585d6 100644 --- a/Source/cmake/OptionsWin.cmake +++ b/Source/cmake/OptionsWin.cmake @@ -7,8 +7,9 @@ add_definitions(-D_WINDOWS -DWINVER=0x601 -D_WIN32_WINNT=0x601) @@ -20990,7 +21529,7 @@ index ae2ab4d10367dbf6bc38f9a0246cab2485b6fb67..882158624ffa6b032911ec5c7fe175b0 set(ENABLE_WEBKIT OFF) endif () -@@ -27,7 +28,6 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_BOX_DECORATION_BREAK PUBLIC ON) +@@ -27,11 +28,9 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_BOX_DECORATION_BREAK PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_SELECTORS_LEVEL4 PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CURSOR_VISIBILITY PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DATALIST_ELEMENT PUBLIC OFF) @@ -20998,7 +21537,19 @@ index ae2ab4d10367dbf6bc38f9a0246cab2485b6fb67..882158624ffa6b032911ec5c7fe175b0 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PUBLIC ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTL_JIT PUBLIC OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FULLSCREEN_API PUBLIC ON) -@@ -88,6 +88,14 @@ if (${WTF_PLATFORM_WIN_CAIRO}) +-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD PUBLIC OFF) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PUBLIC ON) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR PUBLIC OFF) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATE PUBLIC OFF) +@@ -47,7 +46,6 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT PUBLIC ON) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SOURCE PUBLIC OFF) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STATISTICS PUBLIC ON) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MOUSE_CURSOR_SCALE PUBLIC ON) +-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NOTIFICATIONS PUBLIC OFF) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO PUBLIC ON) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBASSEMBLY PRIVATE OFF) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_AUDIO PUBLIC OFF) +@@ -88,6 +86,17 @@ if (${WTF_PLATFORM_WIN_CAIRO}) # No support planned WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTPDIR PRIVATE OFF) @@ -21008,6 +21559,9 @@ index ae2ab4d10367dbf6bc38f9a0246cab2485b6fb67..882158624ffa6b032911ec5c7fe175b0 + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DARK_MODE_CSS PRIVATE ON) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DEVICE_ORIENTATION PRIVATE ON) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DOWNLOAD_ATTRIBUTE PRIVATE ON) ++ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD PRIVATE ON) ++ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NOTIFICATIONS PRIVATE ON) ++ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_POINTER_LOCK PRIVATE ON) + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS PRIVATE ON) + # FIXME: Implement plugin process on Modern WebKit. https://bugs.webkit.org/show_bug.cgi?id=185313