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

Timeline



Dec 21, 2017:

10:25 PM Changeset in webkit [226259] by Dewei Zhu
  • 10 edits
    3 adds in trunk/Websites/perf.webkit.org

Add UI for A/B testing on owned commits.
https://bugs.webkit.org/show_bug.cgi?id=177993

Reviewed by Ryosuke Niwa.

Customizable test group form should support specifying and A/B testing owned commits.
Introduce 'IntermediateCommitSet' to achieve the goal of specifying owned commits for A/B test.
In order to support configure A/B testing that may need to add/remove owned commits, CommitSet may be the
closest thing we can get. However, it is a subclass of DataModelObject, which means CommitSet is a representation
of 'commit_sets' table and can only be updated from server data. Thus, we want something like CustomCommitSet that
is not a representation of database table, but unlike CustomCommitSet, it should store information about commits
rather than a revision. As a result, IntermediateCommitSet is introduced. For a longer term, we may replace
CustomCommitSet with IntermediateCommitSet as it carries more information and could potentially simplify some
CustomCommitSet related APIs by using commit id instead of commit revision.
Extend ButtonBase class so that we can enable/disable a button.

  • public/v3/components/button-base.js:

(ButtonBase):
(ButtonBase.prototype.setDisabled): Enable/disable a button.
(ButtonBase.prototype.render):
(ButtonBase.cssTemplate): Added css rule for disabled button.

  • public/v3/components/combo-box.js: Added.

(ComboBox):
(ComboBox.prototype.didConstructShadowTree): Setup text field.
(ComboBox.prototype.render):
(ComboBox.prototype._candidateNameForCurrentIndex): Returns candidate name based on current index.
(ComboBox.prototype._candidateElementForCurrentIndex): Returns a list element based on current index.
(ComboBox.prototype._autoCompleteIfOnlyOneMatchingItem): Supports auto completion.
(ComboBox.prototype._moveCandidate): Supports arrow up/down.
(ComboBox.prototype._updateCandidateList): Hide/unhide candidate list and high-light selected candidate.
(ComboBox.prototype._renderCandidateList): Render candidate list base on value on text field.
(ComboBox.htmlTemplate):
(ComboBox.cssTemplate):

  • public/v3/components/customizable-test-group-form.js:

(CustomizableTestGroupForm):
(CustomizableTestGroupForm.prototype.didConstructShadowTree): Only fetch the full commits when we about to create a customized A/B tests.
(CustomizableTestGroupForm.prototype._computeCommitSetMap): Compute the CustomCommitSet based on IntermediateCommitSet and
other revision related information in some map.
(CustomizableTestGroupForm.prototype.render):
(CustomizableTestGroupForm.prototype._renderCustomRevisionTable):
(CustomizableTestGroupForm.prototype._constructTableBodyList): This function builds table body for each highest level repository.
It will also include the owned repository rows in the same table body if the commits for highest level repository owns other commits.
(CustomizableTestGroupForm.prototype._constructTableRowForCommitsWithoutOwner): Build a table row for a highest level repository.
(CustomizableTestGroupForm.prototype._constructTableRowForCommitsWithOwner): Build a table row for repository with owner.
(CustomizableTestGroupForm.prototype._constructTableRowForIncompleteOwnedCommits): Build a table row for an unspecified repository.
(CustomizableTestGroupForm.prototype._constructRevisionRadioButtons): Update the logic to support build radio buttons for the owned repository rows.
(CustomizableTestGroupForm.cssTemplate):

  • public/v3/components/minus-button.js: Added.

(MinusButton):
(MinusButton.buttonContent):

  • public/v3/components/owned-commit-viewer.js:

(OwnedCommitViewer.prototype._renderOwnedCommitTable):

  • public/v3/components/plus-button.js: Added.

(PlusButton):
(PlusButton.buttonContent):

  • public/v3/index.html: Added new components.
  • public/v3/models/commit-log.js: Added owner and owned commit information.

(CommitLog):
(CommitLog.prototype.ownedCommits): Returns a list of commits owned by current commit.
(CommitLog.prototype.ownerCommit): Return owner commit of current commit.
(CommitLog.prototype.setOwnerCommits): Set owner commit of current commit.
(CommitLog.prototype.label): Remove unnecessary 'else'.
(CommitLog.prototype.diff): Remove unused 'fromRevisionForURL' and tiny code cleanup.
(CommitLog.prototype.ownedCommitForOwnedRepository):
(CommitLog.prototype.fetchOwnedCommits): Sets the owner for those owned commits. The owner of a commit with multiple owner
commits will be overwritten by each time this function is called.
(CommitLog.ownedCommitDifferenceForOwnerCommits): A more generic version of diffOwnedCommits. diffOwnedCommits only accepts 2 commits,
but ownedCommitDifferenceForOwnerCommits supports multiple commits.
(CommitLog.diffOwnedCommits): Deleted and should use 'CommitLog.ownedCommitDifferenceForOwnerCommits' instead.

  • public/v3/models/commit-set.js:

(CommitSet.prototype.topLevelRepositories):
(CommitSet.prototype.commitForRepository):
(IntermediateCommitSet): Take CommitSet as argument, note the commit from CommitSet doesn't contains full information of the commit.
Always call 'fetchFullCommits' once before any further usages.
(IntermediateCommitSet.prototype.fetchCommitLogs): Fetch all commits information in current commit set.
(IntermediateCommitSet.prototype._fetchCommitLogAndOwnedCommits): Fetch commit log and owned commits if necessary.
(IntermediateCommitSet.prototype.updateRevisionForOwnerRepository): Updates a commit for a repository by given a revision of the repository.
(IntermediateCommitSet.prototype.setCommitForRepository): Sets a commit for a repository in commit set.
(IntermediateCommitSet.prototype.removeCommitForRepository): Removes a commit for a repository in commit set.
(IntermediateCommitSet.prototype.ownsCommitsForRepository): Returns whether the commit for repository owns commits.
(IntermediateCommitSet.prototype.repositories): Returns all repositories in the commit set.
(IntermediateCommitSet.prototype.highestLevelRepositories): Returns all repositories those don't have an owner.
(IntermediateCommitSet.prototype.commitForRepository): Returns a commit for a given repository.
(IntermediateCommitSet.prototype.ownedRepositoriesForOwnerRepository): Returns all repositories owned by a given repository in current commit set.
(IntermediateCommitSet.prototype.ownerCommitForRepository): Returns owner commit for a given owned repository.

  • tools/js/v3-models.js: Added import for 'IntermediateCommitSet'.
  • unit-tests/commit-log-tests.js: Updated unittest which tests 'ownerCommit' function.
  • unit-tests/commit-set-tests.js: Added unit tests for IntermediateCommitSet.
9:37 PM Changeset in webkit [226258] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

com.apple.WebKit.WebContent.Development crashed in com.apple.WebCore: WebCore::UserMediaRequest::stop + 126
https://bugs.webkit.org/show_bug.cgi?id=181057
<rdar://problem/36167175>

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-21

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::stop): Fixed comment typo.

9:36 PM Changeset in webkit [226257] by commit-queue@webkit.org
  • 28 edits in trunk

ServiceWorkerThreadProxy should set the correct cookie and cache partitioning options
https://bugs.webkit.org/show_bug.cgi?id=181000

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

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/fetch-response-taint.https-expected.txt:

Source/WebCore:

Covered by rebased test.

Add a way to set the domain for cache partition explicitly on a ScriptExecutionContext.
This is used by ServiceWorkerThreadProxy document to mimick the fact that it may be
a service worker used by iframes that have a cross origin top document.
Updated code to use that new utility routine.

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::connect):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::domainForCachePartition const):

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::setDomainForCachePartition):

  • html/DOMURL.cpp:

(WebCore::DOMURL::revokeObjectURL):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResource):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setDomainForCachePartition):

  • testing/Internals.cpp:

(WebCore::Internals::isLoadingFromMemoryCache):

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::topOriginURL):
(WebCore::createPageForServiceWorker):
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):

  • workers/service/context/ServiceWorkerThreadProxy.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

Source/WebKit:

Update Service Worker WebPreferencesStore based on the first web page added.
This allows having the right storage blocking policy.

Storing that policy in the context manager to set it properly when
creating a new service worker thread proxy.

Set up correctly partitioning parameters in the dummy Document used by the service worker.

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::updatePreferencesStore):

  • UIProcess/ServiceWorkerProcessProxy.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):
(WebKit::WebProcessPool::pageAddedToProcess):

  • UIProcess/WebProcessPool.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::getAuthenticationInfo):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::updatePreferencesStore):
(WebKit::WebSWContextManagerConnection::installServiceWorker):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:

Source/WebKitLegacy/mac:

  • Misc/WebCache.mm:

(+[WebCache addImageToCache:forURL:forFrame:]):

7:34 PM Changeset in webkit [226256] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] fix build after r226245
https://bugs.webkit.org/show_bug.cgi?id=181113

Unreviewed build fix.

No new tests, no change in behavior.

Patch by Christopher Reid <chris.reid@sony.com> on 2017-12-21

  • html/AttachmentTypes.h: Added an include for std::optional
7:23 PM Changeset in webkit [226255] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit

WKPreferences doesn’t expose editable link behavior
https://bugs.webkit.org/show_bug.cgi?id=181111

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(toAPI): Added. Converts WebCore::EditableLinkBehavior to _WKEditableLinkBehavior.
(toEditableLinkBehavior): Added. Converts the other way.
(-[WKPreferences _editableLinkBehavior]): Added this getter.
(-[WKPreferences _setEditableLinkBehavior:]): Ditto.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h: Declared new property.
7:05 PM Changeset in webkit [226254] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

lowering get_by_val to GetById inside bytecode parser should check for BadType exit kind
https://bugs.webkit.org/show_bug.cgi?id=181112

Reviewed by Mark Lam.

The React subtest in Speedometer has a get_by_val it always converts
into a GetById in the DFG. This GetById always exits because of the incoming
identifier is a rope. This patch fixes this infinite exit loop
by only doing this transformation if we haven't exited due to BadType.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

6:17 PM Changeset in webkit [226253] by lingcherd_ho@apple.com
  • 2 edits in trunk/Tools

"Release 32-bit Build EWS" queue should be moved up to macOS High Sierra on Bot Watcher's Dashboard
https://bugs.webkit.org/show_bug.cgi?id=181071

Reviewed by Alexey Proskuryakov.

5:17 PM Changeset in webkit [226252] by beidson@apple.com
  • 9 edits
    3 adds
    1 delete in trunk/Source/WebCore

Refactor MessagePortChannel family classes for an easier multi-process split.
https://bugs.webkit.org/show_bug.cgi?id=180981

Reviewed by Andy Estes.

No new tests (Refactor, no behavior change)

  • Make MessagePortChannel an abstract class instead of a wrapper around a mysterious "platform" class.
  • Implement the "in-process" channel for WK1 and WK2-for-now.
  • Other random cleanup and modernization of this code.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/InProcessMessagePortChannel.cpp: Added.

(WebCore::InProcessMessagePortChannel::createChannelBetweenPorts):
(WebCore::InProcessMessagePortChannel::create):
(WebCore::InProcessMessagePortChannel::InProcessMessagePortChannel):
(WebCore::InProcessMessagePortChannel::~InProcessMessagePortChannel):
(WebCore::InProcessMessagePortChannel::postMessageToRemote):
(WebCore::InProcessMessagePortChannel::takeAllMessagesFromRemote):
(WebCore::InProcessMessagePortChannel::isConnectedTo):
(WebCore::InProcessMessagePortChannel::entangleIfOpen):
(WebCore::InProcessMessagePortChannel::disentangle):
(WebCore::InProcessMessagePortChannel::hasPendingActivity):
(WebCore::InProcessMessagePortChannel::locallyEntangledPort):
(WebCore::InProcessMessagePortChannel::takeEntangledChannel):
(WebCore::InProcessMessagePortChannel::close):
(WebCore::InProcessMessagePortChannel::setRemotePort):

  • dom/InProcessMessagePortChannel.h: Added.

(WebCore::InProcessMessagePortChannel::MessagePortQueue::create):
(WebCore::InProcessMessagePortChannel::MessagePortQueue::takeAllMessages):
(WebCore::InProcessMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
(WebCore::InProcessMessagePortChannel::MessagePortQueue::isEmpty):
(WebCore::InProcessMessagePortChannel::MessagePortQueue::MessagePortQueue):

  • dom/MessageChannel.cpp:

(WebCore::MessageChannel::MessageChannel):

  • dom/MessageChannel.h:

(WebCore::MessageChannel::create):
(WebCore::MessageChannel::port1 const):
(WebCore::MessageChannel::port2 const):

  • dom/MessagePort.cpp:

(WebCore::MessagePort::postMessage):
(WebCore::MessagePort::disentangle):
(WebCore::MessagePort::entangle):
(WebCore::MessagePort::hasPendingActivity const):

  • dom/MessagePort.h:
  • dom/MessagePortChannel.cpp: Added.

(WebCore::MessagePortChannel::createChannelBetweenPorts):
(WebCore::MessagePortChannel::MessagePortChannel):

  • dom/MessagePortChannel.h:

(WebCore::MessagePortChannel::EventData::EventData):
(WebCore::MessagePortChannel::~MessagePortChannel):

  • dom/default/PlatformMessagePortChannel.cpp: Removed.
  • dom/default/PlatformMessagePortChannel.h: Removed.
  • workers/service/context/ServiceWorkerThread.h:
5:10 PM Changeset in webkit [226251] by rniwa@webkit.org
  • 27 edits
    1 move in trunk/Source/WebCore

Rename NoEventDispatchAssertion to ScriptDisallowedScope
https://bugs.webkit.org/show_bug.cgi?id=181102

Reviewed by Zalan Bujtas.

Renamed the class.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::canExecuteScripts):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion):
(WebCore::ContainerNode::removeNodeWithScriptAssertion):
(WebCore::executeNodeInsertionWithScriptAssertion):
(WebCore::ContainerNode::removeDetachedChildren):
(WebCore::ContainerNode::insertBeforeCommon):
(WebCore::ContainerNode::appendChildCommon):
(WebCore::ContainerNode::removeBetween):
(WebCore::dispatchChildInsertionEvents):
(WebCore::dispatchChildRemovalEvents):

  • dom/ContainerNodeAlgorithms.cpp:

(WebCore::notifyChildNodeInserted):
(WebCore::notifyChildNodeRemoved):

  • dom/Document.cpp:

(WebCore::Document::resolveStyle):
(WebCore::isSafeToUpdateStyleOrLayout):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):
(WebCore::Document::dispatchWindowEvent):
(WebCore::Document::dispatchWindowLoadEvent):
(WebCore::Document::applyPendingXSLTransformsTimerFired):

  • dom/Element.cpp:

(WebCore::Element::addShadowRoot):
(WebCore::Element::attachAttributeNodeIfNeeded):
(WebCore::Element::setAttributeNode):
(WebCore::Element::setAttributeNodeNS):
(WebCore::Element::dispatchFocusInEvent):
(WebCore::Element::dispatchFocusOutEvent):

  • dom/ElementIteratorAssertions.h:

(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):

  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchEvent):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::fireEventListeners):

  • dom/NoEventDispatchAssertion.h: Removed.
  • dom/Node.cpp:

(WebCore::Node::dispatchSubtreeModifiedEvent):
(WebCore::Node::dispatchDOMActivateEvent):

  • dom/ScriptDisallowedScope.h: Copied from Source/WebCore/dom/NoEventDispatchAssertion.h.

(WebCore::ScriptDisallowedScope::ScriptDisallowedScope):
(WebCore::ScriptDisallowedScope::~ScriptDisallowedScope):
(WebCore::ScriptDisallowedScope::InMainThread::isEventDispatchAllowedInSubtree):
(WebCore::ScriptDisallowedScope::InMainThread::isScriptAllowed):
(WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion): Deleted.
(WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion): Deleted.
(WebCore::NoEventDispatchAssertion::isEventAllowedInMainThread): Deleted.
(WebCore::NoEventDispatchAssertion::InMainThread::InMainThread): Deleted.
(WebCore::NoEventDispatchAssertion::InMainThread::~InMainThread): Deleted.
(WebCore::NoEventDispatchAssertion::InMainThread::isEventDispatchAllowedInSubtree): Deleted.
(WebCore::NoEventDispatchAssertion::InMainThread::isEventAllowed): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::EventAllowedScope): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::~EventAllowedScope): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::isAllowedNode): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::isAllowedNodeInternal): Deleted.
(WebCore::NoEventDispatchAssertion::DisableAssertionsInScope::DisableAssertionsInScope): Deleted.
(WebCore::NoEventDispatchAssertion::DisableAssertionsInScope::~DisableAssertionsInScope): Deleted.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::executeClassicScript):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForDocumentSuspension):
(WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
(WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
(WebCore::ScriptExecutionContext::stopActiveDOMObjects):

  • history/CachedPage.cpp:

(WebCore::CachedPage::restore):

  • history/PageCache.cpp:

(WebCore::PageCache::addIfCacheable):

  • html/HTMLElement.cpp:

(WebCore::textToFragment):
(WebCore::HTMLElement::setInnerText):

  • html/HTMLMediaElement.cpp:
  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setInnerTextValue):

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::createCueRenderingTree):
(WebCore::VTTCue::updateDisplayTree):
(WebCore::VTTCue::removeDisplayTree):

  • loader/FormSubmission.cpp:
  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::ensureCustomFontData):

  • page/LayoutContext.cpp:

(WebCore::LayoutContext::layout):

  • rendering/RenderFrameBase.cpp:

(WebCore::RenderFrameBase::performLayoutWithFlattening):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):

  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::updateReferencedText):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::clearShadowTree):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::draw):

5:03 PM Changeset in webkit [226250] by mjs@apple.com
  • 2 edits in trunk/Source/WebCore

Update Service Workers status to Supported in Preview
https://bugs.webkit.org/show_bug.cgi?id=181093

Reviewed by Andy Estes.

  • features.json:
4:58 PM Changeset in webkit [226249] by wilander@apple.com
  • 2 edits in trunk/LayoutTests

Skip http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame.html
https://bugs.webkit.org/show_bug.cgi?id=181108

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:57 PM Changeset in webkit [226248] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

Unreviewed test fix after r226224.
<rdar://problem/36185975>

Pasteboard data is more than a dictionary. We have to whitelist NSString
and NSArray as well. Change method name to reflect that we take a whitelist
of classes that are allowed to be unarchived in the call.
Source/WebCore:

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::write): Use revised method.
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const): Ditto.

Source/WebCore/PAL:


  • pal/spi/cocoa/NSKeyedArchiverSPI.h:

(unarchivedObjectOfClassesFromData):
(unarchivedObjectOfClassFromData): Deleted.

3:05 PM Changeset in webkit [226247] by mark.lam@apple.com
  • 10 edits
    1 move
    4 adds in trunk

Add WTF::PoisonedUniquePtr to replace std::unique_ptr when poisoning is desired.
https://bugs.webkit.org/show_bug.cgi?id=181062
<rdar://problem/36167040>

Reviewed by Chris Dumez.

Source/JavaScriptCore:

  • runtime/JSCPoisonedPtr.cpp:
  • Added a needed #include.

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/PointerAsserts.cpp: Copied from Source/WTF/wtf/RefPtr.cpp.
  • renamed file because we asserts all kinds of pointers in here, not just RefPtr.


  • wtf/Poisoned.h:
  • added a missing #include.
  • make constexpr poison values more scrambled.

(WTF::makePoison):

  • wtf/PoisonedUniquePtr.h: Added.

(WTF::PoisonedUniquePtr::PoisonedUniquePtr):
(WTF::PoisonedUniquePtr::~PoisonedUniquePtr):
(WTF::PoisonedUniquePtr::create):
(WTF::PoisonedUniquePtr::operator=):
(WTF::PoisonedUniquePtr::get const):
(WTF::PoisonedUniquePtr::operator[] const):
(WTF::PoisonedUniquePtr::clear):
(WTF::PoisonedUniquePtr::destroy):
(WTF::PoisonedUniquePtr::clearWithoutDestroy):
(WTF::makePoisonedUnique):

  • wtf/RefPtr.cpp: Removed.

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/ConstExprPoisoned.cpp:
  • Removed an unneeded #include.
  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp: Added.

(TestWebKitAPI::TEST):
(TestWebKitAPI::poisonedPtrFoo):

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForTriviallyDestructibleArrays.cpp: Added.

(TestWebKitAPI::TEST):

3:03 PM Changeset in webkit [226246] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderRubyAsInline::addChild mutation to a RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181101
<rdar://problem/36184788>

Reviewed by Antti Koivisto.

  • rendering/RenderRuby.cpp:

(WebCore::isRubyBeforeBlock): Deleted.
(WebCore::isRubyAfterBlock): Deleted.
(WebCore::rubyBeforeBlock): Deleted.
(WebCore::rubyAfterBlock): Deleted.
(WebCore::createAnonymousRubyInlineBlock): Deleted.
(WebCore::lastRubyRun): Deleted.
(WebCore::RenderRubyAsInline::addChild): Deleted.

  • rendering/RenderRuby.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):

  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):

  • rendering/updating/RenderTreeBuilderRuby.h:
2:56 PM Changeset in webkit [226245] by jiewen_tan@apple.com
  • 8 edits
    13 copies
    1 add
    1 delete in trunk

Update Credential Management API for WebAuthentication
https://bugs.webkit.org/show_bug.cgi?id=181082
<rdar://problem/36055239>

Reviewed by Daniel Bates.

Source/WebCore:

Part 1/2

In this patch, it restructure a bit for existing Credential Management API codebase:

  1. Rename the folder from credentials to credentialmanagement for better understanding.
  2. Remove unneeded dummy codes, i.e. PasswordCredential and FederatedCredential.
  3. Core API and layout tests are updated correspondingly as well.

Rebaseline test results.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/credentialmanagement/BasicCredential.cpp: Renamed from Source/WebCore/Modules/credentials/BasicCredential.cpp.

(WebCore::BasicCredential::BasicCredential):
(WebCore::BasicCredential::type const):

  • Modules/credentialmanagement/BasicCredential.h: Renamed from Source/WebCore/Modules/credentials/BasicCredential.h.

(WebCore::BasicCredential::id const):

  • Modules/credentialmanagement/BasicCredential.idl: Renamed from Source/WebCore/Modules/credentials/BasicCredential.idl.
  • Modules/credentialmanagement/CredentialCreationOptions.h: Renamed from Source/WebCore/Modules/credentials/CredentialData.h.
  • Modules/credentialmanagement/CredentialCreationOptions.idl: Renamed from Source/WebCore/Modules/credentials/CredentialData.idl.
  • Modules/credentialmanagement/CredentialRequestOptions.h: Renamed from Source/WebCore/Modules/credentials/CredentialRequestOptions.h.
  • Modules/credentialmanagement/CredentialRequestOptions.idl: Renamed from Source/WebCore/Modules/credentials/CredentialRequestOptions.idl.
  • Modules/credentialmanagement/CredentialsContainer.cpp: Renamed from Source/WebCore/Modules/credentials/CredentialsContainer.cpp.

(WebCore::CredentialsContainer::get):
(WebCore::CredentialsContainer::store):
(WebCore::CredentialsContainer::isCreate):
(WebCore::CredentialsContainer::preventSilentAccess):

  • Modules/credentialmanagement/CredentialsContainer.h: Renamed from Source/WebCore/Modules/credentials/CredentialsContainer.h.

(WebCore::CredentialsContainer::create):
(WebCore::CredentialsContainer::CredentialsContainer):

  • Modules/credentialmanagement/CredentialsContainer.idl: Renamed from Source/WebCore/Modules/credentials/CredentialsContainer.idl.
  • Modules/credentialmanagement/NavigatorCredentials.cpp: Renamed from Source/WebCore/Modules/credentials/NavigatorCredentials.cpp.

(WebCore::NavigatorCredentials::supplementName):
(WebCore::NavigatorCredentials::credentials):
(WebCore::NavigatorCredentials::from):

  • Modules/credentialmanagement/NavigatorCredentials.h: Renamed from Source/WebCore/Modules/credentials/NavigatorCredentials.h.
  • Modules/credentialmanagement/NavigatorCredentials.idl: Renamed from Source/WebCore/Modules/credentials/NavigatorCredentials.idl.
  • Modules/credentials/CredentialCreationOptions.h: Removed.
  • Modules/credentials/CredentialCreationOptions.idl: Removed.
  • Modules/credentials/CredentialUserData.h: Removed.
  • Modules/credentials/CredentialUserData.idl: Removed.
  • Modules/credentials/FederatedCredential.cpp: Removed.
  • Modules/credentials/FederatedCredential.h: Removed.
  • Modules/credentials/FederatedCredential.idl: Removed.
  • Modules/credentials/FederatedCredentialInit.h: Removed.
  • Modules/credentials/FederatedCredentialInit.idl: Removed.
  • Modules/credentials/FederatedCredentialRequestOptions.h: Removed.
  • Modules/credentials/FederatedCredentialRequestOptions.idl: Removed.
  • Modules/credentials/PasswordCredential.cpp: Removed.
  • Modules/credentials/PasswordCredential.h: Removed.
  • Modules/credentials/PasswordCredential.idl: Removed.
  • Modules/credentials/PasswordCredentialData.h: Removed.
  • Modules/credentials/PasswordCredentialData.idl: Removed.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

  • credentials/idlharness-expected.txt:
2:50 PM Changeset in webkit [226244] by wilander@apple.com
  • 7 edits in trunk

Storage Access API: Allow requests from non-sandboxed iframes
https://bugs.webkit.org/show_bug.cgi?id=181099
<rdar://problem/36184501>

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests. Changed existing tests.

  • dom/Document.cpp:

(WebCore::Document::requestStorageAccess):

LayoutTests:

  • 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-grant-storage-access-cross-origin-non-sandboxed-iframe-expected.txt:
  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe.html:
2:47 PM Changeset in webkit [226243] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

Address additional review feedback after r226182.

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKPaymentRequest):

2:32 PM Changeset in webkit [226242] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Minor cleanup in WebContentReaderCocoa after r226213
https://bugs.webkit.org/show_bug.cgi?id=181104

Reviewed by Wenson Hsieh.

Deployed early exists in the case of attachment replacements to make the code easier to read.

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::createFragmentAndAddResources):
(WebCore::markupForFragmentInDocument): Extracted out of sanitizeMarkupWithArchive.
(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readImage): Simplified the return logic.

2:14 PM Changeset in webkit [226241] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Updated Swedish translation
https://bugs.webkit.org/show_bug.cgi?id=180823

Patch by Josef Andersson <josef.andersson@fripost.org> on 2017-12-21
Rubber-stamped by Michael Catanzaro.

  • sv.po:
2:05 PM Changeset in webkit [226240] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderRubyAsBlock::addChild mutation to a RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181090
<rdar://problem/36180916>

Reviewed by Antti Koivisto.

This is in preparation for moving all ruby mutation code here.

Covered by existing tests.

  • rendering/RenderRuby.cpp:

(WebCore::RenderRubyAsBlock::addChild): Deleted.

  • rendering/RenderRuby.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):

  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::isAnonymousRubyInlineBlock):
(WebCore::isRubyBeforeBlock):
(WebCore::isRubyAfterBlock):
(WebCore::isRubyChildForNormalRemoval):
(WebCore::rubyBeforeBlock):
(WebCore::rubyAfterBlock):
(WebCore::createAnonymousRubyInlineBlock):
(WebCore::lastRubyRun):
(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):

  • rendering/updating/RenderTreeBuilderRuby.h:
1:10 PM Changeset in webkit [226239] by commit-queue@webkit.org
  • 13 edits in trunk

Update FULLSCREEN_API feature defines.
https://bugs.webkit.org/show_bug.cgi?id=181015

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21
Reviewed by Tim Horton.

Change enabled iphone sdk for FULLSCREEN_API.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
1:00 PM Changeset in webkit [226238] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

ononline, onoffline and navigator.onLine don't work if Parallels or VMWare is installed
https://bugs.webkit.org/show_bug.cgi?id=32327

Reviewed by Alexey Proskuryakov.

When determining if we are online, ignore virtual interfaces added on the host machine
by Parallels and VMWare. This is needed because those interfaces are always up, whether
or not the virtual machine is running. This was causing navigator.onLine to always return
true on the host machine when Parallels or VMWare was installed.

Note that it is safe to ignore these interfaces and that it does not cause issues when
running Safari inside the virtual machine because those virtual interfaces are only
exposed on the host machine. Inside, the virtual machine, we see the usual en0 interface.

  • platform/network/mac/NetworkStateNotifierMac.cpp:

(WebCore::NetworkStateNotifier::updateStateWithoutNotifying):

12:59 PM Changeset in webkit [226237] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move repeating code to RenderTreeBuilder::insertInternal
https://bugs.webkit.org/show_bug.cgi?id=181094

Reviewed by Antti Koivisto.

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):

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

Build fix after r226223
https://bugs.webkit.org/show_bug.cgi?id=181088

Unreviewed.

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::exitFullscreen):

11:56 AM Changeset in webkit [226235] by wilander@apple.com
  • 50 edits
    1 copy
    5 adds in trunk

Storage Access API: Make DocumentLoader::willSendRequest() and WebFrameLoaderClient::detachedFromParent2() tell the network process to get rid of any sub frame access entries
https://bugs.webkit.org/show_bug.cgi?id=180728
<rdar://problem/36009288>

Reviewed by Youenn Fablet.

Source/WebCore:

Tests: http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html

http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html

This change calls the network process to clear any storage access
entries when a subframe navigates or is detached.

  • dom/Document.cpp:

(WebCore::Document::hasStorageAccess):
(WebCore::Document::requestStorageAccess):
(WebCore::Document::hasFrameSpecificStorageAccess):
(WebCore::Document::setHasFrameSpecificStorageAccess):

  • dom/Document.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:
  • platform/network/NetworkStorageSession.h:
  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::removeStorageAccess):

Source/WebKit:

This change calls the network process to clear any storage access
entries when a subframe navigates or is detached.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::removeStorageAccess):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::removeStorageAccess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::removeStorageAccess):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::hasStorageAccess):
(WebKit::WebsiteDataStore::requestStorageAccess):
(WebKit::WebsiteDataStore::removeStorageAccess):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

LayoutTests:

This change calls the network process to clear any storage access
entries when a subframe navigates or is detached.

  • http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-non-recent-user-interaction-expected.txt:
  • http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-recent-user-interaction-expected.txt:
  • http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe-expected.txt:
  • http/tests/storageAccess/request-and-deny-storage-access-cross-origin-sandboxed-iframe-expected.txt:
  • http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html: Added.
  • http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html: Added.
  • 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-sandboxed-iframe-expected.txt:
  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt:
  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame.html:
  • http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt:
  • 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-storage-access-cross-origin-sandboxed-iframe-with-unique-origin-expected.txt:
  • http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin.html:
  • http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token-expected.txt:
  • http/tests/storageAccess/request-storage-access-same-origin-iframe-expected.txt:
  • 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/resources/echo-incoming-cookies-as-json.php: Added.
  • http/tests/storageAccess/resources/has-storage-access-iframe.html:
  • http/tests/storageAccess/resources/request-storage-access-iframe.html:
  • http/tests/storageAccess/resources/self-navigating-frame-after-granted-access.html: Added.
  • platform/wk2/TestExpectations:

Removed http/tests/storageAccess/request-storage-access-top-frame.html
because it now only passes on High Sierra+.

  • platform/mac-wk2/TestExpectations:

Added the new tests as [ Pass ] on High Sierra+.

11:51 AM Changeset in webkit [226234] by graouts@webkit.org
  • 12 edits in trunk

[Web Animations] Complete support for keyframe animations
https://bugs.webkit.org/show_bug.cgi?id=179708

Reviewed by Dean Jackson.

Source/WebCore:

We implement section 5.10.3 "Processing a keyframes argument" of the Web Animations spec to handle
multiple keyframes, rather than only two, provided either in iterable (ie. array) or property-index
(ie. dictionary) form. Although we don't currently support timing function or composite operations,
we parse them as well.

While there are minimal test changes, there will be a host of changes in the next patch in which
we turn Element.animate() on.

  • animation/KeyframeEffect.cpp:

(WebCore::IDLAttributeNameToAnimationPropertyName): New utility to convert an IDL-parsed JS property
into a WebCore CSSPropertyID.
(WebCore::computeMissingKeyframeOffsets): Converts "null" offsets into computed offset values as specified
in section 4.4.2. "Calculating computed keyframes".
(WebCore::processIterableKeyframes): Process the iterable form of the keyframes argument.
(WebCore::processKeyframeLikeObject): Process a keyframe-like object found in the property-indexed form.
(WebCore::processPropertyIndexedKeyframes): Process the property-indexed form of the keyframes argument.
(WebCore::KeyframeEffect::setKeyframes): Since this method and processKeyframes() share the same signature,
we can just return the value from processKeyframes() directly.
(WebCore::KeyframeEffect::processKeyframes): Process the keyframes argument as specified.
(WebCore::KeyframeEffect::applyAtLocalTime): Delegate blending to the new setAnimatedPropertiesInStyle()
since this task is now more complex due to handling of multiple keyframes.
(WebCore::KeyframeEffect::getAnimatedStyle): Delegate blending to the new setAnimatedPropertiesInStyle()
since this task is now more complex due to handling of multiple keyframes.
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle): Handle multiple and implicit start and end keyframes.

  • animation/KeyframeEffect.h: Add some new structures used for parsing purposes.
  • animation/KeyframeEffect.idl: Expose the CompositeOperation enum and the BasePropertyIndexedKeyframe dictionary

used in processKeyframeLikeObject().

  • css/CSSStyleDeclaration.cpp:

(WebCore::CSSStyleDeclaration::getCSSPropertyIDFromJavaScriptPropertyName):

  • css/CSSStyleDeclaration.h:
  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimation::isPropertyAnimatable):

  • page/animation/CSSPropertyAnimation.h:

LayoutTests:

Rebase some WPT expectations with progressions due to supporting all keyframes arguments.

  • http/wpt/web-animations/interfaces/KeyframeEffect/constructor-expected.txt:
  • http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002-expected.txt:
  • http/wpt/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt:
11:38 AM Changeset in webkit [226233] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html because it frequently times out.
https://bugs.webkit.org/show_bug.cgi?id=178536

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:13 AM Changeset in webkit [226232] by don.olmstead@sony.com
  • 4 edits in trunk/Tools

[AppleWin] Auxiliary libraries should be updated within build-webkit
https://bugs.webkit.org/show_bug.cgi?id=181065

Reviewed by Alex Christensen.

  • EWSTools/Start-Queue.ps1:
  • Scripts/build-webkit:

(cMakeArgsFromFeatures): Deleted.
(writeCongrats): Deleted.

  • Scripts/update-webkit:
10:52 AM Changeset in webkit [226231] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Second Build fix after r226223
https://bugs.webkit.org/show_bug.cgi?id=181089

Unreviewed.

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::setInlineRect):
(WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer):

10:40 AM Changeset in webkit [226230] by guijemont@igalia.com
  • 3 edits in trunk/JSTests

Skip stress/splay-flash-access tests on memory limited platforms
https://bugs.webkit.org/show_bug.cgi?id=181086

Reviewed by Carlos Alberto Lopez Perez.

These tests use about 185M of memory, and occasionally get OOM-killed
on memory limited platforms.

  • stress/splay-flash-access-1ms.js:
  • stress/splay-flash-access.js:
10:38 AM Changeset in webkit [226229] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests/imported/w3c

LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-xhr.https.html is failing one test
https://bugs.webkit.org/show_bug.cgi?id=181072

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

Test loads twice the same resource but the memory cache intercepts the second load and provides the first response.
Fixing the test by mandating the response to not be cacheable.

  • web-platform-tests/service-workers/service-worker/fetch-request-xhr.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-worker.js:

(event.respondWith.new.Promise):

10:28 AM Changeset in webkit [226228] by jer.noble@apple.com
  • 27 edits
    30 adds in trunk

Add initial DOM support for Media Capabilities
https://bugs.webkit.org/show_bug.cgi?id=181064

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/mediacapabilities/mediacapabilities-types.html

Add basic, cross-platform, DOM facing type and API support for Media Capabilities API.

  • bindings/scripts/CodeGenerator.pm:

(WK_ucfirst):

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/mediacapabilities/AudioConfiguration.h: Added.
  • Modules/mediacapabilities/AudioConfiguration.idl: Added.
  • Modules/mediacapabilities/MediaCapabilities.cpp: Added.

(WebCore::bucketMIMETypes):
(WebCore::isValidMIMEType):
(WebCore::isValidVideoConfiguration):
(WebCore::isValidAudioConfiguration):
(WebCore::isValidMediaConfiguration):
(WebCore::MediaCapabilities::decodingInfo):
(WebCore::MediaCapabilities::encodingInfo):

  • Modules/mediacapabilities/MediaCapabilities.h: Added.
  • Modules/mediacapabilities/MediaCapabilities.idl: Added.
  • Modules/mediacapabilities/MediaCapabilitiesInfo.h: Added.

(WebCore::MediaCapabilitiesInfo::supported const):
(WebCore::MediaCapabilitiesInfo::setSupported):
(WebCore::MediaCapabilitiesInfo::smooth const):
(WebCore::MediaCapabilitiesInfo::setSmooth):
(WebCore::MediaCapabilitiesInfo::powerEfficient const):
(WebCore::MediaCapabilitiesInfo::setPowerEfficient):

  • Modules/mediacapabilities/MediaCapabilitiesInfo.idl: Added.
  • Modules/mediacapabilities/MediaConfiguration.h: Added.
  • Modules/mediacapabilities/MediaConfiguration.idl: Added.
  • Modules/mediacapabilities/MediaDecodingConfiguration.h: Added.
  • Modules/mediacapabilities/MediaDecodingConfiguration.idl: Added.
  • Modules/mediacapabilities/MediaDecodingType.h: Added.
  • Modules/mediacapabilities/MediaDecodingType.idl: Added.
  • Modules/mediacapabilities/MediaEncodingConfiguration.h: Added.
  • Modules/mediacapabilities/MediaEncodingConfiguration.idl: Added.
  • Modules/mediacapabilities/MediaEncodingType.h: Added.
  • Modules/mediacapabilities/MediaEncodingType.idl: Added.
  • Modules/mediacapabilities/NavigatorMediaCapabilities.cpp: Added.

(WebCore::NavigatorMediaCapabilities::NavigatorMediaCapabilities):
(WebCore::NavigatorMediaCapabilities::supplementName):
(WebCore::NavigatorMediaCapabilities::from):
(WebCore::NavigatorMediaCapabilities::mediaCapabilities):
(WebCore::NavigatorMediaCapabilities::mediaCapabilities const):

  • Modules/mediacapabilities/NavigatorMediaCapabilities.h: Added.
  • Modules/mediacapabilities/NavigatorMediaCapabilities.idl: Added.
  • Modules/mediacapabilities/ScreenColorGamut.h: Added.
  • Modules/mediacapabilities/ScreenColorGamut.idl: Added.
  • Modules/mediacapabilities/ScreenLuminance.h: Added.

(WebCore::ScreenLuminance::min const):
(WebCore::ScreenLuminance::setMin):
(WebCore::ScreenLuminance::max const):
(WebCore::ScreenLuminance::setMax):
(WebCore::ScreenLuminance::maxAverage const):
(WebCore::ScreenLuminance::setMaxAverage):

  • Modules/mediacapabilities/ScreenLuminance.idl: Added.
  • Modules/mediacapabilities/VideoConfiguration.h: Added.
  • Modules/mediacapabilities/VideoConfiguration.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setMediaCapabilitiesEnabled):
(WebCore::RuntimeEnabledFeatures::mediaCapabilitiesEnabled const):

  • page/Settings.yaml:

Source/WebKit:

Add a new preference to enable the (disabled-by-default) Media Capabilities API.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetMediaCapabilitiesEnabled):
(WKPreferencesGetMediaCapabilitiesEnabled):

  • UIProcess/API/C/WKPreferencesRef.h:

Source/WebKitLegacy/mac:

Add a new preference to enable the (disabled-by-default) Media Capabilities API.

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

(+[WebPreferences initialize]):
(-[WebPreferences mediaCapabilitiesEnabled]):
(-[WebPreferences setMediaCapabilitiesEnabled:]):

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

(-[WebView _preferencesChanged:]):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

  • fast/dom/navigator-detached-no-crash-expected.txt:
  • media/mediacapabilities/mediacapabilities-types-expected.txt: Added.
  • media/mediacapabilities/mediacapabilities-types.html: Added.
  • platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/win/fast/dom/navigator-detached-no-crash-expected.txt:
10:01 AM Changeset in webkit [226227] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Correct a TestExpectations entry after r226074.
https://bugs.webkit.org/show_bug.cgi?id=180703

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
9:53 AM Changeset in webkit [226226] by Keith Rollin
  • 13 edits in trunk/Source

Add optional logging of per-resource cookie information
https://bugs.webkit.org/show_bug.cgi?id=180883
<rdar://problem/35802295>

Reviewed by Brent Fulgham.

In order to support the tracking of the efficacy of Intelligent
Tracking Protection, add some logging of the cookie information
associated with each loaded resource. This logging is off by default
and is enabled with `defaults write -g WebKitLogCookieInformation
-bool true`.

Source/WebCore:

No new tests -- no new user functionality added. Only new logging has
been added.

  • platform/Cookie.h:

(WebCore::Cookie::Cookie):
(WebCore::Cookie::isNull const):
(WebCore::Cookie::encode const):
(WebCore::Cookie::decode):

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::canonicalCookieTime):
(WebCore::cookieCreatedTime):
(WebCore::cookieExpirationTime):
(WebCore::getRawCookies):

  • platform/network/cocoa/CookieCocoa.mm:

(WebCore::cookieCreated):
(WebCore::Cookie::Cookie):

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::getRawCookies):

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::shouldLogCookieInformation const):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::sendResultForCacheEntry):
(WebKit::NetworkResourceLoader::shouldLogCookieInformation const):
(WebKit::NetworkResourceLoader::logCookieInformation const):

  • NetworkProcess/NetworkResourceLoader.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

9:50 AM Changeset in webkit [226225] by guijemont@igalia.com
  • 2 edits in trunk/Tools

build-jsc: allow to build out of tree
https://bugs.webkit.org/show_bug.cgi?id=180810

Reviewed by Carlos Alberto Lopez Perez.

  • Scripts/build-jsc:
9:18 AM Changeset in webkit [226224] by Brent Fulgham
  • 5 edits in trunk/Source/WebCore

Adopt new secure coding APIs in WebCore
https://bugs.webkit.org/show_bug.cgi?id=178484
<rdar://problem/34837193>

Reviewed by Eric Carlson.

Source/WebCore:

Switch to new NSKeyed[Un]Archiver methods that use NSSecureCoding by default.

Most of the new API is wrapped in a set of convenience methods so we can
build without the new API on older systems.

No change in behavior.

  • editing/cocoa/EditorCocoa.mm:

(WebCore::archivedDataForAttributedString): Use new convenience method
to archive the string object.

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::write): Use new secure API.
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const): Ditto.

Source/WebCore/PAL:

Due to <rdar://problem/31376830 we cannot used SecureCoding on NSAttributedString
in some cases. Add a macro for OS revisions that do not support secure coding,
and use the standard unarchive operation for NSAttributedString in those cases.

Rename 'insecurelyUnarchiveObjectOfClassFromData' to 'insecurelyUnarchiveObjectFromData',
and move it earlier in the file so that it can be reused in 'unarchivedObjectOfClassFromData'.

  • pal/spi/cocoa/NSKeyedArchiverSPI.h:

(insecurelyUnarchiveObjectFromData): Renamed from insecurelyUnarchiveObjectOfClassFromData.
(unarchivedObjectOfClassFromData): Renamed from 'securelyUnarchiveObjectOfClassFromData' and
modified to use 'insecurelyUnarchiveObjectFromData'.
(securelyUnarchiveObjectOfClassFromData): Deleted.
(insecurelyUnarchiveObjectOfClassFromData): Deleted.

9:16 AM Changeset in webkit [226223] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Unreviewed Debug build fix after r226217

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
7:43 AM Changeset in webkit [226222] by guijemont@igalia.com
  • 3 edits in trunk/JSTests

Skip slow jsc tests on embedded platforms
https://bugs.webkit.org/show_bug.cgi?id=180937

Reviewed by Carlos Alberto Lopez Perez.

The tests typeProfiler/deltablue-for-of.js and
typeProfiler/getter-richards.js take a very long time in the
ftl-no-cjit-type-profiler-force-poly-proto on embedded platform, and
thus always timeout. They should be skipped on these platforms.

  • typeProfiler/deltablue-for-of.js: Skip on arm*/mips.
  • typeProfiler/getter-richards.js: Skip on arm*/mips.
7:13 AM Changeset in webkit [226221] by Alan Bujtas
  • 5 edits
    1 copy
    1 add in trunk/Source/WebCore

[RenderTreeBuilder] Move ruby mutation code to a dedicated class.
https://bugs.webkit.org/show_bug.cgi?id=181066
<rdar://problem/36167692>

Reviewed by Antti Koivisto.

This is in preparation for moving all ruby mutation code here.

No change in functionality.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::rubyRunInsertChild): Deleted.

  • rendering/updating/RenderTreeBuilder.h:

(WebCore::RenderTreeBuilder::rubyBuilder):

  • rendering/updating/RenderTreeBuilderRuby.cpp: Added.

(WebCore::RenderTreeBuilder::Ruby::Ruby):
(WebCore::RenderTreeBuilder::Ruby::insertChild):

  • rendering/updating/RenderTreeBuilderRuby.h: Copied from Source/WebCore/rendering/updating/RenderTreeBuilder.h.
6:51 AM Changeset in webkit [226220] by Ms2ger@igalia.com
  • 2 edits in trunk/Source/WebCore

Replace a FIXME comment in CanvasGradient::addColorStop().
https://bugs.webkit.org/show_bug.cgi?id=181034

Reviewed by Daniel Bates.

Tests: LayoutTests/imported/w3c/canvas/2d.gradient.object.current.html

  • html/canvas/CanvasGradient.cpp:

(WebCore::CanvasGradient::addColorStop):

6:44 AM Changeset in webkit [226219] by Ms2ger@igalia.com
  • 6 edits in trunk/LayoutTests

REGRESSION(r207238): [GTK] Layout test storage/domstorage/events/basic-body-attribute.html is failing
https://bugs.webkit.org/show_bug.cgi?id=163826

Reviewed by Daniel Bates.

Update basic-body-attribute.html to the current standard.

  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wpe/TestExpectations:
  • storage/domstorage/events/basic-body-attribute-expected.txt:
  • storage/domstorage/events/basic-body-attribute.html:
2:56 AM Changeset in webkit [226218] by commit-queue@webkit.org
  • 7 edits
    2 copies
    2 adds
    1 delete in trunk/Source

Element fullscreen interface should display the location
https://bugs.webkit.org/show_bug.cgi?id=181006
rdar://problem/36143176

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21
Reviewed by Simon Fraser.

Source/WebCore/PAL:

Add iOS availability check.

  • pal/spi/cocoa/LinkPresentationSPI.h:

Source/WebKit:

Show a short user visible location string with a lock if secure and green when trusted.

Includes other interface cleanup and tweaks.

  • UIProcess/ios/WKFullScreenWindowControllerIOS.mm:

(-[_WKFullScreenViewController viewWillTransitionToSize:withTransitionCoordinator:]):
(-[_WKFullScreenViewController visualEffectViewWithFrame:]):
(mirrorEdgeInsets):
(-[_WKFullScreenViewController _updateLayoutMargins]):
(-[_WKFullScreenViewController viewDidLayoutSubviews]):
(-[_WKFullScreenViewController setLocation:secure:trustedName:trustedSite:]):
(-[_WKFullScreenViewController createSubviews]):
(-[_WKFullScreenViewController loadView]):
(-[_WKFullScreenViewController viewDidAppear:]):
(-[_WKFullScreenViewController hideCancelButton]):
(-[_WKFullScreenViewController showCancelButton:]):
(-[_WKFullscreenRootViewController setShowsStatusBar:]):
(-[_WKFullscreenRootViewController prefersStatusBarHidden]):
(-[WKFullScreenWindowController _invalidateEVOrganizationName]):
(-[WKFullScreenWindowController isSecure]):
(-[WKFullScreenWindowController _serverTrust]):
(-[WKFullScreenWindowController _EVOrganizationName]):
(-[WKFullScreenWindowController updateLocationInfo]):
(-[WKFullScreenWindowController enterFullScreen]):
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
(-[_WKFullScreenViewController prefersStatusBarHidden]): Deleted.

  • WebKit.xcassets/Done.imageset/Contents.json: Removed.
  • WebKit.xcassets/LockMini.imageset/Contents.json: Added.
  • WebKit.xcassets/LockMini.imageset/NavigationBarLockMini@2x.pdf: Copied from Source/WebKit/WebKit.xcassets/Done.imageset/Done.pdf.
  • WebKit.xcassets/LockMini.imageset/NavigationBarLockMini@3x.pdf: Renamed from Source/WebKit/WebKit.xcassets/Done.imageset/Done.pdf.

Source/WTF:

Add SecTrustCopyInfo SPI.

  • wtf/spi/cocoa/SecuritySPI.h:
2:08 AM Changeset in webkit [226217] by commit-queue@webkit.org
  • 27 edits in trunk/Source

Enable picture-in-picture from inline element on suspend.
https://bugs.webkit.org/show_bug.cgi?id=180942
rdar://problem/34745234

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21
Reviewed by Jer Noble.

Source/WebCore:

When a element goes into element fullscreen mode, a descendant video element gains the ability to automatically enter picture-in-picture on application suspend.

This adds support for video fullscreen standby mode, which creates a VideoFullscreenInterfaceAVKit so that it can
trigger auto-pip on application suspend while the element is not actually presenting in video fullscreen mode.

VideoFullscreenInterfaceAVKit has a new state transition system that will replace the existing one to enable the increased
number and complexity of state transitions. Until we are ready to completely commit to this new code path, this implementation is
conditionalized to keep the existing code path working.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::enterFullscreen):
(WebCore::HTMLMediaElement::exitFullscreen):
(WebCore::HTMLMediaElement::setVideoFullscreenStandby):
(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const):

  • html/HTMLMediaElement.h:
  • page/ChromeClient.h:
  • platform/cocoa/VideoFullscreenChangeObserver.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerViewControllerDelegate playerViewControllerShouldStartPictureInPictureFromInlineWhenEnteringBackground:]):
(-[WebAVPlayerLayer layoutSublayers]):
(allocWebAVPictureInPicturePlayerLayerViewInstance):
(allocWebAVPlayerLayerViewInstance):
(VideoFullscreenInterfaceAVKit::applicationDidBecomeActive):
(VideoFullscreenInterfaceAVKit::setupFullscreen):
(VideoFullscreenInterfaceAVKit::enterFullscreen):
(VideoFullscreenInterfaceAVKit::exitFullscreen):
(VideoFullscreenInterfaceAVKit::cleanupFullscreen):
(VideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(VideoFullscreenInterfaceAVKit::preparedToReturnToInline):
(VideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture const):
(VideoFullscreenInterfaceAVKit::willStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::failedToStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::willStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
(VideoFullscreenInterfaceAVKit::setMode):
(VideoFullscreenInterfaceAVKit::clearMode):
(VideoFullscreenInterfaceAVKit::setHasVideoContentLayer):
(VideoFullscreenInterfaceAVKit::setInlineRect):
(VideoFullscreenInterfaceAVKit::doSetup):
(VideoFullscreenInterfaceAVKit::finalizeSetup):
(VideoFullscreenInterfaceAVKit::doEnterFullscreen):
(VideoFullscreenInterfaceAVKit::doExitFullscreen):
(VideoFullscreenInterfaceAVKit::exitFullscreenHandler):
(VideoFullscreenInterfaceAVKit::enterFullscreenHandler):
(VideoFullscreenInterfaceAVKit::returnToStandby):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::requestUpdateInlineRect):
(VideoFullscreenControllerContext::requestVideoContentLayer):
(VideoFullscreenControllerContext::returnVideoContentLayer):
(VideoFullscreenControllerContext::didSetupFullscreen):
(VideoFullscreenControllerContext::didExitFullscreen):
(VideoFullscreenControllerContext::setUpFullscreen):

Source/WebKit:

Add support for video fullscreen standby and imporved fullscreen state transition process.

Video fullscreen standby allows a video element to have its fullscreen interface state created and
continuously updated so that it can quickly change presentation state on application state.

In order to accomplish this, this change allows the fullscreen presentation to decide when it needs
an updated inline rect, or the presence of the video layer.

This is conditionalized until mac supports this model.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenModelContext::requestUpdateInlineRect):
(WebKit::VideoFullscreenModelContext::requestVideoContentLayer):
(WebKit::VideoFullscreenModelContext::returnVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
(WebKit::VideoFullscreenManagerProxy::setInlineRect):
(WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::requestUpdateInlineRect):
(WebKit::VideoFullscreenManagerProxy::requestVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::returnVideoContentLayer):

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::didEnterFullScreen):
(WebKit::WebFullScreenManager::willExitFullScreen):

  • WebProcess/FullScreen/WebFullScreenManager.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::supportsVideoFullscreenStandby):
(WebKit::WebChromeClient::enterVideoFullscreenForVideoElement):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/cocoa/VideoFullscreenManager.h:

(WebKit::VideoFullscreenInterfaceContext::fullscreenStandby const):
(WebKit::VideoFullscreenInterfaceContext::setFullscreenStandby):

  • WebProcess/cocoa/VideoFullscreenManager.messages.in:
  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::supportsVideoFullscreenStandby const):
(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::requestUpdateInlineRect):
(WebKit::VideoFullscreenManager::requestVideoContentLayer):
(WebKit::VideoFullscreenManager::returnVideoContentLayer):
(WebKit::VideoFullscreenManager::didSetupFullscreen):
(WebKit::VideoFullscreenManager::didExitFullscreen):
(WebKit::VideoFullscreenManager::didCleanupFullscreen):

Source/WebKitLegacy/mac:

Update signature of enterVideoFullscreenForVideoElement().

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::enterVideoFullscreenForVideoElement):

Source/WebKitLegacy/win:

Update signature of enterVideoFullscreenForVideoElement.

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::enterVideoFullscreenForVideoElement):

  • WebCoreSupport/WebChromeClient.h:

Dec 20, 2017:

10:48 PM Changeset in webkit [226216] by rniwa@webkit.org
  • 6 edits
    2 adds in trunk

DeferredLoadingScope incorrectly disabled images or enables deferred loading
https://bugs.webkit.org/show_bug.cgi?id=181077

Reviewed by Wenson Hsieh.

Source/WebCore:

Fixed the bug that DeferredLoadingScope::~DeferredLoadingScope was checking the wrong flag
for restoring the disabledness of images and deferred loading.

Test: editing/pasteboard/pasting-with-images-disabled-should-not-enable-deferred-loading.html

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::DeferredLoadingScope::~DeferredLoadingScope): Fixed the bug.

  • testing/Internals.cpp:

(WebCore::Internals::pageDefersLoading): Added for testing.

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

LayoutTests:

Added a regression test.

  • editing/pasteboard/pasting-with-images-disabled-should-not-enable-deferred-loading-expected.txt: Added.
  • editing/pasteboard/pasting-with-images-disabled-should-not-enable-deferred-loading.html: Added.
9:39 PM Changeset in webkit [226215] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

isSafari check should take Safari Technology Preview into account
https://bugs.webkit.org/show_bug.cgi?id=181076

Reviewed by Alex Christensen.

Fixed isSafari() so that it returns true for Safari Technology Preview. This bug resulted in the custom pasteboard
types not being enabled in Safari Technology Preview. In long term, we should eliminate these isSafari() checks.

  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::MacApplication::isSafari):

8:37 PM Changeset in webkit [226214] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkitpy: simctl cannot handle partial runtime version matches
https://bugs.webkit.org/show_bug.cgi?id=181055
<rdar://problem/36163798>

Reviewed by Alexey Proskuryakov.

A request for a simulator runtime of iOS 11 should be fulfilled by
iOS 11.0.1.

  • Scripts/webkitpy/xcode/simulator.py:

(Simulator.runtime): Allow for partial matching of iOS runtime versions.

  • Scripts/webkitpy/xcode/simulator_unittest.py:

(test_failed_partial_version_match): Test that partial version mapping does
not give false positives.

7:50 PM Changeset in webkit [226213] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

[Attachment Support] Attachment replacement logic should not depend on subresource URL attribute replacement
https://bugs.webkit.org/show_bug.cgi?id=181068
<rdar://problem/36168313>

Reviewed by Ryosuke Niwa.

Refactors attachment replacement logic, so that it doesn't require us to first replace element attributes that
contain subresource URLs with blob URLs before performing attachment element replacement. See below comments for
more detail.

Covered by existing API tests in WKAttachmentTests.

  • editing/WebContentReader.h:

(WebCore::BlobReplacementInfo::isEmpty const): Deleted.

Remove BlobReplacementInfo. Instead, augment replaceRichContentWithAttachments so that it takes in the list of
subresources directly and generates blobs for each subresource.

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::replaceSelectionWithAttributedString):

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::shouldReplaceRichContentWithAttachments):
(WebCore::createFragmentForImageAttachment):
(WebCore::replaceRichContentWithAttachments):
(WebCore::createFragmentAndAddResources):
(WebCore::sanitizeMarkupWithArchive):

In these helper functions that currently convert subresource URLs to blob URLs, if attachment elements are not
defined out, and the runtime feature for attachment elements is enabled, then use an alternate codepath to
adjust the markup (via replaceRichContentWithAttachments).

Otherwise, fall back to default subresource URL conversion logic, which (at the moment) still converts
subresources to blobs, but will soon be changed to emit data URLs instead.

(WebCore::WebContentReader::readWebArchive):
(WebCore::WebContentMarkupReader::readWebArchive):
(WebCore::WebContentReader::readRTFD):
(WebCore::WebContentMarkupReader::readRTFD):
(WebCore::WebContentReader::readRTF):
(WebCore::WebContentMarkupReader::readRTF):
(WebCore::WebContentReader::readImage):

Remove the createFragmentFromAttributedString helper and revert to just calling createFragmentAndAddResources.

(WebCore::createFragmentFromAttributedString): Deleted.

7:39 PM Changeset in webkit [226212] by don.olmstead@sony.com
  • 2 edits in trunk

[CMake][Win] Add a way to set CMAKE_IGNORE_PATH
https://bugs.webkit.org/show_bug.cgi?id=181056

Reviewed by Konstantin Tokarev.

  • Source/cmake/OptionsWin.cmake:
6:45 PM Changeset in webkit [226211] by eric.carlson@apple.com
  • 32 edits
    4 adds in trunk

[MediaStream] Add screen capture IDL and stub functions
https://bugs.webkit.org/show_bug.cgi?id=181070
<rdar://problem/35555184>

Reviewed by Youenn Fablet.

Source/WebCore:

Tests: fast/mediastream/screencapture-disabled.html

fast/mediastream/screencapture-enabled.html

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getDisplayMedia const):
(WebCore::MediaDevices::getSupportedConstraints):

  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/MediaDevices.idl:
  • Modules/mediastream/MediaTrackConstraints.cpp:

(WebCore::convertToInternalForm):

  • Modules/mediastream/MediaTrackConstraints.h:
  • Modules/mediastream/MediaTrackConstraints.idl:
  • Modules/mediastream/MediaTrackSupportedConstraints.h:
  • Modules/mediastream/MediaTrackSupportedConstraints.idl:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::start):
(WebCore::UserMediaRequest::allow):
(WebCore::UserMediaRequest::deny):

  • Modules/mediastream/UserMediaRequest.h:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::screenCaptureEnabled const):
(WebCore::RuntimeEnabledFeatures::setScreenCaptureEnabled):

  • platform/mediastream/CaptureDevice.h:
  • platform/mediastream/MediaConstraints.cpp:

(WebCore::MediaTrackConstraintSetMap::set):

  • platform/mediastream/MediaConstraints.h:

(WebCore::MediaTrackConstraintSetMap::displaySurface const):
(WebCore::MediaTrackConstraintSetMap::logicalSurface const):
(WebCore::MediaTrackConstraintSetMap::encode const):
(WebCore::MediaTrackConstraintSetMap::decode):

  • platform/mediastream/MediaStreamRequest.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::fitnessDistance):
(WebCore::RealtimeMediaSource::applyConstraint):
(WebCore::RealtimeMediaSource::supportsConstraint const):

  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints):
(WebCore::RealtimeMediaSourceCenter::captureDeviceWithPersistentID):

  • platform/mediastream/RealtimeMediaSourceSettings.h:

(WebCore::RealtimeMediaSourceSettings::supportsDisplaySurface const):
(WebCore::RealtimeMediaSourceSettings::displaySurface const):
(WebCore::RealtimeMediaSourceSettings::setDisplaySurface):
(WebCore::RealtimeMediaSourceSettings::supportsLogicalSurface const):
(WebCore::RealtimeMediaSourceSettings::logicalSurface const):
(WebCore::RealtimeMediaSourceSettings::setLogicalSurface):

  • platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp:

(WebCore::RealtimeMediaSourceSupportedConstraints::supportsConstraint const):

  • platform/mediastream/RealtimeMediaSourceSupportedConstraints.h:

(WebCore::RealtimeMediaSourceSupportedConstraints::supportsDisplaySurface const):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsDisplaySurface):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsLogicalSurface const):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsLogicalSurface):
(WebCore::RealtimeMediaSourceSupportedConstraints::encode const):
(WebCore::RealtimeMediaSourceSupportedConstraints::decode):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setScreenCaptureEnabled):

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

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _screenCaptureEnabled]):
(-[WKPreferences _setScreenCaptureEnabled:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

LayoutTests:

  • fast/mediastream/screencapture-disabled-expected.txt: Added.
  • fast/mediastream/screencapture-disabled.html: Added.
  • fast/mediastream/screencapture-enabled-expected.txt: Added.
  • fast/mediastream/screencapture-enabled.html: Added.
6:38 PM Changeset in webkit [226210] by Matt Lewis
  • 8 edits
    1 move
    1 delete in trunk

Unreviewed, rolling out r225656.

The test has been a flaky timout since being added.

Reverted changeset:

"WebAssembly: sending module to iframe fails"
https://bugs.webkit.org/show_bug.cgi?id=179263
https://trac.webkit.org/changeset/225656

5:58 PM Changeset in webkit [226209] by Yusuke Suzuki
  • 8 edits
    1 add in trunk

[JSC] Do not check isValid() in op_new_regexp
https://bugs.webkit.org/show_bug.cgi?id=180970

Reviewed by Saam Barati.

JSTests:

  • stress/regexp-syntax-error-invalid-flags.js: Added.

(shouldThrow):

Source/JavaScriptCore:

We should not check isValid() inside op_new_regexp.
This simplifies the semantics of NewRegexp node in DFG.

  • bytecompiler/NodesCodegen.cpp:

(JSC::RegExpNode::emitBytecode):

  • dfg/DFGMayExit.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewRegexp):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewRegexp):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

5:54 PM Changeset in webkit [226208] by sbarati@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

GetPropertyEnumerator in DFG/FTL should not unconditionally speculate cell
https://bugs.webkit.org/show_bug.cgi?id=181054

Reviewed by Mark Lam.

Speedometer's react subtest has a function that is in an OSR exit loop because
we used to unconditionally speculate cell for the operand to GetPropertyEnumerator.
This fix doesn't seem to speed up Speedometer at all, but it's good hygiene
for our compiler to not have this pathology. This patch adds a generic
GetPropertyEnumerator to prevent the exit loop.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetPropertyEnumerator):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
5:49 PM Changeset in webkit [226207] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Unreviewed, rolling out r226155.

This caused test failures.

Reverted changeset:

"Web Inspector: add TestPage.debug() to inspect evaluations
being sent to Inspector page"
https://bugs.webkit.org/show_bug.cgi?id=181005
https://trac.webkit.org/changeset/226155

5:39 PM Changeset in webkit [226206] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Crash when clearing std::optional<WebKit::WebServiceWorkerFetchTaskClient::BlobLoader>
https://bugs.webkit.org/show_bug.cgi?id=181061

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

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didFinishBlobLoading): moving the object to not destroy 'this' too soon.

5:10 PM Changeset in webkit [226205] by don.olmstead@sony.com
  • 16 edits in trunk/Source/WebCore

[Win] Use WCharStringExtras functions in WebCore
https://bugs.webkit.org/show_bug.cgi?id=180963

Reviewed by Alex Christensen.

No new tests. No change in behavior.

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::appendLinkedFonts):
(WebCore::getLinkedFonts):
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::FontCache::fontFromDescriptionAndLogFont):

  • platform/graphics/win/FontCustomPlatformDataCairo.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData):

  • platform/graphics/win/IconWin.cpp:

(WebCore::Icon::createIconForFiles):

  • platform/network/win/DownloadBundleWin.cpp:

(WebCore::DownloadBundle::appendResumeData):
(WebCore::DownloadBundle::extractResumeData):

  • platform/text/win/LocaleWin.cpp:

(WebCore::LCIDFromLocaleInternal):
(WebCore::LCIDFromLocale):

  • platform/win/ClipboardUtilitiesWin.cpp:

(WebCore::getWebLocData):
(WebCore::createGlobalData):
(WebCore::getFileDescriptorData):
(WebCore::getURL):
(WebCore::getCFData):
(WebCore::setCFData):

  • platform/win/DragDataWin.cpp:

(WebCore::DragData::asFilenames const):

  • platform/win/DragImageWin.cpp:

(WebCore::createDragImageIconForCachedImageFilename):
(WebCore::dragLabelFont):

  • platform/win/FileSystemWin.cpp:

(WebCore::FileSystem::getFindData):
(WebCore::FileSystem::createSymbolicLink):
(WebCore::FileSystem::deleteFile):
(WebCore::FileSystem::deleteEmptyDirectory):
(WebCore::FileSystem::moveFile):
(WebCore::FileSystem::pathByAppendingComponent):
(WebCore::FileSystem::makeAllDirectories):
(WebCore::FileSystem::pathGetFileName):
(WebCore::FileSystem::openTemporaryFile):
(WebCore::FileSystem::openFile):
(WebCore::FileSystem::hardLinkOrCopyFile):

  • platform/win/MIMETypeRegistryWin.cpp:

(WebCore::mimeTypeForExtension):
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::read):
(WebCore::createGlobalHDropContent):

  • platform/win/PathWalker.cpp:

(WebCore::PathWalker::PathWalker):

  • platform/win/SSLKeyGeneratorWin.cpp:

(WebCore::WebCore::signedPublicKeyAndChallengeString):

  • platform/win/SharedBufferWin.cpp:

(WebCore::SharedBuffer::createFromReadingFile):

  • rendering/RenderThemeWin.cpp:

(WebCore::fillFontDescription):

5:07 PM Changeset in webkit [226204] by commit-queue@webkit.org
  • 2 edits in trunk/Source/bmalloc

Include stdio.h before using stderr and _IONBF
https://bugs.webkit.org/show_bug.cgi?id=181046

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2017-12-20
Reviewed by Alex Christensen.

  • bmalloc/IsoTLS.cpp:
4:13 PM Changeset in webkit [226203] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

com.apple.WebKit.WebContent.Development crashed in com.apple.WebCore: WebCore::UserMediaRequest::stop + 126
https://bugs.webkit.org/show_bug.cgi?id=181057

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

Covered by fast/mediastream tests to not crash anymore.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::stop):

2:47 PM Changeset in webkit [226202] by beidson@apple.com
  • 8 edits
    1 add in trunk

Assertion failure in MessagePort::contextDestroyed in http/tests/security/MessagePort/event-listener-context.html, usually attributed to later tests.
https://bugs.webkit.org/show_bug.cgi?id=94458

Reviewed by Chris Dumez.

Source/WebCore:

No new tests (Changed existing test to reliably crash before this change, and work after it)

There was already a glaring FIXME that said "MessagePorts should be ActiveDOMObjects"

It was right, and it fixes up this subtle lifetime issue.

  • dom/MessagePort.cpp:

(WebCore::MessagePort::MessagePort):
(WebCore::MessagePort::hasPendingActivity const):
(WebCore::MessagePort::locallyEntangledPort const):
(WebCore::MessagePort::activeDOMObjectName const):
(WebCore::MessagePort::hasPendingActivity): Deleted.
(WebCore::MessagePort::locallyEntangledPort): Deleted.

  • dom/MessagePort.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::~ScriptExecutionContext):
(WebCore::ScriptExecutionContext::stopActiveDOMObjects):
(WebCore::ScriptExecutionContext::hasPendingActivity const):

LayoutTests:

  • fast/events/message-port-constructor-for-deleted-document-expected.txt:
  • fast/events/message-port-constructor-for-deleted-document.html:
  • fast/events/resources/copy-of-message-port-context-destroyed.html: Added.
  • platform/mac/TestExpectations: Reenable the now-reliable and now-passing test.
2:09 PM Changeset in webkit [226201] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 46

Added a tag for Safari Technology Preview release 46.

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

Do not search for service worker registration in case of non HTTP navigation loads
https://bugs.webkit.org/show_bug.cgi?id=180976
<rdar://problem/36157322>

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-20

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource): Removing unneeded spaces.

1:38 PM Changeset in webkit [226199] by commit-queue@webkit.org
  • 4 edits
    1 delete in trunk/LayoutTests

LayoutTests/http/tests/workers/service/service-worker-cache-api.https.html is failing on most platforms
https://bugs.webkit.org/show_bug.cgi?id=181052

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

Fixing buggy test: load was probably not intercepted.

  • TestExpectations:
  • http/tests/workers/service/resources/service-worker-cache-api.js: Removed.
  • http/tests/workers/service/service-worker-cache-api.https-expected.txt:
  • http/tests/workers/service/service-worker-cache-api.https.html:
1:08 PM Changeset in webkit [226198] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[GTK] imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.html is failing
https://bugs.webkit.org/show_bug.cgi?id=181029

Patch by Alicia Boya García <aboya@igalia.com> on 2017-12-20
Reviewed by Carlos Alberto Lopez Perez.

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:
12:10 PM Changeset in webkit [226197] by achristensen@apple.com
  • 1 edit
    2 deletes in trunk/Source/WebCore

Remove some SVN files accidentally committed with r226160
https://bugs.webkit.org/show_bug.cgi?id=180934

  • WebCore.xcodeproj/project.pbxproj.orig: Removed.
  • WebCore.xcodeproj/project.pbxproj.rej: Removed.
12:07 PM Changeset in webkit [226196] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[RenderTreeBuilder] Replace remaining addChild calls with RenderTreeBuilder::insert
https://bugs.webkit.org/show_bug.cgi?id=181044
<rdar://problem/36157613>

Reviewed by Antti Koivisto.

Covered by existing test cases.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::addChildIgnoringContinuation):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::addChildIgnoringContinuation):

  • rendering/RenderElement.h:

(WebCore::RenderElement::addChildIgnoringContinuation): Deleted.

12:04 PM Changeset in webkit [226195] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleanup: Dereference value of optional directly instead of using checked value in WebCore::subdivide()
https://bugs.webkit.org/show_bug.cgi?id=181050

Reviewed by Simon Fraser.

It is sufficient and more efficient to dereference a std::optional directly when we know that it has
a value as opposed to using the checked dereference member function std::optional<>::value().

No functionality changed. So, no new tests.

  • rendering/MarkerSubrange.cpp:

(WebCore::subdivide):

11:59 AM Changeset in webkit [226194] by dbates@webkit.org
  • 4 edits in trunk

MarkerSubrange.SubdivideGrammarAndSelectionOverlap{Frontmost, FrontmostWithLongestEffectiveRange} are failing
https://bugs.webkit.org/show_bug.cgi?id=181014

Reviewed by Simon Fraser.

Source/WebCore:

Fixes an issue in the subdivision algorithm where the returned subranges may not be paint order
or reverse paint order when using the default overlap strategy (OverlapStrategy::None) and
either OverlapStrategy::Frontmost or OverlapStrategy::FrontmostWithLongestEffectiveRange, respectively.

Currently we compute the overlapping subranges up to some point p_i on the line by sweeping from the
start of the line through all the unclosed subranges. The unclosed subranges are sorted along the line.
That is, they are not sorted by paint order or reverse paint order. Therefore we must take care to
ensure that we return the computed overlapping subranges with respect to paint order/reverse paint order.

  • rendering/MarkerSubrange.cpp:

(WebCore::subdivide):

Tools:

Adds a new test to ensure we compute overlapping subranges in paint order for the default
overlap strategy. Enable tests MarkerSubrange.SubdivideGrammarAndSelectionOverlap{Frontmost, FrontmostWithLongestEffectiveRange}
now that they pass.

  • TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp:

(TestWebKitAPI::TEST):

11:29 AM Changeset in webkit [226193] by commit-queue@webkit.org
  • 4 edits in trunk

LayoutTest imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=179137
<rdar://problem/35337335>

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

Source/WebCore:

Covered by unflaked test.

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::postTaskToLoader): ThreadableBlobRegistry is using callOnMainThread.
Use it also for postTaskToLoader so that there is no race condition between registering a blob and reading it.

LayoutTests:

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

[GTK] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=181045

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

  • platform/gtk/TestExpectations:
11:16 AM Changeset in webkit [226191] by commit-queue@webkit.org
  • 17 edits in trunk

Support service worker interception of request with blob body
https://bugs.webkit.org/show_bug.cgi?id=181035

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

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-xhr.https-expected.txt:

Source/WebCore:

Covered by updated test.

Add support for getting blob request bodies within service worker.
Disable interception of requests with form datas.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::fromFormData):

  • Modules/fetch/FetchBody.h:
  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

  • workers/service/context/ServiceWorkerFetch.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::postFetchTask):

Source/WebKit:

In case of service worker, remove the connection check to get access to the blob registry.
Apply this for cloning blobs registered by another process.

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::registerBlobURL):

  • NetworkProcess/FileAPI/NetworkBlobRegistry.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerBlobURL):

10:55 AM Changeset in webkit [226190] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Send fullscreenChange earlier, in webkitWillEnterFullscreen
https://bugs.webkit.org/show_bug.cgi?id=181016

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-20
Reviewed by Jer Noble.

Sending the event earlier, allows pages to update their interface state before the fullscreen animation.

  • dom/Document.cpp:

(WebCore::Document::webkitWillEnterFullScreenForElement):
(WebCore::Document::webkitDidEnterFullScreenForElement):

10:45 AM WebKitGTK/Gardening/Calendar edited by aboya@igalia.com
(diff)
10:43 AM Changeset in webkit [226189] by dbates@webkit.org
  • 63 edits
    10 deletes in trunk

Remove Alternative Presentation Button
https://bugs.webkit.org/show_bug.cgi?id=180500
<rdar://problem/35891047>

Reviewed by Simon Fraser.

We no longer need the alternative presentation button.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.make:
  • English.lproj/Localizable.strings:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.h:
  • editing/Editor.cpp:

(WebCore::Editor::clear):
(WebCore::Editor::substituteWithAlternativePresentationButton): Deleted.
(WebCore::Editor::removeAlternativePresentationButton): Deleted.
(WebCore::Editor::elementsReplacedByAlternativePresentationButton): Deleted.
(WebCore::Editor::didInsertAlternativePresentationButtonElement): Deleted.
(WebCore::Editor::didRemoveAlternativePresentationButtonElement): Deleted.

  • editing/Editor.h:
  • editing/cocoa/AlternativePresentationButtonSubstitution.cpp: Removed.
  • editing/cocoa/AlternativePresentationButtonSubstitution.h: Removed.
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::willAttachRenderers):
(WebCore::HTMLInputElement::alternativePresentationButtonElement const): Deleted.
(WebCore::HTMLInputElement::setTypeWithoutUpdatingAttribute): Deleted.
(WebCore::HTMLInputElement::createInputType): Deleted.

  • html/HTMLInputElement.h:
  • html/InputType.h:

(WebCore::InputType::alternativePresentationButtonElement const): Deleted.

  • html/InputTypeNames.cpp:

(WebCore::InputTypeNames::alternativePresentationButton): Deleted.

  • html/InputTypeNames.h:
  • html/shadow/cocoa/AlternativePresentationButtonElement.cpp: Removed.
  • html/shadow/cocoa/AlternativePresentationButtonElement.h: Removed.
  • html/shadow/cocoa/AlternativePresentationButtonInputType.cpp: Removed.
  • html/shadow/cocoa/AlternativePresentationButtonInputType.h: Removed.
  • page/ChromeClient.h:
  • platform/LocalizedStrings.cpp:

(WebCore::AXAlternativePresentationButtonLabel): Deleted.
(WebCore::alternativePresentationButtonTitle): Deleted.
(WebCore::alternativePresentationButtonSubtitle): Deleted.

  • platform/LocalizedStrings.h:
  • testing/Internals.cpp:

(WebCore::Internals::substituteWithAlternativePresentationButton): Deleted.
(WebCore::Internals::removeAlternativePresentationButton): Deleted.
(WebCore::Internals::elementsReplacedByAlternativePresentationButton): Deleted.

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

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:
  • UIProcess/API/APIUIClient.h:

(API::UIClient::didClickAlternativePresentationButton): Deleted.

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didClickAlternativePresentationButton): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleAutoFillButtonClick):
(WebKit::WebPageProxy::handleAlternativePresentationButtonClick): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:

(API::InjectedBundle::PageUIClient::didClickAutoFillButton):
(API::InjectedBundle::PageUIClient::didClickAlternativePresentationButton): Deleted.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame substituteElements:withAlternativePresentationButtonWithIdentifier:]): Deleted.
(-[WKWebProcessPlugInFrame removeAlternativePresentationButton:]): Deleted.
(-[WKWebProcessPlugInFrame elementsReplacedByAlternativePresentationButtonWithIdentifier:]): Deleted.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
  • WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:

(WKBundleFrameFocus):
(WKBundleSubstituteWithAlternativePresentationButton): Deleted.
(WKBundleRemoveAlternativePresentationButton): Deleted.
(WKBundleElementsReplacedByAlternativePresentationButton): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h:
  • WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:

(WebKit::InjectedBundlePageUIClient::didClickAlternativePresentationButton): Deleted.

  • WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::handleAlternativePresentationButtonClick): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ClickAlternativePresentationButton.mm: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(TEST):
(-[AlternativePresentationButtonDelegate _webView:didClickAlternativePresentationButtonWithUserInfo:]): Deleted.
(-[AlternativePresentationButtonDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): Deleted.

LayoutTests:

  • TestExpectations:
  • accessibility/alternative-presentation-button-expected.txt: Removed.
  • accessibility/alternative-presentation-button-input-type-expected.txt: Removed.
  • accessibility/alternative-presentation-button-input-type.html: Removed.
  • accessibility/alternative-presentation-button.html: Removed.
  • fast/forms/alternative-presentation-button/replace-and-remove-expected.html: Removed.
  • fast/forms/alternative-presentation-button/replace-and-remove.html: Removed.
  • fast/forms/alternative-presentation-button/replaced-elements-expected.txt: Removed.
  • fast/forms/alternative-presentation-button/replaced-elements.html: Removed.
  • fast/forms/alternative-presentation-button/replacement-expected.txt: Removed.
  • fast/forms/alternative-presentation-button/replacement.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/fast/forms/alternative-presentation-button/replacement-expected.txt: Removed.
  • platform/mac/TestExpectations:
10:30 AM Changeset in webkit [226188] by Chris Dumez
  • 7 edits in trunk

Do not reuse resource for memory cache if selected service worker differs
https://bugs.webkit.org/show_bug.cgi?id=181042

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is consistently passing.

  • web-platform-tests/service-workers/service-worker/unregister-controller.https-expected.txt:

Source/WebCore:

No new tests, rebaselined existing test.

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::options const):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::determineRevalidationPolicy const):

LayoutTests:

Drop test from flaky list now that it is consistently passing.

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

Marked svg/animations/smil-leak-element-instances-noBaseValRef.svg as flaky on macOS WK1.
https://bugs.webkit.org/show_bug.cgi?id=180997

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:32 AM Changeset in webkit [226186] by Ms2ger@igalia.com
  • 4 edits
    1 delete in trunk/LayoutTests

Remove some obsolete test expectations for GTK.
https://bugs.webkit.org/show_bug.cgi?id=181038

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
    • Remove tests that now use a matching expectation.
    • Move a test out of the "Unexplained failures" section.
    • Remove a test that is now skipped in all wk2 ports.
  • platform/gtk/fast/forms/mailto/formenctype-attribute-button-html-expected.txt: Removed: the generic file is correct for GTK as well.
  • platform/gtk/fast/forms/mailto/formenctype-attribute-input-html-expected.txt: Removed: the generic file is correct for GTK as well.
  • platform/mac-wk2/TestExpectations: Remove a test that is now skipped in all wk2 ports.
  • platform/wk2/TestExpectations: Add another test to the list of skipped tests that use beginDragWithFiles, which is only implemented in DumpRenderTree.
9:22 AM Changeset in webkit [226185] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Do not search for service worker registration in case of non HTTP navigation loads
https://bugs.webkit.org/show_bug.cgi?id=180976

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

Covered by manual testing using perf test app uploaded in https://bugs.webkit.org/show_bug.cgi?id=180929.
In case we are sure there is no possiblity for getting a service worker, skip the search step.
Simialrly, do not report any Document as a Service Worker client if it can never be controlled.
A follow-up patch should handle the case of local URLs service worker selection.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):
(WebCore::DocumentLoader::commitData):

9:19 AM Changeset in webkit [226184] by Ms2ger@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK] Rebaseline fast/canvas/canvas-imageSmoothingQuality.html
https://bugs.webkit.org/show_bug.cgi?id=163973

Unreviewed test gardening.

  • platform/gtk/TestExpectations: Remove failure annotation.
  • platform/gtk/fast/canvas/canvas-imageSmoothingQuality-expected.txt: Rebaseline: r202609 added additional output when one of the assertions fails, which happens in this test.
9:16 AM Changeset in webkit [226183] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked two imported/w3c/web-platform-tests/service-workers/service-worker/ test as slow.
https://bugs.webkit.org/show_bug.cgi?id=180982
https://bugs.webkit.org/show_bug.cgi?id=179194

Unreviewed test expectations.

  • platform/mac-wk2/TestExpectations:
9:11 AM Changeset in webkit [226182] by aestes@apple.com
  • 9 edits in trunk/Source

[Apple Pay] Tell PassKit whether Apple Pay JS or Payment Request was used to start an Apple Pay session
https://bugs.webkit.org/show_bug.cgi?id=181001
<rdar://problem/35479106>

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate):

  • Modules/applepay/ApplePaySessionPaymentRequest.h:

(WebCore::ApplePaySessionPaymentRequest::requester const):
(WebCore::ApplePaySessionPaymentRequest::setRequester):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::show):

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitSPI.h:

Source/WebKit:

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

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

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toAPIType):
(WebKit::toPKPaymentRequest):

8:52 AM Changeset in webkit [226181] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move finding-the-parent/creating-wrapper logic from RenderTable::addChild to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181018
<rdar://problem/36148601>

Reviewed by Antti Koivisto.

This is in preparation for removing all tree mutation from renderering code.

Covered by existing tests.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::addChildIgnoringContinuation):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::addChild):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):

  • rendering/updating/RenderTreeBuilderTable.cpp:

(WebCore::RenderTreeBuilder::Table::findOrCreateParentForChild):

  • rendering/updating/RenderTreeBuilderTable.h:
8:34 AM Changeset in webkit [226180] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

Split layout of RenderMathMLRow into smaller steps
https://bugs.webkit.org/show_bug.cgi?id=180348

Patch by Frederic Wang <fwang@igalia.com> on 2017-12-20
Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

Currently, RenderMathMLRow mixes too many steps in the same layout functions: layout children,
calculate stretch size, stretch vertical operators, calculate final ascent/descent, handle
out-of-flow positioned children, set logical height, set logical width for non-display
<math> tag, center display <math> tag etc This situation is inherited from the old flexbox
implementation but it makes difficult to read the code and to re-use layout & metrics
calculation for follow-up work on <mrow>-like elements (<menclose>, <mapdded>, <msqrt> or
<math>). See for example bug 160547 for <math> or bug 161126 for <menclose>.
This patch rewrites RenderMathMLRow into smaller steps:

  • stretchVerticalOperatorsAndLayoutChildren() which calls layoutIfNeeded() or

insertPositionedObject() on children and stretch vertical operators.

  • getContentBoundingBox() to determine the metrics of the mrow-like element without calling

layout on children or positioning them, so that we can improve mrow-like element in the
future.

  • layoutRowItems() which sets the position of children.

Setting the logical width/height or centering children is now moved into layoutBlock() since
derived class overriding layoutBlock() will do their own adjustment for width, height and
positions.

Test: mathml/mrow-preferred-width-with-out-of-flow-child.html
The rest of the behavior is unchanged and already covered by existing tests.

  • rendering/mathml/RenderMathMLMenclose.cpp:

(WebCore::RenderMathMLMenclose::layoutBlock): Use the new function and get contentWidth
directly from getContentBoundingBox().

  • rendering/mathml/RenderMathMLPadded.cpp:

(WebCore::RenderMathMLPadded::layoutBlock): Ditto.

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::layoutBlock): Ditto, also remove useless statement
baseAscent = baseDescent.

  • rendering/mathml/RenderMathMLRow.cpp:

(WebCore::toVerticalStretchyOperator): New helper function to cast to a vertical stretchy
operator.
(WebCore::RenderMathMLRow::stretchVerticalOperatorsAndLayoutChildren): New helper function
to ensure layoutIfNeeded()/insertPositionedObject() is called on children and that the
vertical operators are stretched.
(WebCore::RenderMathMLRow::getContentBoundingBox const): New helper function to determine
the width/ascent/descent to use for the mrow content.
(WebCore::RenderMathMLRow::computePreferredLogicalWidths): Skip out-of-flow children in the
preferred width calculation. This is verified by the new test.
(WebCore::RenderMathMLRow::layoutRowItems): Only keep the positioning of children with the
specified width and ascent.
(WebCore::RenderMathMLRow::layoutBlock): Center children for <math display="block"> tag and
set the logical width in other cases. Also set the logical height here.
(WebCore::RenderMathMLRow::computeLineVerticalStretch): Deleted. This work is included in
stretchVerticalOperatorsAndLayoutChildren() now.

  • rendering/mathml/RenderMathMLRow.h: Update declaration of functions.

LayoutTests:

New test to verify that out-of-flow positioned children are not taken into account in the
calculation of the preferred width of the mrow element.

  • mathml/mrow-preferred-width-with-out-of-flow-child-expected.html: Added.
  • mathml/mrow-preferred-width-with-out-of-flow-child.html: Added.
8:33 AM Changeset in webkit [226179] by Antti Koivisto
  • 9 edits
    4 moves in trunk/Source/WebCore

Move list and multicolumn building code from RenderTreeUpdater to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181021

Reviewed by Zalan Bujtas.

RenderTreeUpdater::ListItem -> RenderTreeBuilder::List
RenderTreeUpdater::MultiColumn -> RenderTreeBuilder::MultiColumn

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/TextAutoSizing.cpp:

(WebCore::TextAutoSizingValue::adjustTextNodeSizes):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::RenderTreeBuilder):
(WebCore::RenderTreeBuilder::updateAfterDescendants):

  • rendering/updating/RenderTreeBuilder.h:

(WebCore::RenderTreeBuilder::listBuilder):
(WebCore::RenderTreeBuilder::multiColumnBuilder):

  • rendering/updating/RenderTreeBuilderList.cpp: Copied from Source/WebCore/rendering/updating/RenderTreeUpdaterListItem.cpp.

(WebCore::RenderTreeBuilder::List::List):
(WebCore::RenderTreeBuilder::List::updateItemMarker):
(WebCore::RenderTreeUpdater::ListItem::updateMarker): Deleted.

  • rendering/updating/RenderTreeBuilderList.h: Copied from Source/WebCore/rendering/updating/RenderTreeUpdaterListItem.h.
  • rendering/updating/RenderTreeBuilderMultiColumn.cpp: Copied from Source/WebCore/rendering/updating/RenderTreeUpdaterMultiColumn.cpp.

(WebCore::RenderTreeBuilder::MultiColumn::MultiColumn):
(WebCore::RenderTreeBuilder::MultiColumn::updateAfterDescendants):
(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
(WebCore::RenderTreeUpdater::MultiColumn::update): Deleted.
(WebCore::RenderTreeUpdater::MultiColumn::createFragmentedFlow): Deleted.
(WebCore::RenderTreeUpdater::MultiColumn::destroyFragmentedFlow): Deleted.

  • rendering/updating/RenderTreeBuilderMultiColumn.h: Copied from Source/WebCore/rendering/updating/RenderTreeUpdaterMultiColumn.h.
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::commit):
(WebCore::RenderTreeUpdater::updateAfterDescendants):

  • rendering/updating/RenderTreeUpdater.h:
  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):

  • rendering/updating/RenderTreeUpdaterListItem.cpp: Removed.
  • rendering/updating/RenderTreeUpdaterListItem.h: Removed.
  • rendering/updating/RenderTreeUpdaterMultiColumn.cpp: Removed.
  • rendering/updating/RenderTreeUpdaterMultiColumn.h: Removed.
8:20 AM WebKitGTK/2.18.x edited by Michael Catanzaro
(diff)
6:31 AM Changeset in webkit [226178] by Ms2ger@igalia.com
  • 4 edits in trunk/Source

REGRESSION(r226160) Build broken when MEDIA_STREAM is disabled with MediaStreamRequest namespace confusion
https://bugs.webkit.org/show_bug.cgi?id=181026

Unreviewed build fix.

Source/WebCore:

  • platform/mediastream/MediaStreamRequest.h: Fix namespace, unconditionally include header.

Source/WebKit:

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):

Remove UNUSED_PARAM macros that check for (undefined) members rather than params.

6:28 AM Changeset in webkit [226177] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Refactor RenderMathMLFraction to remove members modified during layout
https://bugs.webkit.org/show_bug.cgi?id=180151

Patch by Frederic Wang <fwang@igalia.com> on 2017-12-20
Reviewed by Manuel Rego Casasnovas.

Currently, RenderMathMLFraction has three LayoutUnit members m_defaultLineThickness,
m_lineThickness and m_ascent that are set during layout. In the past such members have caused
MathML rendering bugs due to update issues. This patch refactors the layout of MathML
fractions so that it does not require to store and keep these LayoutUnit members up-to-date.
New helper functions are introduced to perform the simple arithmetic calculations required.

No new tests, behavior unchanged and already covered by existing tests.

  • rendering/mathml/RenderMathMLFraction.cpp: We add new helper functions to calculate line

thickness values. This allows to remove updateLineThickness(), m_defaultLineThickness and
m_lineThickness. We also introduce the ascentOverHorizontalAxis() helper function to
calculate the ascent over the middle of its fraction bar or stack gap. This allows to remove
the m_ascent member.
(WebCore::RenderMathMLFraction::defaultLineThickness const): Helper function to calculate
the default thickness of the fraction bar given in the MATH table or a fallback value.
This replaces the use of m_defaultLineThickness.
(WebCore::RenderMathMLFraction::lineThickness const): Helper function to resolve the
actual thickness based on the @linethickness attribute and the default value. This replaces
the use of m_lineThickness.
(WebCore::RenderMathMLFraction::relativeLineThickness const): Rewrite this function using
the new helper functions.
(WebCore::RenderMathMLFraction::fractionParameters const): Make this const and replaces
isStack() with !lineThickness().
(WebCore::RenderMathMLFraction::stackParameters const): Ditto. Also move from layoutBlock
the adjustment of parameters to ensure a minimum gap. Doing so assumes that the fraction is
valid so we add an ASSERT.
(WebCore::RenderMathMLFraction::horizontalOffset const): Make this a const since it does not
mutate anything.
(WebCore::RenderMathMLFraction::ascentOverHorizontalAxis const): Move this code from
layoutBlock() to determine the middle of the stack gap or of the fraction bar. This helper
function replaces m_ascent - mathAxisHeight(). Note that the adjustment of topShiftUp is now
done in stackParameters().
(WebCore::RenderMathMLFraction::layoutBlock): Remove the call to updateLineThickness().
Rely on stackParameters() and ascentOverHorizontalAxis() to perform the necessary calculation
of bottomShiftDown and ascent respectively.
(WebCore::RenderMathMLFraction::paint): Use lineThickness() and ascentOverHorizontalAxis()
instead of m_lineThickness, m_ascent and isStack().
(WebCore::RenderMathMLFraction::firstLineBaseline const): Use ascentOverHorizontalAxis() and
mathAxisHeight() instead of m_ascent.
(WebCore::RenderMathMLFraction::updateLineThickness): Deleted.

  • rendering/mathml/RenderMathMLFraction.h: Declare new helper functions for line thickness

values and ascent and remove the old LayoutUnit members. Make horizontalOffset(),
fractionParameter() and stackParameters() const since they do not modify anything and the two
last are used in the const function ascentOverHorizontalAxis(), itself used in
firstLineBaseline().

6:25 AM Changeset in webkit [226176] by commit-queue@webkit.org
  • 5 edits in trunk

[CMake][WTF] Lowercase ForwardingHeaders directory name of WTF
https://bugs.webkit.org/show_bug.cgi?id=181022

Patch by Fujii Hironori <Fujii Hironori> on 2017-12-20
Reviewed by Konstantin Tokarev.

.:

ForwardingHeaders of WTF are included as <wtf/FooBar.h>. But, the
directory name was uppercase DerivedSources/ForwardingHeaders/WTF.
This confuses Ninja dependency tracking. It should be lowercase.

  • Source/cmake/WebKitMacros.cmake: Renamed ForwardingHeaders directory name WTF to wtf.

Source/WTF:

  • wtf/CMakeLists.txt: Renamed ForwardingHeaders directory name WTF to wtf.
  • wtf/PlatformWin.cmake: Ditto.
6:24 AM Changeset in webkit [226175] by Ms2ger@igalia.com
  • 3 edits in trunk/LayoutTests

Make fast/css-generated-content/quotes-lang.html pass on GTK
https://bugs.webkit.org/show_bug.cgi?id=93976

Unreviewed test gardening.

Adding a span to the reference file avoids a one-pixel difference in the
font rendering between test and reference on GTK.

  • fast/css-generated-content/quotes-lang-expected.html:
  • platform/gtk/TestExpectations:
4:46 AM Changeset in webkit [226174] by clopez@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK][Clang] Build fix after r226138
https://bugs.webkit.org/show_bug.cgi?id=180984

Unreviewed build fix.

No new tests, its a build fix.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::collectSubrangesForDocumentMarkers):

4:44 AM Changeset in webkit [226173] by rniwa@webkit.org
  • 4 edits in trunk

REGRESSION(r222699): Drag & drop from a web page to Gmail fails
https://bugs.webkit.org/show_bug.cgi?id=181019

Reviewed by Wenson Hsieh.

Source/WebCore:

The bug was caused by imageTypeToFakeFilename returning "image/png" instead of "image.png" for
the filename for a PING image converted from a TIFF image. Fixed the bug by correcting this typo.

Tests: PasteImage.PasteLegacyTIFFImage

PasteImage.PasteTIFFImage

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::imageTypeToFakeFilename):

Tools:

Added assertions for filenames.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
2:59 AM WebKitGTK/2.18.x edited by Carlos Garcia Campos
(diff)
Note: See TracTimeline for information about the timeline view.