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

Timeline



Jul 15, 2017:

11:57 PM Changeset in webkit [219545] by beidson@apple.com
  • 11 edits
    2 adds in trunk

Make sure all CFHTTPCookieStorageRefs we create are scheduled.
<rdar://problem/33221110> and https://bugs.webkit.org/show_bug.cgi?id=174513

Reviewed by Tim Horton.

Source/WebCore:

  • platform/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Whenever we create a CFHTTPCookieStorage from identifying data it is unscheduled.
We need to schedule it on the appropriate RunLoop.

This patch also cleans up the creation of the identifying data itself.

  • NetworkProcess/mac/RemoteNetworkingContext.mm:

(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):

  • Shared/cf/CookieStorageUtilsCF.h: Added.
  • Shared/cf/CookieStorageUtilsCF.mm: Added.

(WebKit::cookieStorageFromIdentifyingData):
(WebKit::identifyingDataFromCookieStorage):

  • Shared/mac/ChildProcessMac.mm:

(WebKit::ChildProcess::setSharedHTTPCookieStorage):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:

(WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm:

(TEST): Make this test more reliable by clearing everything beforehand.

11:08 PM Changeset in webkit [219544] by mmaxfield@apple.com
  • 18 edits in trunk/Source/WebCore

Rename RenderStyle::fontSize() to RenderStyle::computedFontPixelSize()
https://bugs.webkit.org/show_bug.cgi?id=174509

Reviewed by Simon Fraser.

We have three font size functions:

  • computedFontSize(): returns a float
  • specifiedFontSize(): also returns a float
  • fontSize(): returns the rounded computedFontSize()

FontDescription uses the convention of labelling rounded values as "pixel",
so a better name font fontSize() is computedFontPixelSize().

Also, because font sizes can never be negative, switch the type from an int
to an unsigned.

No new tests because there is no behavior change.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getAttributeSetForAccessibilityObject):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyle):

  • platform/graphics/FontDescription.h:

(WebCore::FontDescription::computedPixelSize):
(WebCore::FontDescription::fontSelectionRequest):

  • rendering/RenderBlock.cpp:

(WebCore::styleForFirstLetter):

  • rendering/RenderRubyRun.cpp:

(WebCore::shouldOverhang):
(WebCore::RenderRubyRun::getOverhang):

  • rendering/RenderRubyText.cpp:

(WebCore::RenderRubyText::adjustInlineDirectionLineBounds):

  • rendering/RenderThemeGtk.cpp:

(WebCore::adjustSearchFieldIconStyle):
(WebCore::paintSearchFieldIcon):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::adjustCheckboxStyle):
(WebCore::RenderThemeIOS::adjustRadioStyle):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::controlSizeForFont):
(WebCore::RenderThemeMac::controlSizeForSystemFont):
(WebCore::RenderThemeMac::paintMenuListButtonDecorations):
(WebCore::RenderThemeMac::popupInternalPaddingBox):
(WebCore::RenderThemeMac::adjustMenuListButtonStyle):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeWin::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderThemeWin::adjustSearchFieldResultsButtonStyle):

  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::paintTextDecoration):

  • rendering/mathml/RenderMathMLRow.cpp:

(WebCore::RenderMathMLRow::computeLineVerticalStretch):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::computedFontPixelSize):
(WebCore::RenderStyle::computedLineHeight):
(WebCore::RenderStyle::fontSize): Deleted.

  • rendering/style/RenderStyle.h:
  • style/InlineTextBoxStyle.cpp:

(WebCore::visualOverflowForDecorations):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::convertValueFromUserUnitsToEMS):
(WebCore::SVGLengthContext::convertValueFromEMSToUserUnits):

10:52 PM Changeset in webkit [219543] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

line-height: <number> gets visually applied twice when text autosizing is in effect
https://bugs.webkit.org/show_bug.cgi?id=174536
<rdar://problem/33338259>

Reviewed by Simon Fraser.

Source/WebCore:

StyleBuilderConverter::convertLineHeight() converts line-height: <number> into a
"percentage" length. Then, when layout needs to know what the computed value of
line-height is, RenderStyle::computedLineHeight() multiplies this percentage by
the computed font size.

With autosizing, the computed font size already incorporates the autosizing
multiplier, so we shouldn't also incorporate this multiplier into the percentage
value itself. getComputedStyle()'s lineHeightFromStyle() was compensating for
this double application by multiplying the percentage by the font-size's specified
value instead of its computed value, which is incorrect.

Test: fast/text-autosizing/line-height-number.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::lineHeightFromStyle):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertLineHeight):

LayoutTests:

  • fast/text-autosizing/line-height-number-expected.html: Added.
  • fast/text-autosizing/line-height-number.html: Added.
9:47 PM Changeset in webkit [219542] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

Make it possible to extend check-webkit-style with Apple-internal checkers
<https://webkit.org/b/174464>
<rdar://problem/25564402>

Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checker.py: Import apple_additions.

(_all_categories): Add categories from apple_additions() if it
exists.
(CheckerDispatcher._create_checker): Create python checker
from apple_additions() if it exists.

9:01 PM Changeset in webkit [219541] by Wenson Hsieh
  • 9 edits
    2 adds in trunk

[iOS WK2] Presenting an action sheet on an image map prevents selection UI from updating
https://bugs.webkit.org/show_bug.cgi?id=174539
<rdar://problem/33307395>

Reviewed by Darin Adler.

Source/WebCore:

Currently, if TextIndicator fails to take a snapshot in TextIndicator::createWithRange, we will enter an
inconsistent state in the web process where Editor will continue to ignore selection changes until the next time
Editor::setIgnoreSelectionChanges(false) is called. This causes us to indefinitely defer EditorState updates to
the UI process, which leads to selection UI appearing unresponsive.

To fix this, we introduce a new TemporarySelectionChange object to simplify selection changes and/or
EditorState-update-ignoring behaviors within the scope of a single function. The constructor applies these
temporary changes, and the destructor reverts them as needed to their prior values.

This patch only adopts TemporarySelectionChange in order to fix this bug, but future patches will replace the
remaining places where we temporarily change selection and/or ignore selection with this helper.

Test: ActionSheetTests.ImageMapDoesNotDestroySelection.

  • editing/Editor.cpp:

(WebCore::TemporarySelectionChange::TemporarySelectionChange):
(WebCore::TemporarySelectionChange::~TemporarySelectionChange):

  • editing/Editor.h:
  • editing/FrameSelection.h:

(WebCore::FrameSelection::isUpdateAppearanceEnabled):

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):

Source/WebKit:

Small tweak to avoid presenting at the element rect or text rect if the interaction information failed to
capture valid bounds for the element. We instead fall back to presenting at the touch location. This addresses
problems when presenting the action sheet popover on image maps on iPad, where GetPositionInformation fails to
capture correct data about for the <area>.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(presentationStyleForView):

Tools:

Adds a new unit test suite to cover action sheet popover presentation.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/image-map.html: Added.
  • TestWebKitAPI/Tests/ios/ActionSheetTests.mm: Added.

(-[ActionSheetObserver waitForActionSheetAfterBlock:]):

Runs the given block and waits until the UI process has indicated that it will present an action sheet.

(-[ActionSheetObserver _webView:actionsForElement:defaultActions:]):
(TestWebKitAPI::IPadUserInterfaceSwizzler::IPadUserInterfaceSwizzler):

Helper class to alter the behavior of [[UIDevice currentDevice] userInterfaceIdiom] for testing.

(TestWebKitAPI::IPadUserInterfaceSwizzler::padUserInterfaceIdiom):
(TestWebKitAPI::TEST):

8:45 PM Changeset in webkit [219540] by weinig@apple.com
  • 2 edits in trunk/Tools

[Scripts] Make svn-create-patch work better when called in sub directories
https://bugs.webkit.org/show_bug.cgi?id=174551

Reviewed by Darin Adler.

  • Fixes manufacturePatchForAdditionWithHistory to use the correct path by ensuring that the prefix is applied as is done in generateDiff.
  • Silence output of explanatory lines from svn stat (" > move to ...") that show up in STDERR when running svn-create-patch.
  • Add verbose logging that I found useful while debugging this issue.
  • Scripts/svn-create-patch:

(findBaseUrl):
(findMimeType):
(findSourceFileAndRevision):
(generateDiff):
(generateFileList):
(manufacturePatchForAdditionWithHistory):

3:03 PM Changeset in webkit [219539] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

Clean up line-height and minimumFontSize functions
https://bugs.webkit.org/show_bug.cgi?id=174535

Reviewed by Simon Fraser.

No behavior change.

No new tests because there is no behavior change.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertLineHeight):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::cascadedPropertiesForRollback):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::checkForZoomChange):
(WebCore::StyleResolver::createFilterOperations):
(WebCore::StyleResolver::CascadedProperties::set):
(WebCore::StyleResolver::applyCascadedProperties):

  • style/StyleFontSizeFunctions.cpp:

(WebCore::Style::computedFontSizeFromSpecifiedSize):
(WebCore::Style::computedFontSizeFromSpecifiedSizeForSVGInlineText):
(): Deleted.

2:47 PM Changeset in webkit [219538] by Jonathan Bedard
  • 2 edits in trunk/Tools

Unreviewed build fix after r219537.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

Jul 14, 2017:

10:41 PM Changeset in webkit [219537] by Jonathan Bedard
  • 22 edits
    1 copy in trunk

Add iOS 11 SPI
https://bugs.webkit.org/show_bug.cgi?id=174430
<rdar://problem/33269288>

Reviewed by Tim Horton.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj: Add sqlite3SPI.h header.
  • platform/ios/PlatformPasteboardIOS.mm: Move UIKit SPI to UIKitSPI.h.
  • platform/ios/WebItemProviderPasteboard.mm: Ditto.
  • platform/network/cf/FormDataStreamCFNet.cpp: Explicitly define fnfErr and remove

MacErrors.h header for iOS.

  • platform/spi/cocoa/IOSurfaceSPI.h: IOSurface is no longer SPI in iOS 11.
  • platform/spi/cocoa/PassKitSPI.h: Do not re-define setRequiredShippingContactFields

and setRequiredBillingContactFields in iOS 11.

  • platform/spi/cocoa/QuartzCoreSPI.h: Added QuartzCoreSPI used in iOS 11.
  • platform/spi/ios/UIKitSPI.h: Add drag-and-drop SPI.
  • platform/spi/ios/sqlite3SPI.h: Define required sqlite3 macros.
  • platform/sql/SQLiteFileSystem.cpp: Use sqlite3SPI.h.

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h: Add drag-and-drop SPI for iOS 11.
  • UIProcess/ios/WKContentViewInteraction.mm: Move UIKit SPI to UIKitSPI.h.

Source/WebKitLegacy:

  • Storage/StorageTracker.cpp: sqlite3_private.h no longer exists in the iOS

Simulator SDK, explicitly define the required macro.

Source/WTF:

  • Configurations/WTF.xcconfig: Exclude MachExceptions.def when building iOS 11 for

the iOS simulator.

Tools:

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm: Define drag-and-drop API required for testing.
  • TestWebKitAPI/ios/DataInteractionSimulator.h: Ditto.
  • TestWebKitAPI/ios/DataInteractionSimulator.mm: Ditto.
10:23 PM Changeset in webkit [219536] by zandobersek@gmail.com
  • 4 edits in trunk

[GCrypt] Implement CryptoKeyRSA PKCS#8 exports
https://bugs.webkit.org/show_bug.cgi?id=173697

Reviewed by Jiewen Tan.

Source/WebCore:

Implement the PKCS#8 import operation for RSA keys for platforms that use
libgcrypt.

In CryptoKeyRSA::exportPkcs8(), we bail early with an invalid access exception if
this export is not being done for a private key. Otherwise, we start with creating
the RSAPrivateKey ASN.1 structure, writing out '0' under the version element
and then retrieving the modulus, public and private exponent and both primes.
MPI data for those parameters is written out into corresponding elements in the
RSAPrivateKey structure. We then manually compute values of both exponents and
the coefficient parameters, using the private exponent's and both primes' MPI
values. The p and q parameters (i.e. the primes) are switched in libgcrypt,
deviating from the standard practice, so we have to operate with those two
accordingly. We eliminate the optional otherPrimeInfos attribute on the
RSAPrivateKey structure. Support for this attribute will be added later.

We then create the PrivateKeyInfo ASN.1 structure, and write out '0' under the
version element. The id-rsaEncryption object identifier is written out under
the algorithm.algorithm element. In the future, an object identifier that
matches this key's algorithm will have to be written out here (id-RSASSA-PSS or
id-RSAES-OAEP), along with the appropriate parameters structure, but no test in
WebKit or the web-platform-tests suite covers this detail. For now, a null value
is written out under the algorithm.parameters element.

Data for the RSAPrivateKey structure is retrieved and written out under the
privateKey element. The optional attributes element on the PrivateKeyInfo
structure is eliminated.

Data that was encoded through the PrivateKeyInfo structure is then retrieved
and returned from the exportPkcs8() method.

No new tests -- related tests are now passing and are unskipped.

  • crypto/gcrypt/CryptoKeyRSAGCrypt.cpp:

(WebCore::CryptoKeyRSA::exportPkcs8):

LayoutTests:

  • platform/gtk/TestExpectations: Unskip the RSA PKCS#8 export tests
10:20 PM Changeset in webkit [219535] by zandobersek@gmail.com
  • 4 edits in trunk

[GCrypt] Implement CryptoKeyRSA PKCS#8 imports
https://bugs.webkit.org/show_bug.cgi?id=173696

Reviewed by Jiewen Tan.

Source/WebCore:

Implement the PKCS#8 import operation for RSA keys for platforms that use
libgcrypt.

In CryptoKeyRSA::importPkcs8(), the provided key data is decoded against the
'PrivateKeyInfo ASN.1 structure. We then validate the version` element and
check that the privateKeyAlgorithm.algorithm element contains a supported
object identifier. This check is for now mostly superficial, only ensuring
that the object identifier is either id-rsaEncryption, id-RSAES-OAEP or
id-RSASSA-PSS. This has to be further extended to also check the
id-sha{1,256,384,512}WithRSAEncryption identifiers as well as decoding the
privateKeyAlgorithm.parameters element against a specific ASN.1 structure, if
necessary (RSASSA-PSS-params or RSAES-OAEP-params), and cross-checking the
specified digest algorithm with the algorithm that's specified through the main
object identifier or the structure contained in privateKeyAlgorithm.parameters.
This is avoided for now because no test in WebKit or the web-platform-tests
suite covers this detail of the specification.

Data under the privateKey element is decoded against the RSAPrivateKey ASN.1
structure, and the version element of that structure is validated. We then
retrieve data from that structure for the modulus, public exponent, private
exponent, both primes, both exponents and the coefficient parameters, bailing if
any of them is missing. Because libgcrypt switches the use of p and q parameters,
deviating from the standard use, we have to recompute the u parameter (the
coefficient). With that calculated, we're then able to construct the private-key
s-expression, embedding into it all the necessary parameters, and transferring
the ownership of this object to the new CryptoKeyRSA object that's then returned
from the importPkcs8() method.

No new tests -- related tests are now passing and are unskipped.

  • crypto/gcrypt/CryptoKeyRSAGCrypt.cpp:

(WebCore::CryptoKeyRSA::importPkcs8):

LayoutTests:

  • platform/gtk/TestExpectations: Unskip the RSA PKCS#8 import tests

that are now passing.

5:29 PM Changeset in webkit [219534] by Jonathan Bedard
  • 2 edits in trunk/Tools

Failing to install on iPad simulators
https://bugs.webkit.org/show_bug.cgi?id=174532
<rdar://problem/33328347>

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDevice.install_app): Place install command in retry try-except block.

4:13 PM Changeset in webkit [219533] by jeffm@apple.com
  • 5 edits in trunk

Source/WebKit:
-[WKWebProcessBundleParameters setParametersForKeyWithDictionary:] passing wrong parameters to -setParameter:forKey
https://bugs.webkit.org/show_bug.cgi?id=174524

Reviewed by Sam Weinig.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm:

(-[WKWebProcessBundleParameters setParametersForKeyWithDictionary:]):
Pass the dictionary key and value in the correct order.

Tools:
Add test for -[WKProcessPool _setObjectsForBundleParametersWithDictionary:].
https://bugs.webkit.org/show_bug.cgi?id=174524

Reviewed by Sam Weinig.

  • TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:

(TEST):
Renamed TestParameter to TestParameter1.
Add test for -[WKProcessPool _setObjectsForBundleParametersWithDictionary:].

  • TestWebKitAPI/Tests/WebKit2Cocoa/BundleParametersPlugIn.mm:

(-[BundleParametersPlugIn webProcessPlugIn:didCreateBrowserContextController:]):
Observe changes for two bundle parameters.

(-[BundleParametersPlugIn dealloc]):
Remove observers for two bundle parameters.

4:03 PM Changeset in webkit [219532] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKitLegacy/win

[Curl] Don't start downloading more than once for same request
https://bugs.webkit.org/show_bug.cgi?id=174172

Patch by Basuke Suzuki <Basuke Suzuki> on 2017-07-14
Reviewed by Alex Christensen.

  • WebDownloadCurl.cpp:

(WebDownload::init):

4:02 PM Changeset in webkit [219531] by Chris Dumez
  • 3 edits
    3 adds in trunk

Possible crash in ~UserGestureIndicator() when on non-main thread
https://bugs.webkit.org/show_bug.cgi?id=174522
<rdar://problem/30283071>

Reviewed by Sam Weinig.

Source/WebCore:

UserGestureIndicator objects may be constructed / destructed in worker thread
(e.g. in DOMTimer::fired()). The UserGestureIndicator constructor / destructor
are supposed to be no-op on non-main threads so that it is safe. However,
we were mistakenly initializing m_previousToken data member in the constructor
on background thread, which meant that we could crash later on in the
UserGestureIndicator destructor when destroying m_previousToken.

Test: fast/workers/worker-user-gesture.html

  • dom/UserGestureIndicator.cpp:

(WebCore::currentToken):
(WebCore::UserGestureIndicator::UserGestureIndicator):

LayoutTests:

Add layout test coverage.

  • fast/workers/worker-user-gesture-expected.txt: Added.
  • fast/workers/worker-user-gesture.html: Added.
  • fast/workers/worker-user-gesture.js: Added.

(setInterval):

3:52 PM Changeset in webkit [219530] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Monitor directory for new statistics files after a delete operation
https://bugs.webkit.org/show_bug.cgi?id=174521
<rdar://problem/33322189>

Reviewed by Chris Dumez.

Create a FileMonitor to watch the data directory when the statistics file is
deleted by an external process. If it sees the file get created externally, merge
those data into the in-memory store.

  • UIProcess/Storage/ResourceLoadStatisticsPersistentStorage.cpp:

(WebKit::ResourceLoadStatisticsPersistentStorage::startMonitoringDisk): Added.
(WebKit::ResourceLoadStatisticsPersistentStorage::monitorDirectoryForNewStatistics):

  • UIProcess/Storage/ResourceLoadStatisticsPersistentStorage.h:
3:51 PM Changeset in webkit [219529] by Matt Lewis
  • 9 edits
    2 deletes in trunk/Source

Unreviewed, rolling out r219516.

This caused an API failure on macOS.

Reverted changeset:

"Make sure all CFHTTPCookieStorageRefs we create are
scheduled."
https://bugs.webkit.org/show_bug.cgi?id=174513
http://trac.webkit.org/changeset/219516

3:27 PM Changeset in webkit [219528] by dbates@webkit.org
  • 4 edits
    3 adds in trunk

REGRESSION (r219013): Compute source frame info for frameless document
https://bugs.webkit.org/show_bug.cgi?id=174385
<rdar://problem/33217736>

Reviewed by Brady Eidson.

Source/WebKit:

Fixes an issue where we would crash in WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction()
when computing the frame info for a now-frameless document. One way this can happen is when the frame
that contains the document that initiated the navigation is removed from the page.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction): Check that we have a valid page ID before
looking up the WebPage object corresponding to it.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Compute a FrameInfoData
object from the source document directly as opposed to using WebFrame::info() as the latter requires
that we have a valid WebCore frame and the source document may not have a frame.

LayoutTests:

  • http/tests/navigation/resources/window-open-redirect-and-remove-opener.html: Added.
  • http/tests/navigation/window-open-redirect-and-remove-opener-expected.txt: Added.
  • http/tests/navigation/window-open-redirect-and-remove-opener.html: Added.
3:25 PM Changeset in webkit [219527] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Fixed expectations after Mac expectation change.
https://trac.webkit.org/changeset/219507/webkit

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
3:04 PM Changeset in webkit [219526] by jer.noble@apple.com
  • 23 edits in trunk/Source

Allow clients to override their own hardware media requirements where no fallback media exists.
https://bugs.webkit.org/show_bug.cgi?id=174426
<rdar://problem/32537704>

Reviewed by Eric Carlson.

Source/WebCore:

Add a new setting which allows clients to specify their own mediaContentTypesRequiringHardwareSupport should be
ignared in the case where no fallback exists, such as the case of a single <source> element, or setting the src
attribute directly.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::havePotentialSourceChild):
(WebCore::HTMLMediaElement::selectNextSourceChild):
(WebCore::HTMLMediaElement::sourceWasAdded):
(WebCore::HTMLMediaElement::sourceWasRemoved):
(WebCore::HTMLMediaElement::mediaPlayerShouldCheckHardwareSupport):

  • html/HTMLMediaElement.h:
  • page/Settings.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::shouldCheckHardwareSupport):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerShouldCheckHardwareSupport):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):

Source/WebKit:

Add a new WKWebViewConfiguration property, as well as a new WKPreferences function, both to control
WebCore's new allowMediaContentTypesRequiringHardwareSupportAsFallback setting.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesGetAllowMediaContentTypesRequiringHardwareSupportAsFallback):
(WKPreferencesSetAllowMediaContentTypesRequiringHardwareSupportAsFallback):

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _setAllowMediaContentTypesRequiringHardwareSupportAsFallback:]):
(-[WKWebViewConfiguration _allowMediaContentTypesRequiringHardwareSupportAsFallback]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WebKitLegacy/mac:

Add a new WebPreferences property to control WebCore's new
allowMediaContentTypesRequiringHardwareSupportAsFallback setting.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences allowMediaContentTypesRequiringHardwareSupportAsFallback]):
(-[WebPreferences setAllowMediaContentTypesRequiringHardwareSupportAsFallback:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

2:45 PM Changeset in webkit [219525] by Chris Dumez
  • 5 edits in trunk/Source

Possible crash under NetworkSocketStream::didFailSocketStream()
https://bugs.webkit.org/show_bug.cgi?id=174526
<rdar://problem/32831441>

Reviewed by Brent Fulgham.

Source/WebCore:

Call m_client.didFailSocketStream() asynchronously in the constructor as our
caller (the client) is also being initialized at this point.

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):

Source/WebKit:

For robustness, initialize the SocketStreamHandleImpl after the other
data members. We are passing |this| to the SocketStreamHandleImpl when
constructing it so it is unsafe to have uninitialized data members
at this point.

  • NetworkProcess/NetworkSocketStream.cpp:

(WebKit::NetworkSocketStream::NetworkSocketStream):

  • NetworkProcess/NetworkSocketStream.h:
2:43 PM Changeset in webkit [219524] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

WebRTC: silence data not sent for disabled audio track
https://bugs.webkit.org/show_bug.cgi?id=174456
<rdar://problem/33284623>

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-14
Reviewed by Eric Carlson.

Source/WebCore:

Test: webrtc/audio-muted-stats.html

webrtc/audio-muted-stats2.html

Adding a timer-based approach to send 10ms of silence every second.
This is consistent with how muted video tracks are implemented.
In case the audio track is muted at the time it is added, no silence data is sent.

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp:

(WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource):
(WebCore::RealtimeOutgoingAudioSource::initializeConverter):
(WebCore::RealtimeOutgoingAudioSource::stop):
(WebCore::RealtimeOutgoingAudioSource::sourceMutedChanged):
(WebCore::RealtimeOutgoingAudioSource::sourceEnabledChanged):
(WebCore::RealtimeOutgoingAudioSource::handleMutedIfNeeded):
(WebCore::RealtimeOutgoingAudioSource::sendSilence):

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.h:

LayoutTests:

  • webrtc/audio-muted-stats-expected.txt: Added.
  • webrtc/audio-muted-stats.html: Added.
  • webrtc/audio-muted-stats2-expected.txt: Added.
  • webrtc/audio-muted-stats2.html: Added.
2:26 PM Changeset in webkit [219523] by Jonathan Bedard
  • 1 edit
    181 adds in trunk/LayoutTests

Add High Sierra test expectations
https://bugs.webkit.org/show_bug.cgi?id=174518
<rdar://problem/32716970>

Unreviewed test gardening.

  • platform/mac-highsierra: Added.
  • platform/mac-highsierra-wk1: Added.
  • platform/mac-highsierra-wk2: Added.
1:29 PM Changeset in webkit [219522] by Michael Catanzaro
  • 9 edits
    1 copy
    1 delete in trunk

[CMake] Unclear distinction between WebKitHelpers and WebKitMacros
https://bugs.webkit.org/show_bug.cgi?id=153189

Reviewed by Antonio Gomes.

.:

Merge WebKitHelpers.cmake into WebKitMacros.cmake, since there is no meaningful distinction
between the macros that belong in each file. Then, move the macros that are only needed by
one project into project-specific CMake files. Retain here only the macros that are needed
in multiple places.

  • Source/cmake/OptionsCommon.cmake: Update a comment.
  • Source/cmake/OptionsGTK.cmake: New location for libtool macro, exclusively needed here.
  • Source/cmake/WebKitCommon.cmake: Do not include WebKitHelpers.cmake.
  • Source/cmake/WebKitHelpers.cmake: Removed.
  • Source/cmake/WebKitMacros.cmake:

Source/WebCore:

  • CMakeLists.txt: Include WebCoreMacros.cmake.
  • WebCoreMacros.cmake: Added.

Source/WebKit:

New location for macros that are exclusively needed here.

  • CMakeLists.txt:
1:27 PM Changeset in webkit [219521] by commit-queue@webkit.org
  • 5 edits in trunk

Unreviewed, rolling out r219510.
https://bugs.webkit.org/show_bug.cgi?id=174525

Need to revert length() == 0 check for null string (Requested
by yusukesuzuki on #webkit).

Reverted changeset:

"[WTF] Newly added AtomicStringImpl should use BufferInternal
static string if StringImpl is static"
https://bugs.webkit.org/show_bug.cgi?id=174501
http://trac.webkit.org/changeset/219510

1:17 PM Changeset in webkit [219520] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix style for name of class alloc function in WebVideoFullscreenInterfaceAVKit.
https://bugs.webkit.org/show_bug.cgi?id=174476

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-07-14
Reviewed by Alex Christensen.

No new tests because no behavior change.

This is a rename for per style requirements.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(allocWebAVPictureInPicturePlayerLayerViewInstance):
(WebAVPlayerLayerView_pictureInPicturePlayerLayerView):
(allocWebAVPlayerLayerViewInstance):
(WebVideoFullscreenInterfaceAVKit::setupFullscreen):
(getWebAVPictureInPicturePlayerLayerViewClass): Deleted.
(getWebAVPlayerLayerViewClass): Deleted.

1:08 PM Changeset in webkit [219519] by jer.noble@apple.com
  • 7 edits
    2 adds in trunk

[MSE] Removing samples when presentation order does not match decode order can cause bad behavior.
https://bugs.webkit.org/show_bug.cgi?id=174514

Reviewed by Sam Weinig.

Source/WebCore:

Test: media/media-source/media-source-remove-decodeorder-crash.html

Fix the algorithm in removeCodedFrames() so that it's not possible to have a removePresentationStart >
removePresentationEnd (and also removeDecodeStart > removeDecodeEnd).

  • Modules/mediasource/SampleMap.cpp:

(WebCore::PresentationOrderSampleMap::findSampleContainingOrAfterPresentationTime):
(WebCore::PresentationOrderSampleMap::findSampleStartingAfterPresentationTime):

  • Modules/mediasource/SampleMap.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::removeCodedFrames):

Tools:

  • TestWebKitAPI/Tests/WebCore/SampleMap.cpp:

(TestWebKitAPI::TEST_F):

LayoutTests:

  • media/media-source/media-source-remove-decodeorder-crash-expected.txt: Added.
  • media/media-source/media-source-remove-decodeorder-crash.html: Added.
1:04 PM Changeset in webkit [219518] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Correcting test expectations after mac-expectation changes.
https://bugs.webkit.org/show_bug.cgi?id=174472

Unreviews test gardening.

  • platform/mac/TestExpectations:
12:34 PM Changeset in webkit [219517] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Increase CoreAudio render audio buffer sizes for WebRTC
https://bugs.webkit.org/show_bug.cgi?id=174508

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-14
Reviewed by Eric Carlson.

Covered by manually testing audio rendering through WebRTC sites.

  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:

(WebCore::AudioTrackPrivateMediaStreamCocoa::createAudioUnit): Setting audio buffer size equivalent to 20 ms.

12:16 PM Changeset in webkit [219516] by beidson@apple.com
  • 9 edits
    2 adds in trunk/Source

Make sure all CFHTTPCookieStorageRefs we create are scheduled.
<rdar://problem/33221110> and https://bugs.webkit.org/show_bug.cgi?id=174513

Reviewed by Tim Horton.

Source/WebCore:

  • platform/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Whenever we create a CFHTTPCookieStorage from identifying data it is unscheduled.
We need to schedule it on a RunLoop.

This patch also cleans up the creation of the identifying data itself.

  • NetworkProcess/mac/RemoteNetworkingContext.mm:

(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):

  • Shared/cf/CookieStorageUtilsCF.cpp: Added.

(WebKit::cookieStorageFromIdentifyingData):
(WebKit::identifyingDataFromCookieStorage):

  • Shared/cf/CookieStorageUtilsCF.h: Added.
  • Shared/mac/ChildProcessMac.mm:

(WebKit::ChildProcess::setSharedHTTPCookieStorage):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:

(WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession):

12:02 PM Changeset in webkit [219515] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove CoreAudioCaptureSource speaker configuration
https://bugs.webkit.org/show_bug.cgi?id=174512

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-14
Reviewed by Eric Carlson.

Covered by manually testing audio rendering through WebRTC sites.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::setupAudioUnit):

11:55 AM Changeset in webkit [219514] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Potential null-dereference under NetworkRTCProvider::resolvedName()
https://bugs.webkit.org/show_bug.cgi?id=174507
<rdar://problem/32597868>

Reviewed by Youenn Fablet.

NetworkRTCProvider::resolvedName() could do a null dereference of m_connection
because m_connection is nullified in NetworkRTCProvider::close() but resolvers
were only closed later on in the NetworkRTCProvider destructor.

To address the issue, we now stop DNS resolvers earlier, in NetworkRTCProvider::close().
Also fix unsafe modification of m_resolvers HashMap when iterating over it.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::~NetworkRTCProvider):
(WebKit::NetworkRTCProvider::close):
(WebKit::NetworkRTCProvider::Resolver::~Resolver):
(WebKit::NetworkRTCProvider::stopResolver):

11:35 AM Changeset in webkit [219513] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[MediaStream] Limit the number of remote video samples queued
https://bugs.webkit.org/show_bug.cgi?id=174505
<rdar://problem/33223015>

Reviewed by Youenn Fablet.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::removeOldSamplesFromPendingQueue): Only
enqueue a fixed number of frames with invalid or negative decode times.

10:47 AM Changeset in webkit [219512] by sbarati@apple.com
  • 4 edits in trunk

Fix ambiguous description text in ARES-6 about the data the benchmark measures
https://bugs.webkit.org/show_bug.cgi?id=174510

Rubber stamped by Filip Pizlo.

  • ARES-6/about.html:
10:44 AM Changeset in webkit [219511] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Report CoreAudioCaptureSource failure in case shared unit stops working properly
https://bugs.webkit.org/show_bug.cgi?id=174494

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-14
Reviewed by Eric Carlson.

Source/WebCore:

Manual test by interrupting an audio capture on Mac.

This patch adds a timer to CoreAudioSharedUnit.
In case the capture callback is not called after one second, the shared unit is said to fail.
Each source is notified that capture is failing.
This will in turn trigger onend track event so that web pages can remedy capture failure.

Timer starts with 10 seconds for audio data to start being captured.
It is then decreased to 2 seconds.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::captureFailed):

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::CoreAudioSharedUnit):
(WebCore::CoreAudioSharedUnit::processMicrophoneSamples):
(WebCore::CoreAudioSharedUnit::startInternal):
(WebCore::CoreAudioSharedUnit::verifyIsCapturing):
(WebCore::CoreAudioSharedUnit::stopInternal):

Source/WebKit:

In case of capture failure, send a CaptureFailure message so that the
correct behavior happens in the Web process.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::captureFailed):

  • WebProcess/cocoa/UserMediaCaptureManager.h:
  • WebProcess/cocoa/UserMediaCaptureManager.messages.in:
10:37 AM Changeset in webkit [219510] by Yusuke Suzuki
  • 5 edits in trunk

[WTF] Newly added AtomicStringImpl should use BufferInternal static string if StringImpl is static
https://bugs.webkit.org/show_bug.cgi?id=174501

Reviewed by Darin Adler.

Source/WTF:

When creating AtomicStringImpl from static StringImpl, we can just use createWithoutCopying
to create a BufferInternal AtomicStringImpl which m_data{8,16} is static string's one.

  • wtf/text/AtomicStringImpl.cpp:

(WTF::CStringTranslator::hash):
(WTF::CStringTranslator::equal):
(WTF::CStringTranslator::translate):
(WTF::AtomicStringImpl::add):
(WTF::HashTranslatorCharBuffer::HashTranslatorCharBuffer):
(WTF::UCharBufferTranslator::hash):
(WTF::UCharBufferTranslator::equal):
(WTF::UCharBufferTranslator::translate):
(WTF::LCharBufferTranslator::hash):
(WTF::LCharBufferTranslator::equal):
(WTF::LCharBufferTranslator::translate):
(WTF::BufferFromStaticDataTranslator::hash):
(WTF::BufferFromStaticDataTranslator::equal):
(WTF::BufferFromStaticDataTranslator::translate):
(WTF::AtomicStringImpl::addLiteral):
(WTF::addSymbol):
(WTF::addStatic):
(WTF::AtomicStringImpl::addSlowCase):
(WTF::AtomicStringImpl::lookUp):
(WTF::CharBufferFromLiteralDataTranslator::hash): Deleted.
(WTF::CharBufferFromLiteralDataTranslator::equal): Deleted.
(WTF::CharBufferFromLiteralDataTranslator::translate): Deleted.
(WTF::addSubstring): Deleted.

  • wtf/text/StringImpl.h:

Tools:

  • TestWebKitAPI/Tests/WTF/StringImpl.cpp:

(TestWebKitAPI::TEST):

10:33 AM Changeset in webkit [219509] by jer.noble@apple.com
  • 4 edits
    2 adds in trunk

Adding the 'autoplay' attribute to a media element during a user gesture should remove user gesture restrictions.
https://bugs.webkit.org/show_bug.cgi?id=174373

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-add-autoplay-user-gesture.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

LayoutTests:

  • media/video-add-autoplay-user-gesture-expected.txt: Added.
  • media/video-add-autoplay-user-gesture.html: Added.
  • media/platform/ios/TestExpectations: Skipped; requires EventSender.
10:31 AM Changeset in webkit [219508] by Matt Lewis
  • 5 edits in trunk

Unreviewed, rolling out r219500.

The test is consistently failing on iOS simulator.

Reverted changeset:

"AX: VoiceOver silent or skipping over time values on media
player."
https://bugs.webkit.org/show_bug.cgi?id=174324
http://trac.webkit.org/changeset/219500

10:15 AM Changeset in webkit [219507] by Jonathan Bedard
  • 7 edits in trunk

Tools:
Bring mac expectations in-line with other platforms
https://bugs.webkit.org/show_bug.cgi?id=174472
<rdar://problem/33297388>

Reviewed by David Kilzer.

The override order for Mac test expectations does not conform to the pattern used by iOS,
GTK, Windows and WPE. Before this change, El Capitan's baseline search path looks like this:

platform/mac-wk2
platform/wk2
platform/mac-elcapitan
platform/mac-sierra
generic

After this change, El Capitan's baseline search path looks like this:

platform/mac-sierra-wk2
platform/mac-sierra
platform/mac-wk2
platform/wk2
generic

  • Scripts/webkitpy/port/mac.py:

(MacPort.init): If a specific version is specified in the port name, use that
as the os version.
(MacPort.default_baseline_search_path): Expectation search paths should work the
same way they do on other ports. Port + version overrides port, port overrides generic
and wk1/wk2 should override expectations for the two combined.

  • Scripts/webkitpy/port/mac_unittest.py:

(MacTest.test_tests_for_other_platforms): Deleted.
(MacTest._assert_search_path): Deleted.
(MacTest.test_baseline_search_path): Deleted.

  • Scripts/webkitpy/tool/commands/rebaseline_unittest.py:

(TestRebaselineTest.test_baseline_directory): Adjust expectations for new over-ride order.
(test_rebaseline_test_and_print_scm_changes): Ditto.
(test_rebaseline_and_copy_test): Ditto.
(test_rebaseline_and_copy_test_no_existing_result): Ditto.
(test_rebaseline_and_copy_test_with_lion_result): Ditto.
(test_rebaseline_and_copy_no_overwrite_test): Ditto.

LayoutTests:
Add script to rebase patches during the WebKit2->WebKit/WebKit->WebKitLegacy transition
https://bugs.webkit.org/show_bug.cgi?id=174438
<rdar://problem/33277112>

Reviewed by David Kilzer.

  • platform/mac-wk2/TestExpectations: Move skipped tests because of webkit.org/b/174504.
  • platform/wk2/TestExpectations: Ditto.
9:03 AM Changeset in webkit [219506] by Yusuke Suzuki
  • 7 edits in trunk/Source

[WTF] Use std::unique_ptr for StackTrace
https://bugs.webkit.org/show_bug.cgi?id=174495

Reviewed by Alex Christensen.

Source/JavaScriptCore:

  • runtime/ExceptionScope.cpp:

(JSC::ExceptionScope::unexpectedExceptionMessage):

  • runtime/VM.cpp:

(JSC::VM::throwException):

Source/WTF:

Instead of returning pointer to heap allocated StackTrace,
we should return std::unique_ptr<StackTrace>.
And we also move WTFGetBackTrace from Assertions.cpp to
StackTrace.cpp to consolidate stack trace related operations
into StackTrace.cpp.

  • wtf/Assertions.cpp:
  • wtf/StackTrace.cpp:

(WTFGetBacktrace):
(WTF::StackTrace::captureStackTrace):

  • wtf/StackTrace.h:
8:58 AM Changeset in webkit [219505] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[WinCairo] error 'm_compositorTexture': undeclared identifier since Bug 174345
https://bugs.webkit.org/show_bug.cgi?id=174493

Patch by Fujii Hironori <Fujii Hironori> on 2017-07-14
Reviewed by Alex Christensen.

Compilation errors are reported by the code using a member
m_compositorTexture of GraphicsContext3D which exists only if
USE(COORDINATED_GRAPHICS_THREADED). WinCairo port doesn't use it.

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::GraphicsContext3D):
Use m_compositorTexture only if USE(COORDINATED_GRAPHICS_THREADED).
(WebCore::GraphicsContext3D::~GraphicsContext3D): Ditto.

  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):
Ditto. Fix the wrong indentation level.

8:54 AM Changeset in webkit [219504] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

[HarfBuzz] Decomposed Vietnamese characters are rendered incorrectly
https://bugs.webkit.org/show_bug.cgi?id=174418

Patch by Fujii Hironori <Fujii Hironori> on 2017-07-14
Reviewed by Michael Catanzaro.

Source/WebCore:

HarfBuzzShaper should normalize the input text before collecting
HarfBuzzRuns. Actually, HarfBuzzShaper::setNormalizedBuffer does
the task. But, this function hasn't been called from anywhere
since Bug 108077.

Test: fast/text/international/vietnamese-nfd.html

  • platform/graphics/harfbuzz/HarfBuzzShaper.cpp:

(WebCore::HarfBuzzShaper::HarfBuzzShaper):
Call setNormalizedBuffer instead of normalizeCharacters.
(WebCore::normalizeCharacters): Deleted.

LayoutTests:

  • fast/text/international/vietnamese-nfd-expected.html: Added.
  • fast/text/international/vietnamese-nfd.html: Added.
5:06 AM Changeset in webkit [219503] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] Build broken "Cannot open include file: 'GL/glext.h'" since Bug 172104
https://bugs.webkit.org/show_bug.cgi?id=174492

Patch by Fujii Hironori <Fujii Hironori> on 2017-07-14
Reviewed by Žan Doberšek.

WinCairo port uses GLES. OpenGLShims.h shouldn't be included.

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

Include "OpenGLShims.h" only if !USE(OPENGL_ES_2) instead of USE(OPENGL).

1:21 AM Changeset in webkit [219502] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Use WTFMove to prune liveness in DFGAvailabilityMap
https://bugs.webkit.org/show_bug.cgi?id=174423

Reviewed by Saam Barati.

  • dfg/DFGAvailabilityMap.cpp:

(JSC::DFG::AvailabilityMap::pruneHeap):
(JSC::DFG::AvailabilityMap::pruneByLiveness):

1:17 AM Changeset in webkit [219501] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

PageCache::removeAllItemsForPage(Page&) may reenter itself and cause crashes
https://bugs.webkit.org/show_bug.cgi?id=174473
<rdar://problem/32177485>

Reviewed by Antti Koivisto.

This could happen when a Page containing an SVGImage is removed from PageCache and
this resulted in the destruction of the SVGImage. Because the SVGImage has an internal
utility Page, it will also call PageCache::removeAllItemsForPage(WebCore::Page&) upon
destruction, causing us to reenter.

Address the issue by not calling PageCache::removeAllItemsForPage() for utility pages
since those cannot be in PageCache in the first place.

Also add assertions to make sure:

  1. We never insert a utility page into PageCache
  2. PageCache::removeAllItemsForPage() does not reenter

No new tests, because I was unable to write a test which reproduced the crash. This
is in theory testable using an API test which enables PageCache, loads a page
containing an SVGImage, navigates away from this page so that it goes into PageCache,
and then calls [WebView _close]. However, when I tried writing such test, I could
not get the SVGImage to get destroyed while PageCache::removeAllItemsForPage() is
called for the top-level page for some reason. Something seems to be keeping the
SVGImage alive longer. I tried disabling the MemoryCache but it did not help.

  • history/PageCache.cpp:

(WebCore::PageCache::addIfCacheable):
(WebCore::PageCache::removeAllItemsForPage):

  • history/PageCache.h:
  • page/Page.cpp:

(WebCore::Page::~Page):

12:07 AM Changeset in webkit [219500] by commit-queue@webkit.org
  • 5 edits in trunk

AX: VoiceOver silent or skipping over time values on media player.
https://bugs.webkit.org/show_bug.cgi?id=174324
<rdar://problem/32021784>

Patch by Aaron Chu <aaron_chu@apple.com> on 2017-07-14
Reviewed by Antoine Quint.

Added role attribute to modern media controls time lable class so that VoiceOver can access the time label when the media is playing.

Source/WebCore:

Updated: media/modern-media-controls/time-label/time-label.html

  • Modules/modern-media-controls/controls/time-label.js:

LayoutTests:

  • media/modern-media-controls/time-label/time-label-expected.txt:
  • media/modern-media-controls/time-label/time-label.html:
Note: See TracTimeline for information about the timeline view.