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@apple.com
  • 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:

Jul 13, 2017:

11:39 PM Changeset in webkit [219499] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Better deal with changes to the ResourceLoadStatisticsStore file on disk
https://bugs.webkit.org/show_bug.cgi?id=174487

Reviewed by Brent Fulgham.

Rename WebResourceLoadStatisticsStore's resetDataFromDecoder() to mergeWithDataFromDecoder()
and update it so that it actual merges the data from the disk with the one we have in memory,
instead of replacing it. This avoid data loss.

We leverage the existing WebResourceLoadStatisticsStore::mergeStatistics() to merge the
statistics.

To faciliate merging the operating dates, they are now represented as OperatingDate objects
instead of WallTime objects. OperatingDate only include date precision, no time information.
As a result, the merge 2 vectors of OperatingDate objects, we can:

  1. Merge the 2 sorted vectors (using std::merge())
  2. Get rid of duplicates (easy because of date-level precision)
  3. Drop old dates until the vector has at most 30 items.
  • UIProcess/Storage/ResourceLoadStatisticsPersistentStorage.cpp:

(WebKit::ResourceLoadStatisticsPersistentStorage::refreshMemoryStoreFromDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::populateMemoryStoreFromDisk):

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::OperatingDate::fromWallTime):
(WebKit::OperatingDate::today):
(WebKit::OperatingDate::secondsSinceEpoch):
(WebKit::OperatingDate::operator==):
(WebKit::OperatingDate::operator<):
(WebKit::OperatingDate::operator<=):
(WebKit::OperatingDate::OperatingDate):
(WebKit::mergeOperatingDates):
(WebKit::WebResourceLoadStatisticsStore::createEncoderFromData):
(WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder):
(WebKit::WebResourceLoadStatisticsStore::includeTodayAsOperatingDateIfNecessary):
(WebKit::WebResourceLoadStatisticsStore::hasStatisticsExpired):

  • UIProcess/WebResourceLoadStatisticsStore.h:
11:18 PM Changeset in webkit [219498] by mark.lam@apple.com
  • 1 edit
    2 copies
    1 move in trunk/JSTests

Add some additional test cases for bug 170896.
https://bugs.webkit.org/show_bug.cgi?id=174491

Reviewed by Filip Pizlo.

  • stress/regress-170896-with-contiguous-shape-profile.js: Copied from JSTests/stress/regress-170896.js.
  • stress/regress-170896-with-double-shape-profile.js: Added.

(test):

  • stress/regress-170896-with-int32-shape-profile.js: Added.

(test):

  • stress/regress-170896.js: Removed.
8:56 PM Changeset in webkit [219497] by Michael Catanzaro
  • 2 edits in trunk/Tools

Fix style checker unit test

Unreviewed WebKit2 => WebKit fixup.

  • Scripts/webkitpy/style/checker_unittest.py:

(CheckerDispatcherSkipTest.test_should_skip_with_warning):

8:53 PM Changeset in webkit [219496] by Michael Catanzaro
  • 3 edits in trunk

[GTK][WPE] Avoid setting settings that are set by default

Unreviewed.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
8:45 PM Changeset in webkit [219495] by Konstantin Tokarev
  • 2 edits in trunk

Unreviewed, Windows ports should enable WebKitLegacy and disable
WebKit.

  • Source/cmake/OptionsWin.cmake:
8:36 PM Changeset in webkit [219494] by matthew_hanson@apple.com
  • 2 edits in trunk

Fix the Mac CMake build.

Unreviewed build fix.

Fix the Mac CMake build after r219488 broke it. r219488 erroneously updated
the variable name DERIVED_SOURCES_WEBKITLEGACY_DIR to DERIVED_SOURCES_WEBKIT_LEGACY_DIR
without updating subsequent users of that variable.

  • Source/cmake/WebKitFS.cmake:

Rename DERIVED_SOURCES_WEBKIT_LEGACY_DIR back to DERIVED_SOURCES_WEBKITLEGACY_DIR.

8:09 PM Changeset in webkit [219493] by matthew_hanson@apple.com
  • 2 edits in trunk/Tools

Use the old WebKit/WebKit2 targets for CMake builds. (v2)

Unreviewed build fix.

r219492 missed one hunk from its partial revert of r219489.
This patch reverts that hunk.

  • TestWebKitAPI/CMakeLists.txt:
7:56 PM Changeset in webkit [219492] by matthew_hanson@apple.com
  • 2 edits in trunk/Tools

Use the old WebKit/WebKit2 targets for CMake builds.

Unreviewed build fix.

We can update the target names to match the Framework names in a future patch.
This is a partial revert of r219489.

  • TestWebKitAPI/CMakeLists.txt:

WebKitLegacy => WebKit
WebKit => WebKit2

7:53 PM Changeset in webkit [219491] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

Unreviewed, annotate inline for operator==/!= for FastAllocator
https://bugs.webkit.org/show_bug.cgi?id=174366

  • wtf/FastMalloc.h:

(WTF::operator==):
(WTF::operator!=):

7:39 PM Changeset in webkit [219490] by mitz@apple.com
  • 2 edits
    3 deletes in trunk/Source

Removed empty project directories left behind after the rename

Source/WebKit:

  • WebKit2.xcodeproj: Removed.

Source/WebKitLegacy:

  • WebKit.vcxproj: Removed.
  • WebKit.xcodeproj: Removed.
7:29 PM Changeset in webkit [219489] by matthew_hanson@apple.com
  • 4 edits in trunk/Tools

Fix TestWebKit API.
https://bugs.webkit.org/show_bug.cgi?id=174164
rdar://problem/33137595

Reviewed by Dan Bernstein.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
  • TestWebKitAPI/PlatformGTK.cmake:
7:29 PM Changeset in webkit [219488] by matthew_hanson@apple.com
  • 12 edits in trunk

Fix the cMake builds (GTK and WPE.)
https://bugs.webkit.org/show_bug.cgi?id=174164
rdar://problem/33137595

Reviewed by Dan Bernstein.

.:

  • Source/CMakeLists.txt:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsJSCOnly.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/WebKitFS.cmake:
  • Source/cmake/WebKitPackaging.cmake:

Source/WebCore/platform/gtk/po:

  • POTFILES.in:

Source/WebKit:

  • Scripts/generate-forwarding-headers.pl:

(collectFrameworkHeaderPaths):
(createForwardingHeadersForFramework):

7:29 PM Changeset in webkit [219487] by matthew_hanson@apple.com
  • 4 edits
    1 move
    1 add in trunk

Rename WebKit2.xcodeproj to WebKit.xcodeproj.
https://bugs.webkit.org/show_bug.cgi?id=174164
rdar://problem/33137595

Reviewed by Dan Bernstein.

.:

  • WebKit.xcworkspace/contents.xcworkspacedata:
  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj: Renamed from Source/WebKit/WebKit2.xcodeproj/project.pbxproj.
7:29 PM Changeset in webkit [219486] by matthew_hanson@apple.com
  • 23 edits in trunk

Update tools and configurations after renaming Source/WebKit2 to Source/WebKit.
https://bugs.webkit.org/show_bug.cgi?id=174164
rdar://problem/33137595

Reviewed by Dan Bernstein.

.:

  • Source/Makefile:
  • Source/PlatformGTK.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/WebKitFS.cmake:
  • Source/cmake/WebKitPackaging.cmake:
  • WebKit.xcworkspace/contents.xcworkspacedata:
  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:

Source/WebKit:

  • PlatformGTK.cmake:
  • Shared/API/c/wpe/WebKit.h:

Tools:

  • BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:

(ShouldBuildTest):

  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • Scripts/build-webkit:
  • Scripts/do-file-rename:
  • Scripts/do-webcore-rename:
  • Scripts/update-webkit-localizable-strings:
  • Scripts/webkitpy/common/config/watchlist:
  • Scripts/webkitpy/style/checker.py:
  • Scripts/webkitpy/style/checkers/featuredefines.py:
  • gtk/make-dist.py:

(ensure_version_if_possible):

  • gtk/manifest.txt.in:
7:29 PM Changeset in webkit [219485] by matthew_hanson@apple.com
  • 1 edit
    1 move
    1 add in trunk/Source/WebKitLegacy

Update the Visual Studio project name from WebKit to WebKitLegacy.
https://bugs.webkit.org/show_bug.cgi?id=174162
rdar://problem/33137594

Reviewed by Dan Bernstein.

Rename WebKit to WebKitLegacy.

  • WebKitLegacy.vcxproj/WebKitLegacy.proj: Renamed from Source/WebKitLegacy/WebKit.vcxproj/WebKit.proj.
7:29 PM Changeset in webkit [219484] by matthew_hanson@apple.com
  • 4 edits
    1 move
    1 add in trunk

Update the Xcode project name from WebKit to WebKitLegacy.
https://bugs.webkit.org/show_bug.cgi?id=174162
rdar://problem/33137594

Reviewed by Dan Bernstein.

Rename WebKit to WebKitLegacy.

.:

  • WebKit.xcworkspace/contents.xcworkspacedata:
  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj: Renamed from Source/WebKitLegacy/WebKit.xcodeproj/project.pbxproj.
7:29 PM Changeset in webkit [219483] by matthew_hanson@apple.com
  • 18 edits in trunk

Update tools and configurations after renaming Source/WebKit to Source/WebKitLegacy.
https://bugs.webkit.org/show_bug.cgi?id=174162
rdar://problem/33137594

Reviewed by Dan Bernstein.

.:

Mass rename of Source/WebKit to Source/WebKitLegacy in OpenSource cmake files
and Xcode project files.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/WebKitFS.cmake:
  • WebKit.xcworkspace/contents.xcworkspacedata:
  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:

Tools:

Mass rename of Source/WebKit to Source/WebKitLegacy in OpenSource tooling.

  • BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:
  • DumpRenderTree/mac/InternalHeaders/WebKit/WebTypesInternal.h:
  • EWSTools/configure-clang-linux.sh:
  • Scripts/build-webkit:
  • Scripts/do-file-rename:
  • Scripts/do-webcore-rename:
  • Scripts/update-webkit-localizable-strings:
  • Scripts/webkitpy/common/checkout/checkout_unittest.py:
  • Scripts/webkitpy/style/checkers/changelog_unittest.py:
  • Scripts/webkitpy/style/checkers/featuredefines.py:
  • gtk/manifest.txt.in:
7:12 PM Changeset in webkit [219482] by matthew_hanson@apple.com
  • 1 move in trunk/Source/WebKit

Rename Source/WebKit2 to Source/WebKit.

7:11 PM Changeset in webkit [219481] by matthew_hanson@apple.com
  • 1 move in trunk/Source/WebKitLegacy

Rename Source/WebKit to Source/WebKitLegacy.

6:48 PM Changeset in webkit [219480] by Michael Catanzaro
  • 10 edits in trunk

Fix compiler warnings when building with GCC 7
https://bugs.webkit.org/show_bug.cgi?id=174463

Reviewed by Darin Adler.

.:

  • Source/cmake/OptionsCommon.cmake:

Source/JavaScriptCore:

  • disassembler/udis86/udis86_decode.c:

(decode_operand):

Source/ThirdParty:

  • brotli/CMakeLists.txt:

Source/WebCore:

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::setShouldManageAudioSessionCategory):

Source/WebKit2:

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::sendOutputMessage):

6:38 PM Changeset in webkit [219479] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Incorrect call to StyledElement::setInlineStyleProperty in ImageDocument::createDocumentStructure
https://bugs.webkit.org/show_bug.cgi?id=174470

Reviewed by Darin Adler.

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::createDocumentStructure):

5:23 PM Changeset in webkit [219478] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Skipped multiple http/tests/webrtc/ test on iOS simulator.
https://bugs.webkit.org/show_bug.cgi?id=173861

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
5:20 PM Changeset in webkit [219477] by Jonathan Bedard
  • 1 edit
    1 add in trunk/Tools

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 Aakash Jain.

Given a patch, this will convert the changes from the path to the new directory structure.

  • Scripts/rebase-patch-after-webkit-move: Added.

(append_source): Append 'Source' to the provided path.
(is_editable_line): Return true if a line the script expects to modify.
(needs_rebase): Return if a line needs to be rebased based on it's content.
(rebase_line): Rebase the provided line.
(rebase): Rebase a patch given the lines of that patch and a file to output the rebased patch to.
(parse_arguments): Parse the command line arguments and return the patches to be rebased, if they
were provided.

4:09 PM Changeset in webkit [219476] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Fix iOS build.

  • platform/graphics/GraphicsContext3D.h:
4:08 PM Changeset in webkit [219475] by Chris Dumez
  • 6 edits
    3 adds in trunk/Source/WebKit2

Moved filesystem code out of WebResourceLoadStatisticsStore class
https://bugs.webkit.org/show_bug.cgi?id=174435

Reviewed by Brent Fulgham.

Moved filesystem code out of WebResourceLoadStatisticsStore class and into
a new ResourceLoadStatisticsPersistentStorage class to decrease complexity.

  • CMakeLists.txt:
  • UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm:
  • UIProcess/Storage/ResourceLoadStatisticsPersistentStorage.cpp: Added.

(WebKit::hasFileChangedSince):
(WebKit::createDecoderForFile):
(WebKit::ResourceLoadStatisticsPersistentStorage::ResourceLoadStatisticsPersistentStorage):
(WebKit::ResourceLoadStatisticsPersistentStorage::~ResourceLoadStatisticsPersistentStorage):
(WebKit::ResourceLoadStatisticsPersistentStorage::storageDirectoryPath):
(WebKit::ResourceLoadStatisticsPersistentStorage::resourceLogFilePath):
(WebKit::ResourceLoadStatisticsPersistentStorage::startMonitoringDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::stopMonitoringDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::refreshMemoryStoreFromDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::populateMemoryStoreFromDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::writeMemoryStoreToDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::scheduleOrWriteMemoryStore):
(WebKit::ResourceLoadStatisticsPersistentStorage::clear):
(WebKit::ResourceLoadStatisticsPersistentStorage::finishAllPendingWorkSynchronously):
(WebKit::ResourceLoadStatisticsPersistentStorage::excludeFromBackup):

  • UIProcess/Storage/ResourceLoadStatisticsPersistentStorage.h: Added.
  • UIProcess/Storage/ios/ResourceLoadStatisticsPersistentStorageIOS.mm: Added.

(WebKit::ResourceLoadStatisticsPersistentStorage::excludeFromBackup):

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
(WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData):
(WebKit::WebResourceLoadStatisticsStore::applicationWillTerminate):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebResourceLoadStatisticsStore::resetDataFromDecoder):

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • WebKit2.xcodeproj/project.pbxproj:
4:04 PM Changeset in webkit [219474] by dino@apple.com
  • 3 edits
    4 moves in trunk/Source/WebCore

Rename GraphicsContext[3D]Mac to Cocoa and move things into graphics/cocoa
https://bugs.webkit.org/show_bug.cgi?id=174453
<rdar://problem/33281481>

Reviewed by Simon Fraser.

Two renames, two moves:
graphics/mac/GraphicsContext3DMac.mm -> graphics/cocoa/GraphicsContext3DCocoa.mm
graphics/mac/GraphicsContext.mm -> graphics/cocoa/GraphicsContextCocoa.mm
graphics/mac/WebGLLayer.h -> graphics/cocoa/WebGLLayer.h
graphics/mac/WebGLLayer.mm -> graphics/cocoa/WebGLLayer.mm

  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm: Renamed from Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm.
  • platform/graphics/cocoa/GraphicsContextCocoa.mm: Renamed from Source/WebCore/platform/graphics/mac/GraphicsContextMac.mm.
  • platform/graphics/cocoa/WebGLLayer.h: Renamed from Source/WebCore/platform/graphics/mac/WebGLLayer.h.
  • platform/graphics/cocoa/WebGLLayer.mm: Renamed from Source/WebCore/platform/graphics/mac/WebGLLayer.mm.
3:59 PM Changeset in webkit [219473] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

Clean-up some things in GraphicsContext3D
https://bugs.webkit.org/show_bug.cgi?id=174452
<rdar://problem/33281257>

Reviewed by Simon Fraser.

General clean-up in GC3D.

Covered by existing tests.

  • platform/graphics/GraphicsContext3D.h: Use initial values where possible.

(WebCore::GraphicsContext3D::GraphicsContext3DState::GraphicsContext3DState): Deleted.

  • platform/graphics/mac/GraphicsContext3DMac.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D): Nearly everything can come from the
initial values now.
(WebCore::GraphicsContext3D::~GraphicsContext3D): Remove code that won't be enabled
on this platform.

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::paintRenderingResultsToCanvas): While unlikely to happen,
and possibly harmless in this case, add some checked arithmetic to make sure we don't overflow
when working out how big a buffer to create.
(WebCore::GraphicsContext3D::paintRenderingResultsToImageData): Ditto.
(WebCore::GraphicsContext3D::reshape): Do nothing if we are ever given negative
width or height. Again unlikely.

3:49 PM Changeset in webkit [219472] by dino@apple.com
  • 5 edits in trunk/Source/WebCore

Avoid unnecessary copy of framebuffer into WebGL Layer
https://bugs.webkit.org/show_bug.cgi?id=174345
<rdar://problem/33228950>

Reviewed by Sam Weinig.

On macOS, we're unnecessarily copying the framebuffer into another
texture before pushing it into the compositing layer. Instead we
should simply render the FBO into the CALayer we use to draw on
the screen.

Covered by the existing WebGL tests.

  • platform/graphics/GraphicsContext3D.h:

(WebCore::GraphicsContext3D::platformTexture): Return the FBO texture instead.

  • platform/graphics/mac/GraphicsContext3DMac.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D): No need to have a compositing
texture.
(WebCore::GraphicsContext3D::~GraphicsContext3D):

  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::prepareTexture): Don't copy the pixels from
the FBO into the compositing texture

3:43 PM Changeset in webkit [219471] by jmarcell@apple.com
  • 5 edits in branches/safari-603-branch/Source

Versioning.

3:40 PM Changeset in webkit [219470] by jmarcell@apple.com
  • 1 copy in tags/Safari-603.3.8

Tag Safari-603.3.8.

3:26 PM Changeset in webkit [219469] by jmarcell@apple.com
  • 7 edits in branches/safari-604.1.31-branch/Source

Versioning.

3:22 PM Changeset in webkit [219468] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.31.2

Tag Safari-604.1.31.2.

3:04 PM Changeset in webkit [219467] by Chris Dumez
  • 6 edits
    3 deletes in trunk/Source/WebKit2

Unreviewed, rolling out r219453.

Seems to cause some crashes on the bots

Reverted changeset:

"Moved filesystem code out of WebResourceLoadStatisticsStore
class"
https://bugs.webkit.org/show_bug.cgi?id=174435
http://trac.webkit.org/changeset/219453

3:02 PM Changeset in webkit [219466] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked imported/w3c/web-platform-tests/IndexedDB/large-nested-cloning.html as flaky on iOS.
https://bugs.webkit.org/show_bug.cgi?id=173487

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
2:44 PM Changeset in webkit [219465] by jmarcell@apple.com
  • 3 edits in branches/safari-603-branch

Cherry-pick r215451. rdar://problem/31651319

2:16 PM Changeset in webkit [219464] by jmarcell@apple.com
  • 3 edits in branches/safari-604.1.31-branch/Source/WebCore/PAL

Cherry-pick r219455. rdar://problem/33288831

2:02 PM Changeset in webkit [219463] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Skipping media/video-source-before-src.html.
https://bugs.webkit.org/show_bug.cgi?id=174284

Unreviewed test gardening.

1:39 PM Changeset in webkit [219462] by Michael Catanzaro
  • 2 edits in trunk/Source/JavaScriptCore

Incorrect assertion in JSC::CallLinkInfo::callTypeFor
https://bugs.webkit.org/show_bug.cgi?id=174467

Reviewed by Saam Barati.

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::callTypeFor):

1:19 PM Changeset in webkit [219461] by graouts@webkit.org
  • 1 edit
    1 add in trunk/LayoutTests

REGRESSION: "visibility:hidden" does not hide play button for video elements
https://bugs.webkit.org/show_bug.cgi?id=174258
<rdar://problem/33181452>

Unreviewed test gardening.

Add a missing expectation file which is designed to be empty and is now just a space.

  • media/modern-media-controls/css/visibility-hidden-expected.html: Added.
12:16 PM Changeset in webkit [219460] by mark.lam@apple.com
  • 13 edits in trunk/Source/WebCore

Implementors of memoryCost() need to be thread-safe.
https://bugs.webkit.org/show_bug.cgi?id=172738
<rdar://problem/32474881>

Reviewed by Keith Miller.

No new tests. This patch fixes a race condition bug that can result in random
crashes (and other unpredictable behavior), and is very difficult to test for.

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::releaseMemory):
(WebCore::AudioBuffer::memoryCost):

  • Modules/webaudio/AudioBuffer.h:
  • dom/ChildNodeList.h:
  • dom/CollectionIndexCache.h:

(WebCore::CollectionIndexCache::memoryCost):

  • dom/LiveNodeList.h:
  • html/CachedHTMLCollection.h:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::memoryCost):
(WebCore::HTMLCanvasElement::externalMemoryCost):
(WebCore::HTMLCanvasElement::setImageBuffer):

  • html/HTMLCanvasElement.h:
  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::invalidateNamedElementCache):

  • html/HTMLCollection.h:

(WebCore::CollectionNamedElementCache::memoryCost):
(WebCore::HTMLCollection::memoryCost):
(WebCore::HTMLCollection::setNamedItemCache):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::memoryCost):

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::memoryCost):
(WebCore::ImageBuffer::externalMemoryCost):

11:41 AM Changeset in webkit [219459] by commit-queue@webkit.org
  • 12 edits in trunk/Source

Fix style. Use #pragma once in VideoFullscreen and PlaybackSession headers.
https://bugs.webkit.org/show_bug.cgi?id=174448

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-07-13
Reviewed by Eric Carlson.

No behavior change.

Source/WebCore:

  • platform/cocoa/WebPlaybackSessionInterface.h:
  • platform/cocoa/WebVideoFullscreenChangeObserver.h:
  • platform/cocoa/WebVideoFullscreenModel.h:
  • platform/cocoa/WebVideoFullscreenModelVideoElement.h:
  • platform/ios/WebPlaybackSessionInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenControllerAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/mac/WebVideoFullscreenInterfaceMac.h:

Source/WebKit2:

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
  • WebProcess/cocoa/WebVideoFullscreenManager.h:
11:21 AM Changeset in webkit [219458] by commit-queue@webkit.org
  • 5 edits in trunk

Deleting last URLSearchParams key should remove trailing ? in associated URL
https://bugs.webkit.org/show_bug.cgi?id=174465

Patch by Alex Christensen <achristensen@webkit.org> on 2017-07-13
Reviewed by Chris Dumez.

Source/WebCore:

This makes us match the behavior of Chrome and Firefox, and the spec after https://github.com/whatwg/url/issues/332 is approved.
This will be covered by an upcoming web platform test, and I updated fast/dom/DOMURL/searchparams.html to cover it now.

  • platform/URLParser.cpp:

(WebCore::URLParser::serialize):
If there are no tuples, serialize to the null string instead of a non-null empty string.
This makes it so URL::setQuery removes the ?

LayoutTests:

  • fast/dom/DOMURL/searchparams-expected.txt:
  • fast/dom/DOMURL/searchparams.html:
11:21 AM Changeset in webkit [219457] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Style fix. Replace strongThis with protectedThis.
https://bugs.webkit.org/show_bug.cgi?id=174444

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-07-13
Reviewed by Eric Carlson.

Rename, no behavior change.

Source/WebCore:

  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::finish):

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaData):
(WebCore::WebCoreDecompressionSession::enqueueSample):
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput):
(WebCore::WebCoreDecompressionSession::enqueueDecodedSample):
(WebCore::WebCoreDecompressionSession::requestMediaDataWhenReady):
(WebCore::WebCoreDecompressionSession::flush):

Source/WebKit2:

  • WebProcess/cocoa/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::didSetupFullscreen):
(WebKit::WebVideoFullscreenManager::didEnterFullscreen):
(WebKit::WebVideoFullscreenManager::didExitFullscreen):
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen):

11:19 AM Changeset in webkit [219456] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Fix block style in WebVideoFullscreen classes.
https://bugs.webkit.org/show_bug.cgi?id=174446

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-07-13
Reviewed by Eric Carlson.

No behavior change.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::setVideoLayerFrame):

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer layoutSublayers]):
(getWebAVPictureInPicturePlayerLayerViewClass):
(getWebAVPlayerLayerViewClass):

11:17 AM Changeset in webkit [219455] by pvollan@apple.com
  • 3 edits in trunk/Source/WebCore/PAL

[Win] Build error when building WebCore from WebCore.proj project file.
https://bugs.webkit.org/show_bug.cgi?id=174462

Reviewed by Brent Fulgham.

Add required include directory to list of include directories.

  • pal/CMakeLists.txt:
  • pal/PlatformWin.cmake:
11:03 AM Changeset in webkit [219454] by commit-queue@webkit.org
  • 20 edits in trunk/Source

Web Inspector: Remove unused and untested Page domain commands
https://bugs.webkit.org/show_bug.cgi?id=174429

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-07-13
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/Page.json:

Source/WebCore:

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
(WebCore::InspectorPageAgent::addScriptToEvaluateOnLoad): Deleted.
(WebCore::InspectorPageAgent::removeScriptToEvaluateOnLoad): Deleted.

  • inspector/InspectorPageAgent.h:

Source/WebInspectorUI:

  • UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
  • Versions/Inspector-iOS-10.0.json:
  • Versions/Inspector-iOS-10.3.json:
  • Versions/Inspector-iOS-11.0.json:
  • Versions/Inspector-iOS-7.0.json:
  • Versions/Inspector-iOS-8.0.json:
  • Versions/Inspector-iOS-9.0.json:
  • Versions/Inspector-iOS-9.3.json:
10:52 AM Changeset in webkit [219453] by Chris Dumez
  • 6 edits
    3 adds in trunk/Source/WebKit2

Moved filesystem code out of WebResourceLoadStatisticsStore class
https://bugs.webkit.org/show_bug.cgi?id=174435

Reviewed by Brent Fulgham.

Moved filesystem code out of WebResourceLoadStatisticsStore class and into
a new ResourceLoadStatisticsPersistentStorage class to decrease complexity.

  • CMakeLists.txt:
  • UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm:
  • UIProcess/Storage/ResourceLoadStatisticsPersistentStorage.cpp: Added.

(WebKit::hasFileChangedSince):
(WebKit::createDecoderForFile):
(WebKit::ResourceLoadStatisticsPersistentStorage::ResourceLoadStatisticsPersistentStorage):
(WebKit::ResourceLoadStatisticsPersistentStorage::~ResourceLoadStatisticsPersistentStorage):
(WebKit::ResourceLoadStatisticsPersistentStorage::storageDirectoryPath):
(WebKit::ResourceLoadStatisticsPersistentStorage::resourceLogFilePath):
(WebKit::ResourceLoadStatisticsPersistentStorage::startMonitoringDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::stopMonitoringDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::refreshMemoryStoreFromDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::populateMemoryStoreFromDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::writeMemoryStoreToDisk):
(WebKit::ResourceLoadStatisticsPersistentStorage::scheduleOrWriteMemoryStore):
(WebKit::ResourceLoadStatisticsPersistentStorage::clear):
(WebKit::ResourceLoadStatisticsPersistentStorage::finishAllPendingWorkSynchronously):
(WebKit::ResourceLoadStatisticsPersistentStorage::excludeFromBackup):

  • UIProcess/Storage/ResourceLoadStatisticsPersistentStorage.h: Added.
  • UIProcess/Storage/ios/ResourceLoadStatisticsPersistentStorageIOS.mm: Added.

(WebKit::ResourceLoadStatisticsPersistentStorage::excludeFromBackup):

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
(WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData):
(WebKit::WebResourceLoadStatisticsStore::applicationWillTerminate):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebResourceLoadStatisticsStore::resetDataFromDecoder):

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • WebKit2.xcodeproj/project.pbxproj:
10:34 AM Changeset in webkit [219452] by jmarcell@apple.com
  • 5 edits in branches/safari-604.1.31-branch/Source/WebKit2

Cherry-pick r219440. rdar://problem/33272627

10:03 AM Changeset in webkit [219451] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Missing exception check in JSObject::hasInstance
https://bugs.webkit.org/show_bug.cgi?id=174455
<rdar://problem/31384608>

Reviewed by Mark Lam.

JSTests:

  • stress/has-instance-exception-check.js: Added.

(assert):
(let.getter.Object.getOwnPropertyDescriptor.get foo):

Source/JavaScriptCore:

  • runtime/JSObject.cpp:

(JSC::JSObject::hasInstance):

8:51 AM Changeset in webkit [219450] by magomez@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations of several tests failing at r219449.

  • platform/gtk/TestExpectations:
3:09 AM Changeset in webkit [219449] by zandobersek@gmail.com
  • 5 edits in trunk

[GCrypt] Implement CryptoKeyRSA SPKI exports
https://bugs.webkit.org/show_bug.cgi?id=173695

Reviewed by Jiewen Tan.

Source/WebCore:

Implement the SPKI export operation for RSA keys for platforms that use
libgcrypt.

In CryptoKeyRSA::exportSpki(), we bail early with an invalid access exception if
this export is not being done for a public key. Otherwise, we start with creating
the RSAPublicKey ASN.1 structure, filling in the modulus and public exponent
data that's retrieved from the public-key s-expression in the signed MPI format.

We then create the SubjectPublicKeyInfo ASN.1 structure and fill it out with
the necessary data. The id-rsaEncryption object identifier is written out under
the algorithm.algorithm element, and a null value is written out under the
algorithm.parameters element. This doesn't follow the specification at the
moment, since id-RSASSA-PSS would have to be written for the RSA-PSS algorithm,
and id-RSAES-OAEP for the RSA-OAEP algorithm, along with specific parameter
structures. But no test in WebKit or the web-platform-tests suite covers this,
so this deviation should be addressed later.

Data of the previously-constructed RSAPublicKey structure is retrieved and
written out under the subjectPublicKey element, before finally retrieving
data of the SubjectPublicKeyInfo structure and returning that to the caller.

A helper mpiSignedData() function is added, providing overloads for gcry_mpi_t
and gcry_sexp_t parameters. MPI data for that parameter is retrieved and the
first byte of that data is tested, inserting an additional 0x00 byte at the
beginning of the Vector if that first byte has the first bit set, avoiding this
data accidentally being interpreted as a signed integer.

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

  • crypto/gcrypt/CryptoKeyRSAGCrypt.cpp:

(WebCore::CryptoKeyRSA::exportSpki):

  • crypto/gcrypt/GCryptUtilities.h:

(WebCore::mpiSignedData):

LayoutTests:

  • platform/gtk/TestExpectations: Unskip the RSA SPKI export tests

that are now passing.

3:00 AM Changeset in webkit [219448] by zandobersek@gmail.com
  • 4 edits in trunk

[GCrypt] Implement CryptoKeyRSA SPKI imports
https://bugs.webkit.org/show_bug.cgi?id=173694

Reviewed by Jiewen Tan.

Source/WebCore:

Implement the SPKI import operation for RSA keys for platforms that use
libgcrypt.

The passed-in key data is decoded against the SubjectPublicKeyInfo ASN.1
structure. We then validate the algorithm.algorithm element, ensuring that
the value under that represents 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 algorithm.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 algorithm.parameters. This is
avoided for now because no test in WebKit or the web-platform-tests suite covers
this detail of the specification.

After the algorithm is identified as supported, we proceed with decoding the
subjectPublicKey data against the RSAPublicKey ASN.1 structure. From there,
we retrieve the modulus and publicExponent data from which we can construct
an RSA public-key s-expression that can be used through libgcrypt. A new
CryptoKeyRSA object is then created, taking over ownership of the public-key
s-expression, and returned.

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

  • crypto/gcrypt/CryptoKeyRSAGCrypt.cpp:

(WebCore::supportedAlgorithmIdentifier):
(WebCore::CryptoKeyRSA::importSpki):

LayoutTests:

  • platform/gtk/TestExpectations: Unskip the RSA SPKI import tests

that are now passing.

2:38 AM Changeset in webkit [219447] by clopez@igalia.com
  • 7 edits in trunk

REGRESSION(r219332): [GTK] 9 new failures on fast/forms spinbutton related tests
https://bugs.webkit.org/show_bug.cgi?id=174395

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Covered by existing tests.

Before r219332 the height of the spin button widget was
calculated as the maximum value between the individual button
( the [+] or [-] ) width (33 pixels) and height (16 pixels).
And r219332 caused the height of the widget to be calculated as
the height of the button (16 pixels), which was incorrect as
each button should be first expanded vertically to fit the
preferred size of the widget.

Fix this by making the calculations about the spin button widget
on a new function spinButtonSize() that takes this into account,
and use this values both for adjusting the style of the input
field and the spin button widget itself.

  • rendering/RenderThemeGtk.cpp:

(WebCore::spinButtonSize):
(WebCore::RenderThemeGtk::adjustTextFieldStyle):
(WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):

LayoutTests:

  • fast/forms/number/number-spinbutton-in-multi-column.html: Instead of assuming that the width will be 100, calculate a -7 offset dinamically.
  • platform/gtk/TestExpectations: Remove expected failures now orking.
  • platform/gtk/fast/forms/number/number-size-spinbutton-nocover-expected.png: Rebaseline.
  • platform/gtk/fast/forms/number/number-size-spinbutton-nocover-expected.txt: Rebaseline.
2:21 AM Changeset in webkit [219446] by Adrian Perez de Castro
  • 3 edits in trunk/Source/ThirdParty/ANGLE

eglplatform.h does not support Wayland
https://bugs.webkit.org/show_bug.cgi?id=163482

This makes it possible to build WebKitGTK+ when the target system has only Wayland support,
but no X11 (and therefore the X11 headers are not present).

Reviewed by Alex Christensen.

  • include/EGL/eglplatform.h: Add Wayland typedefs when WL_EGL_PLATFORM is defined (for example

by including wayland-egl.h before including EGL/egl.h). Also, include the X11 headers only
when ANGLE_USE_X11 is defined and, for consistency with Mesa's version of the header, when
MESA_EGL_NO_X11_HEADERS is not defined.

1:21 AM Changeset in webkit [219445] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] border-radius with non visible border doesn't work on images that have their own RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=174157

Reviewed by Carlos Garcia Campos.

Do not allow direct compositing of images when they have a border-radius property on WebKitGTK+ and WPE.
These platforms don't support clipping using rounded rectangles during composition, which is required
when using border-radius and the border is not visible. Due to this, they need to perform the clippping
with cairo.

This is a temporal fix, until appropriate clipping is implemented in the TextureMapper.

No new tests.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::isDirectlyCompositedImage):

12:47 AM Changeset in webkit [219444] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: WebView crashes app after opening VoiceOver context box menu from modal dialog
https://bugs.webkit.org/show_bug.cgi?id=163999
<rdar://problem/28949013>

Reviewed by Joanmarie Diggs.

Protect when m_object goes away.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):

12:11 AM Changeset in webkit [219443] by Caio Lima
  • 13 edits
    3 adds in trunk

[ESnext] Implement Object Spread
https://bugs.webkit.org/show_bug.cgi?id=167963

Reviewed by Saam Barati.

JSTests:

  • stress/obj-rest-destructuring-order.js: Added.

(assert):
(o.get z):
(o.get a):

  • stress/obj-spread-order.js: Added.

(assert):
(o.get z):
(o.get a):

  • stress/object-spread.js: Added.

(let.assert):
(assert.sameValue):
(let.o.get a):
(let.obj.get c):
(cthulhu.get x):
(let.obj.set c):
(calls.o.get z):
(calls.o.get a):
(try.let.obj.get foo):
(get calls):

Source/JavaScriptCore:

This patch implements ECMA262 stage 3 Object Spread proposal [1].
It's implemented using CopyDataPropertiesNoExclusions to copy
all enumerable keys from object being spreaded. The implementation of
CopyDataPropertiesNoExclusions follows the CopyDataProperties
implementation, however we don't receive excludedNames as parameter.

[1] - https://github.com/tc39/proposal-object-rest-spread

  • builtins/GlobalOperations.js:

(globalPrivate.copyDataPropertiesNoExclusions):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitLoad):

  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitBytecode):
(JSC::ObjectSpreadExpressionNode::emitBytecode):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createObjectSpreadExpression):
(JSC::ASTBuilder::createProperty):

  • parser/NodeConstructors.h:

(JSC::PropertyNode::PropertyNode):
(JSC::ObjectSpreadExpressionNode::ObjectSpreadExpressionNode):

  • parser/Nodes.h:

(JSC::ObjectSpreadExpressionNode::expression):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseProperty):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createObjectSpreadExpression):
(JSC::SyntaxChecker::createProperty):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:

Jul 12, 2017:

11:34 PM Changeset in webkit [219442] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Web Automation: evaluateJavaScriptFunction should start the callback timeout after the function is applied
https://bugs.webkit.org/show_bug.cgi?id=174421

Reviewed by Brian Burg.

This is causing selenium test testShouldNotTimeoutIfScriptCallsbackInsideAZeroTimeout to fail, because
JavaScriptTimeout error is generated unexpectedly. When no script timeout is specified, 0 is used by default,
which means we do a setTimeout with 0 and then the script does another setTimeout with 0, but ours is dispatched
before and reportTimeoutError is called. We should start our timeout after applying the function, and only if
the result hasn't been reported yet.

  • WebProcess/Automation/WebAutomationSessionProxy.js:

(let.AutomationSessionProxy.prototype.evaluateJavaScriptFunction):

7:39 PM Changeset in webkit [219441] by jmarcell@apple.com
  • 28 edits
    1 move
    1 add
    3 deletes in branches/safari-604.1.31-branch

Cherry-pick r219421. rdar://problem/33265549

7:39 PM Changeset in webkit [219440] by wenson_hsieh@apple.com
  • 5 edits in trunk/Source/WebKit2

[iOS DnD] [WK2] Add SPI to enable, disable, or follow default behavior for DnD on a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=174440
<rdar://problem/33272627>

Reviewed by Beth Dakin.

Adds a new _dragInteractionPolicy property to WKWebView, which an internal client may use to always allow
dragging out of the web view (_WKDragInteractionPolicyAlwaysEnable), never allow
(_WKDragInteractionPolicyAlwaysDisable) or just use the default device-dependent behavior
(_WKDragInteractionPolicyDefault).

Also removes an extraneous class from WKContentViewInteraction.mm that is no longer used anywhere.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

Set _dragInteractionPolicy to _WKDragInteractionPolicyDefault upon initialization.

(-[WKWebView _dragInteractionPolicy]):
(-[WKWebView _setDragInteractionPolicy:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(shouldEnableDragInteractionForPolicy):
(-[WKContentView _didChangeDragInteractionPolicy]):

Called by the WKWebView when its _dragInteractionPolicy changes. The content view updates its
UIDragInteraction's -enabled property here in response.

(-[WKContentView setupDataInteractionDelegates]):

7:37 PM Changeset in webkit [219439] by jmarcell@apple.com
  • 7 edits in branches/safari-604.1.31-branch/Source

Versioning.

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

Async image decoding for large images should be disabled by default
https://bugs.webkit.org/show_bug.cgi?id=174432

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-07-12
Reviewed by Simon Fraser.

Source/WebCore:

-- Rename GraphicsLayerPaintFlags::Snapshotting to AllowAsyncImageDecoding.
-- Replace every reference to GraphicsLayerPaintFlags::Snapshotting by

GraphicsLayerPaintFlags::None and every GraphicsLayerPaintFlags::None
by AllowAsyncImageDecoding.

-- Rename PaintBehaviorSnapshotting to PaintBehaviorAllowAsyncImageDecoding.
-- Propagate PaintBehaviorAllowAsyncImageDecoding from a parent view to

a child view instead of propagating PaintBehaviorSnapshotting.

-- Remove setting the bit PaintBehaviorSnapshotting in any new PaintBehavoir.
-- Replace setting the bit PaintBehaviorSnapshotting in an existing PaintBehavoir

by resetting the bit PaintBehaviorAllowAsyncImageDecoding.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):

  • page/FrameView.cpp:

(WebCore::FrameView::willPaintContents):
(WebCore::FrameView::paintContentsForSnapshot):

  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/GraphicsLayerClient.h:
  • platform/graphics/mac/WebLayer.mm:

(-[WebLayer drawInContext:]):
(-[WebSimpleLayer drawInContext:]):

  • rendering/PaintPhase.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::decodingModeForImageDraw):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintForegroundForFragments):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintContents):

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paintContents): We need to propagate the
PaintBehaviorAllowAsyncImageDecoding from RenderWidget to the FrameView.
We did not need to do that for PaintBehaviorSnapshotting because
FrameView was setting it in its m_paintBehavior if (document->printing())
in FrameView::willPaintContents().

Source/WebKit/mac:

-- Remove setting the bit PaintBehaviorSnapshotting in any new PaintBehavoir.
-- Return PaintBehaviorAllowAsyncImageDecoding when the return value was 0.
-- Propagate PaintBehaviorAllowAsyncImageDecoding from a parent view to

a child view instead of propagating PaintBehaviorSnapshotting.

-- Replace setting the bit PaintBehaviorSnapshotting in an existing PaintBehavoir

by resetting the bit PaintBehaviorAllowAsyncImageDecoding.

  • WebView/WebFrame.mm:

(-[WebFrame _paintBehaviorForDestinationContext:]):
(-[WebFrame _drawRect:contentsOnly:]):

  • WebView/WebHTMLView.mm:

(imageFromRect):

Source/WebKit2:

-- Replace every reference to GraphicsLayerPaintFlags::Snapshotting by

GraphicsLayerPaintFlags::None and every GraphicsLayerPaintFlags::None
by AllowAsyncImageDecoding.

-- Replace setting the bit PaintBehaviorSnapshotting in an existing PaintBehavoir

by resetting the bit PaintBehaviorAllowAsyncImageDecoding.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext):

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::imageForRect):

  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:

(WebKit::InjectedBundleRangeHandle::renderedImage):

5:22 PM Changeset in webkit [219437] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Gardening: build fix after r219434.
https://bugs.webkit.org/show_bug.cgi?id=174441

Not reviewed.

Make public some MacroAssembler functions that are needed by the probe implementationq.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::trustedImm32FromPtr):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::linkCall):

5:15 PM Changeset in webkit [219436] by timothy@hatcher.name
  • 2 edits in trunk/Source/WebCore

REGRESSION(r219391): Broke the USE(OPENGL_ES_2) build
https://bugs.webkit.org/show_bug.cgi?id=174442

Unreviewed build fix.

  • platform/graphics/egl/GLContextEGL.cpp: Fix typo of OPENGL_ES2.
5:03 PM Changeset in webkit [219435] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Recreate the AudioUnit when restarting capture
https://bugs.webkit.org/show_bug.cgi?id=174439

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-12
Reviewed by Jer Noble.

Sometimes other applications in the system like FaceTime may make the audio unit not functional.
Reloading the tab capturing audio will trigger a call to stop the audio shared unit.
When the tab requests again audio, the shared unit will restart.
At that time, the AudioUnit shared unit will be fully recreated.

Manually tested by doing a webrtc call and then doing a FaceTime call.
Remote WebRTC endpoints may not receive any audio.
With the patch, reloading the web page will get back the audio.
Previously, restarting the UIProcess was the only way.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::startProducingData): Cleaning the audio unit when starting to produce data if there is a preexisting audio unit.

4:50 PM Changeset in webkit [219434] by mark.lam@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Move Probe code from AbstractMacroAssembler to MacroAssembler.
https://bugs.webkit.org/show_bug.cgi?id=174441

Reviewed by Saam Barati.

This is a pure refactoring patch for moving probe code from the AbstractMacroAssembler
to MacroAssembler. There is no code behavior change.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler<AssemblerType>::Address::indexedBy):
(JSC::AbstractMacroAssembler::CPUState::gprName): Deleted.
(JSC::AbstractMacroAssembler::CPUState::fprName): Deleted.
(JSC::AbstractMacroAssembler::CPUState::gpr): Deleted.
(JSC::AbstractMacroAssembler::CPUState::fpr): Deleted.
(JSC::MacroAssemblerType>::Address::indexedBy): Deleted.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::CPUState::gprName):
(JSC::MacroAssembler::CPUState::fprName):
(JSC::MacroAssembler::CPUState::gpr):
(JSC::MacroAssembler::CPUState::fpr):

  • assembler/MacroAssemblerARM.cpp:

(JSC::MacroAssembler::probe):
(JSC::MacroAssemblerARM::probe): Deleted.

  • assembler/MacroAssemblerARM.h:
  • assembler/MacroAssemblerARM64.cpp:

(JSC::MacroAssembler::probe):
(JSC::MacroAssemblerARM64::probe): Deleted.

  • assembler/MacroAssemblerARM64.h:
  • assembler/MacroAssemblerARMv7.cpp:

(JSC::MacroAssembler::probe):
(JSC::MacroAssemblerARMv7::probe): Deleted.

  • assembler/MacroAssemblerARMv7.h:
  • assembler/MacroAssemblerMIPS.h:
  • assembler/MacroAssemblerX86Common.cpp:

(JSC::MacroAssembler::probe):
(JSC::MacroAssemblerX86Common::probe): Deleted.

  • assembler/MacroAssemblerX86Common.h:
4:30 PM Changeset in webkit [219433] by sbarati@apple.com
  • 3 edits
    1 add in trunk

GenericArguments consults the wrong state when tracking modified argument descriptors and mapped arguments
https://bugs.webkit.org/show_bug.cgi?id=174411
<rdar://problem/31696186>

Reviewed by Mark Lam.

JSTests:

  • stress/generic-arguments-correct-delete-behavior.js: Added.

(assert):
(makeTest):

Source/JavaScriptCore:

The code for deleting an argument was incorrectly referencing state
when it decided if it should unmap or mark a property as having its
descriptor modified. This patch fixes the bug where if we delete a
property, we would sometimes not unmap an argument when deleting it.

  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::getOwnPropertySlot):
(JSC::GenericArguments<Type>::getOwnPropertySlotByIndex):
(JSC::GenericArguments<Type>::deleteProperty):
(JSC::GenericArguments<Type>::deletePropertyByIndex):

4:27 PM Changeset in webkit [219432] by jmarcell@apple.com
  • 7 edits in trunk/Source

Versioning.

4:15 PM Changeset in webkit [219431] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.31.1

Tag Safari-604.1.31.1.

4:14 PM Changeset in webkit [219430] by jmarcell@apple.com
  • 1 delete in tags/Safari-604.1.31.1

Delete Tag.

3:35 PM Changeset in webkit [219429] by jmarcell@apple.com
  • 21 edits in branches/safari-604.1.31-branch/Source

Cherry-pick r219427. rdar://problem/33275032

3:31 PM Changeset in webkit [219428] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk

Accessing localDescription, remoteDescription, etc. after setTimeout raises EXC_BAD_ACCESS
https://bugs.webkit.org/show_bug.cgi?id=174323
<rdar://problem/33267876>

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

Test: webrtc/calling-peerconnection-once-closed.html

In case the libwebrtc backend is null, we should not use it to get description from it.
Return null in that case.

Adding ASSERT to other calls where the layer above LibWebRTCMediaEndpoint should protect
from calling a function on a null libwebrtc backend.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::currentLocalDescription):
(WebCore::LibWebRTCMediaEndpoint::currentRemoteDescription):
(WebCore::LibWebRTCMediaEndpoint::pendingLocalDescription):
(WebCore::LibWebRTCMediaEndpoint::pendingRemoteDescription):
(WebCore::LibWebRTCMediaEndpoint::localDescription):
(WebCore::LibWebRTCMediaEndpoint::remoteDescription):
(WebCore::LibWebRTCMediaEndpoint::doSetLocalDescription):
(WebCore::LibWebRTCMediaEndpoint::doSetRemoteDescription):
(WebCore::LibWebRTCMediaEndpoint::addTrack):
(WebCore::LibWebRTCMediaEndpoint::removeTrack):
(WebCore::LibWebRTCMediaEndpoint::doCreateOffer):
(WebCore::LibWebRTCMediaEndpoint::doCreateAnswer):
(WebCore::LibWebRTCMediaEndpoint::createDataChannel):

3:26 PM Changeset in webkit [219427] by commit-queue@webkit.org
  • 21 edits in trunk/Source

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

"Can cause infinite recursion on iOS" (Requested by mlam on
#webkit).

Reverted changeset:

"WTF::Thread should have the threads stack bounds."
https://bugs.webkit.org/show_bug.cgi?id=173975
http://trac.webkit.org/changeset/219176

3:20 PM Changeset in webkit [219426] by n_wang@apple.com
  • 13 edits
    2 adds in trunk

AX: [iOS] Implement a way to retrieve a text marker range with desired text that is closest to a position
https://bugs.webkit.org/show_bug.cgi?id=174393
<rdar://problem/33248006>

Reviewed by Chris Fleizach.

Source/WebCore:

Used the existing findClosestPlainText function to search the range on iOS.
Also exposed a function on the iOS wrapper to return the selection rects of
the result range from the searching.

Test: accessibility/ios-simulator/text-marker-range-matches-text.html

  • accessibility/AXObjectCache.cpp:

(WebCore::visiblePositionForPositionWithOffset):
(WebCore::AXObjectCache::rangeMatchesTextNearRange):

  • accessibility/AXObjectCache.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper rangeFromMarkers:withText:]):
(-[WebAccessibilityObjectWrapper textMarkerRangeFromMarkers:withText:]):
(-[WebAccessibilityObjectWrapper textRectsFromMarkers:withText:]):
(-[WebAccessibilityObjectWrapper rectsForSelectionRects:]):

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(textMarkerRangeMatchesTextNearMarkersCallback):
(AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers):

LayoutTests:

  • accessibility/ios-simulator/text-marker-range-matches-text-expected.txt: Added.
  • accessibility/ios-simulator/text-marker-range-matches-text.html: Added.
3:14 PM Changeset in webkit [219425] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 35

Added a tag for Safari Technology Preview release 35.

1:57 PM Changeset in webkit [219424] by Matt Lewis
  • 13 edits
    2 deletes in trunk

Unreviewed, rolling out r219409.

The revision caused the Windows builds to fail.

Reverted changeset:

"AX: [iOS] Implement a way to retrieve a text marker range
with desired text that is closest to a position"
https://bugs.webkit.org/show_bug.cgi?id=174393
http://trac.webkit.org/changeset/219409

1:46 PM Changeset in webkit [219423] by jmarcell@apple.com
  • 5 edits in branches/safari-604.1.31-branch/Source

Fix for rdar://problem/33128863

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

[FreeType] Enable BCI on webfonts
https://bugs.webkit.org/show_bug.cgi?id=174403

Patch by Alicia Boya García <aboya@igalia.com> on 2017-07-12
Reviewed by Michael Catanzaro.

The FreeType BCI hinter used to be disabled on webfonts in favor of
the autohinter.

FreeType BCI hinter has improved considerably in the past and now most
other browsers enable it too. Given the old reasons no longer apply,
the BCI has now been enabled in order to get better text rendering when
embedded hints are available.

  • platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:

(WebCore::FontCustomPlatformData::FontCustomPlatformData):

1:43 PM Changeset in webkit [219421] by commit-queue@webkit.org
  • 28 edits
    1 move
    1 add
    3 deletes in trunk

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

Huge PLUM memory regression on iOS (Requested by kling on
#webkit).

Reverted changeset:

"[WebIDL] Convert MutationCallback to be a normal generate
callback"
https://bugs.webkit.org/show_bug.cgi?id=174140
http://trac.webkit.org/changeset/219361

1:21 PM Changeset in webkit [219420] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests/imported/w3c

Update web platform tests for elementFromPoint and elementsFromPoint
https://bugs.webkit.org/show_bug.cgi?id=174391

Patch by Ali Juma <ajuma@chromium.org> on 2017-07-12
Reviewed by Youenn Fablet.

This updates tests to include changes made upstream in
https://github.com/w3c/web-platform-tests/pull/6349. These changes make the tests
fit within the 800x600 window size used in layout tests.

  • web-platform-tests/cssom-view/elementFromPoint-expected.txt: Updated.
  • web-platform-tests/cssom-view/elementFromPoint.html: Updated.
  • web-platform-tests/cssom-view/elementsFromPoint.html: Updated.
1:19 PM Changeset in webkit [219419] by eric.carlson@apple.com
  • 16 edits
    2 adds in trunk

[MediaStream] a capture source failure should end the MediaStreamTrack
https://bugs.webkit.org/show_bug.cgi?id=174375

Reviewed by Youenn Fablet.

Source/WebCore:

Test: fast/mediastream/media-stream-track-source-failure.html

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::captureFailed): New, signal observers that the source has ended.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/mac/AVMediaCaptureSource.h:
  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::setupSession): Call captureFailed if setupCaptureSession fails.

  • platform/mediastream/mac/AVVideoCaptureSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::setupCaptureSession): Return false on failure.
(WebCore::AVVideoCaptureSource::shutdownCaptureSession): Delete unused instance variable.
(WebCore::AVVideoCaptureSource::processNewFrame): Ditto.

  • testing/Internals.cpp:

(WebCore::Internals::endMediaStreamTrackCaptureSource): Call track.source.captureFailed().

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit2:

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::captureStateChanged): Consolidate start/end.
(WebKit::UserMediaPermissionRequestManagerProxy::startedCaptureSession): Deleted.
(WebKit::UserMediaPermissionRequestManagerProxy::endedCaptureSession): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isPlayingMediaDidChange): Call captureStateChanged if the capture
state changes. Consider interrupted flags.

LayoutTests:

  • fast/mediastream/media-stream-track-source-failure-expected.txt: Added.
  • fast/mediastream/media-stream-track-source-failure.html: Added.
12:16 PM Changeset in webkit [219418] by timothy@hatcher.name
  • 2 edits in trunk/Source/WebCore

Improve font matching with FontConfig and FreeType
https://bugs.webkit.org/show_bug.cgi?id=174374

Reviewed by Michael Catanzaro.

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::FontCache::createFontPlatformData): Loop through all family name matches from FcFontMatch.

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

Reactivate audio ducking when restarting the shared unit
https://bugs.webkit.org/show_bug.cgi?id=174428

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

Currently, when another application ducks WebKit, there is no other way than to quit the UIProcess and restart it.
By again audio ducking when starting the audio unit, reloading the page will be enough.
Testing by launching a tab with audio capture and audio playing.
Then make a FaceTime call and hear the tab volume go down.
End the call to FaceTime and the tab volume remains low.
Reload the tab and the volume has a normal level.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::startInternal):

11:43 AM Changeset in webkit [219416] by Adrian Perez de Castro
  • 2 edits in trunk/Source/bmalloc

bmalloc: Failure to build when the compiler specifically targets ARMv8-A / defines ARM_ARCH_8A
https://bugs.webkit.org/show_bug.cgi?id=174424

Reviewed by Michael Catanzaro.

  • bmalloc/BPlatform.h: Also check for ARCH_ARM_8A to detect ARMv8.
11:42 AM Changeset in webkit [219415] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WTF

[WTF] Failure to build when the compiler specifically targets ARMv8-A / defines ARM_ARCH_8A
https://bugs.webkit.org/show_bug.cgi?id=174425

Reviewed by Michael Catanzaro.

  • wtf/Platform.h: Also check for ARCH_ARM_8A to detect ARMv8.
11:38 AM Changeset in webkit [219414] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.31.1

Tag Safari-604.1.31.1.

11:34 AM Changeset in webkit [219413] by jmarcell@apple.com
  • 15 edits in branches/safari-604.1.31-branch

rdar://problem/32913370

11:19 AM Changeset in webkit [219412] by commit-queue@webkit.org
  • 5 edits in trunk

Playback controls should not hide while AirPlay is active
https://bugs.webkit.org/show_bug.cgi?id=174422
<rdar://problem/33011477>

Patch by Antoine Quint <Antoine Quint> on 2017-07-12
Reviewed by Eric Carlson.

Source/WebCore:

We now also track changes in AirPlay playback status and account for it when identifying whether we
ought to let media controls automatically hide, which should only happen if the media is playing and
not playing back through AirPlay.

  • Modules/modern-media-controls/media/controls-visibility-support.js:

(ControlsVisibilitySupport.prototype.get mediaEvents):
(ControlsVisibilitySupport.prototype._updateControls):
(ControlsVisibilitySupport):

LayoutTests:

Expand the existing AirPlaySupport test to check that when we enter AirPlay we correctly prevent
the media controls from automatically hiding.

  • media/modern-media-controls/airplay-support/airplay-support-expected.txt:
  • media/modern-media-controls/airplay-support/airplay-support.html:
11:07 AM Changeset in webkit [219411] by msaboff@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed build fix when both DATA_LOG_TO_FILE and DATA_LOG_FILENAME are defined.

  • wtf/DataLog.cpp:

(WTF::initializeLogFileOnce): Changed declaration of logBasename from
char* logBasename to const char* logBasename.

11:01 AM Changeset in webkit [219410] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Attempt to fix the build following <https://trac.webkit.org/changeset/219407>
(https://bugs.webkit.org/show_bug.cgi?id=174386)

Fix bad merge after <https://trac.webkit.org/changeset/219404>.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:
10:58 AM Changeset in webkit [219409] by n_wang@apple.com
  • 13 edits
    2 adds in trunk

AX: [iOS] Implement a way to retrieve a text marker range with desired text that is closest to a position
https://bugs.webkit.org/show_bug.cgi?id=174393
<rdar://problem/33248006>

Reviewed by Chris Fleizach.

Source/WebCore:

Used the existing findClosestPlainText function to search the range on iOS.
Also exposed a function on the iOS wrapper to return the selection rects of
the result range from the searching.

Test: accessibility/ios-simulator/text-marker-range-matches-text.html

  • accessibility/AXObjectCache.cpp:

(WebCore::visiblePositionForPositionWithOffset):
(WebCore::AXObjectCache::rangeMatchesTextNearRange):

  • accessibility/AXObjectCache.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper rangeFromMarkers:withText:]):
(-[WebAccessibilityObjectWrapper textMarkerRangeFromMarkers:withText:]):
(-[WebAccessibilityObjectWrapper textRectsFromMarkers:withText:]):
(-[WebAccessibilityObjectWrapper rectsForSelectionRects:]):

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(textMarkerRangeMatchesTextNearMarkersCallback):
(AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers):

LayoutTests:

  • accessibility/ios-simulator/text-marker-range-matches-text-expected.txt: Added.
  • accessibility/ios-simulator/text-marker-range-matches-text.html: Added.
10:50 AM Changeset in webkit [219408] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Skip WebRTC tests on Windows.

Unreviewed test gardening.

  • platform/win/TestExpectations:
10:25 AM Changeset in webkit [219407] by dbates@webkit.org
  • 8 edits in trunk/Source

NavigationAction should track whether the navigation was initiated by the main frame
https://bugs.webkit.org/show_bug.cgi?id=174386
<rdar://problem/33245267>

Reviewed by Brady Eidson.

Source/WebCore:

Although we added state to NavigationAction to track whether the navigation was
initiated by the main frame in r219170 it is not possible to initialize this state
when instantiating a NavigationAction. Having NavigationAction track this state
will be useful to ensure that we can always compute the source frame information
when asking the embedding client whether to allow a navigation. We will make use
of it in the fix for <https://bugs.webkit.org/show_bug.cgi?id=174385>.

No behavior changed. So, no new tests.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL): Pass whether the load was initiated by the main frame
when instantiating the NavigationAction.
(WebCore::FrameLoader::load): For now, pass InitiatedByMainFrame::Unknown when instantiating
the NavigationAction as we do not know if the load was initiated by the main frame.
(WebCore::FrameLoader::loadWithDocumentLoader): Ditto.
(WebCore::FrameLoader::reload): Ditto
(WebCore::FrameLoader::loadDifferentDocumentItem): Ditto.
(WebCore::createWindow): Pass whether the load was initiated by the main frame when
instantiating the NavigationAction.

  • loader/NavigationAction.cpp:

(WebCore::NavigationAction::NavigationAction): Modified to take argument of type InitiatedByMainFrame
that indicates whether the navigation was initiated by the main frame.

  • loader/NavigationAction.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy): For now, pass InitiatedByMainFrame::Unknown
when instantiating the NavigationAction as we do not know if the load was initiated by the
main frame.

  • page/ContextMenuController.cpp:

(WebCore::openNewWindow): Pass whether the load was initiated by the main frame when
instantiating the NavigationAction.

Source/WebKit2:

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab): Pass whether the load was initiated by the main frame
when instantiating the NavigationAction.

10:16 AM Changeset in webkit [219406] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Make prepare-ChangeLog -g <commit> generate a more standard ChangeLog entry.
https://bugs.webkit.org/show_bug.cgi?id=174197

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-07-12
Reviewed by Darin Adler.

This bit me the first time I tried to submit a patch to WebKit, and still I have
to manually edit the ChangeLog every time I use the script.

This generates a more convenient and standard ChangeLog entry.

  • Scripts/prepare-ChangeLog:

(generateNewChangeLogs):

10:14 AM Changeset in webkit [219405] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Rebaseline of test fast/dom/Window/property-access-on-cached-window-after-frame-removed.html.
https://bugs.webkit.org/show_bug.cgi?id=174400

Unreviewed test gardening.

  • fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt:
10:12 AM Changeset in webkit [219404] by dbates@webkit.org
  • 22 edits in trunk/Source

Rename NavigationInitiatedByMainFrame to InitiatedByMainFrame
https://bugs.webkit.org/show_bug.cgi?id=174427

Rubber-stamped by Brady Eidson.

Source/WebCore:

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):

  • loader/FrameLoadRequest.cpp:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest):
(WebCore::FrameLoadRequest::initiatedByMainFrame):
(WebCore::FrameLoadRequest::navigationInitiatedByMainFrame): Deleted.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::shouldOpenExternalURLsPolicyToApply):
(WebCore::applyShouldOpenExternalURLsPolicyToNewDocumentLoader):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:
  • loader/FrameLoaderTypes.h:
  • loader/NavigationAction.h:

(WebCore::NavigationAction::initiatedByMainFrame):
(WebCore::NavigationAction::navigationInitiatedByMainFrame): Deleted.

  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledNavigation::ScheduledNavigation):
(WebCore::ScheduledNavigation::initiatedByMainFrame):
(WebCore::NavigationScheduler::scheduleLocationChange):
(WebCore::ScheduledNavigation::navigationInitiatedByMainFrame): Deleted.

  • page/ContextMenuController.cpp:

(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

Source/WebKit/ios:

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::start):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::loadURL):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchCreatePage):

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab):

10:06 AM Changeset in webkit [219403] by Matt Lewis
  • 33 edits
    4 deletes in trunk

Unreviewed, rolling out r219401.

This revision rolled out the previous patch, but after talking
with reviewer, a rebaseline is what was needed.Rolling back in
before rebaseline.

Reverted changeset:

"Unreviewed, rolling out r219379."
https://bugs.webkit.org/show_bug.cgi?id=174400
http://trac.webkit.org/changeset/219401

9:57 AM Changeset in webkit [219402] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

Update description of Secure Contexts experimental flag
https://bugs.webkit.org/show_bug.cgi?id=174401

Reviewed by Simon Fraser.

Change the description of the Secure Contexts experimental flag from "isSecureContext attribute"
to "Secure Contexts API".

  • Shared/WebPreferencesDefinitions.h:
9:44 AM Changeset in webkit [219401] by Matt Lewis
  • 33 edits
    1 copy
    3 adds in trunk

Unreviewed, rolling out r219379.

This revision caused a consistent failure in the test
fast/dom/Window/property-access-on-cached-window-after-frame-
removed.html.

Reverted changeset:

"Remove NAVIGATOR_HWCONCURRENCY"
https://bugs.webkit.org/show_bug.cgi?id=174400
http://trac.webkit.org/changeset/219379

9:24 AM Changeset in webkit [219400] by jmarcell@apple.com
  • 7 edits in branches/safari-604.1.31-branch/Source

Versioning.

9:14 AM Changeset in webkit [219399] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Media test gardening after r219253
https://bugs.webkit.org/show_bug.cgi?id=174254

Unreviewed test gardening.

video-cookie was fixed by r219252.
media/video-restricted-no-preload-metadata.html been passing consistently.

Patch by Charlie Turner <cturner@igalia.com> on 2017-07-12

  • platform/gtk/TestExpectations:
8:58 AM Changeset in webkit [219398] by jmarcell@apple.com
  • 1 copy in branches/safari-604.1.31-branch

New branch.

8:58 AM Changeset in webkit [219397] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.31

Tag Safari-604.1.31.

8:57 AM Changeset in webkit [219396] by commit-queue@webkit.org
  • 13 edits in trunk

Wrong radix used in Unicode Escape in invalid character error message
https://bugs.webkit.org/show_bug.cgi?id=174419

Patch by Tooru Fujisawa [:arai] <arai.unmht@gmail.com> on 2017-07-12
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-003-expected.txt:
  • web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-004-expected.txt:

Source/JavaScriptCore:

  • parser/Lexer.cpp:

(JSC::Lexer<T>::invalidCharacterMessage):

LayoutTests:

  • fast/loader/cache-encoding-expected.txt:
  • http/tests/preload/preload-encoding-expected.txt:
  • js/basic-strict-mode-expected.txt:
  • js/kde/parse-expected.txt:
  • loader/reload-subresource-when-type-changes-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-003-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-004-expected.txt:
8:47 AM Changeset in webkit [219395] by fred.wang@free.fr
  • 2 edits
    2 adds in trunk/LayoutTests/imported/w3c

Import test verifying combination of allow-top-navigation and allow-top-navigation-by-user-activation
https://bugs.webkit.org/show_bug.cgi?id=174351

Patch by Frederic Wang <fwang@igalia.com> on 2017-07-12
Reviewed by Youenn Fablet.

This imports a test to verify that the combination of the allow-top-navigation and
allow-top-navigation-by-user-activation flags is just treated as allow-top-navigation.
For now the expectation contains a parsing error message which will be removed when bug
171327 is fixed.

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:

Add the new test.

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html: Added.

This is imported from the W3C repository.

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3-expected.txt: Added.

The test passes, even if for now the 'allow-top-navigation-by-user-activation' triggers a
parsing error message in the console.

8:37 AM Changeset in webkit [219394] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Paginated mode: Infinite recursion in RenderTable::layout
https://bugs.webkit.org/show_bug.cgi?id=174413

Reviewed by Simon Fraser.

This patch is a workaround for avoiding infinite recursion when the table layout does not stabilize.
Apparently we leak some context (computed padding in this case) from the current to the subsequent layout.
The subsequent layouts always end up producing different line heights for some of the cells in the <thead>.
In paginated mode, when the section moves (<thead>, <tbody> etc) we call layout again recursively.
This could lead to infinite recursion for unstable table layout.

Unable to come up with a reduction yet.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):

  • rendering/RenderTable.h:
7:27 AM Changeset in webkit [219393] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

WebRTC: Incorrect sdpMLineIndex for video breaks Firefox interop
https://bugs.webkit.org/show_bug.cgi?id=173530

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-12
Reviewed by Alex Christensen.

Source/WebCore:

Test: webrtc/ice-candidate-sdpMLineIndex.html

Reading missing parameter from libwebrtc backend and setting it when firing the RTCIceCandidate event.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::disableICECandidateFiltering):
(WebCore::PeerConnectionBackend::newICECandidate):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::OnIceCandidate):

LayoutTests:

  • webrtc/ice-candidate-sdpMLineIndex-expected.txt: Added.
  • webrtc/ice-candidate-sdpMLineIndex.html: Added.
6:59 AM Changeset in webkit [219392] by zandobersek@gmail.com
  • 4 edits in trunk

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

Reviewed by Jiewen Tan.

Source/WebCore:

Implement the PKCS#8 export operation for EC keys for platforms that use
libgcrypt.

First, the ECParameters and the ECPrivateKey ASN.1 structures are created
and filled out accordingly. For the former, the appropriate object identifier
is written under the namedCurve element of the structure. For the latter, we
write out '1' under version, and eliminate the optional parameters element.
An libgcrypt EC context is then used to retrieve the private and public key
MPIs that are then written out under the privateKey and publicKey elements,
respectively.

After that, we can proceed to create and fill out the PrivateKeyInfo structure.
0 is written out under the version element, and the id-ecPublicKey object
identifier is written out under the privateKeyAlgorithm.algorithm element. This
doesn't strictly follow the specification, since the id-ecDH identifier should be
used for ECDH keys, but no test in WebKit or the web-platform-tests suite covers
this, so this specific detail should be revisited later.

Data of the previously-constructed ECParameters structure is retrieved and
written out under the privateKeyAlgorithm.parameters element. Similarly is done
for the ECPrivateKey structure, writing out its data under the privateKey
element. Finally, the optional attributes element of the PrivateKeyInfo
structure is eliminated, and the encoded data of this structure is retrieved and
returned.

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

  • crypto/gcrypt/CryptoKeyECGCrypt.cpp:

(WebCore::CryptoKeyEC::platformExportPkcs8):

LayoutTests:

  • platform/gtk/TestExpectations: Unskip the EC PKCS#8 export tests

that are now passing.

6:58 AM Changeset in webkit [219391] by zandobersek@gmail.com
  • 27 edits
    2 adds in trunk

[WPE] Use libepoxy
https://bugs.webkit.org/show_bug.cgi?id=172104

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/FindLibEpoxy.cmake: Added.
  • Source/cmake/OptionsWPE.cmake: Find libepoxy, don't search for

EGL or OpenGL ES anymore, and enable USE_LIBEPOXY by default.

Source/WebCore:

No new tests -- no changes in behavior.

Implement the proper libepoxy header inclusion for ports that enable it.

The library acts as a loading facility working on top of the system-provided
OpenGL and EGL libraries, with the headers providing a complete collection of
specification-defined OpenGL and EGL types, constants and entrypoints.

Support is added through the USE(LIBEPOXY) build guard. Note that this guard
isn't exclusive with USE(OPENGL), USE(OPENGL_ES_2) or USE(EGL), so the
USE(LIBEPOXY) condition is tested before those.

In case of OpenGL headers, the <epoxy/gl.h> header is included, and in
case of EGL headers, the <epoxy/egl.h> header. <epoxy/egl.h> includes
<epoxy/gl.h> on its own, so in some cases the inclusion of the latter is
omitted.

EpoxyShims.h header is added, doing a job similar to OpenGLESShims.h. The
EXT-suffixed GL entrypoints are redefined to the non-suffixed versions.
No suffixed constants are defined because those are defined by the libepoxy
headers to the well-known values.

  • CMakeLists.txt:
  • PlatformWPE.cmake:
  • platform/graphics/ANGLEWebKitBridge.h:
  • platform/graphics/EpoxyShims.h: Added.
  • platform/graphics/GLContext.cpp:

(WebCore::initializeOpenGLShimsIfNeeded):

  • platform/graphics/GraphicsContext3DPrivate.cpp:
  • platform/graphics/PlatformDisplay.cpp:
  • platform/graphics/cairo/CairoUtilities.cpp:
  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::create):

  • platform/graphics/cairo/ImageBufferCairo.cpp:
  • platform/graphics/egl/GLContextEGL.cpp:
  • platform/graphics/egl/GLContextEGLWPE.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
  • platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
  • platform/graphics/opengl/Extensions3DOpenGLES.cpp:
  • platform/graphics/opengl/Extensions3DOpenGLES.h:
  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
  • platform/graphics/opengl/TemporaryOpenGLSetting.cpp:
  • platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp:
  • platform/graphics/wpe/PlatformDisplayWPE.cpp:

Source/WebKit2:

  • PlatformWPE.cmake: Drop the EGL_INCLUDE_DIRS compilation flags.
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

Include <epoxy/gl.h> when compiling with libepoxy usage enabled.

Tools:

  • WebKitTestRunner/wpe/HeadlessViewBackend.h:

Include the <epoxy/egl.h> header, dropping the EGL and GLES2 inclusions.

4:26 AM Changeset in webkit [219390] by zandobersek@gmail.com
  • 2 edits
    3 adds
    2 deletes in trunk/Tools

[GTK][WPE] Align Jhbuild patches for GStreamer packages
https://bugs.webkit.org/show_bug.cgi?id=174363

Reviewed by Michael Catanzaro.

Align the patches we apply over Jhbuild-managed GStreamer dependency packages
between the GTK+ and WPE port. There's no reason for the two ports to apply
different patches over same versions of GStreamer releases.

This aligns the two ports on this specific issue. Next we'll look into
creating a single GStreamer-specific Jhbuild moduleset that will allow us
to keep these patches in a single place, avoiding duplicate files.

  • gtk/jhbuild.modules:
  • gtk/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch: Added.
  • gtk/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch: Renamed from Tools/gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch.
  • gtk/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch: Added.
  • wpe/patches/gstreamer-typefind-Only-push-a-CAPS-event-downstream-if-the-.patch: Removed.
3:58 AM Changeset in webkit [219389] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

ImageDecoder: Gifs with infinite animation only play once very often
https://bugs.webkit.org/show_bug.cgi?id=173403

Reviewed by Michael Catanzaro.

It doesn't always happen, it's easier to reproduce when loading big files from the network, but it also depends
on every file. The problem is that ImageFrameCache is caching the repetition count value always when the size is
already available. In the case of gif files, the loop count value can be at any point of the image stream, so
having the size available doesn't mean we also have the loop count. So, if the value is queried before it's
available, the default value is cached (repeat once) and then always used. We should clear the cached value when
new data is added to the decoder, like we do with other cached values that can change when more data is decoded.

  • platform/graphics/ImageFrameCache.cpp:

(WebCore::ImageFrameCache::clearMetadata): Clear m_repetitionCount.

3:56 AM Changeset in webkit [219388] by Carlos Garcia Campos
  • 1 edit
    6 adds in trunk/Source/WebKit2

Web Automation: upstream safaridriver's JavaScript atom implementations
https://bugs.webkit.org/show_bug.cgi?id=172060
<rdar://problem/32168187>

Reviewed by Brian Burg.

  • UIProcess/Automation/atoms/ElementAttribute.js: Added.
  • UIProcess/Automation/atoms/ElementDisplayed.js: Added.
  • UIProcess/Automation/atoms/FindNodes.js: Added.
  • UIProcess/Automation/atoms/FormElementClear.js: Added.
  • UIProcess/Automation/atoms/FormSubmit.js: Added.
3:12 AM Changeset in webkit [219387] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[SOUP] Do not use C linkage for functions using C++ features
https://bugs.webkit.org/show_bug.cgi?id=174392

Reviewed by Michael Catanzaro.

No new tests because there is no behavior change.

  • platform/network/soup/WebKitSoupRequestGeneric.h: Move G_END_DECLS

to leave functions which use C++ features outside of the block it
delimits.

3:11 AM Changeset in webkit [219386] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

Unreviewed, attempt to fix Windows build
https://bugs.webkit.org/show_bug.cgi?id=174366

  • wtf/FastMalloc.h:

(WTF::operator==):
(WTF::operator!=):
(WTF::FastAllocator::operator==): Deleted.
(WTF::FastAllocator::operator!=): Deleted.

12:02 AM Changeset in webkit [219385] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] Crashes in WebCore::PasteboardHelper::fillSelectionData when source file of drag is unavailable
https://bugs.webkit.org/show_bug.cgi?id=174161

Reviewed by Michael Catanzaro.

It seems selection data could contain an empty string, in which case gtk_selection_data_get_data() returns a
valid pointer, but gtk_selection_data_get_length() returns 0. When this happens we end up trying to split an
empty string resulting in an empty vector, but we unconditionally access the first element of the vector.

  • platform/gtk/PasteboardHelper.cpp:

(WebCore::selectionDataToUTF8String): Return a null string in case selection data length is 0.
(WebCore::PasteboardHelper::fillSelectionData): Return early if selection data length is 0, instead of checking
the selection data pointer.

Jul 11, 2017:

11:59 PM Changeset in webkit [219384] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK][WPE] Enable FILE_LOCK and implement lockFile and unlockFile
https://bugs.webkit.org/show_bug.cgi?id=174357

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/OptionsGTK.cmake: Use gio-unix unconditionally.

Source/WebCore:

Implement lockFile and unlockFile using flock().

  • PlatformWPE.cmake:
  • platform/glib/FileSystemGlib.cpp:

(WebCore::lockFile):
(WebCore::unlockFile):

Source/WTF:

  • wtf/Platform.h: Enable FILE_LOCK in GTK and WPE ports.
10:42 PM Changeset in webkit [219383] by Yusuke Suzuki
  • 17 edits in trunk/Source/WebCore

Use FastAllocator in STL containers
https://bugs.webkit.org/show_bug.cgi?id=174366

Rubber stamped by Sam Weinig.

This patch uses FastAllocator for STL containers including std::set and std::map.
STL can take a template parameter to be used as allocator for containers.
We prepare FastAllocator, which uses fastMalloc for allocation.
This allows us to use bmalloc (if supported) for STL containers which offers
functionalities that is not supported in WTF containers.

  • Modules/indexeddb/IDBKeyData.h:
  • Modules/indexeddb/server/IndexValueEntry.cpp:

(WebCore::IDBServer::IndexValueEntry::IndexValueEntry):
(WebCore::IDBServer::IndexValueEntry::Iterator::Iterator):
(WebCore::IDBServer::IndexValueEntry::reverseFind):

  • Modules/indexeddb/server/IndexValueEntry.h:
  • Modules/indexeddb/server/IndexValueStore.cpp:

(WebCore::IDBServer::IndexValueStore::lowestIteratorInRange):
(WebCore::IDBServer::IndexValueStore::highestReverseIteratorInRange):
(WebCore::IDBServer::IndexValueStore::Iterator::Iterator):

  • Modules/indexeddb/server/IndexValueStore.h:
  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreCleared):

  • Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::replaceKeyValueStore):
(WebCore::IDBServer::MemoryObjectStore::addRecord):
(WebCore::IDBServer::MemoryObjectStore::updateCursorsForPutRecord):

  • Modules/indexeddb/server/MemoryObjectStore.h:

(WebCore::IDBServer::MemoryObjectStore::orderedKeys):

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::keyAdded):
(WebCore::IDBServer::MemoryObjectStoreCursor::setFirstInRemainingRange):
(WebCore::IDBServer::MemoryObjectStoreCursor::setForwardIteratorFromRemainingRange):
(WebCore::IDBServer::MemoryObjectStoreCursor::setReverseIteratorFromRemainingRange):
(WebCore::IDBServer::MemoryObjectStoreCursor::incrementForwardIterator):
(WebCore::IDBServer::MemoryObjectStoreCursor::incrementReverseIterator):

  • Modules/indexeddb/server/MemoryObjectStoreCursor.h:
  • Modules/mediasource/SampleMap.h:
  • page/WheelEventTestTrigger.cpp:

(WebCore::WheelEventTestTrigger::deferTestsForReason):
(WebCore::dumpState):

  • page/WheelEventTestTrigger.h:
  • platform/graphics/cv/VideoTextureCopierCV.cpp:

(WebCore::enumToStringMap):

  • rendering/OrderIterator.h:
9:14 PM Changeset in webkit [219382] by pvollan@apple.com
  • 4 edits in trunk/Source/WebCore

[Win] Build error when building WebKit.dll from WebKit.proj project file.
https://bugs.webkit.org/show_bug.cgi?id=174410

Reviewed by Brent Fulgham.

Copy required header files to forwarding headers folder.

Source/WebCore:

  • PlatformWin.cmake:

Source/WebCore/PAL:

  • pal/PlatformWin.cmake:
8:00 PM Changeset in webkit [219381] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Another build fix.

  • public/v3/components/chart-pane-base.js:

(ChartPaneBase.prototype._updateCommitLogViewer):

7:38 PM Changeset in webkit [219380] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix. It looks like the code here is racy.

  • public/v3/components/chart-pane-base.js:

(ChartPaneBase.prototype.configure):
(ChartPaneBase.prototype.setOpenRepository):

7:18 PM Changeset in webkit [219379] by dino@apple.com
  • 31 edits
    4 deletes in trunk

Remove NAVIGATOR_HWCONCURRENCY
https://bugs.webkit.org/show_bug.cgi?id=174400

.:

Reviewed by Sam Weinig.

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

Reviewed by Sam Weinig.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Reviewed by Sam Weinig.

  • Configurations/FeatureDefines.xcconfig:
  • WebCore.xcodeproj/project.pbxproj:
  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::hardwareConcurrency): Deleted.

  • page/NavigatorBase.h:
  • page/NavigatorConcurrentHardware.idl: Removed.

Source/WebCore/PAL:

Reviewed by Sam Weinig.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Reviewed by Sam Weinig.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

Reviewed by Sam Weinig.

  • wtf/FeatureDefines.h:

Tools:

Reviewed by Sam Weinig.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
5:25 PM Changeset in webkit [219378] by commit-queue@webkit.org
  • 6 edits
    1 copy in trunk

WKWindowFeatures needs to expose scrollbar, fullscreen, and dialog configuration properties
https://bugs.webkit.org/show_bug.cgi?id=174239

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2017-07-11
Reviewed by Brady Eidson.

Source/WebKit2:

Add a new private header to expose getters for window feature properties already available
in the TFB APIWindowFeatures class. These properties are necessary for Safari to adopt more
modern API.

  • UIProcess/API/Cocoa/WKWindowFeatures.mm:

(-[WKWindowFeatures _locationBarVisibility]):
(-[WKWindowFeatures _scrollbarsVisibility]):
(-[WKWindowFeatures _fullscreenDisplay]):
(-[WKWindowFeatures _dialogDisplay]):

  • UIProcess/API/Cocoa/WKWindowFeaturesInternal.h: Expose some window features as read-only

properties.

  • UIProcess/API/Cocoa/WKWindowFeaturesPrivate.h:
  • WebKit2.xcodeproj/project.pbxproj:

Tools:

Create windows with specific features set and make sure those are properly reflected in the
WKWindowFeatures object.

  • TestWebKitAPI/Tests/WebKit2Cocoa/OpenAndCloseWindow.mm:

(resetToConsistentState):
(-[CheckWindowFeaturesUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TEST):

5:25 PM Changeset in webkit [219377] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

RealtimeOutgoingAudioSource should not push more audio data if the WebRTC thread is not able to process it
https://bugs.webkit.org/show_bug.cgi?id=174383

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

This patch adds support to check for pending-processing audio data.
If the amount of audio data is bigger than a high water mark of 0.5 seconds,
we stop pushing new audio data until buffered audio data is lower than a low water mark of 0.1 seconds.
Patch is tested by adding breakpoints to trigger the high water mark, verifying that low water mark is triggered
and receiving audio is fine on the other connection endpoint.

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp:

(WebCore::RealtimeOutgoingAudioSource::isReachingBufferedAudioDataHighLimit):
(WebCore::RealtimeOutgoingAudioSource::isReachingBufferedAudioDataLowLimit):
(WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable):

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.h:
5:24 PM Changeset in webkit [219376] by Jonathan Bedard
  • 2 edits in trunk/Tools

Do not duplicate files when deleting directories with svn 1.9
https://bugs.webkit.org/show_bug.cgi?id=174339
<rdar://problem/33226781>

Reviewed by David Kilzer.

  • Scripts/svn-create-patch:

(diffOptionsForFile): No longer pass -N option, since this does not work in SVN 1.9.4.
(generateFileList): Determine which files are deleted because they are part of a
directory being deleted.

5:23 PM Changeset in webkit [219375] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Correct a typo in the .eslintrc
https://bugs.webkit.org/show_bug.cgi?id=174389

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-07-11
Reviewed by Matt Baker.

  • .eslintrc:
5:23 PM Changeset in webkit [219374] by Chris Dumez
  • 4 edits in trunk/Source/WebKit2

Avoid duplicating default parameter values in [WKWebsiteDataStore _resourceLoadStatisticsResetToConsistentState]
https://bugs.webkit.org/show_bug.cgi?id=174402

Reviewed by Brent Fulgham.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _resourceLoadStatisticsResetToConsistentState]):

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
(WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData):
(WebKit::WebResourceLoadStatisticsStore::performDailyTasks):
(WebKit::WebResourceLoadStatisticsStore::setTimeToLiveUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setTimeToLiveCookiePartitionFree):
(WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweenDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsStore::setGrandfatheringTime):
(WebKit::WebResourceLoadStatisticsStore::shouldRemoveDataRecords):
(WebKit::WebResourceLoadStatisticsStore::shouldPartitionCookies):
(WebKit::WebResourceLoadStatisticsStore::hasStatisticsExpired):
(WebKit::WebResourceLoadStatisticsStore::setMaxStatisticsEntries):
(WebKit::WebResourceLoadStatisticsStore::setPruneEntriesDownTo):
(WebKit::WebResourceLoadStatisticsStore::pruneStatisticsIfNeeded):
(WebKit::WebResourceLoadStatisticsStore::resetParametersToDefaultValues):

  • UIProcess/WebResourceLoadStatisticsStore.h:
4:58 PM Changeset in webkit [219373] by dino@apple.com
  • 20 edits
    1 add in trunk

Rolling out r219372.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • WebCore.xcodeproj/project.pbxproj:
  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::hardwareConcurrency):

  • page/NavigatorBase.h:
  • page/NavigatorConcurrentHardware.idl: Added.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
4:19 PM Changeset in webkit [219372] by dino@apple.com
  • 20 edits
    1 delete in trunk

Remove NAVIGATOR_HWCONCURRENCY
https://bugs.webkit.org/show_bug.cgi?id=174400

.:

Reviewed by Sam Weinig.

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

Reviewed by Sam Weinig.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Reviewed by Sam Weinig.

  • Configurations/FeatureDefines.xcconfig:
  • WebCore.xcodeproj/project.pbxproj:
  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::hardwareConcurrency): Deleted.

  • page/NavigatorBase.h:
  • page/NavigatorConcurrentHardware.idl: Removed.

Source/WebCore/PAL:

Reviewed by Sam Weinig.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Reviewed by Sam Weinig.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

Reviewed by Sam Weinig.

  • wtf/FeatureDefines.h:

Tools:

Reviewed by Sam Weinig.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
4:11 PM Changeset in webkit [219371] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

[WebCrypto] CryptoKeyECMac::Custom OpenSSL tag is actually tagged type [1]
https://bugs.webkit.org/show_bug.cgi?id=174382
<rdar://problem/33244871>

Reviewed by Brent Fulgham.

No change of behaviour.

  • crypto/mac/CryptoKeyECMac.cpp:

(WebCore::CryptoKeyEC::platformImportPkcs8):
(WebCore::CryptoKeyEC::platformExportPkcs8):
Replace CustomECParameters with TaggedType1 according to X.690(08/2015) section 8.14:
https://www.itu.int/rec/T-REC-X.690-201508-I/en
and RFC 5915 Appendix A:
http://www.ietf.org/rfc/rfc5915.txt.

3:54 PM Changeset in webkit [219370] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Show the roots built by perf try bots on results page
https://bugs.webkit.org/show_bug.cgi?id=174305

Reviewed by Joseph Pecoraro.

Show build products created by a perf try bots so that we can download them for local testing.

  • public/v3/components/test-group-revision-table.js:

(TestGroupRevisionTable.prototype._renderTable): Find the set of repositories for which a patch is applied.
Show build products for all commit sets for such a repository since when WebKit is built with a patch in
one configuration, the other configuration also needs to be built for consistency.
(TestGroupRevisionTable.prototype._buildCommitCell): Added the hyperlink for build products.
(TestGroupRevisionTable.prototype._buildFileInfo): Takes a string to override the file's label. Since all
build products made by bots tend to have the same filename, we show the label of "Build product" instead.
(TestGroupRevisionTable.prototype._mergeCellsWithSameCommitsAcrossRows): Fixed a bug that any entry with
a patch wasn't getting merged since it was comparing against the result commit set, which does not contain
the patch (only requested commit set contains a patch).

3:48 PM Changeset in webkit [219369] by dino@apple.com
  • 2 edits in trunk/Source/WebKit2

Viewport fit experimental feature should be always on by default
https://bugs.webkit.org/show_bug.cgi?id=174398
<rdar://problem/33248920>

Reviewed by Simon Fraser.

Even though this is experimental, it should be enabled by default, and
not follow the value of DEFAULT_EXPERIMENTAL_FEATURES_ENABLED.

  • Shared/WebPreferencesDefinitions.h:
3:33 PM Changeset in webkit [219368] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

REGRESSION(r219332): [GTK] 9 new failures on fast/forms spinbutton related tests.
https://bugs.webkit.org/show_bug.cgi?id=174395

Unreviewed GTK gardening.

  • platform/gtk/TestExpectations: Mark the new failures. Further investigation pending.
3:28 PM Changeset in webkit [219367] by sbarati@apple.com
  • 1 edit
    2 deletes in trunk/Source/JavaScriptCore

remove the empty JavaScriptCore/wasm/js/WebAssemblyFunctionCell.* files
https://bugs.webkit.org/show_bug.cgi?id=174397

Rubber stamped by David Kilzer.

  • wasm/js/WebAssemblyFunctionCell.cpp: Removed.
  • wasm/js/WebAssemblyFunctionCell.h: Removed.
3:27 PM Changeset in webkit [219366] by Adrian Perez de Castro
  • 3 edits in trunk/Source/WebKit2

Fix typo: ContentRuleListStore::nonLegacyDdefaultStore()
https://bugs.webkit.org/show_bug.cgi?id=174387

Reviewed by Michael Catanzaro.

Rename nonLegacyDdefaultStore() to nonLegacyDefaultStore().

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::ContentRuleListStore::nonLegacyDefaultStore):
(API::ContentRuleListStore::defaultStore):

  • UIProcess/API/APIContentRuleListStore.h:
2:46 PM Changeset in webkit [219365] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Simplify primary domain lambda captures in WebResourceLoadStatisticsStore
https://bugs.webkit.org/show_bug.cgi?id=174381

Reviewed by Brent Fulgham.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::isolatedPrimaryDomain):
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::clearUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setLastSeen):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::isGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo):
(WebKit::primaryDomain): Deleted.

2:33 PM Changeset in webkit [219364] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION(r219045): The <body> element does not get repainted when its background image finishes decoding
https://bugs.webkit.org/show_bug.cgi?id=174376

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-07-11
Reviewed by Simon Fraser.

Source/WebCore:

When adding a CachedImageClient to CachedImage::m_pendingImageDrawingClients
and the CachedImageClient is not one of the CachedImage::m_clients, we
should cancel the repaint optimization in CachedImage::imageFrameAvailable().
This can be done by adding all the CachedImage::m_clients to CachedImage::
m_pendingImageDrawingClients.

Test: fast/images/async-image-body-background-image.html

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::addPendingImageDrawingClient):

LayoutTests:

  • fast/images/async-image-body-background-image-expected.html: Added.
  • fast/images/async-image-body-background-image.html: Added.
2:09 PM Changeset in webkit [219363] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed, fix Windows build after r219355.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::addCrossOriginWindowPropertyNames):
(WebCore::addCrossOriginWindowOwnPropertyNames):
(WebCore::JSDOMWindow::getOwnPropertyNames):
(WebCore::addCrossOriginPropertyNames): Deleted.
(WebCore::addCrossOriginOwnPropertyNames): Deleted.

  • bindings/js/JSLocationCustom.cpp:

(WebCore::addCrossOriginLocationPropertyNames):
(WebCore::addCrossOriginLocationOwnPropertyNames):
(WebCore::JSLocation::getOwnPropertyNames):
(WebCore::addCrossOriginPropertyNames): Deleted.
(WebCore::addCrossOriginOwnPropertyNames): Deleted.

2:07 PM Changeset in webkit [219362] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

We should do ICE candidate filtering at the Document level
https://bugs.webkit.org/show_bug.cgi?id=173861
<rdar://problem/33122058>

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-11

  • resources/testharnessreport.js: Not calling setICECandidateFiltering if not defined.
2:07 PM Changeset in webkit [219361] by weinig@apple.com
  • 28 edits
    4 adds
    2 deletes in trunk

[WebIDL] Convert MutationCallback to be a normal generate callback
https://bugs.webkit.org/show_bug.cgi?id=174140

Reviewed by Chris Dumez.

Source/WebCore:

To make this work more nicely, I:

  • Added the ability to for non-nullable interfaces in sequences to be passed via a Ref<> rather than a RefPtr<> as a parameter to a callback function. (e.g. callback MyCallback = void (sequence<Foo> foos) will now have the signature, CallbackResult<void> handleEvent(const Vector<Ref<Foo>>&) rather than CallbackResult<void> handleEvent(const Vector<RefPtr<Foo>>&).
  • Added a new extended attribute for callback functions called [CallbackNeedsCanInvoke] that adds a virtual function called canInvoke() to the generated callback. All it does is forward to ActiveDOMCallback's canInvokeCallback, but it allows the implementation to get to it. We may one day want to move the inheritance of ActiveDOMCallback from the generated source to the base class.
  • Added a new extended attribute for callback functions called [CallbackThisObject=Type] which allows you to specify that the callback needs a this object in addition to its arguments. When specified, the first argument of the C++ implementation function will now correspond to the this object, with the remaining arguments shifted over one.
  • DerivedSources.make:

Add MutationCallback.

  • WebCore.xcodeproj/project.pbxproj:

Remove non-generated JSMutationCallback.cpp, and add generated JSMutationCallback.cpp.

  • Modules/mediastream/MediaDevicesRequest.cpp:

(WebCore::MediaDevicesRequest::filterDeviceList):
(WebCore::MediaDevicesRequest::start):

  • Modules/mediastream/MediaDevicesRequest.h:

Switch to using Ref.

  • bindings/IDLTypes.h:

Add InnerParameterType and NullableInnerParameterType type hooks
and specialize wrappers to use Ref for InnerParameterType, and RefPtr
for NullableInnerParameterType.

  • bindings/js/JSCallbackData.cpp:
  • bindings/js/JSCallbackData.h:

Add support for passing a this object.

  • bindings/js/JSMutationCallback.cpp: Removed.
  • bindings/js/JSMutationCallback.h: Removed.

Remove custom callback code.

  • bindings/js/JSMutationObserverCustom.cpp:

(WebCore::constructJSMutationObserver): Deleted.
Remove no longer needed custom constructor.

  • bindings/scripts/CodeGenerator.pm:

(ParseType):
Add helper to parse a type and cache the result.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
Add support for [CallbackNeedsCanInvoke] and [CallbackThisObject]. When [CallbackThisObject]
is not specified, use jsUndefined() as the this object as specified by WebIDL.

  • bindings/scripts/IDLAttributes.json:

Add [CallbackNeedsCanInvoke] and [CallbackThisObject].

  • bindings/scripts/IDLParser.pm:

(ParseType):
Add entry point to parse a single type.

  • css/FontFaceSet.h:

Switch to using Ref.

  • dom/MutationCallback.h:

Update signatures.

  • dom/MutationCallback.idl: Added.


  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::canDeliver):
(WebCore::MutationObserver::deliver):
Switch to new signatures.

  • dom/MutationObserver.idl:

Remove CustomConstructor.

  • page/IntersectionObserverCallback.h:

Switch to using Ref.

  • bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithThisObject.cpp: Added.
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithThisObject.h: Added.
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp:
  • bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
  • bindings/scripts/test/JS/JSTestCallbackInterface.h:
  • bindings/scripts/test/JS/JSTestVoidCallbackFunction.cpp:

Add / update bindings tests.

LayoutTests:

  • fast/dom/MutationObserver/mutation-observer-constructor-expected.txt:

Update results for standard error messages.

1:56 PM Changeset in webkit [219360] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

RenderImage should not add itself as a RelevantRepaintedObject if its image frame is being decoded
https://bugs.webkit.org/show_bug.cgi?id=174336

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-07-11
Reviewed by Simon Fraser.

Since nothing will be drawn till the image frame finishes decoding we should
treat returning ImageDrawResult::DidRequestDecoding from BitmapImage::draw
the same as we do when the image is still loading.

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderImage.h:
1:46 PM Changeset in webkit [219359] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WebRTC] Hanging under LibWebRTCMediaEndpoint::getStats
https://bugs.webkit.org/show_bug.cgi?id=174377

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

No change of behavior.
Moving calls to libwebrtc getStats in the signalling thread since doing it in the main thread
would block the main thread until the signalling thread is ready to handle getStats.
Reducing stat logging since this may be too much for some devices.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::getStats):
(WebCore::LibWebRTCMediaEndpoint::gatherStatsForLogging):
(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):
(WebCore::LibWebRTCMediaEndpoint::startLoggingStats):

1:42 PM Changeset in webkit [219358] by Lucas Forschler
  • 2 edits in trunk/Tools

Teach build workers to fetch archives from S3.
https://bugs.webkit.org/show_bug.cgi?id=174384

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(DownloadBuiltProduct):

1:38 PM Changeset in webkit [219357] by timothy@hatcher.name
  • 2 edits in trunk/Source/WebKit2

Fix a build failure in WebDragClient when !PLATFORM(COCOA) && !PLATFORM(GTK).
https://bugs.webkit.org/show_bug.cgi?id=174372

Reviewed by Beth Dakin.

  • WebProcess/WebCoreSupport/WebDragClient.cpp:

(WebKit::WebDragClient::didConcludeEditDrag): Added empty method.

1:21 PM Changeset in webkit [219356] by Michael Catanzaro
  • 1 edit
    3 deletes in trunk/Source/WebCore

Remove unused OpenGL files
https://bugs.webkit.org/show_bug.cgi?id=174371

Reviewed by Timothy Hatcher.

  • platform/graphics/opengl/GLPlatformContext.cpp: Removed.
  • platform/graphics/opengl/GLPlatformContext.h: Removed.
  • platform/graphics/opengl/GLPlatformSurface.h: Removed.
1:11 PM Changeset in webkit [219355] by Chris Dumez
  • 5 edits in trunk

Window's OwnPropertyKeys? is wrong for cross origin windows
https://bugs.webkit.org/show_bug.cgi?id=174364
<rdar://problem/33238056>

Reviewed by Brent Fulgham.

Source/WebCore:

Window's OwnPropertyKeys? should not list descendant frame names
when the window is cross-origin:

This aligns our behavior with Firefox and Chrome.

No new tests, updated existing test.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::addCrossOriginPropertyNames):
(WebCore::addCrossOriginOwnPropertyNames):
(WebCore::JSDOMWindow::getOwnPropertyNames):

LayoutTests:

Update test to reflect behavior change. I verified that the test is passing in Firefox.
The test fails in Chrome because its does not expose frames indexes on the Window, and
it is incorrectly listing "assign" on Location.

  • http/tests/security/cross-frame-access-enumeration.html:
12:31 PM Changeset in webkit [219354] by jmarcell@apple.com
  • 17 edits in tags/Safari-604.1.30/Source

Cherry-pick r219340. rdar://problem/33030639

12:25 PM Changeset in webkit [219353] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] editing/input new passes since r211277
https://bugs.webkit.org/show_bug.cgi?id=160119

Unreviewed test gardening.

Patch by Charlie Turner <cturner@igalia.com> on 2017-07-11

  • platform/gtk/TestExpectations:
11:57 AM Changeset in webkit [219352] by Brent Fulgham
  • 9 edits
    2 adds in trunk

Reset cookie partitioning state after network process crashes
https://bugs.webkit.org/show_bug.cgi?id=174306
<rdar://problem/33171605>

Reviewed by Chris Dumez.

Source/WebKit2:

  • UIProcess/Storage/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::fireShouldPartitionCookiesHandler): Move cookie
partioning state code to helper function.
(WebKit::ResourceLoadStatisticsStore::resetPartitionCookiesState): Added.

  • UIProcess/Storage/ResourceLoadStatisticsStore.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess): Inform the statistics store that
the network process crashed.
(WebKit::WebProcessPool::terminateNetworkProcess): Mark network process as crashed.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::networkProcessDidCrash): Reset the cookie
partitioning state after a crash.

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::notifyResourceLoadStatisticsNetworkProcessDidCrash): Relay
information to the statistics store.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

LayoutTests:

  • http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-network-process-crash-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-network-process-crash.html: Added.
  • http/tests/loading/resourceLoadStatistics/resources/get-cookies.php:
  • http/tests/loading/resourceLoadStatistics/resources/set-cookie.php:
11:48 AM Changeset in webkit [219351] by Lucas Forschler
  • 2 edits in trunk/Tools

Configure buildbot to transfer all archives to S3.
Previously this was Mac only, but it's time to expand!
https://bugs.webkit.org/show_bug.cgi?id=174378

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(BuildFactory.init):

11:37 AM Changeset in webkit [219350] by jmarcell@apple.com
  • 7 edits in trunk/Source

Versioning.

11:30 AM Changeset in webkit [219349] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION(r219298): [GTK] imported/w3c/IndexedDB-private-browsing/idbfactory_open.html is crashing occassionaly
https://bugs.webkit.org/show_bug.cgi?id=174354

Unreviewed test gardening.

Patch by Charlie Turner <cturner@igalia.com> on 2017-07-11

  • platform/gtk/TestExpectations:
11:23 AM Changeset in webkit [219348] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.30

Tag Safari-604.1.30.

11:20 AM Changeset in webkit [219347] by Yusuke Suzuki
  • 4 edits in trunk/Source/WTF

[WTF] Drop unnecessary AtomicString constructor since we have constexpr hash function
https://bugs.webkit.org/show_bug.cgi?id=174347

Reviewed by Alex Christensen.

Previously, we calculate hash value in perl script and generate source code with that value.
This AtomicString constructor takes this pre-calculated hash value to efficiently construct
itself. But now, we have constexpr hash function, then we do not need to specify hash value
directly in this way. Thus we drop this functionality.

  • wtf/text/AtomicString.h:
  • wtf/text/AtomicStringImpl.cpp:

(WTF::HashAndCharactersTranslator::hash): Deleted.
(WTF::HashAndCharactersTranslator::equal): Deleted.
(WTF::HashAndCharactersTranslator::translate): Deleted.

  • wtf/text/AtomicStringImpl.h:

(WTF::AtomicStringImpl::add):

11:13 AM Changeset in webkit [219346] by timothy@hatcher.name
  • 2 edits in trunk/Source/WebKit2

Fix broken build when !ENABLE(INDEXED_DATABASE)
https://bugs.webkit.org/show_bug.cgi?id=174370

Reviewed by Alex Christensen.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::pageAddedToProcess):

11:10 AM Changeset in webkit [219345] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Some resource load statistics tests added in r212183 also fail.
https://bugs.webkit.org/show_bug.cgi?id=168171

Unreviewed test gardening.

Patch by Charlie Turner <cturner@igalia.com> on 2017-07-11

  • platform/gtk/TestExpectations:
11:08 AM Changeset in webkit [219344] by clopez@igalia.com
  • 2 edits in trunk/Source/WebKit2

Changing the web page muted state for playing audio should not disable other tabs capture
https://bugs.webkit.org/show_bug.cgi?id=174349

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-11

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::activateMediaStreamCaptureInPage): Fixes non MEDIA_STREAM builds.

11:07 AM Changeset in webkit [219343] by timothy@hatcher.name
  • 8 edits in trunk/Source/WebCore

Fix broken build when ENABLE_VIDEO is disabled.
https://bugs.webkit.org/show_bug.cgi?id=174368

Reviewed by Alex Christensen.

  • dom/Document.cpp:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::texImage2D):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLRenderingContextBase.idl:
  • testing/Internals.cpp:

(WebCore::Internals::mediaResponseSources):
(WebCore::Internals::mediaResponseContentRanges):

  • testing/Internals.h:
  • testing/Internals.idl:
11:01 AM Changeset in webkit [219342] by commit-queue@webkit.org
  • 9 edits in trunk

elementFromPoint() should consider x and y to be in client (layout viewport) coordinates
https://bugs.webkit.org/show_bug.cgi?id=172019

Patch by Ali Juma <ajuma@chromium.org> on 2017-07-11
Reviewed by Simon Fraser.

Source/WebCore:

When visual viewports are enabled, this makes TreeScope::nodeFromPoint consider its
input to be in client coordinates, and clips this input to the layout viewport. This change
affects the behavior of document.elementFromPoint() and document.caretRangeFromPoint.

No new tests. Modified an existing test, and made a previously-failing test pass on ios.

  • dom/TreeScope.cpp:

(WebCore::TreeScope::nodeFromPoint):

  • page/FrameView.cpp:

(WebCore::FrameView::layoutViewportToAbsoluteRect):
(WebCore::FrameView::layoutViewportToAbsolutePoint):
(WebCore::FrameView::clientToLayoutViewportPoint):

  • page/FrameView.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hitTest):

LayoutTests:

  • fast/dom/elementFromPoint-scaled-scrolled-expected.txt: Updated.
  • fast/dom/elementFromPoint-scaled-scrolled.html: Updated.
  • platform/ios/TestExpectations:
10:58 AM Changeset in webkit [219341] by timothy@hatcher.name
  • 2 edits in trunk/Source/WebCore

Broken build when !USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
https://bugs.webkit.org/show_bug.cgi?id=174369

Reviewed by Alex Christensen.

  • dom/ScriptedAnimationController.h: Include PlatformScreen.h.
10:55 AM Changeset in webkit [219340] by wenson_hsieh@apple.com
  • 17 edits in trunk/Source

Address post-review feedback after http://trac.webkit.org/r219310
https://bugs.webkit.org/show_bug.cgi?id=174300
<rdar://problem/33030639>

Reviewed by Simon Fraser.

Source/WebCore:

Removes pan-gesture-related plumbing introduced in r219310 that is no longer necessary.

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::scrollingTreeNodeWillStartPanGesture):
(WebCore::ScrollingTree::scrollingTreeNodeDidEndPanGesture): Deleted.

Source/WebKit2:

Removes plumbing introduced in r219310 for telling WKContentView when the user has finished panning or zooming.
This was previously used to reset allowing asynchronous touch event after preventing the web touch events
gesture recognizer from firing.

However, a far simpler (and much less fragile) solution is to just set _canSendTouchEventsAsynchronously to NO
at the beginning of the gesture, before the first touchstart event is dispatched. This way, we always ensure
that _canSendTouchEventsAsynchronously is NO when beginning to process a touch event. This approach is correct
because the only place where we query _canSendTouchEventsAsynchronously is in -_webTouchEventsRecognized:, where
(when we are beginning a new gesture) we are guaranteed that -gestureRecognizer:shouldIgnoreWebTouchWithEvent:
has already been called and _canSendTouchEventsAsynchronously is NO.

Confirmed that the LayoutTests added in r219310 still pass.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView scrollViewDidEndDragging:willDecelerate:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):

  • UIProcess/PageClient.h:
  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/Scrolling/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::scrollingTreeNodeDidEndPanGesture): Deleted.

  • UIProcess/Scrolling/RemoteScrollingTree.h:
  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(-[WKOverflowScrollViewDelegate scrollViewDidEndDragging:willDecelerate:]):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::overflowScrollViewDidEndPanGesture): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::overflowScrollViewDidEndPanGesture): Deleted.

  • UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidEndPanGesture): Deleted.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:shouldIgnoreWebTouchWithEvent:]):
(-[WKContentView scrollViewDidEndPanOrPinchGesture]): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::overflowScrollViewDidEndPanGesture): Deleted.

10:45 AM Changeset in webkit [219339] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] compositing/video/poster.html passing since r218320
https://bugs.webkit.org/show_bug.cgi?id=169918

Unreviewed test gardening.

Patch by Charlie Turner <cturner@igalia.com> on 2017-07-11

  • platform/gtk/TestExpectations:
10:02 AM Changeset in webkit [219338] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Reduce URL size
https://bugs.webkit.org/show_bug.cgi?id=174319

Patch by Alex Christensen <achristensen@webkit.org> on 2017-07-11
Reviewed by Andreas Kling.

m_fragmentEnd is redundant information. If a URL is valid, then it is always m_string.length().
If a URL is not valid, then it is always 0. Rather than storing additional information,
deduce the fragment end from the validity of the URL and the String's length.

No change in behavior. This reduces sizeof(URL) from 56 to 48 and reduces operations when parsing.

  • platform/URL.cpp:

(WebCore::URL::invalidate):
(WebCore::URL::fragmentIdentifier):
(WebCore::URL::hasFragmentIdentifier):
(WebCore::URL::removeFragmentIdentifier):

  • platform/URL.h:

(WebCore::URL::encode):
(WebCore::URL::decode):
(WebCore::URL::hasFragment):

  • platform/URLParser.cpp:

(WebCore::URLParser::urlLengthUntilPart):
(WebCore::URLParser::copyURLPartsUntil):
(WebCore::URLParser::parse):
(WebCore::URLParser::allValuesEqual):
(WebCore::URLParser::internalValuesConsistent):

9:51 AM Changeset in webkit [219337] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

Unreviewed clean-up after r219323

Simplify algorithm slightly based on a suggestion Chris Dumez made in the review.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::pruneResources): Don't create a second variable to track the pruning operation.

9:48 AM Changeset in webkit [219336] by commit-queue@webkit.org
  • 11 edits in trunk/Source

SharedBuffer::size should return a size_t
https://bugs.webkit.org/show_bug.cgi?id=174328

Patch by Alex Christensen <achristensen@webkit.org> on 2017-07-11
Reviewed by Andreas Kling.

Source/WebCore:

No change in behaviour.

  • html/FTPDirectoryDocument.cpp:

(WebCore::createTemplateDocumentData):

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::handleProvisionalLoadFailure):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::loadDataURL):

  • loader/ResourceLoader.h:
  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::store):

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::script):

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::tryCreateArrayBuffer):

  • platform/SharedBuffer.h:

Source/WebKit2:

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::writeEncoderToDisk):

9:43 AM Changeset in webkit [219335] by pvollan@apple.com
  • 4 edits in trunk/Source/WebCore

[Win] Build error when building WebCore from WebCore.proj project file.
https://bugs.webkit.org/show_bug.cgi?id=174330

Reviewed by Brent Fulgham.

Source/WebCore:

The CMake variable PAL_DIR should be set in the project file.

  • WebCore.vcxproj/WebCore.proj:

Source/WebCore/PAL:

CMAKE_BINARY_DIR is needed in the include list in order to find 'cmakeconfig.h'.

  • pal/CMakeLists.txt:
9:30 AM Changeset in webkit [219334] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

[SVG] Leak in SVGAnimatedListPropertyTearOff
https://bugs.webkit.org/show_bug.cgi?id=172545

Source/WebCore:

Reviewed by Said Abou-Hallawa.

SVGAnimatedListPropertyTearOff maintains a vector m_wrappers with references to
SVGPropertyTraits<PropertyType>::ListItemTearOff. Apart from that SVGPropertyTearOff has a
reference to SVGAnimatedProperty.

When SVGListProperty::getItemValuesAndWrappers() is called, it creates a
SVGPropertyTraits<PropertyType>::ListItemTearOff pointing to the same SVGAnimatedProperty (a
SVGAnimatedListPropertyTearOff) which stores the m_wrappers vector where the ListItemTearOff
is going to be added to. This effectively creates a reference cycle between the
SVGAnimatedListPropertyTearOff and all the ListItemTearOff it stores in m_wrappers.

We should detach those wrappers in propertyWillBeDeleted() in order to break the cycle.

  • svg/properties/SVGAnimatedListPropertyTearOff.h:

LayoutTests:

Reviewed by Darin Adler.

  • svg/animations/animation-leak-list-property-instances-expected.txt: Added.
  • svg/animations/animation-leak-list-property-instances.html: Added.
9:15 AM Changeset in webkit [219333] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Node Sidebar - Improve wording for Potential Custom Element lacking a Custom definition
https://bugs.webkit.org/show_bug.cgi?id=174346

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-07-11
Reviewed by Matt Baker.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WebInspector.DOMNodeDetailsSidebarPanel.prototype._customElementState):
The text "Waiting to be upgraded" is poor. Any non-standard element with dashes
in the name is considered custom, but does not need to be upgraded. Lets use
different wording to indicate that it is detected as custom, and lacks a
specific Custom Element definition.

9:03 AM WebKitGTK/2.16.x edited by Michael Catanzaro
Propose r219332 (diff)
8:34 AM Changeset in webkit [219332] by clopez@igalia.com
  • 6 edits
    3 adds in trunk

[GTK] Spin buttons on input type number appear over the value itself for small widths
https://bugs.webkit.org/show_bug.cgi?id=173572

Reviewed by Carlos Garcia Campos.

Source/WebCore:

When drawing the spin buttons, override the width of the input
element to increment it with the width of the spin button.
This ensures that we don't end up covering the input values with
the spin buttons.

Do this also for user controlled styles, because most web authors
won't test how their site renders on WebKitGTK+, and they will
assume spin buttons in the order of 13 pixels wide (that is what
most browsers use), but the GTK+ spin button is much wider (66 pixels).

Test: platform/gtk/fast/forms/number/number-size-spinbutton-nocover.html

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::adjustTextFieldStyle): Call the theme's adjustTextFieldStyle() also for user controlled styles.
(WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):

LayoutTests:

  • fast/forms/number/number-size-expected.txt:
  • fast/forms/number/number-size.html: Obtain the size of the spinbutton by inspecting the shadow dom (is more reliable) and make the test for user controlled style special for the case of GTK+.
  • platform/gtk/fast/forms/number/number-size-spinbutton-nocover-expected.png: Added.
  • platform/gtk/fast/forms/number/number-size-spinbutton-nocover-expected.txt: Added.
  • platform/gtk/fast/forms/number/number-size-spinbutton-nocover.html: Added.
8:32 AM Changeset in webkit [219331] by commit-queue@webkit.org
  • 15 edits
    12 adds in trunk

We should do ICE candidate filtering at the Document level
https://bugs.webkit.org/show_bug.cgi?id=173861
<rdar://problem/33122058>

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

Source/WebCore:

Tests: http/tests/webrtc/filtering-ice-candidate-cross-origin-frame.html

http/tests/webrtc/filtering-ice-candidate-same-origin-frame.html
http/tests/webrtc/filtering-ice-candidate-same-origin-frame2.html
webrtc/filtering-ice-candidate-after-reload.html

Making UserMediaRequest disable the ICE candidate filtering for the page RTCController.
All RTCPeerConnection of the page that are created on a document that are same-origin as the top document
are now registered to the RTCController.
This allows disabling filtering to only these RTCPeerConnection.

The page keeps the default ICE candidate filtering policy.
This policy allows disabling ICE candidate filtering for all RTCPeerConnection.

When the top document is changing, the RTCController filtering policy is reset
and its list of RTCPeerConnection is emptied.

Internals no longer disables ICE candidate filtering by default.
This allows finer grained testing.
ICE candidate filtering is disabled for tests including testharnessreport.js
to enable web-platform-tests to run without modifications.

  • Modules/mediastream/RTCController.cpp:

(WebCore::RTCController::reset):

  • Modules/mediastream/RTCController.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow):

  • page/Frame.cpp:

(WebCore::Frame::setDocument):

  • page/Page.cpp:

(WebCore::Page::disableICECandidateFiltering):

  • page/Page.h:

(WebCore::Page::shouldEnableICECandidateFilteringByDefault):
(WebCore::Page::disableICECandidateFiltering): Deleted.
(WebCore::Page::enableICECandidateFiltering): Deleted.
(WebCore::Page::isICECandidateFilteringEnabled): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::Internals):
(WebCore::Internals::setICECandidateFiltering):
(WebCore::Internals::setEnumeratingAllNetworkInterfacesEnabled):
(WebCore::Internals::isICECandidateFilteringEnabled): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit2:

Removing ICE candidate filtering handling at UIProcess level.
ICE candidate filtering is now disabled at UserMediaRequest level.
WebPage forwards the ICE candidate filtering option to the page so as to set
the default option correctly for every document of the page.

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willCreateMediaStream):
(WebKit::UserMediaProcessManager::endedCaptureSession):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::disableICECandidateFiltering):
(WebKit::WebPage::enableICECandidateFiltering):

LayoutTests:

  • http/tests/webrtc/filtering-ice-candidate-cross-origin-frame-expected.txt: Added.
  • http/tests/webrtc/filtering-ice-candidate-cross-origin-frame.html: Added.
  • http/tests/webrtc/filtering-ice-candidate-same-origin-frame-expected.txt: Added.
  • http/tests/webrtc/filtering-ice-candidate-same-origin-frame.html: Added.
  • http/tests/webrtc/filtering-ice-candidate-same-origin-frame2-expected.txt: Added.
  • http/tests/webrtc/filtering-ice-candidate-same-origin-frame2.html: Added.
  • http/tests/webrtc/resources/check-ice-candidate-filtering.html: Added.
  • http/tests/webrtc/resources/do-get-user-media.html: Added.
  • platform/mac-wk1/TestExpectations: Disable http/tests/webrtc tests.
  • resources/testharnessreport.js: Disabled ICE candidate filtering by default.
  • webrtc/filtering-ice-candidate-after-reload-expected.txt: Added.
  • webrtc/filtering-ice-candidate-after-reload.html: Added.
8:14 AM Changeset in webkit [219330] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Changing the web page muted state for playing audio should not disable other tabs capture
https://bugs.webkit.org/show_bug.cgi?id=174349
rdar://problem/33223988

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

Make sure to mute capturing streams of any other tab if the current tab will start capturing or will unmute existing capturing streams.
Manually tested by having a tab doing capture and another tab playing a video.
Muting or unmuting the tab playing video should not change the capture tab.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::activateMediaStreamCaptureInPage):
(WebKit::WebPageProxy::setMuted):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::activateMediaStreamCaptureInPage):

7:59 AM Changeset in webkit [219329] by zandobersek@gmail.com
  • 2 edits
    5 adds
    4 deletes in trunk/Tools

[WPE] Bump GStreamer packages in jhbuild.modules to 1.10.5
https://bugs.webkit.org/show_bug.cgi?id=174350

Reviewed by Xabier Rodriguez-Calvar.

Bump the various GStreamer dependencies listed in WPE's Jhbuild modules file
to the 1.10.5 version. One gstreamer patch is added. The two gst-plugins-bad
patches are removed. The patches for gst-plugins-good are updated, removing
the stale ones and adding the additional changes to qtdemux, souphttpsrc and
rtpbin elements that will help with the EMEv3 development.

  • wpe/jhbuild.modules:
  • wpe/patches/gst-plugins-bad-0001-dtls-port-to-OpenSSL-1.1.0.patch: Removed.
  • wpe/patches/gst-plugins-bad-0002-dtlscertificate-Fix-error-checking-in-RSA_generate_k.patch: Removed.
  • wpe/patches/gst-plugins-good-0003-rtpbin-receive-bundle-support.patch: Added.
  • wpe/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch: Added.
  • wpe/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch: Added.
  • wpe/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch: Added.
  • wpe/patches/gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch: Removed.
  • wpe/patches/gst-plugins-good-use-the-tfdt-decode-time.patch: Removed.
  • wpe/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch: Added.
7:53 AM Changeset in webkit [219328] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebKit2

NetworkProcess should close listening WebRTC sockets when being suspended
https://bugs.webkit.org/show_bug.cgi?id=174270
rdar://problem/33139844

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-11
Reviewed by Chris Dumez.

To prevent potential spinning of the NetworkProcess, NetworkProcess will now close listening sockets when being notified that it will be suspended.
When the network process is being suspended, it will stop creating listening sockets, until it resumes.
Future additional efforts might be to improve select/cancel so that we can stop listening sockets at resume time,
or to reimplement part of the stack using CFStream.

Tested through manual testing by going to a website doing WebRTC, homing out so that the network process is suspended and reopening Safari.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::cleanupForSuspension):
Proxying call to clean for suspension to rtc provider so that it will
close listening sockets.
(WebKit::NetworkConnectionToWebProcess::resumeFromSuspension): Authorizing back listening sockets.

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::cleanupForSuspension):
Clean-up is done asynchronously as it can happen in background threads.
Hence why passing a callback as parameter.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::notifyProcessReadyToSuspend): Helper routine
to notify UI process that network process clean up is done.
(WebKit::TaskCounter::TaskCounter): Helper class to call notifyProcessReadyToSuspend when sded.
(WebKit::TaskCounter::~TaskCounter):
(WebKit::NetworkProcess::actualPrepareToSuspend): Doing the clean-up for each connection that needs it.
Making sure to notify UI process of clean-up being completed once all connections are cleaned.
(WebKit::NetworkProcess::processWillSuspendImminently):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::processDidResume): Reenable listening sockets.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:

(WebKit::LibWebRTCSocketClient::LibWebRTCSocketClient):

  • NetworkProcess/webrtc/LibWebRTCSocketClient.h: Adding type getter and making close public.

Used by NetworkRTCProvider to identifiy listening sockets and close them.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::closeListeningSockets): We close the webrtc socket
and we also notify the Web Process that the socket is closed so that it can take actions to recreate some if needed.
(WebKit::NetworkRTCProvider::finishClosingListeningSockets):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:

(WebKit::NetworkRTCProvider::authorizeListeningSockets): Authorize creation of listening sockets.

6:29 AM Changeset in webkit [219327] by svillar@igalia.com
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r219325.

The test is still flaky

Reverted changeset:

"[SVG] Leak in SVGAnimatedListPropertyTearOff"
https://bugs.webkit.org/show_bug.cgi?id=172545
http://trac.webkit.org/changeset/219325

6:15 AM Changeset in webkit [219326] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] media/video-restricted-invisible-autoplay-not-allowed.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=174353

Unreviewed test gardening.

Patch by Charlie Turner <cturner@igalia.com> on 2017-07-11

  • platform/gtk/TestExpectations:
3:44 AM Changeset in webkit [219325] by svillar@igalia.com
  • 2 edits
    2 adds in trunk

[SVG] Leak in SVGAnimatedListPropertyTearOff
https://bugs.webkit.org/show_bug.cgi?id=172545

Reviewed by Said Abou-Hallawa.

SVGAnimatedListPropertyTearOff maintains a vector m_wrappers with references to
SVGPropertyTraits<PropertyType>::ListItemTearOff. Apart from that SVGPropertyTearOff has a
reference to SVGAnimatedProperty.

When SVGListProperty::getItemValuesAndWrappers() is called, it creates a
SVGPropertyTraits<PropertyType>::ListItemTearOff pointing to the same SVGAnimatedProperty (a
SVGAnimatedListPropertyTearOff) which stores the m_wrappers vector where the ListItemTearOff
is going to be added to. This effectively creates a reference cycle between the
SVGAnimatedListPropertyTearOff and all the ListItemTearOff it stores in m_wrappers.

We should detach those wrappers in propertyWillBeDeleted() in order to break the cycle.

  • svg/properties/SVGAnimatedListPropertyTearOff.h:
12:49 AM Changeset in webkit [219324] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed WPE gardening.

  • platform/wpe/TestExpectations:

Enable EMEv3 tests under media/encrypted-media/, all of them passing.

Note: See TracTimeline for information about the timeline view.