Timeline



Feb 10, 2017:

11:44 PM Changeset in webkit [212184] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Skip CSS image-orientation and image-resolution tests.

  • platform/gtk/TestExpectations:
11:34 PM Changeset in webkit [212183] by wilander@apple.com
  • 36 edits
    15 adds in trunk

Updates to Resource Load Statistics: Get the right website data store and introduce timeout for user interaction
https://bugs.webkit.org/show_bug.cgi?id=167474
<rdar://problem/24681808>
<rdar://problem/24703286>
<rdar://problem/30290270>

Source/WebCore:

This patch does the following:

  1. Gets the right website data store. API::WebsiteDataStore::defaultDataStore()

does not provide the right data store.

  1. Introduces timeout for user interaction. A domain needs interaction every 30

days to stay in that category.

  1. Adds grandfathered to the statistics model in preparation for grandfathering of

existing data records.

  1. Adds test infrastructure to allow testing of the various rules in place for

data records removal.

  1. Fixes various smaller bugs that were found as part of setting up the tests.
  2. Regresses the data records removal counting. We need to come up with a thread

safe way of gathering removal statistics from more than one data store now
that we potentially interact with multiple stores.

  1. Adds a first set of layout tests for resource load statistics.

Reviewed by Andy Estes.

Tests: http/tests/loading/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html

http/tests/loading/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html
http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html
http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction.html
http/tests/loading/resourceLoadStatistics/prevalent-resource-without-user-interaction.html

  • dom/Document.cpp:

(WebCore::Document::updateLastHandledUserGestureTimestamp):

This now calls ResourceLoadObserver::logUserInteraction() every time since
we want to keep track of the most recent user interaction.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::statisticsStore):

New getter used by WebResourceLoadStatisticsManager::resetToConsistentState().

(WebCore::reduceTimeResolutionToOneDay):

Convenience function.

(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):

Reduces time resolution for privacy reasons.

(WebCore::ResourceLoadObserver::logUserInteraction):
(WebCore::ResourceLoadObserver::clearUserInteraction):
(WebCore::ResourceLoadObserver::hasHadUserInteraction):
(WebCore::ResourceLoadObserver::setPrevalentResource):
(WebCore::ResourceLoadObserver::isPrevalentResource):
(WebCore::ResourceLoadObserver::clearPrevalentResource):
(WebCore::ResourceLoadObserver::setTimeToLiveUserInteraction):
(WebCore::ResourceLoadObserver::fireDataModificationHandler):

New functions that allow WebKitTestRunner to stage exact
statistics, fire the handler, and test the outcome.

  • loader/ResourceLoadObserver.h:
  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::encode):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::ResourceLoadStatistics::toString):
(WebCore::ResourceLoadStatistics::merge):

Support for statistics mostRecentUserInteraction, grandfathered, and
dataRecordsRemoved.

  • loader/ResourceLoadStatistics.h:
  • loader/ResourceLoadStatisticsStore.cpp:

(WebCore::ResourceLoadStatisticsStore::setTimeToLiveUserInteraction):

New function that allows WebKitTestRunner to test
aging out of user interaction.

(WebCore::ResourceLoadStatisticsStore::hasHadRecentUserInteraction):

Now takes into account the timestamp and ages
out user interaction.

(WebCore::ResourceLoadStatisticsStore::prevalentResourceDomainsWithoutUserInteraction):

Now makes use of ResourceLoadStatisticsStore::hasHadRecentUserInteraction().

  • loader/ResourceLoadStatisticsStore.h:

Source/WebKit2:

This patch does the following:

  1. Gets the right website data store. API::WebsiteDataStore::defaultDataStore()

does not provide the right data store.

  1. Introduces timeout for user interaction. A domain needs interaction every 30

days to stay in that category.

  1. Adds grandfathered to the statistics model in preparation for grandfathering of

existing data records.

  1. Adds test infrastructure to allow testing of the various rules in place for

data records removal.

  1. Fixes various smaller bugs that were found as part of setting up the tests.
  2. Regresses the data records removal counting. We need to come up with a thread

safe way of gathering removal statistics from more than one data store now
that we potentially interact with multiple stores.

  1. Adds a first set of layout tests for resource load statistics.

Reviewed by Andy Estes.

  • PlatformEfl.cmake:

Added UIProcess/WebResourceLoadStatisticsManager.cpp and
UIProcess/API/C/WKResourceLoadStatisticsManager.cpp.

  • PlatformGTK.cmake:

Added UIProcess/WebResourceLoadStatisticsManager.cpp and
UIProcess/API/C/WKResourceLoadStatisticsManager.cpp.

  • PlatformMac.cmake:

Added UIProcess/WebResourceLoadStatisticsManager.cpp and
UIProcess/API/C/WKResourceLoadStatisticsManager.cpp.

  • Shared/API/APIObject.h:

Adds WebResourceLoadStatisticsManager to the Type enum.

  • Shared/API/c/WKBase.h:

Typedef of WKResourceLoadStatisticsManagerRef.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ResourceLoadStatistics>::encode):
(IPC::ArgumentCoder<ResourceLoadStatistics>::decode):

Adds support for statistics mostRecentUserInteraction, grandfathered, and
dataRecordsRemoved.

  • UIProcess/API/C/WKAPICast.h:

Adds API mapping between WKResourceLoadStatisticsManagerRef and
WebResourceLoadStatisticsManager.

  • UIProcess/API/C/WKResourceLoadStatisticsManager.cpp: Added.

(WKResourceLoadStatisticsManagerGetTypeID):
(WKResourceLoadStatisticsManagerSetPrevalentResource):
(WKResourceLoadStatisticsManagerIsPrevalentResource):
(WKResourceLoadStatisticsManagerSetHasHadUserInteraction):
(WKResourceLoadStatisticsManagerIsHasHadUserInteraction):
(WKResourceLoadStatisticsManagerSetTimeToLiveUserInteraction):
(WKResourceLoadStatisticsManagerFireDataModificationHandler):
(WKResourceLoadStatisticsManagerSetNotifyPagesWhenDataRecordsWereScanned):
(WKResourceLoadStatisticsManagerSetShouldClassifyResourcesBeforeDataRecordsRemoval):
(WKResourceLoadStatisticsManagerSetMinimumTimeBetweeenDataRecordsRemoval):
(WKResourceLoadStatisticsManagerResetToConsistentState):

API level bridge to WebResourceLoadStatisticsManager functions.

  • UIProcess/API/C/WKResourceLoadStatisticsManager.h: Added.
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyOwnedDomainsInAllPersistentDataStores):

A way to delete website data in persistent store(s) configured by the
embedding client. API::WebsiteDataStore::defaultDataStore() does not
do this which caused us to skip session storage.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebResourceLoadStatisticsManager.cpp: Added.

(WebKit::WebResourceLoadStatisticsManager::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsManager::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsManager::setHasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsManager::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsManager::setTimeToLiveUserInteraction):
(WebKit::WebResourceLoadStatisticsManager::fireDataModificationHandler):
(WebKit::WebResourceLoadStatisticsManager::setNotifyPagesWhenDataRecordsWereScanned):
(WebKit::WebResourceLoadStatisticsManager::setShouldClassifyResourcesBeforeDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsManager::setMinimumTimeBetweeenDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsManager::resetToConsistentState):

Static functions to manage the state and behavior of the UI process'
resource load statistics store.

  • UIProcess/WebResourceLoadStatisticsManager.h: Added.

(WebKit::WebResourceLoadStatisticsManager::create):

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):

An effect of a member variable rename. See header file comment below.

(WebKit::WebResourceLoadStatisticsStore::setNotifyPagesWhenDataRecordsWereScanned):
(WebKit::WebResourceLoadStatisticsStore::setShouldClassifyResourcesBeforeDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval):

Three static functions for controlling the behavior of the store.

(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):

Changes:

  1. Covers all data record types.
  2. Allows data removal when m_lastTimeDataRecordsWereRemoved is not set.
  3. Moves the heavy lifting to WebsiteDataStore (see below).
  4. No longer counts removed data regressions.

(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):

See next comment.

(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):

WebResourceLoadStatisticsStore::processStatisticsAndDataRecords() is
broken out of WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated
to allow for statistics processing without prior classification.
Tests need to set statistics and a run of the classifier may
reset the data.

(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver):

Sets the notification callback which calls
WebResourceLoadStatisticsStore::processStatisticsAndDataRecords().

  • UIProcess/WebResourceLoadStatisticsStore.h:

(WebKit::WebResourceLoadStatisticsStore::coreStore):

Renamed m_resourceStatisticsStore to m_resourceLoadStatisticsStore to
harmonize with other naming.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataForTopPrivatelyOwnedDomains):

This is now where matching is made between prevalent resources
and data records. This function is used by
WebsiteDataStore::removeDataForTopPrivatelyOwnedDomains().

(WebKit::WebsiteDataStore::removeDataForTopPrivatelyOwnedDomains):

The function WebResourceLoadStatisticsStore::removeDataRecords()
calls to get data records removed in all persistent stores.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.cpp:

(WebKit::m_resourceLoadStatisticsStore):
(WebKit::WebProcess::statisticsChangedTimerFired):
(WebKit::m_resourceLoadStatisticsStorage): Deleted.

Renamed m_resourceLoadStatisticsStorage to m_resourceLoadStatisticsStore
to harmonize with other naming.

  • WebProcess/WebProcess.h:

Tools:

This patch adds test infrastructure to allow testing
of the various rules in place for data records removal.

Reviewed by Andy Estes.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

Callback mechanism to tell pages that a website data store
scan has happened.

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setStatisticsPrevalentResource):
(WTR::TestRunner::isStatisticsPrevalentResource):
(WTR::TestRunner::setStatisticsHasHadUserInteraction):
(WTR::TestRunner::isStatisticsHasHadUserInteraction):
(WTR::TestRunner::setStatisticsTimeToLiveUserInteraction):
(WTR::TestRunner::installStatisticsDidModifyDataRecordsCallback):
(WTR::TestRunner::statisticsDidModifyDataRecordsCallback):
(WTR::TestRunner::statisticsFireDataModificationHandler):
(WTR::TestRunner::setStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WTR::TestRunner::setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
(WTR::TestRunner::setStatisticsMinimumTimeBetweeenDataRecordsRemoval):
(WTR::TestRunner::statisticsResetToConsistentState):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setStatisticsPrevalentResource):
(WTR::TestController::isStatisticsPrevalentResource):
(WTR::TestController::setStatisticsHasHadUserInteraction):
(WTR::TestController::isStatisticsHasHadUserInteraction):
(WTR::TestController::setStatisticsTimeToLiveUserInteraction):
(WTR::TestController::statisticsFireDataModificationHandler):
(WTR::TestController::setStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WTR::TestController::setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
(WTR::TestController::setStatisticsMinimumTimeBetweeenDataRecordsRemoval):
(WTR::TestController::statisticsResetToConsistentState):

  • WebKitTestRunner/TestController.h:

These are all configuration and test functions.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Reviewed by Andy Estes.

Marked as general skip (see WK2 expectations below).

  • http/tests/loading/resourceLoadStatistics: Added.
  • http/tests/loading/resourceLoadStatistics/non-prevalent-resource-with-user-interaction-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html: Added.
  • http/tests/loading/resourceLoadStatistics/non-prevalent-resource-without-user-interaction-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html: Added.
  • http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html: Added.
  • http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction.html: Added.
  • http/tests/loading/resourceLoadStatistics/prevalent-resource-without-user-interaction-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/prevalent-resource-without-user-interaction.html: Added.
  • platform/wk2/TestExpectations:

Marked as valid for WebKit2 only.

10:01 PM Changeset in webkit [212182] by clopez@igalia.com
  • 4 edits in trunk/Tools

REGRESSION(r182916) run-perf-tests never timeouts
https://bugs.webkit.org/show_bug.cgi?id=167626

Reviewed by Ryosuke Niwa.

The --time-out-ms value (defaults to 600 seconds) of run-perf-tests
was beeing ignored because the driver was created with no_timeout=True
unconditionally.
This adds a new parameter --no-timeout (disabled by default), that
allows to use the driver with the expected timeout values.
It also passes --no-timeout to DRT/WTR to ensure that timeouts
are always controlled by the Python Driver.

  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest._create_driver): Only disable timeout if --no-timeout is passed.
(PerfTest.run): Disabling timeout should be done when the Driver is created.

  • Scripts/webkitpy/performance_tests/perftestsrunner.py:

(PerfTestsRunner.init): Ensure --no-timeout is passed to DRT/WTR
(PerfTestsRunner._parse_args): Add a --no-timeout parameter.
(_run_tests_set): Pass the no-timeout parameter.

  • Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:

(MainTest.test_drt_notimeout): Test --no-timeout is passed to DRT/WTR
(MainTest.test_default_args): Test default values for additional_drt_flag and no_timeout.
(MainTest.test_parse_args): Test that the argument no-timeout.

9:49 PM Changeset in webkit [212181] by commit-queue@webkit.org
  • 12 edits in trunk

[WebIDL] Cleanup XMLHttpRequest's bindings
https://bugs.webkit.org/show_bug.cgi?id=168067

Patch by Sam Weinig <sam@webkit.org> on 2017-02-10
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/setrequestheader-bogus-name-expected.txt:
  • web-platform-tests/XMLHttpRequest/setrequestheader-bogus-value-expected.txt:

Update results now that we pass.

Source/WebCore:

  • bindings/js/JSDOMBinding.cpp:

(WebCore::jsOwnedStringOrNull): Deleted.

  • bindings/js/JSDOMBinding.h:

Remove jsOwnedStringOrNull and inline it into it's one use
in JSXMLHttpRequestCustom.

  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::responseText):
(WebCore::SendFunctor::SendFunctor): Deleted.
(WebCore::SendFunctor::line): Deleted.
(WebCore::SendFunctor::column): Deleted.
(WebCore::SendFunctor::url): Deleted.
(WebCore::SendFunctor::operator()): Deleted.
(WebCore::JSXMLHttpRequest::send): Deleted.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::send):

  • xml/XMLHttpRequest.h:

Remove custom send, replacing it with a single send implementation that
takes a variant.

  • xml/XMLHttpRequest.idl:

Cleanup the IDL to better match the spec. Update correct types where trivial.

LayoutTests:

  • http/tests/xmlhttprequest/set-bad-headervalue.html:

Update test now that we throw the correct exceptions.

9:33 PM Changeset in webkit [212180] by mitz@apple.com
  • 2 edits in trunk/Source/WTF

[Xcode] WTF installs extra copies of two headers outside /usr/local/include/wtf
https://bugs.webkit.org/show_bug.cgi?id=168160

Reviewed by Sam Weinig.

  • WTF.xcodeproj/project.pbxproj: Demoted OrdinalNumber.h MemoryFootprint.h from Private to Project.
8:54 PM Changeset in webkit [212179] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebKit/ios

WebKitLegacy doesn't re-export various symbols from WebCore required by clients
https://bugs.webkit.org/show_bug.cgi?id=168158
<rdar://problem/24527933>

Reviewed by Dan Bernstein.

  • WebKit.iOS.exp: Exporting various symbols which are required by clients. This

would enable clients to stop linking against WebCore and instead link against WebKit.

8:40 PM Changeset in webkit [212178] by Chris Dumez
  • 9 edits in trunk

document.origin doesn't match spec
https://bugs.webkit.org/show_bug.cgi?id=168022

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline test now that document.origin has the right format.

  • web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:

Source/WebCore:

Update document.origin to return the origin in the expected format:

Change: "https_webkit.org_0 -> "https://webkit.org".

The new behavior matches Firefox and Chrome.

No new tests, updated existing tests.

  • dom/Document.cpp:

(WebCore::Document::origin):

LayoutTests:

  • http/tests/media/media-stream/enumerate-devices-source-id-persistent.html:

Fix test that was passing only because the document.origin would never match the
expected string:

  • Move idCounts to the global scope has the handler function is called 3 times and we need to properly update the same idCounts object in all 3 calls.
  • Fix initialization of idCounts to start at 1, not 0. Otherwise, idCounts[uniqueID] is 0 instead of 1.
  • Use a Map instead of an array since the ids are UUID strings, not integers.
  • Fix check for non-unique ids, was idCounts[deviceId] == 1 instead of idCounts[deviceId] != 1.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html:
  • http/tests/ssl/iframe-upgrade.https.html:

Update / rebaseline now that document.origin has the right format.

8:33 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
8:32 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
8:29 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
8:18 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
8:14 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
8:05 PM Changeset in webkit [212177] by sbarati@apple.com
  • 5 edits
    1 add in trunk

Object allocation sinking phase doesn't properly handle control flow when emitting a PutHint of a materialized object into a PromotedHeapLocation of a still sunken object
https://bugs.webkit.org/show_bug.cgi?id=168140
<rdar://problem/30205880>

Reviewed by Filip Pizlo.

JSTests:

  • stress/allocation-sinking-puthint-control-flow.js: Added.

(e):
(bar):
(let.y):
(else.let.y):
(baz):
(foo):
(catch):

Source/JavaScriptCore:

This patch fixes a bug in allocation sinking phase where
we don't properly handle control flow when materializing
an object and also PutHinting that materialization into
a still sunken object. We were performing the PutHint
for the materialization at the point of materialization,
however, we may have materialized along both edges
of a control flow diamond, in which case, we need to
also PutHint at the join point. Consider this program:

`
bb#0:
b: PhantomActivation()
a: PhantomNewFunction()
c: PutHint(@a, @b, ActivationLoc)
Branch(#1, #2)

bb#1:
d: MaterializeActivation()
e: PutHint(@a, @d, ActivationLoc)
f: Upsilon(@d, p)
Jump(#3)

bb#2:
g: MaterializeActivation()
h: PutHint(@a, @g, ActivationLoc)
i: Upsilon(@d, p)
Jump(#3)

bb#3:
p: Phi()
What is PromotedHeapLocation(@a, ActivationLoc) here?
What would we do if we exited?
`
Before this patch, we didn't perform a PutHint of the Phi.
However, we need to, otherwise when exit, we won't know
the value of PromotedHeapLocation(@a, ActivationLoc)

The program we need then, for correctness, is this:
`
bb#0:
b: PhantomActivation()
a: PhantomNewFunction()
c: PutHint(@a, @b, ActivationLoc)
Branch(#1, #2)

bb#1:
d: MaterializeActivation()
e: PutHint(@a, @d, ActivationLoc)
f: Upsilon(@d, p)
Jump(#3)

bb#2:
g: MaterializeActivation()
h: PutHint(@a, @g, ActivationLoc)
i: Upsilon(@d, p)
Jump(#3)

bb#3:
p: Phi()
j: PutHint(@a, @p, ActivationLoc)
`

This patch makes it so that we emit the necessary PutHint at node j.
I've also added more validation to the OSRAvailabilityAnalysisPhase
to catch this problem during validation.

  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::OSRAvailabilityAnalysisPhase::run):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

7:59 PM Changeset in webkit [212176] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Zero out some WKWebView state in the case of a web content crash
https://bugs.webkit.org/show_bug.cgi?id=168157

Reviewed by Tim Horton.

Reset some bits of state in WKWebView when the web content process crashes, in
to try to avoid states that might cause the web view to stay blank.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _processDidExit]):

7:32 PM Changeset in webkit [212175] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit/win

Attempt to fix the WinCairo 64-Bit Release build following <https://trac.webkit.org/changeset/212173>
(https://bugs.webkit.org/show_bug.cgi?id=166774)

Touch WebKit.idl in the hopes that it will cause CMake to regenerate the COM interface files.

  • Interfaces/WebKit.idl:
7:25 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
7:09 PM Changeset in webkit [212174] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

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

  • dom/Document.cpp:

(WebCore::Document::detachFromCachedFrame): Use ASSER_UNUSED() instead of ASSERT() since
the parameter cachedFrame is unused in non-debug build.

6:53 PM Changeset in webkit [212173] by dbates@webkit.org
  • 41 edits in trunk

Detach frame from document when entering page cache
https://bugs.webkit.org/show_bug.cgi?id=166774
<rdar://problem/29904368>

Reviewed by Chris Dumez.

Source/WebCore:

When a page enters the page cache it is unnecessary for it to hold a reference to its
associated frame because subsequent interactions with the page do not need to make use
of it. Once a page exits the page cache we associate it with its frame.

  • dom/Document.cpp:

(WebCore::Document::frameDestroyed): Update comment to reflect the renaming of disconnectFromFrame().
(WebCore::Document::attachToCachedFrame): Added.
(WebCore::Document::detachFromCachedFrame): Added.
(WebCore::Document::prepareForDestruction): Only call CSSAnimationController::detachFromDocument() if
we have a frame. Substitute detachFromFrame() for disconnectFromFrame() as the latter was renamed to
the former.
(WebCore::Document::hasEverCalledWindowOpen): Deleted.
(WebCore::Document::markHasCalledWindowOpen): Deleted.
(WebCore::Document::disconnectFromFrame): Renamed to detachFromFrame.

  • dom/Document.h:

(WebCore::Document::detachFromFrame): Renamed; formerly named disconnectFromFrame(). Changed
visibility from public to private and made this function inline.

  • history/CachedFrame.cpp:

(WebCore::CachedFrameBase::pruneDetachedChildFrames): Remove cached child frames that were
removed from the page when it was in the page cache as there is no need to restore such frames.
(WebCore::CachedFrameBase::restore): Call pruneDetachedChildFrames() before restoring the
frame tree.
(WebCore::CachedFrame::CachedFrame): Detach from the frame.
(WebCore::CachedFrame::open): Assert that we have a document and re-attach the frame.
(WebCore::CachedFrame::destroy): Update assertion as this function should only be called for a
frameless document. Only detach the FrameView, DocumentLoader, and Page when the cached frame is for
subframe and is associated with a Page object. Call CSSAnimationController::detachFromDocument() to
detach the animation controller from the document as it is being destroyed. We have to do this here
because the document does not have a frame. And Document::prepareForDestruction() only calls
CSSAnimationController::detachFromDocument() if the document has a frame.

  • history/CachedFrame.h:
  • history/PageCache.cpp:

(WebCore::canCachePage): Remove logic that prevents caching of a page that called window.open()
or has an opener as it is feasible to keep such pages in the page cache.

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::finishedInsertingSubtree): Fix style nit.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::frameDetached): Only stop all loaders and stop active DOM objects if the
page is not in- or about to enter- the page cache. A page in the page cache has finished loading
and its active DOM objects are suspended. Also fix style nit in comment.
(WebCore::FrameLoader::detachFromParent): Only stop all loaders if the page is not in- or about to
enter- the page cache. A page in the page cache has finished loading. Also added a comment to explain
that we protect the frame because stopAllLoaders() can cause the frame to be deallocated.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow): Remove logic to call markHasCalledWindowOpen() as this
function will be removed.

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::hasCalledWindowOpenKey): Deleted.
(WebCore::DiagnosticLoggingKeys::hasOpenerKey): Deleted.

  • page/DiagnosticLoggingKeys.h:
  • page/Page.cpp:

(WebCore::Page::openedByWindowOpen): Deleted.

  • page/Page.h:
  • page/Settings.in: Remove setting allowsPageCacheWithWindowOpener.

Source/WebKit/mac:

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

(+[WebPreferences initialize]):
(-[WebPreferences allowsPageCacheWithWindowOpener]): Deleted.
(-[WebPreferences setAllowsPageCacheWithWindowOpener:]): Deleted.

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

(-[WebView _preferencesChanged:]):

Source/WebKit/win:

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::setAllowsPageCacheWithWindowOpener): Deleted.
(WebPreferences::allowsPageCacheWithWindowOpener): Deleted.

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WebKit2:

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

(WKPreferencesSetAllowsPageCacheWithWindowOpener): Deleted.
(WKPreferencesGetAllowsPageCacheWithWindowOpener): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

6:30 PM Changeset in webkit [212172] by Simon Fraser
  • 4 edits in trunk

REGRESSION (r211845): [ios-simulator] LayoutTest compositing/masks/solid-color-masked.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=168054

Reviewed by Tim Horton.

Source/WebCore:

When adding mask layers, there was an ordering dependency. There was a hack in GraphicsLayerCA::setVisibleAndCoverageRects()
to propagate m_intersectsCoverageRect to masks. However, if GraphicsLayerCA::setVisibleAndCoverageRects()
ran on the masked layer before the mask was added, nothing updated the "m_intersectsCoverageRect" state of the mask layer.

Fix by explicitly calling setVisibleAndCoverageRects() on the mask layer, passing the same rects and
viewport-constrained state as for its host layer (we already assume that their geometry matches).

Tested by compositing/masks/solid-color-masked.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):

LayoutTests:

Make the timeout 10ms so the test consistently fails with the old code.

  • compositing/masks/solid-color-masked.html:
6:25 PM Changeset in webkit [212171] by Matt Baker
  • 6 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Debugger sidebar panel should not have multiple tree selections
https://bugs.webkit.org/show_bug.cgi?id=166000
<rdar://problem/29721988>

Reviewed by Timothy Hatcher.

The method for synchronizing tree element selection across a sidebar's
tree outlines fails for selections made during startup, because it depends
on events which are being suppressed.

This adds a new class, TreeOutlineGroup, which restricts tree element selection
inside a group of tree outlines by receiving messages directly from TreeElement.

  • UserInterface/Main.html:

Add file for TreeOutlineGroup class.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WebInspector.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObject):
(WebInspector.ContentBrowserTabContentView):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
Update createContentTreeOutline calls for new signature.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel):
Replace _visibleContentTreeOutlines with a TreeOutlineGroup, which
contains the single-selection behavior previously handled by the sidebar.

(WebInspector.NavigationSidebarPanel.prototype.get contentTreeOutlines):
(WebInspector.NavigationSidebarPanel.prototype.get hasSelectedElement):
Implement using the sidebar's tree outline group.
(WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
Remove first parameter, which is always true.
(WebInspector.NavigationSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie):
(WebInspector.NavigationSidebarPanel.prototype.pruneStaleResourceTreeElements):
(WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
(WebInspector.NavigationSidebarPanel.prototype._checkOutlinesForPendingViewStateCookie):
(WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline): Deleted.
Remove unused setter.
(WebInspector.NavigationSidebarPanel.prototype.get visibleContentTreeOutlines): Deleted.
Renamed to contentTreeOutlines.
(WebInspector.NavigationSidebarPanel.prototype._contentTreeOutlineDidFocus): Deleted.
No longer needed.
(WebInspector.NavigationSidebarPanel.prototype._contentTreeOutlineTreeSelectionDidChange): Deleted.
Selection across trees handled by the tree outline group.

  • UserInterface/Views/TreeElement.js:

(WebInspector.TreeElement.prototype.select):
Inform the element's tree outline group (if any), of the selection changed.

  • UserInterface/Views/TreeOutlineGroup.js: Added.

(WebInspector.TreeOutlineGroup):
(WebInspector.TreeOutlineGroup.groupForTreeOutline):
(WebInspector.TreeOutlineGroup.prototype.get selectedTreeElement):
(WebInspector.TreeOutlineGroup.prototype.itemAdded):
Associate tree outline with the group and wrap tree elements. If the
incoming tree outline has a selection, deselect the group's currently
selected tree element.

(WebInspector.TreeOutlineGroup.prototype.itemRemoved):
Disassociate the tree outline from the group.
(WebInspector.TreeOutlineGroup.prototype.didSelectTreeElement):
Called by TreeElement when it becomes selected.
(WebInspector.TreeOutlineGroup.prototype._removeConflictingTreeSelections):
Deselect any selected items in all tree outlines belonging to the group,
except for the specified item.

6:20 PM Changeset in webkit [212170] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebCore

Unreviewed, rolling out r212154, r212154, and r212156.
https://bugs.webkit.org/show_bug.cgi?id=168156

broke internal builds (Requested by smfr on #webkit).

Reverted changesets:

"Add a DragImage class that wraps a DragImageRef"
https://bugs.webkit.org/show_bug.cgi?id=168131
http://trac.webkit.org/changeset/212154

"Add a DragImage class that wraps a DragImageRef"
https://bugs.webkit.org/show_bug.cgi?id=168131
http://trac.webkit.org/changeset/212154

"Try to fix the iOS and Windows builds."
http://trac.webkit.org/changeset/212156

5:27 PM Changeset in webkit [212169] by BJ Burg
  • 10 edits
    4 moves
    2 adds in trunk/Source

WebInspector: refactor RemoteInspector to move cocoa specific code to their own files
https://bugs.webkit.org/show_bug.cgi?id=166681

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-02-10
Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

Move RemoteConnectionToTarget.mm and RemoteInspector.mm to a cocoa directory renamed with a Cocoa prefix,
because those are now the cocoa implementation of RemoteConnectionToTarget and RemoteInspector. The
cross-platform parts of RemoteInspector have been moced to a new RemoteInspector.cpp file. Also moved to cocoa
directory RemoteInspectorXPCConnection.h and RemoteInspectorXPCConnection.mm keeping the same name. Other than
that there aren't important code changes, only some cocoa specific types like NSString used in common headers,
and some other platform ifdefs needed. This is in preparation for adding a remote inspector implementation for
the GTK+ port.

  • API/JSRemoteInspector.cpp:

(JSRemoteInspectorSetParentProcessInformation): Add PLATFORM(COCOA) to the ifdef.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • PlatformMac.cmake:
  • inspector/remote/RemoteConnectionToTarget.h: Add platform ifdefs for cocoa specific parts and change

sendMessageToTarget to receive a WTF String instead of an NSString.

  • inspector/remote/RemoteControllableTarget.h: Add platform ifdefs for CF specific parts.
  • inspector/remote/RemoteInspectionTarget.h:
  • inspector/remote/RemoteInspector.cpp: Added.

(Inspector::RemoteInspector::startDisabled):
(Inspector::RemoteInspector::nextAvailableTargetIdentifier):
(Inspector::RemoteInspector::registerTarget):
(Inspector::RemoteInspector::unregisterTarget):
(Inspector::RemoteInspector::updateTarget):
(Inspector::RemoteInspector::updateClientCapabilities):
(Inspector::RemoteInspector::setRemoteInspectorClient):
(Inspector::RemoteInspector::setupFailed):
(Inspector::RemoteInspector::setupCompleted):
(Inspector::RemoteInspector::waitingForAutomaticInspection):
(Inspector::RemoteInspector::clientCapabilitiesDidChange):
(Inspector::RemoteInspector::stop):
(Inspector::RemoteInspector::listingForTarget):
(Inspector::RemoteInspector::updateHasActiveDebugSession):

  • inspector/remote/RemoteInspector.h: Add platform ifdefs for cocoa specific parts. Also add TargetListing

typedef to define platform specific types for the listings without more ifdefs.

  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm: Renamed from Source/JavaScriptCore/inspector/remote/RemoteConnectionToTarget.mm.

(Inspector::RemoteTargetInitializeGlobalQueue):
(Inspector::RemoteConnectionToTarget::setup):
(Inspector::RemoteConnectionToTarget::close):
(Inspector::RemoteConnectionToTarget::sendMessageToTarget):
(Inspector::RemoteConnectionToTarget::setupRunLoop):

  • inspector/remote/cocoa/RemoteInspectorCocoa.mm: Renamed from Source/JavaScriptCore/inspector/remote/RemoteInspector.mm.

(Inspector::canAccessWebInspectorMachPort):
(Inspector::RemoteInspector::singleton):
(Inspector::RemoteInspector::updateAutomaticInspectionCandidate):
(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::pushListingsSoon):
(Inspector::RemoteInspector::receivedIndicateMessage):
(Inspector::RemoteInspector::receivedProxyApplicationSetupMessage):

  • inspector/remote/cocoa/RemoteInspectorXPCConnection.h: Renamed from Source/JavaScriptCore/inspector/remote/RemoteInspectorXPCConnection.h.
  • inspector/remote/cocoa/RemoteInspectorXPCConnection.mm: Renamed from Source/JavaScriptCore/inspector/remote/RemoteInspectorXPCConnection.mm.

(Inspector::RemoteInspectorXPCConnection::closeFromMessage):

Source/WebKit2:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess): Add PLATFORM(COCOA) to the ifdef.

5:12 PM Changeset in webkit [212168] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

5:09 PM Changeset in webkit [212167] by timothy_horton@apple.com
  • 4 edits
    1 add in trunk

Infinite UI process hang under ensurePositionInformationIsUpToDate
https://bugs.webkit.org/show_bug.cgi?id=168154
<rdar://problem/30428673>

Reviewed by Simon Fraser.

Source/WebKit2:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView cleanupInteraction]):
If the web process crashes or we're being torn down for another reason,
assume that we aren't ever going to receive any pending async interaction
information update. Otherwise, ensurePositionInformationIsUpToDate can end
up waiting for it forever.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/InteractionDeadlockAfterCrash.mm: Added.

(recursiveFindHighlightLongPressRecognizer):
(TEST):
Add a somewhat nasty test that does an async interaction information update, but
kills the Web process before it arrives, and then does a sync interaction
information update, which will wait for the oustanding async interaction
information update if we still think it's coming. Before the patch, this
test times out with the UI process stuck under ensurePositionInformationIsUpToDate.

4:44 PM Changeset in webkit [212166] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: ContentViewContainer can have redundant back-forward entries after ContentView close
https://bugs.webkit.org/show_bug.cgi?id=168105

Reviewed by Joseph Pecoraro.

  • UserInterface/Models/BackForwardEntry.js:

(WebInspector.BackForwardEntry.prototype.isEqual):
Make check for equal ContentView/cookie reusable.

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer.prototype.showContentView):
Use BackForwardEntry.prototype.isEqual.
(WebInspector.ContentViewContainer.prototype.replaceContentView):
(WebInspector.ContentViewContainer.prototype.closeContentView):
Clean-up the BackForwardEntry list after changes that can cause
identical entries to become adjacent.

(WebInspector.ContentViewContainer.prototype._removeIdenticalAdjacentBackForwardEntries):
Remove consecutive entries with the same ContentView and cookie.
(WebInspector.ContentViewContainer):
(WebInspector.ContentViewContainer.closeAllContentViewsOfPrototype): Deleted.
Drive-by cleanup: removed dead code.

4:19 PM Changeset in webkit [212165] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WTF

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

Caused some assertions (Requested by JoePeck on #webkit).

Reverted changeset:

"Fix misleading comment in RunLoop.h"
https://bugs.webkit.org/show_bug.cgi?id=167832
http://trac.webkit.org/changeset/212139

4:12 PM Changeset in webkit [212164] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(WEBGL) build
https://bugs.webkit.org/show_bug.cgi?id=168112

Reviewed by Alex Christensen.

  • html/canvas/WebGLRenderingContextBase.h:
3:55 PM Changeset in webkit [212163] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

Add mediaStreamEnabled property to WKPreferences for Cocoa.
https://bugs.webkit.org/show_bug.cgi?id=168080

Patch by Andrew Gold <agold@apple.com> on 2017-02-10
Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]): Sets the pageConfiguration's mediaStreamEnabled preference value.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]): Copies the mediaStreamEnabled property.
(-[WKWebViewConfiguration _mediaStreamEnabled]): Gets the mediaStreamEnabled property.
(-[WKWebViewConfiguration _setMediaStreamEnabled:]): Sets the mediaStreamEnabled property.

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
3:53 PM Changeset in webkit [212162] by commit-queue@webkit.org
  • 5 edits in trunk

[Fetch API] fetch fails when undefined is passed as headers
https://bugs.webkit.org/show_bug.cgi?id=168043

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-10
Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/request/request-headers-expected.txt:
  • web-platform-tests/fetch/api/request/request-headers.html:

Source/WebCore:

Covered by updated test.

  • Modules/fetch/FetchInternals.js:

(fillFetchHeaders): Exit early in case of undefined headers, since it is an optional parameter.

3:51 PM Changeset in webkit [212161] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(WEB_TIMING) build
https://bugs.webkit.org/show_bug.cgi?id=168113

Reviewed by Alex Christensen.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):

3:49 PM Changeset in webkit [212160] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

WebProcess: remove unused m_inDidClose
https://bugs.webkit.org/show_bug.cgi?id=168121

Patch by Olivier Blin <Olivier Blin> on 2017-02-10
Reviewed by Alex Christensen.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didClose):

  • WebProcess/WebProcess.h:

m_inDidClose has been unused since r83774

3:48 PM Changeset in webkit [212159] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.26

Tag Safari-603.1.26.

3:47 PM Changeset in webkit [212158] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Update features.json for Performance Timing APIs
https://bugs.webkit.org/show_bug.cgi?id=168148

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-10
Reviewed by Simon Fraser.

  • features.json:
3:47 PM Changeset in webkit [212157] by BJ Burg
  • 3 edits in trunk/Source/JavaScriptCore

[Cocoa] Web Inspector: payload initializers for ObjC protocol types handles special-cased property names incorrectly
https://bugs.webkit.org/show_bug.cgi?id=168141

Reviewed by Joseph Pecoraro.

The generated code erroneously uses the ObjC variable name as the payload key,
rather than the raw type member name. For example, 'identifier' would be used instead of 'id'.

  • inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:

(ObjCProtocolTypesImplementationGenerator._generate_init_method_for_payload):

  • inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:

Rebaseline an affected test.

3:41 PM Changeset in webkit [212156] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

Try to fix the iOS and Windows builds.

  • platform/ios/DragImageIOS.mm:

(WebCore::deleteDragImage):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::setDragImage):

3:24 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
3:14 PM Changeset in webkit [212155] by BJ Burg
  • 2 edits in trunk

Add basic debugging macros for CMake
https://bugs.webkit.org/show_bug.cgi?id=161538

Reviewed by Michael Catanzaro.

It's useful to be able to dump the state of everything when debugging
CMake build problems, especially when they happen on EWS (but not locally).

Start with macros for:

  • dumping out all CMake variables
  • dumping all executed commands (by turning off pretty-printing)
  • Source/cmake/WebKitMacros.cmake:
3:09 PM Changeset in webkit [212154] by andersca@apple.com
  • 11 edits in trunk/Source/WebCore

Add a DragImage class that wraps a DragImageRef
https://bugs.webkit.org/show_bug.cgi?id=168131

Reviewed by Beth Dakin.

This allows us to get rid of the explicit deleteDragImage calls and will make additional cleanup of the
various drag code paths possible. No functionality change.

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::updateDragImage):

  • page/DragController.cpp:

(WebCore::DragController::startDrag):
(WebCore::DragController::doImageDrag):
(WebCore::DragController::doSystemDrag):

  • page/DragController.h:
  • platform/DragImage.cpp:

(WebCore::DragImage::DragImage):
(WebCore::DragImage::operator=):
(WebCore::DragImage::~DragImage):

  • platform/DragImage.h:
  • platform/Pasteboard.h:
  • platform/StaticPasteboard.h:
  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::setDragImage):

3:02 PM Changeset in webkit [212153] by Simon Fraser
  • 8 edits
    10 adds in trunk

Make sure the "inwindow" flag propagates to TiledBackings for masks and reflections
https://bugs.webkit.org/show_bug.cgi?id=168127
rdar://problem/30467120

Reviewed by Tim Horton.
Source/WebCore:

Replace the special-case, but wrong, GraphicsLayer traversal in setIsInWindowIncludingDescendants()
which forgot to hit masks and replica layers with a generic traverse() function, which
is then used for setting 'inWindow' as well as resetting tracked repaints.

Tests: compositing/tiling/tiled-mask-inwindow.html

compositing/tiling/tiled-reflection-inwindow.html

  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::layerWithDocumentOverlays):
(WebCore::PageOverlayController::layerWithViewOverlays):

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::setIsInWindow):
(WebCore::GraphicsLayer::setReplicatedByLayer):
(WebCore::GraphicsLayer::traverse):
(WebCore::GraphicsLayer::setIsInWindowIncludingDescendants): Deleted.

  • platform/graphics/GraphicsLayer.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::setIsInWindow):
(WebCore::RenderLayerCompositor::resetTrackedRepaintRects):
(WebCore::resetTrackedRepaintRectsRecursive): Deleted.

Tools:

Reparent the web view before we try to fetch it via:

[[[window contentView] subviews] objectAtIndex:0];

which would throw an exception if the test unparented it.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentStateBeforeTesting):
(runTest):

LayoutTests:

  • compositing/tiling/tiled-mask-inwindow-expected.txt: Added.
  • compositing/tiling/tiled-mask-inwindow.html: Added.
  • compositing/tiling/tiled-reflection-inwindow-expected.txt: Added.
  • compositing/tiling/tiled-reflection-inwindow.html: Added.
  • platform/ios-simulator-wk1/compositing/tiling/tiled-mask-inwindow-expected.txt: Added.
  • platform/ios-simulator-wk1/compositing/tiling/tiled-reflection-inwindow-expected.txt: Added.
  • platform/ios-simulator-wk2/compositing/tiling/tiled-mask-inwindow-expected.txt: Added.
  • platform/ios-simulator-wk2/compositing/tiling/tiled-reflection-inwindow-expected.txt: Added.
  • platform/mac-wk1/compositing/tiling/tiled-mask-inwindow-expected.txt: Added.
  • platform/mac-wk1/compositing/tiling/tiled-reflection-inwindow-expected.txt: Added.
2:40 PM Changeset in webkit [212152] by Simon Fraser
  • 3 edits
    2 adds in trunk

Tiled layers are sometimes left with some tiles when outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=168104
Source/WebCore:

rdar://problem/30459055

Reviewed by Tim Horton.

When the coverage rect of a TiledBacking goes from a non-empty rect to an empty rect, we
shouldn't just early return from TileGrid::revalidateTiles(), otherwise we are left with some
tiles. Run through the function as normal, which will remove all the tiles for an empty coverage rect.

Minor logging changes.

Test: tiled-drawing/tile-coverage-iframe-to-zero-coverage.html

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::revalidateTiles):

LayoutTests:

Reviewed by Tim Horton.

  • tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt: Added.
  • tiled-drawing/tile-coverage-iframe-to-zero-coverage.html: Added.
2:36 PM Changeset in webkit [212151] by Alan Bujtas
  • 4 edits
    1 add in trunk

Mail hangs when removing multiple rows from large table.
https://bugs.webkit.org/show_bug.cgi?id=168103
<rdar://problem/30090186>

Reviewed by Ryosuke Niwa.

PerformanceTests:

  • DOM/large-table-edit.html: Added.

Source/WebCore:

DeleteSelectionCommand::removeNode doesn't actually destroy table structure items,
but instead it removes their content. In order to be able to continue editing the table after
the delete, we need to ensure that its cells' width and height are > 0. Currently we issue layout on
each table item recursively.
This patch delays the layout until after we've finished with the entire subtree delete (10x progression).

Performance test added.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::insertBlockPlaceholderForTableCellIfNeeded):
(WebCore::DeleteSelectionCommand::removeNodeUpdatingStates):
(WebCore::shouldRemoveContentOnly):
(WebCore::DeleteSelectionCommand::removeNode):

  • editing/DeleteSelectionCommand.h:
2:28 PM Changeset in webkit [212150] by Joseph Pecoraro
  • 49 edits in trunk

[Resource Timing] Enable Resource Timing by default in Tests
https://bugs.webkit.org/show_bug.cgi?id=168145

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • loader/ResourceTimingInformation.cpp:

(WebCore::ResourceTimingInformation::addResourceTiming):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setResourceTimingEnabled): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

No longer needed for tests.

Source/WebKit/mac:

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

(+[WebPreferences initialize]):
(-[WebPreferences resourceTimingEnabled]):
(-[WebPreferences setResourceTimingEnabled:]):

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

(-[WebView _preferencesChanged:]):

Source/WebKit/win:

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::setResourceTimingEnabled):
(WebPreferences::resourceTimingEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WebKit2:

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

(WKPreferencesSetResourceTimingEnabled):
(WKPreferencesGetResourceTimingEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

  • fast/dom/Window/window-properties-performance-resource-timing.html:
  • http/tests/misc/resource-timing-resolution.html:
  • http/tests/performance/performance-resource-timing-cached-entries-expected.txt:
  • http/tests/performance/performance-resource-timing-cached-entries.html:
  • http/tests/performance/performance-resource-timing-entries-iterable.html:
  • http/tests/performance/performance-resource-timing-entries.html:
  • http/tests/performance/performance-resource-timing-initiator-css.html:
  • http/tests/performance/performance-resource-timing-initiator-no-override.html:
  • http/tests/performance/performance-resource-timing-xhr-single-entry.html:
  • http/tests/preload/dynamic_remove_preload_href-expected.txt:
  • http/tests/preload/dynamic_remove_preload_href.html:
  • http/tests/preload/dynamic_removing_preload.html:
  • http/tests/preload/not_evicting_preload_at_onload.html:
  • http/tests/preload/single_download_preload-expected.txt:
  • http/tests/preload/single_download_preload.html:
  • resources/testharnessreport.js:

Eliminate the internals setResourceTimingEnabled way to toggle a runtime feature.

  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:

Update results when ResourceTiming is enabled.

2:16 PM Changeset in webkit [212149] by mitz@apple.com
  • 7 edits in trunk/Source

[Cocoa] Add shouldChangeSelectedRange to WKWebProcessPlugInEditingDelegate
https://bugs.webkit.org/show_bug.cgi?id=168097

Reviewed by Tim Horton.

Source/WebCore:

Added a userTriggered argument to FrameSelection::setSelectedRange so that WebKit2 can
indicate that changes should be agreed to by the delegate.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectedRange): If the change is user-triggered, check with

shouldChangeSelection.

  • editing/FrameSelection.h:

Source/WebKit2:

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInEditingDelegate.h: Declared new delegate method.
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]): Dispatch new delegate

method.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectWithGesture): Pass UserTriggered whan calling

WebCore::Frame::Selection::setSelectedRange, so that the delegate is consulted.

(WebKit::WebPage::changeBlockSelection): Ditto.
(WebKit::WebPage::updateSelectionWithTouches): Ditto.
(WebKit::WebPage::selectWithTwoTouches): Ditto.
(WebKit::WebPage::extendSelection): Ditto.
(WebKit::WebPage::selectWordBackward): Ditto,
(WebKit::WebPage::moveSelectionByOffset): Ditto.
(WebKit::WebPage::selectPositionAtPoint): Ditto.
(WebKit::WebPage::selectPositionAtBoundaryWithDirection): Ditto.
(WebKit::WebPage::moveSelectionAtBoundaryWithDirection): Ditto.
(WebKit::WebPage::selectTextWithGranularityAtPoint): Ditto.
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary): Ditto.
(WebKit::WebPage::updateSelectionWithExtentPoint): Ditto.

1:58 PM Changeset in webkit [212148] by Jonathan Bedard
  • 7 edits
    2 deletes in trunk

Removing LayoutTestRelay
https://bugs.webkit.org/show_bug.cgi?id=165927

Reviewed by Daniel Bates.
Part 2

LayoutTestRelay uses SPI, since recent versions of the iOS SDK allow for installing apps on
simulators through simctl (iOS 10 and later), use this functionality instead.

Source/WebCore:

  • platform/RuntimeApplicationChecks.mm:

(WebCore::IOSApplication::isDumpRenderTree): Update comment to reflect removal of LayoutTestRelay.

Tools:

  • BuildSlaveSupport/built-product-archive:

(archiveBuiltProduct): Remove archiving of LayoutTestRelay as it is no longer being built.
Added a FIXME that we will need to implement similar archiving machinery once we build
ImageDiff for Mac when building WebKit for iOS. Currently ImageDiff is built with the iOS SDK.

  • BuildSlaveSupport/kill-old-processes:

(main): Remove LayoutTestRelay from list of processes.

  • LayoutTestRelay: Removed LayoutTestRelay.
  • Makefile:
  • Scripts/build-layouttestrelay: Removed.
  • Scripts/build-webkit: Removed LayoutTestRelay references.
1:51 PM Changeset in webkit [212147] by Chris Dumez
  • 6 edits
    2 adds in trunk/LayoutTests

Update LayoutTests/resources/testharness.js
https://bugs.webkit.org/show_bug.cgi?id=168100

Reviewed by Youenn Fablet.

Update LayoutTests/resources/testharness.js to match the web-platform-tests
one landed in r211930.

  • media/track/w3c/interfaces/HTMLTrackElement/srclang-expected.txt:
  • media/track/w3c/interfaces/TextTrack/language-expected.txt:
  • resources/testharness.js:

(SharedWorkerTestEnvironment):
(ServiceWorkerTestEnvironment):
(create_test_environment):
(promise_test):
(EventWatcher):
(is_node):
(format_value):

  • streams/shadowing-Promise-expected.txt:
  • streams/shadowing-Promise.html:
  • streams/streams-public-array-api-expected.txt: Added.
  • streams/streams-public-array-api.html: Added.
1:43 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
1:34 PM Changeset in webkit [212146] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

StructureStubInfo::considerCaching() should write barrier its owner CodeBlock when buffering a new Structure.
https://bugs.webkit.org/show_bug.cgi?id=168137
<rdar://problem/28656664>

Reviewed by Filip Pizlo.

If we're adding a new structure to StructureStubInfo's bufferedStructures, we
should write barrier the StubInfo's owner CodeBlock because that structure may be
collected during the next GC. Write barrier-ing the owner CodeBlock ensures that
CodeBlock::finalizeBaselineJITInlineCaches() is called on it during the GC,
which, in turn, gives the StructureStubInfo the opportunity to filter out the
dead structure.

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::considerCaching):

  • jit/JITOperations.cpp:
1:31 PM Changeset in webkit [212145] by achristensen@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Fix iOS libwebrtc build after r212127
https://bugs.webkit.org/show_bug.cgi?id=168134

  • Configurations/libwebrtc.xcconfig:
  • libwebrtc.xcodeproj/project.pbxproj:

I got a little carried away removing ObjC sources.
We still need RTCLogging.mm and RTCUIApplication.mm on iOS.
Also sorted the project file.

1:29 PM Changeset in webkit [212144] by commit-queue@webkit.org
  • 8 edits
    1 add in trunk/Source/WebCore

[WebRTC] Implement Outgoing libwebrtc audio source support
https://bugs.webkit.org/show_bug.cgi?id=168118

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

No new automated tests as we need the audio rendering to work to test the whole loop.

Using an AudioSampleDataSource to convert the captured data to libwebrtc expected format.
Capturing and pushing data happens in the capture thread.
Pulling of converted data happens in libwebrtc thread.

Introducing LibWebRTCAudioFormat.h to centralize libwbebrtc expected audio format.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/WebAudioBufferList.cpp:

(WebCore::WebAudioBufferList::WebAudioBufferList): Missing initialization leads to assertion failure.

  • platform/audio/mac/AudioSampleBufferList.cpp:

(WebCore::AudioSampleBufferList::copyFrom): In case of interleaved channels, there is one buffer but two channels.

  • platform/audio/mac/AudioSampleDataSource.cpp:

(WebCore::AudioSampleDataSource::pushSamples):
(WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks):

  • platform/audio/mac/AudioSampleDataSource.h:
  • platform/mediastream/libwebrtc/LibWebRTCAudioFormat.h: Added.
  • platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp:

(WebCore::libwebrtcAudioFormat):
(WebCore::RealtimeOutgoingAudioSource::RealtimeOutgoingAudioSource):
(WebCore::RealtimeOutgoingAudioSource::sourceMutedChanged):
(WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable):
(WebCore::RealtimeOutgoingAudioSource::pullAudioData):

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.h:
1:24 PM Changeset in webkit [212143] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebKit/mac

cleanup WebLocalizableStrings.
https://bugs.webkit.org/show_bug.cgi?id=168078

Reviewed by Alexey Proskuryakov.

  • Misc/WebLocalizableStrings.h: Make visibility hidden for WebLocalizableStringsBundle

as it's for each framework's own consumption, and never needs to be exported.

1:17 PM Changeset in webkit [212142] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r211829): Web Inspector: Elements tab is blank when added after page load
https://bugs.webkit.org/show_bug.cgi?id=168142

Reviewed by Brian Burg.

The Elements tab can be shown in two ways: by adding the Elements tab
from the "New Tab" tab, or via Inspect Element. In both cases we should
be checking that the ContentView exists, and create it if needed.

  • UserInterface/Views/ElementsTabContentView.js:

(WebInspector.ElementsTabContentView.prototype.showRepresentedObject):
(WebInspector.ElementsTabContentView.prototype.shown):

1:15 PM Changeset in webkit [212141] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip some very slow WebCryptoAPI tests.

Unreviewed test gardening.

1:15 PM Changeset in webkit [212140] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

HTMLConstructionSiteTask::Insert should never be called on a node with a parent
https://bugs.webkit.org/show_bug.cgi?id=168099

Reviewed by Sam Weinig.

insertAlreadyParsedChild always use HTMLConstructionSiteTask::InsertAlreadyParsedChild instead
of using HTMLConstructionSiteTask::Insert when fostering a child.

Also combine the step to take all children and re-parenting into a single task instead of
separately issuing TakeAllChildren and Reparent tasks.

No new tests since this is a refactoring.

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::insert): Now asserts that the child node never have a parent.
(WebCore::executeInsertAlreadyParsedChildTask): Moved the code to remove the parent here.
(WebCore::executeTakeAllChildrenAndReparentTask): Renamed from executeTakeAllChildrenTask
now that this function also does the reparenting.
(WebCore::executeTask):
(WebCore::HTMLConstructionSite::reparent): Removed the variant only used with takeAllChildren.
(WebCore::HTMLConstructionSite::insertAlreadyParsedChild): Always use InsertAlreadyParsedChild
instead of calling fosterParent which uses Insert when fostering parents.
(WebCore::HTMLConstructionSite::takeAllChildrenAndReparent): Renamed from takeAllChildren.

  • html/parser/HTMLConstructionSite.h:

(WebCore::HTMLConstructionSiteTask:Operation):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):

1:08 PM Changeset in webkit [212139] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WTF

Fix misleading comment in RunLoop.h
https://bugs.webkit.org/show_bug.cgi?id=167832

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-10
Reviewed by Sam Weinig.

  • wtf/RunLoop.h:

Mac initialization used to force using CFRunLoopGetMain(). Now however it just
uses RunLoop::current which uses CFRunLoopGetCurrent(). So this comment that
it can be done on any thread is misleading and can lead to incorrect behavior
if it is actually done on a non-main thread on Mac.

12:59 PM Changeset in webkit [212138] by jiewen_tan@apple.com
  • 3 edits
    1 delete in trunk/LayoutTests

[WebCrypto] Remove imported/w3c/WebCryptoAPI tests
https://bugs.webkit.org/show_bug.cgi?id=168064

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • WebCryptoAPI/OWNERS: Removed.
  • WebCryptoAPI/README.md: Removed.
  • WebCryptoAPI/WebCryptoAPI.idl: Removed.
  • WebCryptoAPI/digest/digest.js: Removed.
  • WebCryptoAPI/digest/digest.worker.js: Removed.
  • WebCryptoAPI/digest/test_digest-expected.txt: Removed.
  • WebCryptoAPI/digest/test_digest.html: Removed.
  • WebCryptoAPI/digest/w3c-import.log: Removed.
  • WebCryptoAPI/encrypt_decrypt/aes.js: Removed.
  • WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js: Removed.
  • WebCryptoAPI/encrypt_decrypt/aes_cbc_vectors.js: Removed.
  • WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js: Removed.
  • WebCryptoAPI/encrypt_decrypt/aes_ctr_vectors.js: Removed.
  • WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js: Removed.
  • WebCryptoAPI/encrypt_decrypt/aes_gcm_vectors.js: Removed.
  • WebCryptoAPI/encrypt_decrypt/rsa.js: Removed.
  • WebCryptoAPI/encrypt_decrypt/rsa.worker.js: Removed.
  • WebCryptoAPI/encrypt_decrypt/rsa_vectors.js: Removed.
  • WebCryptoAPI/encrypt_decrypt/test_aes_cbc-expected.txt: Removed.
  • WebCryptoAPI/encrypt_decrypt/test_aes_cbc.html: Removed.
  • WebCryptoAPI/encrypt_decrypt/test_aes_ctr-expected.txt: Removed.
  • WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html: Removed.
  • WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt: Removed.
  • WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html: Removed.
  • WebCryptoAPI/encrypt_decrypt/test_rsa_oaep-expected.txt: Removed.
  • WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html: Removed.
  • WebCryptoAPI/encrypt_decrypt/w3c-import.log: Removed.
  • WebCryptoAPI/generateKey/failures.js: Removed.
  • WebCryptoAPI/generateKey/failures.worker.js: Removed.
  • WebCryptoAPI/generateKey/failures_AES-CBC.worker.js: Removed.
  • WebCryptoAPI/generateKey/failures_AES-CTR.worker.js: Removed.
  • WebCryptoAPI/generateKey/failures_AES-GCM.worker.js: Removed.
  • WebCryptoAPI/generateKey/failures_AES-KW.worker.js: Removed.
  • WebCryptoAPI/generateKey/failures_ECDH.worker.js: Removed.
  • WebCryptoAPI/generateKey/failures_ECDSA.worker.js: Removed.
  • WebCryptoAPI/generateKey/failures_HMAC.worker.js: Removed.
  • WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.js: Removed.
  • WebCryptoAPI/generateKey/failures_RSA-PSS.worker.js: Removed.
  • WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.js: Removed.
  • WebCryptoAPI/generateKey/successes.js: Removed.
  • WebCryptoAPI/generateKey/successes.worker.js: Removed.
  • WebCryptoAPI/generateKey/successes_AES-CBC.worker.js: Removed.
  • WebCryptoAPI/generateKey/successes_AES-CTR.worker.js: Removed.
  • WebCryptoAPI/generateKey/successes_AES-GCM.worker.js: Removed.
  • WebCryptoAPI/generateKey/successes_AES-KW.worker.js: Removed.
  • WebCryptoAPI/generateKey/successes_ECDH.worker.js: Removed.
  • WebCryptoAPI/generateKey/successes_ECDSA.worker.js: Removed.
  • WebCryptoAPI/generateKey/successes_HMAC.worker.js: Removed.
  • WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.js: Removed.
  • WebCryptoAPI/generateKey/successes_RSA-PSS.worker.js: Removed.
  • WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.js: Removed.
  • WebCryptoAPI/generateKey/test_aes-cbc-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_aes-cbc.html: Removed.
  • WebCryptoAPI/generateKey/test_aes-ctr-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_aes-ctr.html: Removed.
  • WebCryptoAPI/generateKey/test_failures-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_failures.html: Removed.
  • WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_failures_AES-CBC.html: Removed.
  • WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_failures_AES-CTR.html: Removed.
  • WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_failures_AES-GCM.html: Removed.
  • WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_failures_AES-KW.html: Removed.
  • WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_failures_ECDH.html: Removed.
  • WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_failures_ECDSA.html: Removed.
  • WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_failures_HMAC.html: Removed.
  • WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html: Removed.
  • WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_failures_RSA-PSS.html: Removed.
  • WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html: Removed.
  • WebCryptoAPI/generateKey/test_successes-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_successes.html: Removed.
  • WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_successes_AES-CBC.html: Removed.
  • WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_successes_AES-CTR.html: Removed.
  • WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_successes_AES-GCM.html: Removed.
  • WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_successes_AES-KW.html: Removed.
  • WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_successes_ECDH.html: Removed.
  • WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_successes_ECDSA.html: Removed.
  • WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_successes_HMAC.html: Removed.
  • WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html: Removed.
  • WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_successes_RSA-PSS.html: Removed.
  • WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt: Removed.
  • WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html: Removed.
  • WebCryptoAPI/generateKey/w3c-import.log: Removed.
  • WebCryptoAPI/getRandomValues.js: Removed.
  • WebCryptoAPI/getRandomValues.worker.js: Removed.
  • WebCryptoAPI/idlharness-expected.txt: Removed.
  • WebCryptoAPI/idlharness.html: Removed.
  • WebCryptoAPI/idlharness.worker.js: Removed.
  • WebCryptoAPI/test_getRandomValues-expected.txt: Removed.
  • WebCryptoAPI/test_getRandomValues.html: Removed.
  • WebCryptoAPI/tools/generate.py: Removed.
  • WebCryptoAPI/tools/w3c-import.log: Removed.
  • WebCryptoAPI/util/helpers.js: Removed.
  • WebCryptoAPI/util/w3c-import.log: Removed.
  • WebCryptoAPI/w3c-import.log: Removed.

LayoutTests:

Remove test expectations of imported/w3c/WebCryptoAPI tests.

12:51 PM Changeset in webkit [212137] by commit-queue@webkit.org
  • 1 edit
    1 delete in trunk/LayoutTests

Remove platform expectations without tests
https://bugs.webkit.org/show_bug.cgi?id=168139

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-10
Reviewed by Sam Weinig.

  • platform/gtk/http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object-expected.txt: Removed.
  • platform/gtk/http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect-expected.txt: Removed.
12:45 PM Changeset in webkit [212136] by Chris Dumez
  • 2 edits in trunk/LayoutTests

fast/forms/formsubmission-appendFormData-crash.html times out on WebKit1
https://bugs.webkit.org/show_bug.cgi?id=168133

Reviewed by Brent Fulgham.

Call testRunner.notifyDone() synchronously instead of doing it in a
setTimeout(). The test no longer times out on WK1 and still reproduces
the original bug.

  • fast/forms/formsubmission-appendFormData-crash.html:
12:39 PM Changeset in webkit [212135] by jiewen_tan@apple.com
  • 2 edits in trunk/Tools

[WebCrypto] Add WebCryptoAPI to watchlist
https://bugs.webkit.org/show_bug.cgi?id=168138

Reviewed by Youenn Fablet.

  • Scripts/webkitpy/common/config/watchlist:
12:38 PM Changeset in webkit [212134] by beidson@apple.com
  • 13 edits in trunk

Replace all WebKit Library Version checks in WK2 with SDK version checks.
https://bugs.webkit.org/show_bug.cgi?id=168124

Reviewed by Geoffrey Garen.

Source/WebKit2:

This change gets rid of WebKit Library Version checks and replaces them with SDK version checks.

To allow our tools to still be able to test new behaviors even when built against older SDKs,
it also opts them into an SPI default to have "linkedOnOrAfter()" always return true.

  • Shared/Cocoa/CompletionHandlerCallChecker.mm:

(WebKit::shouldThrowExceptionForDuplicateCompletionHandlerCall):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

  • UIProcess/Cocoa/VersionChecks.h:

(WebKit::linkedOnOrAfter): Deleted.

  • UIProcess/Cocoa/VersionChecks.mm:

(WebKit::linkedOnOrAfter):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::isNetworkCacheEnabled):

Tools:

For each of our tools that use WebKit2, opt them in to the new linkedOnOrAfter(Everything) setting.

  • MiniBrowser/mac/main.m:

(main):

  • MobileMiniBrowser/MobileMiniBrowser/main.m:

(main):

  • TestWebKitAPI/ios/mainIOS.mm:

(main):

  • TestWebKitAPI/mac/mainMac.mm:

(main):

  • WebKitTestRunner/ios/mainIOS.mm:

(main):

  • WebKitTestRunner/mac/main.mm:

(setDefaultsToConsistentValuesForTesting):

12:35 PM Changeset in webkit [212133] by matthew_hanson@apple.com
  • 21 edits in branches/safari-603-branch

Merge r212131. rdar://problem/30271744

12:34 PM Changeset in webkit [212132] by fpizlo@apple.com
  • 2 edits in trunk/LayoutTests

LayoutTest workers/sab/postMessage-clones.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=168129

Unreviewed, make this test more deterministic.

  • workers/sab/postMessage-clones.html:
12:26 PM Changeset in webkit [212131] by hyatt@apple.com
  • 21 edits in trunk

[CSS Parser] Make intercap property values serialize correctly
https://bugs.webkit.org/show_bug.cgi?id=168073

Reviewed by Zalan Bujtas.

Source/WebCore:

Fix CSS value keywords to preserve case when the value contains capital
letters. Examples include optimizeSpeed, translateX, scaleY, etc.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EPointerEvents):
(WebCore::CSSPrimitiveValue::operator TextRenderingMode):
(WebCore::CSSPrimitiveValue::operator EImageRendering):
(WebCore::CSSPrimitiveValue::operator EColorInterpolation):
(WebCore::CSSPrimitiveValue::operator EColorRendering):
(WebCore::CSSPrimitiveValue::operator EShapeRendering):

  • css/MediaQueryEvaluator.cpp:

(WebCore::colorGamutEvaluate):

  • css/SVGCSSValueKeywords.in:
  • css/TransformFunctions.cpp:

(WebCore::transformOperationType):
(WebCore::transformsForValue):

  • css/makevalues.pl:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::parseTransformTranslateArguments):
(WebCore::parseSimpleTransformValue):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeTransformValue):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):

LayoutTests:

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/css/image-rendering-parsing-expected.txt:
  • fast/css/parsing-text-rendering-expected.txt:
  • fast/css/resources/parsing-text-rendering.js:
  • fast/css/script-tests/image-rendering-parsing.js:
  • svg/css/getComputedStyle-basic-expected.txt:
  • svg/css/script-tests/shape-rendering-parsing.js:
  • svg/css/shape-rendering-parsing-expected.txt:
  • transforms/2d/transform-value-types-expected.txt:
  • transforms/2d/transform-value-types.html:
11:52 AM Changeset in webkit [212130] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Fix iOS libwebrtc build after r212127
https://bugs.webkit.org/show_bug.cgi?id=168134

  • libwebrtc.xcodeproj/project.pbxproj:

I got a little carried away removing -fobjc-arc. These files need it.
It was originally added in r211902 and these files are in the
EXCLUDED_SOURCE_FILE_NAMES[sdk=macosx*] list in libwebrtc.xcconfig
so adding this flag won't break the 32-bit El Capitan build.

11:49 AM Changeset in webkit [212129] by fpizlo@apple.com
  • 2 edits in trunk/PerformanceTests

Beef up the ARES-6 explainer text
https://bugs.webkit.org/show_bug.cgi?id=167867

Reviewed by Saam Barati.

Added appropriate links.

Added text that explains the subscores.

  • ARES-6/index.html:
11:33 AM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
11:26 AM Changeset in webkit [212128] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebKit/mac

WebResourceLoadDelegatePrivate.h cannot be imported standalone
https://bugs.webkit.org/show_bug.cgi?id=168096

Reviewed by Alexey Proskuryakov.

  • WebView/WebResourceLoadDelegatePrivate.h: Change WebNSInteger to NSInteger.
11:16 AM Changeset in webkit [212127] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Remove unnecessary automatic reference counting in libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=168134

Reviewed by Youenn Fablet.

  • libwebrtc.xcodeproj/project.pbxproj:
11:03 AM Changeset in webkit [212126] by commit-queue@webkit.org
  • 3 edits
    14 adds in trunk/Source/ThirdParty/libwebrtc

[WebRTC] Activate libwebrtc G711/G722 audio codecs
https://bugs.webkit.org/show_bug.cgi?id=168123

Patch by Youenn Fablet <youennf@gmail.com> on 2017-02-10
Reviewed by Alex Christensen.

Adding G711/G722 missing codec files.
Activating use of these in the build system.

  • Configurations/libwebrtc.xcconfig:
  • Source/webrtc/modules/audio_coding/codecs/g711/g711.c: Added.

(ulaw_to_alaw):

  • Source/webrtc/modules/audio_coding/codecs/g711/g711.h: Added.
  • Source/webrtc/modules/audio_coding/codecs/g722/audio_decoder_g722.cc: Added.
  • Source/webrtc/modules/audio_coding/codecs/g722/audio_decoder_g722.h: Added.
  • Source/webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.cc: Added.
  • Source/webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.h: Added.
  • Source/webrtc/modules/audio_coding/codecs/g722/g722_decode.c: Added.
  • Source/webrtc/modules/audio_coding/codecs/g722/g722_enc_dec.h: Added.
  • Source/webrtc/modules/audio_coding/codecs/g722/g722_encode.c: Added.
  • Source/webrtc/modules/audio_coding/codecs/g722/g722_interface.c: Added.
  • Source/webrtc/modules/audio_coding/codecs/g722/g722_interface.h: Added.
  • Source/webrtc/modules/audio_coding/codecs/g722/test/testG722.cc: Added.
  • libwebrtc.xcodeproj/project.pbxproj:
10:56 AM Changeset in webkit [212125] by matthew_hanson@apple.com
  • 14 edits
    4 adds in branches/safari-603-branch

Merge r211910. rdar://problem/30358835

10:21 AM Changeset in webkit [212124] by jiewen_tan@apple.com
  • 5 edits
    261 adds in trunk/LayoutTests

[WebCrypto] Import imported/w3c/web-platform-tests/WebCryptoAPI tests
https://bugs.webkit.org/show_bug.cgi?id=165723

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/WebCryptoAPI/OWNERS: Added.
  • web-platform-tests/WebCryptoAPI/README.md: Added.
  • web-platform-tests/WebCryptoAPI/WebCryptoAPI.idl: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.js: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.js: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf_vectors.js: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.js: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2_vectors.js: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.html: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.html: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_hkdf-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_hkdf.html: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/w3c-import.log: Added.
  • web-platform-tests/WebCryptoAPI/digest/digest.js: Added.
  • web-platform-tests/WebCryptoAPI/digest/digest.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/digest/digest.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/digest/digest.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/digest/test_digest-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/digest/test_digest.html: Added.
  • web-platform-tests/WebCryptoAPI/digest/w3c-import.log: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes.js: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc_vectors.js: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr_vectors.js: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm_vectors.js: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.js: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/rsa_vectors.js: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_cbc-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_cbc.html: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_ctr-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html: Added.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/w3c-import.log: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html: Added.
  • web-platform-tests/WebCryptoAPI/generateKey/w3c-import.log: Added.
  • web-platform-tests/WebCryptoAPI/getRandomValues.js: Added.
  • web-platform-tests/WebCryptoAPI/getRandomValues.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/getRandomValues.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/getRandomValues.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/idlharness-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/idlharness.html: Added.
  • web-platform-tests/WebCryptoAPI/idlharness.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/idlharness.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/idlharness.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/import_export/ec_importKey.js: Added.
  • web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.js: Added.
  • web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.js: Added.
  • web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey.html: Added.
  • web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey.html: Added.
  • web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey.html: Added.
  • web-platform-tests/WebCryptoAPI/import_export/w3c-import.log: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.js: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/ecdsa_vectors.js: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/hmac.js: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/hmac.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/hmac.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/hmac.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/hmac_vectors.js: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/rsa.js: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs_vectors.js: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.worker.js: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss_vectors.js: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa.html: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_hmac-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_hmac.html: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pkcs-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pkcs.html: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pss-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pss.html: Added.
  • web-platform-tests/WebCryptoAPI/sign_verify/w3c-import.log: Added.
  • web-platform-tests/WebCryptoAPI/test_getRandomValues-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/test_getRandomValues.html: Added.
  • web-platform-tests/WebCryptoAPI/tools/generate.py: Added.
  • web-platform-tests/WebCryptoAPI/tools/w3c-import.log: Added.
  • web-platform-tests/WebCryptoAPI/util/helpers.js: Added.
  • web-platform-tests/WebCryptoAPI/util/w3c-import.log: Added.
  • web-platform-tests/WebCryptoAPI/w3c-import.log: Added.
  • web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.html: Added.
  • web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/w3c-import.log: Added.
  • web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.js: Added.
  • web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js: Added.

LayoutTests:

Skip superset/unsupported tests and mark slow tests as Slow.

  • tests-options.json:
10:01 AM Changeset in webkit [212123] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark compositing/masks/solid-color-masked.html as failing on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=168054

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
9:54 AM Changeset in webkit [212122] by Brent Fulgham
  • 3 edits in branches/safari-603-branch/Source/WebCore

Merge r212026. rdar://problem/30096323

2017-02-09 Chris Dumez <Chris Dumez>

Crash under FormSubmission::create()
https://bugs.webkit.org/show_bug.cgi?id=167200
<rdar://problem/30096323>

Reviewed by Darin Adler.

The issue is that FormSubmission::create() was iterating over
form.associatedElements() as was calling Element::appendFormData()
in the loop. HTMLObjectElement::appendFormData() was calling
pluginWidget(PluginLoadingPolicy::Load) which causes a synchronous
layout and can fire events (such as focus event) synchronously.
Firing those events synchronously allows the JS to modify the
form.associatedElements() vector we are currently iterating on.

To avoid this issue, we now call pluginWidget(PluginLoadingPolicy::DoNotLoad)
in HTMLObjectElement::appendFormData() as we are not allowed to fire
synchronous events at this point. I also added a security assertion
in FormSubmission::create() to catch cases where we fire JS events
while iterating over the form associated elements to more easily
notice these things in the future.

Test: fast/forms/formsubmission-appendFormData-crash.html

  • html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::appendFormData):
  • loader/FormSubmission.cpp: (WebCore::FormSubmission::create):
9:46 AM Changeset in webkit [212121] by Brent Fulgham
  • 2 edits in branches/safari-603-branch/Source/WebCore

Unreviewed build fix.

  • dom/Document.cpp:

(WebCore::Document::adoptNode): isConnected -> inDocument.

9:45 AM Changeset in webkit [212120] by matthew_hanson@apple.com
  • 4 edits
    2 deletes in branches/safari-603-branch

Roll out r212026 via r212118. rdar://problem/30096323

9:44 AM Changeset in webkit [212119] by Ryan Haddad
  • 2 edits
    1 copy in trunk/LayoutTests

Add platform specific expected.txt file for fast/text/mark-matches-overflow-clip.html after r212113.

Unreviewed test gardening.

  • fast/text/mark-matches-overflow-clip-expected.txt:
  • platform/gtk/fast/text/mark-matches-overflow-clip-expected.txt: Copied from LayoutTests/fast/text/mark-matches-overflow-clip-expected.txt.
9:42 AM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
9:33 AM Changeset in webkit [212118] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-603-branch

Merge r212026. rdar://problem/30096323

9:31 AM Changeset in webkit [212117] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Merge r211495. rdar://problem/30106362

9:29 AM Changeset in webkit [212116] by BJ Burg
  • 26 edits in trunk/Source

[Cocoa] Web Inspector: generate an NS_ENUM containing platforms supported by the protocol code generator
https://bugs.webkit.org/show_bug.cgi?id=168019
<rdar://problem/28718990>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

It's useful to have an symbolic value (not a string) for each of the supported platform values.
Generate this once per protocol for the Objective-C bindings. Covered by existing tests.

  • inspector/scripts/codegen/generate_objc_header.py:

(ObjCHeaderGenerator.generate_output):
(ObjCHeaderGenerator._generate_enum_for_platforms):
Create an NS_ENUM for Platform values in Platforms.

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:

(ObjCProtocolTypeConversionsHeaderGenerator.generate_output):
(ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_for_platforms):
Add type conversion/parsing methods for the newly added enum.

  • inspector/scripts/codegen/generator.py:

(Generator.stylized_name_for_enum_value):
(Generator.stylized_name_for_enum_value.replaceCallback):
Support arbitrary special-cased substrings in enums, not just all-caps. Add 'IOS' and 'MacOS'.

  • inspector/scripts/codegen/models.py:

(Platforms):
Use lower-case string values for platform names, to avoid guesswork.

(Platforms.metaclass):
(Platforms.metaclass.iter):
Make it possible to iterate over Platform instances of Platforms.

  • inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
  • inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result:
  • inspector/scripts/tests/generic/expected/domain-availability.json-result:
  • inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/generic/expected/enum-values.json-result:
  • inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
  • inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
  • inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result:
  • inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result:
  • inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result:
  • inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result:
  • inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result:
  • inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
  • inspector/scripts/tests/generic/expected/worker-supported-domains.json-result:
  • inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result:
  • inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:

Rebaseline results.

Source/WebKit2:

  • UIProcess/Automation/Automation.json: Fix the platform values to be lowercase.
9:25 AM Changeset in webkit [212115] by BJ Burg
  • 4 edits in trunk/Source/WebKit2

Web Automation: fail gracefully when a screenshot cannot be encoded as base64
https://bugs.webkit.org/show_bug.cgi?id=168095
<rdar://problem/30297427>

Reviewed by Joseph Pecoraro.

Convert platformGetBase64EncodedPNGData to return a std::optional<String>.
Return nullopt if we can't create a screenshot or convert it to base64.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::didTakeScreenshot):
(WebKit::WebAutomationSession::platformGetBase64EncodedPNGData):

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::platformGetBase64EncodedPNGData):

8:50 AM Changeset in webkit [212114] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix El Capitan build.

  • Scripts/build-webkit:

Don't build libwebrtc anywhere for now.

6:32 AM Changeset in webkit [212113] by Carlos Garcia Campos
  • 16 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Rebaseline several fast/text/ tests.

  • fast/text/mark-matches-overflow-clip-expected.txt:
  • platform/gtk/fast/text/crash-complex-text-surrogate-expected.txt:
  • platform/gtk/fast/text/hyphenate-first-word-expected.png:
  • platform/gtk/fast/text/hyphenate-first-word-expected.txt:
  • platform/gtk/fast/text/hyphenate-limit-lines-expected.png:
  • platform/gtk/fast/text/hyphenate-limit-lines-expected.txt:
  • platform/gtk/fast/text/hyphens-expected.png:
  • platform/gtk/fast/text/hyphens-expected.txt:
  • platform/gtk/fast/text/international/text-combine-image-test-expected.png:
  • platform/gtk/fast/text/international/text-combine-image-test-expected.txt:
  • platform/gtk/fast/text/international/thai-line-breaks-expected.png:
  • platform/gtk/fast/text/international/thai-line-breaks-expected.txt:
  • platform/gtk/fast/text/orientation-sideways-expected.png:
  • platform/gtk/fast/text/orientation-sideways-expected.txt:
  • platform/gtk/fast/text/whitespace/023-expected.txt:
5:57 AM Changeset in webkit [212112] by Carlos Garcia Campos
  • 4 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Rebaseline fast/table/ tests.

  • platform/gtk/fast/table/border-collapsing/004-vertical-expected.png:
  • platform/gtk/fast/table/border-collapsing/004-vertical-expected.txt:
  • platform/gtk/fast/table/border-collapsing/cached-change-cell-border-width-expected.txt:
2:51 AM Changeset in webkit [212111] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations of CSS shapes duplicated tests.

  • platform/gtk/TestExpectations:
2:40 AM Changeset in webkit [212110] by zandobersek@gmail.com
  • 11 edits
    2 adds in trunk

[EME] Implement MediaKeySession::load()
https://bugs.webkit.org/show_bug.cgi?id=168041

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Implement the MediaKeySession::load() method, tracing the steps as they
are defined in the EME specification. The only exception is step 8.3,
which requires additional facility that tracks currently open sessions
and provides information whether for a given session ID there's already
a MediaKeySession that's not yet been closed.

Session ID sanitization is done through the CDM::sanitizeSessionId()
method, which relays the task to the CDMPrivate implementation.

The CDMInstance::loadSession() virtual method is called with the session
type, sanitized ID, the Document's origin (in string form) and the
callback that's invoked upon completion of the task. The callback
checks whether the operation was successful, or examines the reason for
the load failure in case it wasn't, rejecting the promise in the latter
case either immediately or in the following task at the latest.

When the load was successful, the optional known keys, expiration time
and message are handled appropriately, and the promise is resolved.

MockCDM::sanitizeSessionId() implementation only treats
'valid-loaded-session' as a valid session ID.
MockCDMInstance::loadSession() implementation is kept slim for now, only
providing the 'license-renewal' message when invoking the passed-in
callback. Known keys and expiration time will also be tested once the
relevant MediaKeySession algorithms are implemented.

Test: media/encrypted-media/mock-MediaKeySession-load.html

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::sanitizeSessionId):

  • Modules/encryptedmedia/CDM.h:
  • Modules/encryptedmedia/CDMInstance.h:
  • Modules/encryptedmedia/CDMPrivate.h:
  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::load):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDM::sanitizeSessionId):
(WebCore::MockCDMInstance::loadSession):

  • testing/MockCDMFactory.h:

LayoutTests:

Add the mock-MediaKeySession-load.html test, testing the basic behavior
of the MediaKeySession::load() implementation. Invalid session IDs and
session types are tested to ensure the returned promise is rejected.
A simplistic test case also tests that for a valid session ID and
session type, the basic MockCDM implementation correctly 'loads' the
specified session and provides the 'license-renewal' message in return.
More tests should be added as the EME implementation advances and the
MockCDM implementations improve to cover additional cases.

  • media/encrypted-media/mock-MediaKeySession-load-expected.txt: Added.
  • media/encrypted-media/mock-MediaKeySession-load.html: Added.
  • platform/efl/TestExpectations:
  • platform/mac/TestExpectations:
2:31 AM Changeset in webkit [212109] by zandobersek@gmail.com
  • 10 edits in trunk

[EME] Implement MediaKeySession::sessionClosed()
https://bugs.webkit.org/show_bug.cgi?id=168039

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Implement the 'session closed' algorithm for MediaKeySession by
following the specified steps. After this algorithm is run, the
session should be considered closed, which we track via the m_closed
member variable on the class. This is set to true before the promise
that's accessible through the 'closed' attribute is resolved.

Because the algorithm requires the CDM instance to store any record
of key usage when the session's type is 'persistent-usage-record', the
storeRecordOfKeyUsage() virtual method is added to the CDMInstance
interface. MockCDMInstance implementation is left unimplemented for now.

JSMediaKeySession::closed() accessor now has a custom implementation
that creates a deferred promise for that object if there's none yet, and
shares it with the wrapped class through the registerClosedPromise()
method, storing a reference to the promise in the m_closedPromise
member variable, or resolving the promise immediately if the session was
already closed.

Test cases added to media/encrypted-media/mock-MediaKeySession-close.html.

  • Modules/encryptedmedia/CDMInstance.h:
  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::registerClosedPromise):
(WebCore::MediaKeySession::sessionClosed):

  • Modules/encryptedmedia/MediaKeySession.h:
  • bindings/js/JSMediaKeySessionCustom.cpp:

(WebCore::JSMediaKeySession::closed):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstance::storeRecordOfKeyUsage):

  • testing/MockCDMFactory.h:

LayoutTests:

Enhance the mock-MediaKeySession-close.html test by adding test cases
covering the dispatch of the promise that's accessible through the
'closed' attribute and covering the session closure status, making
sure that various operations properly resolve or reject after the
session object was closed.

  • media/encrypted-media/mock-MediaKeySession-close-expected.txt:
  • media/encrypted-media/mock-MediaKeySession-close.html:
2:28 AM Changeset in webkit [212108] by aestes@apple.com
  • 3 edits in trunk/Tools

Move two MiniBrowserBundle settings out of the .pbxproj
https://bugs.webkit.org/show_bug.cgi?id=168106

Reviewed by Tim Horton.

INFOPLIST_FILE was specified in MiniBrowserBundle.xcconfig but overridden to "" in
the project file. This removes the project file override.

WRAPPER_EXTENSION was moved from the project file to MiniBrowserBundle.xcconfig.

  • MiniBrowser/Configurations/MiniBrowserBundle.xcconfig:
  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
2:22 AM Changeset in webkit [212107] by zandobersek@gmail.com
  • 12 edits in trunk

[EME] Implement MediaKeySession::updateKeyStatuses(), MediaKeyStatusMap
https://bugs.webkit.org/show_bug.cgi?id=167888

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Implement MediaKeySession::updateKeyStatuses(), transforming the passed-in
KeyStatusVector into a Vector mapping the key IDs to MediaKeyStatus values.
A keystatuseschange event is fired on the MediaKeySession object afterwards.
The queueing of the task that runs the 'attemp to resume playback' on the
related HTMLMediaElement objects isn't done yet since that algorithm isn't
implemented yet.

The statuses Vector is stored on the MediaKeySession object. That Vector is
then exposed through the MediaKeyStatusMap object, each such object being
unique to one MediaKeySession object. The implementation of MediaKeyStatusMap
thus keeps a reference to the session object as long as that object is alive,
and queries the MediaKeySession::statuses() getter to access the Vector that
contains status information for all the key IDs.

MediaKeyStatusMap::Iterator object keeps a reference to the MediaKeyStatusMap
object and accesses the statuses by indexing into the status Vector of the
related MediaKeySession object.

CDMInstance::updateLicense() now accepts the session ID string as the first
argument, making it possible to specify which session should be updated.

MockCDMFactory::keysForSessionWithID() returns an optional reference to the
Vector value in the session map that lists all the key IDs that are being
stored for that session.

MockCDMInstance::updateLicense() now detects the 'keys-changed' entry in the
passed-in response data, and upon detecting that constructs a KeyStatusVector
object containing all the keys for that session. KeyStatus::Usable is returned
for each object at the moment, but this should be adjustable in the future
through additional parameters passed through the response data. The Vector
object is then passed to the callback and is then passed to the 'update key
statuses' algorithm in MediaKeySession.

Covered by a test case in media/encrypted-media/mock-MediaKeySession-update.html.

  • Modules/encryptedmedia/CDMInstance.h:
  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::MediaKeySession):
(WebCore::MediaKeySession::~MediaKeySession):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::updateKeyStatuses):

  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/MediaKeyStatusMap.cpp:

(WebCore::MediaKeyStatusMap::MediaKeyStatusMap):
(WebCore::MediaKeyStatusMap::detachSession):
(WebCore::MediaKeyStatusMap::size):
(WebCore::keyIdsMatch):
(WebCore::MediaKeyStatusMap::has):
(WebCore::MediaKeyStatusMap::get):
(WebCore::MediaKeyStatusMap::Iterator::Iterator):
(WebCore::MediaKeyStatusMap::Iterator::next):

  • Modules/encryptedmedia/MediaKeyStatusMap.h:

(WebCore::MediaKeyStatusMap::create):

  • Modules/encryptedmedia/MediaKeyStatusMap.idl:
  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMFactory::keysForSessionWithID):
(WebCore::MockCDMInstance::updateLicense):

  • testing/MockCDMFactory.h:

LayoutTests:

Add another test case to the mock-MediaKeySession-update.html test that
ensures the keystatuseschange event is fired on the MediaKeySession object
and that the status of the keys is properly reported through the
MediaKeyStatusMap object associated with this MediaKeySession.

  • media/encrypted-media/mock-MediaKeySession-update-expected.txt:
  • media/encrypted-media/mock-MediaKeySession-update.html:
1:48 AM Changeset in webkit [212106] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.14.4

WebKitGTK+ 2.14.4

1:46 AM Changeset in webkit [212105] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.14

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.14.4 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.14.4.
1:17 AM Changeset in webkit [212104] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix 32-and-64-bit build on El Capitan.

  • Scripts/build-webkit:

Somebody's building with something like this:
build-webkit ARCHS="i386 x86_64"
We want this to also not build libwebrtc for now.

1:11 AM Changeset in webkit [212103] by matthew_hanson@apple.com
  • 8 edits in branches/safari-603-branch

Merge r211650. rdar://problem/30268004

1:11 AM Changeset in webkit [212102] by matthew_hanson@apple.com
  • 8 edits in branches/safari-603-branch

Merge r211375. rdar://problem/30268004

1:11 AM Changeset in webkit [212101] by matthew_hanson@apple.com
  • 13 edits in branches/safari-603-branch

Roll out r209845. rdar://problem/30114564

1:04 AM Changeset in webkit [212100] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Fix ASAN build.

  • Source/webrtc/base/sanitizer.h:

SANITIZER_UNUSED3 wasn't defined if we are using address_sanitizer but not memory_sanitizer.

12:41 AM Changeset in webkit [212099] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix 32-bit build on El Capitan.

  • Scripts/build-webkit:

The bot uses ARCHS=i386 instead of --32-bit.
This is a hack, but it should fix the bot until I can do a better fix in the morning.

12:33 AM Changeset in webkit [212098] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r212097 - Unreviewed. Fix GTK+ build with threaded compositor disabled.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModeNow):

12:26 AM Changeset in webkit [212097] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix GTK+ build with threaded compositor disabled.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModeNow):

12:16 AM Changeset in webkit [212096] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-603-branch

Merge r212029. rdar://problem/30376972

12:16 AM Changeset in webkit [212095] by matthew_hanson@apple.com
  • 6 edits
    4 adds in branches/safari-603-branch

Merge r212028. rdar://problem/30234133

12:16 AM Changeset in webkit [212094] by matthew_hanson@apple.com
  • 3 edits
    4 adds in branches/safari-603-branch

Merge r212027. rdar://problem/30145076

12:16 AM Changeset in webkit [212093] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-603-branch

Merge r212025. rdar://problem/30076615

12:16 AM Changeset in webkit [212092] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Merge r212024. rdar://problem/30051227

12:16 AM Changeset in webkit [212091] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Merge r212023. rdar://problem/30041640

12:16 AM Changeset in webkit [212090] by matthew_hanson@apple.com
  • 3 edits
    1 add in branches/safari-603-branch

Merge r212022. rdar://problem/30198083

12:16 AM Changeset in webkit [212089] by matthew_hanson@apple.com
  • 3 edits
    1 add in branches/safari-603-branch

Merge r212021. rdar://problem/30149432

12:16 AM Changeset in webkit [212088] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/LayoutTests

Merge r212020. rdar://problem/29939864

12:15 AM Changeset in webkit [212087] by matthew_hanson@apple.com
  • 7 edits
    2 adds in branches/safari-603-branch

Merge r212019. rdar://problem/30128133

12:15 AM Changeset in webkit [212086] by matthew_hanson@apple.com
  • 16 edits
    2 adds in branches/safari-603-branch

Merge r212015. rdar://problem/30054759

12:15 AM Changeset in webkit [212085] by matthew_hanson@apple.com
  • 3 edits
    1 add in branches/safari-603-branch

Merge r212009. rdar://problem/29939864

12:15 AM Changeset in webkit [212084] by matthew_hanson@apple.com
  • 3 edits
    3 adds in branches/safari-603-branch

Merge r211999. rdar://problem/29930443

12:12 AM Changeset in webkit [212083] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix 32-bit build on El Capitan.

  • Scripts/build-webkit:

Don't build i386 libwebrtc.

Feb 9, 2017:

11:57 PM Changeset in webkit [212082] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r211967 - [GTK] scroll with transparent background not repainted after scrollY >= 32768
https://bugs.webkit.org/show_bug.cgi?id=154283

Reviewed by Carlos Garcia Campos.

Due to a limitation of the pixman backend, which uses 16 bits to hold signed integers, cairo is
not able to draw anything when using transformation matrices with values bigger than 32768. When
drawing patterns into large pages, the matrices values can overflow those 16 bits, so cairo doesn't
draw anything in, which causes the reported transparent backgrounds.

The patch modifies the transformation matrices both from the current context and the pattern we
are painting, to avoid them to hold values that cannot stored in 16 bits.

There's still the possibility that this happens, but it would require using a pattern with a size
bigger than 32768.

Based on a previous patch by Gwang Yoon Hwang <yoon@igalia.com>.

No new tests.

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::drawPatternToCairoContext):

11:53 PM Changeset in webkit [212081] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r211867 - [GTK] Reduce TiledBackingStore tile coverage when on memory pressure state
https://bugs.webkit.org/show_bug.cgi?id=167980

Reviewed by Carlos Garcia Campos.

Use a smaller coverAreaMultiplier in the TiledBackingStore when in memory pressure situation, to reduce
the amount of tiles created.

No new tests.

  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::createTilesIfNeeded):
(WebCore::TiledBackingStore::createTiles):

  • platform/graphics/texmap/coordinated/TiledBackingStore.h:
11:53 PM Changeset in webkit [212080] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211721 - [GTK][EFL] Release unused UpdateAtlas when in memory pressure situation
https://bugs.webkit.org/show_bug.cgi?id=167872

Reviewed by Carlos Garcia Campos.

In a memory pressure situation, release all the unused UpdateAtlas as soon as possible, instead
of waiting 3 seconds before releasing them.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::releaseInactiveAtlasesTimerFired):
(WebKit::CompositingCoordinator::releaseAtlases):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
11:53 PM WebKitGTK/2.14.x edited by Carlos Garcia Campos
(diff)
11:32 PM Changeset in webkit [212079] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r212024 - Tear down existing renderers when adding a shadow root.
https://bugs.webkit.org/show_bug.cgi?id=167117

Patch by Antti Koivisto <Antti Koivisto> on 2017-02-09
Reviewed by Andreas Kling.

Source/WebCore:

Adding a shadow root may cause children no longer be part of the flat tree. If they had renderers
tear down code would no longer reach them.

Test: fast/shadow-dom/attach-shadow-teardown.html

  • dom/Element.cpp:

(WebCore::Element::addShadowRoot):

Tear down existing render tree when adding a shadow root.

LayoutTests:

  • fast/shadow-dom/attach-shadow-teardown-expected.txt: Added.
  • fast/shadow-dom/attach-shadow-teardown.html: Added.
11:31 PM Changeset in webkit [212078] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r212023 - Handle synchronous layout when setting a selection range
https://bugs.webkit.org/show_bug.cgi?id=167092
<rdar://problem/30041640>

Reviewed by Antti Koivisto.

Source/WebCore:

The 'innerTextElement' of a form control can change during layout due
to arbitrary JavaScript executing. Handle the case where the inner text
element has changed so that current render box height is while setting
a selection range.

Test: fast/forms/input-type-change-during-selection.html

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setSelectionRange):

LayoutTests:

  • fast/forms/input-type-change-during-selection-expected.txt: Added.
  • fast/forms/input-type-change-during-selection.html: Added.
11:31 PM Changeset in webkit [212077] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.14

Merge r211999 - Disconnect shadow children of root when detaching a frame
https://bugs.webkit.org/show_bug.cgi?id=166851
<rdar://problem/29930443>

Reviewed by Andy Estes.

Source/WebCore:

If the root of the tree we are disconnecting has a shadow element, include it in the set of
things to disconnect.

Tests: fast/shadow-dom/shadow-at-root-during-disconnect.html

  • dom/ContainerNodeAlgorithms.cpp:

(WebCore::disconnectSubframes):

LayoutTests:

  • fast/shadow-dom/resources/start.html: Added.
  • fast/shadow-dom/shadow-at-root-during-disconnect-expected.txt: Added.
  • fast/shadow-dom/shadow-at-root-during-disconnect.html: Added.
11:12 PM Changeset in webkit [212076] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations of tests using CSS3 Text each-line and hanging indent.

  • platform/gtk/TestExpectations:
10:37 PM Changeset in webkit [212075] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r211966. rdar://problem/30149422

10:37 PM Changeset in webkit [212074] by matthew_hanson@apple.com
  • 23 edits
    4 adds in branches/safari-603-branch

Merge r211965. rdar://problem/30149422

10:37 PM Changeset in webkit [212073] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603-branch

Merge r211763. rdar://problem/30380075

10:37 PM Changeset in webkit [212072] by matthew_hanson@apple.com
  • 6 edits in branches/safari-603-branch

Merge r211382. rdar://problem/29738514

10:37 PM Changeset in webkit [212071] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/LayoutTests

Merge r211968. rdar://problem/28062149

10:37 PM Changeset in webkit [212070] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r211957. rdar://problem/30029354

10:37 PM Changeset in webkit [212069] by matthew_hanson@apple.com
  • 11 edits
    4 adds in branches/safari-603-branch

Merge r211949. rdar://problem/30119483

10:37 PM Changeset in webkit [212068] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Merge r211926. rdar://problem/30275036

10:37 PM Changeset in webkit [212067] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603-branch

Merge r211915. rdar://problem/27607520

10:37 PM Changeset in webkit [212066] by matthew_hanson@apple.com
  • 10 edits in branches/safari-603-branch

Merge r211913. rdar://problem/28062149

10:37 PM Changeset in webkit [212065] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r211895. rdar://problem/30129966

10:37 PM Changeset in webkit [212064] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebKit2

Merge r211893. rdar://problem/30423806

10:36 PM Changeset in webkit [212063] by matthew_hanson@apple.com
  • 8 edits in branches/safari-603-branch

Merge r211891. rdar://problem/30423806

10:36 PM Changeset in webkit [212062] by matthew_hanson@apple.com
  • 3 edits in branches/safari-603-branch/Source/WebKit2

Merge r211094. rdar://problem/30423806

10:36 PM Changeset in webkit [212061] by matthew_hanson@apple.com
  • 3 edits in branches/safari-603-branch

Merge r211845. rdar://problem/30187368

10:36 PM Changeset in webkit [212060] by matthew_hanson@apple.com
  • 6 edits in branches/safari-603-branch/Source

Merge r211835. rdar://problem/27439617

10:36 PM Changeset in webkit [212059] by matthew_hanson@apple.com
  • 10 edits
    2 adds in branches/safari-603-branch

Merge r211758. rdar://problem/30096129

10:36 PM Changeset in webkit [212058] by matthew_hanson@apple.com
  • 12 edits
    1 add in branches/safari-603-branch/Source/WebKit2

Merge r211747. rdar://problem/30183825

10:36 PM Changeset in webkit [212057] by matthew_hanson@apple.com
  • 14 edits
    10 adds in branches/safari-603-branch

Merge r211746. rdar://problem/30107622

10:36 PM Changeset in webkit [212056] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebKit2

Merge r211736. rdar://problem/30229358

10:36 PM Changeset in webkit [212055] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r211730. rdar://problem/30251840

10:36 PM Changeset in webkit [212054] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Merge r211667. rdar://problem/28193222

10:36 PM Changeset in webkit [212053] by matthew_hanson@apple.com
  • 8 edits in branches/safari-603-branch

Merge r211663. rdar://problem/30343810

10:36 PM Changeset in webkit [212052] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebKit2

Merge r211655. rdar://problem/30344753

10:36 PM Changeset in webkit [212051] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebKit2

Merge r211652. rdar://problem/30040618

10:36 PM Changeset in webkit [212050] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r211625. rdar://problem/29168795

10:36 PM Changeset in webkit [212049] by matthew_hanson@apple.com
  • 19 edits
    2 copies in branches/safari-603-branch/Source

Merge r211622. rdar://problem/30116072

10:36 PM Changeset in webkit [212048] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603-branch

Merge r211621. rdar://problem/30221102

10:35 PM Changeset in webkit [212047] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r211613. rdar://problem/30132707

10:35 PM Changeset in webkit [212046] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Merge r211564. rdar://problem/29012252

10:35 PM Changeset in webkit [212045] by matthew_hanson@apple.com
  • 38 edits
    8 adds in branches/safari-603-branch

Merge r211254. rdar://problem/30188490

10:35 PM Changeset in webkit [212044] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/LayoutTests

Merge r211041. rdar://problem/29931587

9:26 PM Changeset in webkit [212043] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Improve IOSurfacePool logging
https://bugs.webkit.org/show_bug.cgi?id=168098

Reviewed by Tim Horton.

Pass a string to DUMP_POOL_STATISTICS so we can tell what's triggering the
logging.

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::takeSurface):
(WebCore::IOSurfacePool::addSurface):
(WebCore::IOSurfacePool::evict):
(WebCore::IOSurfacePool::collectionTimerFired):
(WebCore::IOSurfacePool::showPoolStatistics):

  • platform/graphics/cg/IOSurfacePool.h:
9:08 PM Changeset in webkit [212042] by achristensen@apple.com
  • 9 edits in trunk

Unreviewed, rolling out r212040.

Broke build. I'm not surprised

Reverted changeset:

"[WebRTC][Mac] Activate libwebrtc"
https://bugs.webkit.org/show_bug.cgi?id=167293
http://trac.webkit.org/changeset/212040

8:00 PM Changeset in webkit [212041] by Chris Dumez
  • 19 edits
    4 adds in trunk

[Mac][WK2] Use MIME type to add file extension to downloads' suggested filenames when missing
https://bugs.webkit.org/show_bug.cgi?id=168077
<rdar://problem/30412595>

Reviewed by Alex Christensen.

Source/WebCore:

Add utility function to MIMETypeRegistry that appends an extension to
a filename if necessary, based on a provided MIME type.

Tests: fast/dom/HTMLAnchorElement/anchor-file-blob-download-no-extension.html

http/tests/download/anchor-download-no-extension.html

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::appendFileExtensionIfNecessary):

  • platform/MIMETypeRegistry.h:
  • platform/cocoa/MIMETypeRegistryCocoa.mm:

(WebCore::MIMETypeRegistry::appendFileExtensionIfNecessary):

Source/WebKit2:

Use MIME type to add file extension to downloads' suggested filenames when missing:

This new behavior matches Chrome.

  • NetworkProcess/Downloads/BlobDownloadClient.cpp:

(WebKit::BlobDownloadClient::didReceiveResponseAsync):

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::didReceiveResponse):
(WebKit::Download::decideDestinationWithSuggestedFilename):

  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::findPendingDownloadLocation):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::didStart):
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):

  • UIProcess/Downloads/DownloadProxy.h:
  • UIProcess/Downloads/DownloadProxy.messages.in:

LayoutTests:

Rebaseline a couple of download tests where suggested filenames now have an extension
and extend test coverage.

  • fast/dom/HTMLAnchorElement/anchor-download-expected.txt:
  • fast/dom/HTMLAnchorElement/anchor-download-user-triggered-synthetic-click-expected.txt:
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-no-extension-expected.txt: Added.
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-no-extension.html: Added.
  • fast/dom/HTMLAnchorElement/anchor-nodownload-set-expected.txt:
  • http/tests/download/anchor-download-no-extension-expected.txt: Added.
  • http/tests/download/anchor-download-no-extension.html: Added.
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
7:39 PM Changeset in webkit [212040] by achristensen@apple.com
  • 8 edits in trunk/Source

[WebRTC][Mac] Activate libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=167293

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

Source/WebCore:

  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:

Source/WTF:

  • wtf/Platform.h:
7:33 PM Changeset in webkit [212039] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix libwebrtc build on case-sensitive file systems.

  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:
7:27 PM Changeset in webkit [212038] by pdr@google.com
  • 3 edits
    2 adds in trunk

SVG clip-path references can clip out later content
https://bugs.webkit.org/show_bug.cgi?id=164181

Reviewed by Said Abou-Hallawa.

Source/WebCore:

RenderSVGResourceClipper can modify the GraphicsContext state (through the path-only
clipping codepath) so we need to ensure RenderLayer::setupClipPath saves the context
and its caller restores it back so later content is not clipped as well.

This patch is based on a chromium patch by fs@opera.com:
https://chromium.googlesource.com/chromium/src/+/b3f7e7d2c4afb3c7e5c7eb438ff5933cbe2109b3

Test: css3/masking/clip-path-reference-restore.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupClipPath): Add a GC save and return true to restore. Also switch to downcast instead of static_cast.

LayoutTests:

Make sure applying multiple clip-path references does not clip out later content.

  • css3/masking/clip-path-reference-restore-expected.html: Added.
  • css3/masking/clip-path-reference-restore.html: Added.
7:02 PM Changeset in webkit [212037] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Fix El Capitan build.

  • libwebrtc.xcodeproj/project.pbxproj:

Remove more SSE4 code.

6:59 PM Changeset in webkit [212036] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Fix El Capitan build.

  • libwebrtc.xcodeproj/project.pbxproj:

Remove more SSE4 code.

6:42 PM Changeset in webkit [212035] by fpizlo@apple.com
  • 16 edits
    16 adds in trunk

SharedArrayBuffer does not need to be in the transfer list
https://bugs.webkit.org/show_bug.cgi?id=168079

Reviewed by Geoffrey Garen and Keith Miller.
Source/JavaScriptCore:


Exposes a simple shareWith() API for when you know you want to share the contents of
a shared buffer. Also a useful explicit operator bool.

  • runtime/ArrayBuffer.cpp:

(JSC::ArrayBuffer::shareWith):

  • runtime/ArrayBuffer.h:

(JSC::ArrayBufferContents::operator bool):

Source/WebCore:

Tests: workers/sab/multi-memory-multi-buffer.html

workers/sab/multi-memory.html
workers/sab/no-transfer.html
workers/sab/postMessage-clones.html
workers/sab/sent-from-worker-no-transfer.html
workers/sab/sent-from-worker-transfer.html

The SAB API that we originally implemented required that SABs get put in transfer lists
when they are sent to workers.

The new SAB API that everyone is converging towards requires that you do not put the
SAB in the transfer list. That's supposed to be an error. Instead, anytime that a SAB
is part of any message to or from a dedicated worker then it is automatically shared.

The new API provides a lot more clarity about what is supposed to happen in contexts
that support transfering but don't support sharing.

Right now this patch allows both styles to work, but I hope we can disable the transfer
list capability soon.

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::deserializeIDBValueToJSValue):

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::JSMessageEvent::data):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):

  • bindings/js/SerializedScriptValue.h:

(): Deleted.

  • dom/CustomEvent.cpp:

(WebCore::CustomEvent::trySerializeDetail):

  • dom/ErrorEvent.cpp:

(WebCore::ErrorEvent::trySerializeError):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::trySerializeData):

  • dom/PopStateEvent.cpp:

(WebCore::PopStateEvent::trySerializeState):

  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::postMessage):

  • workers/Worker.cpp:

(WebCore::Worker::postMessage):

LayoutTests:


This adds tests that ensure that SABs behave correctly (are either cloned or shared)
depending on context, and that we currently share SABs whether they are in the transfer
list or not. This also adds tests for SABs being passed around via more complicated
data structures.

  • workers/sab/multi-memory-expected.txt: Added.
  • workers/sab/multi-memory-multi-buffer-expected.txt: Added.
  • workers/sab/multi-memory-multi-buffer.html: Added.
  • workers/sab/multi-memory-worker-1.js: Added.

(onmessage):

  • workers/sab/multi-memory-worker-2.js: Added.

(onmessage):

  • workers/sab/multi-memory.html: Added.
  • workers/sab/no-transfer-expected.txt: Added.
  • workers/sab/no-transfer.html: Added.
  • workers/sab/postMessage-clones-expected.txt: Added.
  • workers/sab/postMessage-clones.html: Added.
  • workers/sab/sab-creator-no-transfer.js: Added.
  • workers/sab/sab-creator-transfer.js: Added.
  • workers/sab/sent-from-worker-no-transfer-expected.txt: Added.
  • workers/sab/sent-from-worker-no-transfer.html: Added.
  • workers/sab/sent-from-worker-transfer-expected.txt: Added.
  • workers/sab/sent-from-worker-transfer.html: Added.
  • workers/sab/worker-resources.js:
6:35 PM Changeset in webkit [212034] by achristensen@apple.com
  • 2 edits in trunk/Tools

Build libwebrtc on bots without using it yet
https://bugs.webkit.org/show_bug.cgi?id=168062

Reviewed by Brent Fulgham.

  • Scripts/build-webkit:
6:35 PM Changeset in webkit [212033] by achristensen@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Fix iOS and El Capitan builds of libwebrtc.

  • Configurations/libwebrtc.xcconfig:

Skip building audio_mixer_manager_mac.cc on iOS.

  • libwebrtc.xcodeproj/project.pbxproj:

El Capitan doesn't like the SSE4 optimizations in opus.
Just don't include them for now.

6:34 PM Changeset in webkit [212032] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix after r212025.

inDocument -> isConnected

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::didMoveToNewDocument):
(WebCore::FormAssociatedElement::resetFormAttributeTargetObserver):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::formElementIndex):

6:29 PM Changeset in webkit [212031] by matthew_hanson@apple.com
  • 6 edits in tags/Safari-604.1.5.5.1/Source

Versioning.

6:21 PM Changeset in webkit [212030] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.5.5.1

Tag Safari-604.1.5.5.1.

6:21 PM Changeset in webkit [212029] by Brent Fulgham
  • 4 edits
    2 adds in trunk

Make sure Event keeps its current target element alive
https://bugs.webkit.org/show_bug.cgi?id=167885
<rdar://problem/30376972>

Patch by Chris Dumez <Chris Dumez> on 2017-02-09
Reviewed by Brent Fulgham.

Source/WebCore:

Make sure Event keeps its current target element alive to avoid
crashes if it is accessed by JS after it has been garbage collected.

Test: fast/events/currentTarget-gc-crash.html

  • dom/Event.cpp:

(WebCore::Event::setCurrentTarget):

  • dom/Event.h:

(WebCore::Event::currentTarget):

LayoutTests:

Add layout test reproducing the crash.

  • fast/events/currentTarget-gc-crash-expected.txt: Added.
  • fast/events/currentTarget-gc-crash.html: Added.
6:19 PM Changeset in webkit [212028] by Brent Fulgham
  • 6 edits
    4 adds in trunk

Crash in render tree after dynamically mutating the slot value
https://bugs.webkit.org/show_bug.cgi?id=167502

Patch by Ryosuke Niwa <rniwa@webkit.org> on 2017-02-09
Reviewed by Antti Koivisto.

Source/WebCore:

The crash was caused by attributeChanged not destructing the render tree after an assigned element had been
removed from its slot. Since the style resolver can no longer find this element in the flat tree, we need to
delete its render object as if the element had been removed from the DOM tree.

Tests: fast/html/details-summary-slot.html

fast/shadow-dom/shadow-slot-attribute-change-crash.html

  • dom/Element.cpp:

(WebCore::Element::attributeChanged):

  • html/HTMLSummaryElement.cpp:

(WebCore::SummarySlotElement): Added. Always use the default slot regardless of the slot attribute's value.
(WebCore::HTMLSummaryElement::create): Use SummarySlotElement

LayoutTests:

Added regression tests for the crash, and one for assigning non-empty slot value to a child
of a summary element. The slot attribute should always be ignored since the fact summary
element has its own shadow tree is an implementation detail that should never be exposed.

  • fast/html/details-summary-slot-expected.html: Added.
  • fast/html/details-summary-slot.html: Added.
  • fast/shadow-dom/shadow-slot-attribute-change-crash-expected.txt: Added.
  • fast/shadow-dom/shadow-slot-attribute-change-crash.html: Added.
6:17 PM Changeset in webkit [212027] by Brent Fulgham
  • 3 edits
    4 adds in trunk

Details element doesn't work correctly when mutating content between closing and opening
https://bugs.webkit.org/show_bug.cgi?id=167310

Patch by Antti Koivisto <Antti Koivisto> on 2017-02-09
Reviewed by Ryosuke Niwa.

Source/WebCore:

Tests: fast/html/details-close-modify-open.html

fast/shadow-dom/slot-remove-mutate-add.html

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::didChangeSlot):

Always reset the slot assignment when content is mutated.

LayoutTests:

  • fast/html/details-close-modify-open-expected.html: Added.
  • fast/html/details-close-modify-open.html: Added.
  • fast/shadow-dom/slot-remove-mutate-add-expected.html: Added.
  • fast/shadow-dom/slot-remove-mutate-add.html: Added.
6:15 PM Changeset in webkit [212026] by Brent Fulgham
  • 4 edits
    2 adds in trunk

Crash under FormSubmission::create()
https://bugs.webkit.org/show_bug.cgi?id=167200
<rdar://problem/30096323>

Patch by Chris Dumez <Chris Dumez> on 2017-02-09
Reviewed by Darin Adler.

Source/WebCore:

The issue is that FormSubmission::create() was iterating over
form.associatedElements() as was calling Element::appendFormData()
in the loop. HTMLObjectElement::appendFormData() was calling
pluginWidget(PluginLoadingPolicy::Load) which causes a synchronous
layout and can fire events (such as focus event) synchronously.
Firing those events synchronously allows the JS to modify the
form.associatedElements() vector we are currently iterating on.

To avoid this issue, we now call pluginWidget(PluginLoadingPolicy::DoNotLoad)
in HTMLObjectElement::appendFormData() as we are not allowed to fire
synchronous events at this point. I also added a security assertion
in FormSubmission::create() to catch cases where we fire JS events
while iterating over the form associated elements to more easily
notice these things in the future.

Test: fast/forms/formsubmission-appendFormData-crash.html

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::appendFormData):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

LayoutTests:

Add layout test coverage.

  • fast/forms/formsubmission-appendFormData-crash-expected.txt: Added.
  • fast/forms/formsubmission-appendFormData-crash.html: Added.
6:13 PM Changeset in webkit [212025] by Brent Fulgham
  • 4 edits
    2 adds in trunk

Crash under HTMLFormElement::registerFormElement()
https://bugs.webkit.org/show_bug.cgi?id=167162

Patch by Chris Dumez <Chris Dumez> on 2017-02-09
Reviewed by Ryosuke Niwa.

Source/WebCore:

didMoveToNewDocument() was re-registering FormAttributeTargetObserver
even if the element's inDocument was not set yet. As a result, it was
possible for FormAssociatedElement::resetFormOwner() to be called
when the element was in the tree but with its inDocument still being
false (because insertedInto() has not been called yet). This could
end up calling HTMLFormElement::registerFormElement() even though
the element is still recognized as detached. This is an issue because
HTMLFormElement::m_associatedElements's order and its corresponding
indexes (m_associatedElementsBeforeIndex / m_associatedElementsAfterIndex)
rely on the position of the element with regards to the form element
(before / inside / after).

To address the issue, we now only register the FormAttributeTargetObserver
in didMoveToNewDocument() if the inDocument flag is set to true. This
is similar to what is done at other call sites of
resetFormAttributeTargetObserver(). We also ignore the form content
attribute in HTMLFormElement::formElementIndex() if the element is
not connected.

As per the HTML specification [1], the form content attribute is only
taken if the element is connected (i.e. inDocument flag is true).

Note that FormAssociatedElement::findAssociatedForm() was already
ignoring the form content attribute if the element is disconnected.

[1] https://html.spec.whatwg.org/#reset-the-form-owner (step 3)

Test: fast/forms/registerFormElement-crash.html

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::didMoveToNewDocument):
Only call resetFormAttributeTargetObserver() if inDocument flag is set,
similarly to what is done at other call sites.

(WebCore::FormAssociatedElement::resetFormAttributeTargetObserver):
Add an assertion to make sure no one call this method on an element that
is not connected.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::formElementIndex):
Ignore the form content attribute if the element is not connected, as
per the HTML specification [1].

LayoutTests:

Add layout test coverage.

  • fast/forms/registerFormElement-crash-expected.txt: Added.
  • fast/forms/registerFormElement-crash.html: Added.
6:11 PM Changeset in webkit [212024] by Brent Fulgham
  • 3 edits
    2 adds in trunk

Tear down existing renderers when adding a shadow root.
https://bugs.webkit.org/show_bug.cgi?id=167117

Patch by Antti Koivisto <Antti Koivisto> on 2017-02-09
Reviewed by Andreas Kling.

Source/WebCore:

Adding a shadow root may cause children no longer be part of the flat tree. If they had renderers
tear down code would no longer reach them.

Test: fast/shadow-dom/attach-shadow-teardown.html

  • dom/Element.cpp:

(WebCore::Element::addShadowRoot):

Tear down existing render tree when adding a shadow root.

LayoutTests:

  • fast/shadow-dom/attach-shadow-teardown-expected.txt: Added.
  • fast/shadow-dom/attach-shadow-teardown.html: Added.
6:09 PM Changeset in webkit [212023] by Brent Fulgham
  • 3 edits
    2 adds in trunk

Handle synchronous layout when setting a selection range
https://bugs.webkit.org/show_bug.cgi?id=167092
<rdar://problem/30041640>

Reviewed by Antti Koivisto.

Source/WebCore:

The 'innerTextElement' of a form control can change during layout due
to arbitrary JavaScript executing. Handle the case where the inner text
element has changed so that current render box height is while setting
a selection range.

Test: fast/forms/input-type-change-during-selection.html

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setSelectionRange):

LayoutTests:

  • fast/forms/input-type-change-during-selection-expected.txt: Added.
  • fast/forms/input-type-change-during-selection.html: Added.
6:07 PM Changeset in webkit [212022] by Brent Fulgham
  • 3 edits
    1 add in trunk

B3::Procedure::deleteOrphans() should neutralize upsilons with dead phis.
https://bugs.webkit.org/show_bug.cgi?id=167437
<rdar://problem/30198083>

Patch by Mark Lam <mark.lam@apple.com> on 2017-02-09
Reviewed by Filip Pizlo.

JSTests:

  • stress/b3-delete-orphans-should-neutralize-upsilons-with-dead-phis.js: Added.

Source/JavaScriptCore:

  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::deleteOrphans):

6:02 PM Changeset in webkit [212021] by Brent Fulgham
  • 3 edits
    1 add in trunk

Sloppy mode: We don't properly hoist functions names "arguments" when we have a non-simple parameter list
https://bugs.webkit.org/show_bug.cgi?id=167319
<rdar://problem/30149432>

Patch by Saam Barati <sbarati@apple.com> on 2017-02-09
Reviewed by Mark Lam.

JSTests:

  • stress/sloppy-mode-hoist-arguments-function-non-simple-parameter-list.js: Added.

(assert):
(assert.arguments):
(assert.b):
(x.arguments):
(x.b):
(x):

Source/JavaScriptCore:

When hoisting a function inside sloppy mode, we were assuming all "var"s are inside
what we call the "var" SymbolTableEntry. This was almost true, execpt for "arguments",
which has sufficiently weird behavior. "arguments" can be visible to the default
parameter expressions inside a function, therefore can't go inside the "var"
SymbolTableEntry since the parameter SymbolTableEntry comes before the "var"
SymbolTableEntry in the scope chain. Therefore, if we hoist a function named
"arguments", then we must also look for that variable inside the parameter scope
stack entry.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):

5:55 PM Changeset in webkit [212020] by keith_miller@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, fix test for new .caller with native code caller semantics.

  • js/dom/function-dot-arguments-and-caller.html:
5:54 PM Changeset in webkit [212019] by Brent Fulgham
  • 7 edits
    2 adds in trunk

Fix max length check in ArrayPrototype.js' concatSlowPath().
https://bugs.webkit.org/show_bug.cgi?id=167270
<rdar://problem/30128133>

Patch by Mark Lam <mark.lam@apple.com> on 2017-02-09
Reviewed by Filip Pizlo.

JSTests:

  • stress/array-prototype-concat-of-long-spliced-arrays.js: Added.
  • stress/array-prototype-concat-of-long-spliced-arrays2.js: Added.

Source/JavaScriptCore:

  1. Fixed concatSlowPath() to ensure that the result array length does not exceed @MAX_ARRAY_INDEX. The old code was checking against @MAX_SAFE_INTEGER in some cases, but this is overly permissive.
  1. Changed concatSlowPath() to throw a RangeError instead of a TypeError to be consistent with the C++ runtime functions in JSArray.cpp.
  1. Changed the RangeError message in concatSlowPath() and JSArray.cpp to "Length exceeded the maximum array length" when the error is that the result length exceeds MAX_ARRAY_INDEX. We do this for 2 reasons:
    1. "Length exceeded the maximum array length" is more informative than "Invalid array length".
    2. We want to use the same string consistently for the same error.

There are still 2 places in JSArray.cpp that still throws a RangeError with
message "Invalid array length". In those cases, the error is not necessarily
due to the result length exceeding MAX_ARRAY_INDEX, but is due to attempting to
set a length value that is not an integer that fits in MAX_ARRAY_INDEX e.g.
an attempt to set a fractional length value. Hence, "Invalid array length" is
appropriate for those cases.

  1. Fixed JSArray::appendMemcpy() to handle overflows when computing the result array length.
  • builtins/ArrayPrototype.js:

(concatSlowPath):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • runtime/ArrayPrototype.cpp:

(JSC::concatAppendOne):
(JSC::arrayProtoPrivateFuncAppendMemcpy):

  • runtime/JSArray.cpp:

(JSC::JSArray::appendMemcpy):
(JSC::JSArray::push):

5:49 PM Changeset in webkit [212018] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r211896. rdar://problem/29754721

5:49 PM Changeset in webkit [212017] by matthew_hanson@apple.com
  • 9 edits in branches/safari-603-branch/Source/JavaScriptCore

Merge r211642. rdar://problem/29542720

5:49 PM Changeset in webkit [212016] by matthew_hanson@apple.com
  • 17 edits
    5 adds in branches/safari-603-branch/Source

Merge r211603. rdar://problem/30318237

5:39 PM Changeset in webkit [212015] by Brent Fulgham
  • 16 edits
    2 adds in trunk

Constructed object's global object should be the global object of the constructor.
https://bugs.webkit.org/show_bug.cgi?id=167121
<rdar://problem/30054759>

Patch by Mark Lam <mark.lam@apple.com> on 2017-02-09
Reviewed by Filip Pizlo and Geoffrey Garen.

Source/JavaScriptCore:

The realm (i.e. globalObject) of any object should be the same as the constructor
that instantiated the object. Changed PrototypeMap::createEmptyStructure() to
be passed the correct globalObject to use instead of assuming it's the same one
as the prototype object.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecode/InternalFunctionAllocationProfile.h:

(JSC::InternalFunctionAllocationProfile::createAllocationStructureFromBase):

  • bytecode/ObjectAllocationProfile.h:

(JSC::ObjectAllocationProfile::initialize):

  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::initializeObjectAllocationProfile):

  • runtime/FunctionRareData.h:

(JSC::FunctionRareData::createInternalFunctionAllocationStructureFromBase):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::createSubclassStructure):

  • runtime/IteratorOperations.cpp:

(JSC::createIteratorResultObjectStructure):

  • runtime/JSBoundFunction.cpp:

(JSC::getBoundFunctionStructure):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::allocateAndInitializeRareData):
(JSC::JSFunction::initializeRareData):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSProxy.cpp:

(JSC::JSProxy::setTarget):

  • runtime/ObjectConstructor.h:

(JSC::constructEmptyObject):

  • runtime/PrototypeMap.cpp:

(JSC::PrototypeMap::createEmptyStructure):
(JSC::PrototypeMap::emptyStructureForPrototypeFromBaseStructure):
(JSC::PrototypeMap::emptyObjectStructureForPrototype):
(JSC::PrototypeMap::clearEmptyObjectStructureForPrototype):

  • runtime/PrototypeMap.h:

LayoutTests:

  • http/tests/security/xssAuditor/regress-167121-expected.txt: Added.
  • http/tests/security/xssAuditor/regress-167121.html: Added.
5:33 PM Changeset in webkit [212014] by achristensen@apple.com
  • 2 edits in trunk/Tools

Don't build libwebrtc.

  • Scripts/build-webkit:

Not ready yet. It broke El Capitan and iOS.

5:27 PM Changeset in webkit [212013] by achristensen@apple.com
  • 6 edits in trunk/Source

Fix CMake build.

  • PlatformMac.cmake:
5:23 PM Changeset in webkit [212012] by Chris Dumez
  • 3 edits in trunk/LayoutTests

REGRESSION: LayoutTest http/tests/cache/disk-cache/disk-cache-remove-several-pending-writes.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=161650

Reviewed by Alexey Proskuryakov.

Make sure we clear the memory cache before trigerring new loads as this
test is meant to cover the disk cache.

  • http/tests/cache/disk-cache/disk-cache-remove-several-pending-writes.html:
  • platform/mac/TestExpectations:
5:11 PM Changeset in webkit [212011] by achristensen@apple.com
  • 2 edits in trunk/Tools

Build libwebrtc on bots without using it yet
https://bugs.webkit.org/show_bug.cgi?id=168062

Reviewed by Brent Fulgham.

  • Scripts/build-webkit:
5:07 PM Changeset in webkit [212010] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark inspector/model/remote-object-weak-collection.html as a flaky timeout.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:59 PM Changeset in webkit [212009] by Brent Fulgham
  • 3 edits
    1 add in trunk

We should not allow Function.caller to be used on native functions
https://bugs.webkit.org/show_bug.cgi?id=165628

Patch by Keith Miller <keith_miller@apple.com> on 2017-02-09
Reviewed by Mark Lam.

JSTests:

  • stress/caller-native-code.js: Added.

(f):

Source/JavaScriptCore:

Also remove unneeded dynamic cast.

  • runtime/JSFunction.cpp:

(JSC::RetrieveCallerFunctionFunctor::RetrieveCallerFunctionFunctor):
(JSC::JSFunction::callerGetter):

4:52 PM Changeset in webkit [212008] by matthew_hanson@apple.com
  • 2 edits in tags/Safari-604.1.5.5/Source/WebCore

Merge r211852. rdar://problem/30382347

4:49 PM Changeset in webkit [212007] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark pointer-lock/mouse-event-delivery.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=167965

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:46 PM Changeset in webkit [212006] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark inspector/worker/resources-in-worker.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=168091

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:42 PM Changeset in webkit [212005] by matthew_hanson@apple.com
  • 2 edits in branches/safari-604.1.5-branch/Source/WebCore

Merge r211852. rdar://problem/30382347

4:42 PM Changeset in webkit [212004] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark inspector/debugger/breakpoint-columns.html as a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=168090

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:41 PM Changeset in webkit [212003] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark fast/backgrounds/hidpi-bitmap-background-on-subpixel-position.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=167186

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:38 PM Changeset in webkit [212002] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603-branch/Source

Versioning.

4:37 PM Changeset in webkit [212001] by achristensen@apple.com
  • 3 edits
    1 delete in trunk/Source/ThirdParty/libwebrtc

Fix warnings in libwebrtc build
https://bugs.webkit.org/show_bug.cgi?id=168088

Reviewed by Youenn Fablet.

  • Source/third_party/opus/src/src/opus_decoder.c:

Silence a warning. Debug builds of opus can be slow. No big deal.

  • libwebrtc.xcodeproj/project.pbxproj:

More sdk files need ARC.

4:21 PM Changeset in webkit [212000] by beidson@apple.com
  • 8 edits in trunk/Source

Transition "WebKit Library Version" checks to SDK version checks.
<rdar://problem/30313696> and https://bugs.webkit.org/show_bug.cgi?id=168056

Reviewed by Geoffrey Garen.

Source/WebKit2:

When doing linkedOnOrAfter checks, relying solely on the WebKit library version number is error prone,
since apps may not link against WebKit directly and therefore the linked WebKit is unknown.

We should first prefer a version check on the SDK that the app was built with.

If that check fails, we can fallback to the linked WebKit library version number if it exists.

  • Shared/Cocoa/CompletionHandlerCallChecker.mm:

(WebKit::shouldThrowExceptionForDuplicateCompletionHandlerCall):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

For each "linked-on-or-after" feature, include both the WebKit library version and SDK version:

  • UIProcess/Cocoa/VersionChecks.h:

(WebKit::linkedOnOrAfter):

  • UIProcess/Cocoa/VersionChecks.mm:

(WebKit::linkedOnOrAfter):
(WebKit::linkTimeVersion): Deleted.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::isNetworkCacheEnabled):

Source/WTF:

  • wtf/spi/darwin/dyldSPI.h: Add entries for the iOS 10.3, macOS 10.11, and macOS 10.12.4 SDKs.
4:11 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
4:11 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
4:10 PM Changeset in webkit [211999] by Brent Fulgham
  • 3 edits
    3 adds in trunk

Disconnect shadow children of root when detaching a frame
https://bugs.webkit.org/show_bug.cgi?id=166851
<rdar://problem/29930443>

Reviewed by Andy Estes.

Source/WebCore:

If the root of the tree we are disconnecting has a shadow element, include it in the set of
things to disconnect.

Tests: fast/shadow-dom/shadow-at-root-during-disconnect.html

  • dom/ContainerNodeAlgorithms.cpp:

(WebCore::disconnectSubframes):

LayoutTests:

  • fast/shadow-dom/resources/start.html: Added.
  • fast/shadow-dom/shadow-at-root-during-disconnect-expected.txt: Added.
  • fast/shadow-dom/shadow-at-root-during-disconnect.html: Added.
4:08 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
4:07 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
4:06 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
4:04 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
3:55 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
3:54 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
3:52 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
3:48 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
3:46 PM Changeset in webkit [211998] by commit-queue@webkit.org
  • 14 edits in trunk/Tools

Rename isAppleMacWebKit to isAppleCocoaWebKit
https://bugs.webkit.org/show_bug.cgi?id=168075

Patch by Alex Christensen <achristensen@webkit.org> on 2017-02-09
Reviewed by Geoffrey Garen.

It returns true for Mac and iOS. "isAppleMacWebKit" is confusing and wrong.

  • Scripts/build-api-tests:
  • Scripts/build-dumprendertree:
  • Scripts/build-jsc:

(buildMyProject):

  • Scripts/build-layouttestrelay:
  • Scripts/build-webkit:
  • Scripts/build-webkittestrunner:
  • Scripts/run-api-tests:

(isSupportedPlatform):
(runTest):
(listAllTests):
(prepareEnvironmentForRunningTestTool):

  • Scripts/run-content-extension-tester:
  • Scripts/run-javascriptcore-tests:
  • Scripts/run-minibrowser:
  • Scripts/show-pretty-diff:
  • Scripts/webkitdirs.pm:

(determineBaseProductDir):
(determineArchitecture):
(determinePassedArchitecture):
(safariPath):
(builtDylibPathForName):
(checkFrameworks):
(isAppleWebKit):
(isAppleCocoaWebKit):
(determineNmPath):
(launcherName):
(wrapperPrefixIfNeeded):
(isCMakeBuild):
(mobileSafariBundle):
(debugSafari):
(runSafari):
(runMiniBrowser):
(debugMiniBrowser):
(runWebKitTestRunner):
(debugWebKitTestRunner):
(isAppleMacWebKit): Deleted.

  • Scripts/webkitperl/FeatureList.pm:
3:40 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
3:39 PM Changeset in webkit [211997] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/contentextensions/async-xhr-onerror.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=168081

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:36 PM Changeset in webkit [211996] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/contentextensions/invalid-selector.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=168082

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:35 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
3:33 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
3:32 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
3:28 PM Changeset in webkit [211995] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/security/credentials-iframes.html as failing on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=167967

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
3:24 PM UpdatingBugzilla edited by ddkilzer@apple.com
(diff)
3:18 PM Changeset in webkit [211994] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark fast/css-grid-layout/grid-simplified-layout-positioned.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=167538

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:19 PM Changeset in webkit [211993] by matthew_hanson@apple.com
  • 6 edits in branches/safari-604.1.5-branch/Source

Versioning.

2:06 PM Changeset in webkit [211992] by achristensen@apple.com
  • 2 edits in trunk/Tools

Revert r211991
https://bugs.webkit.org/show_bug.cgi?id=168062

  • Scripts/build-webkit:

Not quite ready yet.

1:48 PM Changeset in webkit [211991] by achristensen@apple.com
  • 2 edits in trunk/Tools

Build libwebrtc on bots without using it yet
https://bugs.webkit.org/show_bug.cgi?id=168062

Reviewed by Brent Fulgham.

  • Scripts/build-webkit:

Build libwebrtc on Mac when we build ANGLE.

1:47 PM Changeset in webkit [211990] by Ryan Haddad
  • 8 edits in trunk/Source

Unreviewed, rolling out r211980 and r211987.
https://bugs.webkit.org/show_bug.cgi?id=168072

Caused API test WebKit2.DuplicateCompletionHandlerCalls to
fail (Requested by ryanhaddad on #webkit).

Reverted changesets:

"Transition "WebKit Library Version" checks to SDK version
checks."
https://bugs.webkit.org/show_bug.cgi?id=168056
http://trac.webkit.org/changeset/211980

"Build fix for APPLE_INTERNAL_SDK builds after r211980."
http://trac.webkit.org/changeset/211987

Patch by Commit Queue <commit-queue@webkit.org> on 2017-02-09

1:34 PM Changeset in webkit [211989] by ap@apple.com
  • 7 edits in trunk/Source

Remove unused WebThreadRunSync
https://bugs.webkit.org/show_bug.cgi?id=168024

Reviewed by Tim Horton.

Source/WebCore:

  • platform/ios/wak/WebCoreThreadRun.cpp:
  • platform/ios/wak/WebCoreThreadRun.h:
  • platform/ios/wak/WebCoreThreadSystemInterface.cpp:

(InitWebCoreThreadSystemInterface):

Source/WTF:

  • wtf/ios/WebCoreThread.cpp:
  • wtf/ios/WebCoreThread.h:
1:33 PM Changeset in webkit [211988] by achristensen@apple.com
  • 4 edits in trunk

Build libwebrtc on bots without using it yet
https://bugs.webkit.org/show_bug.cgi?id=168062

Reviewed by Brent Fulgham.

.:

  • Source/Makefile:

Source/ThirdParty:

  • Makefile:
1:32 PM Changeset in webkit [211987] by beidson@apple.com
  • 2 edits in trunk/Source/WTF

Build fix for APPLE_INTERNAL_SDK builds after r211980.

Unreviewed.

  • wtf/spi/darwin/dyldSPI.h:
1:31 PM Changeset in webkit [211986] by Ryan Haddad
  • 11 edits
    2 deletes in trunk

Unreviewed, rolling out r211802.

This change caused fast/regions/inline-block-inside-anonymous-
overflow-with-covered-controls.html to be a flaky failure.

Reverted changeset:

"[Modern Media Controls] Improve handling of <video> with only
audio tracks"
https://bugs.webkit.org/show_bug.cgi?id=167836
http://trac.webkit.org/changeset/211802

1:20 PM Changeset in webkit [211985] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/media/track-in-band-hls-metadata-crash.html as a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=167749

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:20 PM Changeset in webkit [211984] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark two scroll-snap tests as flaky.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:11 PM Changeset in webkit [211983] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark inspector/unit-tests/heap-snapshot.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=168065

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:11 PM Changeset in webkit [211982] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark two performance-api tests as flaky.

Unreviewed test gardening.

1:10 PM Changeset in webkit [211981] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix i386 libwebrtc build
https://bugs.webkit.org/show_bug.cgi?id=168038

  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:

DataChannelInterface::buffered_amount returns a uint64_t, and we want a size_t.
If this overflows, then we've run out of memory and crashed a long time ago.

12:37 PM Changeset in webkit [211980] by beidson@apple.com
  • 8 edits in trunk/Source

Transition "WebKit Library Version" checks to SDK version checks.
<rdar://problem/30313696> and https://bugs.webkit.org/show_bug.cgi?id=168056

Reviewed by Geoffrey Garen.

Source/WebKit2:

Library version linkedOnOrAfter checks are error prone since apps may not link directly to WebKit.

We always know what version of the SDK an app was built with, so we should use SDK version checks
whenever possible.

  • Shared/Cocoa/CompletionHandlerCallChecker.mm:

(WebKit::shouldThrowExceptionForDuplicateCompletionHandlerCall):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

Add SDKVersion form of the linkedOnOrAfter check, and transition over the current Library Version checks:

  • UIProcess/Cocoa/VersionChecks.h:
  • UIProcess/Cocoa/VersionChecks.mm:

(WebKit::linkedOnOrAfter):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::isNetworkCacheEnabled):

Source/WTF:

  • wtf/spi/darwin/dyldSPI.h: Add entries for the iOS 10.3, macOS 10.11, and macOS 10.12.4 SDKs.
12:32 PM Changeset in webkit [211979] by akling@apple.com
  • 15 edits in trunk/Source/WebCore

Document::settings() should return a const Settings&.
<https://webkit.org/b/168061>

Reviewed by Geoffrey Garen.

  • Make Document::settings() return a const reference.
  • Added Document::mutableSettings() for all your non-const needs.
  • Fixed up settings generator to produce const getters.
  • Simplify a few settings() call sites that exposed themselves.
  • Modules/applepay/ApplePaySession.cpp:

(WebCore::shouldDiscloseApplePayCapability):

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::canCallGetUserMedia):

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::appendSources):

  • css/CSSFontSelector.cpp:

(WebCore::resolveGenericFamily):

  • css/StyleResolver.h:

(WebCore::StyleResolver::settings):

  • dom/Document.h:

(WebCore::Document::settings):
(WebCore::Document::mutableSettings):

  • html/FTPDirectoryDocument.cpp:

(WebCore::createTemplateDocumentData):

  • html/HTMLCanvasElement.cpp:

(WebCore::shouldEnableWebGL):

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::rendererIsNeeded):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::menuListDefaultEventHandler):

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::updateDuringParsing):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtocol):

  • page/make_settings.pl:

(printGetterAndSetter):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::toggleSimpleLineLayout):

12:28 PM Changeset in webkit [211978] by jer.noble@apple.com
  • 11 edits in trunk/Source/WebCore

Make passing PlatformAudioData in audioSamplesAvaliable const-correct.
https://bugs.webkit.org/show_bug.cgi?id=168051

Reviewed by Eric Carlson.

Modify all the functions which take a (conceptually) read-only audio buffer const-correct.

Drive-by fix: AudioSampleBufferList::copyFrom() set a ivar pointer to the passed in
AudioBufferList. Ensure that the ivar is reset when copyFrom() returns by using a
SetForScope.

  • platform/audio/mac/AudioSampleBufferList.cpp:

(WebCore::AudioSampleBufferList::copyFrom):

  • platform/audio/mac/AudioSampleBufferList.h:
  • platform/audio/mac/AudioSampleDataSource.cpp:

(WebCore::AudioSampleDataSource::pushSamplesInternal):
(WebCore::AudioSampleDataSource::pushSamples):

  • platform/audio/mac/AudioSampleDataSource.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::audioSamplesAvailable):

  • platform/mediastream/RealtimeMediaSource.h:

(WebCore::RealtimeMediaSource::Observer::audioSamplesAvailable):

  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:

(WebCore::AudioTrackPrivateMediaStreamCocoa::audioSamplesAvailable):

  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h:
  • platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp:

(WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable):

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.h:
12:22 PM Changeset in webkit [211977] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Fix some logging statements in MediaPlayerPrivateMediaStreamAVFObjC
https://bugs.webkit.org/show_bug.cgi?id=168063

Reviewed by Eric Carlson.

Make the format string match the types passed in (i.e., floats, not strings).

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateSampleTimes):

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

Web Inspector: changing dock side from windowed to bottom should cause split console to collapse on Timeline and Network tabs
https://bugs.webkit.org/show_bug.cgi?id=167841

Patch by Devin Rousso <Devin Rousso> on 2017-02-09
Reviewed by Matt Baker.

  • UserInterface/Base/Main.js:

(WebInspector.updateDockedState):

12:11 PM Changeset in webkit [211975] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip media/modern-media-controls/media-controller/media-controller-ios-only-enable-tap-gesture-recognizer-with-fades-when-idle.html.

Unreviewed test gardening.

This test relies on touch events.

  • platform/ios-simulator/TestExpectations:
12:10 PM Changeset in webkit [211974] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[MediaStream Mac] Handle NULL m_sampleBufferDisplayLayer
https://bugs.webkit.org/show_bug.cgi?id=168060

Reviewed by Jer Noble.

No new tests, this avoids an occasional crash on the bots.

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::layerStatusDidChange): Don't assume
m_sampleBufferDisplayLayer is valid.

11:29 AM Changeset in webkit [211973] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Option+hover on -webkit-transform in Styles sidebar underlines only half the property
https://bugs.webkit.org/show_bug.cgi?id=167949

Patch by Devin Rousso <Devin Rousso> on 2017-02-09
Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/CodeMirrorTokenTrackingController.js:

(WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
Attempt to merge tokens (specifically the text and start values) if the either the
previous or next token is of the type "meta".

11:23 AM Changeset in webkit [211972] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Fix iOS libwebrtc build after r211960
https://bugs.webkit.org/show_bug.cgi?id=168038

  • Source/webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.h:

GlContextType declaration needs to be platform specific here like it is in RTCOpenGLDefines.h

11:10 AM Changeset in webkit [211971] by Ryan Haddad
  • 3 edits in branches/safari-603-branch/LayoutTests/imported/w3c

Rebaseline tests for rdar://problem/30181081.

Unreviewed test gardening.

  • web-platform-tests/fetch/api/basic/request-upload-expected.txt:
  • web-platform-tests/fetch/api/basic/request-upload-worker-expected.txt:
10:54 AM Changeset in webkit [211970] by Chris Dumez
  • 8 edits in trunk

Object.getPrototypeOf(NodeFilter) should be Function.prototype, not Object.prototype
https://bugs.webkit.org/show_bug.cgi?id=167964

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline web platform test now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

Object.getPrototypeOf(NodeFilter) should be Function.prototype, not Object.prototype
after the following WebIDL spec change:

This aligns our behavior with other browsers as the spec has been updated to match
the majority.

No new tests, rebaselined existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorHelperMethods):

  • bindings/scripts/test/JS/JSTestCallbackInterface.cpp:

(WebCore::JSTestCallbackInterfaceConstructor::prototypeForStructure):

LayoutTests:

Rebaseline existing tests now that output differs a bit.

  • http/tests/security/cross-frame-access-put-expected.txt:
  • platform/mac/fast/dom/Window/window-lookup-precedence-expected.txt:
10:50 AM Changeset in webkit [211969] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.5.5

Tag Safari-604.1.5.5.

10:15 AM Changeset in webkit [211968] by Yusuke Suzuki
  • 2 edits in trunk/LayoutTests

Unreviewed, fix module test that has a meaningless onload handler
https://bugs.webkit.org/show_bug.cgi?id=161291

  • http/tests/misc/module-absolute-url.html:
10:11 AM Changeset in webkit [211967] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK] scroll with transparent background not repainted after scrollY >= 32768
https://bugs.webkit.org/show_bug.cgi?id=154283

Reviewed by Carlos Garcia Campos.

Due to a limitation of the pixman backend, which uses 16 bits to hold signed integers, cairo is
not able to draw anything when using transformation matrices with values bigger than 32768. When
drawing patterns into large pages, the matrices values can overflow those 16 bits, so cairo doesn't
draw anything in, which causes the reported transparent backgrounds.

The patch modifies the transformation matrices both from the current context and the pattern we
are painting, to avoid them to hold values that cannot stored in 16 bits.

There's still the possibility that this happens, but it would require using a pattern with a size
bigger than 32768.

Based on a previous patch by Gwang Yoon Hwang <yoon@igalia.com>.

No new tests.

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::drawPatternToCairoContext):

10:10 AM Changeset in webkit [211966] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r211965.

  • dom/Document.cpp:

(WebCore::Document::adoptNode): inDocument -> isConnected

9:59 AM Changeset in webkit [211965] by Brent Fulgham
  • 23 edits
    4 adds in trunk

Adopting a child node of a script element can run script
https://bugs.webkit.org/show_bug.cgi?id=167318

Patch by Ryosuke Niwa <rniwa@webkit.org> on 2017-02-09
Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by ScriptElement::childrenChanged indiscriminately running the script.
Do this only if some node has been inserted as spec'ed:

https://html.spec.whatwg.org/multipage/scripting.html#script-processing-model
"The script element is connected and a node or document fragment is inserted into
the script element, after any script elements inserted at that time."

Split NonContentsChildChanged into NonContentsChildInserted and NonContentsChildRemoved to disambiguate
non-contents child such as text and element being removed or inserted. New behavior matches that of
Gecko and Chrome as well as the latest HTML5 specification.

Also deploy NoEventDispatchAssertion in more places. Unfortunately, this results in some DOM trees
internal to WebKit to be mutated while there is NoEventDispatchAssertion in the stack. Added a new RAII
object "EventAllowedScope" to temporarily disable this assertion within such a tree. CachedSVGFont's
ensureCustomFontData used to completely disable this assertion but we no longer have to do this either.

To clarify the new semantics, renamed isEventDispatchForbidden to isEventAllowedInMainThread with
the negated boolean value, and added a new variant isEventDispatchAllowedInSubtree, which checks
isEventDispatchForbidden() is true or if the node was one of an internal DOM node or its descendent
held by EventAllowedScope.

Inspired by https://chromium.googlesource.com/chromium/src/+/604e798ec6ee30f44d57a5c4a44ce3dab3a871ed

Tests: fast/html/script-must-not-run-when-child-is-adopted.html

fast/html/script-must-not-run-when-child-is-removed.html

  • dom/CharacterData.cpp:

(WebCore::CharacterData::notifyParentAfterChange): Added NoEventDispatchAssertion.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::insertBefore): Added NoEventDispatchAssertion around TreeScope's adoptIfNeeded
and insertBeforeCommon as done elsewhere.
(WebCore::ContainerNode::appendChildCommon): Added NoEventDispatchAssertion.
(WebCore::ContainerNode::changeForChildInsertion): Use NonContentsChildInserted here.
(WebCore::ContainerNode::notifyChildRemoved): Added NoEventDispatchAssertion.
(WebCore::ContainerNode::replaceChild): Moved adoptIfNeeded into NoEventDispatchAssertion.
(WebCore::ContainerNode::removeChild): Added NoEventDispatchAssertion.
(WebCore::ContainerNode::parserRemoveChild): Added NoEventDispatchAssertion.
(WebCore::ContainerNode::removeChildren): Call childrenChanged in NoEventDispatchAssertion.
(WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck): Moved adoptIfNeeded into
NoEventDispatchAssertion.
(WebCore::dispatchChildInsertionEvents): Check the forbidden-ness more precisely.
(WebCore::dispatchChildRemovalEvents): Ditto.

  • dom/ContainerNode.h:

(WebCore::ContainerNode::ChildChange::isInsertion): Added.

  • dom/ContainerNodeAlgorithms.cpp:

(WebCore::notifyChildNodeInserted): Check the forbidden-ness more precisely. Here, we check against
insertionPoint since EventAllowedScope checks against the root node.

  • dom/Document.cpp:

(WebCore::Document::adoptNode): Assert the node to be adopted has not been inserted back, or else
remove() had resulted in an exception before calling TreeScope::adoptIfNeeded.

  • dom/Element.cpp:

(WebCore::Element::childrenChanged):

  • dom/NoEventDispatchAssertion.h:

(WebCore::NoEventDispatchAssertion::isEventDispatchForbidden): Added a new variant that takes a node.
If this node is a descendent of a node "marked as safe" by EventAllowedScope, then we don't consider
the event dispatch to be forbidden.
(WebCore::NoEventDispatchAssertion::dropTemporarily): Deleted.
(WebCore::NoEventDispatchAssertion::restoreDropped): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope): Added. A RAII object which marks descendants of
a given node as "safe" for the purpose of checking isEventDispatchForbidden.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::EventAllowedScope): Added. There can be a chain
of EventAllowedScope objects in the stack. s_currentScope points to the most recently instantiated
RAII object, and each instance remembers prior instance.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::~EventAllowedScope): Added.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::isAllowedNode): Added. Returns true if the given
node is a descendent of any node held by instances of EventAllowedScope.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::isAllowedNodeInternal): Added. A helper function
for isAllowedNode.

  • dom/Node.cpp:

(WebCore::Node::dispatchSubtreeModifiedEvent): Check the forbidden-ness more precisely.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::childrenChanged): Only prepare the script if we've inserted nodes.
(WebCore::ScriptElement::executeClassicScript): Assert isEventDispatchForbidden is false since running
arbitrary author scripts can, indeed, result dispatch any events.

  • dom/ScriptElement.h:
  • html/HTMLElement.cpp:

(WebCore::textToFragment): Made this a static local function and not return an exception since there
is no way appendChild called in this function can throw an exception.
(WebCore::HTMLElement::setInnerText): Create EventAllowedScope for the fragment. It's called called by
HTMLTextAreaElement's childrenChanged to update its UA shadow tree, and it's dispatching as event on
a new fragment can't execute arbitrary scripts since it has never been exposed to author scripts.
Because of the precise-ness of this check, this does not disable the assertion for "this" element.
HTMLTextFormControlElement::setInnerTextValue explicitly creates another EventAllowedScope to mark
the shadow tree into which the fragment is inserted safe.
(WebCore::HTMLElement::setOuterText):

  • html/HTMLElement.h:
  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::childrenChanged):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setInnerTextValue): See above (setInnerText).

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::createCueRenderingTree): Create EventAllowedScope for the cloned fragment here since
the VTT tree is never exposed to author scripts.
(WebCore::VTTCue::updateDisplayTree): Ditto.

  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::ensureCustomFontData): Use EventAllowedScope to disable assertions only on
the new SVG document we just created instead of disabling for all DOM trees.

  • svg/SVGScriptElement.cpp:

(WebCore::SVGScriptElement::childrenChanged):

LayoutTests:

Added regression tests for adopting or removing a child node of a script element.
The script must not run when nodes are adopted or removed.

  • fast/html/script-must-not-run-when-child-is-adopted-expected.txt: Added.
  • fast/html/script-must-not-run-when-child-is-adopted.html: Added.
  • fast/html/script-must-not-run-when-child-is-removed-expected.txt: Added.
  • fast/html/script-must-not-run-when-child-is-removed.html: Added.
9:47 AM Changeset in webkit [211964] by akling@apple.com
  • 47 edits in trunk/Source/WebCore

Document should always have a Settings.
<https://webkit.org/b/120172>

Reviewed by Antti Koivisto.

Since a Document can't move between Frames, and it's either frameless
or partnered with a Frame provided at construction time, we know that
it will never need to switch between different Settings objects either.

Give Document a Ref<Settings> that contains either the Frame's Settings
or a default-constructed Settings object if frameless.
Document::settings() is promoted to a reference getter.

The bulk of this patch is removing now-unnecessary null checks.

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:

(WebCore::WebKitMediaKeySession::mediaKeysStorageDirectory):

  • Modules/plugins/PluginReplacement.h:

(WebCore::ReplacementPlugin::isEnabledBySettings):

  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::isEnabledBySettings):

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::isEnabledBySettings):

  • Modules/plugins/YouTubePluginReplacement.h:
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::constructCommon):

  • bindings/js/CachedScriptFetcher.cpp:

(WebCore::CachedScriptFetcher::requestScriptWithCache):

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::appendSources):
(WebCore::CSSFontFace::webFontsShouldAlwaysFallBack):

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::fallbackFontCount):
(WebCore::CSSFontSelector::fallbackFontAt):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertResize):

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueFontFamily):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::checkForGenericFamilyChange):
(WebCore::StyleResolver::initializeFontStyle):

  • css/StyleResolver.h:

(WebCore::StyleResolver::settings):
(WebCore::StyleResolver::documentSettings): Deleted.

  • css/parser/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):

  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::setReadyState):
(WebCore::Document::setVisualUpdatesAllowed):
(WebCore::Document::defaultCharsetForLegacyBindings):
(WebCore::Document::recalcStyle):
(WebCore::Document::implicitClose):
(WebCore::Document::minimumLayoutDelay):
(WebCore::Document::setDomain):
(WebCore::Document::audioPlaybackRequiresUserGesture):
(WebCore::Document::videoPlaybackRequiresUserGesture):
(WebCore::Document::storageBlockingStateDidChange):
(WebCore::Document::isTelephoneNumberParsingEnabled):
(WebCore::Document::initSecurityContext):
(WebCore::Document::initDNSPrefetch):
(WebCore::Document::getCachedLocale):
(WebCore::Document::shouldEnforceContentDispositionAttachmentSandbox):
(WebCore::Document::settings): Deleted.

  • dom/Document.h:

(WebCore::Document::settings):

  • dom/Element.cpp:

(WebCore::subpixelMetricsEnabled):

  • dom/ExtensionStyleSheets.cpp:

(WebCore::ExtensionStyleSheets::pageUserSheet):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::dispatchErrorEvent):

  • dom/ScriptableDocumentParser.cpp:

(WebCore::ScriptableDocumentParser::ScriptableDocumentParser):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::requestAnimationFrameEnabled):

  • dom/make_names.pl:

(printConstructorInterior):

  • editing/Editor.cpp:
  • editing/markup.cpp:

(WebCore::createMarkupInternal):

  • html/FTPDirectoryDocument.cpp:

(WebCore::createTemplateDocumentData):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::setActive):
(WebCore::HTMLAnchorElement::sendPings):
(WebCore::HTMLAnchorElement::treatLinkAsLiveForEventType):

  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::canEmbedJava):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::getContext2d):
(WebCore::shouldEnableWebGL):
(WebCore::HTMLCanvasElement::shouldAccelerate):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::submitImplicitly):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::setLocation):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::updateImageControls):

  • html/HTMLImageLoader.cpp:

(WebCore::HTMLImageLoader::sourceURI):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setupDateTimeChooserParameters):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::mediaPlayerMediaKeysStorageDirectory):
(WebCore::HTMLMediaElement::mediaPlayerAcceleratedCompositingEnabled):
(WebCore::HTMLMediaElement::enterFullscreen):
(WebCore::HTMLMediaElement::exitFullscreen):
(WebCore::HTMLMediaElement::mediaPlayerNeedsSiteSpecificHacks):
(WebCore::HTMLMediaElement::mediaPlayerNetworkInterfaceName):
(WebCore::HTMLMediaElement::setMediaControlsDependOnPageScaleFactor):
(WebCore::HTMLMediaElement::doesHaveAttribute):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::HTMLVideoElement):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled):
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):
(WebCore::MediaElementSession::allowsAutomaticMediaDataLoading):
(WebCore::MediaElementSession::allowsPictureInPicture):
(WebCore::MediaElementSession::maximumMediaSourceBufferSize):

  • html/parser/HTMLParserOptions.cpp:

(WebCore::HTMLParserOptions::HTMLParserOptions):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLink):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowContentSecurityPolicySourceStarToMatchAnyProtocol):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::toggleSimpleLineLayout):

  • style/StyleFontSizeFunctions.cpp:

(WebCore::Style::computedFontSizeFromSpecifiedSize):
(WebCore::Style::fontSizeForKeyword):
(WebCore::Style::legacyFontSizeForPixelSize):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::collectActiveStyleSheets):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::usesDashboardBackwardCompatibilityMode):

9:36 AM Changeset in webkit [211963] by Antti Koivisto
  • 6 edits in trunk/Source

Use all cacheable speculatively loaded responses
https://bugs.webkit.org/show_bug.cgi?id=168052

Reviewed by Andreas Kling.

Source/WebCore:

  • platform/network/CacheValidation.cpp:

(WebCore::isStatusCodeCacheableByDefault):
(WebCore::isStatusCodePotentiallyCacheable):

Moved here from WebKit2.

  • platform/network/CacheValidation.h:

Source/WebKit2:

We currently only allow 200 responses. There is no reason not to use speculative responses
that have other cacheable status codes. This is helpful for 204s and 404s.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeStoreDecision):
(WebKit::NetworkCache::isStatusCodeCacheableByDefault): Deleted.
(WebKit::NetworkCache::isStatusCodePotentiallyCacheable): Deleted.

Move to CacheValidation.h/cpp

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):

Allow all cacheable-by-default responses.

9:29 AM Changeset in webkit [211962] by eric.carlson@apple.com
  • 20 edits
    6 deletes in trunk

[MediaStream] Remove legacy Navigator.webkitGetUserMedia
https://bugs.webkit.org/show_bug.cgi?id=168016
Source/WebCore:

Reviewed by Youenn Fablet.

No new tests, existing tests updated.

  • WebCore.xcodeproj/project.pbxproj: NavigatorUserMedia.
  • DerivedSources.make: Ditto.
  • CMakeLists.txt: Ditto.
  • Modules/mediastream/NavigatorUserMedia.idl: Removed.
  • Modules/mediastream/NavigatorUserMedia.js: Removed.
  • WebCore.xcodeproj/project.pbxproj:
  • page/Navigator.idl: Add some whitespace to force derived sources to be rebuild correctly.

Source/WebInspectorUI:

Reviewed by Youenn Fablet.

  • UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

<rdar://problem/30431544>

Reviewed by Youenn Fablet.

Update valid tests to use navigator.mediaDevices.getUserMedia. Remove tests
specific to Navigator.webkitGetUserMedia.

  • fast/mediastream/RTCPeerConnection-AddRemoveStream.html:
  • fast/mediastream/argument-types.html: Removed.
  • fast/mediastream/delayed-permission-allowed.html:
  • fast/mediastream/delayed-permission-denied.html:
  • fast/mediastream/enabled-expected.txt:
  • fast/mediastream/error.html:
  • fast/mediastream/getusermedia.html: Removed.
  • fast/mediastream/script-tests/argument-types.js: Removed.
  • fast/mediastream/script-tests/enabled.js:

(hasGetUserMediaProperty):

  • fast/mediastream/success.html:
  • fast/mediastream/webkitGetUserMedia-shadowing-then.html: Removed.
  • http/tests/media/media-stream/disconnected-frame-already-expected.txt:
  • http/tests/media/media-stream/disconnected-frame-already.html:
  • http/tests/media/media-stream/disconnected-frame-permission-denied.html:
  • http/tests/media/media-stream/disconnected-frame.html:
9:13 AM Changeset in webkit [211961] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

[Modern Media Controls] Tapping the skip back button on iOS inline media controls make the controls disappear
https://bugs.webkit.org/show_bug.cgi?id=168049
<rdar://problem/30442660>

Patch by Antoine Quint <Antoine Quint> on 2017-02-09
Reviewed by Eric Carlson.

Source/WebCore:

Calling elementAtPoint() on the Document will not return an element in the ShadowRoot,
we need to call it on the ShadowRoot. So we now iterate over ancestors of the controls
bar to find the ShadowRoot, if any, and check whether the tapped element is contained
within the controls bar. We only fade the controls bar out if the tapped element is
outside of the controls bar hierarchy.

Test: media/modern-media-controls/media-controller/media-controller-ios-do-not-hide-controls-when-tapping-button.html

  • Modules/modern-media-controls/controls/controls-bar.js:

(ControlsBar.prototype.gestureRecognizerStateDidChange):

LayoutTests:

Add a new iOS-specific test that checks that tapping a button does not automatically dismisses the controls bar.

  • media/modern-media-controls/media-controller/media-controller-ios-do-not-hide-controls-when-tapping-button-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-ios-do-not-hide-controls-when-tapping-button.html: Added.
  • platform/mac/TestExpectations:
8:37 AM Changeset in webkit [211960] by achristensen@apple.com
  • 48 edits in trunk/Source/ThirdParty/libwebrtc

Fix i386 libwebrtc build
https://bugs.webkit.org/show_bug.cgi?id=168038

Reviewed by Geoffrey Garen.

Unfortunately, 32-bit ObjC can't use all the coolest new features of ObjC.
Fortunately, we can move things around a bit to become valid old ObjC.

  • Source/webrtc/sdk/objc/Framework/Classes/RTCAVFoundationVideoSource.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCAudioSource.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCFileLogger.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCI420Shader.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCMediaConstraints.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCMediaSource+Private.h:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCMediaSource.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCMediaStream.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCMediaStreamTrack+Private.h:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCMediaStreamTrack.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.h:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCPeerConnectionFactory.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCRtpReceiver.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCRtpSender.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCShader.h:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCVideoFrame.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCVideoRendererAdapter.h:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCVideoRendererAdapter.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCVideoSource.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/RTCVideoTrack.mm:
  • Source/webrtc/sdk/objc/Framework/Classes/avfoundationvideocapturer.mm:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSource.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioTrack.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCFileLogger.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCIceCandidate.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCIceServer.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaConstraints.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaSource.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaStream.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpParameters.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpReceiver.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpSender.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCSessionDescription.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoFrame.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoSource.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoTrack.h:

Make code compile for i386.

  • libwebrtc.xcodeproj/project.pbxproj:

Added missing headers so Xcode can search them.

8:33 AM Changeset in webkit [211959] by jer.noble@apple.com
  • 16 edits
    3 adds in trunk/Source/WebCore

Configure MockRealtimeAudioSourceMac to generate stereo audio
https://bugs.webkit.org/show_bug.cgi?id=168027

Reviewed by Eric Carlson.

Update MockRealtimeAudioSourceMac to generate stereo audio.

First, because the pattern of creating a AudioBufferList structure (with all it's quirks and
weird requirements) was repeated multiple places, add a new wrapper around ABL called
WebAudioBufferList which takes care of correctly initializing the ABL structure and manages
the lifetime of its data members.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/PlatformAudioData.h: Added.

(WebCore::PlatformAudioData::kind):

  • platform/audio/WebAudioBufferList.cpp: Added.

(WebCore::WebAudioBufferList::WebAudioBufferList):
(WebCore::WebAudioBufferList::buffers):
(WebCore::WebAudioBufferList::bufferCount):
(WebCore::WebAudioBufferList::buffer):

  • platform/audio/WebAudioBufferList.h: Added.

(WebCore::WebAudioBufferList::list):
(WebCore::WebAudioBufferList::operator AudioBufferList&):
(WebCore::WebAudioBufferList::kind):
(isType):

Then update existing code to work in terms of WebAudioBufferList:

  • platform/audio/mac/AudioSampleBufferList.cpp:

(WebCore::AudioSampleBufferList::AudioSampleBufferList):
(WebCore::AudioSampleBufferList::mixFrom):
(WebCore::AudioSampleBufferList::copyFrom):
(WebCore::AudioSampleBufferList::copyTo):
(WebCore::AudioSampleBufferList::reset):
(WebCore::AudioSampleBufferList::configureBufferListForStream): Deleted.

  • platform/audio/mac/AudioSampleBufferList.h:

(WebCore::AudioSampleBufferList::bufferList):

  • platform/audio/mac/AudioSampleDataSource.cpp:

(WebCore::AudioSampleDataSource::pushSamples):

  • platform/audio/mac/AudioSampleDataSource.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::audioSamplesAvailable):

  • platform/mediastream/RealtimeMediaSource.h:

(WebCore::RealtimeMediaSource::Observer::audioSamplesAvailable):

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

(WebCore::AVAudioCaptureSource::captureOutputDidOutputSampleBufferFromConnection):

  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:

(WebCore::AudioTrackPrivateMediaStreamCocoa::audioSamplesAvailable):

  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h:
  • platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp:

(WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable):

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.h:

Finally, actually update MockRealtimeAudioSource to emit stereo samples. Importantly, set
the correct values for the m_streamFormat; mBytesPerFrame and mBytesPerPacket are not
multiplied by the channelCount. When generating audio, write to both channels of data.

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

(WebCore::MockRealtimeAudioSourceMac::emitSampleBuffers):
(WebCore::MockRealtimeAudioSourceMac::reconfigure):
(WebCore::MockRealtimeAudioSourceMac::render):

8:32 AM Changeset in webkit [211958] by Carlos Garcia Campos
  • 11 edits
    12 adds in releases/WebKitGTK/webkit-2.14

Merge r209145 - Use 'childOfType' template when retrieving Shadow DOM elements
https://bugs.webkit.org/show_bug.cgi?id=165145
<rdar://problem/29331830>

Reviewed by Antti Koivisto.

Source/WebCore:

Tests: fast/shadow-dom/color-input-element-shadow-manipulation.html

fast/shadow-dom/file-input-element-shadow-manipulation.html
fast/shadow-dom/keygen-shadow-manipulation.html
fast/shadow-dom/media-shadow-manipulation.html
fast/shadow-dom/range-input-element-shadow-manipulation.html
fast/shadow-dom/textarea-shadow-manipulation.html

Switch to using 'childOfType' when retrieving Shadow DOM elements, rather
than relying on expected element positions, as these can be changed by
JavaScript.

Drive by fix: Make more use of is<> and downcast<> templates rather than blindly casting.

  • dom/Element.h:

(WebCore::Element::isUploadButton): Added.
(WebCore::Element::isSliderContainerElement): Added.

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::shadowColorSwatch): Use 'childOfType' rather than assuming
the first child is the one we want.

  • html/FileInputType.cpp:

(isType): Added.
(WebCore::FileInputType::disabledAttributeChanged): Use 'childOfType' rather than assuming
the first child is the one we want.
(WebCore::FileInputType::multipleAttributeChanged): Ditto.

  • html/HTMLKeygenElement.cpp:

(WebCore::HTMLKeygenElement::shadowSelect): Ditto.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaControls): Ditto.
(WebCore::HTMLMediaElement::hasMediaControls): Ditto.

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::innerTextElement): Ditto.

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::sliderTrackElement): Ditto.

  • html/shadow/SliderThumbElement.h:

(isType): Added.

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::targetClone): Use 'childOfType' rather than assuming
the first child is the one we want.

LayoutTests:

  • fast/shadow-dom/color-input-element-shadow-manipulation-expected.txt: Added.
  • fast/shadow-dom/color-input-element-shadow-manipulation.html: Added.
  • fast/shadow-dom/file-input-element-shadow-manipulation-expected.txt: Added.
  • fast/shadow-dom/file-input-element-shadow-manipulation.html: Added.
  • fast/shadow-dom/keygen-shadow-manipulation-expected.txt: Added.
  • fast/shadow-dom/keygen-shadow-manipulation.html: Added.
  • fast/shadow-dom/media-shadow-manipulation-expected.txt: Added.
  • fast/shadow-dom/media-shadow-manipulation.html: Added.
  • fast/shadow-dom/range-input-element-shadow-manipulation-expected.txt: Added.
  • fast/shadow-dom/range-input-element-shadow-manipulation.html: Added.
  • fast/shadow-dom/textarea-shadow-manipulation-expected.txt: Added.
  • fast/shadow-dom/textarea-shadow-manipulation.html: Added.
8:32 AM Changeset in webkit [211957] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Nullptr crash under styleForFirstLetter
https://bugs.webkit.org/show_bug.cgi?id=167756
rdar://problem/30029354

Reviewed by Zalan Bujtas.

Don't know how we get here. Paper over the crash.

  • rendering/RenderBlock.cpp:

(WebCore::styleForFirstLetter):

Use parent first line style if we compute null style for the first letter renderer.

8:22 AM Changeset in webkit [211956] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Skip tests that require UIScriptController::zoomToScale.

  • platform/gtk/TestExpectations:
8:20 AM Changeset in webkit [211955] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

[Modern Media Controls] Playing an <audio> element on iOS makes the controls disappear
https://bugs.webkit.org/show_bug.cgi?id=168047
<rdar://problem/30441939>

Reviewed by Eric Carlson.

Source/WebCore:

The controls bar auto-hide behavior is disabled for <audio> elements, but on iOS we have
a TapGestureRecognizer to identify when controls are tapped to toggle controls visibility.
This gesture recognizer would be on at all times, but it should only be enabled when
fadesToIdle is set to true.

Test: media/modern-media-controls/media-controller/media-controller-ios-only-enable-tap-gesture-recognizer-with-fades-when-idle.html

  • Modules/modern-media-controls/controls/controls-bar.js:

(ControlsBar.prototype.set fadesWhileIdle):

LayoutTests:

Add a new iOS-specific test that checks the TapGestureRecognizer is only enabled when
fadesToIdle is true.

  • media/modern-media-controls/media-controller/media-controller-ios-only-enable-tap-gesture-recognizer-with-fades-when-idle-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-ios-only-enable-tap-gesture-recognizer-with-fades-when-idle.html: Added.
  • platform/mac/TestExpectations:
8:03 AM Changeset in webkit [211954] by commit-queue@webkit.org
  • 5 edits in trunk

Improve W3C importer command line options
https://bugs.webkit.org/show_bug.cgi?id=167448

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-09
Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • resources/TestRepositories: Skipped module generation and gitignore generation for the moment.

Tools:

Making the list of test paths to import the main arguments of the script.
Allow passing the source directory to import as a -s option.
Adding a warning when given test paths are skipped by default in ImportExpectations.

Making link conversion off by default when importing from a specific directory since this script is mostly used with web-platform-tests.
Link conversion rules do not change when imported tests are downloaded by the script.

  • Scripts/webkitpy/w3c/test_importer.py:

(main):
(parse_args):
(TestImporter.init):
(TestImporter.do_import):
(TestImporter):
(TestImporter.check_imported_expectations):

7:59 AM Changeset in webkit [211953] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

[Modern Media Controls] <audio> element does not show any background on iOS
https://bugs.webkit.org/show_bug.cgi?id=168046
<rdar://problem/30441872>

Patch by Antoine Quint <Antoine Quint> on 2017-02-09
Reviewed by Eric Carlson.

Source/WebCore:

Use a solid gray background for <audio> elements on iOS.

Test: media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-audio-background.html

  • Modules/modern-media-controls/controls/ios-inline-media-controls.css:

(:host(audio) .media-controls.ios.inline > .controls-bar:before):

LayoutTests:

Add an iOS-specific test that checks that <audio> elements have a solid gray background.

  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-audio-background-expected.txt: Added.
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-audio-background.html: Added.
  • platform/mac/TestExpectations:
7:13 AM Changeset in webkit [211952] by commit-queue@webkit.org
  • 12 edits
    2 adds in trunk

[Modern Media Controls] Controls fail to instantiate in an XHTML document
https://bugs.webkit.org/show_bug.cgi?id=168045
<rdar://problem/30290095>

Patch by Antoine Quint <Antoine Quint> on 2017-02-09
Reviewed by Eric Carlson.

Source/WebCore:

Always use valid HTML and XHTML strings when creating HTML elements.

Test: media/modern-media-controls/media-controller/media-controller-in-xhtml.xhtml

  • Modules/modern-media-controls/controls/button.js:

(Button):

  • Modules/modern-media-controls/controls/buttons-container.js:
  • Modules/modern-media-controls/controls/controls-bar.js:
  • Modules/modern-media-controls/controls/macos-inline-media-controls.js:
  • Modules/modern-media-controls/controls/media-controls.js:
  • Modules/modern-media-controls/controls/slider.js:
  • Modules/modern-media-controls/controls/status-label.js:
  • Modules/modern-media-controls/controls/time-control.js:
  • Modules/modern-media-controls/controls/time-label.js:
  • Modules/modern-media-controls/controls/tracks-panel.js:

LayoutTests:

Add a new test to check that controls are created correctly when the media element
is hosted in an XHTML document.

  • media/modern-media-controls/media-controller/media-controller-in-xhtml-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-in-xhtml.xhtml: Added.
6:43 AM Changeset in webkit [211951] by Carlos Garcia Campos
  • 2 edits
    5 deletes in trunk/LayoutTests

Unreviewed GTK+ gardening. Update tests that pass now with the URLParser enabled.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/loader/redirect-to-invalid-url-using-javascript-calls-policy-delegate-expected.txt: Removed.
  • platform/gtk/fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate-expected.txt: Removed.
  • platform/gtk/fast/loader/url-parse-1-expected.txt: Removed.
  • platform/gtk/fast/loader/window-open-to-invalid-url-calls-policy-delegate-expected.txt: Removed.
  • platform/gtk/fast/url/invalid-idn-expected.txt: Removed.
  • platform/gtk/fast/url/segments-userinfo-vs-host-expected.txt: Removed.
  • platform/gtk/fast/url/tab-and-newline-stripping-expected.txt: Removed.
  • platform/gtk/fast/url/url-credentials-escaping-expected.txt: Removed.
5:57 AM Changeset in webkit [211950] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix typo in comment

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::replaceDocument):

5:55 AM Changeset in webkit [211949] by akling@apple.com
  • 11 edits
    4 adds in trunk

Disallow accelerated rendering for ginormous 2D canvases.
<https://webkit.org/b/167968>
<rdar://problem/30119483>

Reviewed by Antti Koivisto.

Source/WebCore:

Add a "maximumAccelerated2dCanvasSize" setting that defaults to 5120x2880
which is the 5K resolution for 16:9.

Also added a way to include the "accelerates drawing" flag in layer tree dumps.

Test: compositing/canvas/accelerated-canvas-compositing-size-limit.html

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::shouldAccelerate):

  • page/Frame.h:
  • page/Settings.in:
  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::dumpProperties):

  • platform/graphics/GraphicsLayerClient.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerTreeAsText):

  • testing/Internals.cpp:

(WebCore::toLayerTreeFlags):

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

LayoutTests:

Add a simple test that documents the fact that we no longer accelerate canvases
larger than 5120x2880.

  • compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Added.
  • compositing/canvas/accelerated-canvas-compositing-size-limit.html: Added.
  • platform/ios-simulator/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Added.
5:52 AM Changeset in webkit [211948] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Add expectations for more tests that require drag and drop.

  • platform/gtk/TestExpectations:
4:20 AM Changeset in webkit [211947] by tpopela@redhat.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix gtk-doc warning

html/WebKitSettings.html:4435: warning: no link for: 'api-index-2.3' -> (2.3).

  • UIProcess/API/gtk/WebKitSettings.cpp:

(webkit_settings_class_init):

3:09 AM Changeset in webkit [211946] by Antti Koivisto
  • 51 edits in trunk/Source

Remove most cases of #if ENABLE(CACHE_PARTITIONING)
https://bugs.webkit.org/show_bug.cgi?id=167990

Reviewed by Sam Weinig.

Source/WebCore:

We'll just return empty string for the partition if partitioning is not enabled.

  • html/DOMURL.cpp:

(WebCore::DOMURL::revokeObjectURL):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResource):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::url):
(WebCore::CachedResource::cachePartition):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
(WebCore::CachedResourceLoader::requestResource):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setDomainForCachePartition):

  • loader/cache/CachedResourceRequest.h:
  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::add):
(WebCore::MemoryCache::revalidationSucceeded):
(WebCore::MemoryCache::resourceForRequestImpl):
(WebCore::MemoryCache::addImageToCache):
(WebCore::MemoryCache::removeImageFromCache):
(WebCore::MemoryCache::remove):
(WebCore::MemoryCache::removeResourcesWithOrigin):
(WebCore::MemoryCache::removeResourcesWithOrigins):
(WebCore::MemoryCache::getOriginsWithCache):
(WebCore::MemoryCache::originsWithCache):

  • loader/cache/MemoryCache.h:
  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::domainForCachePartition):

  • page/SecurityOrigin.h:
  • platform/SchemeRegistry.cpp:

(WebCore::cachePartitioningSchemes):
(WebCore::SchemeRegistry::shouldPartitionCacheForURLScheme):

  • platform/SchemeRegistry.h:
  • platform/ios/WebCoreSystemInterfaceIOS.mm:
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setAsIsolatedCopy):
(WebCore::ResourceRequestBase::setCachePartition):
(WebCore::ResourceRequestBase::partitionName):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::cachePartition):
(WebCore::ResourceRequestBase::setDomainForCachePartition):

  • platform/network/cf/ResourceRequest.h:

(WebCore::ResourceRequest::cachePartition): Deleted.
(WebCore::ResourceRequest::setCachePartition): Deleted.
(WebCore::ResourceRequest::setDomainForCachePartition): Deleted.

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::ResourceRequest::partitionName): Deleted.
(WebCore::ResourceRequest::doPlatformSetAsIsolatedCopy): Deleted.

  • platform/network/cf/ResourceResponse.h:
  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::ResourceRequest::doUpdatePlatformRequest):

  • testing/Internals.cpp:

(WebCore::Internals::isLoadingFromMemoryCache):

Source/WebKit/mac:

  • Misc/WebCache.mm:

(+[WebCache addImageToCache:forURL:forFrame:]):
(+[WebCache removeImageFromCacheForURL:forFrame:]):

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

Source/WebKit2:

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::makeCacheKey):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::constructRevalidationRequest):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ResourceRequest>::encode):
(IPC::ArgumentCoder<ResourceRequest>::decode):

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextRegisterURLSchemeAsCachePartitioned):

  • UIProcess/WebProcessPool.cpp:

(WebKit::m_hiddenPageThrottlingTimer):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::registerURLSchemeAsCachePartitioned):

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::registerURLSchemeAsCachePartitioned):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
2:41 AM Changeset in webkit [211945] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Add Web Bluetooth as Not Considering
https://bugs.webkit.org/show_bug.cgi?id=168042

Reviewed by Yusuke Suzuki.

Add Web Bluetooth as a feature not being considered to be implemented in WebKit.

  • features.json:
12:57 AM Changeset in webkit [211944] by Carlos Garcia Campos
  • 5 edits
    3 adds in releases/WebKitGTK/webkit-2.14

Merge r210122 - Nested calls to setDocument can omit firing 'unload' events
https://bugs.webkit.org/show_bug.cgi?id=166422
<rdar://problem/29763012>

Reviewed by Alex Christensen.

Source/WebCore:

Test: fast/loader/nested-document-handling.html

Only allow a single document change to be taking place during a given runloop cycle.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeIfJavaScriptURL): Block script changing the document
when we are in the middle of changing the document.

  • page/Frame.cpp:

(WebCore::Frame::setDocument): Keep track of document change state.

  • page/Frame.h:

LayoutTests:

  • fast/loader/nested-document-handling-expected.txt: Added.
  • fast/loader/nested-document-handling.html: Added.
  • fast/loader/resources/subframe-success.html: Added.
12:56 AM Changeset in webkit [211943] by Carlos Garcia Campos
  • 38 edits
    8 adds in releases/WebKitGTK/webkit-2.14

Merge r211254 - Crash when navigating back to a page in PacheCache when one of its frames has been removed
https://bugs.webkit.org/show_bug.cgi?id=167421
<rdar://problem/30188490>

Reviewed by Darin Adler.

Source/WebCore:

Disallow page caching of a page if:

  1. The main window has an opener (i.e. it was opened via window.open)
  2. It has ever used window.open()

This is because allowing page caching in this case would allow such
windows to script each other even after one of them entered Page
Cache. Allowing this is dangerous and easily causes crashes.

This is a short term workaround until we find a better solution to
the problem. One issue is this workaround is that navigating back
to a page that has an opener or used window.open() will not longer
get the page from PageCache. As a result, state may be lost upon
navigating back. However, we never guarantee that pages get page
cached, and Chrome does not have a PageCache.

Tests: fast/history/page-cache-after-window-open.html

fast/history/page-cache-back-navigation-crash.html
fast/history/page-cache-with-opener.html

  • dom/Document.cpp:

(WebCore::Document::hasEverCalledWindowOpen):
(WebCore::Document::markHasCalledWindowOpen):

  • dom/Document.h:
  • history/PageCache.cpp:

(WebCore::canCachePage):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::hasCalledWindowOpenKey):
(WebCore::DiagnosticLoggingKeys::hasOpenerKey):

  • page/DiagnosticLoggingKeys.h:
  • page/Page.cpp:

(WebCore::Page::openedByWindowOpen):

  • page/Page.h:
  • page/Settings.in:

Source/WebKit/mac:

Add a new setting allowing layout tests to enable PageCache in a window
that has an opener, for convenience.

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

(+[WebPreferences initialize]):
(-[WebPreferences allowsPageCacheWithWindowOpener]):
(-[WebPreferences setAllowsPageCacheWithWindowOpener:]):

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

(-[WebView _preferencesChanged:]):

Source/WebKit/win:

Add a new setting allowing layout tests to enable PageCache in a window
that has an opener, for convenience.

  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):

  • WebPreferences.h:

Source/WebKit2:

Add a new setting allowing layout tests to enable PageCache in a window
that has an opener, for convenience.

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

(WKPreferencesSetAllowsPageCacheWithWindowOpener):
(WKPreferencesGetAllowsPageCacheWithWindowOpener):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

Add a new setting allowing layout tests to enable PageCache in a window
that has an opener, for convenience.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

  • fast/history/page-cache-after-window-open-expected.txt: Added.
  • fast/history/page-cache-after-window-open.html: Added.
  • fast/history/page-cache-back-navigation-crash-expected.txt: Added.
  • fast/history/page-cache-back-navigation-crash.html: Added.
  • fast/history/page-cache-with-opener-expected.txt: Added.
  • fast/history/page-cache-with-opener.html: Added.
  • fast/history/resources/page-cache-window-with-iframe.html: Added.
  • fast/history/resources/page-cache-window-with-opener.html: Added.

Add layout test coverage.

  • editing/mac/input/unconfirmed-text-navigation-with-page-cache.html:
  • fast/harness/page-cache-crash-on-data-urls.html:
  • fast/harness/use-page-cache.html:
  • fast/history/page-cache-after-window-open-expected.txt: Added.
  • fast/history/page-cache-after-window-open.html: Added.
  • fast/history/page-cache-with-opener-expected.txt: Added.
  • fast/history/page-cache-with-opener.html: Added.
  • fast/history/resources/page-cache-window-with-opener.html: Added.
  • fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-with-page-cache.html:
  • fast/loader/stateobjects/popstate-fires-with-page-cache.html:
  • tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html:

These tests relied on using window.open() to test PageCache for convenience. They now
need to override a setting in order to be allowed to do so.

12:56 AM Changeset in webkit [211942] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r210120 - Do not destroy the RenderNamedFlowFragment as leftover anonymous block.
https://bugs.webkit.org/show_bug.cgi?id=166436
rdar://problem/29772233

Reviewed by Simon Fraser.

Source/WebCore:

When as the result of certain style change, the generated anonymous block is not needed anymore, we
move its descendants up to the parent and destroy the generated box. While RenderNamedFlowFragment is a generated
block, the cleanup code should just ignore it the same way we ignore boxes like multicolumn, mathml etc.

Test: fast/regions/flow-fragment-as-anonymous-block-crash.html

  • rendering/RenderObject.h:

(WebCore::RenderObject::isAnonymousBlock):

LayoutTests:

  • fast/regions/flow-fragment-as-anonymous-block-crash-expected.txt: Added.
  • fast/regions/flow-fragment-as-anonymous-block-crash.html: Added.
12:56 AM Changeset in webkit [211941] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r209926 - Defer certain accessibility callbacks until after layout is finished.
https://bugs.webkit.org/show_bug.cgi?id=165861
rdar://problem/29646301

Reviewed by Chris Fleizach.

Source/WebCore:

Currently with certain AXObjectCache callbacks, we can end up in a layout while the render tree is being mutated.
This patch ensures that such callbacks are deferred until after tree mutation/layout is finished.

Test: accessibility/accessibility-crash-with-dynamic-inline-content.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::performDeferredIsIgnoredChange):
(WebCore::AXObjectCache::insertDeferredIsIgnoredChange):

  • accessibility/AXObjectCache.h:
  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::deleteLines):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::createAndAppendRootInlineBox):

LayoutTests:

  • accessibility/accessibility-crash-with-dynamic-inline-content-expected.txt: Added.
  • accessibility/accessibility-crash-with-dynamic-inline-content.html: Added.
12:55 AM Changeset in webkit [211940] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r210288 - Correct DOMWindow handling during FrameLoader::clear
https://bugs.webkit.org/show_bug.cgi?id=166357
<rdar://problem/29741862>

Reviewed by Andy Estes.

Make sure that we always clean up the DOM window when clearing Window properties, even if the document will
remain in the page cache. Since 'clearWindowShell' is only used in FrameLoader, divide it's beahvior into
two steps:

  1. Rename 'clearWindowShell' to 'clearWIndowShellsNotMatchingDOMWindow' to better describe its function.

Switch to a modern C++ loop. Do not switch to the new DOMWindow here, but detach and clear existing
DOMWindow connections.

  1. Add a new method 'setDOMWindowForWindowShell'. Complete switch to the new DOMWindow.

This change allows us to disconnect the old DOMWindow, perform the 'setDocument(nullptr)' operation, and then
connect to the new Window without leaving the loader in an inconsistent state.

  • loader/bindings/js/ScriptController.cpp:

(WebCore::clearWindowShellsNotMatchingDOMWindow): Renamed from 'clearWindowShell'
(WebCore::setDOMWindowForWindowShell): Added.

  • loader/bindings/js/ScriptController.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clear): Revise to use the new two-step DOMWindow switch logic.

12:55 AM Changeset in webkit [211939] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r209990 - Side effects while restting form elements
https://bugs.webkit.org/show_bug.cgi?id=165959
<rdar://problem/29705967>

Reviewed by Anders Carlsson.

Source/WebCore:

JavaScript logic can run while resetting FormElement objects. This can
lead to unintended side-effets and other unwanted behavior. We should
protect these elements during the reset.

Test: fast/html/form-mutate.html

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::HTMLFormElement): Switch to C++11 initialization.
(WebCore::HTMLFormElement::reset): Protect elements until the reset
operation is finished.
(WebCore::HTMLFormElement::resetAssociatedFormControlElements): Added to share
code with 'resumeFromDocument'.
(WebCore::HTMLFormElement::resumeFromDocument): Protect elements until the
reset operation is finished.

LayoutTests:

  • fast/html/form-mutate-expected.txt: Added.
  • fast/html/form-mutate.html: Added.
12:55 AM Changeset in webkit [211938] by Carlos Garcia Campos
  • 20 edits
    3 adds
    2 deletes in releases/WebKitGTK/webkit-2.14

Merge r209424 - Introduce the concept of Immutable Prototype Exotic Objects to comply with the spec.
https://bugs.webkit.org/show_bug.cgi?id=165227
<rdar://problem/29442665>

Reviewed by Saam Barati.

JSTests:

  • stress/get-from-scope-dynamic-onto-proxy.js:
  • Updated error message.
  • stress/proxy-dont-infinite-loop.js: Removed.
  • stress/proxy-json-path.js: Removed.
  • stress/rest-parameter-allocation-elimination-watchpoints-6.js: Removed.
  • Removed these tests because the issue they are testing relies on being able to set Object.prototype.proto to something else (which is now not possible).

Source/JavaScriptCore:

  • runtime/JSObject.cpp:

(JSC::JSObject::setPrototypeWithCycleCheck):

  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::isImmutablePrototypeExoticObject):

  • runtime/Structure.h:
  • Add flag for declaring immutable prototype exotic objects.
  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorSetPrototypeOf):

  • Use better error messages.

Source/WebCore:

Make all objects in window.proto's prototype chain immutable prototype exotic
objects. This gives us roughly equivalent behavior to other browsers.

Firefox's behavior differ slightly in that Firefox will fail any attempted
assignment their proto, while the immutable prototype exotic objects will
only fail if the assignment is of a different value. See
https://tc39.github.io/ecma262/#sec-immutable-prototype-exotic-objects.

Chrome differs in that assignment to window.proto is also handled like an
immutable prototype exotic object. Instead we adhere to the current HTML spec
that says that the assignment should fail unconditionally. See
https://html.spec.whatwg.org/#the-windowproxy-exotic-object and
https://html.spec.whatwg.org/#windowproxy-setprototypeof.

If the HTML spec is changed to make the WindowProxy and Location objects into
immutable prototype exotic objects later, we can update to match the spec then.

Test: js/prototype-assignment.html

  • bindings/js/JSDOMWindowProperties.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GeneratePrototypeDeclaration):

  • bindings/scripts/IDLAttributes.txt:
  • dom/EventTarget.idl:
  • page/DOMWindow.idl:

LayoutTests:

The new prototype-assignment.js test is currently only enabled for LLInt only
run in the JSC tests until webkit.org/b/165401 is fixed.

  • TestExpectations:
  • Skip js/prototype-assignment.html for now until webkit.org/b/165401 is fixed.
  • http/tests/security/window-named-valueOf-expected.txt:
  • js/dom/proxy-is-not-allowed-in-global-prototype-chain-expected.txt:
  • js/dom/proxy-is-not-allowed-in-global-prototype-chain.html:
  • Updated error messages.
  • js/prototype-assignment-expected.txt: Added.
  • js/prototype-assignment.html: Added.
  • js/script-tests/prototype-assignment.js: Added.

(else):
(reportError):
(shouldEqual):
(shouldThrow):
(stringify):
(makeTestID):
(doInternalSetPrototypeOf):
(ordinarySetPrototypeOf):
(setImmutablePrototype):
(windowProxySetPrototypeOf):
(initSetterExpectation):
(throwIfNoExceptionPending):
(objectSetPrototypeOf):
(setUnderscoreProto):
(reflectSetPrototypeOf):
(newObjectProto.toString):
(this.testObject.targets.push.value):
(this.testProxy.targets.push.setPrototypeOf):
(Symbol):
(test):
(runTests):

  • js/setPrototypeOf-expected.txt:
12:55 AM Changeset in webkit [211937] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r209149 - Proxy is not allowed in the global prototype chain.
https://bugs.webkit.org/show_bug.cgi?id=165205

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • runtime/ProgramExecutable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):

  • We'll now throw a TypeError if we detect a Proxy in the global prototype chain.

LayoutTests:

  • js/dom/proxy-is-not-allowed-in-global-prototype-chain-expected.txt: Added.
  • js/dom/proxy-is-not-allowed-in-global-prototype-chain.html: Added.
12:54 AM Changeset in webkit [211936] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r208745 - Correct handling of changing input type
https://bugs.webkit.org/show_bug.cgi?id=164759
<rdar://problem/29211174>

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/forms/search-cancel-button-change-input.html

It is possible for JavaScript to change the type property of an input field. WebKit
needs to gracefully handle this case.

Add a type traits specialization so we can properly downcast InputType elements.
Use this to only call search functions on actual search input types.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::onSearch): Only perform search functions if the
input type is actually a search field.

  • html/InputType.h: Add type traits specialization for 'downcast' template.
  • html/SearchInputType.h: Ditto.

LayoutTests:

  • fast/forms/search-cancel-button-change-input-expected.txt: Added.
  • fast/forms/search-cancel-button-change-input.html: Added.
12:54 AM Changeset in webkit [211935] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r208628 - Neutered ArrayBuffers are not properly serialized
https://bugs.webkit.org/show_bug.cgi?id=164647
<rdar://problem/29213490>

Reviewed by David Kilzer.

Source/WebCore:

Correct binding logic to handle ImageBuffers being deserialized from neutered ArrayBuffers.

Test: fast/canvas/neutered-imagedata.html

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readTerminal):

LayoutTests:

  • fast/canvas/neutered-imagedata-expected.txt: Added.
  • fast/canvas/neutered-imagedata.html: Added.
12:54 AM Changeset in webkit [211934] by Carlos Garcia Campos
  • 3 edits
    4 adds in releases/WebKitGTK/webkit-2.14

Merge r208825 - Clear track client when removing a track
https://bugs.webkit.org/show_bug.cgi?id=164842
<rdar://problem/29213621>

Reviewed by Eric Carlson.

Source/WebCore:

Call 'clearClient' when removing a track from an HTMLMediaElement.

Test: media/track/audio-track-add-remove.html

media/track/video-track-add-remove.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::removeAudioTrack): Call 'clearClient'
(WebCore::HTMLMediaElement::removeVideoTrack): Ditto.

LayoutTests:

  • media/track/audio-track-add-remove-expected.txt: Added.
  • media/track/audio-track-add-remove.html: Added.
  • media/track/video-track-add-remove-expected.txt: Added.
  • media/track/video-track-add-remove.html: Added.
12:54 AM Changeset in webkit [211933] by Carlos Garcia Campos
  • 3 edits
    6 adds in releases/WebKitGTK/webkit-2.14

Merge r210112 - Bypass pop-up blocker from cross-origin or sandboxed frame
https://bugs.webkit.org/show_bug.cgi?id=166290
<rdar://problem/29742039>

Reviewed by Darin Adler.

Source/WebCore:

Tests: fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html

fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html
fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open): Use FrameLoader::findFrameForNavigation() to find the
target frame to navigate with respect to the active document just as we do in WebCore::createWindow().

LayoutTests:

  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame-expected.txt: Added.
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html: Added.
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2-expected.txt: Added.
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html: Added.
  • fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame-expected.txt: Added.
  • fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html: Added.
12:15 AM Changeset in webkit [211932] by achristensen@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Remove svn:executable property from headers.

  • Source/webrtc/base/sigslottester.h: Removed property svn:executable.
  • Source/webrtc/modules/video_processing/util/skin_detection.h: Removed property svn:executable.

Feb 8, 2017:

10:07 PM Changeset in webkit [211931] by ap@apple.com
  • 13 edits
    6 moves in trunk/Source/WebKit

Don't migrate WebKit DOM headers in MigrateHeaders.make
https://bugs.webkit.org/show_bug.cgi?id=167608

Source/WebKit:

Reviewed by Darin Adler.

Stop migrating DOM headers that are now in WebKit.

  • WebKit.xcodeproj/project.pbxproj: Marked DOM headers as private, so that Xcode

takes care of making them available as SPI.

Source/WebKit/mac:

Reviewed by Darin Adler.

Stop migrating DOM headers that are now in WebKit.

  • DOM/DOMDOMImplementation.h: Removed.
  • DOM/DOMDOMImplementation.mm: Removed.
  • DOM/DOMDOMImplementationInternal.h: Removed.
  • DOM/DOMDOMTokenList.h: Removed.
  • DOM/DOMDOMTokenList.mm: Removed.
  • DOM/DOMDOMTokenListInternal.h: Removed.
  • DOM/DOMImplementation.h: Copied from Source/WebKit/mac/DOM/DOMDOMImplementation.h.
  • DOM/DOMImplementation.mm: Copied from Source/WebKit/mac/DOM/DOMDOMImplementation.mm.
  • DOM/DOMImplementationInternal.h: Copied from Source/WebKit/mac/DOM/DOMDOMImplementationInternal.h.
  • DOM/DOMTokenList.h: Copied from Source/WebKit/mac/DOM/DOMDOMTokenList.h.
  • DOM/DOMTokenList.mm: Copied from Source/WebKit/mac/DOM/DOMDOMTokenList.mm.
  • DOM/DOMTokenListInternal.h: Copied from Source/WebKit/mac/DOM/DOMDOMTokenListInternal.h.

As the files are not in WebCore any more, there is no need to differentiate from
WebCore internal headers with the same name. This makes it possible to make these
headers private using Xcode mechanisms, as opposed to copying with a shell script.

  • DOM/DOMElement.mm: Removed "using namespace WebCore". Other DOM implementation

files don't have it.

  • DOM/DOMCore.h:
  • DOM/DOMDocument.mm:
  • DOM/DOMHTMLAnchorElement.mm:
  • DOM/DOMHTMLAreaElement.mm:
  • DOM/DOMHTMLLinkElement.mm:
  • DOM/DOMUtility.mm:

No more "DOMDOM".

  • WebKit.exp:

No more "DOMDOM". DOMDOMTokenList was not directly exposed via an SPI header, so
renaming it is likely to be safe.

  • MigrateHeaders.make: Don't migrate WebKit headers.
  • Configurations/WebKitLegacy.xcconfig: Don't include two iOS specific SPI headers

on macOS.

9:52 PM Changeset in webkit [211930] by Chris Dumez
  • 75 edits
    11 adds
    3 deletes in trunk

Update web-platform-tests resources
https://bugs.webkit.org/show_bug.cgi?id=168026

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/web-platform-tests-modules.json:
  • resources/web-platform-tests-modules/darobin/webidl2.js/archive/bd216bcd5596d60734450adc938155deab1e1a80.tar.gz: Removed.
  • resources/web-platform-tests-modules/dontcallmedom/widlproc/archive/4ef8dde69c0ba3d0167bccfa2775eea7f0d6c7fe.tar.gz: Removed.
  • resources/web-platform-tests-modules/w3c/testharness.js/archive/873f9680aff66553f84d38f21a038c4534cc2789.tar.gz: Removed.
  • web-platform-tests/.gitignore:
  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/fetch/api/headers/headers-idl-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/webappapis/animation-frames/idlharness-expected.txt:
  • web-platform-tests/resources/LICENSE: Added.
  • web-platform-tests/resources/idlharness.js: Added.

(constValue):
(minOverloadLength):
(throwOrReject):
(awaitNCallbacks):
(return.fround):
(fround):
(self.IdlArray):
(IdlArray.prototype.add_idls):
(IdlArray.prototype.add_untested_idls):
(IdlArray.prototype.internal_add_idls):
(IdlArray.prototype.add_objects):
(IdlArray.prototype.prevent_multiple_testing):
(IdlArray.prototype.recursively_get_implements):
(exposed_in):
(IdlArray.prototype.test):
(IdlArray.prototype.assert_type_is):
(IdlObject):
(IdlObject.prototype.test):
(IdlObject.prototype.has_extended_attribute):
(IdlInterface):
(IdlInterface.prototype.is_callback):
(IdlInterface.prototype.has_constants):
(IdlInterface.prototype.is_global):
(IdlInterface.prototype.test):
(IdlInterface.prototype.test_self):
(IdlInterface.prototype.test_member_const):
(IdlInterface.prototype.test_member_attribute):
(IdlInterface.prototype.test_member_operation):
(IdlInterface.prototype.do_member_operation_asserts):
(IdlInterface.prototype.add_iterable_members):
(IdlInterface.prototype.test_member_iterable):
(IdlInterface.prototype.test_member_stringifier):
(IdlInterface.prototype.test_members):
(IdlInterface.prototype.test_object):
(IdlInterface.prototype.test_primary_interface_of):
(IdlInterface.prototype.test_interface_of):
(IdlInterface.prototype.has_stringifier):
(IdlInterface.prototype.do_interface_attribute_asserts):
(IdlInterfaceMember):
(create_suitable_object):
(IdlEnum):
(IdlTypedef):

  • web-platform-tests/resources/readme.md: Added.
  • web-platform-tests/resources/testharness.js: Added.

(WindowTestEnvironment):
(WindowTestEnvironment.prototype._dispatch):
(WindowTestEnvironment.prototype._forEach_windows):
(WindowTestEnvironment.prototype.on_tests_ready):
(WindowTestEnvironment.prototype.setup_messages):
(WindowTestEnvironment.prototype.next_default_test_name):
(WindowTestEnvironment.prototype.on_new_harness_properties):
(WindowTestEnvironment.prototype.add_on_loaded_callback):
(WindowTestEnvironment.prototype.test_timeout):
(WindowTestEnvironment.prototype.global_scope):
(WorkerTestEnvironment):
(WorkerTestEnvironment.prototype._dispatch):
(WorkerTestEnvironment.prototype._add_message_port):
(WorkerTestEnvironment.prototype.next_default_test_name):
(WorkerTestEnvironment.prototype.on_new_harness_properties):
(WorkerTestEnvironment.prototype.on_tests_ready):
(WorkerTestEnvironment.prototype.add_on_loaded_callback):
(WorkerTestEnvironment.prototype.test_timeout):
(WorkerTestEnvironment.prototype.global_scope):
(DedicatedWorkerTestEnvironment):
(DedicatedWorkerTestEnvironment.prototype.on_tests_ready):
(SharedWorkerTestEnvironment):
(SharedWorkerTestEnvironment.prototype.on_tests_ready):
(ServiceWorkerTestEnvironment):
(ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback):
(create_test_environment):
(is_shared_worker):
(is_service_worker):
(test):
(async_test):
(promise_test):
(this.wait_for):
(EventWatcher):
(setup):
(done):
(generate_tests):
(step_timeout):
(truncate):
(is_node):
(format_value):

  • web-platform-tests/resources/webidl2/LICENSE: Added.
  • web-platform-tests/resources/webidl2/README.md: Added.
  • web-platform-tests/resources/webidl2/lib/webidl2.js: Added.

(tokenise):
(WebIDLParseError):
(WebIDLParseError.prototype.toString):
(error):
(consume):
(ws):
(all_ws):
(integer_type):
(float_type):
(primitive_type):
(const_value):
(type_suffix):
(single_type):
(union_type):
(type):
(argument):
(argument_list):
(type_pair):
(simple_extended_attr):
(extended_attrs):
(default_):
(const_):
(inheritance):
(operation_rest):
(callback):
(attribute):
(return_type):
(operation):
(identifiers):
(serialiser):
(iterable_type):
(readonly_iterable_type):
(iterable):
(interface_):
(partial):
(dictionary):
(exception):
(enum_):
(parse):

  • web-platform-tests/resources/webidl2/lib/writer.js: Added.

(noop):
(literal):
(wsPea):
(wsTPea):
(lineComment):
(multilineComment):
(type):
(const_value):
(argument):
(args):
(make_ext_at):
(extended_attributes):
(operation):
(attribute):
(interface_):
(dictionary):
(field):
(exception):
(const_):
(typedef):
(implements_):
(callback):
(enum_):
(dispatch):
(iterate):
(write):
(obj.write):

  • web-platform-tests/url/interfaces-expected.txt:

Tools:

Stop copying testharness.js from resources/ to web-platform-tests/resources.

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer._copy_webkit_test_files):

9:22 PM Changeset in webkit [211929] by Simon Fraser
  • 9 edits in trunk/Source

Put names on more UIViews for ease of debugging
https://bugs.webkit.org/show_bug.cgi?id=168035

Reviewed by Tim Horton.

Source/WebCore:

Name the page overlay layers.

  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::createRootLayersIfNeeded):
(WebCore::PageOverlayController::installPageOverlay):

Source/WebKit2:

Put names on the various bare UIViews that we create.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setHasCustomContentView:loadedMIMEType:]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):

  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::showPaintRect):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):

9:10 PM Changeset in webkit [211928] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Rebaseline emoji tests for ios-simulator.

Unreviewed test gardening.

  • platform/ios-simulator/editing/deleting/delete-emoji-expected.txt:
  • platform/ios-simulator/fast/text/emoji-expected.txt:
8:49 PM Changeset in webkit [211927] by commit-queue@webkit.org
  • 16 edits
    6 adds in trunk

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

http/tests/media/media-stream/disconnected-frame-permission-
denied.html should be updated (Requested by youenn on
#webkit).

Reverted changeset:

"[MediaStream] Remove legacy Navigator.webkitGetUserMedia"
https://bugs.webkit.org/show_bug.cgi?id=168016
http://trac.webkit.org/changeset/211912

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

HTML Link elements should load data URLs as same origin
https://bugs.webkit.org/show_bug.cgi?id=168032
<rdar://problem/30275036>

Patch by Youenn Fablet <youennf@gmail.com> on 2017-02-08
Reviewed by Alex Christensen.

Source/WebCore:

Test: fast/dom/data-url-css-link-element-cors-active.html

Making CSS data URLs resources considered as same origin when loaded through link elements.
In the future, we should consider remove the data URL same origin flag and fully align with the fetch and HTML spec.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

LayoutTests:

  • fast/dom/data-url-css-link-element-cors-active-expected.txt: Added.
  • fast/dom/data-url-css-link-element-cors-active.html: Added.
6:13 PM Changeset in webkit [211925] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Don't re-export PluginData.h from WebKit
https://bugs.webkit.org/show_bug.cgi?id=168020

Reviewed by Alexey Proskuryakov.

  • MigrateHeaders.make: Removed PluginData.h
6:06 PM Changeset in webkit [211924] by matthew_hanson@apple.com
  • 2 edits in branches/safari-604.1.5-branch/Source/JavaScriptCore

Merge r211300. rdar://problem/30425272

6:06 PM Changeset in webkit [211923] by matthew_hanson@apple.com
  • 5 edits
    2 adds in branches/safari-604.1.5-branch

Merge r211906. rdar://problem/30315079

6:06 PM Changeset in webkit [211922] by matthew_hanson@apple.com
  • 3 edits in branches/safari-604.1.5-branch/Source/WebCore

Merge r211716. rdar://problem/30368405

6:06 PM Changeset in webkit [211921] by matthew_hanson@apple.com
  • 14 edits in branches/safari-604.1.5-branch/Source/WebKit2

Merge r211679. rdar://problem/30363014

6:05 PM Changeset in webkit [211920] by matthew_hanson@apple.com
  • 3 edits in branches/safari-604.1.5-branch/Source/WebKit2

Merge r211643. rdar://problem/30334861

6:05 PM Changeset in webkit [211919] by matthew_hanson@apple.com
  • 26 edits in branches/safari-604.1.5-branch/Source

Merge r211597. rdar://problem/30295261

6:05 PM Changeset in webkit [211918] by matthew_hanson@apple.com
  • 2 edits in branches/safari-604.1.5-branch/Source/WebCore

Merge r211453. rdar://problem/30294240

6:05 PM Changeset in webkit [211917] by matthew_hanson@apple.com
  • 3 edits in branches/safari-604.1.5-branch/Source/WebKit2

Merge r211442. rdar://problem/30272380

6:05 PM Changeset in webkit [211916] by matthew_hanson@apple.com
  • 2 edits in branches/safari-604.1.5-branch/Source/WebCore

Merge r211377. rdar://problem/30267849

5:57 PM Changeset in webkit [211915] by aestes@apple.com
  • 4 edits in trunk

Custom protocols should not continue loading after a network process crash
https://bugs.webkit.org/show_bug.cgi?id=168028
<rdar://problem/27607520>

Reviewed by Brady Eidson.

Source/WebKit2:

WKCustomProtocolLoaders are meant to be owned by CustomProtocolManagerProxy and have their
loads cancelled when CustomProtocolManagerProxy is destroyed. However, WKCustomProtocolLoader
creates a NSURLConnection for which it is the client, so NSURLConnection retains it for the
duration of the load.

These loaders should be explicitly cancelled when their CustomProtocolManagerProxy is destroyed.

New API test: WebKit2CustomProtocolsTest.CloseDuringCustomProtocolLoad

  • UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:

(-[WKCustomProtocolLoader customProtocolManagerProxyDestroyed]): Added. Cancels the
_urlConnection and sets _customProtocolManagerProxy to nullptr.
(WebKit::CustomProtocolManagerProxy::~CustomProtocolManagerProxy):
Called -customProtocolManagerProxyDestroyed on every loader in m_loaderMap.

Tools:

  • TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm:

(processGroup):
(-[CloseWhileStartingProtocol startLoading]):
(-[CloseWhileStartingProtocol stopLoading]):
(TestWebKitAPI::runTest):
(TestWebKitAPI::TEST):

5:56 PM Changeset in webkit [211914] by mitz@apple.com
  • 6 edits in trunk

[Cocoa] WKRemoteObjectCoder doesn’t handle CGSize
https://bugs.webkit.org/show_bug.cgi?id=168031

Reviewed by Tim Horton.

Source/WebKit2:

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeInvocationArguments): Encode CGSize by encoding two NSNumbers. Somewhat sadly,

+[NSValue valueWithCGSize:] is not available in macOS.

(decodeInvocationArguments): Decode wrapped numbers.

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.h:
  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistryPlugIn.mm:

(-[RemoteObjectRegistryPlugIn takeSize:completionHandler:]):

5:42 PM Changeset in webkit [211913] by weinig@apple.com
  • 10 edits in trunk

REGRESSION (r193286): Promise chain no longer prevent UI refresh
<rdar://problem/28062149>
https://bugs.webkit.org/show_bug.cgi?id=161291

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/custom-elements/adopted-callback-expected.txt:
  • web-platform-tests/custom-elements/upgrading-expected.txt:
  • web-platform-tests/html/webappapis/scripting/event-loops/microtask_after_script-expected.txt:

Update results for improved promise support.

Source/WebCore:

Add new subtest to js/dom/Promise.html

  • dom/Microtasks.cpp:

(WebCore::MicrotaskQueue::append):
(WebCore::MicrotaskQueue::remove):
(WebCore::MicrotaskQueue::performMicrotaskCheckpoint):

  • dom/Microtasks.h:

The microtask queue needs to be completely drained, even of new microtasks added while
the previous task was run. Remove the m_tasksAppendedDuringMicrotaskCheckpoint as it is
no longer needed.

LayoutTests:

  • js/dom/Promise.html:

Add a new subtest that ensures the ordering of multiple thenables and a setTimeout.

5:30 PM Changeset in webkit [211912] by eric.carlson@apple.com
  • 16 edits
    6 deletes in trunk

[MediaStream] Remove legacy Navigator.webkitGetUserMedia
https://bugs.webkit.org/show_bug.cgi?id=168016

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, existing tests updated.

  • WebCore.xcodeproj/project.pbxproj: NavigatorUserMedia.
  • DerivedSources.make: Ditto.
  • CMakeLists.txt: Ditto.
  • Modules/mediastream/NavigatorUserMedia.idl: Removed.
  • Modules/mediastream/NavigatorUserMedia.js: Removed.
  • WebCore.xcodeproj/project.pbxproj:
  • page/Navigator.idl: Add some whitespace to force derived sources to be rebuild correctly.

Source/WebInspectorUI:

  • UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update valid tests to use navigator.mediaDevices.getUserMedia. Remove tests
specific to Navigator.webkitGetUserMedia.

  • fast/mediastream/RTCPeerConnection-AddRemoveStream.html:
  • fast/mediastream/argument-types.html: Removed.
  • fast/mediastream/delayed-permission-allowed.html:
  • fast/mediastream/delayed-permission-denied.html:
  • fast/mediastream/enabled-expected.txt:
  • fast/mediastream/error.html:
  • fast/mediastream/getusermedia.html: Removed.
  • fast/mediastream/script-tests/argument-types.js: Removed..
  • fast/mediastream/script-tests/enabled.js:

(hasGetUserMediaProperty):

  • fast/mediastream/success.html:
  • fast/mediastream/webkitGetUserMedia-shadowing-then.html: Removed.
5:24 PM Changeset in webkit [211911] by matthew_hanson@apple.com
  • 6 edits in branches/safari-604.1.5-branch/Source

Versioning.

4:56 PM Changeset in webkit [211910] by Chris Dumez
  • 14 edits
    4 adds in trunk

Use smaller tiles in windows that are not active to facilitate App Napping
https://bugs.webkit.org/show_bug.cgi?id=167997
<rdar://problem/30358835>

Reviewed by Simon Fraser.

Source/WebCore:

Use smaller / non-adaptative tiles in windows that are not active to facilitate
App Napping after <https://trac.webkit.org/r197594>.

Test: compositing/tiling/non-active-window-tiles-size.html

  • page/FrameView.cpp:

(WebCore::FrameView::contentsResized):
(WebCore::FrameView::addedOrRemovedScrollbar):
(WebCore::FrameView::computeScrollability):
(WebCore::FrameView::updateTiledBackingAdaptiveSizing):
(WebCore::FrameView::unobscuredContentSizeChanged):
(WebCore::FrameView::setViewExposedRect):

  • page/FrameView.h:
  • page/Page.cpp:

(WebCore::Page::setActivityState):
(WebCore::Page::isWindowActive):

  • page/Page.h:
  • platform/graphics/TiledBacking.h:
  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::setTileSizeUpdateDelayDisabledForTesting):
(WebCore::TileController::notePendingTileSizeChange):

  • platform/graphics/ca/TileController.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::disableTileSizeUpdateDelay):

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

Tools:

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::setWindowIsKey):
Actually update windowIsKey state of NSWindow so the WebView
properly updates its activity state.

LayoutTests:

Add layout test coverage.

  • compositing/tiling/non-active-window-tiles-size-expected.txt: Added.
  • compositing/tiling/non-active-window-tiles-size.html: Added.
  • platform/ios-simulator-wk2/compositing/tiling/non-active-window-tiles-size-expected.txt: Added.
  • platform/mac-wk1/compositing/tiling/non-active-window-tiles-size-expected.txt: Added.
4:26 PM Changeset in webkit [211909] by Chris Dumez
  • 15 edits
    6 adds in trunk

Unreviewed, rolling out r211907.

Broke the build

Reverted changeset:

"[MediaStream] Remove legacy Navigator.webkitGetUserMedia"
https://bugs.webkit.org/show_bug.cgi?id=168016
http://trac.webkit.org/changeset/211907

4:02 PM Changeset in webkit [211908] by keith_miller@apple.com
  • 20 edits in trunk/Source/JavaScriptCore

[JSC] op_in should have ArrayProfile
https://bugs.webkit.org/show_bug.cgi?id=164581

Reviewed by Filip Pizlo.

This patch adds an ArrayProfile to the op_in bytecode. In the
DFG, if we see that we the key is an int32 we will convert the In
DFG node to a HasIndexedProperty node instead.

This patch also flips the two arguments of op_in and the In node
to reflect the other property lookup bytecodes.

  • bytecode/BytecodeList.json:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finishCreation):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitIn):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitIn): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::InNode::emitBytecode):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::convertToHasIndexedProperty):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasArrayMode):
(JSC::DFG::Node::hasInternalMethodType):
(JSC::DFG::Node::internalMethodType):
(JSC::DFG::Node::setInternalMethodType):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIn):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • llint/LowLevelInterpreter.asm:
  • parser/Nodes.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::opIn):

3:51 PM Changeset in webkit [211907] by eric.carlson@apple.com
  • 15 edits
    6 deletes in trunk

[MediaStream] Remove legacy Navigator.webkitGetUserMedia
https://bugs.webkit.org/show_bug.cgi?id=168016

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, existing tests updated.

  • WebCore.xcodeproj/project.pbxproj: NavigatorUserMedia.
  • DerivedSources.make: Ditto.
  • CMakeLists.txt: Ditto.
  • Modules/mediastream/NavigatorUserMedia.idl: Removed.
  • Modules/mediastream/NavigatorUserMedia.js: Removed.
  • WebCore.xcodeproj/project.pbxproj:

Source/WebInspectorUI:

  • UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update valid tests to use navigator.mediaDevices.getUserMedia. Remove tests
specific to Navigator.webkitGetUserMedia.

  • fast/mediastream/RTCPeerConnection-AddRemoveStream.html:
  • fast/mediastream/argument-types.html: Removed.
  • fast/mediastream/delayed-permission-allowed.html:
  • fast/mediastream/delayed-permission-denied.html:
  • fast/mediastream/enabled-expected.txt:
  • fast/mediastream/error.html:
  • fast/mediastream/getusermedia.html: Removed.
  • fast/mediastream/script-tests/argument-types.js: Removed..
  • fast/mediastream/script-tests/enabled.js:

(hasGetUserMediaProperty):

  • fast/mediastream/success.html:
  • fast/mediastream/webkitGetUserMedia-shadowing-then.html: Removed.
3:30 PM Changeset in webkit [211906] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

Add kUTTypeUTF8PlainText and kUTTypeJPEG to the list of compatible content types in DragData
https://bugs.webkit.org/show_bug.cgi?id=167942
<rdar://problem/30315079>

Reviewed by Tim Horton.

Source/WebCore:

Adds UTI types for dragging UTF8 plain text and JPEG images to the list of supported types in DragDataMac.mm.
Also handles reading these types in PasteboardMac.mm. I verified manually with a test app that if a platform
NSView vends only UTF8 plaintext or JPEG images when dragging, WebKit is able to read the contents of the
pasteboard as text and an image, respectively.

New TestWebKitAPI tests in DragAndDropPasteboardTests.mm.

  • platform/mac/DragDataMac.mm:

(WebCore::DragData::containsCompatibleContent):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::read):

Tools:

Adds a new test case that simulates dragging from a source that only vends JPEG images or UTF8 plaintext into a
contenteditable area. An image element and the plain text content, respectively, should be inserted into the
contenteditable in these cases.

The DragSource and DragInfo are used to mock dragging into the WebView. There is no reliance on using mouse
events in this test, since we call the dragging delegate methods (draggingEntered:, draggingUpdated:, and
performDragOperation:) directly.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/DragAndDropPasteboardTests.mm: Added.

(+[FrameLoadCompletionListener listenerWithCompletionBlock:]):
(-[FrameLoadCompletionListener initWithCompletionBlock:]):
(-[FrameLoadCompletionListener webView:didFinishLoadForFrame:]):
(-[DragSource draggingSourceOperationMaskForLocal:]):
(-[DragInfo initWithImage:offset:pasteboard:source:destinationWindow:]):
(-[DragInfo lastMousePosition]):
(-[DragInfo setLastMousePosition:]):
(-[DragInfo draggingDestinationWindow]):
(-[DragInfo draggingSourceOperationMask]):
(-[DragInfo draggingLocation]):
(-[DragInfo draggedImageLocation]):
(-[DragInfo draggedImage]):
(-[DragInfo draggingPasteboard]):
(-[DragInfo draggingSource]):
(-[DragInfo draggingSequenceNumber]):
(-[DragInfo slideDraggedImageTo:]):
(-[DragInfo namesOfPromisedFilesDroppedAtDestination:]):
(-[DragInfo draggingFormation]):
(-[DragInfo setDraggingFormation:]):
(-[DragInfo animatesToDestination]):
(-[DragInfo setAnimatesToDestination:]):
(-[DragInfo numberOfValidItemsForDrop]):
(-[DragInfo setNumberOfValidItemsForDrop:]):
(-[DragInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):
(-[DragInfo springLoadingHighlight]):
(-[DragInfo resetSpringLoading]):
(TestWebKitAPI::getTestImage):
(TestWebKitAPI::webViewAfterPerformingDragOperation):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/full-page-contenteditable.html: Added.
3:15 PM Changeset in webkit [211905] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

getIntersectionList always returns empty NodeList until layout is complete
https://bugs.webkit.org/show_bug.cgi?id=81423

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

Source/WebCore:

Layout needs to be forced before trying to figure out which SVGElements
intersect with a given SVGRect. We do the same thing in the DOM API
Element::getBoundingClientRect().

Test: svg/custom/intersection-list-before-layout.html

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::getIntersectionList):

LayoutTests:

  • svg/custom/intersection-list-before-layout-expected.txt: Added.
  • svg/custom/intersection-list-before-layout.html: Added.
2:57 PM Changeset in webkit [211904] by commit-queue@webkit.org
  • 9 edits
    1 copy
    17 adds
    2 deletes in trunk

[Modern Media Controls] Implement reduced and tight padding modes
https://bugs.webkit.org/show_bug.cgi?id=167933
<rdar://problem/30396994>

Patch by Antoine Quint <Antoine Quint> on 2017-02-08
Reviewed by Dean Jackson.

Source/WebCore:

The design specs for modern media controls mandate the following for inline media controls:

  • controls at or below 300pt width use a 12pt left margin for the left buttons container, and a 12pt right margin for the right buttons container, and 16pth button margin inside both containers ("reduced padding mode").
  • when dropping at or below 120pt width, controls use an 8pt left margin for the left buttons container, and an 8pt right margin for the right buttons container, and 12pt button margin inside both containers and a shorter bar (25pt) ("compact mode").
  • in the case of audio controls, at 400pt or less, controls switch to 12pt margins and button margins for both buttons containers ("tight padding mode").

The "compact" mode was already implemented as a dedicated MacOSInlineMediaControls subclass.
Since we now have a more generic need to vary the metrics used for inline media controls on
macOS, we add new features to MacOSInlineMediaControls to support varying metrics based on
the controls' "layoutTraits" property.

So MediaController is changed such that it knows to use the new TightPadding and ReducedPadding
layout traits based on the conditions defined above, and _updateControlsIfNeeded() is changed
to set the "layoutTraits" property on the controls whenever called, which in our case is most
relevantly a "resize" event on the shadow root or a TrackEvent on the video tracks (to determine
when we're possibly changing between a video and audio file).

As a result, the "layoutTraits" setter is called on MacOSInlineMediaControls, which updates
the metrics for the various buttons containers, but also notifies the buttons contained
within that layout traits may have changed, since some buttons support a "compact" appearance
that is shorter and require a different image file. To that end, IconButton has been updated
so that it may be notified of a layout traits change through a new layoutTraitsDidChange()
method, that checks whether the current layout traits differ from those last used when loading
the icon.

Tests: media/modern-media-controls/icon-button/icon-button-change-layout-traits.html

media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-buttons-styles.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-controls-bar-styles.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-reduced-padding.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-tight-padding.html
media/modern-media-controls/media-controller/media-controller-compact.html
media/modern-media-controls/media-controller/media-controller-reduced-padding.html
media/modern-media-controls/media-controller/media-controller-tight-padding.html

  • Modules/modern-media-controls/controls/icon-button.js:

(IconButton.prototype.set iconName):
(IconButton.prototype.layoutTraitsDidChange):
(IconButton.prototype._loadImage):

  • Modules/modern-media-controls/controls/layout-item.js:
  • Modules/modern-media-controls/controls/macos-compact-inline-media-controls.js: Removed.
  • Modules/modern-media-controls/controls/macos-inline-media-controls.js:

(MacOSInlineMediaControls.prototype.get layoutTraits):
(MacOSInlineMediaControls.prototype.set layoutTraits):
(MacOSInlineMediaControls.prototype._matchLayoutTraits):

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):
(MediaController.prototype.get layoutTraits):
(MediaController.prototype.handleEvent):
(MediaController.prototype._updateControlsIfNeeded):
(MediaController.prototype._controlsClassForLayoutTraits):
(MediaController.prototype._shouldFadeBetweenControls): Deleted.
(MediaController.prototype._controlsClass): Deleted.

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

We rewrite the previously-written tests for "compact" mode and add some new tests for
"reduced padding" and "tight padding" modes as well as new support in IconButton to
update the icon based on a change of layout traits.

  • media/modern-media-controls/icon-button/icon-button-change-layout-traits-expected.txt: Added.
  • media/modern-media-controls/icon-button/icon-button-change-layout-traits.html: Added.
  • media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-buttons-styles-expected.txt: Removed.
  • media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-constructor-expected.txt: Removed.
  • media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-constructor.html: Removed.
  • media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-controls-bar-styles-expected.txt: Removed.
  • media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-controls-bar-styles.html: Removed.
  • media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-layout-expected.txt: Removed.
  • media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-layout.html: Removed.
  • media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-volume-styles-expected.txt: Removed.
  • media/modern-media-controls/macos-compact-inline-media-controls/macos-compact-inline-media-controls-volume-styles.html: Removed.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-buttons-styles-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-buttons-styles.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-controls-bar-styles-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-controls-bar-styles.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-reduced-padding-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-reduced-padding.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-tight-padding-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-tight-padding.html: Added.
  • media/modern-media-controls/media-controller/media-controller-compact-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-compact.html: Added.
  • media/modern-media-controls/media-controller/media-controller-reduced-padding-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-reduced-padding.html: Added.
  • media/modern-media-controls/media-controller/media-controller-tight-padding-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-tight-padding.html: Added.
  • platform/ios-simulator/TestExpectations:
2:50 PM Changeset in webkit [211903] by achristensen@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Fix libwebrtc build.
https://bugs.webkit.org/show_bug.cgi?id=168017

  • Configurations/libwebrtc.xcconfig:

Trying to compile audio_device_not_implemented_ios.mm on Mac doesn't work.

  • libwebrtc.xcodeproj/project.pbxproj:

Add some neon files. They are nicely protected by macros at the top, so their contents are only compiled if necessary.

2:26 PM Changeset in webkit [211902] by achristensen@apple.com
  • 14 edits in trunk/Source/ThirdParty/libwebrtc

Fix libwebrtc build on iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=168017

Reviewed by Tim Horton.

  • Configurations/libwebrtc.xcconfig:
  • Configurations/libwebrtcpcrtc.xcconfig:

Use $(inherited)

  • Source/webrtc/modules/audio_device/ios/audio_device_ios.h:
  • Source/webrtc/modules/audio_device/ios/audio_device_ios.mm:
  • Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Configuration.mm:
  • Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h:
  • Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.h:
  • Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm:
  • Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h:
  • Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m:
  • Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.h:
  • Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.mm:

Renamed RTCAudioSession* to WebRTCAudioSession* so that all ObjC classes in WebCore start with Web prefix.

  • libwebrtc.xcodeproj/project.pbxproj:

Add necessary files. Some iOS-specific files need ARC,
and this matches the Build.gn in Source/webrtc/modules/audio_device

2:04 PM Changeset in webkit [211901] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Don't re-export WKUtilities.h from WebKit
https://bugs.webkit.org/show_bug.cgi?id=167977

Reviewed by Alexey Proskuryakov.

  • MigrateHeaders.make: Removed WKUtilities.h
2:01 PM Changeset in webkit [211900] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 23

Added a tag for Safari Technology Preview release 23.

1:58 PM Changeset in webkit [211899] by aakash_jain@apple.com
  • 5 edits
    1 copy in trunk/Source/WebCore

Move private methods from WKGraphics.h to a separate header file
https://bugs.webkit.org/show_bug.cgi?id=167996

Reviewed by Alexey Proskuryakov.

  • platform/ios/wak/WKGraphicsInternal.h: Added.
  • WebCore.xcodeproj/project.pbxproj: Added WKGraphicsInternal.h
  • platform/ios/wak/WKGraphics.h: Moved methods to WKGraphicsInternal.h
  • platform/graphics/mac/GraphicsContextMac.mm: Included new header file.
  • platform/ios/wak/WKGraphics.mm: Same.
1:37 PM Changeset in webkit [211898] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Tried to fix the build after r211897.

  • UIProcess/ios/WKContentViewInteraction.h:
1:34 PM Changeset in webkit [211897] by mitz@apple.com
  • 4 edits in trunk/Source/WebKit2

[iOS] WKWebView doesn’t have implementations of UIResponderStandardEditActions that can be overridden
https://bugs.webkit.org/show_bug.cgi?id=167974

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm: Gave each of the actions in FOR_EACH_WKCONTENTVIEW_ACTION an implementation that sends it to the WKContentView if we’re using one.

(-[WKWebView canPerformAction:withSender:]): Override and for each of the actions in

FOR_EACH_WKCONTENTVIEW_ACTION, forward to
-[WKContentView canPerformActionForWebView:withSender:] if we’re using a WKContentView,
otherwise returning NO.

  • UIProcess/ios/WKContentViewInteraction.h: Declared -canPerformActionForWebView:withSender: and several internal methods we override.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canPerformAction:withSender:]): Now returns NO so that the target for any

action is the WKWebView.

(-[WKContentView canPerformActionForWebView:withSender:]): Moved the logic previously in

-canPerformAction:withSender: to here.

1:21 PM Changeset in webkit [211896] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Air IRC might spill a terminal that produces a value after the terminal
https://bugs.webkit.org/show_bug.cgi?id=167919
<rdar://problem/29754721>

Reviewed by Filip Pizlo.

IRC may spill a value-producing terminal (a patchpoint can be a value-producing terminal).
It used to do this by placing the spill *after* the terminal. This produces an invalid
graph because no instructions are allowed after the terminal.

I fixed this bug by having a cleanup pass over the IR after IRC is done.
The pass detects this problem, and fixes it by moving the spill into the
successors. However, it is careful to detect when the edge to the
successor is a critical edge. If the value-producing patchpoint is
the only predecessor of the successor, it just moves the spill
code to the beginning of the successor. Otherwise, it's a critical
edge and it breaks it by adding a block that does the spilling then
jumps to the successor.

  • b3/air/AirInsertionSet.cpp:
  • b3/air/AirInsertionSet.h:

(JSC::B3::Air::InsertionSet::insertInsts):

  • b3/air/AirIteratedRegisterCoalescing.cpp:
  • b3/testb3.cpp:

(JSC::B3::testTerminalPatchpointThatNeedsToBeSpilled):
(JSC::B3::testTerminalPatchpointThatNeedsToBeSpilled2):
(JSC::B3::run):

1:19 PM Changeset in webkit [211895] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Opt-out iBooks from synchronous willSendRequest on iOS.
<rdar://problem/30129966> and https://bugs.webkit.org/show_bug.cgi?id=168006

Reviewed by Brent Fulgham.

No new tests (Not a testable behavior change at this time).

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::synchronousWillSendRequestEnabled): iBooks never gets synchronous willSendRequest:

1:11 PM Changeset in webkit [211894] by Antti Koivisto
  • 9 edits in trunk/Source/WebKit2

Allow speculative redirects
https://bugs.webkit.org/show_bug.cgi?id=167982

Reviewed by Andreas Kling.

If speculative loader hits a redirect it will drop it on the floor. We should use it instead.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry):

Reset m_isWaitingContinueWillSendRequestForCachedRedirect bit immediately.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::makeRedirectEntry):

Factor to a function.

(WebKit::NetworkCache::Cache::storeRedirect):

  • NetworkProcess/cache/NetworkCache.h:

(WebKit::NetworkCache::Cache::speculativeLoadManager):

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::Entry):

Use std::optional instead std::unique_ptr for the redirect request.

(WebKit::NetworkCache::Entry::decodeStorageRecord):

  • NetworkProcess/cache/NetworkCacheEntry.h:

(WebKit::NetworkCache::Entry::redirectRequest):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):

Make a cache entry for speculative redirect.
Redirect is not actually performed, the target resource will have a separate
speculative entry.

(WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):
(WebKit::NetworkCache::SpeculativeLoad::didFailLoading):
(WebKit::NetworkCache::SpeculativeLoad::didComplete):

Protect against multiple completions.

(WebKit::NetworkCache::SpeculativeLoad::abort): Deleted.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::retrieve):

Make successful retrieves asynchronous to avoid re-entrancy problems.

12:40 PM Changeset in webkit [211893] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix; FullscreenClient only avaialble on 32-bit builds.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::WebViewImpl):

12:24 PM Changeset in webkit [211892] by commit-queue@webkit.org
  • 38 edits
    1 copy
    1 move
    7 adds in trunk/Source/WebCore

Split JSDOMConstructor.h/cpp up by class
https://bugs.webkit.org/show_bug.cgi?id=167958

Patch by Sam Weinig <sam@webkit.org> on 2017-02-08
Reviewed by Tim Horton.

Splits JSDOMConstructor up by class.

  • Renames DOMConstructorObject to JSDOMConstructorBase.
  • Renames DOMConstructorWithDocument to JSDOMConstructorWithDocument.
  • Renames DOMConstructorJSBuiltinObject to JSDOMBuiltinConstructorBase.
  • Renames JSBuiltinConstructor to JSDOMBuiltinConstructor.
  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:

Add new files.

  • bindings/js/JSDOMBinding.h:

(WebCore::propertyNameToString): Deleted.
(WebCore::propertyNameToAtomicString): Deleted.

  • bindings/js/JSDOMBuiltinConstructor.h: Copied from Source/WebCore/bindings/js/JSDOMConstructor.h.
  • bindings/js/JSDOMBuiltinConstructorBase.cpp: Copied from Source/WebCore/bindings/js/JSDOMConstructor.cpp.
  • bindings/js/JSDOMBuiltinConstructorBase.h: Copied from Source/WebCore/bindings/js/JSDOMConstructor.h.
  • bindings/js/JSDOMConstructor.cpp: Removed.
  • bindings/js/JSDOMConstructor.h: Remove all classes other than JSDOMConstructor.
  • bindings/js/JSDOMConstructorBase.cpp: Copied from Source/WebCore/bindings/js/JSDOMConstructor.cpp.
  • bindings/js/JSDOMConstructorBase.h: Copied from Source/WebCore/bindings/js/JSDOMConstructor.h.
  • bindings/js/JSDOMConstructorNotConstructable.h: Copied from Source/WebCore/bindings/js/JSDOMConstructor.h.
  • bindings/js/JSDOMConstructorWithDocument.cpp: Copied from Source/WebCore/bindings/js/JSDOMConstructor.cpp.
  • bindings/js/JSDOMConstructorWithDocument.h: Copied from Source/WebCore/bindings/js/JSDOMConstructor.h.
  • bindings/js/JSDOMNamedConstructor.h: Copied from Source/WebCore/bindings/js/JSDOMConstructor.h.
  • bindings/js/JSDOMConvertStrings.h:

(WebCore::propertyNameToString):
(WebCore::propertyNameToAtomicString):
Move these here from JSDOMBinding.

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):

  • bindings/js/JSMutationObserverCustom.cpp:

(WebCore::constructJSMutationObserver):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp:
  • bindings/js/JSStorageCustom.cpp:
  • bindings/js/JSUserMessageHandlersNamespaceCustom.cpp:

(WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):

  • bindings/js/JSWorkerCustom.cpp:

(WebCore::constructJSWorker):

  • bindings/scripts/CodeGeneratorJS.pm:

(GetConstructorTemplateClassName):
(GenerateConstructorDeclaration):
Update includes/names.

  • dom/StaticRange.cpp:

(WebCore::StaticRange::~StaticRange):

  • dom/StaticRange.h:

Add out-of-line destructor, so Node.h does not have to be included.

12:16 PM Changeset in webkit [211891] by jer.noble@apple.com
  • 8 edits in trunk

Move FullscreenClient creation into WebViewImpl, for use in (deprecated) WKView.
https://bugs.webkit.org/show_bug.cgi?id=168007

Reviewed by Alex Christensen.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/_WKFullscreenDelegate.h:
  • UIProcess/Cocoa/FullscreenClient.h:
  • UIProcess/Cocoa/FullscreenClient.mm:

(WebKit::FullscreenClient::FullscreenClient):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::WebViewImpl):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenDelegate.mm:

(didFinishLoadForFrame):
(TestWebKitAPI::TEST):

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

Initialize the main RunLoop in iOS WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=167953

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-08
Reviewed by Alexey Proskuryakov.

  • platform/ios/wak/WebCoreThread.mm:

(StartWebThread):
Initialize the main runloop on the main thread during iOS WebKit initialization.

11:42 AM Changeset in webkit [211889] by aakash_jain@apple.com
  • 7 edits
    1 copy in trunk/Source/WebCore

Move private methods from WKContentObservation.h to a separate header file
https://bugs.webkit.org/show_bug.cgi?id=167998

Reviewed by Alexey Proskuryakov.

  • WebCore.xcodeproj/project.pbxproj: Added WKContentObservationInternal.h
  • platform/ios/wak/WKContentObservationInternal.h: Added.
  • platform/ios/wak/WKContentObservation.h: Moved methods to WKContentObservationInternal.h
  • platform/ios/wak/WKContentObservation.cpp: Included new header file.
  • page/DOMTimer.cpp: Same.
  • page/DOMWindow.cpp: Same.
  • style/RenderTreeUpdater.cpp: Same.
11:36 AM Changeset in webkit [211888] by achristensen@apple.com
  • 5 edits in trunk/Source/ThirdParty/libwebrtc

Fix iOS libwebrtc build
https://bugs.webkit.org/show_bug.cgi?id=168004

Reviewed by Youenn Fablet.

We might still need to add some neon files.

  • Configurations/libwebrtc.xcconfig:
  • Configurations/libwebrtcpcrtc.xcconfig:
  • Configurations/opus.xcconfig:

Don't build sse-specific files for iOS.

  • libwebrtc.xcodeproj/project.pbxproj:

Don't include the sse4 optimization for now.
We can add the optimization for CPUs that support it later.

10:55 AM Changeset in webkit [211887] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

GUM is crashing in Debug mode when access is granted/denied for a page that is gone
https://bugs.webkit.org/show_bug.cgi?id=168003

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

Removing the assertion since manager can be null and case is coevered by the if statement behind it.

  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::deny):

10:54 AM Changeset in webkit [211886] by commit-queue@webkit.org
  • 11 edits in trunk

RTCPeerConnection constructor can take null as input
https://bugs.webkit.org/show_bug.cgi?id=167992

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

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/datachannel-emptystring-expected.txt:
  • web-platform-tests/webrtc/no-media-call-expected.txt:
  • web-platform-tests/webrtc/promises-call-expected.txt:
  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor-expected.txt:
  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt:

Source/WebCore:

Covered by updated test.

RTCPeerConnection takes an optional Dictionary as input.
As per https://heycam.github.io/webidl/#es-dictionary, null is converted to an empty dictionary.

  • Modules/mediastream/RTCPeerConnection.js:

(initializeRTCPeerConnection):

LayoutTests:

Covered by updated and rebased tests.

  • fast/mediastream/RTCPeerConnection-expected.txt:
  • fast/mediastream/RTCPeerConnection.html:
10:37 AM Changeset in webkit [211885] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

No need for CachedFrame to detach custom scrollbars.
<https://webkit.org/b/167995>

Reviewed by Sam Weinig.

Custom scrollbars have already been torn down with the rest of the render tree
by the time we're creating a CachedFrame.

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame):

10:33 AM Changeset in webkit [211884] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Simple line layout: Fix printReason for unsupported overflow values.
https://bugs.webkit.org/show_bug.cgi?id=168000

Reviewed by Simon Fraser.

Not testable.

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForStyle):
(WebCore::SimpleLineLayout::printReason):

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

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

It's in jhbuild for consistent layout tests (Requested by
mcatanzaro on #webkit).

Reverted changeset:

"[GTK] Add icu packages to Tools/gtk/install-dependencies"
https://bugs.webkit.org/show_bug.cgi?id=167993
http://trac.webkit.org/changeset/211873

9:52 AM Changeset in webkit [211882] by Ryan Haddad
  • 9 edits in trunk/Source/WebKit2

Unreviewed, rolling out r211869.

This change caused assertion failures on macOS WK2.

Reverted changeset:

"Allow speculative redirects"
https://bugs.webkit.org/show_bug.cgi?id=167982
http://trac.webkit.org/changeset/211869

9:48 AM Changeset in webkit [211881] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Mark several imported w3c fetch API tests as failing.

See bug #167999.

  • platform/gtk/TestExpectations:
9:31 AM Changeset in webkit [211880] by aakash_jain@apple.com
  • 3 edits in trunk/Source/WebCore

Remove WebCoreObjCDeallocWithWebThreadLock from header file
https://bugs.webkit.org/show_bug.cgi?id=167987

Reviewed by Alexey Proskuryakov.

  • platform/ios/wak/WebCoreThread.mm: Added WebCoreObjCDeallocWithWebThreadLock.
  • platform/ios/wak/WebCoreThreadMessage.h: Removed WebCoreObjCDeallocWithWebThreadLock.
9:29 AM Changeset in webkit [211879] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebKit2

Add WebRTC as an off-by-default experimental feature menu item.
https://bugs.webkit.org/show_bug.cgi?id=167972
<rdar://problem/30293429>

Reviewed by Jon Lee.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::setPeerConnectionAndMediaStreamEnabled): We need to enable/disable
peer connection and media stream preferences at the same time, so special case them.
(WebKit::WebPreferences::setEnabledForFeature):

  • UIProcess/WebPreferences.h:
9:26 AM Changeset in webkit [211878] by aakash_jain@apple.com
  • 4 edits in trunk/Source/WebCore

Move WKMouseInRect to WAKView.mm
https://bugs.webkit.org/show_bug.cgi?id=167989

Reviewed by Alexey Proskuryakov.

  • platform/ios/wak/WAKAppKitStubs.h: Removed WKMouseInRect.
  • platform/ios/wak/WAKAppKitStubs.m:

(WKMouseInRect): Deleted.

  • platform/ios/wak/WAKView.mm:

(-[WAKView mouse:inRect:]): Added the logic of WKMouseInRect here instead of separate function call.

9:24 AM WebKitGTK/StartHacking edited by eocanha@igalia.com
(diff)
9:22 AM Changeset in webkit [211877] by aakash_jain@apple.com
  • 3 edits in trunk/Source/WebCore

Remove unused method WebCore::PluginData::pluginNameForMimeType
https://bugs.webkit.org/show_bug.cgi?id=167986

Reviewed by Anders Carlsson.

  • plugins/PluginData.cpp:

(WebCore::PluginData::pluginNameForWebVisibleMimeType): Deleted.

  • plugins/PluginData.h: Removed pluginNameForWebVisibleMimeType.
9:19 AM Changeset in webkit [211876] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Skip more tests that require drag and drop.

It's not supported by WTR. See bug #157179.

  • platform/gtk/TestExpectations:
9:16 AM Changeset in webkit [211875] by achristensen@apple.com
  • 5 edits in trunk/Source/ThirdParty/libwebrtc

[WebRTC] Fix libwebrtc build system
https://bugs.webkit.org/show_bug.cgi?id=167978

Patch by Youenn Fablet <youennf@gmail.com> on 2017-02-08
Reviewed by Alex Christensen.

  • Configurations/libwebrtc.xcconfig:
  • Configurations/libwebrtcpcrtc.xcconfig:
  • Configurations/usrsctp.xcconfig:
  • libwebrtc.xcodeproj/project.pbxproj:
9:11 AM Changeset in webkit [211874] by Carlos Garcia Campos
  • 1 edit
    2 adds in trunk/LayoutTests

Unreviewed GTK+ gardening. Add platform specific results for drag-select-when-zoomed tests.

It's quite difficult that those tests can generate common results in all ports, because the scale factor will
cause a text reflow that will be different. I think this is why they are marked as failure in all other
ports. I'm assuming our result is correct for our port.

  • platform/gtk/fast/events/drag-select-when-zoomed-expected.txt: Added.
  • platform/gtk/fast/events/drag-select-when-zoomed-with-header-expected.txt: Added.
8:54 AM Changeset in webkit [211873] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Add icu packages to Tools/gtk/install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=167993

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2017-02-08
Reviewed by Michael Catanzaro.

  • gtk/install-dependencies: Add "icu" to the list of required packages (or "icu-dev", or "icu-devel"

depending in the GNU/Linux distribution)

8:25 AM Changeset in webkit [211872] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

[GTK] Test fast/forms/select-empty-option-height.html fails
https://bugs.webkit.org/show_bug.cgi?id=167985

Reviewed by Michael Catanzaro.

This seems to be a problem with the differences in scroll step or the size of the items in the list. The thing
is that 10 attempts with an scroll amount of 10 is not enough in the GTk+ port to scroll the list to the desired
point. Either increasing the scroll amount or the maximum attempts would fix the test. Increasing the scroll
amount would break the test in other ports so better use a higher number of maximum attempts.

  • fast/forms/listbox-respects-padding-bottom.html:
8:20 AM Changeset in webkit [211871] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] Fix translatable form validation messages
https://bugs.webkit.org/show_bug.cgi?id=167984

Reviewed by Michael Catanzaro.

Most of them are just wrong. Use the same mesages than mac, which also makes some tests pass.

Fixes: fast/forms/validation-message-maxLength.html

fast/forms/validationMessage.html

  • platform/gtk/LocalizedStringsGtk.cpp:

(WebCore::validationMessageValueMissingText):
(WebCore::validationMessageValueMissingForCheckboxText):
(WebCore::validationMessageValueMissingForFileText):
(WebCore::validationMessageValueMissingForMultipleFileText):
(WebCore::validationMessageValueMissingForRadioText):
(WebCore::validationMessageValueMissingForSelectText):
(WebCore::validationMessageTypeMismatchText):
(WebCore::validationMessageTypeMismatchForEmailText):
(WebCore::validationMessageTypeMismatchForMultipleEmailText):
(WebCore::validationMessageTypeMismatchForURLText):
(WebCore::validationMessagePatternMismatchText):
(WebCore::validationMessageTooShortText):
(WebCore::validationMessageTooLongText):
(WebCore::validationMessageRangeUnderflowText):
(WebCore::validationMessageRangeOverflowText):
(WebCore::validationMessageStepMismatchText):
(WebCore::validationMessageBadInputForNumberText):

7:50 AM WebKitGTK/2.14.x edited by Michael Catanzaro
Propose r211868 (diff)
7:39 AM Changeset in webkit [211870] by Chris Dumez
  • 19 edits in trunk/Source

Add support for enhanced privacy diagnostic logging
https://bugs.webkit.org/show_bug.cgi?id=167948
<rdar://problem/30385112>

Reviewed by Antti Koivisto.

Source/WebCore:

Add new logDiagnosticMessageWithEnhancedPrivacy() method to DiagnosticLoggingClient
that is used for enhanced privacy logging. Start using this new API to log domains
that are visited.

  • loader/EmptyClients.cpp:
  • loader/FrameLoader.cpp:

(WebCore::logNavigation):
(WebCore::FrameLoader::loadWithDocumentLoader):

  • page/DiagnosticLoggingClient.h:
  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::domainVisitedKey):

  • page/DiagnosticLoggingKeys.h:

Source/WebKit2:

Implement new DiagnosticLoggingClient::logDiagnosticMessageWithEnhancedPrivacy()
virtual method on WebKit2 and expose it to the client via the WKPageDiagnosticLogging
delegate.

  • UIProcess/API/APIDiagnosticLoggingClient.h:

(API::DiagnosticLoggingClient::logDiagnosticMessageWithEnhancedPrivacy):

  • UIProcess/API/C/WKPageDiagnosticLoggingClient.h:
  • UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
  • UIProcess/Cocoa/DiagnosticLoggingClient.h:
  • UIProcess/Cocoa/DiagnosticLoggingClient.mm:

(WebKit::DiagnosticLoggingClient::setDelegate):
(WebKit::DiagnosticLoggingClient::logDiagnosticMessageWithEnhancedPrivacy):

  • UIProcess/WebPageDiagnosticLoggingClient.cpp:

(WebKit::WebPageDiagnosticLoggingClient::logDiagnosticMessageWithEnhancedPrivacy):

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

(WebKit::WebPageProxy::logDiagnosticMessageWithEnhancedPrivacy):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithEnhancedPrivacy):

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
7:10 AM Changeset in webkit [211869] by Antti Koivisto
  • 9 edits in trunk/Source/WebKit2

Allow speculative redirects
https://bugs.webkit.org/show_bug.cgi?id=167982

Reviewed by Andreas Kling.

If speculative loader hits a redirect it will drop it on the floor. We should use it.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry):

Reset the m_isWaitingContinueWillSendRequestForCachedRedirect bit immediately.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::makeRedirectEntry):

Factor to a function.

(WebKit::NetworkCache::Cache::storeRedirect):

  • NetworkProcess/cache/NetworkCache.h:

(WebKit::NetworkCache::Cache::speculativeLoadManager):

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::Entry):

Use std::optional instead std::unique_ptr for the redirect request.

(WebKit::NetworkCache::Entry::decodeStorageRecord):

  • NetworkProcess/cache/NetworkCacheEntry.h:

(WebKit::NetworkCache::Entry::redirectRequest):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):

Make cache entry for speculative redirect.
The redirect is not actually performed, the target resource will have separate
a speculative entry.

(WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):
(WebKit::NetworkCache::SpeculativeLoad::didFailLoading):
(WebKit::NetworkCache::SpeculativeLoad::didComplete):

Protect against multiple completions.

(WebKit::NetworkCache::SpeculativeLoad::abort): Deleted.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::retrieve):

Make successful retrieves asynchronous to avoid re-entrancy problems.

4:39 AM Changeset in webkit [211868] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Critical warnings when media player is destroyed
https://bugs.webkit.org/show_bug.cgi?id=167981

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-02-08
Reviewed by Xabier Rodriguez-Calvar.

It can happen that the source doesn't have a parent when we try to disconnect the element-added signal.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::sourceChanged):

4:19 AM Changeset in webkit [211867] by magomez@igalia.com
  • 3 edits in trunk/Source/WebCore

[GTK] Reduce TiledBackingStore tile coverage when on memory pressure state
https://bugs.webkit.org/show_bug.cgi?id=167980

Reviewed by Carlos Garcia Campos.

Use a smaller coverAreaMultiplier in the TiledBackingStore when in memory pressure situation, to reduce
the amount of tiles created.

No new tests.

  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::createTilesIfNeeded):
(WebCore::TiledBackingStore::createTiles):

  • platform/graphics/texmap/coordinated/TiledBackingStore.h:
4:17 AM Changeset in webkit [211866] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Skip animations/font-variations/ tests.

They are marked as ImageOnlyFailure, but are actually failing now. I think it's better to simply skip all font
variations tests since the build flag is always disabled in GTK+ port.

  • platform/gtk/TestExpectations:
3:51 AM Changeset in webkit [211865] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r211040 - [GTK] asserting on unknown locale for hyphenation is wrong
https://bugs.webkit.org/show_bug.cgi?id=167312

Reviewed by Carlos Garcia Campos.

The fact that we hit the assert on a test called 'hyphenation-unknown-locale' is already
a strong indication we should not have it. In addition to that, Carlos Lopez pointed out
a similar assert was removed from the Mac codepaths when the test was introduced.

  • platform/text/hyphen/HyphenationLibHyphen.cpp:

(WebCore::lastHyphenLocation): early return when a locale that is not available is provided
for hyphenation, instead of asserting.

3:50 AM WebKitGTK/2.14.x edited by Carlos Garcia Campos
(diff)
3:49 AM Changeset in webkit [211864] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r211627 - [GStreamer] Store preloaded media in webkit's cache
https://bugs.webkit.org/show_bug.cgi?id=119477

Reviewed by Xabier Rodriguez-Calvar.

Files cached on disk by MediaPlayerPrivateGStreamer are deleted only when the player is closed. If the
WebProcess crashed, they're just left there in the cache directory. This patch changes the location
of those temporary files to a proper temporary directory (/var/tmp, as those files aren't actually
reusable, so they don't belong to a cache directory, and /tmp is a bad place because it's RAM-based on
some distros), unlinks (deletes) them right after creation and also deletes any other stalled temporary
file on the old legacy cache directory.

There's no API in GstPlaybin to control the temporary file location, so we do it manually by locating
the GstDownloadBuffer element in the pipeline as soon as it's created, reconfiguring it with the right
temporary file path and deleting the file as soon as it's created.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): Stop listening to element-added.
(WebCore::MediaPlayerPrivateGStreamer::uriDecodeBinElementAddedCallback): Look for GstDownloadBuffer.
(WebCore::MediaPlayerPrivateGStreamer::downloadBufferFileCreatedCallback): Remove the file after creation.
(WebCore::MediaPlayerPrivateGStreamer::purgeOldDownloadFiles): Delete legacy files.
(WebCore::MediaPlayerPrivateGStreamer::sourceChanged): Listen to element-added signals on GstUriDecodeBin.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: New reference to GstDownloadBuffer.
3:47 AM WebKitGTK/2.14.x edited by Carlos Garcia Campos
(diff)
3:11 AM Changeset in webkit [211863] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r211225 - [GStreamer] ASSERTION FAILED: !g_object_is_floating(ptr) in adoptGRef(GstContext* ptr)
https://bugs.webkit.org/show_bug.cgi?id=167458

Reviewed by Xabier Rodriguez-Calvar.

GstContext is a mini_object, not a GObject. Therefore it shouldn't (and can't) be checked for floatingness.

  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::adoptGRef): Removed incorrect assertion.

3:07 AM Changeset in webkit [211862] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r211815 - [GStreamer] Deadlock when media player is destroyed
https://bugs.webkit.org/show_bug.cgi?id=167861

Reviewed by Michael Catanzaro.

The problem is that we are calling notifyOne() for the draw mutex without taking the lock.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::repaint):

3:05 AM Changeset in webkit [211861] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211816 - [Soup] WebKitSoupRequestInputStream can still leave requests unfinished after r211773
https://bugs.webkit.org/show_bug.cgi?id=167929

Reviewed by Michael Catanzaro.

The while loop to process the pending data requests was not a good idea, because having a new pending request
doesn't mean we have more data available, but that more data was requested.

  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(webkitSoupRequestInputStreamPendingReadAsyncComplete): Process only one request if needed.

3:05 AM Changeset in webkit [211860] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211773 - [Soup] Long resources loaded by custom protocols sometimes never finish loading
https://bugs.webkit.org/show_bug.cgi?id=167890

Reviewed by Michael Catanzaro.

It's another bug that has appeared in WebKitSoupRequestInputStream after moving the custom protocols handling to
the main thread. The problem is that webkitSoupRequestInputStreamPendingReadAsyncComplete invalidates
pendingAsyncRead after calling webkitSoupRequestInputStreamReadAsyncResultComplete, but in some cases
webkitSoupRequestInputStreamReadAsyncResultComplete completes the task in the same run loop iteration. In that
case webkitSoupRequestInputStreamReadAsync is called again creating a new AsyncReadData that is destroyed right
after webkitSoupRequestInputStreamReadAsyncResultComplete returns.

  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(AsyncReadData::AsyncReadData): Use an rvalue reference for the task.
(webkitSoupRequestInputStreamPendingReadAsyncComplete): Use WTFMove to ensure pendingAsyncRead is cleared before
webkitSoupRequestInputStreamReadAsyncResultComplete is called, and continue processing pending requests if there
are new ones after webkitSoupRequestInputStreamReadAsyncResultComplete.
(webkitSoupRequestInputStreamReadAsync): Use WTFMove to transfer the task to AsyncReadData.
(webkitSoupRequestInputStreamDidFailWithError): Use WTFMove to ensure pendingAsyncRead is cleared.

3:05 AM Changeset in webkit [211859] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211734 - [Soup] Deadlock in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=167876

Reviewed by Michael Catanzaro.

WebKitSoupRequestInputStream uses a read lock. What is happening is that webkitSoupRequestInputStreamAddData
takes the lock, and it calls webkitSoupRequestInputStreamPendingReadAsyncComplete with the lock help. That
causes webkitSoupRequestInputStreamReadAsync to be called again to read the next chunk, but in the same run loop
operation. We don't really need the read lock because both webkitSoupRequestInputStreamAddData and
webkitSoupRequestInputStreamReadAsync shoudl always be called from the main thread.

  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(webkitSoupRequestInputStreamReadAsync): Remove the read lock and assert if called from a secondary thread.
(webkitSoupRequestInputStreamAddData): Ditto.

3:05 AM WebKitGTK/2.14.x edited by Carlos Garcia Campos
(diff)
3:05 AM Changeset in webkit [211858] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

[SOUP] Network process crash in WebKit::CustomProtocolManagerImpl::didFailWithError
https://bugs.webkit.org/show_bug.cgi?id=165082

CustomProtocolManager uses a Workqueue to receive the IPC messages since r149194. Then we added the Soup
implementation adopting that approach, but without making our implementation thread safe. The crash happens
because the CustomProtocolManager implementation is used by two threads at the same time, the main thread
because of a ping load (probably caused by an image load in the unload handler, I haven't been able to reproduce
the crash) and the work queue thread. I'm not sure if the reasons to make CustomProtocolManager use a WorkQueue
are still valid for Mac, but I don't think they are for Soup. CustomProtocolManager is now only used in the
network process and sync loads don't use any nested run loop, they are just an IPC sync message. So this patch
makes CustomProtocolManager a normal message receiver again for Soup to ensure messages are handled in the main
thread as expected by the Soup implementation.

  • NetworkProcess/CustomProtocols/CustomProtocolManager.h:

(WebKit::CustomProtocolManager::childProcess): Remove WorkQueue initialization.

  • NetworkProcess/CustomProtocols/soup/CustomProtocolManagerSoup.cpp:

(WebKit::CustomProtocolManager::CustomProtocolManager): Register the message receiver.
(WebKit::CustomProtocolManager::initializeConnection): Deleted.

3:03 AM WebKitGTK/2.14.x edited by Carlos Garcia Campos
(diff)
2:39 AM Changeset in webkit [211857] by zandobersek@gmail.com
  • 8 edits
    2 adds in trunk

[EME] Implement MediaKeySession::remove()
https://bugs.webkit.org/show_bug.cgi?id=167870

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Implement MediaKeySession::remove() as outlined in the specification.

The CDMInstance::removeSessionData() virtual method is added. CDMInstance
implementors should remove any session data stored for the session that's
represented by the passed-in session ID and session type.

Once the session data is removed, the passed-in callback should be invoked
by the CDMInstance object so that MediaKeySession can immediately queue a
task in which it updates key statuses and expiration, reject the promise if
the data removal failed, or enqueue any license-release message and finally
successfully resolve the promise.

MockCDMFactory gains the removeKeysFromSessionWithID() method that purges
the keys for a given session ID. The method is called from
MockCDMInstance::removeSessionData() implementation, which passes the
removed keys to the RemoveSessionDataCallback, along with a license-release
message that is checked in the tests. The key removal itself isn't tested
yet because the MediaKeySession's update key statuses algorithm isn't
implemented yet.

Test: media/encrypted-media/mock-MediaKeySession-remove.html

  • Modules/encryptedmedia/CDMInstance.h:
  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::remove):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMFactory::removeKeysFromSessionWithID):
(WebCore::MockCDMInstance::removeSessionData):

  • testing/MockCDMFactory.h:

LayoutTests:

Add the mock-MediaKeySession-remove.html test that tests the functionality
of the MediaKeySession::remove() implementation. The test checks that the
calls to that method properly resolve or reject the returned promise,
depending on the object state. Another test checks the message that's
queued upon a successful removal.

Additional tests will be added later once MediaKeySession properly
implements the close() method and key status updates.

  • media/encrypted-media/mock-MediaKeySession-remove-expected.txt: Added.
  • media/encrypted-media/mock-MediaKeySession-remove.html: Added.
  • platform/efl/TestExpectations:
  • platform/mac/TestExpectations:
2:25 AM Changeset in webkit [211856] by zandobersek@gmail.com
  • 8 edits
    2 adds in trunk

[EME] Implement MediaKeySession::close()
https://bugs.webkit.org/show_bug.cgi?id=167869

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Implement MediaKeySession::close() as outlined in the specification.

The CDMInstance::closeSession() virtual method, when called, should
close the session that's represented by the passed-in session ID on
the CDMInstance implementor object. That's the same session ID that
the CDMInstance object passes to the MediaKeySession class through
the callback that's provided to the updateLicense call.

The CloseSessionCallback, passed to CDMInstance::closeSession(),
should be invoked by the CDMInstance implementor once the session
is closed. When that is invoked, another task is queued for the
MediaKeySession object that runs the session closed algorithm
and resolves the promise.

MockCDMInstance::closeSession() is defined to remove the session
from the MockCDMFactory object and invoke the CloseSessionCallback.

Test: media/encrypted-media/mock-MediaKeySession-close.html

  • Modules/encryptedmedia/CDMInstance.h:
  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::close):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstance::closeSession):

  • testing/MockCDMFactory.h:

LayoutTests:

Add the mock-MediaKeySession-close.html test case which checks proper
behavior of MediaKeySession::close(), specifically that under specific
conditions the promise returned by that method is properly resolved or
rejected. The test is skipped on all platforms for now.

  • media/encrypted-media/mock-MediaKeySession-close-expected.txt: Added.
  • media/encrypted-media/mock-MediaKeySession-close.html: Added.
  • platform/efl/TestExpectations:
  • platform/mac/TestExpectations:
1:34 AM Changeset in webkit [211855] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

[EME] Alias CDMInstance enums to the specification-defined enums
https://bugs.webkit.org/show_bug.cgi?id=167896

Reviewed by Sam Weinig.

Simplify the enums in the CDMInstance class by simply aliasing them
to the EME specification-defined enums. CDMInstance::KeyStatus and
CDMInstance::MessageType were already direct copies of the
MediaKeyStatus and MediaKeyMessageType enums, while the
CDMInstance::LicenseType had the members as MediaKeySessionType,
but with slightly different names.

No changes in behavior.

  • Modules/encryptedmedia/CDMInstance.h:
  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::generateRequest):
(WebCore::MediaKeySession::update):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstance::requestLicense):

Feb 7, 2017:

10:54 PM Changeset in webkit [211854] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

REGRESSION(r210740): [GTK] 2.15 broke embedded videos in GNOME's yelp app
https://bugs.webkit.org/show_bug.cgi?id=167887

Reviewed by Michael Catanzaro.

Update the m_renderingCanBeAccelerated when accelerated rendering state changes.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::acceleratedRenderingStateChanged):
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
10:41 PM Changeset in webkit [211853] by Carlos Garcia Campos
  • 7 edits in trunk/Source/WebCore

[GTK] Handle extended colors in cairo and texture mapper backends
https://bugs.webkit.org/show_bug.cgi?id=167943

Reviewed by Michael Catanzaro.

Fixes: css3/color/backgrounds-and-borders.html

css3/color/box-shadows.html
css3/color/canvas.html
css3/color/composited-solid-backgrounds.html
css3/color/text.html

  • platform/graphics/Color.cpp:

(WebCore::premultipliedARGBFromColor): Handle the case of color being extended.

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::setSourceRGBAFromColor): Ditto.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::fillRectWithColor): Use isVisible() instead of alpha().
(WebCore::GraphicsContext::drawEllipse): Ditto.

  • platform/graphics/gtk/ColorGtk.cpp:

(WebCore::Color::operator GdkRGBA): Handle the case of color being extended.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawNumber): Ditto.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::blendWithOpacity): Ditto.
(WebCore::TextureMapperLayer::paintSelf): Use isVisible() instead of alpha().
(WebCore::TextureMapperLayer::computeOverlapRegions): Ditto.

5:47 PM Changeset in webkit [211852] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

WebItemProviderPasteboard should use -registerLoadHandlersToItemProvider: when creating a new UIItemProvider
https://bugs.webkit.org/show_bug.cgi?id=167918
<rdar://problem/30382347>

Reviewed by Tim Horton.

Adopts SPI in WebItemProviderPasteboard for object types that the platform knows how to serialize. Since we use
-createObjectOfClass: to initialize data when reading off of the pasteboard, we need to match the format that
objects conforming to UIItemProviderReading will expect. Thus, for all given objects that conform to
UIItemProviderWriting, we have them register themselves to the item provider.

We register other UTI types due to the fact that PlatformPasteboardIOS does not care about the specific
pasteboard used. This should not be necessary, however, since data written to the WebItemProviderPasteboard
should never need to be read by an actual UIPasteboard. This will be refactored in a future patch to add a
special type of WebItemProviderPasteboard-aware PlatformPasteboard.

Also fixes some reference counting issues in WebItemProviderPasteboard by changing the array of _itemProviders
to be a RetainPtr.

  • platform/ios/WebItemProviderPasteboard.mm:

(-[WebItemProviderPasteboard init]):
(-[WebItemProviderPasteboard pasteboardTypes]):
(-[WebItemProviderPasteboard itemProviders]):
(-[WebItemProviderPasteboard setItemProviders:]):
(-[WebItemProviderPasteboard numberOfItems]):
(-[WebItemProviderPasteboard setItems:]):
(-[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:]):
(-[WebItemProviderPasteboard itemProviderAtIndex:]):
(-[WebItemProviderPasteboard dealloc]): Deleted.

5:25 PM Changeset in webkit [211851] by Ryan Haddad
  • 2 edits in trunk/Tools

Update flakiness dashboard configuration.
https://bugs.webkit.org/show_bug.cgi?id=167957

Reviewed by Alexey Proskuryakov.

  • TestResultServer/static-dashboards/builders.jsonp:
5:14 PM Changeset in webkit [211850] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-604.1.5.4

Tag Safari-604.1.5.4.

5:12 PM Changeset in webkit [211849] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Fix libwebrtcpcrtc target include path
https://bugs.webkit.org/show_bug.cgi?id=167971

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

  • Configurations/libwebrtcpcrtc.xcconfig:
5:07 PM Changeset in webkit [211848] by achristensen@apple.com
  • 3 edits
    12 deletes in trunk/Source/ThirdParty/libwebrtc

[WebRTC] usrsctp (libwebrtc third party library) is not compiling
https://bugs.webkit.org/show_bug.cgi?id=167969

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

Also removing .gitignore files in libwebrtc directory.

  • Source/.gitignore: Removed.
  • Source/third_party/boringssl/src/.gitignore: Removed.
  • Source/third_party/gflags/src/.gitignore: Removed.
  • Source/third_party/jsoncpp/source/.gitignore: Removed.
  • Source/third_party/libyuv/.gitignore: Removed.
  • Source/third_party/protobuf/.gitignore: Removed.
  • Source/third_party/protobuf/csharp/.gitignore: Removed.
  • Source/third_party/protobuf/ruby/.gitignore: Removed.
  • Source/third_party/usrsctp/usrsctplib/.gitignore: Removed.
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:

(sctp_process_cookie_existing):

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:
  • Source/tools/.gitignore: Removed.
  • Source/webrtc/.gitignore: Removed.
5:04 PM Changeset in webkit [211847] by achristensen@apple.com
  • 2 edits
    1 add in trunk/Source/ThirdParty/libwebrtc

Move webrtc/pc to own Xcode target
https://bugs.webkit.org/show_bug.cgi?id=167970

Reviewed by Youenn Fablet.

It needs to include different directories than the rest of libwebrtc.
Also moved some target names so liblibsrtp.a is changed to libsrtp.a, etc.

  • Configurations/libwebrtcpcrtc.xcconfig: Added.
  • libwebrtc.xcodeproj/project.pbxproj:
5:04 PM Changeset in webkit [211846] by Ryan Haddad
  • 2 edits in trunk/Tools

Replace a bot that has an incorrect configuration.
https://bugs.webkit.org/show_bug.cgi?id=167747

Rubber-stamped by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
4:58 PM Changeset in webkit [211845] by rniwa@webkit.org
  • 4 edits in trunk

WebContent process repeatedly jetsams on BuzzFeed's Another Round page
https://bugs.webkit.org/show_bug.cgi?id=167830
<rdar://problem/30187368>

Reviewed by Simon Fraser.

Source/WebCore:

The jetsams on https://www.buzzfeed.com/anotherround were caused by WebKit creating the backing store
for every iframe's layer on the page regardless of whether they're in the viewport or not.

This was caused by GraphicsLayerCA's setVisibleAndCoverageRects not setting CoverageRectChanged on
m_uncommittedChanges on the very first call. Fixed the bug by initializing m_uncommittedChanges
to always have CoverageRectChanged so that the coverage rect would get updated properly.

Unfortunately, no new tests since somehow the backing store doesn't get created inside the test runner.

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA):

LayoutTests:

Rebaseline the test now that some overlay repaints are avoided properly by updating the overlay coverage rects.

  • platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt:
4:47 PM Changeset in webkit [211844] by achristensen@apple.com
  • 3 edits
    2 adds in trunk/Source/ThirdParty/libwebrtc

[libwebrtc] Move libsrtp and libyuv to own Xcode targets
https://bugs.webkit.org/show_bug.cgi?id=167966

Reviewed by Youenn Fablet.

  • Configurations/libsrtp.xcconfig: Added.
  • Configurations/libyuv.xcconfig: Added.
  • Configurations/usrsctp.xcconfig:
  • libwebrtc.xcodeproj/project.pbxproj:
4:46 PM Changeset in webkit [211843] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark mathml/opentype/large-operators-displaystyle-dynamic.html as flaky on Sierra WK2 Release.
https://bugs.webkit.org/show_bug.cgi?id=167206

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:21 PM Changeset in webkit [211842] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip http/tests/security/bypassing-cors-checks-for-extension-urls.html on ios-simulator.

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
4:07 PM Changeset in webkit [211841] by Brent Fulgham
  • 8 edits in trunk/Source/WebKit2

Correct initialization of Resource Load Statistics for use in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=167960

Reviewed by Andy Estes.

WebKit2 starts up with different process configuration settings depending on the type of
WebView and client application. This led to two problems:

  1. Registering the shared resource load observer did not start at UIProcess launch. Instead, it was lazily initialized as messages from the various WebProcess started getting received. This is too slow for WebKitTestRunner, which needs this object to be initialized right at launch time.


A new 'registerSharedResourceLoadObserver' method was needed, so that the WebProcess can ask
the WebsiteDataStore to register a resource load observer during platform initialization.

  1. Some WebView uses do not enable WebsiteDataStore, and should not activate a resource load statistics observer.
  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::registerSharedResourceLoadObserver): Added.

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize): If the web process is using a WebsiteDataStore,
register a resource load observer.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver): Added.

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

(WebKit::WebsiteDataStore::registerSharedResourceLoadObserver): Added.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
2:31 PM Changeset in webkit [211840] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Web Inspector: gradient editor should allow switching the units of the 'angle' parameter
https://bugs.webkit.org/show_bug.cgi?id=166938

Patch by Devin Rousso <Devin Rousso> on 2017-02-07
Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Test.html:

Add WebInspector.Gradient for new model object tests.

  • UserInterface/Models/Gradient.js:

(WebInspector.Gradient.fromString):
(WebInspector.LinearGradient):
(WebInspector.LinearGradient.fromComponents):
(WebInspector.LinearGradient.prototype.set angleValue):
(WebInspector.LinearGradient.prototype.get angleValue):
(WebInspector.LinearGradient.prototype.set angleUnits):
(WebInspector.LinearGradient.prototype.get angleUnits):
(WebInspector.LinearGradient.prototype.copy):
(WebInspector.LinearGradient.prototype.toString):
(WebInspector.LinearGradient.prototype._angleValueForUnits):
Rework part of WebInspector.LinearGradient to support units other than "deg".

  • UserInterface/Views/GradientEditor.css:

(.gradient-editor > .gradient-angle > input[type="range"]):
(.gradient-editor > .gradient-angle > input[type="number"]):

  • UserInterface/Views/GradientEditor.js:

(WebInspector.GradientEditor):
(WebInspector.GradientEditor.prototype.set gradient):
(WebInspector.GradientEditor.prototype._gradientTypeChanged):
(WebInspector.GradientEditor.prototype._angleValueChanged):
(WebInspector.GradientEditor.prototype._angleUnitsChanged):
(WebInspector.GradientEditor.prototype._angleChanged): Deleted.
Add <select> for each unit type that will change the units of the gradient.

LayoutTests:

  • inspector/model/gradient-expected.txt: Added.
  • inspector/model/gradient.html: Added.

New tests for WebInspector.Gradient.

2:29 PM Changeset in webkit [211839] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=167275

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:09 PM Changeset in webkit [211838] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

REGRESSION (r211819): [ios-simulator] API tests Coding.WKWebView and Coding.WKWebView_SameConfiguration crashing
https://bugs.webkit.org/show_bug.cgi?id=167947

Reviewed by Tim Horton.

  • Platform/spi/ios/UIKitSPI.h:

Add SPI declaration.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
Make sure to call setDrawsBackground here.

(-[WKWebView _populateArchivedSubviews:]):
We don't want to archive the scroll view and the fixed overlay view.

(-[WKWebView setOpaque:]):
Return early if this is called before we have a page (like from -[UIView initWithCoder:]).

1:56 PM Changeset in webkit [211837] by commit-queue@webkit.org
  • 13 edits
    4 adds in trunk

[WebRTC] LibWebRTCEndpoint should not own objects that should be destroyed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=167816

Patch by Youenn Fablet <youennf@gmail.com> on 2017-02-07
Reviewed by Alex Christensen.

Source/WebCore:

Tests: webrtc/libwebrtc/release-while-creating-offer.html

webrtc/libwebrtc/release-while-getting-stats.html
webrtc/libwebrtc/release-while-setting-local-description.html

Moving AV sources, stats promises, ICE candidates from LibWebRTCEndpoint to LibWebRTCPeerConnectionBackend.
This allows ensuring these are destroyed in the main thread.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::getStats):

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::getStats):

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

(WebCore::LibWebRTCMediaEndpoint::doCreateOffer):
(WebCore::LibWebRTCMediaEndpoint::doCreateAnswer):
(WebCore::LibWebRTCMediaEndpoint::getStats):
(WebCore::LibWebRTCMediaEndpoint::StatsCollector::StatsCollector):
(WebCore::LibWebRTCMediaEndpoint::StatsCollector::OnStatsDelivered):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:

(WebCore::LibWebRTCMediaEndpoint::addIceCandidate):
(WebCore::LibWebRTCMediaEndpoint::isStopped):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::~LibWebRTCPeerConnectionBackend):
(WebCore::LibWebRTCPeerConnectionBackend::getStats):
(WebCore::LibWebRTCPeerConnectionBackend::iceCandidateSucceeded):
(WebCore::LibWebRTCPeerConnectionBackend::iceCandidateFailed):
(WebCore::LibWebRTCPeerConnectionBackend::doSetLocalDescription):
(WebCore::LibWebRTCPeerConnectionBackend::doSetRemoteDescription):
(WebCore::LibWebRTCPeerConnectionBackend::doAddIceCandidate):
(WebCore::LibWebRTCPeerConnectionBackend::addAudioSource):
(WebCore::LibWebRTCPeerConnectionBackend::addVideoSource):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • testing/MockLibWebRTCPeerConnection.cpp:

(WebCore::MockLibWebRTCPeerConnectionReleasedInNetworkThreadWhileCreatingOffer::MockLibWebRTCPeerConnectionReleasedInNetworkThreadWhileCreatingOffer):
(WebCore::releaseInNetworkThread):
(WebCore::MockLibWebRTCPeerConnectionReleasedInNetworkThreadWhileCreatingOffer::CreateOffer):
(WebCore::MockLibWebRTCPeerConnectionReleasedInNetworkThreadWhileGettingStats::MockLibWebRTCPeerConnectionReleasedInNetworkThreadWhileGettingStats):
(WebCore::MockLibWebRTCPeerConnectionReleasedInNetworkThreadWhileGettingStats::GetStats):
(WebCore::MockLibWebRTCPeerConnectionReleasedInNetworkThreadWhileSettingDescription::MockLibWebRTCPeerConnectionReleasedInNetworkThreadWhileSettingDescription):
(WebCore::MockLibWebRTCPeerConnectionReleasedInNetworkThreadWhileSettingDescription::SetLocalDescription):
(WebCore::MockLibWebRTCPeerConnectionFactory::CreatePeerConnection):

  • testing/MockLibWebRTCPeerConnection.h:

LayoutTests:

  • webrtc/libwebrtc/release-while-creating-offer.html: Added.
  • webrtc/libwebrtc/release-while-getting-stats.html: Added.
  • webrtc/libwebrtc/release-while-setting-local-description.html: Added.
1:37 PM Changeset in webkit [211836] by mmaxfield@apple.com
  • 18 edits
    2 adds in trunk

[Win] [GTK] [EFL] Compile (but don't use, yet) the platform-independent piece of ComplexTextController
https://bugs.webkit.org/show_bug.cgi?id=167927

Reviewed by Brent Fulgham.

Source/WebCore:

This patch simply moves some functions around to enable the Win, GTK, and EFL ports to compile the
platform-independent pieces of ComplexTextController. Those parts of ComplexTextController have
some dependencies which were previously only available on the Cocoa ports; however, those
dependencies are easily created or moved from elsewhere. The next step is to populate the
ComplexTextController::collectComplexTextRunsForCharacters() function for DirectWrite and HarfBuzz.
Once that is done, UniscribeController and HarfBuzzShaper can be deleted.

Adds ComplexTextController TestWebKitAPI tests to the Win and GTK ports.

  • CMakeLists.txt: Everyone can compile the platform-independent piece of ComplexTextController.
  • PlatformEfl.cmake: Add the HarfBuzz-specific piece.
  • PlatformGTK.cmake: Ditto.
  • PlatformWin.cmake: Add the DirectWrite-specific piece.
  • platform/graphics/ComplexTextController.cpp:

(WebCore::TextLayoutDeleter::operator()): ComplexTextController shouldn't be enabled yet for Win,
GTK, or EFL.
(WebCore::FontCascade::createLayout): Ditto.
(WebCore::FontCascade::width): Ditto.
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Moved shared code to the shared
file.

  • platform/graphics/Font.cpp:

(WebCore::Font::noSynthesizableFeaturesFont): Default implementation for other ports.
(WebCore::Font::variantCapsSupportsCharacterForSynthesis): Ditto.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::fontForCombiningCharacterSequence): Ditto.
(WebCore::FontCascade::drawEmphasisMarksForComplexText): Ditto.
(WebCore::FontCascade::createLayout): Deleted. Moved to ComplexTextController.
(WebCore::TextLayoutDeleter::operator()): Deleted. Ditto.

  • platform/graphics/FontCascade.h: fontForCombiningCharacterSequence() should exist on all ports.
  • platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:

(WebCore::FontCascade::drawEmphasisMarksForComplexText): Deleted. Shared among all ports.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::drawEmphasisMarksForComplexText): Deleted. Ditto.

  • platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp: Added.

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Empty implementation of
HarfBuzz-specific piece of ComplexTextController.

  • platform/graphics/mac/ComplexTextControllerCoreText.mm: Moved constructors to shared file.
  • platform/graphics/win/ComplexTextControllerDirectWrite.cpp: Added.

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Empty implementation of
Direct Write-specific piece of ComplexTextController.

  • platform/graphics/win/FontWin.cpp:

(WebCore::FontCascade::drawEmphasisMarksForComplexText): Deleted. Shared among all ports.

Tools:

Enable ComplexTextController API tests on the Win and GTK ports.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWin.cmake:
1:29 PM Changeset in webkit [211835] by achristensen@apple.com
  • 6 edits in trunk/Source

Revert r166597
https://bugs.webkit.org/show_bug.cgi?id=167951

Reviewed by Andreas Kling.

Source/WebCore:

  • platform/spi/cf/CFNetworkSPI.h:

Remove now-unused SPI declaration.

Source/WebKit2:

CFURLConnectionInvalidateConnectionCache is not commonly called and is likely causing
CFNetwork to be in a strange state when using NSURLSession and invalidating the connection
cache during authentication, especially server trust evaluation. Right now we only call
it when handling memory pressure, and it isn't worth getting into such a strange state
in a poorly tested situation. See rdar://problem/27439617

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::lowMemoryHandler):
(WebKit::NetworkProcess::initializeSandbox):
(WebKit::NetworkProcess::platformLowMemoryHandler): Deleted.

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

(WebKit::NetworkProcess::platformLowMemoryHandler): Deleted.

1:22 PM Changeset in webkit [211834] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

SigillCrashAnalyzer::analyze() should use a do-while loop instead of a lambda.
https://bugs.webkit.org/show_bug.cgi?id=167950

Reviewed by Michael Saboff.

Lambdas aren't free (apparently, the compiler isn't able to detect that the
lambda does not escape and can be inlined completely). So, use a do-while loop
instead since we don't really need a lambda here.

  • tools/SigillCrashAnalyzer.cpp:
1:02 PM Changeset in webkit [211833] by Jonathan Bedard
  • 3 edits in trunk/Tools

File index appended to previous file in svn-create-patch with SVN 1.9
https://bugs.webkit.org/show_bug.cgi?id=167903
<rdar://problem/30387395>

Reviewed by Daniel Bates.

  • Scripts/VCSUtils.pm:

(fixSVNPatchForAdditionWithHistory): Append a trailing newline character.

  • Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl: Do not remove

trailing newline character from the expected result before comparing it to the actual result.

12:56 PM Changeset in webkit [211832] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix the windows build.

  • bindings/js/ReadableStreamDefaultController.cpp:
12:44 PM Changeset in webkit [211831] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

[Mac] Web Automation: NSEventType not initialized in WebAutomationSession::platformSimulateMouseInteraction
https://bugs.webkit.org/show_bug.cgi?id=167902

Reviewed by Joseph Pecoraro.

  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:

(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
Initialize these to 0, which is not a valid NSEventType. Assert that
each NSEventType has a valid value before attempting to use it.

12:19 PM Changeset in webkit [211830] by commit-queue@webkit.org
  • 10 edits
    3 adds in trunk

[WebRTC] LibWebRTC WK2 network stack is not providing correct ports for ICE candidates
https://bugs.webkit.org/show_bug.cgi?id=167939

Patch by Youenn Fablet <youennf@gmail.com> on 2017-02-07
Reviewed by Sam Weinig.

Source/WebCore:

Test: webrtc/no-port-zero-in-upd-candidates.html

  • testing/MockLibWebRTCPeerConnection.cpp:

(WebCore::MockLibWebRTCPeerConnectionFactory::MockLibWebRTCPeerConnectionFactory): Adding a way to create one real PC in WTR environment.

Source/WebKit2:

AddressReady signalling was done by the WebProcess for UDP and ServerTCP as real async sockets in those case do
not send it. But the WebProcess does not have information on the port, as it is assigned by the socket factory
which is in the network process.

Fixed that bug by signalling AddressReady in the network process for UDP, ServerTCP and ClientTCP.

  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:

(WebKit::LibWebRTCSocketClient::LibWebRTCSocketClient):
(WebKit::LibWebRTCSocketClient::signalAddressReady):

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

(WebKit::NetworkRTCProvider::createUDPSocket):
(WebKit::NetworkRTCProvider::createServerTCPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):

  • WebProcess/Network/webrtc/LibWebRTCSocket.cpp:

(WebKit::LibWebRTCSocket::LibWebRTCSocket):
(WebKit::LibWebRTCSocket::signalAddressReady):

LayoutTests:

  • webrtc/no-port-zero-in-upd-candidates.html: Added.
  • webrtc/no-port-zero-in-upd-candidates-expected.txt: Added.
  • webrtc/video.html:
  • webrtc/video-expected.txt: Added.
12:09 PM Changeset in webkit [211829] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: DOMTreeOutline becomes collapsed after switching back to Elements tab
https://bugs.webkit.org/show_bug.cgi?id=167924

Reviewed by Brian Burg.

  • UserInterface/Views/DOMTreeOutline.js:

(WebInspector.DOMTreeOutline.prototype.update):
Drive-by fix: move variable initialization below the early return.

  • UserInterface/Views/ElementsTabContentView.js:

(WebInspector.ElementsTabContentView.prototype.shown): Deleted.
Calling this._showDOMTreeContentView isn't necessary. The base class
implementation will call shown on the content view.

12:01 PM Changeset in webkit [211828] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

The SigillCrashAnalyzer should play nicer with client code that may install its own SIGILL handler.
https://bugs.webkit.org/show_bug.cgi?id=167858

Reviewed by Michael Saboff.

Here are the scenarios that may come up:

  1. Client code did not install a SIGILL handler.
    • In this case, once we're done analyzing the SIGILL, we can just restore the default handler and return to let the OS do the default action i.e. capture a core dump.
  1. Client code installed a SIGILL handler before JSC does.
    • In this case, we will see a non-null handler returned as the old signal handler when we install ours.
    • In our signal handler, after doing our crash analysis, we should invoke the client handler to let it do its work.
    • Our analyzer can also tell us if the SIGILL source is from JSC code in general (right now, this would just mean JIT code).
    • If the SIGILL source is not from JSC, we'll just let the client handler decided how to proceed. We assume that the client handler will do the right thing (which is how the old behavior is before the SigillCrashAnalyzer was introduced).
    • If the SIGILL source is from JSC, then we know the SIGILL is an unrecoverable condition. Hence, after we have given the client handler a chance to run, we should restore the default handler and let the OS capture a core dump. This intentionally overrides whatever signal settings the client handler may have set.
  1. Client code installed a SIGILL handler after JSC does.
    • In this case, we are dependent on the client handler to call our handler after it does its work. This is compatible with the old behavior before SigillCrashAnalyzer was introduced.
    • In our signal handler, if we determine that the SIGILL source is from JSC code, then the SIGILL is not recoverable. We should then restore the default handler and get a core dump.
    • If the SIGILL source is not from JSC, we check to see if there's a client handler installed after us.
    • If we detect a client handler installed after us, we defer judgement on what to do to the client handler. Since the client handler did not uninstall itself, it must have considered itself to have recovered from the SIGILL. We'll trust the client handler and take no restore action of our own (which is compatible with old code behavior).
    • If we detect no client handler and we have no previous handler, then we should restore the default handler and get a core dump.
  • tools/SigillCrashAnalyzer.cpp:

(JSC::handleCrash):
(JSC::installCrashHandler):
(JSC::SigillCrashAnalyzer::analyze): Deleted.

11:51 AM Changeset in webkit [211827] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Fix libwebrtc build after r211817
https://bugs.webkit.org/show_bug.cgi?id=167944

  • Configurations/usrsctp.xcconfig:

Disable more warnings.

11:49 AM Changeset in webkit [211826] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Update bindings tests results for additional include.

  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
11:47 AM Changeset in webkit [211825] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix the windows build.

  • bindings/js/JSDOMConvertNumbers.h:
11:44 AM Changeset in webkit [211824] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix the EFL build.

  • WebProcess/InjectedBundle/InjectedBundle.cpp:
11:34 AM Changeset in webkit [211823] by achristensen@apple.com
  • 6 edits in trunk/Source/WebCore

Fix libwebrtc build after r211728
https://bugs.webkit.org/show_bug.cgi?id=167821

  • platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::processNewSample):

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp:

(WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable):
(WebCore::RealtimeOutgoingAudioSource::sourceHasMoreMediaData): Deleted.

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.h:
  • platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource):
(WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable):
(WebCore::RealtimeOutgoingVideoSource::sourceHasMoreMediaData): Deleted.

  • platform/mediastream/mac/RealtimeOutgoingVideoSource.h:
11:15 AM Changeset in webkit [211822] by timothy_horton@apple.com
  • 1 edit
    1 delete in trunk/Source/WebCore

Remove accidentally-added (in r211409) patch reject file

  • bindings/scripts/test/JS/JSTestSerialization.cpp.rej: Removed.
10:55 AM Changeset in webkit [211821] by weinig@apple.com
  • 17 edits
    27 copies in trunk/Source/WebCore

JSDOMConvert is too big. Split it up!
https://bugs.webkit.org/show_bug.cgi?id=167806

Rubber-stamped by Geoff Garen.

Split JSDOMConvert up roughly by IDL type. Some are grouped for convenience, e.g. all the
string types are together, all the numeric types are together. Also moved helpers from
JSDOMBinding to their respective JSDOMConvertFoo header. For now, JSDOMConvert.h as an
umbrella of all the sub headers, but it will be removed, and the code generator taught
to include the right header in a subsequent patch.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add new files.

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

Remove toJS that takes a std::optional<IDBKeyPath>, it was unused, and update date code
to only call valueToDate once, and pass things by reference.

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

Move most of the conversion helpers into their respective JSDOMConvertFoo header.

  • bindings/js/JSDOMConvert.h:

Leave for now, just has includes of all the broken out headers.

  • bindings/js/JSDOMConvertAny.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertBase.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertBoolean.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertBufferSource.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertCallbacks.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertDate.cpp: Copied from Source/WebCore/bindings/js/JSDOMBinding.cpp.
  • bindings/js/JSDOMConvertDate.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertDictionary.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertEnumeration.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertEventListener.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertIndexedDB.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertInterface.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertJSON.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertNull.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertNullable.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertNumbers.cpp: Copied from Source/WebCore/bindings/js/JSDOMBinding.cpp.
  • bindings/js/JSDOMConvertNumbers.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertObject.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertRecord.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertSequences.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertSerializedScriptValue.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertStrings.cpp: Copied from Source/WebCore/bindings/js/JSDOMBinding.cpp.
  • bindings/js/JSDOMConvertStrings.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertUnion.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertVariadic.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertWebGL.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/js/JSDOMConvertXPathNSResolver.h: Copied from Source/WebCore/bindings/js/JSDOMConvert.h.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
Add include of JSDOMConvertVariadic.h rather than JSDOMConvert.

  • bindings/js/JSCryptoCustom.cpp:
  • bindings/js/JSCryptoOperationData.cpp:
  • bindings/js/JSImageDataCustom.cpp:
  • bindings/js/ReadableStreamDefaultController.h:
  • bindings/js/WebCoreTypedArrayController.cpp:
  • html/canvas/WebGLAny.cpp:
  • platform/mac/SerializedPlatformRepresentationMac.mm:

Add includes for specific JSDOMConvert header now that helpers have
been moved their from JSDOMBinding.h

10:53 AM Changeset in webkit [211820] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Remove unnecessary exports on inline functions. They were causing build failures
with some compilers.

  • Modules/mediasource/SampleMap.h:

(WebCore::PresentationOrderSampleMap::begin):
(WebCore::PresentationOrderSampleMap::end):
(WebCore::PresentationOrderSampleMap::rbegin):
(WebCore::PresentationOrderSampleMap::rend):
(WebCore::DecodeOrderSampleMap::begin):
(WebCore::DecodeOrderSampleMap::end):
(WebCore::DecodeOrderSampleMap::rbegin):
(WebCore::DecodeOrderSampleMap::rend):
(WebCore::SampleMap::sizeInBytes):
(WebCore::SampleMap::decodeOrder):
(WebCore::SampleMap::presentationOrder):
(WebCore::SampleMap::addRange):
(WebCore::SampleMap::SampleMap): Deleted.

10:42 AM Changeset in webkit [211819] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

-[WKWebView encodeWithCoder:] needs to call super
https://bugs.webkit.org/show_bug.cgi?id=167945
rdar://problem/29777668

Reviewed by Geoffrey Garen.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView encodeWithCoder:]):
Call super.

10:24 AM Changeset in webkit [211818] by Yusuke Suzuki
  • 8 edits
    1 delete in trunk

Unreviewed, manual roll out of r211777
https://bugs.webkit.org/show_bug.cgi?id=167457

Source/JavaScriptCore:

  • jsc.cpp:

(GlobalObject::moduleLoaderImportModule):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncImportModule):

Source/WebCore:

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::importModule):

LayoutTests:

Later, I'll reland it with the deterministic tests.

  • inspector/controller/resources/cappuccino.js: Removed.
  • inspector/controller/resources/cocoa.js: Removed.
  • inspector/controller/resources/drink.js: Removed.
  • inspector/controller/runtime-controller-expected.txt:
  • inspector/controller/runtime-controller.html:
10:24 AM Changeset in webkit [211817] by achristensen@apple.com
  • 5 edits in trunk/Source/ThirdParty/libwebrtc

build usrsctp with Xcode
https://bugs.webkit.org/show_bug.cgi?id=167944

Reviewed by Youenn Fablet.

  • Configurations/usrsctp.xcconfig:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:
  • Source/third_party/usrsctp/usrsctplib/usrsctplib/user_atomic.h:
  • libwebrtc.xcodeproj/project.pbxproj:
10:08 AM Changeset in webkit [211816] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[Soup] WebKitSoupRequestInputStream can still leave requests unfinished after r211773
https://bugs.webkit.org/show_bug.cgi?id=167929

Reviewed by Michael Catanzaro.

The while loop to process the pending data requests was not a good idea, because having a new pending request
doesn't mean we have more data available, but that more data was requested.

  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(webkitSoupRequestInputStreamPendingReadAsyncComplete): Process only one request if needed.

10:04 AM Changeset in webkit [211815] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GStreamer] Deadlock when media player is destroyed
https://bugs.webkit.org/show_bug.cgi?id=167861

Reviewed by Michael Catanzaro.

The problem is that we are calling notifyOne() for the draw mutex without taking the lock.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::repaint):

9:59 AM Changeset in webkit [211814] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

MediaSourceClientGStreamerMSE: wrap FastMalloc-ed memory into pipeline-bound GstBuffers
https://bugs.webkit.org/show_bug.cgi?id=167928

Reviewed by Xabier Rodriguez-Calvar.

The buffers created in MediaSourceClientGStreamerMSE can be large enough in size
that repetitive allocations can cause larger heap fragmentation in different libc
allocators. To avoid that occurrence, we should simply use FastMalloc to allocate
memory for these buffers.

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::append):

9:38 AM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
9:36 AM WebKitGTK/2.14.x edited by Michael Catanzaro
Propose more merges… (diff)
9:20 AM Changeset in webkit [211813] by commit-queue@webkit.org
  • 3 edits in trunk

[GTK][Efl] Do not require LibXslt if XSLT is disabled
https://bugs.webkit.org/show_bug.cgi?id=167931

This fixes build with --no-xslt, when the libxslt dev files are not installed.

Patch by Olivier Blin <Olivier Blin> on 2017-02-07
Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
8:59 AM Changeset in webkit [211812] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[webkitdirs] remove unused host_processor variable in determineArchitecture()
https://bugs.webkit.org/show_bug.cgi?id=167936

Patch by Olivier Blin <Olivier Blin> on 2017-02-07
Reviewed by Michael Catanzaro.

  • Scripts/webkitdirs.pm:

(determineArchitecture):
The host_processor variable in webkitdirs.pm's determineArchitecture() is not used anymore,
since r195083.

8:14 AM Changeset in webkit [211811] by commit-queue@webkit.org
  • 5 edits
    1 add
    1 delete in trunk

Use a JSON file to define which WPT files/folders to import
https://bugs.webkit.org/show_bug.cgi?id=167923

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

LayoutTests/imported/w3c:

  • resources/ImportExpectations: Removed.
  • resources/import-expectations.json: Added.

Tools:

  • Scripts/webkitpy/w3c/test_downloader.py:

(TestDownloader.init):
(TestDownloader._init_paths_from_expectations):

  • Scripts/webkitpy/w3c/test_importer.py:

(parse_args):

  • Scripts/webkitpy/w3c/test_importer_unittest.py:
6:50 AM Changeset in webkit [211810] by matthew_hanson@apple.com
  • 2 edits in branches/safari-604.1.5-branch/Source/WebKit2

Merge r211752. rdar://problem/30119091

6:50 AM Changeset in webkit [211809] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-604.1.5-branch

Merge r211659. rdar://problem/30386165

6:49 AM Changeset in webkit [211808] by matthew_hanson@apple.com
  • 2 edits in branches/safari-604.1.5-branch/Source/JavaScriptCore

Merge r211630. rdar://problem/30357032

6:30 AM Changeset in webkit [211807] by commit-queue@webkit.org
  • 7 edits
    4 copies
    1 move
    6 adds
    3 deletes in trunk

[Modern Media Controls] Handle media durations of an hour or more gracefully
https://bugs.webkit.org/show_bug.cgi?id=167882
<rdar://problem/29601260>

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

Source/WebCore:

We add a new "labelsMayDisplayTimesOverAnHour" to TimeControl so that time labels
to the left and right of the scrubber may have extra room to display to account for
the extra "xx:" characters that may appear. We don't lay the time out dynamically
such that we don't see layout jumps as the times shown in the labels go around
the hour mark.

We also refactor the ElapsedTimeSupport and RemainingTimeSupport in a single
TimeLabelsSupport class which updates both elapsed and remaining time labels
and sets the "labelsMayDisplayTimesOverAnHour" on the TimeControl should a
"durationchange" happen to make the media duration reach or go past the hour mark.

Tests: http/tests/media/modern-media-controls/time-labels-support/long-time.html

media/modern-media-controls/time-control/time-control-labels-may-display-times-over-an-hour.html
media/modern-media-controls/time-labels-support/elapsed-time.html
media/modern-media-controls/time-labels-support/remaining-time.html

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

(TimeControl.prototype.get labelsMayDisplayTimesOverAnHour):
(TimeControl.prototype.set labelsMayDisplayTimesOverAnHour):
(TimeControl.prototype.set width):

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

(.time-label):

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/elapsed-time-support.js: Removed.
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype._updateControlsIfNeeded):

  • Modules/modern-media-controls/media/time-labels-support.js: Renamed from Source/WebCore/Modules/modern-media-controls/media/remaining-time-support.js.

(TimeLabelsSupport.prototype.get control):
(TimeLabelsSupport.prototype.syncControl):
(TimeLabelsSupport):

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Add new tests to check that we correctly handle times at or past the hour mark.

  • http/tests/media/modern-media-controls/time-labels-support/long-time-expected.txt: Added.
  • http/tests/media/modern-media-controls/time-labels-support/long-time.html: Added.
  • media/modern-media-controls/time-control/time-control-labels-may-display-times-over-an-hour-expected.txt: Added.
  • media/modern-media-controls/time-control/time-control-labels-may-display-times-over-an-hour.html: Added.
  • media/modern-media-controls/time-labels-support/elapsed-time-expected.txt: Renamed from LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support-expected.txt.
  • media/modern-media-controls/time-labels-support/elapsed-time.html: Renamed from LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html.
  • media/modern-media-controls/time-labels-support/remaining-time-expected.txt: Renamed from LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support-expected.txt.
  • media/modern-media-controls/time-labels-support/remaining-time.html: Renamed from LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html.
6:07 AM Changeset in webkit [211806] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

LayoutTet media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=167275

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

After bringing fullscreen controls up to spec as part of https://bugs.webkit.org/show_bug.cgi?id=167875,
we need to initiate dragging on an area that is not covered by controls, so we shift further right to
initiate dragging.

  • media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls.html:
  • platform/mac/TestExpectations:
5:46 AM Changeset in webkit [211805] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

LayoutTest media/modern-media-controls/layout-node/addChild.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=167461

Unreviewed test gardening, this test is no longer flaky.

Patch by Antoine Quint <Antoine Quint> on 2017-02-07

  • platform/mac/TestExpectations:
5:22 AM Changeset in webkit [211804] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[mac-wk1] LayoutTest media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=163598

Unreviewed test gardening, this test is no longer flaky.

Patch by Antoine Quint <Antoine Quint> on 2017-02-07

  • platform/mac-wk1/TestExpectations:
5:09 AM Changeset in webkit [211803] by pvollan@apple.com
  • 5 edits in trunk/Source/WebCore

Read stroke width of subtitles from MediaAccessibility framework.
https://bugs.webkit.org/show_bug.cgi?id=167871
<rdar://problem/29265906>

Reviewed by Brent Fulgham.

Read MACaptionFontAttributeStrokeWidth from CTFontDescriptorRef.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::strokeWidth):
(WebCore::CaptionUserPreferencesMediaAF::captionsTextEdgeCSS):

  • page/CaptionUserPreferencesMediaAF.h:
  • platform/cf/MediaAccessibilitySoftLink.cpp:
  • platform/cf/MediaAccessibilitySoftLink.h:
2:53 AM Changeset in webkit [211802] by commit-queue@webkit.org
  • 11 edits
    2 adds in trunk

[Modern Media Controls] Improve handling of <video> with only audio tracks
https://bugs.webkit.org/show_bug.cgi?id=167836
<rdar://problem/30255812>

Patch by Antoine Quint <Antoine Quint> on 2017-02-07
Reviewed by Dean Jackson.

Source/WebCore:

We now check for the availability of video tracks before considering a <video>
element is displaying an actual video file and turning auto-hide on. We also
check that we have video tracks before enabling the fullscreen button. This
brings the behavior of a <video> pointing to a resource with no video tracks
to be the same as an <audio> element.

Test: media/modern-media-controls/media-controller/media-controller-video-with-only-audio.html

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

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

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

(FullscreenSupport.prototype.syncControl):
(FullscreenSupport):

LayoutTests:

Add a new test to check that a <video> with a resource that only has audio tracks
does not auto-hide nor show the fullscreen button. We also rebaseline a few existing
tests for this change of behavior.

  • fast/regions/inline-block-inside-anonymous-overflow-with-covered-controls-expected.html:
  • fast/regions/inline-block-inside-anonymous-overflow-with-covered-controls.html:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on-expected.txt:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on.html:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-toggle-expected.txt:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-toggle.html:
  • media/modern-media-controls/media-controller/media-controller-video-with-only-audio-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-video-with-only-audio.html: Added.
  • media/modern-media-controls/time-label/time-label-white-space-nowrap.html:
2:01 AM WebKitGTK/2.14.x edited by Carlos Garcia Campos
(diff)
1:51 AM Changeset in webkit [211801] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r211775 - Overlay scrolling with iframe-s broken
https://bugs.webkit.org/show_bug.cgi?id=165056

Reviewed by Antonio Gomes.

Source/WebCore:

Mouse press events for overlay scrollbars are ignored if there's a subframe under the scrollbar. This doesn't
happen with normal scrollbars, because the subframe is not really under the scrollbar, so events are always
correctly passed to the scrollbar. With overlay scrollbars, the hit test detects the scrollbar, but events are
always passed first to the subframe. Scrollbars are correctly updated on hover though, because
handleMouseMoveEvent checks the presence of scrollbars before checking for subframes and move events are
actually passed to both, the scrollbar and the subframe. Overlay scrollbars should always take precedence over
subframes to handle mouse press events, so we should check first if mouse is over a scrollbar and never pass the
event to a subframe in that case. Another problem is that the cursor is not updated either when the overlay
scrollbar is hovered and there's a subframe. This is because in handleMouseMoveEvent we pass the event to both
the scrollbar and subframe but we never update the cursor when a suframe was found. So, here again we need to make
an exception for scrollbars and upate the cursor when mouse is over the scrollbar even if a subframe was found.

Test: fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent): Move the scrollbar check before the subframe check.
(WebCore::EventHandler::handleMouseMoveEvent): Update the cursor when hovering a scrollbar even if a subframe
was found.
(WebCore::EventHandler::updateLastScrollbarUnderMouse): Use an enum instead of a boolean for setLast parameter.

  • page/EventHandler.h:

LayoutTests:

Add a new test to check that clicking on an overlay scrollbar works even it's over a subframe.

  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt: Added.
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac-wk1/TestExpectations:
1:39 AM Changeset in webkit [211800] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211366 - Unreviewed. Fix GTK+ debug build after r211365.

Remove invalid assert.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModeNow):

1:38 AM Changeset in webkit [211799] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r211206 - ImageBufferCairo: cairo_image_surface should use bmalloc-allocated memory
https://bugs.webkit.org/show_bug.cgi?id=165751

Reviewed by Carlos Garcia Campos.

Allocate the underlying memory for cairo_image_surface objects through FastMalloc.
This way we can steer such large allocations away from the default libc allocator.

Objects of this class can create Cairo surfaces that need as much as 4MB of memory
for the underlying pixel buffer. Allocating such objects through the default
libc allocator can lead to increased memory usage because of non-optimal allocation
strategy in libc. In contrast, bmalloc performs large allocations by directly using
mmap() to reserve the necessary memory.

The improvements can be significant. On nytimes.com, with the threaded version of
the CoordinatedGraphics system, the memory consumption can drop by roughly 20%.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::ImageBuffer): Zero-allocate the necessary memory via FastMalloc.
Tie that memory lifetime to the lifetime of the surface by using
cairo_surface_set_user_data() with the specific user data key.

1:34 AM Changeset in webkit [211798] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211277 - [GTK] Stop forcing accelerated compositing by default
https://bugs.webkit.org/show_bug.cgi?id=167492

Reviewed by Žan Doberšek.

We are now ready to bring back the on demand accelerated compositing mode with the threaded
compositor. Unfortunately, having AC always enabled brought a lot of issues for many people. Not only it
requires a lot more memory but also caused rendering issues (or even nothing rendered at all) with some graphics
drivers. People started to use WEBKIT_DISABLE_COMPOSITING_MODE as a workaround, but that was not expected to be
used by users. So, entering/leaving AC when required by web contents is not actually the solution but a huge
improvement for many people. If we are eventually ready to force AC mode again, we'll change this again. Note
that we still have WEBKIT_DISABLE_COMPOSITING_MODE, but now also WEBKIT_FORCE_COMPOSITING_MODE for testing and debugging.

  • UIProcess/gtk/WebPreferencesGtk.cpp:

(WebKit::WebPreferences::platformInitializeStore):

1:34 AM Changeset in webkit [211797] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211365 - [GTK] Do not release OpenGL resource immediately when leaving accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=167544

Reviewed by Michael Catanzaro.

Sometimes the conditions to be in AC mode or not change quickly, and then we leave AC mode just enter it again
after a very short period of time. In those cases we are dropping all the GL resources and the compositor
thread, and creating it again. We could keep the layer tree host alive for a while when exiting AC mode, and
reuse it if we enter AC mode before the previous one has been discarded. While the previous layer tree host is
alive we still need to keep it up to date, for example if the web view is resized or contents size change, and
synchronize with the threaded compositor when it becomes the layer tree host again.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::~AcceleratedDrawingArea): Discard the previous layer tree host.
(WebKit::AcceleratedDrawingArea::AcceleratedDrawingArea): Initialize the timer to discard the previous layer
tree host.
(WebKit::AcceleratedDrawingArea::pageBackgroundTransparencyChanged): Notify the previous layer tree host if needed.
(WebKit::AcceleratedDrawingArea::mainFrameContentSizeChanged): Ditto.
(WebKit::AcceleratedDrawingArea::updateBackingStoreState): Ditto.
(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode): Reuse the previous layer tree host if possible.
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModeNow): Exit AC mode and save the layer tree host
starting a timer of 5 seconds to discard it if not reused.
(WebKit::AcceleratedDrawingArea::discardPreviousLayerTreeHost): Invalidate and destroy the previous layer tree host.
(WebKit::AcceleratedDrawingArea::didChangeViewportAttributes): Notify the previous layer tree host if needed.
(WebKit::AcceleratedDrawingArea::deviceOrPageScaleFactorChanged): Ditto.

  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::scrollNonCompositedContents): If it's discardable add the action to
be synchronized instead.
(WebKit::ThreadedCoordinatedLayerTreeHost::contentsSizeChanged): Ditto.
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): Ditto.
(WebKit::ThreadedCoordinatedLayerTreeHost::pageBackgroundTransparencyChanged): Ditto.
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange): Ditto.
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportAttributes): Ditto.
(WebKit::ThreadedCoordinatedLayerTreeHost::setIsDiscardable): When the layer tree host becomes discardable,
reset the sync actions and return. When it becomes the real layer tree host again, apply all pending actions to
synchronize with the threaded compositor.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::scroll): Notify the previous layer tree host if needed.
(WebKit::DrawingAreaImpl::mainFrameContentSizeChanged): Ditto.
(WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode): Use AcceleratedDrawingArea::exitAcceleratedCompositingModeNow().

  • WebProcess/WebPage/LayerTreeHost.h:

(WebKit::LayerTreeHost::setIsDiscardable): Added.

1:34 AM Changeset in webkit [211796] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211350 - [Coordinated Graphics] WebPage shouldn't use the layerTreeHost directly
https://bugs.webkit.org/show_bug.cgi?id=167494

Reviewed by Michael Catanzaro.

In Coordinated Graphics we have a couple of methods that the WebPage uses directly from the layer tree host,
instead of using the drawing area interface. This patch adds DrawingArea::didChangeViewportAttributes and
DrawingArea::deviceOrPageScaleFactorChanged and renames LayerTreeHost::didChangeViewportProperties as
LayerTreeHost::didChangeViewportAttributes for consistency.

  • Shared/CoordinatedGraphics/SimpleViewportController.cpp:

(WebKit::SimpleViewportController::didChangeViewportAttributes): Receive an rvalue reference to avoid copies.

  • Shared/CoordinatedGraphics/SimpleViewportController.h:
  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::didChangeViewportAttributes): Forward it to the layer tree host if any.
(WebKit::AcceleratedDrawingArea::deviceOrPageScaleFactorChanged): Ditto.

  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportAttributes): Renamed and updated to pass an rvalue reference.
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportProperties): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/LayerTreeHost.h:

(WebKit::LayerTreeHost::didChangeViewportAttributes): Renamed and updated to pass an rvalue reference.
(WebKit::LayerTreeHost::didChangeViewportProperties): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::sendViewportAttributesChanged): Use the drawing area.
(WebKit::WebPage::scalePage): Ditto
(WebKit::WebPage::setDeviceScaleFactor): Ditto.
(WebKit::WebPage::viewportPropertiesDidChange): Ditto.

1:33 AM Changeset in webkit [211795] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r211358 - [Threaded Compositor] Crash in GraphicsContext3D::deleteTexture when destroying TextureMapperPlatformLayerProxy
https://bugs.webkit.org/show_bug.cgi?id=167575

Reviewed by Žan Doberšek.

We should clear all the buffers on invalidate to ensure we don't have textures alive after CoordinatedGraphicsScene::purgeGLResources().

Fix crash in media/video-poster-background.html.

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::invalidate): Clear current, pending and all used buffers.

1:33 AM Changeset in webkit [211794] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.14/Source

Merge r211357 - [Threaded Compositor] Crash on WebCore::GLContext::version()
https://bugs.webkit.org/show_bug.cgi?id=167559

Reviewed by Michael Catanzaro.

Source/WebCore:

Fixes crashes in several media tests.

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::invalidate): Clear m_compositorThreadUpdateTimer and call the update function.

Source/WebKit2:

This is happening because TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired() is fired after the
threaded compositor is deleted. CoordinatedGraphicsScene::purgeGLResources() should invalidate the proxies
before clearing the map.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::purgeGLResources):

1:33 AM Changeset in webkit [211793] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211367 - [GTK] Scrolling iframes, doesn't redraw their content
https://bugs.webkit.org/show_bug.cgi?id=167581

Reviewed by Carlos Garcia Campos.

Take into account whether we are using AC or not in order to repaint an area after scrolling.

No behaviour change, no new tests.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::invalidateContentsForSlowScroll):

1:33 AM Changeset in webkit [211792] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211348 - [Threaded Compositor] Crash when detaching the CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=167547

Reviewed by Michael Catanzaro.

It seems that commitSceneState() can be called after the CoordinatedGraphicsScene has been detached.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::commitSceneState): Return early if scene has been detached.
(WebKit::CoordinatedGraphicsScene::detach): Take the render queue lock before clearing the render queue.

1:33 AM Changeset in webkit [211791] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211347 - [Threaded Compositor] Crash when deleting the compositor run loop
https://bugs.webkit.org/show_bug.cgi?id=167545

Reviewed by Michael Catanzaro.

The problem is that we are releasing the WorkQueue before the update timer that keeps a reference to the run
loop, destroyed by the WorkQueue. So, invalidate the WorkQueue in the next run loop iteration to ensure it
happens after the CompositingRunLoop destructor.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::CompositingRunLoop::~CompositingRunLoop):

1:33 AM Changeset in webkit [211790] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211346 - [GTK] ASSERTION FAILED: !m_layerTreeHost in DrawingAreaImpl::display()
https://bugs.webkit.org/show_bug.cgi?id=167548

Reviewed by Michael Catanzaro.

The problem is that non accelerated compositing forceRepaint implementation is doing a layout and then calling
display. The layout makes the drawing area enter in AC mode and display asserts that we have a layer tree
host. forceRepaint shouldn't do the layout because display already does that and it correctly handles the case
of entering AC mode during the layout. It shouldn't call setNeedsDisplay either, because that schedules a
display, but we are going to display synchronously.

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::forceRepaint):

1:33 AM Changeset in webkit [211789] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211281 - [Threaded Compositor] Stop creating the GLContext on demand the first time makeContextCurrent is called
https://bugs.webkit.org/show_bug.cgi?id=167496

Reviewed by Žan Doberšek.

This is causing problems with animations when entering AC mode on demand. What happens is that the threaded
compositor is created, then the animation is scheduled and during the first animation iteration the GLContext is
created, making the first frame of the animation quite slow. In my computer creating the GLContext takes 0.8
seconds. If the animation duration is less than the time it takes to create the GLContext, the animation ends
without iterating. This causing timeouts in the bots in tests like
animations/animation-iteration-event-destroy-renderer.html that expect webkitAnimationIteration events that
never fire.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::ThreadedCompositor): Create the GLContext right after the compositing thread is
created if we already have a native surface handle.
(WebKit::ThreadedCompositor::createGLContext): Helper to create the GLContext.
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): Create the GLContext when a native surface
handle is given.
(WebKit::ThreadedCompositor::makeContextCurrent): Deleted.
(WebKit::ThreadedCompositor::renderLayerTree): Make the context cunrrent directly here.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
1:33 AM Changeset in webkit [211788] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211205 - [Threaded Compositor] Update also the contents size when creating the threaded compositor
https://bugs.webkit.org/show_bug.cgi?id=167452

Reviewed by Žan Doberšek.

In r210954 we ensured that the threaded compositor and the viewport controller were created with the initial web
page size. If we don't update the contents size, the visible rectangle will be empty and tiles won't be created
until contentsSizeDidChange is called. It's even possible, when entering AC mode on demand, that we create the
layer tree host after the contents size changed, in which case nothing is rendered unless we resize the window.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost):

1:32 AM Changeset in webkit [211787] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r211204 - [GTK] WebProcess from WebKitGtk+ 2.15.3 SIGSEVs in WebCore::GraphicsContext3D::drawArrays(unsigned int, int, int) at Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:740
https://bugs.webkit.org/show_bug.cgi?id=167296

Reviewed by Sergio Villar Senin.

Use a VBO to pass the vertex data when using the stencil for clipping. Passing a custom array without
using an VBO is deprecated when using OpenGL >= 3.0 and a Core profile.

No behaviour change, no new tests.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::beginClip):

1:32 AM Changeset in webkit [211786] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.14/Source

Merge r211145 - [GTK] UIProcess from WebKitGtk+ 2.15.x SIGSEGVs because of X Error BadDamage in WebKit::AcceleratedBackingStoreX11::update(WebKit::LayerTreeContext const&) () at Source/WebKit2/UIProcess/gtk/AcceleratedBackingStoreX11.cpp:145
https://bugs.webkit.org/show_bug.cgi?id=165656

Reviewed by Michael Catanzaro.

Source/WebCore:

Also return the base error code from PlatformDisplayX11::supportsXDamage().

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::supportsXDamage):

  • platform/graphics/x11/PlatformDisplayX11.h:

Source/WebKit2:

We are incorrectly handling BadDamage errors because the BadDamage value we pass to the XErrorTrapper is not
the actual error code used by X11. Since XDamage is an extension, it has its own errors and a base error
code. We need to use the base error code we get when calling XDamageQueryExtension to pass the right error code
to the XErrorTrapper.

  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::AcceleratedBackingStoreX11::create): Get also the damage base error.
(WebKit::xDamageErrorCode): Helper to get the actual error code.
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11): Use xDamageErrorCode().
(WebKit::AcceleratedBackingStoreX11::update): Ditto.

1:32 AM Changeset in webkit [211785] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.14/Source

Merge r211141 - [GTK] The inspector is broken when AC support is disabled
https://bugs.webkit.org/show_bug.cgi?id=165237

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Ensure that PageOverlayController destroys its root GraphicsLayers when leaving AC. They
will be recreated if we enter AC again, avoiding a crash because the layers don't belong to
the appropriate compositor. Also, don't append the document overlay layers if we are not
in compositing mode.

No new tests added.

  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::willDetachRootLayer):

  • page/PageOverlayController.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
(WebCore::RenderLayerCompositor::detachRootLayer):

Source/WebKit2:

WebInspector must not use PageOverlays or GraphicsLayers when AC is not avaialable.

No new tests added.

  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::highlight):
(WebKit::WebInspectorClient::showPaintRect):

1:32 AM Changeset in webkit [211784] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r211084 - [GTK] Do not paint non composited content into the window when using the threaded compositor
https://bugs.webkit.org/show_bug.cgi?id=167367

Reviewed by Carlos Garcia Campos.

When using the threaded compositor we need to send the non composited content for compositing as well,
not painting it directly into the window.

No new tests.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintsIntoWindow):

1:32 AM Changeset in webkit [211783] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r210954 - [Threaded Compositor] Initialize the threaded compositor with the current size
https://bugs.webkit.org/show_bug.cgi?id=167196

Reviewed by Žan Doberšek.

We are always creating the threaded compositor with an empty size and then a sizeDidChange always happen when
the backing store state changes. This is always happening because the threaded compositor is created before the
first backing store state, but if we wanted to create it later, for example to enter/leave AC mode on demand,
the threaded compositor will not have the viewport size unless the window is resized, or sizeDidChange is called
manually when entering AC mode. Creating the threaded compositor is sync and changing the size too, so it's
better to do both things at the same time using the same sync operation.

  • Shared/CoordinatedGraphics/SimpleViewportController.cpp:

(WebKit::SimpleViewportController::SimpleViewportController): Pass an initial size to the constructor.

  • Shared/CoordinatedGraphics/SimpleViewportController.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::create): Add viewportSize and scaleFactor construction parameters,
(WebKit::ThreadedCompositor::ThreadedCompositor): Ditto. Also mark as needs resize if the given size is not empty.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Initialize the threaded compositor
with an initial viewport size and scale factor.

1:32 AM Changeset in webkit [211782] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r211083 - [Coordinated Graphics] Ensure that we're in AC mode before trying to create GraphicsLayers
https://bugs.webkit.org/show_bug.cgi?id=167365

Reviewed by Carlos Garcia Campos.

When entering AC on demand, the RenderLayerCompositor wants to create the root GraphicsLayer before the
AcceleratedDrawingArea is in AC mode. This means there's no LayerTreeHost to request the GraphicsLayerFactory,
so no layers are created. Ensure that we are in AC mode before requesting the GraphicsLayerFactory.

No behaviour change, no new tests.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::graphicsLayerFactory):

1:32 AM Changeset in webkit [211781] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r210920 - [GTK] Do not update the backing store state unnecessarily when page visibility changes
https://bugs.webkit.org/show_bug.cgi?id=167195

Reviewed by Sergio Villar Senin.

I've noticed that we are receiving UpdateBackingStoreState messages in the web process even when size and scale
factor didn't change. That's quite unfortunate because we do a lot of work unnecessarily and we tell the
threaded compositor that the size changed. This is not only a problem because it's not true, but also because
changing the size is a sync operation in the threaded compositor, so we block the compositing thread for
nothing. This is happening because the WebPageProxy notifies the drawing area that the backing store is
discardable when the page is not visible, and that always produces a new backing store state. In accelerating
compositing mode we don't even have a backing store to discard, so we should check we have something to discard
and also make sure we only generate a new backing store state if we really discarded the backing store.

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::discardBackingStoreSoon):
(WebKit::DrawingAreaProxyImpl::discardBackingStore):

1:31 AM Changeset in webkit [211780] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r210847 - [GTK] [TextureMapper] [GLES2] Draw repeated patterns for NPOT textures manually
https://bugs.webkit.org/show_bug.cgi?id=167118

Reviewed by Žan Doberšek.

When using GLES2 without the GL_OES_texture_npot extension, some implementations fail to properly
draw repeated patters from a texture (using GL_REPEAT). For those cases, perform the repetition
manually using the shader.

Covered by existent tests.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::driverSupportsNPOTTextures):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::create):

  • platform/graphics/texmap/TextureMapperShaderProgram.h:
1:00 AM Changeset in webkit [211779] by commit-queue@webkit.org
  • 7 edits in trunk

[Readable Streams API] Implement ReadableByteStreamController enqueue()
https://bugs.webkit.org/show_bug.cgi?id=167786

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-02-07
Reviewed by Youenn Fablet.

Source/WebCore:

Implemented ReadableByteStreamController enqueue() method. Also replaced
@queue by an Array instead of a dedicated queue object (said object is
useful for ReadableStreamDefaultController, but not for ReadableByteStreamController).

Added 8 tests to cover newly added code as well as code that was previously unreachable.

  • Modules/streams/ReadableByteStreamController.js:

(enqueue): Implemented as defined by spec.

  • Modules/streams/ReadableByteStreamInternals.js:

(privateInitializeReadableByteStreamController): Updated @queue.
(readableByteStreamControllerCancel): Updated @queue.
(readableByteStreamControllerError): Updated @queue.
(readableByteStreamControllerPull): Updated @queue.
(readableByteStreamControllerEnqueue): Added.
(readableByteStreamControllerEnqueueChunkToQueue): Added.

  • Modules/streams/ReadableStreamInternals.js:

(readableStreamFulfillReadRequest): Added (used at different places).

LayoutTests:

Added 8 tests to cover newly added code as well as code that was previously unreachable.

  • streams/readable-byte-stream-controller-expected.txt:
  • streams/readable-byte-stream-controller.js:
12:51 AM Changeset in webkit [211778] by Chris Dumez
  • 7 edits in trunk

Object.preventExtensions() on a Location object should throw a TypeError
https://bugs.webkit.org/show_bug.cgi?id=167917

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline web platform test now that one more check is passing.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:

Source/WebCore:

Object.preventExtensions() on a Location object should throw a TypeError:

Firefox already implements this.

No new tests, rebaselined existing tests.

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::preventExtensions):

LayoutTests:

Rebaseline test now that more checks are passing.

  • http/tests/security/preventExtensions-window-location-expected.txt:
  • http/tests/security/preventExtensions-window-location.html:
12:17 AM Changeset in webkit [211777] by Yusuke Suzuki
  • 8 edits
    4 adds in trunk

Web Inspector: allow import() inside the inspector
https://bugs.webkit.org/show_bug.cgi?id=167457

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

We relax import module hook to accept null SourceOrigin.
Such a script can be evaluated from the inspector console.

  • jsc.cpp:

(GlobalObject::moduleLoaderImportModule):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncImportModule):

Source/WebCore:

When evaluating import("..."), we need the caller's context to resolve
the module specifier correctly. For example, if import("./cocoa.js") is
evaluated in the script "drinks/hot.js", this module name is resolved to
"drinks/cocoa.js". If the same import operator is evaluated in the script
"menu/all.js", the module specifier becomes "menu/cocoa.js".

Previously we reject the import operator if the caller does not have such
a context. These context is SourceOrigin and its ScriptFetcher. While they
are offered in the script tag and other code evaluations, the inspector
console does not offer that. These class are offered in the WebCore side
and we should not touch these classes in the JSC's inspector code.

Now we relax the above restriction. If the above caller information is not
offered, we fallback to the default one. In the web page, we use the page's
URL as the caller's source origin. This allows us to evaluate the import
operator in the inspector console.

And as of r167698, the console recognizes await import("...") form. We use
this to test this import() in the console functionality.

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::importModule):

LayoutTests:

  • inspector/controller/resources/cappuccino.js: Added.
  • inspector/controller/resources/cocoa.js: Added.
  • inspector/controller/resources/drink.js: Added.
  • inspector/controller/runtime-controller-expected.txt:
  • inspector/controller/runtime-controller.html:
12:14 AM Changeset in webkit [211776] by mmaxfield@apple.com
  • 2 edits
    2 moves in trunk/Source/WebCore

Move platform-independent parts of ComplexTextController out of mac/ subfolder
https://bugs.webkit.org/show_bug.cgi?id=167922

Reviewed by Jon Lee.

Just a mechanical git mv, and updating the Xcode projects.

No new tests because there is no behavior change.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ComplexTextController.cpp: Renamed from Source/WebCore/platform/graphics/mac/ComplexTextController.cpp.
  • platform/graphics/ComplexTextController.h: Renamed from Source/WebCore/platform/graphics/mac/ComplexTextController.h.

Feb 6, 2017:

10:45 PM Changeset in webkit [211775] by Carlos Garcia Campos
  • 6 edits
    2 adds in trunk

Overlay scrolling with iframe-s broken
https://bugs.webkit.org/show_bug.cgi?id=165056

Reviewed by Antonio Gomes.

Source/WebCore:

Mouse press events for overlay scrollbars are ignored if there's a subframe under the scrollbar. This doesn't
happen with normal scrollbars, because the subframe is not really under the scrollbar, so events are always
correctly passed to the scrollbar. With overlay scrollbars, the hit test detects the scrollbar, but events are
always passed first to the subframe. Scrollbars are correctly updated on hover though, because
handleMouseMoveEvent checks the presence of scrollbars before checking for subframes and move events are
actually passed to both, the scrollbar and the subframe. Overlay scrollbars should always take precedence over
subframes to handle mouse press events, so we should check first if mouse is over a scrollbar and never pass the
event to a subframe in that case. Another problem is that the cursor is not updated either when the overlay
scrollbar is hovered and there's a subframe. This is because in handleMouseMoveEvent we pass the event to both
the scrollbar and subframe but we never update the cursor when a suframe was found. So, here again we need to make
an exception for scrollbars and upate the cursor when mouse is over the scrollbar even if a subframe was found.

Test: fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent): Move the scrollbar check before the subframe check.
(WebCore::EventHandler::handleMouseMoveEvent): Update the cursor when hovering a scrollbar even if a subframe
was found.
(WebCore::EventHandler::updateLastScrollbarUnderMouse): Use an enum instead of a boolean for setLast parameter.

  • page/EventHandler.h:

LayoutTests:

Add a new test to check that clicking on an overlay scrollbar works even it's over a subframe.

  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt: Added.
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac-wk1/TestExpectations:
10:34 PM Changeset in webkit [211774] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] jhbuild fails: mesa-11.0.6.tar.xz: 404 Not Found
https://bugs.webkit.org/show_bug.cgi?id=167916

Patch by Fujii Hironori <Fujii Hironori> on 2017-02-06
Reviewed by Carlos Garcia Campos.

URL of mesa-11.0.6.tar.xz has been moved.

  • gtk/jhbuild.modules: Fix the module path.
10:12 PM Changeset in webkit [211773] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[Soup] Long resources loaded by custom protocols sometimes never finish loading
https://bugs.webkit.org/show_bug.cgi?id=167890

Reviewed by Michael Catanzaro.

It's another bug that has appeared in WebKitSoupRequestInputStream after moving the custom protocols handling to
the main thread. The problem is that webkitSoupRequestInputStreamPendingReadAsyncComplete invalidates
pendingAsyncRead after calling webkitSoupRequestInputStreamReadAsyncResultComplete, but in some cases
webkitSoupRequestInputStreamReadAsyncResultComplete completes the task in the same run loop iteration. In that
case webkitSoupRequestInputStreamReadAsync is called again creating a new AsyncReadData that is destroyed right
after webkitSoupRequestInputStreamReadAsyncResultComplete returns.

  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(AsyncReadData::AsyncReadData): Use an rvalue reference for the task.
(webkitSoupRequestInputStreamPendingReadAsyncComplete): Use WTFMove to ensure pendingAsyncRead is cleared before
webkitSoupRequestInputStreamReadAsyncResultComplete is called, and continue processing pending requests if there
are new ones after webkitSoupRequestInputStreamReadAsyncResultComplete.
(webkitSoupRequestInputStreamReadAsync): Use WTFMove to transfer the task to AsyncReadData.
(webkitSoupRequestInputStreamDidFailWithError): Use WTFMove to ensure pendingAsyncRead is cleared.

8:47 PM Changeset in webkit [211772] by Chris Dumez
  • 5 edits in trunk

Symbols exposed on cross-origin Window / Location objects should be configurable
https://bugs.webkit.org/show_bug.cgi?id=167920

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline web platform test now that more checks are passing.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:

Source/WebCore:

Symbols exposed on cross-origin Window / Location objects should be configurable:

Firefox behaves as per specification.

No new tests, rebaselined existing test.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::getOwnPropertySlotDelegate):

8:27 PM Changeset in webkit [211771] by commit-queue@webkit.org
  • 11 edits
    1 copy
    1 add in trunk/Source

Web Inspector: Do not use RunLoop when dispatching inspector GC event
https://bugs.webkit.org/show_bug.cgi?id=167683
<rdar://problem/30167791>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-06
Reviewed by Brian Burg.

Source/JavaScriptCore:

Move the RunLoop deferred implementation to WebCore. It is not needed
for JSContext inspection, and in JSContext inspection we are not
guarenteed a RunLoop to defer to.

  • inspector/agents/InspectorHeapAgent.h:
  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::InspectorHeapAgent):
(Inspector::InspectorHeapAgent::~InspectorHeapAgent):
(Inspector::InspectorHeapAgent::disable):
(Inspector::InspectorHeapAgent::didGarbageCollect):
(Inspector::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask): Deleted.
(Inspector::SendGarbageCollectionEventsTask::addGarbageCollection): Deleted.
(Inspector::SendGarbageCollectionEventsTask::reset): Deleted.
(Inspector::SendGarbageCollectionEventsTask::timerFired): Deleted.

(Inspector::InspectorHeapAgent::dispatchGarbageCollectedEvent):
Make a virtual method so that WebCore implementations of this agent can choose
to dispatch this event asynchronously.

  • inspector/agents/InspectorScriptProfilerAgent.cpp:

Remove unnecessary RunLoop include.

Source/WebCore:

Covered by existing tests.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorAllInOne.cpp:

Add new file.

  • inspector/PageHeapAgent.cpp:

(WebCore::PageHeapAgent::PageHeapAgent):
(WebCore::PageHeapAgent::enable):
(WebCore::PageHeapAgent::disable):

  • inspector/PageHeapAgent.h:

Extend WebHeapAgent.

  • inspector/WorkerInspectorController.cpp:

(WebCore::WorkerInspectorController::WorkerInspectorController):
Use WebHeapAgent.

  • inspector/WebHeapAgent.cpp: Added.

(WebCore::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask):
(WebCore::SendGarbageCollectionEventsTask::addGarbageCollection):
(WebCore::SendGarbageCollectionEventsTask::reset):
(WebCore::SendGarbageCollectionEventsTask::timerFired):
(WebCore::WebHeapAgent::WebHeapAgent):
(WebCore::WebHeapAgent::~WebHeapAgent):
(WebCore::WebHeapAgent::disable):
(WebCore::WebHeapAgent::dispatchGarbageCollectedEvent):
(WebCore::WebHeapAgent::dispatchGarbageCollectionEventsAfterDelay):

  • inspector/WebHeapAgent.h:

Move the defered event dispatch from InspectorHeapAgent here where a RunLoop is guarenteed.

8:23 PM Changeset in webkit [211770] by mitz@apple.com
  • 4 edits in trunk/Source/WebKit2

[iOS] -[WKWebView becomeFirstResponder] and -[WKWebView resignFirstResponder] don’t get called when non-programmatic first responder changes happen
https://bugs.webkit.org/show_bug.cgi?id=167898

Reviewed by Tim Horton.

Made WKContentView’s -becomeFirstResponder and -resignFirstResponder forward to the
WKWebView, giving subclasses an opportunity to override these methods. Changed the WKWebView
implementations to call back into WKContentView methods that actually do the work.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView becomeFirstResponder]): If the current content view is a WKContentView, call

-becomeFirstResponderForWebView. Added a check that the content view has a superview to
get the right behavior when this is called during the transition from not having to having
a custom content view.

(-[WKWebView canBecomeFirstResponder]): If the current content view is a WKContentView, call

-canBecomeFirstResponderForWebView.

(-[WKWebView resignFirstResponder]): If the current content view is a WKContentView, call

-resignFirstResponderForWebView.

(-[WKWebView _setHasCustomContentView:loadedMIMEType:]): If the new content view is a

WKContentView, use -canBecomeFirstResponderForWebView.

  • UIProcess/ios/WKContentViewInteraction.h: Added _becomingFirstResponder ivar.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canBecomeFirstResponder]): Return _becomingFirstResponder. Normally this is

NO, so code that hit-tests then walks up the view hierarchy to select a first responder
will continue to the WKWebView. But we need to return YES around the call to super’s
-becomeFirstResponder in -becomeFirstResponderForWebView.

(-[WKContentView canBecomeFirstResponderForWebView]): Moved the old

-becomeFirstResponderForWebView implementation here.

(-[WKContentView becomeFirstResponder]): Forward to the WKWebView.
(-[WKContentView becomeFirstResponderForWebView]): Moved the old -becomeFirstResponder

implementation here, setting _becomingFirstResponder to YES around the call to super.

(-[WKContentView resignFirstResponder]): Forward to the WKWebView.
(-[WKContentView resignFirstResponderForWebView]): Moved the old -resignFirstResponder

implementation here.

8:19 PM Changeset in webkit [211769] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Static Analyzer: Address some leaks in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=167897

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-06
Reviewed by Alexey Proskuryakov.

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController sharingService:transitionImageForShareItem:contentRect:]):

  • MiniBrowser/mac/ExtensionManagerWindowController.m:

(-[ExtensionManagerWindowController add:]):
(-[ExtensionManagerWindowController remove:]):

  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]):
(-[SettingsController togglePerWindowWebProcessesDisabled:]):
Address obvious leaks caught by the static analyzer.

6:40 PM Changeset in webkit [211768] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ExtendedColor leaks seen on leaks bot
https://bugs.webkit.org/show_bug.cgi?id=167912

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-06
Reviewed by Alexey Proskuryakov.

  • platform/graphics/Color.cpp:

(WebCore::Color::operator=):
Before overwriting m_colorData, we must deref the extended color inside it.

6:19 PM Changeset in webkit [211767] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Remove assertion in WebViewImpl::performKeyEquivalent()

Reviewed by Wenson Hsieh.

The assertion ASSERT(event == [NSApp currentEvent]) fires when using certain key combinations
in MiniBrowser's location field (e.g. Option-Shift-Arrow to select). The assertion is not correct,
so remove it.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::performKeyEquivalent):

6:19 PM Changeset in webkit [211766] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Re-land r210095 (avoid a tile revalidation on scale change)
https://bugs.webkit.org/show_bug.cgi?id=167866

Reviewed by Tim Horton.

r210095 was rolled out in r211230 but now that all TileControllers unparent
offscreen tiles, we can roll it back it.

Also add more Tiling logging.

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::validationPolicyAsString):
(WebCore::TileGrid::setScale):
(WebCore::TileGrid::prepopulateRect):
(WebCore::TileGrid::revalidateTiles):
(WebCore::TileGrid::ensureTilesForRect):

6:14 PM Changeset in webkit [211765] by mmaxfield@apple.com
  • 9 edits in trunk

Migrate ComplexTextController to use platform-independent types
https://bugs.webkit.org/show_bug.cgi?id=167833

Reviewed by Brent Fulgham.

Source/WebCore:

ComplexTextController will eventually be used on all ports to perform complex text layout.
This is a mechanical patch which migrates the shared parts of ComplexTextController away from
using CoreGraphics and CoreFoundation types in favor of WebCore/platform types. Eventually,
ComplexTextController will get moved to PAL but there is a layering violation (TextLayout) to
fix first.

No new tests because there is no behavior change.

  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBufferAdvance::GlyphBufferAdvance):

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::offsetForPosition):
(WebCore::advanceByCombiningCharacterSequence):
(WebCore::ComplexTextController::ComplexTextRun::indexAt):
(WebCore::ComplexTextController::ComplexTextRun::setIsNonMonotonic):
(WebCore::ComplexTextController::advance):
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

  • platform/graphics/mac/ComplexTextController.h:

(WebCore::ComplexTextController::ComplexTextRun::create):
(WebCore::ComplexTextController::ComplexTextRun::stringLength):
(WebCore::ComplexTextController::ComplexTextRun::indexBegin):
(WebCore::ComplexTextController::ComplexTextRun::indexEnd):
(WebCore::ComplexTextController::ComplexTextRun::endOffsetAt):
(WebCore::ComplexTextController::ComplexTextRun::glyphs):
(WebCore::ComplexTextController::ComplexTextRun::growInitialAdvanceHorizontally):
(WebCore::ComplexTextController::ComplexTextRun::initialAdvance):
(WebCore::ComplexTextController::ComplexTextRun::baseAdvances):
(WebCore::ComplexTextController::ComplexTextRun::glyphOrigins):
(WebCore::ComplexTextController::glyphOrigin):
(WebCore::ComplexTextController::ComplexTextRun::createForTesting): Deleted.

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(SOFT_LINK):
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

Tools:

Migrate tests away from platform-dependent types.

  • TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:

(TestWebKitAPI::TEST_F):

LayoutTests:

Rebaseline tiny rounding result.

  • platform/mac/fast/text/complex-text-opacity-expected.txt:
6:08 PM Changeset in webkit [211764] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

[iOS WK2] Keep the tiled scrolling indicator on-screen when pinching
https://bugs.webkit.org/show_bug.cgi?id=167915

Reviewed by Tim Horton.

Clamp the location to the larger of the location of .unobscuredContentRect() and 0,0.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):

5:48 PM Changeset in webkit [211763] by Brent Fulgham
  • 6 edits in trunk

Correct File Path Handling in SecurityOrigin and FileSystem
https://bugs.webkit.org/show_bug.cgi?id=167894
<rdar://problem/30380080>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Roll out the URL decoding being done in the FileSystem class (added in Bug 167894), and instead ensure that
SecurityOrigin properly handles file URLs, and only passes valid file strings to the FileSystem interface.

Tested by FileSystemTests and SecurityOriginTests in TestWebKitAPI.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::SecurityOrigin): Initialize m_filePath using the url's fileSystemPath, not
the %-encoded 'path' property.
(WebCore::SecurityOrigin::canDisplay): Pass the 'fileSystemPath' to 'filesHaveSameVolume', rather than
the %-encoded 'path' property.

  • page/SecurityOrigin.h:
  • platform/FileSystem.cpp:

(WebCore::filesHaveSameVolume): Do not use 'decodeURLEscapeSequences' in 'filesHaveSameVolume'.

Tools:

  • TestWebKitAPI/Tests/WebCore/FileSystem.cpp: Don't encode the temporary files,

and perform same-volume checks using filesystem-compatible paths.

  • TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp: Create SecurityOrigins from

filesystem paths, and perform validation of same-volume checks.
(TestWebKitAPI::SecurityOriginTest::tempFilePath): Added.
(TestWebKitAPI::SecurityOriginTest::spaceContainingFilePath): Added.
(TestWebKitAPI::SecurityOriginTest::bangContainingFilePath): Added.
(TestWebKitAPI::SecurityOriginTest::quoteContainingFilePath): Added.

5:39 PM Changeset in webkit [211762] by aestes@apple.com
  • 4 edits
    1 copy in trunk/Source/WebCore

[Cocoa] Split FileSystemMac.mm into Mac and Cocoa parts
https://bugs.webkit.org/show_bug.cgi?id=167908

Reviewed by Sam Weinig.

Kept the Mac-only functions in FileSystemMac.mm and moved the rest into FileSystemCocoa.mm.

  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/FileSystemCocoa.mm: Copied from Source/WebCore/platform/mac/FileSystemMac.mm.
  • platform/mac/FileSystemMac.mm:

(-[WebFileManagerDelegate fileManager:shouldProceedAfterError:movingItemAtURL:toURL:]): Moved to FileSystemCocoa.mm.
(WebCore::homeDirectoryPath): Ditto.
(WebCore::openTemporaryFile): Ditto.
(WebCore::moveFile): Ditto.
(WebCore::getVolumeFreeSpace): Ditto.

5:33 PM Changeset in webkit [211761] by eric.carlson@apple.com
  • 5 edits in trunk/Source/WebCore

[MediaStream Mac] Remove some unused code
https://bugs.webkit.org/show_bug.cgi?id=167913

Reviewed by Jer Noble.

No new tests, no functional change.

  • platform/mediastream/CaptureDeviceManager.h:

(WebCore::CaptureSessionInfo::~CaptureSessionInfo): Deleted.
(WebCore::CaptureSessionInfo::supportsVideoSize): Deleted.
(WebCore::CaptureSessionInfo::bestSessionPresetForVideoDimensions): Deleted.

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

(WebCore::AVCaptureDeviceManager::refreshCaptureDeviceList):
(WebCore::AVCaptureSessionInfo::AVCaptureSessionInfo): Deleted.
(WebCore::AVCaptureSessionInfo::supportsVideoSize): Deleted.
(WebCore::AVCaptureSessionInfo::bestSessionPresetForVideoDimensions): Deleted.

  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::AVMediaCaptureSource):

5:20 PM Changeset in webkit [211760] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Tiled scrolling indicator gets doubled up on navigation
https://bugs.webkit.org/show_bug.cgi?id=167909

Reviewed by Tim Horton.

TiledCoreAnimationDrawingArea::updateDebugInfoLayer() would parent a new m_debugInfoLayer
in m_hostingLayer without removing the old one, causing the old tiled scrolling indicator layer
hierarchy to get left in the layer tree.

Also a couple of nullptr/0 -> nil.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
(WebKit::TiledCoreAnimationDrawingArea::updateDebugInfoLayer):

4:29 PM Changeset in webkit [211759] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.25

Tag Safari-603.1.25.

4:25 PM Changeset in webkit [211758] by commit-queue@webkit.org
  • 10 edits
    2 adds in trunk

Allow some schemes to opt-out of CORS
https://bugs.webkit.org/show_bug.cgi?id=167795

Patch by Youenn Fablet <youennf@gmail.com> on 2017-02-06
Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/security/bypassing-cors-checks-for-extension-urls.html

Adding the possibility to opt out of CORS for DocumentThreadableLoader clients (fetch and XHR).
This is made specific to the case of user extension URLs for pages running user scripts.
Introducing a boolean flag in Page for that purpose.
Introducing a helper routine in SchemeRegistry to centralize the various user script extension schemes.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):

  • page/Frame.cpp:

(WebCore::Frame::injectUserScripts):

  • page/Page.h:

(WebCore::Page::setAsRunningUserScripts):
(WebCore::Page::isRunningUserScripts):

  • platform/SchemeRegistry.cpp:

(WebCore::SchemeRegistry::isUserExtensionScheme):

  • platform/SchemeRegistry.h:
  • testing/Internals.cpp:

(WebCore::Internals::setAsRunningUserScripts):

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

LayoutTests:

  • http/tests/security/bypassing-cors-checks-for-extension-urls-expected.txt: Added.
  • http/tests/security/bypassing-cors-checks-for-extension-urls.html: Added.
3:56 PM Changeset in webkit [211757] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

More build fixes after r211751
https://bugs.webkit.org/show_bug.cgi?id=166998

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup):
(WebKit::NetworkDataTaskSoup::authenticate):
(WebKit::NetworkDataTaskSoup::continueAuthenticate):
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
Use the correct partition for credentials.

3:50 PM Changeset in webkit [211756] by Chris Dumez
  • 11 edits in trunk

Align OwnPropertyKeys? with the HTML specification for cross-origin Window / Location objects
https://bugs.webkit.org/show_bug.cgi?id=167647
<rdar://problem/30339489>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline web platform test now that more checks are passing.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:

Source/WebCore:

Align OwnPropertyKeys? with the HTML specification for cross-origin Window / Location objects:

In particular, the following changes were made:

  • Location:
    • We now return the following symbols as well: @@toStringTag, @@hasInstance, @@isConcatSpreadable as per [2].
  • Window:
    • We now return the following symbols as well: @@toStringTag, @@hasInstance, @@isConcatSpreadable as per [2].
    • We now return the indices of the child browsing contexts as per [1].
    • We now return the names of the child browsing contexts as per [3].

No new tests, updated / rebaselined existing tests.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
Index properties should be configurable as per:

(WebCore::inScope):
(WebCore::addScopedChildrenNames):
(WebCore::addCrossOriginPropertyNames):
(WebCore::addScopedChildrenIndexes):
(WebCore::addCrossOriginOwnPropertyNames):
(WebCore::JSDOMWindow::getOwnPropertyNames):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::addCrossOriginPropertyNames):
(WebCore::addCrossOriginOwnPropertyNames):
(WebCore::JSLocation::getOwnPropertyNames):

LayoutTests:

Extend test coverage for OwnPropertyKeys? for cross-origin Window / Location objects.

  • http/tests/security/cross-frame-access-enumeration-expected.txt:
  • http/tests/security/cross-frame-access-enumeration.html:
  • http/tests/security/resources/cross-frame-iframe-for-enumeration-test.html:
  • js/dom/getOwnPropertyDescriptor-expected.txt:
  • js/resources/getOwnPropertyDescriptor.js:
3:47 PM Changeset in webkit [211755] by yoav@yoav.ws
  • 10 edits in trunk

http/tests/preload/dynamic_removing_preload.html fails to test what it should
https://bugs.webkit.org/show_bug.cgi?id=167792

Reviewed by Ryosuke Niwa.

Source/WebCore:

Cancel the link preload resource load when the link element is removed from the DOM.

No new tests, but unskipping an existing test: http/tests/preload/dynamic_removing_preload.html

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::removedFrom): Call m_linkLoader.cancelLoad().

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::cancelLoad): Clear m_preloadResourceClient.

  • loader/LinkLoader.h:
  • loader/LinkPreloadResourceClients.h:

(WebCore::LinkPreloadResourceClient::clearResource): Call m_resource->cancelLoad().

  • loader/SubresourceLoader.cpp:

(WebCore::LinkPreloadResourceClient::didFinishLoading): Change ASSERT to exempt cancelled loads.

LayoutTests:

  • TestExpectations: Unskip dynamic_removing_preload.html
  • http/tests/preload/dynamic_removing_preload-expected.txt:
  • http/tests/preload/dynamic_removing_preload.html: Switch test to use ResourceTiming.
3:47 PM Changeset in webkit [211754] by achristensen@apple.com
  • 5 edits in trunk/Source

More build fixes after r211751
https://bugs.webkit.org/show_bug.cgi?id=166998

Source/WebCore:

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::applyAuthenticationToRequest):

  • platform/network/soup/SocketStreamHandleImplSoup.cpp:

(WebCore::SocketStreamHandleImpl::create):

Source/WebKit/win:

  • WebDownloadCFNet.cpp:

(WebDownload::didReceiveAuthenticationChallenge):

3:27 PM Changeset in webkit [211753] by achristensen@apple.com
  • 5 edits in trunk/Source/WebCore

Fix non-cocoa builds after r211751.
https://bugs.webkit.org/show_bug.cgi?id=166998

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication):
(WebCore::ResourceHandle::receivedCredential):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::ResourceHandleManager::applyAuthenticationToRequest):

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::applyAuthenticationToRequest):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):

3:02 PM Changeset in webkit [211752] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

Update sandbox to allow CoreMedia to perform custom media loading.
https://bugs.webkit.org/show_bug.cgi?id=167700

Reviewed by Alexey Proskuryakov.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:45 PM Changeset in webkit [211751] by achristensen@apple.com
  • 25 edits
    14 adds in trunk

credentials should be partitioned by main document domain
https://bugs.webkit.org/show_bug.cgi?id=166998
Source/WebCore:

rdar://problem/22901123

Reviewed by Brady Eidson.

Covered by http/tests/security/credentials-iframes.html
Also added http/tests/security/credentials-from-different-domains.html to verify existing behavior without iframes.

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::connect):

  • dom/Document.h:
  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::domainForCachePartition):
Return emptyString instead of a null String because it is used as a key in a HashMap, and hashing null strings dereferences null.

  • page/SocketProvider.cpp:

(WebCore::SocketProvider::createSocketStreamHandle):

  • page/SocketProvider.h:
  • platform/network/CredentialStorage.cpp:

(WebCore::CredentialStorage::set):
(WebCore::CredentialStorage::get):
(WebCore::CredentialStorage::remove):

  • platform/network/CredentialStorage.h:

Partition credentials.

  • platform/network/ResourceHandleInternal.h:

(WebCore::ResourceHandleInternal::ResourceHandleInternal):

  • platform/network/cf/SocketStreamHandleImpl.h:

(WebCore::SocketStreamHandleImpl::create):

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::getStoredCONNECTProxyCredentials):

  • platform/network/curl/SocketStreamHandleImpl.h:

(WebCore::SocketStreamHandleImpl::create):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication):
(WebCore::ResourceHandle::receivedCredential):

  • platform/network/soup/SocketStreamHandleImpl.h:

Source/WebKit/mac:

rdar://problem/22901123

Reviewed by Brady Eidson.

  • Misc/WebDownload.mm:
  • Plugins/WebBaseNetscapePluginView.mm:

(WebKit::getAuthenticationInfo):
Don't use partitioned credentials for WebKit1 plugins or downloads.
Downloads should be authenticated before becoming a download anyways.

Source/WebKit2:

rdar://problem/22901123

Reviewed by Brady Eidson.

  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::NetworkDataTask):

  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTask::partition):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCocoa::tryPasswordBasedAuthentication):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

  • WebProcess/Network/WebSocketProvider.cpp:

(WebKit::WebSocketProvider::createSocketStreamHandle):

  • WebProcess/Network/WebSocketProvider.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::getAuthenticationInfo):

LayoutTests:

<rdar://problem/22901123>

Reviewed by Brady Eidson.

  • http/tests/security/credentials-from-different-domains-expected.txt: Added.
  • http/tests/security/credentials-from-different-domains.html: Added.
  • http/tests/security/credentials-iframes-expected.txt: Added.
  • http/tests/security/credentials-iframes.html: Added.
  • http/tests/security/resources/cors-basic-auth.php: Added.
  • http/tests/security/resources/credentials-from-different-domains-continued-1.html: Added.
  • http/tests/security/resources/credentials-from-different-domains-continued-2.html: Added.
  • http/tests/security/resources/credentials-iframes-continued.html: Added.
  • http/tests/security/resources/credentials-iframes-different-domain.html: Added.
  • http/tests/security/resources/credentials-iframes-same-domain.html: Added.
  • platform/mac-wk1/http: Added.
  • platform/mac-wk1/http/security: Added.
  • platform/mac-wk1/http/security/credentials-iframes-expected.txt: Added.

DumpRenderTree prints out the entire URL of the authentication challenge.
WebKitTestRunner only prints out the host and port.
Both results show the fact that no credentials were sent on the second request.

2:33 PM Changeset in webkit [211750] by Simon Fraser
  • 8 edits in trunk

Safari pages are blank sometimes (missing tiles)
https://bugs.webkit.org/show_bug.cgi?id=167904

Reviewed by Tim Horton.

Source/WebCore:

After r211683 we failed to udpate the "inWindow" flag on the page tiled layer, because
usingTiledBacking() on GraphicsLayer confusingly was false for the page tiled layer.

Fix by removing usingTiledBacking() entirely, and checking for tiledBacking(),
looking at the layer type when necessary.

Tested by tiled-drawing/tiled-backing-in-window.html

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::GraphicsLayer):
(WebCore::GraphicsLayer::setIsInWindowIncludingDescendants): This is the bug fix.
(WebCore::GraphicsLayer::getDebugBorderInfo):
(WebCore::GraphicsLayer::dumpProperties):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::usingTiledBacking): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::changeLayerTypeTo):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::willDestroyLayer):
(WebCore::RenderLayerBacking::compositingLayerType):

  • rendering/RenderLayerCompositor.cpp: A bit more logging.

(WebCore::RenderLayerCompositor::setIsInWindow):
(WebCore::RenderLayerCompositor::attachRootLayer):

LayoutTests:

New result; this test detected the bug.

  • tiled-drawing/tiled-backing-in-window-expected.txt:
2:20 PM Changeset in webkit [211749] by achristensen@apple.com
  • 1 edit
    1 delete in trunk/Source/ThirdParty/libwebrtc

[WebRTC] Remove unneeded build directory accidentally checked in with libwebrtc source.

Reviewed by Youenn Fablet.

  • third_party/usrsctp/build: Removed.
1:58 PM Changeset in webkit [211748] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Change the CSS animation timer a to be little more than 60fps to ensure we hit that frame rate
https://bugs.webkit.org/show_bug.cgi?id=167825

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

The system timer fires little bit slower than 60fps. This might cause the
frame to be missed and hence it can lower the frame rate significantly. The
rAF timer was set to 15ms for the same reason. So set the repeated CSS
animation timer also to 15ms.

  • page/animation/CSSAnimationController.cpp:
1:49 PM Changeset in webkit [211747] by andersca@apple.com
  • 12 edits
    1 add in trunk/Source/WebKit2

Crash child processes if they receive an invalid message
https://bugs.webkit.org/show_bug.cgi?id=167900

Reviewed by Dan Bernstein.

Previously, some processes would try to gracefully exit, others would just drop messages leading to weird bugs.
Instead, set app-specific crash information to the message that failed to be decoded, and then crash.

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::didReceiveInvalidMessage): Deleted.

  • DatabaseProcess/DatabaseProcess.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didReceiveInvalidMessage): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::didReceiveInvalidMessage): Deleted.

  • PluginProcess/PluginProcess.h:
  • Shared/ChildProcess.h:
  • Shared/Cocoa/ChildProcessCocoa.mm: Added.

(WebKit::ChildProcess::didReceiveInvalidMessage):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didReceiveInvalidMessage): Deleted.

  • WebProcess/WebProcess.h:
1:49 PM Changeset in webkit [211746] by jer.noble@apple.com
  • 14 edits
    10 adds in trunk

Playback stalls when a SourceBuffer append causes frame eviction
https://bugs.webkit.org/show_bug.cgi?id=167834

Reviewed by Eric Carlson.

PerformanceTests:

Add an in-page performance test measuring the amount of time required
to append a large amount of media data to a SourceBuffer, and then to
completely remove that data 30s at a time.

Add a microbenchmark for MediaTime which measures the amount of time
required to create a 1M entry std::map and traverse the map 1M times.

  • Media/MSERemoveCodedFrames.html: Added.
  • Media/media-source-loader.js:

(MediaSourceLoader.prototype.get duration):

  • MediaTime/Configurations/Base.xcconfig: Added.
  • MediaTime/Configurations/DebugRelease.xcconfig: Added.
  • MediaTime/Makefile: Added.
  • MediaTime/MediaTime.xcodeproj/project.pbxproj: Added.
  • MediaTime/main.cpp: Added.

(performTest):
(test):
(main):

  • Skipped:

Source/WebCore:

Test: PerformanceTests/Media/MSERemoveCodedFrames.html

Optimize searching through SampleMap by presentationTime.

Many of the methods exposed by PresentationOrderSampleMap used the bare std::equal_range,
lower_bound, or upper_bound methods. Unlike those methods exposed on std::map, the bare
search methods perform a linear O(n) search, rather than a the binary O(log(n)) search used
by std::map. Rewrite those methods using the bare methods in terms of the std::map search
methods.

Drive-by fix: rename findSampleOnOrAfterPresentationTime to
findSampleStartingOnOrAfterPresentationTime to make the behavior of the method more
explicit.

  • Modules/mediasource/SampleMap.cpp:

(WebCore::PresentationOrderSampleMap::findSampleContainingPresentationTime):
(WebCore::PresentationOrderSampleMap::findSampleStartingOnOrAfterPresentationTime):
(WebCore::PresentationOrderSampleMap::reverseFindSampleBeforePresentationTime):
(WebCore::DecodeOrderSampleMap::findSyncSampleAfterPresentationTime):
(WebCore::PresentationOrderSampleMap::findSamplesBetweenPresentationTimes):
(WebCore::PresentationOrderSampleMap::findSamplesWithinPresentationRange):
(WebCore::PresentationOrderSampleMap::findSampleOnOrAfterPresentationTime): Deleted.

  • Modules/mediasource/SampleMap.h:

(WebCore::PresentationOrderSampleMap::begin):
(WebCore::PresentationOrderSampleMap::end):
(WebCore::PresentationOrderSampleMap::rbegin):
(WebCore::PresentationOrderSampleMap::rend):
(WebCore::DecodeOrderSampleMap::begin):
(WebCore::DecodeOrderSampleMap::end):
(WebCore::DecodeOrderSampleMap::rbegin):
(WebCore::DecodeOrderSampleMap::rend):
(WebCore::SampleMap::SampleMap):
(WebCore::SampleMap::sizeInBytes):
(WebCore::SampleMap::decodeOrder):
(WebCore::SampleMap::presentationOrder):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::removeSamplesFromTrackBuffer):
(WebCore::SourceBuffer::removeCodedFrames):
(WebCore::SourceBuffer::reenqueueMediaForTime):

  • WebCore.xcodeproj/project.pbxproj:

Source/WTF:

Optimize the MediaTime class; specifically the compare() method. The class only
needs 6 bits to store the TimeFlags, so make that a uint8_t rather than uint32_t.
The implementation is slightly simpler if the TimeScale is unsigned, so make that
a uint32_t rather than int32_t. Inline the comparison operators. Optimize the equality
comparison by bitwise-and'ing the flags together and masking the result. Optimize for
common comparison scenarios (equal timeScales, equal timeValues(), etc.). Attempt the
mathematically simpler simpler method for comparing ratios, and only fall back to the
complex method if the results of multiplying the timeScale by the timeValue overflows.

  • wtf/MediaTime.cpp:

(WTF::greatestCommonDivisor):
(WTF::leastCommonMultiple):
(WTF::signum):
(WTF::MediaTime::MediaTime):
(WTF::MediaTime::createWithFloat):
(WTF::MediaTime::createWithDouble):
(WTF::MediaTime::operator+):
(WTF::MediaTime::operator-):
(WTF::MediaTime::operator!):
(WTF::MediaTime::operator bool):
(WTF::MediaTime::compare):
(WTF::MediaTime::setTimeScale):
(WTF::abs):
(WTF::MediaTime::operator<): Deleted.
(WTF::MediaTime::operator>): Deleted.
(WTF::MediaTime::operator!=): Deleted.
(WTF::MediaTime::operator==): Deleted.
(WTF::MediaTime::operator>=): Deleted.
(WTF::MediaTime::operator<=): Deleted.

  • wtf/MediaTime.h:

Tools:

Add new correctness tests for the Webcore::SampleMap class. Add additional subtests
for the WTF::MediaTime class.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/MediaTime.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/SampleMap.cpp: Added.

(WTF::operator<<):
(TestWebKitAPI::TestSample::create):
(TestWebKitAPI::TestSample::TestSample):
(TestWebKitAPI::TEST_F):

12:49 PM Changeset in webkit [211745] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip media/audio-dealloc-crash.html on ios-simulator.

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
12:18 PM Changeset in webkit [211744] by Chris Dumez
  • 8 edits
    3 deletes in trunk/Source/WebKit2

[WK2] Drop legacy WKBundlePageDiagnosticLoggingClient API
https://bugs.webkit.org/show_bug.cgi?id=167883
<rdar://problem/30376695>

Reviewed by Sam Weinig.

Drop legacy WKBundlePageDiagnosticLoggingClient API as I am not aware of any remaining client.
All clients have now switched to the equivalent UIProcess-side API.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageSetDiagnosticLoggingClient): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageDiagnosticLoggingClient.h: Removed.
  • WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp: Removed.
  • WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h: Removed.
  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::close):
(WebKit::WebPage::initializeInjectedBundleDiagnosticLoggingClient): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::injectedBundleUIClient):
(WebKit::WebPage::injectedBundleDiagnosticLoggingClient): Deleted.

12:06 PM Changeset in webkit [211743] by sbarati@apple.com
  • 3 edits in trunk/PerformanceTests

Make ARES-6 work from the CLI again
https://bugs.webkit.org/show_bug.cgi?id=167895

Reviewed by Michael Saboff.

  • ARES-6/driver.js:

(Driver.prototype.readyTrigger):
(Driver.prototype.disableTrigger):

  • ARES-6/stats.js:

(Stats.prototype.toString.span.span):
(Stats.prototype.toString.return.span):
(Stats.prototype.toString):

11:46 AM Changeset in webkit [211742] by Ryan Haddad
  • 2 edits in trunk/Tools

Change capitalization in platform name after r211735.

Unreviewed dashboard fix.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

11:21 AM Changeset in webkit [211741] by commit-queue@webkit.org
  • 30 edits
    3 moves in trunk/Source

Rename AnimationController to CSSAnimationController
https://bugs.webkit.org/show_bug.cgi?id=167829

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

Source/WebCore:

AnimationController is a very generic name. The current function of this
class is CSS animation.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::computeRenderStyleForProperty):

  • dom/Document.cpp:
  • history/CachedFrame.cpp:
  • page/Frame.cpp:

(WebCore::Frame::Frame):

  • page/Frame.h:

(WebCore::Frame::animation):

  • page/FrameView.cpp:
  • page/Page.cpp:
  • page/animation/AnimationBase.cpp:
  • page/animation/CSSAnimationController.cpp: Renamed from Source/WebCore/page/animation/AnimationController.cpp.

(WebCore::AnimationPrivateUpdateBlock::AnimationPrivateUpdateBlock):
(WebCore::AnimationPrivateUpdateBlock::~AnimationPrivateUpdateBlock):
(WebCore::CSSAnimationControllerPrivate::CSSAnimationControllerPrivate):
(WebCore::CSSAnimationControllerPrivate::~CSSAnimationControllerPrivate):
(WebCore::CSSAnimationControllerPrivate::ensureCompositeAnimation):
(WebCore::CSSAnimationControllerPrivate::clear):
(WebCore::CSSAnimationControllerPrivate::updateAnimations):
(WebCore::CSSAnimationControllerPrivate::updateAnimationTimerForRenderer):
(WebCore::CSSAnimationControllerPrivate::updateAnimationTimer):
(WebCore::CSSAnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
(WebCore::CSSAnimationControllerPrivate::fireEventsAndUpdateStyle):
(WebCore::CSSAnimationControllerPrivate::startUpdateStyleIfNeededDispatcher):
(WebCore::CSSAnimationControllerPrivate::addEventToDispatch):
(WebCore::CSSAnimationControllerPrivate::addElementChangeToDispatch):
(WebCore::CSSAnimationControllerPrivate::animationFrameCallbackFired):
(WebCore::CSSAnimationControllerPrivate::animationTimerFired):
(WebCore::CSSAnimationControllerPrivate::isRunningAnimationOnRenderer):
(WebCore::CSSAnimationControllerPrivate::isRunningAcceleratedAnimationOnRenderer):
(WebCore::CSSAnimationControllerPrivate::suspendAnimations):
(WebCore::CSSAnimationControllerPrivate::resumeAnimations):
(WebCore::CSSAnimationControllerPrivate::animationsAreSuspendedForDocument):
(WebCore::CSSAnimationControllerPrivate::detachFromDocument):
(WebCore::CSSAnimationControllerPrivate::suspendAnimationsForDocument):
(WebCore::CSSAnimationControllerPrivate::resumeAnimationsForDocument):
(WebCore::CSSAnimationControllerPrivate::startAnimationsIfNotSuspended):
(WebCore::CSSAnimationControllerPrivate::setAllowsNewAnimationsWhileSuspended):
(WebCore::CSSAnimationControllerPrivate::pauseAnimationAtTime):
(WebCore::CSSAnimationControllerPrivate::pauseTransitionAtTime):
(WebCore::CSSAnimationControllerPrivate::beginAnimationUpdateTime):
(WebCore::CSSAnimationControllerPrivate::beginAnimationUpdate):
(WebCore::CSSAnimationControllerPrivate::endAnimationUpdate):
(WebCore::CSSAnimationControllerPrivate::receivedStartTimeResponse):
(WebCore::CSSAnimationControllerPrivate::getAnimatedStyleForRenderer):
(WebCore::CSSAnimationControllerPrivate::computeExtentOfAnimation):
(WebCore::CSSAnimationControllerPrivate::numberOfActiveAnimations):
(WebCore::CSSAnimationControllerPrivate::addToAnimationsWaitingForStyle):
(WebCore::CSSAnimationControllerPrivate::removeFromAnimationsWaitingForStyle):
(WebCore::CSSAnimationControllerPrivate::styleAvailable):
(WebCore::CSSAnimationControllerPrivate::addToAnimationsWaitingForStartTimeResponse):
(WebCore::CSSAnimationControllerPrivate::removeFromAnimationsWaitingForStartTimeResponse):
(WebCore::CSSAnimationControllerPrivate::startTimeResponse):
(WebCore::CSSAnimationControllerPrivate::animationWillBeRemoved):
(WebCore::CSSAnimationControllerPrivate::addToAnimationsDependentOnScroll):
(WebCore::CSSAnimationControllerPrivate::removeFromAnimationsDependentOnScroll):
(WebCore::CSSAnimationControllerPrivate::scrollWasUpdated):
(WebCore::CSSAnimationController::CSSAnimationController):
(WebCore::CSSAnimationController::~CSSAnimationController):
(WebCore::CSSAnimationController::cancelAnimations):
(WebCore::CSSAnimationController::updateAnimations):
(WebCore::CSSAnimationController::getAnimatedStyleForRenderer):
(WebCore::CSSAnimationController::computeExtentOfAnimation):
(WebCore::CSSAnimationController::notifyAnimationStarted):
(WebCore::CSSAnimationController::pauseAnimationAtTime):
(WebCore::CSSAnimationController::numberOfActiveAnimations):
(WebCore::CSSAnimationController::pauseTransitionAtTime):
(WebCore::CSSAnimationController::isRunningAnimationOnRenderer):
(WebCore::CSSAnimationController::isRunningAcceleratedAnimationOnRenderer):
(WebCore::CSSAnimationController::isSuspended):
(WebCore::CSSAnimationController::suspendAnimations):
(WebCore::CSSAnimationController::resumeAnimations):
(WebCore::CSSAnimationController::allowsNewAnimationsWhileSuspended):
(WebCore::CSSAnimationController::setAllowsNewAnimationsWhileSuspended):
(WebCore::CSSAnimationController::serviceAnimations):
(WebCore::CSSAnimationController::animationsAreSuspendedForDocument):
(WebCore::CSSAnimationController::detachFromDocument):
(WebCore::CSSAnimationController::suspendAnimationsForDocument):
(WebCore::CSSAnimationController::resumeAnimationsForDocument):
(WebCore::CSSAnimationController::startAnimationsIfNotSuspended):
(WebCore::CSSAnimationController::beginAnimationUpdate):
(WebCore::CSSAnimationController::endAnimationUpdate):
(WebCore::CSSAnimationController::supportsAcceleratedAnimationOfProperty):
(WebCore::CSSAnimationController::wantsScrollUpdates):
(WebCore::CSSAnimationController::scrollWasUpdated):
(WebCore::CSSAnimationController::hasAnimations):

  • page/animation/CSSAnimationController.h: Renamed from Source/WebCore/page/animation/AnimationController.h.

(WebCore::AnimationUpdateBlock::AnimationUpdateBlock):
(WebCore::AnimationUpdateBlock::~AnimationUpdateBlock):

  • page/animation/CSSAnimationControllerPrivate.h: Renamed from Source/WebCore/page/animation/AnimationControllerPrivate.h.

(WebCore::CSSAnimationControllerPrivate::hasAnimations):
(WebCore::CSSAnimationControllerPrivate::isSuspended):
(WebCore::CSSAnimationControllerPrivate::setBeginAnimationUpdateTime):
(WebCore::CSSAnimationControllerPrivate::allowsNewAnimationsWhileSuspended):
(WebCore::CSSAnimationControllerPrivate::wantsScrollUpdates):
(WebCore::CSSAnimationControllerPrivate::scrollPosition):

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::singleton):

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::CompositeAnimation):

  • page/animation/CompositeAnimation.h:

(WebCore::CompositeAnimation::create):
(WebCore::CompositeAnimation::animationController):

  • page/animation/ImplicitAnimation.cpp:
  • page/animation/KeyframeAnimation.cpp:
  • page/ios/FrameIOS.mm:
  • platform/graphics/GraphicsLayer.h:
  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp:
  • rendering/RenderLayerBacking.cpp:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForAnimation):

  • rendering/RenderObject.cpp:
  • rendering/RenderObject.h:

(WebCore::RenderObject::animation):

  • testing/Internals.cpp:

Source/WebKit/mac:

  • WebView/WebFrame.mm:
  • WebView/WebView.mm:

Source/WebKit/win:

  • WebFrame.cpp:
11:16 AM Changeset in webkit [211740] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Static Analyzer: JSContext.mm: Incorrect decrement of the reference count of an object
https://bugs.webkit.org/show_bug.cgi?id=167848

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-06
Reviewed by Saam Barati.

Source/JavaScriptCore/API/JSContext.mm:87:5: warning: Incorrect decrement of the reference count of an object that is not owned at this point by the caller

[self.exceptionHandler release];

1 warning generated.

  • API/JSContext.mm:

(-[JSContext dealloc]):
Use the ivar in dealloc instead of going through the getter.

11:13 AM Changeset in webkit [211739] by Jon Davis
  • 3 edits
    2 adds in trunk/Websites/webkit.org

Add a survey to learn how people use WebKit Nightly builds
https://bugs.webkit.org/show_bug.cgi?id=167748

Reviewed by Joseph Pecoraro.

  • wp-content/themes/webkit/functions.php:
  • wp-content/themes/webkit/nightly-start.php:
  • wp-content/themes/webkit/nightly-survey.php: Added.
  • wp-content/themes/webkit/survey.json: Added.
11:06 AM Changeset in webkit [211738] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

Simple line layout: Use simplified text measuring when possible.
https://bugs.webkit.org/show_bug.cgi?id=167843
<rdar://problem/30364907>

Reviewed by Antti Koivisto.

This patch adds a simplified version of text width measuring.
Certain type of text runs (no spacing etc) only require a subset of what we
currently do in FontCascade::width().

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthForSimpleText):

  • platform/graphics/FontCascade.h:
  • platform/graphics/WidthCache.h:

(WebCore::WidthCache::add):
(WebCore::WidthCache::addSlowCase):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal):

  • rendering/RenderText.cpp:

(WebCore::RenderText::styleDidChange):
(WebCore::RenderText::setRenderedText):
(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring):

  • rendering/RenderText.h:

(WebCore::RenderText::canUseSimplifiedTextMeasuring):

  • rendering/SimpleLineLayoutFlowContents.cpp:

(WebCore::SimpleLineLayout::initializeSegments):

  • rendering/SimpleLineLayoutFlowContents.h:
  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragmentIterator):
(WebCore::SimpleLineLayout::TextFragmentIterator::textWidth):

  • rendering/SimpleLineLayoutTextFragmentIterator.h:
10:59 AM Changeset in webkit [211737] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603-branch/Source

Merge r211666. rdar://problem/30167791

10:55 AM Changeset in webkit [211736] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Null check the WebKit::RemoteObjectProxy object before calling it
https://bugs.webkit.org/show_bug.cgi?id=167891
rdar://problem/30229358

Reviewed by Tim Horton.

If a _WKRemoteObjectRegistry invocation reply block outlives its underlying WebKit::RemoteObjectProxy object,
we'll crash trying to send an unused reply to it. Work around this crash by adding a null check before calling
sendUnusedReply.

While this fixes the crash it will lead to leaks in the process that holds on to the reply block. A more long term fix
would be to manage the reply block checkers and call sendUnusedReply when invalidating the _WKRemoteObjectRegistry.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _invokeMethod:]):

10:38 AM Changeset in webkit [211735] by ap@apple.com
  • 5 edits in trunk/Tools

Move the Leaks bot to Sierra
https://bugs.webkit.org/show_bug.cgi?id=167886

Reviewed by Daniel Bates.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
  • BuildSlaveSupport/build.webkit.org-config/public_html/LeaksViewer/LeaksViewer.js:

(LeaksViewer._displayURLPrompt):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

10:35 AM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
10:00 AM Changeset in webkit [211734] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[Soup] Deadlock in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=167876

Reviewed by Michael Catanzaro.

WebKitSoupRequestInputStream uses a read lock. What is happening is that webkitSoupRequestInputStreamAddData
takes the lock, and it calls webkitSoupRequestInputStreamPendingReadAsyncComplete with the lock help. That
causes webkitSoupRequestInputStreamReadAsync to be called again to read the next chunk, but in the same run loop
operation. We don't really need the read lock because both webkitSoupRequestInputStreamAddData and
webkitSoupRequestInputStreamReadAsync shoudl always be called from the main thread.

  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(webkitSoupRequestInputStreamReadAsync): Remove the read lock and assert if called from a secondary thread.
(webkitSoupRequestInputStreamAddData): Ditto.

9:49 AM Changeset in webkit [211733] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Resource usage overlay should ignore mouse events outside bounds by default
https://bugs.webkit.org/show_bug.cgi?id=167874

Reviewed by Andreas Kling.

It's overriding the default causing that the first click after the overlay is shown is always handled by the
overlay even when clicked outside bounds. It should only be set false while dragging.

  • page/ResourceUsageOverlay.cpp:

(WebCore::ResourceUsageOverlay::initialize):

9:47 AM Changeset in webkit [211732] by Chris Dumez
  • 5 edits
    2 deletes in trunk/LayoutTests/imported/w3c

Re-sync html/browsers/origin/cross-origin-objects tests
https://bugs.webkit.org/show_bug.cgi?id=167881

Reviewed by Youenn Fablet.

Re-sync html/browsers/origin/cross-origin-objects tests from upstream a052787d.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-exceptions-expected.txt: Removed.
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-exceptions.html: Removed.
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:
  • web-platform-tests/html/browsers/origin/cross-origin-objects/frame.html:
  • web-platform-tests/html/browsers/origin/cross-origin-objects/w3c-import.log:
9:36 AM Changeset in webkit [211731] by Ryan Haddad
  • 2 edits in trunk/PerformanceTests

Skip ARES-6 on performance bots
https://bugs.webkit.org/show_bug.cgi?id=167863

Unreviewed test gardening.

ES6SampleBench was renamed to ARES-6, so this should be updated in PerformanceTests/Skipped as well.

  • Skipped:
9:35 AM Changeset in webkit [211730] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

CrashTracer: com.apple.WebKit.WebContent at WebCore: WebCore::Node::invalidateStyle
https://bugs.webkit.org/show_bug.cgi?id=167878
rdar://problem/30251840

Reviewed by Andreas Kling.

Speculative fix.

We are trying to invalidate a null node from ~PostResolutionCallbackDisabler. Looks like the only way
this could happen is if HTMLFrameOwnerElement::scheduleinvalidateStyleAndLayerComposition is called
with null 'this'. There is one place where this might happen.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::attachRootLayer): Add null check.

9:28 AM Changeset in webkit [211729] by Ryan Haddad
  • 11 edits
    2 deletes in trunk

Unreviewed, rolling out r211722.

This change introduced a LayoutTest failure on mac-wk2.

Reverted changeset:

"[Modern Media Controls] Improve handling of <video> with only
audio tracks"
https://bugs.webkit.org/show_bug.cgi?id=167836
http://trac.webkit.org/changeset/211722

9:22 AM Changeset in webkit [211728] by eric.carlson@apple.com
  • 19 edits
    2 adds in trunk/Source/WebCore

[MediaStream Mac] Stop using AVSampleBufferAudioRenderer
https://bugs.webkit.org/show_bug.cgi?id=167821

Reviewed by Jer Noble.

  • WebCore.xcodeproj/project.pbxproj: Add new files.
  • platform/audio/mac/AudioSampleDataSource.cpp:

(WebCore::AudioSampleDataSource::pullSamplesInternal): Don't assume the first timestamp from the
render proc after a pause is zero.

Stop using an audio renderer for each audio track. No audio renderers means we don't need to use
an AVSampleBufferRenderSynchronizer.

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

(-[WebAVSampleBufferStatusChangeListener invalidate]): No more audio renderers.
(-[WebAVSampleBufferStatusChangeListener observeValueForKeyPath:ofObject:change:context:]): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC): Pause

audio tracks explicitly.

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::audioSourceProvider): Remove the existing code,

it was incorrect and not thread safe.

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::flushRenderers): No more audio renderers.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): No more render synchronizer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayer): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play): Start each audio track.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Pause each audio track.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVolume): Pass the command to each audio track.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setMuted): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::streamTime): No more render synchronizer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferUpdated): Don't handle audio samples.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks): Update for audio track class change. No
more render synchronizer.
(-[WebAVSampleBufferStatusChangeListener beginObservingRenderer:]): Deleted.
(-[WebAVSampleBufferStatusChangeListener stopObservingRenderer:]): Deleted.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueAudioSample): Deleted.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::requestNotificationWhenReadyForAudioData): Deleted.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createAudioRenderer): Deleted.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyAudioRenderer): Deleted.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyAudioRenderers): Deleted.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::rendererStatusDidChange): Deleted.

  • platform/mediastream/AudioTrackPrivateMediaStream.h:
  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate): add/removeObserver takes a reference,
not a pointer.
(WebCore::MediaStreamTrackPrivate::~MediaStreamTrackPrivate): Ditto.
(WebCore::MediaStreamTrackPrivate::videoSampleAvailable): Renamed from sourceHasMoreMediaData.
(WebCore::MediaStreamTrackPrivate::sourceHasMoreMediaData): Deleted.

  • platform/mediastream/MediaStreamTrackPrivate.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::addObserver): Take a reference, not a pointer.
(WebCore::RealtimeMediaSource::removeObserver): Ditto.
(WebCore::RealtimeMediaSource::videoSampleAvailable): Renamed from mediaDataUpdated.
(WebCore::RealtimeMediaSource::audioSamplesAvailable): New.
(WebCore::RealtimeMediaSource::stop): Drive-by cleanup.
(WebCore::RealtimeMediaSource::requestStop): Ditto.
(WebCore::RealtimeMediaSource::mediaDataUpdated): Deleted.

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

(WebCore::AVAudioCaptureSource::AVAudioCaptureSource):
(WebCore::AVAudioCaptureSource::addObserver):
(WebCore::AVAudioCaptureSource::shutdownCaptureSession):
(WebCore::AVAudioCaptureSource::captureOutputDidOutputSampleBufferFromConnection):
(WebCore::operator==): Deleted.
(WebCore::operator!=): Deleted.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::processNewFrame): Call videoSampleAvailable, not mediaDataUpdated.

Render audio with a CoreAudio output unit.

  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp: Added.

(WebCore::AudioTrackPrivateMediaStreamCocoa::AudioTrackPrivateMediaStreamCocoa):
(WebCore::AudioTrackPrivateMediaStreamCocoa::~AudioTrackPrivateMediaStreamCocoa):
(WebCore::AudioTrackPrivateMediaStreamCocoa::playInternal):
(WebCore::AudioTrackPrivateMediaStreamCocoa::play):
(WebCore::AudioTrackPrivateMediaStreamCocoa::pause):
(WebCore::AudioTrackPrivateMediaStreamCocoa::setVolume):
(WebCore::AudioTrackPrivateMediaStreamCocoa::setupAudioUnit):
(WebCore::AudioTrackPrivateMediaStreamCocoa::audioSamplesAvailable):
(WebCore::AudioTrackPrivateMediaStreamCocoa::sourceStopped):
(WebCore::AudioTrackPrivateMediaStreamCocoa::render):
(WebCore::AudioTrackPrivateMediaStreamCocoa::inputProc):

  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h: Added.
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:

(WebCore::alignTo16Bytes):
(WebCore::MockRealtimeAudioSourceMac::emitSampleBuffers):
(WebCore::MockRealtimeAudioSourceMac::reconfigure): Minor cleanup.
(WebCore::MockRealtimeAudioSourceMac::render): Ditto.

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer): Call videoSampleAvailable, not mediaDataUpdated.

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

(WebCore::WebAudioSourceProviderAVFObjC::~WebAudioSourceProviderAVFObjC):
(WebCore::WebAudioSourceProviderAVFObjC::provideInput): Use a mutex. Get rid of m_writeAheadCount,
it is always 0.
(WebCore::WebAudioSourceProviderAVFObjC::prepare): Use a lock.
(WebCore::WebAudioSourceProviderAVFObjC::unprepare): Ditto.
(WebCore::WebAudioSourceProviderAVFObjC::process): Ditto.

  • platform/mock/MockRealtimeAudioSource.h:

(WebCore::MockRealtimeAudioSource::renderInterval): Decrease the render interval.

9:17 AM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
9:07 AM Changeset in webkit [211727] by matthew_hanson@apple.com
  • 11 edits
    2 adds in branches/safari-603-branch

Merge r211653. rdar://problem/29872943

8:54 AM Changeset in webkit [211726] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Guard and unguard ports in a much less intrusive way
https://bugs.webkit.org/show_bug.cgi?id=167813

Reviewed by Sam Weinig.

Instead of adopting mach_port_construct/mach_port_destruct, just guard and unguard the ports where appropriate.

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::platformInitialize):
(IPC::Connection::open):

8:21 AM Changeset in webkit [211725] by Jonathan Bedard
  • 3 edits in trunk/Tools

Prevent app crash on launch during simctl install workaround
https://bugs.webkit.org/show_bug.cgi?id=167685

Reviewed by Daniel Bates.

  • Scripts/webkitpy/port/simulator_process.py:

(SimulatorProcess.init): Pass environment to install.

  • Scripts/webkitpy/xcode/simulator.py:

(Device.install_app): Accept environment, pass environment to launch.

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

[Modern Media Controls] Add a backdrop filter to the start button on macOS
https://bugs.webkit.org/show_bug.cgi?id=167879
<rdar://problem/30375174>

Patch by Antoine Quint <Antoine Quint> on 2017-02-06
Reviewed by Eric Carlson.

Source/WebCore:

Add a backdrop filter to the start button on macOS.

Test: media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-start-button-style.html

  • Modules/modern-media-controls/controls/macos-inline-media-controls.css:

(.media-controls.mac.inline > button.start > div):

LayoutTests:

Add a new test that checks that the expected backdrop filter is applied to the start button on macOS.

  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-start-button-style-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-start-button-style.html: Added.
8:16 AM Changeset in webkit [211723] by commit-queue@webkit.org
  • 22 edits
    4 copies
    10 adds in trunk

[Modern Media Controls] Bring fullscreen controls up to spec
https://bugs.webkit.org/show_bug.cgi?id=167875
<rdar://problem/29611222>

Patch by Antoine Quint <Antoine Quint> on 2017-02-06
Reviewed by Eric Carlson.

Source/WebCore:

We update the fullscreen PiP icon to have the correct size and add two new buttons
around the volume slider, "volume-down" to bring the volume to 0 and "volume-up"
to bring the volume to 1.

To accomodate the new volume buttons, we move the volume slider inside an additional
ButtonsContainer object, along with the two new buttons.

Tests: media/modern-media-controls/volume-down-support/volume-down-support.html

media/modern-media-controls/volume-up-support/volume-up-support.html

  • Modules/modern-media-controls/controls/icon-service.js:
  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css:

(.media-controls.mac.fullscreen button.volume-down):
(.media-controls.mac.fullscreen button.volume-up):

  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:
  • Modules/modern-media-controls/controls/volume-down-button.js: Added.

(VolumeDownButton):

  • Modules/modern-media-controls/controls/volume-slider.js:

(VolumeSlider):

  • Modules/modern-media-controls/controls/volume-up-button.js: Added.

(VolumeUpButton):

(MediaController.prototype._updateControlsIfNeeded):

  • Modules/modern-media-controls/media/volume-down-support.js: Added.

(VolumeDownSupport.prototype.get control):
(VolumeDownSupport.prototype.buttonWasPressed):
(VolumeDownSupport):

  • Modules/modern-media-controls/media/volume-up-support.js: Added.

(VolumeUpSupport.prototype.get control):
(VolumeUpSupport.prototype.buttonWasPressed):
(VolumeUpSupport):

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Rebaseline some existing tests due to the addition of the volume-down and volume-up
buttons as well as the width change of the PiP icon and add a couple of new tests to
check the behavior of the volume-down and volume-up buttons.

  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles.html:
  • media/modern-media-controls/media-controller/media-controller-fullscreen-ltr.html:
  • media/modern-media-controls/volume-down-support/volume-down-support-expected.txt: Added.
  • media/modern-media-controls/volume-down-support/volume-down-support.html: Added.
  • media/modern-media-controls/volume-up-support/volume-up-support-expected.txt: Added.
  • media/modern-media-controls/volume-up-support/volume-up-support.html: Added.
  • platform/ios-simulator/TestExpectations:
8:09 AM WebKitGTK/2.14.x edited by Michael Catanzaro
(diff)
5:48 AM Changeset in webkit [211722] by commit-queue@webkit.org
  • 11 edits
    2 adds in trunk

[Modern Media Controls] Improve handling of <video> with only audio tracks
https://bugs.webkit.org/show_bug.cgi?id=167836
<rdar://problem/30255812>

Patch by Antoine Quint <Antoine Quint> on 2017-02-06
Reviewed by Dean Jackson.

Source/WebCore:

We now check for the availability of video tracks before considering a <video>
element is displaying an actual video file and turning auto-hide on. We also
check that we have video tracks before enabling the fullscreen button. This
brings the behavior of a <video> pointing to a resource with no video tracks
to be the same as an <audio> element.

Test: media/modern-media-controls/media-controller/media-controller-video-with-only-audio.html

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

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

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

(FullscreenSupport.prototype.syncControl):
(FullscreenSupport):

LayoutTests:

Add a new test to check that a <video> with a resource that only has audio tracks
does not auto-hide nor show the fullscreen button. We also rebaseline a few existing
tests for this change of behavior.

  • fast/regions/inline-block-inside-anonymous-overflow-with-covered-controls-expected.html:
  • fast/regions/inline-block-inside-anonymous-overflow-with-covered-controls.html:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on-expected.txt:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on.html:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-toggle-expected.txt:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-toggle.html:
  • media/modern-media-controls/media-controller/media-controller-video-with-only-audio-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-video-with-only-audio.html: Added.
  • media/modern-media-controls/time-label/time-label-white-space-nowrap.html:
4:22 AM Changeset in webkit [211721] by magomez@igalia.com
  • 3 edits in trunk/Source/WebKit2

[GTK][EFL] Release unused UpdateAtlas when in memory pressure situation
https://bugs.webkit.org/show_bug.cgi?id=167872

Reviewed by Carlos Garcia Campos.

In a memory pressure situation, release all the unused UpdateAtlas as soon as possible, instead
of waiting 3 seconds before releasing them.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::releaseInactiveAtlasesTimerFired):
(WebKit::CompositingCoordinator::releaseAtlases):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
3:15 AM Changeset in webkit [211720] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: sibling elements's disclosure triangles aren't vertically aligned in DOM tree outline in certain ports
https://bugs.webkit.org/show_bug.cgi?id=167568

Patch by Fujii Hironori <Fujii Hironori> on 2017-02-06
Reviewed by Brian Burg.

The triangle has 13px height and has float:left. If the line-height
is smaller than 13px, the sibling element's triangles aren't
vertically aligned.

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom li.parent): Set line-height 13px explicitly.

1:28 AM Changeset in webkit [211719] by achristensen@apple.com
  • 2 edits in trunk/Tools

Rebase API tests after r211638
https://bugs.webkit.org/show_bug.cgi?id=167779

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):
URLs with non-special schemes and characters like % in the host now fail to parse,
more like their special counterparts and according to spec.

12:51 AM Changeset in webkit [211718] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix WinCairo build after r211681
https://bugs.webkit.org/show_bug.cgi?id=167096

  • platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp:

Include some necessary GLES headers.

12:35 AM Changeset in webkit [211717] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Unreviewed trivial fix after r211697.
https://bugs.webkit.org/show_bug.cgi?id=167863

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): Renamed ES6SampleBench to ARES-6.

Note: See TracTimeline for information about the timeline view.