Timeline
Dec 7, 2017:
- 11:47 PM Changeset in webkit [225671] by
-
- 5 edits in trunk/Tools
Unreviewed GTK+ and WPE build fix.
Add TestRunner::installFakeHelvetica(), WTR::installFakeHelvetica()
and WTF::uninstallFakeHelvetica() definitions, filling out the
declarations added in r225641. This fills up missing symbols in the
WKTR's InjectedBundle library, unbreaking layout tests for both
configurations.
- WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp:
(WTR::installFakeHelvetica):
(WTR::uninstallFakeHelvetica):
- WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:
(WTR::TestRunner::inspectorTestStubURL):
(WTR::TestRunner::installFakeHelvetica):
- WebKitTestRunner/InjectedBundle/wpe/ActivateFontsWPE.cpp:
(WTR::installFakeHelvetica):
(WTR::uninstallFakeHelvetica):
- WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp:
(WTR::TestRunner::installFakeHelvetica):
- 8:50 PM Changeset in webkit [225670] by
-
- 1 edit2 adds in trunk/LayoutTests
iOS: Many AMP pages hit a release assertion inside Document::updateStyleIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=180550
Reviewed by Simon Fraser.
Add a test for r225647.
- fast/frames/flattening/non-flattening-frame-inside-flattening-iframe-crash-expected.txt: Added.
- fast/frames/flattening/non-flattening-frame-inside-flattening-iframe-crash.html: Added.
- 8:22 PM Changeset in webkit [225669] by
-
- 3 edits in trunk/Source/WebKitLegacy/mac
Ignore deprecation warnings.
- WebView/WebHTMLView.mm:
(-[NSWindow _web_borderView]):
(-[WebHTMLView _setAsideSubviews]):
- WebView/WebView.mm:
(-[WebView encodeWithCoder:]):
- 7:03 PM Changeset in webkit [225668] by
-
- 2 edits in trunk/Source/WTF
[Win] [64-bit] Resolve Microsoft warning C4319 on BitVector.cpp
https://bugs.webkit.org/show_bug.cgi?id=180490
Patch by Basuke Suzuki <Basuke Suzuki> on 2017-12-07
Reviewed by Alex Christensen.
bitsInPointer() returns unsigned which is smaller than size_t.
"~"(negate) operator is applied before extending its size which result filled with zero.
This may be potentially a bug if numBits is greater than max value of unsigned long
(which is not practical).
- wtf/BitVector.cpp:
(WTF::BitVector::OutOfLineBits::create):
- 7:02 PM Changeset in webkit [225667] by
-
- 2 edits in trunk/Source/WebCore
Use WTF::RecursiveLockAdapter instead of using pthread_mutex_t with recursive lock option
https://bugs.webkit.org/show_bug.cgi?id=180449
Reviewed by Mark Lam.
Use WTF::RecursiveLockAdapter<StaticLock> instead. We can remove pthread_mutex_xxx,
pthread_once and FontLocker wrapper.
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::getCachedFontPlatformData):
(WebCore::FontCache::fontForPlatformData):
(WebCore::FontCache::purgeInactiveFontData):
(WebCore::FontCache::inactiveFontCount):
(initFontCacheLockOnce): Deleted.
(FontLocker::FontLocker): Deleted.
(FontLocker::~FontLocker): Deleted.
- 7:00 PM Changeset in webkit [225666] by
-
- 2 edits in trunk/Source/WebKit
[WinCairo] Fix ResourceError handling in ArgumentCoder for wincairo webkit
https://bugs.webkit.org/show_bug.cgi?id=180483
Patch by Yousuke Kimoto <yousuke.kimoto@sony.com> on 2017-12-07
Reviewed by Alex Christensen.
- Shared/curl/WebCoreArgumentCodersCurl.cpp:
(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ResourceError>::decodePlatformData):
- 6:33 PM Changeset in webkit [225665] by
-
- 8 edits in trunk/Source/WebKit
StartFetch should take a ServiceWorkerIdentifier
https://bugs.webkit.org/show_bug.cgi?id=180478
Patch by Youenn Fablet <youenn@apple.com> on 2017-12-07
Reviewed by Brady Eidson.
Before the patch, StartFetch was taking an optional ServiceWorkerIdentifier.
Now that every navigation fetch is querying its matching registration, it can no longer be optional.
In the case there is a problem in running the service worker at start fetch time,
answer to the WebProcess to go to network so that the request does not get stalled.
- StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::startFetch):
- StorageProcess/ServiceWorker/WebSWServerConnection.h:
- StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::startFetch):
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::startFetch):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.messages.in:
- 6:08 PM Changeset in webkit [225664] by
-
- 2 edits in trunk/Source/JavaScriptCore
Modify our dollar VM clflush intrinsic to aid in some perf testing
https://bugs.webkit.org/show_bug.cgi?id=180559
Reviewed by Mark Lam.
- tools/JSDollarVM.cpp:
(JSC::functionCpuClflush):
(JSC::functionDeltaBetweenButterflies):
(JSC::JSDollarVM::finishCreation):
- 5:53 PM Changeset in webkit [225663] by
-
- 10 edits in trunk
Simplify log channel configuration UI
https://bugs.webkit.org/show_bug.cgi?id=180527
<rdar://problem/35908382>
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
- inspector/protocol/Console.json:
Source/WebCore:
No new tests, updated existing test.
- inspector/agents/WebConsoleAgent.cpp:
(WebCore::WebConsoleAgent::getLoggingChannels):
(WebCore::channelConfigurationForString):
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Models/LoggingChannel.js:
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createGeneralSettingsView):
LayoutTests:
- inspector/console/webcore-logging.html: Updated test for new results.
- 5:31 PM Changeset in webkit [225662] by
-
- 16 edits in trunk
Use StaticLock instead of NeverDestroyed<Lock>
https://bugs.webkit.org/show_bug.cgi?id=180507
Reviewed by Saam Barati.
Source/WebCore:
StaticLock can be used instead of using NeverDestroyed<Lock>.
No behavior change.
- Modules/webdatabase/Database.cpp:
(WebCore::Database::performOpenAndVerify):
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::openDatabaseMutex):
(WebCore::DatabaseTracker::emptyDatabaseFilesRemovalTaskWillBeScheduled):
(WebCore::DatabaseTracker::emptyDatabaseFilesRemovalTaskDidFinish):
(WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
(WebCore::DatabaseTracker::scheduleForNotification):
(WebCore::DatabaseTracker::notifyDatabasesChanged):
(WebCore::notificationMutex): Deleted.
- Modules/webdatabase/DatabaseTracker.h:
- platform/URL.cpp:
(WebCore::registerDefaultPortForProtocolForTesting):
(WebCore::clearDefaultPortForProtocolMapForTesting):
(WebCore::defaultPortForProtocol):
(WebCore::defaultPortForProtocolMapForTestingLock): Deleted.
- platform/graphics/MediaPlayer.cpp:
(WebCore::buildMediaEnginesVector):
(WebCore::installedMediaEngines):
(WebCore::MediaPlayer::resetMediaEngines):
(WebCore::mediaEngineVectorLock): Deleted.
- platform/ios/QuickLook.mm:
(WebCore::removeQLPreviewConverterForURL):
(WebCore::addQLPreviewConverterWithFileForURL):
(WebCore::qlPreviewConverterDictionaryMutex): Deleted.
- platform/ios/WebSQLiteDatabaseTrackerClient.mm:
(+[WebDatabaseTransactionBackgroundTaskController startBackgroundTask]):
(+[WebDatabaseTransactionBackgroundTaskController endBackgroundTask]):
(transactionBackgroundTaskIdentifierLock): Deleted.
- platform/network/curl/CurlContext.cpp:
(WebCore::CurlShareHandle::lockCallback):
(WebCore::CurlShareHandle::unlockCallback):
(WebCore::CurlShareHandle::mutexFor):
- platform/network/curl/CurlContext.h:
Source/WebKitLegacy/ios:
- WebCoreSupport/WebFixedPositionContent.mm:
(-[WebFixedPositionContent scrollOrZoomChanged:]):
(-[WebFixedPositionContent overflowScrollPositionForLayer:changedTo:]):
(-[WebFixedPositionContent setViewportConstrainedLayers:stickyContainerMap:]):
(-[WebFixedPositionContent hasFixedOrStickyPositionLayers]):
(WebFixedPositionContentDataLock): Deleted.
Source/WebKitLegacy/win:
- WebLocalizableStrings.cpp:
(findCachedString):
(cacheString):
(mainBundleLocStrings): Deleted.
(frameworkLocStringsMutex): Deleted.
Tools:
- DumpRenderTree/JavaScriptThreading.cpp:
(javaScriptThreads):
(runJavaScriptThread):
(startJavaScriptThreads):
(stopJavaScriptThreads):
(javaScriptThreadsMutex): Deleted.
- 5:27 PM Changeset in webkit [225661] by
-
- 13 edits in trunk/Source/WebCore
Read registrations in from disk.
https://bugs.webkit.org/show_bug.cgi?id=180543
Reviewed by Andy Estes.
No new tests (Not testable quite yet)
On launch, read through the database.
Set up enough objects in the SWServer necessary to cause fetches and postMessages to
go to a worker that has never run before.
- workers/service/ServiceWorkerContextData.cpp:
(WebCore::ServiceWorkerContextData::isolatedCopy const):
- workers/service/ServiceWorkerContextData.h:
(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):
- workers/service/ServiceWorkerRegistrationKey.cpp:
(WebCore::ServiceWorkerRegistrationKey::toDatabaseKey const):
(WebCore::ServiceWorkerRegistrationKey::fromDatabaseKey):
- workers/service/ServiceWorkerRegistrationKey.h:
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::stringToUpdateViaCache):
(WebCore::stringToWorkerType):
(WebCore::RegistrationDatabase::doPushChanges):
(WebCore::RegistrationDatabase::importRecords):
(WebCore::RegistrationDatabase::addRegistrationToStore):
- workers/service/server/RegistrationDatabase.h:
- workers/service/server/RegistrationStore.cpp:
(WebCore::RegistrationStore::RegistrationStore):
(WebCore::RegistrationStore::addRegistrationFromDatabase):
- workers/service/server/RegistrationStore.h:
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::addRegistrationFromStore):
(WebCore::SWServer::SWServer):
(WebCore::SWServer::updateWorker):
(WebCore::SWServer::tryInstallContextData):
(WebCore::SWServer::installContextData):
(WebCore::generateServiceWorkerIdentifier): Deleted.
- workers/service/server/SWServer.h:
- workers/service/server/SWServerRegistration.h:
- workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::contextData const):
- 5:26 PM Changeset in webkit [225660] by
-
- 4 edits in trunk/Source
Use WTF Locking primitives in WebThread and drop pthread_xxx use
https://bugs.webkit.org/show_bug.cgi?id=180445
Reviewed by Saam Barati.
Source/WebCore:
We remove use of pthread locking primitives from WebThread implementation,
and use WTF Lock and Condition instead.
No behavior change.
- platform/ios/wak/WebCoreThread.mm:
(HandleDelegateSource):
(SendDelegateMessage):
(WebThreadRunOnMainThread):
(WebThreadAdoptAndRelease):
(WebCoreObjCDeallocOnWebThreadImpl):
(WebCoreObjCDeallocWithWebThreadLockImpl):
(HandleWebThreadReleaseSource):
(_WebThreadAutoLock):
(WebRunLoopLockInternal):
(CurrentThreadContext):
Use WTF::ThreadSpecific.
(StartWebThread):
(_WebThreadLock):
RemoveshouldTryparameter since it is alwaysfalse. We clean up code based onshouldTry = false,
and rename it from _WebTryThreadLock to _WebThreadLock since it does not try now.
(_WebThreadLockFromAnyThread):
(WebThreadUnlockFromAnyThread):
(_WebThreadUnlock):
(lockWebCoreReleaseLock): Deleted.
(unlockWebCoreReleaseLock): Deleted.
(WebTimedConditionLock): Deleted.
(_WebTryThreadLock): Deleted.
Source/WTF:
Add initializer form to fill struct with zero if struct does not have any default initializers.
- wtf/ThreadSpecific.h:
(WTF::ThreadSpecific::Data::Data):
- 5:22 PM Changeset in webkit [225659] by
-
- 21 edits1 add in trunk/Source
Apply poisoning to some native code pointers.
https://bugs.webkit.org/show_bug.cgi?id=180541
<rdar://problem/35916875>
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
Renamed g_classInfoPoison to g_globalDataPoison.
Renamed g_masmPoison to g_jitCodePoison.
Introduced g_nativeCodePoison.
Applied g_nativeCodePoison to poisoning some native code pointers.
Introduced non-random Int32 poison values (in JSCPoison.h) for use with pointers
to malloc allocated data structures (where needed).
- API/JSCallbackFunction.h:
(JSC::JSCallbackFunction::functionCallback):
- JavaScriptCore.xcodeproj/project.pbxproj:
- jit/ThunkGenerators.cpp:
(JSC::nativeForGenerator):
- llint/LowLevelInterpreter64.asm:
- runtime/CustomGetterSetter.h:
(JSC::CustomGetterSetter::getter const):
(JSC::CustomGetterSetter::setter const):
- runtime/InternalFunction.cpp:
(JSC::InternalFunction::getCallData):
(JSC::InternalFunction::getConstructData):
- runtime/InternalFunction.h:
(JSC::InternalFunction::nativeFunctionFor):
- runtime/JSCPoison.h: Added.
- runtime/JSCPoisonedPtr.cpp:
(JSC::initializePoison):
- runtime/JSCPoisonedPtr.h:
- runtime/Lookup.h:
- runtime/NativeExecutable.cpp:
(JSC::NativeExecutable::hashFor const):
- runtime/NativeExecutable.h:
- runtime/Structure.cpp:
(JSC::StructureTransitionTable::setSingleTransition):
- runtime/StructureTransitionTable.h:
(JSC::StructureTransitionTable::StructureTransitionTable):
(JSC::StructureTransitionTable::isUsingSingleSlot const):
(JSC::StructureTransitionTable::map const):
(JSC::StructureTransitionTable::weakImpl const):
(JSC::StructureTransitionTable::setMap):
Source/WTF:
Ensure that the resultant poisoned bits still looks like a pointer in that its
bottom bits are 0, just like the alignment bits of a pointer. This allows the
client to use the bottom bits of the poisoned bits as flag bits just like the
client was previously able to do with pointer values.
Note: we only ensure that the bottom alignment bits of the generated poison
value is 0. We're not masking out the poisoned bits. This means that the bottom
bits of the poisoned bits will only be null if the original pointer is aligned.
Hence, if the client applies the poison to an unaligned pointer, we do not lose
any information on the low bits.
Also removed 2 wrong assertions in PoisonedImpl's constructors. We were
asserting that Poisoned will never be used with a null value, but that's invalid.
We do want to allow a null value so that we don't have to constantly do null
checks in the clients. This was uncovered by some layout tests.
- wtf/Poisoned.cpp:
(WTF::makePoison):
- wtf/Poisoned.h:
(WTF::PoisonedImpl::PoisonedImpl):
- 5:12 PM Changeset in webkit [225658] by
-
- 2 edits in trunk/Source/WebKit
We need to grab the JSLock in InjectedBundle::createWebDataFromUint8Array
https://bugs.webkit.org/show_bug.cgi?id=180492
Reviewed by Alex Christensen.
InjectedBundle::createWebDataFromUint8Array calls into WebCore APIs that allocate
out of the JS heap. It's only legal to allocate out of the JS heap when holding the JS lock.
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::createWebDataFromUint8Array):
- 4:59 PM Changeset in webkit [225657] by
-
- 2 edits in trunk/Source/WebCore
Fix API test after r225645.
https://bugs.webkit.org/show_bug.cgi?id=180544
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
The API test WebKitLegacy.FragmentNavigation started failing after r225645.
It does call the completion handler with ignore to cancel fragment navigation.
To make this work and increase compatibility, only synchronously continue with
fragment navigations if we haven't received a synchronous answer to the
decidePolicyForNavigationAction callback.
- 4:56 PM Changeset in webkit [225656] by
-
- 8 edits1 move11 adds in trunk
WebAssembly: sending module to iframe fails
https://bugs.webkit.org/show_bug.cgi?id=179263
Reviewed by JF Bastien.
Source/WebCore:
Allow use WebAssembly.Module as input parameters for postMessage
in window and iframe object.
Tests: wasm/iframe-postmessage.html
wasm/window-postmessage.html
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::dumpIfTerminal):
- bindings/js/SerializedScriptValue.h:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::postMessage):
LayoutTests:
- platform/ios-simulator/TestExpectations:
- platform/win/TestExpectations:
- resources/wasm-builder.js: Renamed from LayoutTests/workers/wasm-resources/builder.js.
- wasm/iframe-parent-postmessage-expected.txt: Added.
- wasm/iframe-parent-postmessage.html: Added.
- wasm/iframe-postmessage-expected.txt: Added.
- wasm/iframe-postmessage.html: Added.
- wasm/resources/frame-parent.html: Added.
- wasm/resources/frame.html: Added.
- wasm/resources/load_wasm.js: Added.
(createWasmModule):
- wasm/window-postmessage-expected.txt: Added.
- wasm/window-postmessage.html: Added.
- workers/wasm-mem-post-message.html:
- 4:54 PM Changeset in webkit [225655] by
-
- 7 edits in trunk/Source/WebKit
Propagate WebKit2Logging channels to the Web Process
https://bugs.webkit.org/show_bug.cgi?id=180517
Reviewed by Tim Horton.
If you set WebKit2Logging, you want those channels active in both the UI process and
the web process, but without tricky 'defaults' gyrations, setting them in the web process
was hard.
Instead, send them through to the process via WebProcessCreationParameters, as we do
for WebCoreLogging channels.
- Platform/LogInitialization.h:
- Platform/Logging.cpp:
(WebKit::initializeLogChannelsIfNecessary):
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 4:22 PM Changeset in webkit [225654] by
-
- 7 edits in trunk/Source
Web Inspector: Fix style in remote inspector classes
https://bugs.webkit.org/show_bug.cgi?id=180545
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-12-07
Reviewed by Youenn Fablet.
Source/JavaScriptCore:
- inspector/remote/RemoteControllableTarget.h:
- inspector/remote/RemoteInspectionTarget.h:
- runtime/JSGlobalObjectDebuggable.h:
Source/WebCore:
- page/PageDebuggable.h:
- workers/service/context/ServiceWorkerDebuggable.h:
- 4:19 PM Changeset in webkit [225653] by
-
- 2 edits in trunk/LayoutTests
Skipped imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm on macOS WK1
https://bugs.webkit.org/show_bug.cgi?id=180554
https://bugs.webkit.org/show_bug.cgi?id=180553
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 4:18 PM Changeset in webkit [225652] by
-
- 2 edits in trunk/Source/JavaScriptCore
Use fastAlignedFree to free aligned memory.
https://bugs.webkit.org/show_bug.cgi?id=180540
Reviewed by Saam Barati.
- heap/IsoAlignedMemoryAllocator.cpp:
(JSC::IsoAlignedMemoryAllocator::~IsoAlignedMemoryAllocator):
- 4:15 PM Changeset in webkit [225651] by
-
- 4 edits in trunk/Source/WebKit
Add logging for EditorState in RemoteLayerTree transactions
https://bugs.webkit.org/show_bug.cgi?id=180515
Reviewed by Wenson Hsieh.
Make EditorState TextStream-able, and dump it in layer tree transactions.
- Shared/EditorState.cpp:
(WebKit::operator<<):
- Shared/EditorState.h:
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::description const):
- 3:58 PM Changeset in webkit [225650] by
-
- 17 edits in trunk/Source/WebCore
Move security origin filtering for getMatchedCSSRules out of StyleResolver
https://bugs.webkit.org/show_bug.cgi?id=180468
Reviewed by Zalan Bujtas.
The non-standard getMatchedCSSRules API should not return rules from stylesheets in different security origins.
To implement this we currently have lots of invasive code in StyleResolver, RuleSets and ElementRuleCollector
basically passing around a bit. This also makes RuleSets document specific blocking optimizations.
This patches replaces the mechanism with a bit in StyleRule which is much simpler.
- css/DocumentRuleSets.cpp:
(WebCore::makeRuleSet):
- css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
- css/ElementRuleCollector.h:
(WebCore::ElementRuleCollector::setPseudoStyleRequest):
(WebCore::ElementRuleCollector::setSameOriginOnly): Deleted.
- css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::collectFeatures):
- css/RuleFeature.h:
(WebCore::RuleFeature::RuleFeature):
- css/RuleSet.cpp:
(WebCore::RuleData::RuleData):
(WebCore::RuleSet::addRule):
(WebCore::RuleSet::addChildRules):
(WebCore::RuleSet::addRulesFromSheet):
(WebCore::RuleSet::addStyleRule):
- css/RuleSet.h:
(WebCore::RuleData::linkMatchType const):
(WebCore::RuleData::hasDocumentSecurityOrigin const): Deleted.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::pseudoStyleRulesForElement):
- css/StyleResolver.h:
- css/StyleRule.cpp:
(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::createForSplitting):
(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount const):
(WebCore::StyleRule::create): Deleted.
- css/StyleRule.h:
(WebCore::StyleRuleBase::StyleRuleBase):
(WebCore::StyleRuleBase::hasDocumentSecurityOrigin const):
Add a bit.
- css/parser/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
Include hasDocumentSecurityOrigin bit to parser context. This means that a stylesheet data structures
can't be shared between a contexts where this differs. This likely very rare in practice.
(WebCore::operator==):
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeStyleRule):
- css/parser/CSSParserMode.h:
(WebCore::CSSParserContextHash::hash):
- editing/EditingStyle.cpp:
(WebCore::EditingStyle::mergeStyleFromRules):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::getMatchedCSSRules const):
Filter out rules from different security origin after getting them from style resolver.
- 3:55 PM Changeset in webkit [225649] by
-
- 3 edits in trunk/Source/WebCore
AX: Document::existingAXObjectCache() should always return the existing AXObjectCache.
https://bugs.webkit.org/show_bug.cgi?id=180548
<rdar://problem/35917755>
Reviewed by Chris Fleizach.
Currently the AX cache becomes unreachable through Document::existingAXObjectCache soon after the render tree is destroyed.
From this point, the Node objects can't deregister themselves from the AX cache anymore. In some cases, it's
redundant/not advised to notify the cache about certain changes when the document is being destroyed, but the
callsites should make that decision.
Covered by existing tests.
- dom/Document.cpp:
(WebCore::Document::existingAXObjectCacheSlow const):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::takeChildInternal):
- 3:30 PM Changeset in webkit [225648] by
-
- 2 edits in trunk/Source/WebCore
Fix erroneous ASSERT in DocumentThreadableLoader::didFail
https://bugs.webkit.org/show_bug.cgi?id=180549
Patch by Youenn Fablet <youenn@apple.com> on 2017-12-07
Reviewed by Alex Christensen.
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::didFail): ASSERT was checking whether the optional was null.
This could never be the case since we move the value of the optional, not the optional itself.
Ensure that the optional value is null so that we are sure request is being loaded and make the optional null just after that.
- 3:25 PM Changeset in webkit [225647] by
-
- 3 edits in trunk/Source/WebCore
iOS: Many AMP pages crash inside Document::updateStyleIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=180550
<rdar://problem/35410390>
Reviewed by Zalan Bujtas.
The crash was caused when updatign the layout of an non-flattened frame inside a flattened frame.
In those cases, isInChildFrameWithFrameFlattening is false on the inner frame.
No new tests for now.
- dom/NoEventDispatchAssertion.h:
- rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::performLayoutWithFlattening): Disable the assertion temporarily here.
In theory, we should be able to remove the check for isInChildFrameWithFrameFlattening but we err
on the safer side for now.
- 3:17 PM Changeset in webkit [225646] by
-
- 2 edits in trunk/Source/WebKit
CacheStorage Cache should not remove any disk entry when clearing its memory representation
https://bugs.webkit.org/show_bug.cgi?id=180546
Patch by Youenn Fablet <youenn@apple.com> on 2017-12-07
Reviewed by Brady Eidson.
- NetworkProcess/cache/CacheStorageEngineCache.cpp:
(WebKit::CacheStorage::Cache::clearMemoryRepresentation):
- 1:59 PM Changeset in webkit [225645] by
-
- 5 edits2 adds in trunk
Always synchronously continue with fragment navigations
https://bugs.webkit.org/show_bug.cgi?id=180544
<rdar://problem/34815986> and <rdar://problem/35126690>
Reviewed by Geoffrey Garen.
Source/WebCore:
Test: http/tests/dom/document-fragment.html
When a decidePolicyForNavigationAction completionHandler is called asynchronously,
the document's URL has not changed yet when JavaScript execution continues. This causes
significant web incompatibility because all browsers change the document's URL immediately
during fragment navigations. In order to make WebKit applications more web compatible,
we now immediately continue to have the state consistent. To keep compatibility with any
WebView, UIWebView, or WKWebView applications that use these delegate callbacks to update
state, we still call decidePolicyForNavigationAction. This would break a theoretical app
that would cancel fragment navigations, but it fixes apps that continue fragment navigations
asynchronously.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:
(-[DecidePolicyForNavigationActionFragmentDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(TEST):
Add a test that verifies that decidePolicyForNavigationAction is called for fragment navigations.
LayoutTests:
- http/tests/dom/document-fragment-expected.txt: Added.
- http/tests/dom/document-fragment.html: Added.
Add a test that verifies that the fragment of the document is set immediately during a fragment navigation,
even if decidePolicyForNavigationAction is called asynchronously. Also verify the order of various events
associated with the navigation.
- 1:46 PM Changeset in webkit [225644] by
-
- 8 edits6 adds in trunk
Activate IDB and WebSockets in service workers
https://bugs.webkit.org/show_bug.cgi?id=180534
Patch by Youenn Fablet <youenn@apple.com> on 2017-12-07
Reviewed by Brady Eidson.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https-expected.txt:
Source/WebCore:
Tests: http/tests/workers/service/serviceworker-idb.https.html
http/tests/workers/service/serviceworker-websocket.https.html
Using the dummy document used for loading to also fuel IDB and WebSocket.
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
- workers/service/context/ServiceWorkerThread.h:
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::idbConnectionProxy):
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
LayoutTests:
- http/tests/workers/service/resources/serviceworker-idb-worker.js: Added.
- http/tests/workers/service/resources/serviceworker-websocket-worker.js: Added.
- http/tests/workers/service/serviceworker-idb.https-expected.txt: Added.
- http/tests/workers/service/serviceworker-idb.https.html: Added.
- http/tests/workers/service/serviceworker-websocket.https-expected.txt: Added.
- http/tests/workers/service/serviceworker-websocket.https.html: Added.
- 1:28 PM Changeset in webkit [225643] by
-
- 8 edits in trunk/Source
Unreviewed, rolling out r225634.
This caused layout tests to time out.
Reverted changeset:
"Simplify log channel configuration UI"
https://bugs.webkit.org/show_bug.cgi?id=180527
https://trac.webkit.org/changeset/225634
- 1:04 PM Changeset in webkit [225642] by
-
- 9 edits4 adds in trunk
[EME] Support the 'encrypted' event for FPS encrypted streams
https://bugs.webkit.org/show_bug.cgi?id=180480
Reviewed by Eric Carlson.
Source/WebCore:
Test: platform/mac/media/encrypted-media/fps-encrypted-event.html
Pass initData and initDataType up to HTMLMediaElement from SourceBufferPrivateAVFObjC.
Drive-by fix: initialize the initData and initDataType values of MediaEncryptedEvent from
values in its initializer struct.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
(WebCore::HTMLMediaElement::mediaPlayerInitializationDataEncountered):
- html/MediaEncryptedEvent.cpp:
(WebCore::MediaEncryptedEvent::MediaEncryptedEvent):
(WebCore::MediaEncryptedEvent::initDataType): Deleted.
(WebCore::MediaEncryptedEvent::initData): Deleted.
- html/MediaEncryptedEvent.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cdmInstanceAttached):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
LayoutTests:
- platform/mac/TestExpectations:
- platform/mac/media/encrypted-media/content/fps-cbcs.mp4: Added.
- platform/mac/media/encrypted-media/fps-encrypted-event-expected.txt: Added.
- platform/mac/media/encrypted-media/fps-encrypted-event.html: Added.
- 12:29 PM Changeset in webkit [225641] by
-
- 35 edits25 adds in trunk
[Cocoa] Add SPI to disallow user-installed fonts
https://bugs.webkit.org/show_bug.cgi?id=180062
<rdar://problem/35042408>
Reviewed by Simon Fraser.
Source/WebCore:
This hooks up a WK2 preference, ShouldDisallowUserInstalledFonts, to our font selection
code. This preference works by specifying an attribute to our font selection code which
will prohibit user-installed fonts from ever being selected. This works both to disallow
newly installed fonts, as well as disallowing user-installed fonts which "shadow" (or
have the same name as) existing fonts, so that the existing font is selected instead.
The goal of this setting is to decrease the fingerprinting surface area which trackers
can use to identify users on the open Web.
Tests: fast/text/user-installed-font.html
fast/text/user-installed-fonts/disable.html
fast/text/user-installed-fonts/shadow-disable.html
fast/text/user-installed-fonts/shadow-family-disable.html
fast/text/user-installed-fonts/shadow-family.html
fast/text/user-installed-fonts/shadow-postscript-disable.html
fast/text/user-installed-fonts/shadow-postscript-family-disable.html
fast/text/user-installed-fonts/shadow-postscript-family.html
fast/text/user-installed-fonts/shadow-postscript.html
fast/text/user-installed-fonts/shadow.html
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):
- css/StyleResolver.cpp:
(WebCore::StyleResolver::initializeFontStyle):
- page/Settings.yaml:
- platform/graphics/FontCache.h:
- platform/graphics/FontDescription.cpp:
(WebCore::FontDescription::FontDescription):
- platform/graphics/FontDescription.h:
(WebCore::FontDescription::mayRepresentUserInstalledFont const):
(WebCore::FontDescription::setMayRepresentUserInstalledFont):
(WebCore::FontDescription::operator== const):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontDatabase::singleton):
(WebCore::FontDatabase::singletonAllowingUserInstalledFonts):
(WebCore::FontDatabase::singletonDisallowingUserInstalledFonts):
(WebCore::FontDatabase::collectionForFamily):
(WebCore::FontDatabase::fontForPostScriptName):
(WebCore::FontDatabase::FontDatabase):
(WebCore::FontCache::getFontSelectionCapabilitiesInFamily):
(WebCore::platformFontLookupWithFamily):
(WebCore::invalidateFontCache):
(WebCore::fontWithFamily):
- style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::setShouldDisallowUserInstalledFonts):
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
Source/WebCore/PAL:
- pal/spi/cocoa/CoreTextSPI.h:
Source/WebKit:
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetShouldDisallowUserInstalledFonts):
(WKPreferencesGetShouldDisallowUserInstalledFonts):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _shouldDisallowUserInstalledFonts]):
(-[WKPreferences _setShouldDisallowUserInstalledFonts:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
Tools:
- WebKitTestRunner/InjectedBundle/ActivateFonts.h:
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::resetAfterTest):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:
(WTR::resourcesDirectoryURL):
(WTR::activateFonts):
(WTR::installFakeHelvetica):
(WTR::uninstallFakeHelvetica):
- WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:
(WTR::TestRunner::installFakeHelvetica):
- WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
- WebKitTestRunner/fonts/FakeHelvetica-Helvetica-400.ttf: Added.
- WebKitTestRunner/fonts/FakeHelvetica-Helvetica-500.ttf: Added.
- WebKitTestRunner/fonts/FakeHelvetica-Helvetica2-400.ttf: Added.
- WebKitTestRunner/fonts/FakeHelvetica-Helvetica2-500.ttf: Added.
LayoutTests:
- fast/text/user-installed-font-expected.html: Added.
- fast/text/user-installed-font.html: Added.
- fast/text/user-installed-fonts/disable-expected-mismatch.html: Added.
- fast/text/user-installed-fonts/disable.html: Added.
- fast/text/user-installed-fonts/shadow-disable-expected-mismatch.html: Added.
- fast/text/user-installed-fonts/shadow-disable.html: Added.
- fast/text/user-installed-fonts/shadow-expected.html: Added.
- fast/text/user-installed-fonts/shadow-family-disable-expected-mismatch.html: Added.
- fast/text/user-installed-fonts/shadow-family-disable.html: Added.
- fast/text/user-installed-fonts/shadow-family-expected.html: Added.
- fast/text/user-installed-fonts/shadow-family.html: Added.
- fast/text/user-installed-fonts/shadow-postscript-disable-expected-mismatch.html: Added.
- fast/text/user-installed-fonts/shadow-postscript-disable.html: Added.
- fast/text/user-installed-fonts/shadow-postscript-expected.html: Added.
- fast/text/user-installed-fonts/shadow-postscript-family-disable-expected-mismatch.html: Added.
- fast/text/user-installed-fonts/shadow-postscript-family-disable.html: Added.
- fast/text/user-installed-fonts/shadow-postscript-family-expected.html: Added.
- fast/text/user-installed-fonts/shadow-postscript-family.html: Added.
- fast/text/user-installed-fonts/shadow-postscript.html: Added.
- fast/text/user-installed-fonts/shadow.html: Added.
- platform/gtk/TestExpectations:
- platform/ios-wk1/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- platform/wpe/TestExpectations:
- 12:16 PM EnvironmentVariables edited by
- Document GIGACAGE_ENABLED envvar (diff)
- 12:09 PM Changeset in webkit [225640] by
-
- 5 edits30 moves20 adds22 deletes in trunk/LayoutTests
Move all tests under http/tests/loading/resourceLoadStatistics/ to http/tests/resourceLoadStatistics/ and remove expected failures
https://bugs.webkit.org/show_bug.cgi?id=180502
<rdar://problem/35891216>
Reviewed by Brent Fulgham.
This change moves all tests under http/tests/loading/resourceLoadStatistics/ to http/tests/resourceLoadStatistics/
and removes expected failures.
The one exception is the full removal of
http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-network-process-crash.html
which never seems to have worked properly. Follow-up work for this is tracked in <rdar://problem/35887722>.
- http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html: Removed.
- http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html: Removed.
- http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store.html: Removed.
- http/tests/loading/resourceLoadStatistics/grandfathering-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/grandfathering.html: Removed.
- http/tests/loading/resourceLoadStatistics/non-prevalent-resource-with-user-interaction-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html: Removed.
- http/tests/loading/resourceLoadStatistics/non-prevalent-resource-without-user-interaction-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html: Removed.
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html: Removed.
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-network-process-crash-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-network-process-crash.html: Removed.
This test is not being added back under http/tests/resourceLoadStatistics/ since it doesn't seem to work.
Follow-up work for this is tracked in <rdar://problem/35887722>.
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html: Removed.
- http/tests/loading/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html: Removed.
- http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html: Removed.
- http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction.html: Removed.
- http/tests/loading/resourceLoadStatistics/prevalent-resource-without-user-interaction-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/prevalent-resource-without-user-interaction.html: Removed.
- http/tests/loading/resourceLoadStatistics/prune-statistics-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/prune-statistics.html: Removed.
- http/tests/loading/resourceLoadStatistics/telemetry-generation-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/telemetry-generation.html: Removed.
- http/tests/loading/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction.html: Removed.
- http/tests/loading/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame.html: Removed.
- http/tests/loading/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time.html: Removed.
- http/tests/loading/resourceLoadStatistics/user-interaction-reported-after-website-data-removal-expected.txt: Removed.
- http/tests/loading/resourceLoadStatistics/user-interaction-reported-after-website-data-removal.html: Removed.
- http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics-expected.txt.
- http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html.
- http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-expected.txt.
- http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html.
- http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins-expected.txt.
- http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html.
- http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to-expected.txt.
- http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html.
- http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics-expected.txt.
- http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html.
- http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins-expected.txt.
- http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html.
- http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins-expected.txt.
- http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html.
- http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to-expected.txt.
- http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html.
- http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-expected.txt.
- http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour-expected.txt.
- http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html.
- http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store.html.
- http/tests/resourceLoadStatistics/grandfathering-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/grandfathering-expected.txt.
- http/tests/resourceLoadStatistics/grandfathering.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/grandfathering.html.
- http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/non-prevalent-resource-with-user-interaction-expected.txt.
- http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html.
- http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/non-prevalent-resource-without-user-interaction-expected.txt.
- http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html.
- http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion-expected.txt.
- http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html.
- http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout-expected.txt.
- http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html.
- http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction-expected.txt.
- http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html.
- http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-expected.txt.
- http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-expected.txt.
- http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html.
- http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction.html.
- http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/prevalent-resource-without-user-interaction-expected.txt.
- http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/prevalent-resource-without-user-interaction.html.
- http/tests/resourceLoadStatistics/prune-statistics-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/prune-statistics-expected.txt.
- http/tests/resourceLoadStatistics/prune-statistics.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/prune-statistics.html.
- http/tests/resourceLoadStatistics/resources/get-cookies.php:
- http/tests/resourceLoadStatistics/telemetry-generation-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/telemetry-generation-expected.txt.
- http/tests/resourceLoadStatistics/telemetry-generation.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/telemetry-generation.html.
- http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction-expected.txt.
- http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction.html.
- http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-expected.txt.
- http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame.html.
- http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-expected.txt.
- http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time.html.
- http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal-expected.txt: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/user-interaction-reported-after-website-data-removal-expected.txt.
- http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal.html: Copied from LayoutTests/http/tests/loading/resourceLoadStatistics/user-interaction-reported-after-website-data-removal.html.
- platform/ios/TestExpectations:
Removed 'loading' directory from path and made sure no tests are expected to fail.
Skipped tests that rely on UIHelper.activateAt() since it doesn't produce a user
gesture that ITP captures on iOS.
- platform/mac-wk2/TestExpectations:
Removed 'loading' directory from path and made sure no tests are expected to fail.
- platform/wk2/TestExpectations:
Removed 'loading' directory from path and made sure no tests are expected to fail.
- 12:04 PM Changeset in webkit [225639] by
-
- 19 edits9 adds in trunk
[Web App Manifest] Support display-mode media feature
https://bugs.webkit.org/show_bug.cgi?id=180376
rdar://problem/35837993
Patch by David Quesada <david_quesada@apple.com> on 2017-12-07
Reviewed by Geoffrey Garen.
Source/WebCore:
Tests: applicationmanifest/display-mode-subframe.html
applicationmanifest/display-mode.html
- Modules/applicationmanifest/ApplicationManifest.h:
(WebCore::ApplicationManifest::encode const):
(WebCore::ApplicationManifest::decode):
- Modules/applicationmanifest/ApplicationManifestParser.cpp:
(WebCore::ApplicationManifestParser::parseManifest):
(WebCore::ApplicationManifestParser::parseDisplay):
- Modules/applicationmanifest/ApplicationManifestParser.h:
Add a 'display' property to ApplicationManifest and have ApplicationManifestParser
populate it by parsing the 'display' property from the raw manifest.
- css/CSSValueKeywords.in:
- css/MediaFeatureNames.h:
- css/MediaQueryEvaluator.cpp:
(WebCore::displayModeEvaluate):
To evaluate whether a display-mode query matches, compare the parameter to the
display mode of the manifest applied to the main frame. If there is no manifest,
use the fallback display mode 'browser' - the spec mandates that display-mode
must be exposed even if there is no applied manifest.
- css/MediaQueryExpression.cpp:
(WebCore::featureWithValidIdent):
(WebCore::isFeatureValidWithoutValue):
Source/WebKit:
- UIProcess/API/Cocoa/_WKApplicationManifest.h:
- UIProcess/API/Cocoa/_WKApplicationManifest.mm:
(-[_WKApplicationManifest initWithCoder:]):
(-[_WKApplicationManifest encodeWithCoder:]):
(-[_WKApplicationManifest displayMode]):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp:
(WebCore::operator<<):
(ApplicationManifestParserTest::testDisplay):
(TEST_F):
Add unit tests for the parsing of the 'display' manifest property.
- TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/display-mode.html: Added.
Update API tests to include _WKApplicationManifest.displayMode.
- WebKitTestRunner/TestController.cpp:
(WTR::parseStringTestHeaderValueAsRelativePath):
(WTR::updateTestOptionsFromTestHeader):
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::hasSameInitializationOptions const):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformCreateWebView):
Teach WKTR to look for and apply an app manifest. A new <!--webkit-test-runner-->
directive 'applicationManifest' can specify a path (relative to the test file itself)
to a JSON app manifest to be applied to the web view before running the test.
LayoutTests:
- applicationmanifest/display-mode-expected.txt: Added.
- applicationmanifest/display-mode-subframe-expected.txt: Added.
- applicationmanifest/display-mode-subframe.html: Added.
- applicationmanifest/display-mode.html: Added.
- applicationmanifest/resources/display-mode-subframe-1.html: Added.
- applicationmanifest/resources/standalone.manifest: Added.
- 11:56 AM Changeset in webkit [225638] by
-
- 13 edits in trunk
Creating a second AVPlayerItemVideoOutput causes flakey failures
https://bugs.webkit.org/show_bug.cgi?id=177119
<rdar://problem/34507977>
Reviewed by Dean Jackson.
Source/WebCore:
Rather than having two concurrent AVPlayerItemVideoOutputs when painting to OpenGL,
use only one, but with the OpenGL compatibility flags enabled, for both 3D and 2D
canvas painting.
Of course, once this is fixed, the test breaks again because VideoTextureCopierCV is
stomping on top of some WebGL state set by the test. Rather than expand the
VideoTextureCopierCV's GraphicsStateSaver, use a totally separate (but shared) GL context to
implement the texture copy, so that its own state will not affect the state of the WebGL
context.
This necessitates adding a new createShared() factory for GraphicsContext3D. Since this is only
used on Cocoa platforms (for now), make it platform specific, and modify the other implementations
only so far as to throw assertions if somehow a shared context pointer is passed into their
constructors.
Drive-by fixes:
- These changes exposed some test failures, which were off-by-1-or-2 errors in the color
output of videos painted into WebGL contexts. The Y' parameter needs to be scaled by 16/255
for video-range conversions and the CbCr vales by 128/255 (rather than just 0.5). Make the
color transforms a full 4x4 matrix and do the scaling in the matrix rather than tracked by a
separate uniform.
- There was a slight error in WebCoreDecompressionSession that could cause seeks to never
complete because incoming frames would be skipped if their startTime was in the past
(rather than their startTime + duration being in the past).
- The matrix name comparison should use CFEqual rather than pointer equality to test.
- iOS currently has a bug where the red and green color channels will be reversed when
uploading BGRA pixel formatted data to a texture; work around this bug for now.
- platform/graphics/GraphicsContext3D.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::videoOutputHasAvailableFrame):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateAVFoundationObjC::nativeImageForCurrentTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange):
- platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
- platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
(WebCore::GraphicsContext3D::createShared):
(WebCore::GraphicsContext3D::GraphicsContext3D):
- platform/graphics/cv/VideoTextureCopierCV.cpp:
(WebCore::VideoTextureCopierCV::VideoTextureCopierCV):
(WebCore::VideoTextureCopierCV::~VideoTextureCopierCV):
(WebCore::transferFunctionFromString):
(WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction):
(WebCore::VideoTextureCopierCV::initializeUVContextObjects):
(WebCore::VideoTextureCopierCV::copyImageToPlatformTexture):
(WebCore::VideoTextureCopierCV::copyVideoTextureToPlatformTexture):
- platform/graphics/cv/VideoTextureCopierCV.h:
(WebCore::VideoTextureCopierCV::context):
- platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
LayoutTests:
- platform/mac/TestExpectations:
- 11:46 AM Changeset in webkit [225637] by
-
- 6 edits4 adds in trunk
[EME] Support generateRequest() in CDMFairPlayStreaming
https://bugs.webkit.org/show_bug.cgi?id=179752
Reviewed by Eric Carlson.
Source/WebCore:
Tests: platform/mac/media/encrypted-media/fps-createSession.html
platform/mac/media/encrypted-media/fps-generateRequest.html
Add support for generating license requests from initialization data in
CDMFairPlayStreaming. To do so, add explicit checks for FairPlay Steraming requirements:
reqests will fail if no server certificate exists, and will fail if no content key id exists
in the initialization data.
- platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:
(WebCore::CDMPrivateFairPlayStreaming::extractKeyIDsSinf):
(WebCore::CDMPrivateFairPlayStreaming::sanitizeSinf):
(WebCore::CDMFactory::platformRegisterFactories):
- platform/graphics/avfoundation/CDMFairPlayStreaming.h:
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest):
LayoutTests:
- platform/mac/TestExpectations:
- platform/mac/media/encrypted-media/fps-createSession-expected.txt: Added.
- platform/mac/media/encrypted-media/fps-createSession.html: Added.
- platform/mac/media/encrypted-media/fps-generateRequest-expected.txt: Added.
- platform/mac/media/encrypted-media/fps-generateRequest.html: Added.
- 11:41 AM Changeset in webkit [225636] by
-
- 2 edits in trunk/Tools
Add WebRTC watchlist rule, update MediaStream rule
https://bugs.webkit.org/show_bug.cgi?id=180536
<rdar://problem/35914066>
Reviewed by Youenn Fablet.
- Scripts/webkitpy/common/config/watchlist:
- 11:25 AM Changeset in webkit [225635] by
-
- 2 edits in trunk/Source/WebCore
[EME] Possible deadlock when aborting a SourceBufferPrivateAVFObjC append operation
https://bugs.webkit.org/show_bug.cgi?id=180486
Reviewed by Eric Carlson.
It's possible that an abort() operation which is blocked on the ongoing appendBuffer()
operation completing will deadlock forever, with either the willProvideContentKeyRequest
or didProvideContentKeyRequest callbacks blocking waiting to be run on the main thread
(which is itself blocked waiting for the append operation to complete).
To break this deadlock, add a new abortSemaphore which is signaled in the abort() method
and have the willProvide... and didProvide... methods block both on their own semaphores
as well as the abortSemaphore, allowing them to break out even if their main thread calls
never get a chance to execute.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]):
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::abort):
- 11:06 AM Changeset in webkit [225634] by
-
- 8 edits in trunk/Source
Simplify log channel configuration UI
https://bugs.webkit.org/show_bug.cgi?id=180527
<rdar://problem/35908382>
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
- inspector/protocol/Console.json:
Source/WebCore:
No new tests -- no change in functionality.
- inspector/agents/WebConsoleAgent.cpp:
(WebCore::WebConsoleAgent::getLoggingChannels):
(WebCore::channelConfigurationForString):
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Models/LoggingChannel.js:
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createGeneralSettingsView):
- 10:54 AM Changeset in webkit [225633] by
-
- 3 edits in trunk/Source/WebCore
ServiceWorker Inspector: Use the SW's scope url for the remote inspection target metadata
https://bugs.webkit.org/show_bug.cgi?id=180519
Reviewed by Youenn Fablet.
- workers/service/context/ServiceWorkerDebuggable.cpp:
(WebCore::ServiceWorkerDebuggable::ServiceWorkerDebuggable):
- workers/service/context/ServiceWorkerDebuggable.h:
Switch to the scope URL for the remote inspector target info.
- 10:49 AM Changeset in webkit [225632] by
-
- 23 edits4 moves in trunk/Source
[Re-landing r225620] Refactoring: Rename ScrambledPtr to Poisoned.
https://bugs.webkit.org/show_bug.cgi?id=180514
Reviewed by Saam Barati and JF Bastien.
Re-landing r225620 with speculative build fix for GCC 7.
Source/JavaScriptCore:
- API/JSCallbackObject.h:
- API/JSObjectRef.cpp:
(classInfoPrivate):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- assembler/MacroAssemblerCodeRef.h:
(JSC::FunctionPtr::FunctionPtr):
(JSC::FunctionPtr::value const):
(JSC::FunctionPtr::executableAddress const):
(JSC::ReturnAddressPtr::ReturnAddressPtr):
(JSC::ReturnAddressPtr::value const):
(JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
(JSC::MacroAssemblerCodePtr::createFromExecutableAddress):
(JSC::MacroAssemblerCodePtr::poisonedPtr const):
(JSC::MacroAssemblerCodePtr:: const):
(JSC::MacroAssemblerCodePtr::operator! const):
(JSC::MacroAssemblerCodePtr::operator== const):
(JSC::MacroAssemblerCodePtr::emptyValue):
(JSC::MacroAssemblerCodePtr::deletedValue):
(JSC::MacroAssemblerCodePtr::scrambledPtr const): Deleted.
- b3/B3LowerMacros.cpp:
- b3/testb3.cpp:
(JSC::B3::testInterpreter):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::compileNewStringObject):
(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitAllocateDestructibleObject):
- jit/SpecializedThunkJIT.h:
(JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):
- jit/ThunkGenerators.cpp:
(JSC::virtualThunkFor):
(JSC::boundThisNoArgsFunctionCallGenerator):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::handleHostCall):
(JSC::LLInt::setUpCall):
- llint/LowLevelInterpreter64.asm:
- runtime/InitializeThreading.cpp:
(JSC::initializeThreading):
- runtime/JSCPoisonedPtr.cpp: Copied from Source/JavaScriptCore/runtime/JSCScrambledPtr.cpp.
(JSC::initializePoison):
(JSC::initializeScrambledPtrKeys): Deleted.
- runtime/JSCPoisonedPtr.h: Copied from Source/JavaScriptCore/runtime/JSCScrambledPtr.h.
- runtime/JSCScrambledPtr.cpp: Removed.
- runtime/JSCScrambledPtr.h: Removed.
- runtime/JSDestructibleObject.h:
(JSC::JSDestructibleObject::classInfo const):
- runtime/JSSegmentedVariableObject.h:
(JSC::JSSegmentedVariableObject::classInfo const):
- runtime/Structure.h:
- runtime/VM.h:
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Poisoned.cpp: Copied from Source/WTF/wtf/ScrambledPtr.cpp.
(WTF::makePoison):
(WTF::makeScrambledPtrKey): Deleted.
- wtf/Poisoned.h: Copied from Source/WTF/wtf/ScrambledPtr.h.
(WTF::PoisonedImpl::PoisonedImpl):
(WTF::PoisonedImpl::assertIsPoisoned const):
(WTF::PoisonedImpl::assertIsNotPoisoned const):
(WTF::PoisonedImpl::unpoisoned const):
(WTF::PoisonedImpl::operator-> const):
(WTF::PoisonedImpl::bits const):
(WTF::PoisonedImpl::operator! const):
(WTF::PoisonedImpl::operator bool const):
(WTF::PoisonedImpl::operator== const):
(WTF::PoisonedImpl::operator==):
(WTF::PoisonedImpl::operator=):
(WTF::PoisonedImpl::poison):
(WTF::PoisonedImpl::unpoison):
(WTF::ScrambledPtr::ScrambledPtr): Deleted.
(WTF::ScrambledPtr::assertIsScrambled const): Deleted.
(WTF::ScrambledPtr::assertIsNotScrambled const): Deleted.
(WTF::ScrambledPtr::descrambled const): Deleted.
(WTF::ScrambledPtr::operator-> const): Deleted.
(WTF::ScrambledPtr::bits const): Deleted.
(WTF::ScrambledPtr::operator! const): Deleted.
(WTF::ScrambledPtr::operator bool const): Deleted.
(WTF::ScrambledPtr::operator== const): Deleted.
(WTF::ScrambledPtr::operator==): Deleted.
(WTF::ScrambledPtr::operator=): Deleted.
(WTF::ScrambledPtr::scramble): Deleted.
(WTF::ScrambledPtr::descramble): Deleted.
- wtf/ScrambledPtr.cpp: Removed.
- wtf/ScrambledPtr.h: Removed.
- 10:15 AM Changeset in webkit [225631] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed Windows build fix.
- PlatformWin.cmake:
- 9:13 AM Changeset in webkit [225630] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, rolling out r224931.
This test is no longer in the tree.
Reverted changeset:
"imported/w3c/web-platform-tests/2dcontext/the-canvas-
state/canvas_state_restore_001.htm is an ImageOnlyFailure"
https://bugs.webkit.org/show_bug.cgi?id=179786
https://trac.webkit.org/changeset/224931
- 8:32 AM Changeset in webkit [225629] by
-
- 23 edits3 moves1 add1 delete in trunk/Source
Unreviewed, rolling out r225620
https://bugs.webkit.org/show_bug.cgi?id=180514
<rdar://problem/35901694>
It broke the build with GCC 7, and I don't know how to fix it.
Source/JavaScriptCore:
- API/JSCallbackObject.h:
- API/JSObjectRef.cpp:
(classInfoPrivate):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- assembler/MacroAssemblerCodeRef.h:
(JSC::FunctionPtr::FunctionPtr):
(JSC::FunctionPtr::value const):
(JSC::FunctionPtr::executableAddress const):
(JSC::ReturnAddressPtr::ReturnAddressPtr):
(JSC::ReturnAddressPtr::value const):
(JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
(JSC::MacroAssemblerCodePtr::createFromExecutableAddress):
(JSC::MacroAssemblerCodePtr::scrambledPtr const):
(JSC::MacroAssemblerCodePtr:: const):
(JSC::MacroAssemblerCodePtr::operator! const):
(JSC::MacroAssemblerCodePtr::operator== const):
(JSC::MacroAssemblerCodePtr::emptyValue):
(JSC::MacroAssemblerCodePtr::deletedValue):
(JSC::MacroAssemblerCodePtr::poisonedPtr const): Deleted.
- b3/B3LowerMacros.cpp:
- b3/testb3.cpp:
(JSC::B3::testInterpreter):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::compileNewStringObject):
(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitAllocateDestructibleObject):
- jit/SpecializedThunkJIT.h:
(JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):
- jit/ThunkGenerators.cpp:
(JSC::virtualThunkFor):
(JSC::boundThisNoArgsFunctionCallGenerator):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::handleHostCall):
(JSC::LLInt::setUpCall):
- llint/LowLevelInterpreter64.asm:
- runtime/InitializeThreading.cpp:
(JSC::initializeThreading):
- runtime/JSCScrambledPtr.cpp: Renamed from Source/JavaScriptCore/runtime/JSCPoisonedPtr.cpp.
(JSC::initializeScrambledPtrKeys):
- runtime/JSCScrambledPtr.h: Renamed from Source/JavaScriptCore/runtime/JSCPoisonedPtr.h.
- runtime/JSDestructibleObject.h:
(JSC::JSDestructibleObject::classInfo const):
- runtime/JSSegmentedVariableObject.h:
(JSC::JSSegmentedVariableObject::classInfo const):
- runtime/Structure.h:
- runtime/VM.h:
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Poisoned.h: Removed.
- wtf/ScrambledPtr.cpp: Renamed from Source/WTF/wtf/Poisoned.cpp.
(WTF::makeScrambledPtrKey):
- wtf/ScrambledPtr.h: Added.
(WTF::ScrambledPtr::ScrambledPtr):
(WTF::ScrambledPtr::assertIsScrambled const):
(WTF::ScrambledPtr::assertIsNotScrambled const):
(WTF::ScrambledPtr::descrambled const):
(WTF::ScrambledPtr::operator-> const):
(WTF::ScrambledPtr::bits const):
(WTF::ScrambledPtr::operator! const):
(WTF::ScrambledPtr::operator bool const):
(WTF::ScrambledPtr::operator== const):
(WTF::ScrambledPtr::operator==):
(WTF::ScrambledPtr::operator=):
(WTF::ScrambledPtr::scramble):
(WTF::ScrambledPtr::descramble):
- 8:11 AM Changeset in webkit [225628] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix after r225622.
- StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::postMessageToServiceWorkerFromServiceWorker):
- 7:59 AM Changeset in webkit [225627] by
-
- 5 edits in trunk
[WPE][GTK] Freeze WebKit version in user agent
https://bugs.webkit.org/show_bug.cgi?id=180475
Reviewed by Carlos Garcia Campos.
.:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Apple has frozen the WebKit version in its user agent, so we should too, at the same point.
- platform/glib/UserAgentGLib.cpp:
(WebCore::versionForUAString):
- 7:36 AM Changeset in webkit [225626] by
-
- 6 edits in trunk/LayoutTests
Update imported/w3c/web-platform-tests/css/css-pseudo-4/marker-font-properties.html from upstream.
https://bugs.webkit.org/show_bug.cgi?id=177362
Unreviewed test gardening.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo-4/marker-font-properties-expected.html:
- web-platform-tests/css/css-pseudo-4/marker-font-properties.html:
LayoutTests:
This makes it pass on GTK and WPE (at least locally).
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 5:27 AM Changeset in webkit [225625] by
-
- 2 edits in trunk/LayoutTests
[GTK] Enable imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-api-texttracks.html.
https://bugs.webkit.org/show_bug.cgi?id=168799
Unreviewed test gardening.
It hasn't failed in half a year (last failure was on r216594). I don't know
what fixed it, but there doesn't seem to be a reason to keep the flaky
annotation.
- platform/gtk/TestExpectations:
- 3:54 AM Changeset in webkit [225624] by
-
- 1 edit44 deletes in trunk/LayoutTests
[css-grid] Remove duplicated tests that are now present in WPT
https://bugs.webkit.org/show_bug.cgi?id=180511
Reviewed by Youenn Fablet.
These tests have been moved to WPT upstream repository in the following
Blink commits:
- https://chromium-review.googlesource.com/c/chromium/src/+/674931
- https://chromium-review.googlesource.com/c/chromium/src/+/730707
As we have just updated the WPT imported tests in r225561,
we can get rid now of the duplicates.
- fast/css-grid-layout/absolute-positioning-definite-sizes-expected.txt: Removed.
- fast/css-grid-layout/absolute-positioning-definite-sizes.html: Removed.
- fast/css-grid-layout/absolute-positioning-grid-container-containing-block-expected.txt: Removed.
- fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html: Removed.
- fast/css-grid-layout/absolute-positioning-grid-container-parent-expected.txt: Removed.
- fast/css-grid-layout/absolute-positioning-grid-container-parent.html: Removed.
- fast/css-grid-layout/fit-content-columns-expected.html: Removed.
- fast/css-grid-layout/fit-content-columns.html: Removed.
- fast/css-grid-layout/fit-content-rows-expected.html: Removed.
- fast/css-grid-layout/fit-content-rows.html: Removed.
- fast/css-grid-layout/grid-change-fit-content-argument-expected.txt: Removed.
- fast/css-grid-layout/grid-change-fit-content-argument.html: Removed.
- fast/css-grid-layout/grid-positioned-children-writing-modes-expected.html: Removed.
- fast/css-grid-layout/grid-positioned-children-writing-modes.html: Removed.
- fast/css-grid-layout/grid-positioned-item-dynamic-change-expected.html: Removed.
- fast/css-grid-layout/grid-positioned-item-dynamic-change.html: Removed.
- fast/css-grid-layout/grid-positioned-items-background-expected.html: Removed.
- fast/css-grid-layout/grid-positioned-items-background-rtl-expected.html: Removed.
- fast/css-grid-layout/grid-positioned-items-background-rtl.html: Removed.
- fast/css-grid-layout/grid-positioned-items-background.html: Removed.
- fast/css-grid-layout/grid-positioned-items-content-alignment-expected.txt: Removed.
- fast/css-grid-layout/grid-positioned-items-content-alignment-rtl-expected.txt: Removed.
- fast/css-grid-layout/grid-positioned-items-content-alignment-rtl.html: Removed.
- fast/css-grid-layout/grid-positioned-items-content-alignment.html: Removed.
- fast/css-grid-layout/grid-positioned-items-gaps-expected.txt: Removed.
- fast/css-grid-layout/grid-positioned-items-gaps-rtl-expected.txt: Removed.
- fast/css-grid-layout/grid-positioned-items-gaps-rtl.html: Removed.
- fast/css-grid-layout/grid-positioned-items-gaps.html: Removed.
- fast/css-grid-layout/grid-positioned-items-implicit-grid-expected.txt: Removed.
- fast/css-grid-layout/grid-positioned-items-implicit-grid-line-expected.txt: Removed.
- fast/css-grid-layout/grid-positioned-items-implicit-grid-line.html: Removed.
- fast/css-grid-layout/grid-positioned-items-implicit-grid.html: Removed.
- fast/css-grid-layout/grid-positioned-items-padding-expected.txt: Removed.
- fast/css-grid-layout/grid-positioned-items-padding.html: Removed.
- fast/css-grid-layout/grid-positioned-items-unknown-named-grid-line-expected.txt: Removed.
- fast/css-grid-layout/grid-positioned-items-unknown-named-grid-line.html: Removed.
- fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track-expected.txt: Removed.
- fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track.html: Removed.
- fast/css-grid-layout/grid-sizing-positioned-items-expected.txt: Removed.
- fast/css-grid-layout/grid-sizing-positioned-items.html: Removed.
- fast/css-grid-layout/positioned-grid-items-should-not-create-implicit-tracks-expected.txt: Removed.
- fast/css-grid-layout/positioned-grid-items-should-not-create-implicit-tracks.html: Removed.
- fast/css-grid-layout/positioned-grid-items-should-not-take-up-space-expected.txt: Removed.
- fast/css-grid-layout/positioned-grid-items-should-not-take-up-space.html: Removed.
- 1:32 AM Changeset in webkit [225623] by
-
- 3 edits in trunk/Source/WebCore
[WPE][GTK] Update user agent quirk version strings
https://bugs.webkit.org/show_bug.cgi?id=180474
Reviewed by Carlos Garcia Campos.
- platform/UserAgentQuirks.cpp:
(WebCore::UserAgentQuirks::stringForQuirk):
- platform/glib/UserAgentGLib.cpp:
(WebCore::platformVersionForUAString):
Dec 6, 2017:
- 11:37 PM Changeset in webkit [225622] by
-
- 23 edits3 adds in trunk
We should be able to recover after a Service Worker process crash
https://bugs.webkit.org/show_bug.cgi?id=180477
Reviewed by Brady Eidson and Youenn Fablet.
Source/WebCore:
Test: http/tests/workers/service/postmessage-after-sw-process-crash.https.html
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::serverToContextConnectionCreated):
Once the connection with the context process is established, process "run service worker"
requests that ocurred while establishing the connection.
(WebCore::SWServer::runServiceWorkerIfNecessary):
Take in a lambda function that gets called after the "run service worker" request
is processed. We used to assert that we had a connection to the context process.
We now wait for the connection to be established to process the request, thus
making the operation asynchronous.
(WebCore::SWServer::runServiceWorker):
Split some logic out of runServiceWorkerIfNecessary() to reuse in serverToContextConnectionCreated().
(WebCore::SWServer::markAllWorkersAsTerminated):
Add method to mark all service workers as terminated. This is called when the Service
Worker process crashes.
- workers/service/server/SWServer.h:
Source/WebKit:
- StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerFromClient):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerFromServiceWorker):
Update calls to SWServer::runServiceWorkerIfNecessary() that that it is asynchronous
and takes in a lambda.
- StorageProcess/ServiceWorker/WebSWServerConnection.h:
(WebKit::WebSWServerConnection::ipcConnection const):
Add getter for the underlying IPC connection.
- StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::didClose):
(WebKit::StorageProcess::connectionToContextProcessWasClosed):
Move some code to connectionToContextProcessWasClosed() to avoid duplication.
Also, relaunch the Service Worker process if it has exited but we still
have SWServer connections to regular Web Processes.
(WebKit::StorageProcess::needsServerToContextConnection const):
Utility function to determine if we still need the service worker process.
The current rule is that we need the service worker (aka "context") process
if we still have SWServer connections to regular Web Processes.
- StorageProcess/StorageProcess.h:
- StorageProcess/StorageToWebProcessConnection.cpp:
(WebKit::StorageToWebProcessConnection::didClose):
If didClose() is called for the connection to the service worker context,
let the StorageProcess know so that it can clear its state and relaunch
the process if necessary.
- UIProcess/API/C/WKContext.cpp:
(WKContextTerminateServiceWorkerProcess):
- UIProcess/API/C/WKContextPrivate.h:
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _terminateServiceWorkerProcess]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
Add SPI to terminate the service worker process.
- UIProcess/WebProcessPool.cpp:
(WebKit::m_serviceWorkerProcessTerminationTimer):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::terminateServiceWorkerProcess):
- UIProcess/WebProcessPool.h:
We used to shutdown the ServiceWorker process right away as soon as the last regular
WebProcess was gone. We now give it a grace period of 5 seconds in case a new
WebProcess gets launched shortly after.
Tools:
Add testRunner API to terminate the Service Worker process.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::terminateServiceWorkerProcess):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::terminateServiceWorkerProcess):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
LayoutTests:
Add layout test coverage.
- http/tests/workers/service/postmessage-after-sw-process-crash.https-expected.txt: Added.
- http/tests/workers/service/postmessage-after-sw-process-crash.https.html: Added.
- http/tests/workers/service/resources/postmessage-after-sw-process-crash.js: Added.
- 10:47 PM Changeset in webkit [225621] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Fix iOS (and maybe other platform) build
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::openSQLiteDatabase):
- 10:10 PM Changeset in webkit [225620] by
-
- 23 edits4 moves in trunk/Source
Refactoring: Rename ScrambledPtr to Poisoned.
https://bugs.webkit.org/show_bug.cgi?id=180514
Reviewed by Saam Barati.
Source/JavaScriptCore:
- API/JSCallbackObject.h:
- API/JSObjectRef.cpp:
(classInfoPrivate):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- assembler/MacroAssemblerCodeRef.h:
(JSC::FunctionPtr::FunctionPtr):
(JSC::FunctionPtr::value const):
(JSC::FunctionPtr::executableAddress const):
(JSC::ReturnAddressPtr::ReturnAddressPtr):
(JSC::ReturnAddressPtr::value const):
(JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
(JSC::MacroAssemblerCodePtr::createFromExecutableAddress):
(JSC::MacroAssemblerCodePtr::poisonedPtr const):
(JSC::MacroAssemblerCodePtr:: const):
(JSC::MacroAssemblerCodePtr::operator! const):
(JSC::MacroAssemblerCodePtr::operator== const):
(JSC::MacroAssemblerCodePtr::emptyValue):
(JSC::MacroAssemblerCodePtr::deletedValue):
(JSC::MacroAssemblerCodePtr::scrambledPtr const): Deleted.
- b3/B3LowerMacros.cpp:
- b3/testb3.cpp:
(JSC::B3::testInterpreter):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::compileNewStringObject):
(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitAllocateDestructibleObject):
- jit/SpecializedThunkJIT.h:
(JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):
- jit/ThunkGenerators.cpp:
(JSC::virtualThunkFor):
(JSC::boundThisNoArgsFunctionCallGenerator):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::handleHostCall):
(JSC::LLInt::setUpCall):
- llint/LowLevelInterpreter64.asm:
- runtime/InitializeThreading.cpp:
(JSC::initializeThreading):
- runtime/JSCPoisonedPtr.cpp: Copied from Source/JavaScriptCore/runtime/JSCScrambledPtr.cpp.
(JSC::initializePoison):
(JSC::initializeScrambledPtrKeys): Deleted.
- runtime/JSCPoisonedPtr.h: Copied from Source/JavaScriptCore/runtime/JSCScrambledPtr.h.
- runtime/JSCScrambledPtr.cpp: Removed.
- runtime/JSCScrambledPtr.h: Removed.
- runtime/JSDestructibleObject.h:
(JSC::JSDestructibleObject::classInfo const):
- runtime/JSSegmentedVariableObject.h:
(JSC::JSSegmentedVariableObject::classInfo const):
- runtime/Structure.h:
- runtime/VM.h:
Source/WTF:
We're switching our nomenclature to "poisoning" instead of "scrambling" pointers.
This allows us to use shorter names.
This patch is almost purely refactoring, except for one change: the PoisonedImpl
template class (previously ScrambledPtr) has been modified to allow usage of
a constexpr uint32_t poison value (see Int32Poisoned) in addition to a runtime
determined uintptr_t poison value (see Poisoned).
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Poisoned.cpp: Copied from Source/WTF/wtf/ScrambledPtr.cpp.
(WTF::makePoison):
(WTF::makeScrambledPtrKey): Deleted.
- wtf/Poisoned.h: Copied from Source/WTF/wtf/ScrambledPtr.h.
(WTF::PoisonedImpl::PoisonedImpl):
(WTF::PoisonedImpl::assertIsPoisoned const):
(WTF::PoisonedImpl::assertIsNotPoisoned const):
(WTF::PoisonedImpl::unpoisoned const):
(WTF::PoisonedImpl::operator-> const):
(WTF::PoisonedImpl::bits const):
(WTF::PoisonedImpl::operator! const):
(WTF::PoisonedImpl::operator bool const):
(WTF::PoisonedImpl::operator== const):
(WTF::PoisonedImpl::operator==):
(WTF::PoisonedImpl::operator=):
(WTF::PoisonedImpl::poison):
(WTF::PoisonedImpl::unpoison):
(WTF::ScrambledPtr::ScrambledPtr): Deleted.
(WTF::ScrambledPtr::assertIsScrambled const): Deleted.
(WTF::ScrambledPtr::assertIsNotScrambled const): Deleted.
(WTF::ScrambledPtr::descrambled const): Deleted.
(WTF::ScrambledPtr::operator-> const): Deleted.
(WTF::ScrambledPtr::bits const): Deleted.
(WTF::ScrambledPtr::operator! const): Deleted.
(WTF::ScrambledPtr::operator bool const): Deleted.
(WTF::ScrambledPtr::operator== const): Deleted.
(WTF::ScrambledPtr::operator==): Deleted.
(WTF::ScrambledPtr::operator=): Deleted.
(WTF::ScrambledPtr::scramble): Deleted.
(WTF::ScrambledPtr::descramble): Deleted.
- wtf/ScrambledPtr.cpp: Removed.
- wtf/ScrambledPtr.h: Removed.
- 9:39 PM Changeset in webkit [225619] by
-
- 9 copies1 add in releases/Apple/Safari 11.0.2
Added a tag for Safari 11.0.2.
- 8:06 PM Changeset in webkit [225618] by
-
- 90 edits1 copy1 add in trunk
Modernize some aspects of text codecs, eliminate WebKit use of strcasecmp
https://bugs.webkit.org/show_bug.cgi?id=180009
Reviewed by Alex Christensen.
Source/JavaScriptCore:
- bytecode/ArrayProfile.cpp: Removed include of StringExtras.h.
- bytecode/CodeBlock.cpp: Ditto.
- bytecode/ExecutionCounter.cpp: Ditto.
- runtime/ConfigFile.cpp: Ditto.
- runtime/DatePrototype.cpp: Ditto.
- runtime/IndexingType.cpp: Ditto.
- runtime/JSCJSValue.cpp: Ditto.
- runtime/JSDateMath.cpp: Ditto.
- runtime/JSGlobalObjectFunctions.cpp: Ditto.
- runtime/Options.cpp: Ditto.
(JSC::parse): Use equalLettersIgnoringASCIICase instead of strcasecmp.
Source/WebCore:
- Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::consumeAsStream): Update to use size since the result of
encode is now Vector rather than CString. And for the new UnencodableHandling.
(WebCore::FetchBody::consumeText): Removed now-unneeded type cast. Ditto.
(WebCore::FetchBody::bodyAsFormData const): Ditto.
(WebCore::FetchBody::take): Pass result of encode directly to SharedBuffer::create.
- Modules/websockets/WebSocketDeflater.cpp: Removed include of StringExtras.h.
- bridge/IdentifierRep.h: Ditto.
- bridge/c/c_instance.cpp: Ditto.
- fileapi/BlobBuilder.cpp:
(WebCore::BlobBuilder::append): Updated for CString to Vector change and
for UnencodableHandling.
- html/parser/HTMLMetaCharsetParser.cpp:
(WebCore::HTMLMetaCharsetParser::checkForMetaCharset): Call the decode function
with all the arguments since there is only one decode function now.
- inspector/agents/InspectorDOMAgent.cpp:
(WebCore::computeContentSecurityPolicySHA256Hash): Updated for CString to Vector
change and for UnencodableHandling.
- loader/ResourceCryptographicDigest.cpp:
(WebCore::cryptographicDigestForBytes): Changed argument type to const void*.
- loader/ResourceCryptographicDigest.h: Ditto.
- loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::TextResourceDecoder): Moved initialization of data
members to class definition.
(WebCore::TextResourceDecoder::create): Moved function body here from the header.
(WebCore::TextResourceDecoder::setEncoding): Use equalLettersIgnoringASCIICase.
(WebCore::TextResourceDecoder::shouldAutoDetect const): Updated for name change
to m_parentFrameAutoDetectedEncoding, which obviates a comment.
(WebCore::TextResourceDecoder::flush): Ditto.
- loader/TextResourceDecoder.h: Moved initialization here from constructor.
Moved function bodies out of the class. Renamed m_hintEncoding to
m_parentFrameAutoDetectedEncoding since that is a more accurate description.
- loader/appcache/ApplicationCacheStorage.cpp: Removed include of StringExtras.h.
- page/FrameTree.cpp: Ditto.
- page/PageSerializer.cpp: Ditto.
(WebCore::PageSerializer::serializeFrame): Pass result of encode directly to
StringBuffer::create and update for UnencodableHandling.
(WebCore::PageSerializer::serializeCSSStyleSheet): Ditto.
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::findHashOfContentInPolicies const): Ditto.
- platform/FileHandle.cpp: Removed include of StringExtras.h.
- platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::create): Added an overload that takes Vector<uint8_t>.
- platform/SharedBuffer.h: Ditto.
- platform/URLParser.cpp:
(WebCore::URLParser::encodeQuery): Updated since encode returns a Vector instead
of a CString now and for UnencodableHandling.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Ditto.
- platform/graphics/ca/PlatformCALayer.cpp: Removed include of StringExtras.h.
- platform/network/curl/ResourceHandleCurlDelegate.cpp:
(WebCore::ResourceHandleCurlDelegate::handleDataURL): Updated for Vector instead
of CString.
- platform/network/FormData.cpp:
(WebCore::FormData::create): Added new overload, and simplified some existing ones.
(WebCore::normalizeStringData): Changed return type to Vector<uint8_t> and updated
for UnencodableHandling.
(WebCore::FormData::appendMultiPartStringValue): Updated for change in type of
result of normalizeStringData.
- platform/network/FormData.h: Updated for the above and updated comments.
- platform/network/FormDataBuilder.cpp: Made this a namespace instead of a class.
(WebCore::FormDataBuilder::append): Added an overload for Vector<uint8_t>.
(WebCore::FormDataBuilder::appendQuoted): Renamed from appendQuotedString and
changed the argument type.
(WebCore::FormDataBuilder::appendFormURLEncoded): Moved logic up from the
encodeStringAsFormData function into a new separate helper.
(WebCore::FormDataBuilder::addFilenameToMultiPartHeader): Updated for change to
UnencodableHandling.
(WebCore::FormDataBuilder::beginMultiPartHeader): Changed argument type.
(WebCore::FormDataBuilder::addKeyValuePairAsFormData): Ditto.
(WebCore::FormDataBuilder::encodeStringAsFormData): Updated to call helper.
- platform/network/FormDataBuilder.h: Updated for the above.
- platform/text/DecodeEscapeSequences.h: Use Vector<uint8_t> instead of
Vector<char>, also updated the code that calls encode for the new return type
and updated for change to UnencodableHandler.
- platform/text/TextCodec.cpp:
(WebCore::TextCodec::getUnencodableReplacement): Updated since we are using
std::array now, so the out argument is easier to understand, also updated for
change to UnencodablaHandler.
- platform/text/TextCodec.h: Use std::array for the UnencodableReplacementArray
type, removed the overload of decode so there is only one decode function.
- platform/text/TextCodecICU.cpp:
(WebCore::ICUConverterWrapper::~ICUConverterWrapper): Deleted.
Not needed any more since we use ICUConverterPtr instead now.
(WebCore::cachedConverterICU): Deleted.
(WebCore::TextCodecICU::create): Deleted. Callers just use make_unique
directly now.
(WebCore::TextCodecICU::registerCodecs): Rewrote to use lambdas instead
of functions with void* pointers.
(WebCore::TextCodecICU::TextCodecICU): Moved initializers into the header.
(WebCore::TextCodecICU::~TextCodecICU): Moved the body of releaseICUConverter
in here. Also greatly simplified it now that ICUConverterPtr handles closing
it as needed.
(WebCore::TextCodecICU::releaseICUConverter const): Deleted.
(WebCore::TextCodecICU::createICUConverter const): Rewrote to simplfy now that
we can use ICUConverterPtr.
(WebCore::ErrorCallbackSetter::ErrorCallbackSetter): Take a reference instead
of a pointer.
(WebCore::ErrorCallbackSetter::~ErrorCallbackSetter): Ditto.
(WebCore::TextCodecICU::decode): Use equalLettersIgnoringASCIICase instead of
strcasecmp.
(WebCore::TextCodecICU::encode): Return a Vector instead of a CString.
Take a StringView instead of a pointer and length. Simplified
the backslash-as-currency-symbol code by using String::replace.
- platform/text/TextCodecICU.h: Updated for above. Fixed indentation.
Added a new ICUConverterPtr typedef that uses std::unique_ptr to close the
converter; combined with move semantics it simplifies things so we don't have
to be so careful about calling ucnv_close.
- platform/text/TextCodecLatin1.cpp: Renamed the Latin-1 to Unicode table from
"table" to latin1ConversionTable.
(WebCore::TextCodecLatin1::registerCodecs): Use a lambda.
(WebCore::encodeComplexWindowsLatin1): Return a Vector instad of CString.
Also use StringView::codePoints instead of our own U16_NEXT.
(WebCore::TextCodecLatin1::encode): More of the same.
- platform/text/TextCodecLatin1.h: Updated for the above.
- platform/text/TextCodecReplacement.cpp:
(WebCore::TextCodecReplacement::create): Deleted.
(WebCore::TextCodecReplacement::TextCodecReplacement): Deleted.
(WebCore::TextCodecReplacement::registerCodecs): Use a lambda.
- platform/text/TextCodecReplacement.h: Updated for the above.
- platform/text/TextCodecUTF16.cpp:
(WebCore::newStreamingTextDecoderUTF16LE): Deleted.
(WebCore::newStreamingTextDecoderUTF16BE): Deleted.
(WebCore::TextCodecUTF16::registerCodecs): Use lambdas.
(WebCore::TextCodecUTF16::encode): Return a Vector.
- platform/text/TextCodecUTF16.h: Updated for the above.
- platform/text/TextCodecUTF8.cpp:
(WebCore::TextCodecUTF8::registerCodecs): Use a lambda.
(WebCore::TextCodecUTF8::encode): Return a Vector.
- platform/text/TextCodecUTF8.h: Updated for the above.
- platform/text/TextCodecUserDefined.cpp:
(WebCore::newStreamingTextDecoderUserDefined): Deleted.
(WebCore::TextCodecUserDefined::registerCodecs): Use a lambda.
(WebCore::encodeComplexUserDefined): Return a Vector.
(WebCore::TextCodecUserDefined::encode): Ditto.
- platform/text/TextCodecUserDefined.h: Updated for the above.
- platform/text/TextEncoding.cpp: Changed TextCodecMap to just hold a
WTF::Function instead of holding a function and an additional data pointer.
(WebCore::TextEncoding::TextEncoding): Use equalLettersIgnoringASCIICase
instead of a special isReplacementEncoding function.
(WebCore::TextEncoding::encode const): Return a Vector instead of a CString.
Pass StringView instead of a pointer and length.
- platform/text/TextEncoding.h: Updated for the above.
- platform/text/TextEncodingRegistry.cpp:
(WebCore::addToTextCodecMap): Removed the additionalData pointer and used
WTFMove since NewTextCodecFunction is now a WTF::Function rather than a C
function pointer.
(WebCore::isReplacementEncoding): Deleted.
(WebCore::newTextCodec): Use find instead of get now that the fucntions in
the map are WTF::Function and can't be copied.
(WebCore::dumpTextEncodingNameMap): Deleted.
- platform/text/TextEncodingRegistry.h: Updated for the above.
- platform/text/win/TextCodecWin.cpp:
(WebCore::TextCodecWin::encode): Updated comment.
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send): Updated for change to UnencodableHandling.
- xml/XSLTUnicodeSort.cpp: Removed include of StringExtras.h.
- xml/parser/XMLDocumentParser.cpp: Ditto.
- xml/parser/XMLDocumentParserLibxml2.cpp: Ditto.
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj: Added UnencodableHandling.h.
- pal/text/UnencodableHandling.h: Moved the UnencodableHandling enumeration
here from TextCodec.h and changed it to an enum class.
Source/WebKit:
- WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
(WebKit::initializeProtectionSpace): Use equalLettersIgnoringASCIICase instead
of strcasecmp.
Source/WebKitLegacy/mac:
- History/HistoryPropertyList.mm: Removed include of StringExtras.h.
- Plugins/WebBaseNetscapePluginView.mm:
(WebKit::getAuthenticationInfo): Use equalLettersIgnoringASCIICase instead
of strcasecmp.
- WebView/WebPreferences.mm:
(contains): Ditto. Also made this a template so it's easier to call on an array.
(cacheModelForMainBundle): Take advantage of the above to make it cleaner.
Source/WTF:
- wtf/Assertions.cpp: Removed include of StringExtras.h.
(WTFLogChannelByName): Use equalIgnoringASCIICase instead of strcasecmp.
- wtf/DateMath.cpp: Removed include of StringExtras.h.
- wtf/MD5.cpp: Ditto. Also removed include of CString.h.
- wtf/SHA1.cpp: Ditto.
- wtf/StringExtras.h:
(strncasecmp): Deleted.
(strcasecmp): Deleted.
- wtf/StringPrintStream.cpp: Removed include of StringExtras.h.
- wtf/text/Base64.cpp: Ditto.
- wtf/text/LineEnding.cpp:
(WTF::normalizeLineEndingsToLF): Replaced old more general purpose function with
this. Changed argument type to vector and used an rvalue reference and return value.
Also fixed some small logic errors.
(WTF::normalizeLineEndingsToCRLF): Ditto.
(WTF::normalizeLineEndingsToNative): Updated for above changes.
- wtf/text/LineEnding.h: Updated for above changes.
- wtf/text/StringCommon.h:
(WTF::equalIgnoringASCIICase): Added overload for const char*.
(WTF::equalLettersIgnoringASCIICase): Ditto.
- wtf/text/TextStream.cpp: Removed include of StringExtras.h.
- wtf/text/WTFString.cpp: Ditto.
- wtf/unicode/icu/CollatorICU.cpp: Ditto.
Tools:
- DumpRenderTree/cg/PixelDumpSupportCG.cpp: Removed include of StringExtras.h.
- TestWebKitAPI/CMakeLists.txt: Added LineEnding.cpp.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Ditto.
- TestWebKitAPI/Tests/WTF/LineEnding.cpp: Added. Has tests for the LineEnding
functions rewritten in this patch.
- TestWebKitAPI/Tests/WebCore/TextCodec.cpp: Updated test now that the decode
function doesn't have defaults for as many arguments any more. Also changed so
that the tests log the fact that the decode function returns an error and updated
expected results to expect all the errors.
- WebKitTestRunner/cg/TestInvocationCG.cpp: Ditto.
- 7:52 PM Changeset in webkit [225617] by
-
- 11 edits in trunk/Source/WTF
[WTF] Remove XXXLockBase since constexpr constructor can initialize static variables without calling global constructors
https://bugs.webkit.org/show_bug.cgi?id=180495
Reviewed by Mark Lam.
Very nice feature of C++11 is that constexpr constructor can initialize static global variables
without calling global constructors. We do not need to have XXXLockBase with derived XXXLock
class since StaticXXXLock can have constructors as long as it is constexpr.
We remove bunch of these classes, and setXXXLock() = default;explicitly for readability.
C++11's default constructor is constexpr as long as its member's default constructor / default
initializer is constexpr.
- wtf/Condition.h:
(WTF::ConditionBase::construct): Deleted.
(WTF::ConditionBase::waitUntil): Deleted.
(WTF::ConditionBase::waitFor): Deleted.
(WTF::ConditionBase::wait): Deleted.
(WTF::ConditionBase::notifyOne): Deleted.
(WTF::ConditionBase::notifyAll): Deleted.
(WTF::Condition::Condition): Deleted.
- wtf/CountingLock.h:
(WTF::CountingLock::CountingLock): Deleted.
(WTF::CountingLock::~CountingLock): Deleted.
- wtf/Lock.cpp:
(WTF::Lock::lockSlow):
(WTF::Lock::unlockSlow):
(WTF::Lock::unlockFairlySlow):
(WTF::Lock::safepointSlow):
(WTF::LockBase::lockSlow): Deleted.
(WTF::LockBase::unlockSlow): Deleted.
(WTF::LockBase::unlockFairlySlow): Deleted.
(WTF::LockBase::safepointSlow): Deleted.
- wtf/Lock.h:
(WTF::LockBase::construct): Deleted.
(WTF::LockBase::lock): Deleted.
(WTF::LockBase::tryLock): Deleted.
(WTF::LockBase::try_lock): Deleted.
(WTF::LockBase::unlock): Deleted.
(WTF::LockBase::unlockFairly): Deleted.
(WTF::LockBase::safepoint): Deleted.
(WTF::LockBase::isHeld const): Deleted.
(WTF::LockBase::isLocked const): Deleted.
(WTF::LockBase::isFullyReset const): Deleted.
(WTF::Lock::Lock): Deleted.
- wtf/ReadWriteLock.cpp:
(WTF::ReadWriteLock::readLock):
(WTF::ReadWriteLock::readUnlock):
(WTF::ReadWriteLock::writeLock):
(WTF::ReadWriteLock::writeUnlock):
(WTF::ReadWriteLockBase::construct): Deleted.
(WTF::ReadWriteLockBase::readLock): Deleted.
(WTF::ReadWriteLockBase::readUnlock): Deleted.
(WTF::ReadWriteLockBase::writeLock): Deleted.
(WTF::ReadWriteLockBase::writeUnlock): Deleted.
- wtf/ReadWriteLock.h:
(WTF::ReadWriteLock::read):
(WTF::ReadWriteLock::write):
(WTF::ReadWriteLockBase::ReadLock::tryLock): Deleted.
(WTF::ReadWriteLockBase::ReadLock::lock): Deleted.
(WTF::ReadWriteLockBase::ReadLock::unlock): Deleted.
(WTF::ReadWriteLockBase::WriteLock::tryLock): Deleted.
(WTF::ReadWriteLockBase::WriteLock::lock): Deleted.
(WTF::ReadWriteLockBase::WriteLock::unlock): Deleted.
(WTF::ReadWriteLockBase::read): Deleted.
(WTF::ReadWriteLockBase::write): Deleted.
(WTF::ReadWriteLock::ReadWriteLock): Deleted.
- wtf/RecursiveLockAdapter.h:
(WTF::RecursiveLockAdapter::RecursiveLockAdapter): Deleted.
- wtf/WordLock.cpp:
(WTF::WordLock::lockSlow):
(WTF::WordLock::unlockSlow):
(WTF::WordLockBase::lockSlow): Deleted.
(WTF::WordLockBase::unlockSlow): Deleted.
- wtf/WordLock.h:
(WTF::WordLockBase::lock): Deleted.
(WTF::WordLockBase::unlock): Deleted.
(WTF::WordLockBase::isHeld const): Deleted.
(WTF::WordLockBase::isLocked const): Deleted.
(WTF::WordLockBase::isFullyReset const): Deleted.
(WTF::WordLock::WordLock): Deleted.
- wtf/WorkQueue.cpp:
- 7:36 PM Changeset in webkit [225616] by
-
- 16 edits1 copy1 move6 adds1 delete in trunk
Support the decoding="sync/async" syntax for image async attribute
https://bugs.webkit.org/show_bug.cgi?id=179432
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-12-06
Reviewed by Darin Adler.
Source/WebCore:
Support the HTMLElementImage decoding attribute to allow controlling the
decoding of an image as per:
https://github.com/whatwg/html/pull/3221
https://whatpr.org/html/3221/images.html#decoding-images
Tests: fast/images/decode-decoding-attribute-async-large-image.html
fast/images/decoding-attribute-async-small-image.html
fast/images/decoding-attribute-dynamic-async-small-image.html
fast/images/decoding-attribute-sync-large-image.html
- html/HTMLAttributeNames.in:
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::decodingMode const):
- html/HTMLImageElement.h:
- html/HTMLImageElement.idl:
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::internalStartAnimation):
(WebCore::BitmapImage::advanceAnimation):
(WebCore::BitmapImage::internalAdvanceAnimation):
- platform/graphics/DecodingOptions.h:
(WebCore::DecodingOptions::DecodingOptions):
(WebCore::DecodingOptions::isAuto const):
(WebCore::DecodingOptions::isAsynchronousCompatibleWith const):
(WebCore::DecodingOptions::isNone const): Deleted.
- platform/graphics/ImageDecoder.h:
- platform/graphics/ImageFrame.cpp:
(WebCore::ImageFrame::clearImage):
- platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::frameAtIndexCacheIfNeeded):
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
- platform/graphics/cg/ImageDecoderCG.h:
- platform/graphics/win/ImageDecoderDirect2D.h:
- platform/image-decoders/ScalableImageDecoder.h:
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::decodingModeForImageDraw const):
The element attributes and the document settings should be checked before
checking our heuristics. And since the "decoding" attribute is per an image
and isLargeImageAsyncDecodingEnabledForTesting() is a global setting, the
decoding attribute should be checked first.
LayoutTests:
- fast/images/async-attribute-with-small-image-expected.html: Removed.
- fast/images/async-attribute-with-small-image.html: Removed.
- fast/images/decode-decoding-attribute-async-large-image-expected.html: Added.
- fast/images/decode-decoding-attribute-async-large-image.html: Added.
- fast/images/decoding-attribute-async-small-image-expected.html: Added.
- fast/images/decoding-attribute-async-small-image.html: Added.
- fast/images/decoding-attribute-dynamic-async-small-image-expected.html: Added.
- fast/images/decoding-attribute-dynamic-async-small-image.html: Added.
- fast/images/decoding-attribute-sync-large-image-expected.html: Added.
- fast/images/decoding-attribute-sync-large-image.html: Added.
- 7:30 PM Changeset in webkit [225615] by
-
- 16 edits in trunk/Source
[Web App Manifest] Add SPI for applying a manifest to a top-level browsing context
https://bugs.webkit.org/show_bug.cgi?id=180368
rdar://problem/34748067
Patch by David Quesada <david_quesada@apple.com> on 2017-12-06
Reviewed by Geoffrey Garen.
Source/WebCore:
Support applying a manifest to a top-level browsing context by adding a manifest
property on PageConfiguration to be stored on MainFrame instances created from the
configuration.
No new tests, no change in behavior.
- page/MainFrame.cpp:
(WebCore::MainFrame::MainFrame):
- page/MainFrame.h:
- page/PageConfiguration.h:
Source/WebKit:
Add a new property WKWebViewConfiguration._applicationManifest to specify manifest
to apply to application contexts (aka. top-level browsing contexts, i.e. web views).
The manifest is ultimately stored on the MainFrame of the Pages created from the
web view configuration.
No new tests, no change in behavior.
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy const):
(API::PageConfiguration::applicationManifest const):
(API::PageConfiguration::setApplicationManifest):
- UIProcess/API/APIPageConfiguration.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _applicationManifest]):
(-[WKWebViewConfiguration _setApplicationManifest:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/API/Cocoa/_WKApplicationManifestInternal.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_cpuLimit):
- 7:23 PM Changeset in webkit [225614] by
-
- 2 edits in trunk/LayoutTests
AX: Layout test imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests1.html flaky crash
https://bugs.webkit.org/show_bug.cgi?id=173540
<rdar://problem/35386393>
Unreviewed test gardening.
r225613 fixed the flaky crash.
Patch by Fujii Hironori <Fujii Hironori> on 2017-12-06
- platform/gtk/TestExpectations: Unmarked the test case.
- 4:55 PM Changeset in webkit [225613] by
-
- 5 edits in trunk/Source/WebCore
Remove nodes from AXObjectCache when the associated subframe document is getting destroyed.
https://bugs.webkit.org/show_bug.cgi?id=180503
<rdar://problem/35891328
Reviewed by Chris Fleizach.
While AXObjectCache lives on the mainframe's document, it caches nodes from every subframe document.
When a node is being destroyed, we deregister it from the AX cache through the Node's destructor.
Soon after the document is detached from the frame/frame is detached from the frame tree, this codepath
is no longer available (no access to the AXObjectCache object) and from this point we are unable to deregister
nodes associated with the current document.
In AXObjectCache::prepareForDocumentDestruction(), we preemptively remove all the cached nodes associated
with the about-to-be-destroyed document.
Covered by existing tests.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::remove):
(WebCore::filterForRemoval):
(WebCore::AXObjectCache::prepareForDocumentDestruction): Collecting the nodes and removing them later is
not the most performant way but in order to have a single code path for the de-registration (AXObjectCache::remove)
I think it's worth going down the slower path -which should not really be that slower anyway since those
lists tend to stay small.
(WebCore::AXObjectCache::clearTextMarkerNodesInUse): Deleted.
- accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::removeNodeForUse):
(WebCore::AXObjectCache::remove):
- dom/Document.cpp:
(WebCore::Document::prepareForDestruction):
- dom/Node.cpp:
(WebCore::Node::willBeDeletedFrom):
(WebCore::Node::moveNodeToNewDocument):
- 4:49 PM Changeset in webkit [225612] by
-
- 2 edits in trunk/LayoutTests
Adjusted expectations for inspector/worker/resources-in-worker.html.
https://bugs.webkit.org/show_bug.cgi?id=168091
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 4:43 PM Changeset in webkit [225611] by
-
- 2 edits in trunk/Tools
Exclude another leak callstack.
- Scripts/webkitpy/port/leakdetector.py: (LeakDetector._callstacks_to_exclude_from_leaks):
- 4:41 PM Changeset in webkit [225610] by
-
- 11 edits2 copies2 adds in trunk/Source/WebCore
Start writing ServiceWorker registrations to disk.
https://bugs.webkit.org/show_bug.cgi?id=180488
Reviewed by Chris Dumez.
No new tests (No observable behavior change).
As registrations changes occurs, we now write them to disk.
We don't re-read them in yet.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- workers/service/ServiceWorkerRegistrationData.cpp:
(WebCore::ServiceWorkerRegistrationData::isolatedCopy const):
- workers/service/ServiceWorkerRegistrationData.h:
(WebCore::ServiceWorkerRegistrationData::encode const):
(WebCore::ServiceWorkerRegistrationData::decode):
- workers/service/ServiceWorkerRegistrationKey.cpp:
(WebCore::ServiceWorkerRegistrationKey::toDatabaseKey const):
- workers/service/ServiceWorkerRegistrationKey.h:
- workers/service/server/RegistrationDatabase.cpp: Added.
(WebCore::v1RecordsTableSchema):
(WebCore::v1RecordsTableSchemaAlternate):
(WebCore::databaseFilename):
(WebCore::RegistrationDatabase::RegistrationDatabase):
(WebCore::RegistrationDatabase::~RegistrationDatabase):
(WebCore::RegistrationDatabase::openSQLiteDatabase):
(WebCore::RegistrationDatabase::ensureValidRecordsTable):
(WebCore::updateViaCacheToString):
(WebCore::workerTypeToString):
(WebCore::RegistrationDatabase::pushChanges):
(WebCore::RegistrationDatabase::doPushChanges):
(WebCore::RegistrationDatabase::importRecords):
(WebCore::RegistrationDatabase::databaseFailedToOpen):
(WebCore::RegistrationDatabase::databaseOpenedAndRecordsImported):
- workers/service/server/RegistrationDatabase.h: Copied from Source/WebCore/workers/service/ServiceWorkerRegistrationData.cpp.
(WebCore::RegistrationDatabase::isClosed const):
- workers/service/server/RegistrationStore.cpp: Added.
(WebCore::RegistrationStore::RegistrationStore):
(WebCore::RegistrationStore::~RegistrationStore):
(WebCore::RegistrationStore::scheduleDatabasePushIfNecessary):
(WebCore::RegistrationStore::pushChangesToDatabase):
(WebCore::RegistrationStore::updateRegistration):
(WebCore::RegistrationStore::removeRegistration):
(WebCore::RegistrationStore::databaseFailedToOpen):
(WebCore::RegistrationStore::databaseOpenedAndRecordsImported):
- workers/service/server/RegistrationStore.h: Copied from Source/WebCore/workers/service/ServiceWorkerRegistrationData.cpp.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::removeRegistration):
(WebCore::SWServer::SWServer):
(WebCore::SWServer::updateWorker):
(WebCore::SWServer::installContextData):
- workers/service/server/SWServer.h:
- workers/service/server/SWServerRegistration.cpp:
(WebCore::SWServerRegistration::data const):
- workers/service/server/SWServerRegistration.h:
(WebCore::SWServerRegistration::setLastUpdateTime):
- 4:40 PM Changeset in webkit [225609] by
-
- 7 edits in branches/safari-604.5.100-branch/Source
Versioning.
- 4:37 PM Changeset in webkit [225608] by
-
- 7 edits in trunk/Source
Versioning.
- 4:34 PM Changeset in webkit [225607] by
-
- 7 edits in branches/safari-604-branch/Source
Versioning.
- 4:34 PM Changeset in webkit [225606] by
-
- 3 edits2 adds in branches/safari-604-branch
Cherry-pick r225497. rdar://problem/34604139
- 4:32 PM Changeset in webkit [225605] by
-
- 1 copy in tags/Safari-604.5.100.2
Tag Safari-604.5.100.2.
- 4:28 PM Changeset in webkit [225604] by
-
- 1 copy in tags/Safari-604.5.2
Tag Safari-604.5.2.
- 4:18 PM Changeset in webkit [225603] by
-
- 4 edits in trunk
-[WKWebViewConfiguration copyWithZone] doesn't copy _groupIdentifier
https://bugs.webkit.org/show_bug.cgi?id=180504
Reviewed by Geoffrey Garen.
Source/WebKit:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
Copy _groupIdentifier.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:
Add a test to verify that the _groupIdentifier is copied.
- 4:11 PM UpdatingANGLE edited by
- (diff)
- 4:10 PM UpdatingANGLE edited by
- (diff)
- 4:02 PM Changeset in webkit [225602] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Canvas: spurious warnings shown for commands that changed pixel contents
https://bugs.webkit.org/show_bug.cgi?id=180505
<rdar://problem/35891651>
Reviewed by Brian Burg.
- UserInterface/Models/RecordingAction.js:
(WI.RecordingAction.prototype.apply.getContent):
(WI.RecordingAction.prototype.apply):
- 3:30 PM Changeset in webkit [225601] by
-
- 2 edits in trunk/LayoutTests
Mark webgl/1.0.2/conformance/textures/gl-teximage.html as failing again.
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 3:04 PM Changeset in webkit [225600] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Style Redesign: filtering removes header if one rule has no match even if others do
https://bugs.webkit.org/show_bug.cgi?id=180467
Reviewed by Timothy Hatcher.
- UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.applyFilter):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
- 3:02 PM Changeset in webkit [225599] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix build after r225577.
- bindings/js/JSDOMGlobalObject.cpp:
- 2:26 PM Changeset in webkit [225598] by
-
- 32 edits3 copies9 adds in trunk
[Web App Manifest] Add SPI for fetching the manifest
https://bugs.webkit.org/show_bug.cgi?id=180294
rdar://problem/34747968
Patch by David Quesada <david_quesada@apple.com> on 2017-12-06
Reviewed by Geoffrey Garen.
Source/WebCore:
Test: applicationmanifest/developer-warnings.html
- Modules/applicationmanifest/ApplicationManifest.h:
(WebCore::ApplicationManifest::encode const):
(WebCore::ApplicationManifest::decode):
- Modules/applicationmanifest/ApplicationManifestParser.cpp:
(WebCore::ApplicationManifestParser::logManifestPropertyNotAString):
(WebCore::ApplicationManifestParser::logManifestPropertyInvalidURL):
Drive-by wording changes. Since the warning is prefixed with "parsing
application manifest:", remove a redundant use of "application manifest".
Source/WebKit:
Add a new method -[WKWebView _getApplicationManifestWithCompletionHandler:] to request
the manifest associated with the current page.
- Shared/API/APIObject.h:
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
- UIProcess/API/APIApplicationManifest.h: Copied from Source/WebCore/Modules/applicationmanifest/ApplicationManifest.h.
Add a new API object type for application manifests.
- UIProcess/API/C/WKPage.cpp:
(WKPageGetApplicationManifest_b):
Add a C version of this SPI for WebKitTestRunner.
- UIProcess/API/C/WKPagePrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _getApplicationManifestWithCompletionHandler:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/_WKApplicationManifest.h: Copied from Source/WebCore/Modules/applicationmanifest/ApplicationManifest.h.
- UIProcess/API/Cocoa/_WKApplicationManifest.mm: Added.
(-[_WKApplicationManifest initWithCoder:]):
(-[_WKApplicationManifest encodeWithCoder:]):
(+[_WKApplicationManifest applicationManifestFromJSON:manifestURL:documentURL:]):
(-[_WKApplicationManifest _apiObject]):
(nullableNSString):
(-[_WKApplicationManifest name]):
(-[_WKApplicationManifest shortName]):
(-[_WKApplicationManifest applicationDescription]):
(-[_WKApplicationManifest scope]):
(-[_WKApplicationManifest startURL]):
- UIProcess/API/Cocoa/_WKApplicationManifestInternal.h: Copied from Source/WebCore/Modules/applicationmanifest/ApplicationManifest.h.
(API::wrapper):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::applicationManifestCallback):
(WebKit::WebPageProxy::getApplicationManifest):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::finishedLoadingApplicationManifest):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getApplicationManifest):
(WebKit::WebPage::didFinishLoadingApplicationManifest):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm: Added.
Added two API tests for _WKApplicationManifest:
- Testing _WKApplicationManifest's conformance to NSCoding.
- Testing -[WKWebView _getApplicationManifestWithCompletionHandler:], verifying the values of the resulting _WKApplicationManifest.
(TestWebKitAPI::TEST):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
Added a new testRunner method getApplicationManifestThen(), used by the LayoutTests
to request the document load its associated manifest. The layout tests formerly called
an unimplemented function getManifestThen(), but I added 'Application' to somewhat
differentiate this from the app cache manifest.
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::getApplicationManifestThen):
(WTR::TestRunner::didGetApplicationManifest):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
Skip the app manifest-related layout tests for now while the feature is still disabled.
Also moved the expectations disabling the manifest-src layout tests (which now pass
when the feature is enabled) to the same location in the file.
- applicationmanifest/developer-warnings-expected.txt: Added.
- applicationmanifest/developer-warnings.html: Added.
- applicationmanifest/multiple-links-expected.txt: Added.
- applicationmanifest/multiple-links.html: Added.
Add a layout test to verify only the first manifest link is loaded when there
are multiple on the page.
- applicationmanifest/resources/developer-warnings.manifest: Added.
Add a layout test to verify that warnings generated while parsing the manifest are
logged to the console.
- http/tests/security/contentSecurityPolicy/manifest-src-allowed.html:
Replaced calls to getManifestThen() with getApplicationManifestThen().
- http/tests/security/contentSecurityPolicy/manifest-src-blocked-expected.txt:
Updated the expected console message to reflect the current wording for CSP violations.
- http/tests/security/contentSecurityPolicy/manifest-src-blocked.html:
Replaced calls to getManifestThen() with getApplicationManifestThen().
- http/tests/security/contentSecurityPolicy/manifest.test/manifest.json:
Removed a trailing newline that was causing JSON parsing to fail.
- 2:24 PM Changeset in webkit [225597] by
-
- 9 edits in trunk/Source
The WebProcess should use the NSRunLoop runloop type.
https://bugs.webkit.org/show_bug.cgi?id=179804
<rdar://problem/14012823>
Reviewed by Brent Fulgham.
Source/WebCore:
No new tests.
- platform/mac/EventLoopMac.mm:
(WebCore::EventLoop::cycle):
Source/WebKit:
- Platform/IPC/mac/ConnectionMac.mm:
(IPC::AccessibilityProcessSuspendedNotification):
- Shared/ChildProcess.h:
- Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::launchServicesCheckIn):
- UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::shouldLeakBoost):
- WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeProcess):
- 2:24 PM Changeset in webkit [225596] by
-
- 4 edits in trunk/Source/WebCore
Prefer ids and classes over tag names in selector filter
https://bugs.webkit.org/show_bug.cgi?id=180433
<rdar://problem/35859103>
Reviewed by Zalan Bujtas.
There are only four slots in the filter and currently we just pick whatever identifiers we find traversing the selector
from right to left. More specific selector types are on average more valuable (id > class > tag) so we should prefer them.
This appears to be 4-5% StyleBench progression.
- css/RuleSet.cpp:
(WebCore::RuleData::RuleData):
- css/SelectorFilter.cpp:
(WebCore::collectSimpleSelectorHash):
(WebCore::collectSelectorHashes):
This function collects all hashes from the selector.
(WebCore::chooseSelectorHashesForFilter):
This function chooses the most valuable hashes to use with the filter.
(WebCore::SelectorFilter::collectHashes):
Factor into two separate steps.
(WebCore::collectDescendantSelectorIdentifierHashes): Deleted.
(WebCore::SelectorFilter::collectIdentifierHashes): Deleted.
- css/SelectorFilter.h:
(WebCore::SelectorFilter::fastRejectSelector const):
- 2:21 PM Changeset in webkit [225595] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Details section headers overlap Classes container in the Computed Styles panel
https://bugs.webkit.org/show_bug.cgi?id=180380
Reviewed by Timothy Hatcher.
- UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content ~ :matches(.options-container, .class-list-container)):
- 1:53 PM Changeset in webkit [225594] by
-
- 9 edits in trunk/Source/WebCore
[EME] Make CDMInstance& parameter passed through MediaPlayer non-const
https://bugs.webkit.org/show_bug.cgi?id=180484
Reviewed by Jon Lee.
One can only call const methods on const references, and the obvious intent
of these methods is for the callee to call non-const methods on the parameters.
- Modules/encryptedmedia/MediaKeys.h:
(WebCore::MediaKeys::cdmInstance):
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::cdmInstanceAttached):
(WebCore::MediaPlayer::cdmInstanceDetached):
(WebCore::MediaPlayer::attemptToDecryptWithInstance):
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::cdmInstanceAttached):
(WebCore::MediaPlayerPrivateInterface::cdmInstanceDetached):
(WebCore::MediaPlayerPrivateInterface::attemptToDecryptWithInstance):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::cdmInstanceAttached):
(WebCore::MediaPlayerPrivateGStreamerBase::cdmInstanceDetached):
(WebCore::MediaPlayerPrivateGStreamerBase::attemptToDecryptWithInstance):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::attemptToDecryptWithInstance):
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
- 1:34 PM Changeset in webkit [225593] by
-
- 5 edits517 adds in trunk/LayoutTests
Import WPT workers test suite
https://bugs.webkit.org/show_bug.cgi?id=180464
Patch by Youenn Fablet <youenn@apple.com> on 2017-12-06
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- resources/resource-files.json:
- workers: Added.
LayoutTests:
- TestExpectations: skip some timing out tests or testing shared workers.
- 1:02 PM Changeset in webkit [225592] by
-
- 4 edits in trunk/Source/WebKit
AX: [iOS] Post accessibility notification when a web process changes its suspended state
https://bugs.webkit.org/show_bug.cgi?id=180458
<rdar://problem/35869115>
Reviewed by Chris Dumez.
Post accessibility notification with the pid information when a web process
becomes suspended or resumes running.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::actualPrepareToSuspend):
(WebKit::WebProcess::processDidResume):
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::accessibilityProcessSuspendedNotification):
- 12:51 PM Changeset in webkit [225591] by
-
- 7 edits1 delete in trunk
Preflight should bypass service worker
https://bugs.webkit.org/show_bug.cgi?id=180463
Patch by Youenn Fablet <youenn@apple.com> on 2017-12-06
Reviewed by Alex Christensen.
Source/WebCore:
Covered by updated test.
- loader/CrossOriginPreflightChecker.cpp:
(WebCore::CrossOriginPreflightChecker::startPreflight): Ensure service worker is not used.
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::didFail): Tighten check and clear resource proactively to not hit loadRequest ASSERT.
LayoutTests:
- http/tests/workers/service/resources/service-worker-crossorigin-fetch.js: Removed.
- http/tests/workers/service/resources/service-worker-crossorigin-fetch-worker.js:
(event.event.request.url.endsWith):
- http/tests/workers/service/resources/service-worker-crossorigin-fetch.js:
(async.test):
- http/tests/workers/service/service-worker-crossorigin-fetch-expected.txt:
- http/tests/workers/service/service-worker-crossorigin-fetch.html:
- 12:42 PM Changeset in webkit [225590] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix, removed unused lambda capture.
- NetworkProcess/cache/CacheStorageEngineConnection.cpp:
(WebKit::CacheStorageEngineConnection::open):
- 12:39 PM Changeset in webkit [225589] by
-
- 9 copies1 add in releases/Apple/Safari Technology Preview 45
Added a tag for Safari Technology Preview release 45.
- 12:37 PM Changeset in webkit [225588] by
-
- 3 edits in trunk/LayoutTests
Update TestExpectations for http/tests/workers/service/registration-task-queue-scheduling-1.html.
https://bugs.webkit.org/show_bug.cgi?id=179342
Unreviewed test gardening.
- TestExpectations:
- platform/mac/TestExpectations:
- 12:28 PM Changeset in webkit [225587] by
-
- 8 edits in trunk/Source/WebInspectorUI
Web Inspector: Canvas Tab initial user experience is poor when no canvases exist
https://bugs.webkit.org/show_bug.cgi?id=179329
<rdar://problem/35842036>
Reviewed by Timothy Hatcher.
This patch adds a new method, WI.createNavigationItemHelp, for creating command
help to display in a message text view. The method accepts a format string and
NavigationItem, and returns a DOM element. For example,
WI.createNavigationItemHelp("Press %s to do X.", navigationItem)
returns:
<div class="navigation-item-help">
Press <div class="navigation-bar"><div class="item">...</div></div> to do X.
</div>
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Base/Main.js:
- UserInterface/Controllers/CanvasManager.js:
(WI.CanvasManager.prototype.importRecording):
Importing a recording should be a manager command with a corresponding
event, so that it's decoupled from any specific location in the UI.
- UserInterface/Views/CanvasOverviewContentView.js:
(WI.CanvasOverviewContentView):
- UserInterface/Views/CanvasTabContentView.js:
(WI.CanvasTabContentView):
(WI.CanvasTabContentView.prototype.attached):
(WI.CanvasTabContentView.prototype._recordingImportedOrStopped):
(WI.CanvasTabContentView.prototype._recordingStopped): Deleted.
(WI.CanvasTabContentView.prototype._navigationSidebarImport): Deleted.
- UserInterface/Views/Main.css:
(.message-text-view .navigation-item-help):
(.message-text-view .navigation-item-help .navigation-bar):
(.message-text-view .navigation-item-help .navigation-bar > .item):
New styles for a NavigationItem appearing inline as part of descriptive
text. Wrapped in a fake navigation bar so navigation item styles are picked up.
- UserInterface/Views/RecordingNavigationSidebarPanel.js:
(WI.RecordingNavigationSidebarPanel.prototype.initialLayout):
(WI.RecordingNavigationSidebarPanel.prototype._importNavigationItemClicked): Deleted.
Moved import code to CanvasManager.
- 11:56 AM Changeset in webkit [225586] by
-
- 1 edit in trunk/Source/WebCore/ChangeLog
Storage Access API: Make document.hasStorageAccess a function and always allow access for same-origin iframes
https://bugs.webkit.org/show_bug.cgi?id=176944
<rdar://problem/34440658>
Patch by John Wilander <wilander@apple.com> on 2017-12-06
Reviewed by Brent Fulgham.
Test: http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture.html
This change introduces document.hasStorageAccess() as a function which
returns a promise instead of being a property. Since cookie access can
be due to both a granted request and recent user interaction as first
party, the WebKit::WebResourceLoadStatisticsStore needs to be consulted.
- dom/Document.cpp:
(WebCore::Document::hasStorageAccess):
(WebCore::Document::requestStorageAccess):
Removed check of the previous m_hasStorageAccess member.
Same-origin check done earlier. This was a request/suggestion
from Mozilla.
- dom/Document.h:
(WebCore::Document::hasStorageAccess const): Deleted.
Now uses a promise.
- dom/Document.idl:
- page/ChromeClient.h:
- 11:45 AM Changeset in webkit [225585] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Update ANGLE's changes.diff
https://bugs.webkit.org/show_bug.cgi?id=180491
Reviewed by Antoine Quint.
Here is the list of things we've changed from the
ANGLE commit that we merged in.
- changes.diff:
- 11:43 AM Changeset in webkit [225584] by
-
- 4 edits in trunk
Some iOS tests failing after ANGLE update
https://bugs.webkit.org/show_bug.cgi?id=180487
<rdar://problem/35885969>
Reviewed by Antoine Quint.
Source/ThirdParty/ANGLE:
The iOS OpenGL compiler doesn't like function declarations with
nameless array parameters. See:
<rdar://problem/35885989> Nameless array parameters in function declaration cause compiler error
While that is being fixed, tell ANGLE's translator to not cull
the names from parameters. This is not a bug in ANGLE, so we won't
fix it upstream at the moment.
- src/compiler/translator/ParseContext.cpp:
(sh::TParseContext::addFunctionPrototypeDeclaration):
LayoutTests:
Unskip some WebGL tests.
- platform/ios/TestExpectations:
- 11:41 AM Changeset in webkit [225583] by
-
- 43 edits1 copy2 adds in trunk
Storage Access API: Make document.hasStorageAccess a function and always allow access for same-origin iframes
https://bugs.webkit.org/show_bug.cgi?id=176944
<rdar://problem/34440658>
Reviewed by Brent Fulgham.
Source/WebCore:
Test: http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture.html
This change introduces document.hasStorageAccess() as a function which
returns a promise instead of being a property. Since cookie access can
be due to both a granted request and recent user interaction as first
party, the WebKit::WebResourceLoadStatisticsStore needs to be consulted.
- dom/Document.cpp:
(WebCore::Document::hasStorageAccess):
(WebCore::Document::requestStorageAccess):
Removed check of the previous m_hasStorageAccess member.
Same-origin check done earlier. This was a request/suggestion
from Mozilla.
- dom/Document.h:
(WebCore::Document::hasStorageAccess const): Deleted.
Now uses a promise.
- dom/Document.idl:
- page/ChromeClient.h:
Source/WebKit:
This change introduces document.hasStorageAccess() as a function which
returns a promise instead of being a property. Since cookie access can
be due to both a granted request and recent user interaction as first
party, the WebKit::WebResourceLoadStatisticsStore needs to be consulted.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::hasStorageAccess):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::hasStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
Now adds an entry for granted access. A bug found through testing.
Switched from WTF::Function to WTF::CompletionHandler.
- UIProcess/WebResourceLoadStatisticsStore.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::hasStorageAccess):
(WebKit::WebsiteDataStore::requestStorageAccess):
Switched from WTF::Function to WTF::CompletionHandler.
- UIProcess/WebsiteData/WebsiteDataStore.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::hasStorageAccess):
(WebKit::WebChromeClient::requestStorageAccess):
Switched from WTF::Function to WTF::CompletionHandler.
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::hasStorageAccess):
(WebKit::WebPage::requestStorageAccess):
Switched from WTF::Function to WTF::CompletionHandler.
- WebProcess/WebPage/WebPage.h:
LayoutTests:
These tests now use the new document.hasStorageAccess() function
instead of the previous document.hasStorageAccess property.
The added test is a break out of the negative case of an iframe
calling the API when no user gesture is processed.
- http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe-expected.txt:
- http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe.html:
- http/tests/storageAccess/request-and-deny-storage-access-cross-origin-sandboxed-iframe-expected.txt:
- http/tests/storageAccess/request-and-deny-storage-access-cross-origin-sandboxed-iframe.html:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-expected.txt:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe.html:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-expected.txt:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-expected.txt:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction.html:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-recent-user-interaction-expected.txt:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-expected.txt:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-nested-iframe-expected.txt:
- http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-nested-iframe.html:
- http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin-expected.txt:
- http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token-expected.txt:
- http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token.html:
- http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture-expected.txt: Added.
- http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture.html: Added.
- http/tests/storageAccess/request-storage-access-same-origin-iframe-expected.txt:
- http/tests/storageAccess/request-storage-access-same-origin-iframe.html:
- http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-expected.txt:
- http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token-expected.txt:
- http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token.html:
- http/tests/storageAccess/request-storage-access-top-frame-expected.txt:
- http/tests/storageAccess/request-storage-access-top-frame.html:
- http/tests/storageAccess/resources/request-storage-access-iframe.html:
- http/tests/storageAccess/resources/request-storage-access-without-user-gesture-iframe.html: Added.
- platform/mac-wk2/TestExpectations:
Marked the new test case as [ Pass ]
- 11:38 AM Changeset in webkit [225582] by
-
- 1 copy in tags/Safari-605.1.16
Tag Safari-605.1.16.
- 11:00 AM Changeset in webkit [225581] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r225537): Crash in WebCore::SWServerWorker::setHasPendingEvents(bool) + 68
https://bugs.webkit.org/show_bug.cgi?id=180481
Patch by Youenn Fablet <youenn@apple.com> on 2017-12-06
Reviewed by Chris Dumez.
Replacing ASSERT by if null check since there is no strong guarantee right now that there is a registration
in SWServer registration map associated to a SWServerWorker.
- workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::setHasPendingEvents):
- 10:58 AM Changeset in webkit [225580] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r225569): CSSStyleDetailsSidebarPanel no longer exists
https://bugs.webkit.org/show_bug.cgi?id=180466
Reviewed by Joseph Pecoraro.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.applyFilter):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleEditorFilterApplied):
- UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.applyFilter):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
- UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype.applyFilter):
- 10:58 AM Changeset in webkit [225579] by
-
- 2 edits in trunk/Source/JavaScriptCore
ASSERTION FAILED: vm->currentThreadIsHoldingAPILock() in void JSC::sanitizeStackForVM(JSC::VM *)
https://bugs.webkit.org/show_bug.cgi?id=180438
<rdar://problem/35862342>
Reviewed by Yusuke Suzuki.
A couple inspector methods that take stacktraces need
to grab the JSLock.
- inspector/ScriptCallStackFactory.cpp:
(Inspector::createScriptCallStack):
(Inspector::createScriptCallStackForConsole):
- 10:55 AM Changeset in webkit [225578] by
-
- 2 edits in trunk/Source/WebKit
CacheStorageEngineConnection should protect its IPC Connection when doing asynchronous tasks
https://bugs.webkit.org/show_bug.cgi?id=180461
Patch by Youenn Fablet <youenn@apple.com> on 2017-12-06
Reviewed by Chris Dumez.
Protecting the IPC connection instead of the CacheStorageEngineConnection
since CacheStorageEngineConnection only keeps a reference to the NetworkConnectionToWebProcess.
- NetworkProcess/cache/CacheStorageEngineConnection.cpp:
(WebKit::CacheStorageEngineConnection::open):
(WebKit::CacheStorageEngineConnection::remove):
(WebKit::CacheStorageEngineConnection::caches):
(WebKit::CacheStorageEngineConnection::retrieveRecords):
(WebKit::CacheStorageEngineConnection::deleteMatchingRecords):
(WebKit::CacheStorageEngineConnection::putRecords):
(WebKit::CacheStorageEngineConnection::clearMemoryRepresentation):
- 10:40 AM Changeset in webkit [225577] by
-
- 24 edits in trunk
ServiceWorkers API should reject promises when calling objects inside detached frames
https://bugs.webkit.org/show_bug.cgi?id=180444
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline test now that it is passing some checks.
- web-platform-tests/service-workers/service-worker/detached-context.https-expected.txt:
- web-platform-tests/service-workers/service-worker/register-closed-window.https-expected.txt:
Source/WebCore:
ServiceWorkers API should reject promises when calling objects inside detached frames.
No new tests, rebaselined existing test.
- bindings/js/JSDOMPromiseDeferred.h:
(WebCore::callPromiseFunction):
Use the caller's globalObject instead of the lexicalGlobalObject when constructing the
deferred promise. The bug became visible when working on this service worker bug since
rejecting the promise when the frame is detached did not actually work. The issue is
that since the promise was created with the detached frame's globalObject, then it was
suspended and would not run script.
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::callerGlobalObject):
(WebCore::incumbentDOMWindow):
- bindings/js/JSDOMWindowBase.h:
Add convenience function to get the caller's globalObject. It was carved out of
incumbentDOMWindow().
- workers/service/ServiceWorker.cpp:
(WebCore::ServiceWorker::postMessage):
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::getRegistrations):
- workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::update):
(WebCore::ServiceWorkerRegistration::unregister):
Reject the promise when m_isStopped flag is set (i.e. ActiveDOMObject::stop()
has been called).
LayoutTests:
Unskip test that no longer times out and starts passing a few checks.
- fast/dom/navigator-detached-no-crash-expected.txt:
Rebaseline test now that promise is rejected.
- http/tests/media/media-stream/disconnected-frame-permission-denied-expected.txt:
- http/tests/media/media-stream/disconnected-frame-permission-denied.html:
Update and rebaseline test now that the promise is rejected. I verified that this
behavior is consistent with Chrome.
- 9:44 AM Changeset in webkit [225576] by
-
- 2 edits in trunk/LayoutTests
Marked storage/indexeddb/modern/idbtransaction-objectstore-failures-private.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=176693
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 9:31 AM Changeset in webkit [225575] by
-
- 2 edits in trunk/Source/WebCore
[Mac] REGRESSION (r224527): Drawing a path with box-shadow takes double the blur-radius on Retina display
https://bugs.webkit.org/show_bug.cgi?id=180460
<rdar://problem/35869866>
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-12-06
Reviewed by Daniel Bates.
Disable using CGContextDrawPathDirect() for macOS High Sierra or earlier.
This API has a bug when drawing a path with a shadow on Retina display.
- platform/graphics/cg/GraphicsContextCG.cpp:
- 9:13 AM Changeset in webkit [225574] by
-
- 5 edits in trunk
Service Worker fetch should filter HTTP headers that are added by CachedResourceLoader/CachedResource
https://bugs.webkit.org/show_bug.cgi?id=180462
Patch by Youenn Fablet <youenn@apple.com> on 2017-12-06
Reviewed by Geoffrey Garen.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/fetch-response-taint.https-expected.txt:
Source/WebCore:
Coved by rebased test.
- loader/CrossOriginAccessControl.cpp:
(WebCore::cleanRedirectedRequestForAccessControl): Accept header is a safe header so it is fine to keep it.
- workers/service/context/ServiceWorkerFetch.cpp:
(WebCore::ServiceWorkerFetch::dispatchFetchEvent): Cleaning headers added by CachedResourceLoader/CachedResource.
- 3:46 AM Changeset in webkit [225573] by
-
- 8 edits4 adds in trunk/Source
[CoordGraphics] Introduce Nicosia::PaintingContext, add Cairo implementation
https://bugs.webkit.org/show_bug.cgi?id=180239
Reviewed by Michael Catanzaro.
Source/WebCore:
As the next step in the Nicosia abstraction formation, we introduce
Nicosia::PaintingContext. Implementations of this class will leverage a
chosen 2D graphics library to paint (through GraphicsContext) into the
memory area that's specified by a given Nicosia::Buffer object.
Nicosia::Buffer is slimmed down to only control the memory that's
required for rasterization of an RGBA32 painting output. It mimics the
Cairo ImageBuffer implementation by using FastMalloc to allocate the
necessary memory. In the future this class might become an interface of
which different implementations will be providing memory that's
allocated through different ways. For instance, when GLES3 is available,
it would be possible to map GPU memory into the process memory space and
rasterize into that, effectively eliminating need for GPU uploads.
Since the ImageBuffer use in Nicosia::Buffer is dropped, the context()
and uploadImage() methods are also removed. The functionality of
ImageBuffer that was leveraged for CoordinatedGraphics rasterization
still remains used through the PaintingContextCairo implementation. In
the constructor of that class, with the target Nicosia::Buffer provided,
we construct the cairo_surface_t and cairo_t objects that are necessary
to create a combination of PlatformContextCairo and GraphicsContext
objects that we can then use for rasterization.
Reference of the passed-in Nicosia::Buffer object is increased for the
lifetime of the cairo_surface_t object that will be drawing into that
buffer's memory area. This ensures the memory area doesn't disappear
from a live cairo_surface_t. Still, the expectation is that the
cairo_surface_t object won't outlive the PaintingContextCairo object's
lifetime, since the cairo_t object is also managed here and deleted in
the destructor. To test that, we use a cairo_surface_t user data key
that in its destroy callback dereferences the Nicosia::Buffer object and
also marks the deletion process for the related PaintingContextCairo
object as complete. This m_deletionComplete value is tested in the
destructor of the class, once all the Cairo references are nulled out.
The PaintingContext objects should be limited to a single scope,
enabling the implementation resources to assume that the lifetime of the
implementation object won't extend outside of the scope where it was
created. To ensure that, the PaintingContext::paint() static function is
added that creates the PaintingContext object and then executes the
passed-in functor, passing it the GraphicsContext that should be used
for drawing. Drawing is thus limited to that functor only, and the
PaintingContext's create() function and the virtual graphicsContext()
are not made public in the class.
No new tests -- no change in functionality.
- platform/TextureMapper.cmake:
- platform/graphics/nicosia/NicosiaBuffer.cpp:
(Nicosia::Buffer::Buffer):
(Nicosia::Buffer::context): Deleted.
(Nicosia::Buffer::uploadImage): Deleted.
- platform/graphics/nicosia/NicosiaBuffer.h:
(Nicosia::Buffer::stride const):
(Nicosia::Buffer::data const):
- platform/graphics/nicosia/NicosiaPaintingContext.cpp: Copied from Source/WebCore/platform/graphics/nicosia/NicosiaBuffer.cpp.
(Nicosia::PaintingContext::create):
- platform/graphics/nicosia/NicosiaPaintingContext.h: Copied from Source/WebCore/platform/graphics/nicosia/NicosiaBuffer.cpp.
(Nicosia::PaintingContext::paint):
- platform/graphics/nicosia/NicosiaPaintingContextCairo.cpp: Added.
(Nicosia::PaintingContextCairo::PaintingContextCairo):
(Nicosia::PaintingContextCairo::~PaintingContextCairo):
(Nicosia::PaintingContextCairo::graphicsContext):
- platform/graphics/nicosia/NicosiaPaintingContextCairo.h: Copied from Source/WebCore/platform/graphics/nicosia/NicosiaBuffer.h.
- platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp:
(Nicosia::PaintingEngineBasic::paint):
- platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
(WebCore::CoordinatedImageBacking::update):
Source/WebKit:
With Nicosia::Buffer now only providing the memory area into which the
tile content was rasterized, we can simplify the BitmapTexture update
greatly -- we don't have to create a BitmapImage anymore and retrieve
memory pointer from the contained cairo_surface_t object. Instead, we
just copy to GPU the memory that Nicosia::Buffer controls.
- Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:
(WebKit::CoordinatedBackingStoreTile::swapBuffers):
- 12:51 AM Changeset in webkit [225572] by
-
- 6 edits in trunk/Source/WebInspectorUI
Web Inspector: Styles Redesign: display related pseudo-elements
https://bugs.webkit.org/show_bug.cgi?id=176187
<rdar://problem/34194917>
Reviewed by Timothy Hatcher.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.applyFilter):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
- UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
(.spreadsheet-style-panel .section-header):
(.spreadsheet-style-panel .section-header .node-link):
(.spreadsheet-style-panel .section-header .node-link:hover):
(.spreadsheet-style-panel .section-inherited): Deleted.
(.spreadsheet-style-panel .section-inherited .node-link): Deleted.
(.spreadsheet-style-panel .section-inherited .node-link:hover): Deleted.
After all of the matched and inherited styles are added, loop over each pseudo-element, get
the DOMNodeStyles for each, refresh them if needed, and then add the header and sections.
- UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles.prototype.refreshIfNeeded):
(WI.DOMNodeStyles.prototype.refresh):
Return a reference to the DOMNodeStyles object once the refresh promise is resolved.
- UserInterface/Models/DOMNode.js:
(WI.DOMNode.prototype.get displayName):
If the node is a pseudo-element, display the pseudo-type instead of the node name.
- 12:24 AM Changeset in webkit [225571] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: [PARITY] Styles Redesign: Ability to add new style rules
https://bugs.webkit.org/show_bug.cgi?id=178329
<rdar://problem/35001005>
Reviewed by Timothy Hatcher.
- UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.newRuleButtonClicked):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.newRuleButtonContextMenu):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype._addNewRule):
Implement the two functions that CSSStyleDetailsSidebarPanel expects to exist in order for
the selected panel to support adding a new rule.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.layout):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.startEditingRuleSelector):
If the _selectorElement has not been created yet, set a flag and focus it once layout() has
been called (thereby ensuring that initialLayout() has been called).