⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Jun 9, 2019:

11:25 PM Changeset in webkit [246254] by bshafiei@apple.com
  • 2 edits in branches/safari-608.1.27-branch/Source/WebKit

Cherry-pick r246248. rdar://problem/51538088

[iOS] ResourceLoadStatistics state is not properly relayed to the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=198692
<rdar://problem/51538088>

Reviewed by Maciej Stachowiak.

  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setResourceLoadStatisticsEnabled): Message the NetworkProcess on state change.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246248 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:25 PM Changeset in webkit [246253] by bshafiei@apple.com
  • 3 edits in branches/safari-608.1.27-branch/Source/WebKit

Cherry-pick r246239. rdar://problem/51462498

Drag starting state can get stuck even though the drag has ended
https://bugs.webkit.org/show_bug.cgi?id=198696
<rdar://problem/51556045>

Reviewed by Wenson Hsieh.

In iOS 13, we're seeing cases of the DragSession not
correctly ending, and thus leaving m_isStartingDrag in
an incorrect state. Temporarily force this to be reset
in ::dragEnded while investigating

  • UIProcess/ios/WKContentViewInteraction.mm: Add some more release logging while here. (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]): (-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::dragEnded):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246239 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:25 PM Changeset in webkit [246252] by bshafiei@apple.com
  • 17 edits
    6 copies in branches/safari-608.1.27-branch/Source/WebKit

Cherry-pick r246224. rdar://problem/51462498

Introduce new SPI for context menus on iOS
https://bugs.webkit.org/show_bug.cgi?id=198590

Reviewed by Tim Horton.

Also introduce WKContextMenuElementInfo which is API.
This is part of <rdar://problem/51003503>

  • Shared/API/APIObject.h:
  • Shared/API/Cocoa/WebKit.h:
  • Shared/Cocoa/APIObject.mm: (API::Object::newObject):
  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/API/APIContextMenuElementInfo.cpp: Added. (API::ContextMenuElementInfo::ContextMenuElementInfo):
  • UIProcess/API/APIContextMenuElementInfo.h: Added.
  • UIProcess/API/Cocoa/WKContextMenuElementInfo.h: Added.
  • UIProcess/API/Cocoa/WKContextMenuElementInfo.mm: Added. (-[WKContextMenuElementInfo linkURL]): (-[WKContextMenuElementInfo _apiObject]): (-[WKContextMenuElementInfo _activatedElementInfo]):
  • UIProcess/API/Cocoa/WKContextMenuElementInfoInternal.h: Added.
  • UIProcess/API/Cocoa/WKContextMenuElementInfoPrivate.h: Added.
  • UIProcess/API/Cocoa/WKPreviewElementInfo.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.mm: (-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:]): (-[_WKActivatedElementInfo isAnimatedImage]):
  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant defaultActionsForLinkSheet:]): (-[WKActionSheetAssistant defaultActionsForImageSheet:]):
  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • WebKit.xcodeproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246224 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:25 PM Changeset in webkit [246251] by bshafiei@apple.com
  • 7 edits
    2 adds in branches/safari-608.1.27-branch

Cherry-pick r246213. rdar://problem/50114230

Restrict fast clicks everywhere to desktop content mode
https://bugs.webkit.org/show_bug.cgi?id=198610
<rdar://problem/50114230>

Reviewed by Dean Jackson.

Source/WebKit:

We now set a new allowsFastClicksEverywhere property on the WebPageProxy when the content mode changes, set to true
when we're in desktop browsing mode. We now check on this property to opt into the fast clicks everywhere behavior.

This patch had been reverted once because it yielded some regressions in existing tests, notably under
fast/events/touch/ios/content-observation. This updated patch addresses this by ensuring the gesture recognizers
used for double-tap-to-zoom are disabled in -[WKContentViewInteraction _didStartProvisionalLoadForMainFrame]
to ensure that two tests dispatching a tap at the same location don't yield the recognition of a double-tap
rathern than the recognition of two single taps.

  • UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::allowsFastClicksEverywhere const):
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:]): (_didStartProvisionalLoadForMainFrame):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

LayoutTests:

Add a new test that enables fast clicks but also sets a mobile content mode.

We also mark fast/visual-viewport/ios/min-scale-greater-than-one.html as non-flaky
since the flakiness was due to the fast clicks everywhere behavior being enabled on iPhone.

Finally, we can now remove the hack where ui.tap() in the Pointer Events utility returned
a promise with a one-second delay since the issue of double-taps being recognized instead of
two consecutive single taps across two tests has been resolved.

  • fast/events/ios/ipad/fast-click-always-mobile-content-mode-expected.txt: Added.
  • fast/events/ios/ipad/fast-click-always-mobile-content-mode.html: Added.
  • platform/ios-simulator-wk2/TestExpectations:
  • pointerevents/utils.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246213 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:25 PM Changeset in webkit [246250] by bshafiei@apple.com
  • 40 edits
    1 move
    1 add
    1 delete in branches/safari-608.1.27-branch

Cherry-pick r246118. rdar://problem/50114230

Upstream content mode support into open source from WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=198484
<rdar://problem/51355671>

Reviewed by Andy Estes.

Source/WebCore:

  • Modules/modern-media-controls/media/media-controller.js: (MediaController.prototype.get layoutTraits):

Adjust modern media controls code to use iOS-style controls on PLATFORM(IOS_FAMILY), instead of depending on the
navigator's platform name or the presence of touch events.

  • page/Quirks.cpp: (WebCore::shouldSuppressAutocorrectionAndAutocaptializationInHiddenEditableAreasForHost): (WebCore::shouldEmulateUndoRedoInHiddenEditableAreasForHost):
  • page/SettingsBase.h:
  • rendering/RenderThemeIOS.mm: (WebCore::RenderThemeIOS::mediaControlsScript):

Source/WebCore/PAL:

Add some new constants to MobileGestaltSPI.h.

  • pal/spi/ios/MobileGestaltSPI.h:

Source/WebKit:

Move code for handling WKContentMode into open source. No change in behavior, for internal builds.

  • Shared/API/Cocoa/WebKit.apinotes:
  • Shared/WebContentMode.h: Renamed from Source/WebKit/Shared/WebCompatibilityMode.h.
  • Shared/WebPreferences.yaml:
  • UIProcess/API/APINavigation.h: (API::Navigation::setEffectiveContentMode): (API::Navigation::effectiveContentMode const): (API::Navigation::setEffectiveCompatibilityMode): Deleted. (API::Navigation::effectiveCompatibilityMode const): Deleted.
  • UIProcess/API/APINavigationClient.h: (API::NavigationClient::shouldBypassContentModeSafeguards const): (API::NavigationClient::shouldBypassCompatibilityModeSafeguards const): Deleted.
  • UIProcess/API/APIWebsitePolicies.cpp: (API::WebsitePolicies::copy const):
  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/Cocoa/WKNavigation.h:
  • UIProcess/API/Cocoa/WKNavigation.mm: (-[WKNavigation effectiveContentMode]):
  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • UIProcess/API/Cocoa/WKWebpagePreferences.mm: (WebKit::contentMode): (WebKit::webContentMode): (-[WKWebpagePreferences _allowSiteSpecificQuirksToOverrideCompatibilityMode]): (-[WKWebpagePreferences _setAllowSiteSpecificQuirksToOverrideCompatibilityMode:]): (-[WKWebpagePreferences setPreferredContentMode:]): (-[WKWebpagePreferences preferredContentMode]):
  • UIProcess/API/Cocoa/WKWebpagePreferencesInternal.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationClient::shouldBypassContentModeSafeguards const): (WebKit::NavigationState::NavigationClient::shouldBypassCompatibilityModeSafeguards const): Deleted.
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies): (WebKit::WebPageProxy::effectiveCompatibilityModeAfterAdjustingPolicies): Deleted.
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::desktopClassBrowsingSupported): (WebKit::webViewSizeIsNarrow): (WebKit::desktopClassBrowsingRecommendedForRequest): (WebKit::desktopClassBrowsingRecommended): (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Change the "useModernCompatibilityMode" layout test option to instead be "contentMode", with values of either
"mobile" or "desktop".

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/ios/PreferredCompatibilityMode.mm: Removed.
  • TestWebKitAPI/ios/PreferredContentMode.mm: Added. (-[ContentModeNavigationDelegate setDecidePolicyForNavigationActionWithPreferences:]): (-[ContentModeNavigationDelegate decidePolicyForNavigationActionWithPreferences]): (-[ContentModeNavigationDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]): (+[WKWebpagePreferences preferencesWithContentMode:]): (-[WKWebView navigatorUserAgent]): (-[WKWebView navigatorPlatform]): (-[WKWebView loadTestPageNamed:withPolicyDecisionHandler:]): (-[WKWebView loadHTMLString:withPolicyDecisionHandler:]): (-[WKWebView loadTestPageNamed:andExpectEffectiveContentMode:withPolicyDecisionHandler:]): (-[NSString shouldContainStrings:]): (IPhoneUserInterfaceSwizzler::IPhoneUserInterfaceSwizzler): (IPhoneUserInterfaceSwizzler::phoneUserInterfaceIdiom): (TestWebKitAPI::setUpWebViewForPreferredContentModeTestingWithoutNavigationDelegate): (TestWebKitAPI::setUpWebViewForPreferredContentModeTesting): (TestWebKitAPI::makeContentModeDecisionHandler): (TestWebKitAPI::TEST):
  • WebKitTestRunner/TestController.cpp: (WTR::updateTestOptionsFromTestHeader):
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const):
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::platformCreateWebView): (WTR::TestController::configureContentMode): (WTR::TestController::enableModernCompatibilityMode): Deleted.

LayoutTests:

Explicitly opt a few tests into desktop or mobile content mode.

  • fast/media/ios/ipad/enable-MediaSource-API-in-modern-compatibility-mode.html:
  • fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode-expected.html:
  • fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode.html:
  • media/modern-media-controls/media-controller/ios/media-controller-ios-layout-traits-modern-compatibility-mode.html:
  • platform/ipad/fast/css/webkit-overflow-scrolling-parsing-modern-compatibility-mode.html:
  • platform/ipad/fast/viewport/empty-meta.html:
  • platform/ipad/fast/viewport/viewport-unchanged-by-minimum-effective-width-if-not-ignore-meta-viewport.html:
  • platform/ipad/media/modern-media-controls/media-documents/media-document-audio-ios-sizing.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246118 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:22 PM Changeset in webkit [246249] by Fujii Hironori
  • 2 edits in trunk/Tools

[WinCairo][MiniBrowser] Disable MediaCapabilities until it's ready
https://bugs.webkit.org/show_bug.cgi?id=198655

Reviewed by Ross Kirsling.

MediaCapabilities is enabled by default for WK2, but WinCairo
doesn't implemented yet. Disable it in MiniBrowser.

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(WebKitBrowserWindow::create):

5:25 PM Changeset in webkit [246248] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] ResourceLoadStatistics state is not properly relayed to the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=198692
<rdar://problem/51538088>

Reviewed by Maciej Stachowiak.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setResourceLoadStatisticsEnabled): Message the NetworkProcess
on state change.

2:47 PM Changeset in webkit [246247] by bshafiei@apple.com
  • 3 edits in tags/Safari-608.1.28.1/Source/WebCore

Cherry-pick r246216. rdar://problem/51345064

Fix non-iOS build after r246205
https://bugs.webkit.org/show_bug.cgi?id=198657

Reviewed by Brent Fulgham.
<rdar://problem/51345064>

  • page/Quirks.cpp:
  • page/Quirks.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246216 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:16 PM Changeset in webkit [246246] by bshafiei@apple.com
  • 8 edits in tags/Safari-608.1.28.1/Source/WebCore

Cherry-pick r246207. rdar://problem/51185518

Images are not resizing correctly when dragged to a message in 1/3 view
https://bugs.webkit.org/show_bug.cgi?id=198623
<rdar://problem/51185518>

Reviewed by Wenson Hsieh.

Mail's max-width: 100%; default style is in conflict with the preferred presentation size. This patch preserves the existing behaviour for Mail by
not setting the height (and rely on the width + aspect ratio).

  • editing/WebContentReader.h:
  • editing/cocoa/WebContentReaderCocoa.mm: (WebCore::createFragmentForImageAttachment): (WebCore::WebContentReader::readImage): (WebCore::attachmentForFilePath): (WebCore::attachmentForData): (WebCore::WebContentReader::readFilePath): (WebCore::WebContentReader::readDataBuffer):
  • editing/gtk/EditorGtk.cpp: (WebCore::createFragmentFromPasteboardData):
  • editing/markup.cpp: (WebCore::createFragmentForImageAndURL):
  • editing/markup.h:
  • platform/Pasteboard.h: (WebCore::PasteboardWebContentReader::readFilePath): (WebCore::PasteboardWebContentReader::readImage): (WebCore::PasteboardWebContentReader::readDataBuffer):
  • platform/PasteboardItemInfo.h: (WebCore::PasteboardItemInfo::encode const): (WebCore::PasteboardItemInfo::decode):
  • platform/ios/PasteboardIOS.mm: (WebCore::Pasteboard::readPasteboardWebContentDataForType): (WebCore::Pasteboard::read): (WebCore::Pasteboard::readRespectingUTIFidelities):
  • platform/ios/PlatformPasteboardIOS.mm: (WebCore::PlatformPasteboard::informationForItemAtIndex):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246207 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:15 PM Changeset in webkit [246245] by bshafiei@apple.com
  • 3 edits in tags/Safari-608.1.28.1/Source/WebCore

Cherry-pick r246205. rdar://problem/51345064

Limit simulated mouse events on Google Maps to entering Street View
https://bugs.webkit.org/show_bug.cgi?id=198657
<rdar://problem/51345064>

Reviewed by Brent Fulgham.

  • page/Quirks.cpp: (WebCore::Quirks::shouldDispatchSimulatedMouseEvents const): (WebCore::Quirks::shouldDispatchSimulatedMouseEventsOnTarget const):
  • page/Quirks.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246205 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:15 PM Changeset in webkit [246244] by bshafiei@apple.com
  • 2 edits in tags/Safari-608.1.28.1/Source/WebCore

Cherry-pick r246099. rdar://problem/48006291

iPadOS: Google calendars new event picker moves and flickers in landscape with software keyboard
https://bugs.webkit.org/show_bug.cgi?id=198556

Reviewed by Wenson Hsieh.

Fix the issuse that it's really hard to create a new event using Google calendar on iPadOS with
a software keyboard enabled because tapping on date brings up software keyboard and erratically
shifts up/down the new event dialog/pane.

Add a site specific quirk to pretend these input elements have inputmode=none for now.

No new tests since this is a site specific quirk.

  • page/Quirks.cpp: (WebCore::Quirks::needsInputModeNoneImplicitly const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246099 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:15 PM Changeset in webkit [246243] by bshafiei@apple.com
  • 4 edits
    2 adds in tags/Safari-608.1.28.1

Cherry-pick r246096. rdar://problem/51375055

[ContentChangeObserver] Gmail text editing controls require two taps
https://bugs.webkit.org/show_bug.cgi?id=198541
<rdar://problem/51375055>

Reviewed by Simon Fraser.

Source/WebCore:

When the animation completes we should also check if the newly visible content is also clickable and report it accordingly.
When the animated content is not clickable, we need to proceed with click instead of stopping at hover.

Test: fast/events/touch/ios/content-observation/100ms-delay-10ms-transition-on-mousemove-no-clickable.html

  • page/ios/ContentChangeObserver.cpp: (WebCore::isConsideredClickable): (WebCore::ContentChangeObserver::didFinishTransition): (WebCore::ContentChangeObserver::adjustObservedState): (WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope): (WebCore::ContentChangeObserver::StyleChangeScope::isConsideredClickable const): Deleted. -> Turn it into a static function so that didFinishTransition could call it as well.
  • page/ios/ContentChangeObserver.h:

LayoutTests:

  • fast/events/touch/ios/content-observation/100ms-delay-10ms-transition-on-mousemove-no-clickable.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246096 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:06 PM Changeset in webkit [246242] by bshafiei@apple.com
  • 7 edits in tags/Safari-608.1.28.1/Source

Versioning.

1:56 PM Changeset in webkit [246241] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.1.28.1

New tag.

1:28 PM Changeset in webkit [246240] by commit-queue@webkit.org
  • 20 edits in trunk/Source

Unreviewed, rolling out r246150, r246160, and r246166.
https://bugs.webkit.org/show_bug.cgi?id=198698

Regresses page loading time on iOS 13 (Requested by keith_m
on #webkit).

Reverted changesets:

"Reenable Gigacage on ARM64."
https://bugs.webkit.org/show_bug.cgi?id=198453
https://trac.webkit.org/changeset/246150

"Unrevied build fix for FTL without Gigacage."
https://trac.webkit.org/changeset/246160

"Fix typo in cageWithoutUntagging"
https://bugs.webkit.org/show_bug.cgi?id=198617
https://trac.webkit.org/changeset/246166

1:03 PM Changeset in webkit [246239] by dino@apple.com
  • 3 edits in trunk/Source/WebKit

Drag starting state can get stuck even though the drag has ended
https://bugs.webkit.org/show_bug.cgi?id=198696
<rdar://problem/51556045>

Reviewed by Wenson Hsieh.

In iOS 13, we're seeing cases of the DragSession not
correctly ending, and thus leaving m_isStartingDrag in
an incorrect state. Temporarily force this to be reset
in ::dragEnded while investigating

  • UIProcess/ios/WKContentViewInteraction.mm: Add some more release logging

while here.
(-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]):
(-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::dragEnded):

4:55 AM Changeset in webkit [246238] by commit-queue@webkit.org
  • 7 edits in trunk

Add wildcard to Access-Control-Allow-Methods and Access-Control-Allow-Headers
https://bugs.webkit.org/show_bug.cgi?id=165508

Patch by Rob Buis <rbuis@igalia.com> on 2019-06-09
Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/cors/cors-preflight-star.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-star.any.worker-expected.txt:

Source/WebCore:

According to the spec [1] step 6.5, a wildcard for method
and request's credentials mode should be taken into account, so
add this to the check. Same for Access-Control-Allow-Headers (step 6.7).

[1] https://fetch.spec.whatwg.org/#cors-preflight-fetch

Tests: web-platform-tests/fetch/api/cors/cors-preflight-star.any.html

web-platform-tests/fetch/api/cors/cors-preflight-star.any.worker.html

  • loader/CrossOriginAccessControl.cpp:

(WebCore::validatePreflightResponse):

  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const):
(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders const):
(WebCore::CrossOriginPreflightResultCacheItem::allowsRequest const):

  • loader/CrossOriginPreflightResultCache.h:
12:09 AM Changeset in webkit [246237] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Use mergePrediction in ValuePow prediction propagation
https://bugs.webkit.org/show_bug.cgi?id=198648

Reviewed by Saam Barati.

JSTests:

  • stress/prediction-propagation-should-use-merge-prediction-for-value-pow.js: Added.

Source/JavaScriptCore:

We are accidentally using setPrediction. This is wrong since prediction propagation (not processInvariant)
must extend the speculation types to ensure we eventually reach to the fixed point. setPrediction can discard
previously configured predictions, can lead to oscillation potentially. Use mergePrediction instead.

  • dfg/DFGPredictionPropagationPhase.cpp:

Jun 8, 2019:

8:55 PM Changeset in webkit [246236] by Wenson Hsieh
  • 12 edits in trunk

[iOS] The default application name for user agent when requesting desktop content is still "Mobile/15E148"
https://bugs.webkit.org/show_bug.cgi?id=198693
<rdar://problem/51555371>

Reviewed by Tim Horton.

Source/WebKit:

Fixes the bug by introducing an applicationNameForDesktopUserAgent member to WebPageProxy. This
applicationNameForDesktopUserAgent is set alongside the regular applicationNameForUserAgent; however, in the
case where it is being set via WKWebViewConfiguration, use WKWebViewConfiguration's
_applicationNameForDesktopUserAgent instead. See below for more details.

Tested by adding to the existing API test PreferredContentMode.ApplicationNameForDesktopUserAgent.

  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::copy const):

  • UIProcess/API/APIWebsitePolicies.h:

Drive-by fix: rename applicationNameForUserAgentWithModernCompatibility to applicationNameForDesktopUserAgent in
a few places.

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController setApplicationNameForUserAgent:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setApplicationNameForUserAgent:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

Change _applicationNameForUserAgent into an Optional<RetainPtr<NSString>>. A value of WTF::nullopt allows us to
know that the default application name should be used (which is different when requesting desktop content).

(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _applicationNameForDesktopUserAgent]):

Add _applicationNameForDesktopUserAgent to the web view configuration. This behaves like
applicationNameForUserAgent, with one exception: in the case where the default applicationNameForUserAgent is
used (i.e. the client has not specified any application name), default to nil as the application name for user
agent, rather than "Mobile/15E148".

(-[WKWebViewConfiguration applicationNameForUserAgent]):
(-[WKWebViewConfiguration setApplicationNameForUserAgent:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h:
  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:

(-[WKWebpagePreferences _applicationNameForUserAgentWithModernCompatibility]):
(-[WKWebpagePreferences _setApplicationNameForUserAgentWithModernCompatibility:]):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::setApplicationNameForDesktopUserAgent):
(WebKit::WebPageProxy::applicationNameForDesktopUserAgent const):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

Tools:

Augment an existing API test to exercise three additional scenarios:

  • The web view configuration's application name is never set; the default should not include

"Mobile/15E148" in desktop mode.

  • The application name is explicitly set to nil; the default application name should still not include

"Mobile/15E148".

  • The application name is explicitly set to the default value, "Mobile/15E148". WKWebView should honor

this when generating the user agent, even in desktop mode.

  • TestWebKitAPI/ios/PreferredContentMode.mm:

(TestWebKitAPI::setUpWebViewForPreferredContentModeTestingWithoutNavigationDelegate):
(TestWebKitAPI::setUpWebViewForPreferredContentModeTesting):
(TestWebKitAPI::TEST):

4:45 PM Changeset in webkit [246235] by aestes@apple.com
  • 13 edits in trunk/Source

[Apple Pay] If we have a bound interface identifier, set it on new PKPaymentRequests
https://bugs.webkit.org/show_bug.cgi?id=198690
<rdar://problem/48041803>

Reviewed by Tim Horton.

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitSPI.h: Included PKPaymentRequest_WebKit.h to declare some

WebKit-specific PKPaymentRequest SPIs for internal SDKs, and re-declared these SPIs - now
including the boundInterfaceIdentifier property - for public SDKs.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::boundInterfaceIdentifier const): Implemented a public getter
for m_boundInterfaceIdentifier.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm:

(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorBoundInterfaceIdentifier):
Implemented an override for paymentCoordinatorBoundInterfaceIdentifier.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.h: Declared

paymentCoordinatorBoundInterfaceIdentifier for clients to override.

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): If the client has a non-empty
bound interface identifier, set it on the new PKPaymentRequest.

  • UIProcess/WebPageProxy.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::paymentCoordinatorBoundInterfaceIdentifier): Implemented an override
for paymentCoordinatorBoundInterfaceIdentifier.

Source/WTF:

  • wtf/FeatureDefines.h: Defined HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER, and cleaned up some

other PassKit HAVEs.

11:48 AM Changeset in webkit [246234] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Introduce Baseline to LineBox
https://bugs.webkit.org/show_bug.cgi?id=198686
<rdar://problem/51545175>

Reviewed by Antti Koivisto.

Make baselines alignment explicit in Line.
This is in preparation for adding non-baseline vertical alignment support.

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const):
(WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Line):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::adjustBaselineAndLineHeight):
(WebCore::Layout::Line::halfLeadingMetrics):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Content::baseline const):
(WebCore::Layout::Line::Content::setBaseline):
(WebCore::Layout::Line::logicalHeight const):
(WebCore::Layout::Line::baselineAlignedContentHeight const):
(WebCore::Layout::Line::baselineOffset const):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::baseline const):
(WebCore::Layout::LineBox::LineBox):

11:31 AM Changeset in webkit [246233] by Alan Bujtas
  • 2 edits in trunk/Tools

[LFC] Unreviewed test gardening.

Remove rtl tests. They were mistakenly marked as pass.

  • LayoutReloaded/misc/LFC-passing-tests.txt:
3:32 AM Changeset in webkit [246232] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

resize-observer/element-leak.html fails on Windows platform
https://bugs.webkit.org/show_bug.cgi?id=197908

Patch by Cathie Chen <cathiechen> on 2019-06-08
Reviewed by Ryosuke Niwa.

We have conservative GC, the removed objects might keep alive for a while. Change the test case
to 20 iframes. This would make the result more accurate.

  • platform/win/TestExpectations:
  • resize-observer/element-leak-expected.txt:
  • resize-observer/element-leak.html:
Note: See TracTimeline for information about the timeline view.