Timeline



Aug 10, 2016:

8:35 PM Changeset in webkit [204370] by commit-queue@webkit.org
  • 13 edits in trunk

Web Inspector: Should be able to Edit Node Attributes and Styles for non-UserAgent Shadow DOM nodes
https://bugs.webkit.org/show_bug.cgi?id=160762
<rdar://problem/27798271>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-08-10
Reviewed by Ryosuke Niwa.

Source/WebCore:

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::assertEditableNode):
(WebCore::InspectorDOMAgent::assertEditableElement):

  • inspector/PageConsoleAgent.cpp:

(WebCore::PageConsoleAgent::addInspectedNode):
Allow editing shadow DOM nodes as long as they are not in a UserAgent shadow tree.

Source/WebInspectorUI:

  • UserInterface/Models/DOMNode.js:

(WebInspector.DOMNode.prototype.isInUserAgentShadowTree):
(WebInspector.DOMNode.prototype.isShadowRoot):
(WebInspector.DOMNode.prototype.isUserAgentShadowRoot):
(WebInspector.DOMNode.prototype.ancestorShadowRoot):
(WebInspector.DOMNode.prototype.ancestorShadowHost):
Add methods for determining the shadow root, host, and easily
checking the type of shadow tree a node is in.

  • UserInterface/Models/CSSStyleDeclaration.js:

(WebInspector.CSSStyleDeclaration.prototype.get editable):

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype.get editable):
(WebInspector.DOMTreeElement.prototype._startEditingTarget):
(WebInspector.DOMTreeElement.prototype._populateTagContextMenu):

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):

  • UserInterface/Views/VisualStyleSelectorSection.js:

(WebInspector.VisualStyleSelectorSection.prototype._addNewRule):
Allow editing shadow DOM nodes as long as they are not in a UserAgent shadow tree.

  • UserInterface/Views/DOMTreeOutline.js:

(WebInspector.DOMTreeOutline.prototype._populateContextMenu):
Disallow "Log Element" on UserAgent shadow tree nodes.

LayoutTests:

  • inspector/dom/shadowRootType-expected.txt:
  • inspector/dom/shadowRootType.html:

Add tests for DOMNode.prototype.isInUserAgentShadowTree.

8:26 PM Changeset in webkit [204369] by Chris Dumez
  • 6 edits
    3 adds in trunk/LayoutTests

Pull in recent upstream web-platform-tests changes for dom/ and html/
https://bugs.webkit.org/show_bug.cgi?id=160759

Reviewed by Alex Christensen.

  • web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
  • web-platform-tests/dom/events/EventTarget-dispatchEvent.html:
  • web-platform-tests/dom/nodes/Document-Element-getElementsByTagName.js:

(test_getElementsByTagName):

  • web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-expected.txt:
7:21 PM Changeset in webkit [204368] by Chris Dumez
  • 6 edits
    2 adds in trunk

Optimization in Node.insertBefore() is not spec-compliant
https://bugs.webkit.org/show_bug.cgi?id=160746

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/ranges/Range-mutations-expected.txt:

Source/WebCore:

We have an optimization in Node.insertBefore(newNode, refChild) to avoid
doing any work when newNode == refChild or newNode.nextSibling == refChild.

This optimization is not in the specification:

The issue is that this optimization is observable with DOM mutation
observers / listeners or DOM ranges.

This patch addresses the issue by dropping the optimization. This case
does not seem common enough to be worth optimizing for. However, if it
turns out to regress the performance of things we care about, we could
fallback to doing the optimization only when it is not observable.

Test: fast/dom/Node/insertBefore-no-op-mutationobserver.html

  • dom/ContainerNode.cpp:

(WebCore::checkAcceptChild):
Move refChild->parent() == parent check from insertBefore() to our
pre-insertion check function, right after checking if newNode contains
parent. This was done in order to match more closely the specification
and to make sure that exception are thrown in the correct order:

(WebCore::ContainerNode::insertBefore):

Drop the (refChild->previousSibling() == &newChild
refChild == &newChild)

optimization as it is not spc-compliant.

  1. If refChild is newNode, then set refChild to newChild.nextSibling as per:

LayoutTests:

Add layout test to make sure mutation observers / listeners are always
notified when Node.insertBefore() is called.

  • fast/dom/Node/insertBefore-no-op-mutationobserver-expected.txt: Added.
  • fast/dom/Node/insertBefore-no-op-mutationobserver.html: Added.
7:08 PM Changeset in webkit [204367] by rniwa@webkit.org
  • 39 edits
    2 moves
    2 adds in trunk

Move document.defineElement to customElements.define
https://bugs.webkit.org/show_bug.cgi?id=160731

Reviewed by Chris Dumez.

Source/WebCore:

Replaced Document.prototype.defineElement by CustomElementsRegistry.prototype.define to match
the latest HTML specification: https://html.spec.whatwg.org/#custom-elements-api

This patch renames the existing CustomElementDefinitions to CustomElementsRegistry and exposes
it on window.customElements. CustomElementDefinitions is now owned by DOMWindow instead of
Document to match the spec's new semantics.

No new tests. The existing tests have been updated to reflect the change.

  • DerivedSources.cpp:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCustomElementsRegistryCustom.cpp: Added.

(WebCore::JSCustomElementsRegistry::define): Moved from JSDocumentCustom. Removed the check for
the existence of DOMWindow since CustomElementsRegistry is an attribute on DOMWindow itself.

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::defineElement): Deleted.

  • bindings/js/JSHTMLElementCustom.cpp: Added the code to check the existence of DOMWindow since

the registry is associated with DOMWindow, not Document.
(WebCore::constructJSHTMLElement):

  • dom/CustomElementsRegistry.cpp: Renamed from Source/WebCore/dom/CustomElementDefinitions.cpp.

(WebCore::CustomElementsRegistry::create): Added.
(WebCore::CustomElementsRegistry::CustomElementsRegistry): Added.
(WebCore::CustomElementsRegistry::~CustomElementsRegistry): Added.
(WebCore::CustomElementsRegistry::addElementDefinition): Moved from CustomElementDefinitions.
(WebCore::CustomElementsRegistry::addUpgradeCandidate): Ditto.
(WebCore::CustomElementsRegistry::findInterface): Ditto.
(WebCore::CustomElementsRegistry::containsConstructor): Ditto.

  • dom/CustomElementsRegistry.h: Renamed from Source/WebCore/dom/CustomElementDefinitions.h.
  • dom/CustomElementsRegistry.idl: Added.
  • dom/Document.cpp:

(WebCore::createUpgradeCandidateElement): Extracted out of createHTMLElementWithNameValidation
and createFallbackHTMLElement to share code.
(WebCore::createHTMLElementWithNameValidation):
(WebCore::createFallbackHTMLElement): This function was missing a check for the runtime flag.
Sharing code with createHTMLElementWithNameValidation via createUpgradeCandidateElement fixes it.
(WebCore::Document::ensureCustomElementDefinitions): Deleted.

  • dom/Document.h:

(WebCore::Document::customElementDefinitions): Deleted.

  • dom/Document.idl:
  • dom/Element.cpp:

(WebCore::Element::attributeChanged):

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::ensureCustomElementsRegistry): Added. Moved from Document.

  • page/DOMWindow.h:
  • page/DOMWindow.idl: Added customElements on DOMWindow.

LayoutTests:

Updated the tests and their expected results to reflect the move of Document.prototype.defineElement to
CustomElementsRegistry.prototype.define. I'm going to rename tests in a follow up.

  • fast/custom-elements/Document-createElement.html:
  • fast/custom-elements/Document-defineElement-expected.txt:
  • fast/custom-elements/Document-defineElement.html: Removed test cases for testing defining elements

in a viewless/windowless document since those documents don't have a corresponding window object.

  • fast/custom-elements/HTMLElement-constructor.html:
  • fast/custom-elements/attribute-changed-callback.html:
  • fast/custom-elements/defined-pseudo-class.html:
  • fast/custom-elements/defined-rule.html:
  • fast/custom-elements/lifecycle-callback-timing.html:
  • fast/custom-elements/parser/parser-constructs-custom-element-in-document-write.html:
  • fast/custom-elements/parser/parser-constructs-custom-element-synchronously.html:
  • fast/custom-elements/parser/parser-constructs-custom-elements-expected.txt:
  • fast/custom-elements/parser/parser-constructs-custom-elements.html:
  • fast/custom-elements/parser/parser-fallsback-to-unknown-element.html:
  • fast/custom-elements/parser/parser-sets-attributes-and-children.html:
  • fast/custom-elements/parser/parser-uses-constructed-element.html:
  • fast/custom-elements/parser/parser-uses-registry-of-owner-document.html:
  • fast/custom-elements/upgrading/Node-cloneNode.html:
  • fast/custom-elements/upgrading/upgrading-parser-created-element.html:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
6:22 PM Changeset in webkit [204366] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix WinCairo build after r204327.

  • platform/network/NetworkStorageSessionStub.cpp:

(WebCore::NetworkStorageSession::ensurePrivateBrowsingSession): Renamed from create...
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Deleted.

6:14 PM Changeset in webkit [204365] by achristensen@apple.com
  • 4 edits
    2 adds in trunk

Fix crash when changing cookie accept policy after r204327
https://bugs.webkit.org/show_bug.cgi?id=160758

Reviewed by Simon Fraser.

Source/WebKit2:

  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:

(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):

Tools:

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

(-[CookieAcceptPolicyMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/CookieMessage.html: Added.
5:09 PM Changeset in webkit [204364] by Simon Fraser
  • 5 edits in trunk/Tools

[iOS WK2] Have WebKitTestRunnerApp.app use a UIViewController, and fix to avoid the status bar
https://bugs.webkit.org/show_bug.cgi?id=160757

Reviewed by Tim Horton.

When programmatically creating the test UIWindow, make a root UIViewController and parent
the WKWebView in its view. This makes the app more like a normal UIKit application.

Move the WKWebView down 20px to avoid the status bar.

Give the UIWindow a gray background so it's obvious where the window and view positioned.

Sorted the project file. Removed the link to UIKit which showed red, and wasn't necessary.

Remove duplicate references to Launch.storyboard.

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/WebKitTestRunnerApp/AppDelegate.h: Add license.
  • WebKitTestRunner/WebKitTestRunnerApp/AppDelegate.m: Add license.

(-[AppDelegate applicationWillResignActive:]): Deleted.
(-[AppDelegate applicationDidEnterBackground:]): Deleted.
(-[AppDelegate applicationWillEnterForeground:]): Deleted.
(-[AppDelegate applicationDidBecomeActive:]): Deleted.
(-[AppDelegate applicationWillTerminate:]): Deleted.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::viewRectForWindowRect):
(WTR::PlatformWebView::PlatformWebView):
(WTR::PlatformWebView::setWindowFrame):

5:09 PM Changeset in webkit [204363] by Simon Fraser
  • 12 edits
    1 delete in trunk

[iOS WK2] Use the simulated device's screen size, rather than a harcoded size
https://bugs.webkit.org/show_bug.cgi?id=160748

Reviewed by Tim Horton.

Tools:

Use the main UIScreen's bounds for the window size if we're using a flexible viewport. This
opens the door for tests using other device sizes.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformConfigureViewForTest):

LayoutTests:

Move fast/viewport/ios skipping to ios-simulator-wk2/TestExpectations since the tests
are WK2-only.

  • fast/viewport/ios/width-is-device-width-expected.txt:
  • fast/viewport/ios/width-is-device-width-overflowing-no-shrink-to-fit-expected.txt:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt:
  • platform/ios-simulator/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt:
  • platform/ios-simulator/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt:
  • platform/ios-simulator/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt:
  • platform/ios-simulator/fast/scrolling/ios/touch-stacking-expected.txt:
  • platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-no-shrink-to-fit-expected.txt: Removed.
4:45 PM Changeset in webkit [204362] by msaboff@apple.com
  • 6 edits
    1 add in trunk

Baseline GetByVal and PutByVal for cache ID stubs need to handle exceptions
https://bugs.webkit.org/show_bug.cgi?id=160749

Reviewed by Filip Pizlo.

JSTests:

New test that causes baseline GetByValWithCachedId and PutByValWithCachedId
stubs to be generated and then throws exceptions for those stub to handle
to verify that they are properly handled.

  • stress/regress-160749.js: Added.

(testCachedGetByVal.):
(testCachedGetByVal.get for):
(testCachedGetByVal):
(testCachedPutByVal.):
(testCachedPutByVal.set for):
(testCachedPutByVal):

Source/JavaScriptCore:

We were emitting "callOperation()" calls in emitGetByValWithCachedId() and
emitPutByValWithCachedId() without linking the exception checks created by the
code emitted. This manifested itself in various ways depending on the processor.
This is due to what the destination is for an unlinked branch. On X86, an unlinked
branch goes tot he next instructions. On ARM64, we end up with an infinite loop
as we branch to the same instruction. On ARM we branch to 0 as the branch is to
an absolute address of 0.

Now we save the exception handler address for the original generated function and
link the exception cases for these by-val stubs to this handler.

  • bytecode/ByValInfo.h:

(JSC::ByValInfo::ByValInfo): Added the address of the exception handler we should
link to.

  • jit/JIT.cpp:

(JSC::JIT::link): Compute the linked exception handler address and pass it to
the ByValInfo constructor.
(JSC::JIT::privateCompileExceptionHandlers): Make sure that we generate the
exception handler if we have any by-val handlers.

  • jit/JIT.h:

Added a label for the exception handler. We'll link this later for the
by value handlers.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):
Link exception branches to the exception handler for the main function.

4:30 PM Changeset in webkit [204361] by n_wang@apple.com
  • 8 edits
    3 adds in trunk

AX: Media controls timeline should have percentage value description
https://bugs.webkit.org/show_bug.cgi?id=160619

Reviewed by Eric Carlson.

Source/WebCore:

Added aria-valuetext attribute to the timeline slider and set its value to
the percentage format. Also formatted the elapsed/remaining timer's description
so that it's more human readable.

Test: http/tests/media/hls/video-duration-accessibility.html

  • English.lproj/mediaControlsLocalizedStrings.js:
  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.drawVolumeBackground):
(Controller.prototype.formatTimeDescription):
(Controller.prototype.formatTime):
(Controller.prototype.updateTime):
(Controller.prototype.updateControlsWhileScrubbing):

LayoutTests:

  • http/tests/media/hls/video-duration-accessibility-expected.txt: Added.
  • http/tests/media/hls/video-duration-accessibility.html: Added.
  • http/tests/media/resources/hls/generate-vod.php: Added.
  • media/media-controls-accessibility-expected.txt:
  • platform/efl/accessibility/media-element-expected.txt:
  • platform/gtk/accessibility/media-element-expected.txt:
  • platform/mac/accessibility/media-element-expected.txt:
4:19 PM Changeset in webkit [204360] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

DFG's flushForTerminal() needs to add PhantomLocals for bytecode live locals.
https://bugs.webkit.org/show_bug.cgi?id=160755
<rdar://problem/27488507>

Reviewed by Filip Pizlo.

JSTests:

  • stress/need-bytecode-liveness-for-unreachable-blocks-at-dfg-time.js: Added.

Source/JavaScriptCore:

If the DFG sees that an inlined function will result in an OSR exit every time,
it will treat all downstream blocks as dead. However, it still needs to keep
locals that are alive in the bytecode alive for the compiled function so that
those locals are properly written to the stack by the OSR exit ramp.

The existing code neglected to do this. This patch remedies this issue.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::flushDirect):
(JSC::DFG::ByteCodeParser::addFlushOrPhantomLocal):
(JSC::DFG::ByteCodeParser::phantomLocalDirect):
(JSC::DFG::ByteCodeParser::flushForTerminal):

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

Revert back to the old style member function state machine for callbacks
https://bugs.webkit.org/show_bug.cgi?id=160756

Reviewed by Tim Horton.

This is another step towards merging SQLTransactionBackend and SQLTransaction,
and using a single state machine for both sides.

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::performPendingCallback):
(WebCore::SQLTransaction::checkAndHandleClosedDatabase):
(WebCore::SQLTransaction::scheduleCallback):
(WebCore::SQLTransaction::openTransactionAndPreflight):
(WebCore::SQLTransaction::runCurrentStatement):
(WebCore::SQLTransaction::handleCurrentStatementError):
(WebCore::SQLTransaction::handleTransactionError):
(WebCore::SQLTransaction::postflightAndCommit):
(WebCore::SQLTransaction::debugStepName):

  • Modules/webdatabase/SQLTransaction.h:
3:32 PM Changeset in webkit [204358] by gskachkov@gmail.com
  • 18 edits
    1 copy
    2 adds in trunk

[ES2016] Implement Object.values
https://bugs.webkit.org/show_bug.cgi?id=160410

Reviewed by Saam Baraty, Yusuke Suzuki.

This patch adds values function to Object that return list of
own values of the object. Patch did according to the point of
spec http://tc39.github.io/ecma262/#sec-object.values

Also patch adds generic builtin intrinsic constants:
@IterationKindKey/@IterationKindValue/@IterationKindKeyValue
that is used in EnumerableOwnProperties to set Kind of operation
and replace own IterationKind enums in following iterators:
ArrayIterator, MapIterator, and SetIterator

Source/JavaScriptCore:

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/ObjectConstructor.js:

(globalPrivate.enumerableOwnProperties):
(values):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::getInternalProperties):

  • runtime/ArrayIteratorPrototype.h:
  • runtime/IterationKind.h: Copied from Source/JavaScriptCore/builtins/ObjectConstructor.js.
  • runtime/JSMapIterator.h:

(JSC::JSMapIterator::create):
(JSC::JSMapIterator::next):
(JSC::JSMapIterator::kind):
(JSC::JSMapIterator::JSMapIterator):

  • runtime/JSSetIterator.h:

(JSC::JSSetIterator::create):
(JSC::JSSetIterator::next):
(JSC::JSSetIterator::kind):
(JSC::JSSetIterator::JSSetIterator):

  • runtime/MapPrototype.cpp:

(JSC::mapProtoFuncValues):
(JSC::mapProtoFuncEntries):
(JSC::mapProtoFuncKeys):
(JSC::privateFuncMapIterator):

  • runtime/ObjectConstructor.cpp:
  • runtime/SetPrototype.cpp:

(JSC::setProtoFuncValues):
(JSC::setProtoFuncEntries):
(JSC::privateFuncSetIterator):

Source/WebCore:

  • ForwardingHeaders/runtime/IterationKind.h: Added.
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):

JSTests:

  • stress/object-values.js: Added.

(compare):
(string_appeared_here.forEach):
(const.getInvokedFunctions.):
(const.getInvokedFunctions):
(Array.prototype.push):

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
2:54 PM Changeset in webkit [204357] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Move more functions to from SQLTransactionBackend to SQLTransaction
https://bugs.webkit.org/show_bug.cgi?id=160752

Reviewed by Tim Horton.

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::acquireLock):
(WebCore::SQLTransaction::openTransactionAndPreflight):
(WebCore::SQLTransaction::runStatements):
(WebCore::SQLTransaction::cleanupAndTerminate):
(WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):

  • Modules/webdatabase/SQLTransaction.h:
  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::acquireLock):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::runStatements):
(WebCore::SQLTransactionBackend::cleanupAndTerminate):
(WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):

2:31 PM Changeset in webkit [204356] by andersca@apple.com
  • 8 edits in trunk/Source/WebCore

Begin moving member functions from SQLTransactionBackend to SQLTransaction
https://bugs.webkit.org/show_bug.cgi?id=160747

Reviewed by Tim Horton.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::performClose):

  • Modules/webdatabase/DatabaseTask.cpp:

(WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
(WebCore::DatabaseTransactionTask::doPerformTask):

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::executeSQL):
(WebCore::SQLTransaction::lockAcquired):
(WebCore::SQLTransaction::performNextStep):
(WebCore::SQLTransaction::performPendingCallback):
(WebCore::SQLTransaction::notifyDatabaseThreadIsShuttingDown):
(WebCore::SQLTransaction::enqueueStatement):
(WebCore::SQLTransaction::getNextStatement):
(WebCore::SQLTransaction::runCurrentStatement):
(WebCore::SQLTransaction::handleCurrentStatementError):
(WebCore::SQLTransaction::handleTransactionError):
(WebCore::SQLTransaction::postflightAndCommit):
(WebCore::SQLTransaction::acquireOriginLock):
(WebCore::SQLTransaction::releaseOriginLockIfNeeded):

  • Modules/webdatabase/SQLTransaction.h:

(WebCore::SQLTransaction::backend): Deleted.

  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::runStatements):
(WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
(WebCore::SQLTransactionBackend::enqueueStatement): Deleted.
(WebCore::SQLTransactionBackend::performNextStep): Deleted.
(WebCore::SQLTransactionBackend::executeSQL): Deleted.
(WebCore::SQLTransactionBackend::lockAcquired): Deleted.
(WebCore::SQLTransactionBackend::getNextStatement): Deleted.
(WebCore::SQLTransactionBackend::runCurrentStatement): Deleted.
(WebCore::SQLTransactionBackend::handleCurrentStatementError): Deleted.
(WebCore::SQLTransactionBackend::handleTransactionError): Deleted.
(WebCore::SQLTransactionBackend::postflightAndCommit): Deleted.
(WebCore::SQLTransactionBackend::acquireOriginLock): Deleted.
(WebCore::SQLTransactionBackend::releaseOriginLockIfNeeded): Deleted.

  • Modules/webdatabase/SQLTransactionBackend.h:
  • Modules/webdatabase/SQLTransactionCoordinator.cpp:

(WebCore::SQLTransactionCoordinator::processPendingTransactions):
(WebCore::SQLTransactionCoordinator::shutdown):

2:25 PM Changeset in webkit [204355] by benjamin@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Speed up SparseCollection & related maps
https://bugs.webkit.org/show_bug.cgi?id=160733

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-10
Reviewed by Saam Barati.

On MBA, Graph::addNode() shows up in profiles due to SparseCollection::add().
This is unfortunate.

The first improvement is to build the new unique_ptr in the empty slot
instead of moving a new value into it.

Previously, the code would load the previous value, test if it is null
then invoke the destructor and finally fastFree(). The initial test
obviously fails so that's a whole bunch of code that is never executed.

With the new code, we just have a store.

I also removed the bounds checking on our maps based on node index.
Those bounds checks are never eliminated by clang because the index
is always loaded from memory instead of being computed.
There are unfortunately too many nodes processed and the bounds checks
get costly.

  • b3/B3SparseCollection.h:

(JSC::B3::SparseCollection::add):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::abstractValuesCache):

  • dfg/DFGInPlaceAbstractState.h:
2:23 PM Changeset in webkit [204354] by benjamin@webkit.org
  • 2 edits in trunk/Source/WTF

[JSC] TinyPtrSet::deleteListIfNecessary() no longer needs to test for reservedValue
https://bugs.webkit.org/show_bug.cgi?id=160721

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-10
Reviewed by Sam Weinig.

Previously, TinyPtrSet was using a ThinFlag if there was no OutOfLineList.
A side effect is that isThin() was false for reservedValue. When deleting
the list, we had to consider both cases: isThin() and reservedValue.

In r204065, I changed the flag to a FatFlag to ensure TinyPtrSet can be initialized
with bzero().
This changes the value of isThin() of reservedValue to true since reservedValue
does not have the FatFlag bit set.
This patch removes the useless condition from deleteListIfNecessary().

  • wtf/TinyPtrSet.h:

(WTF::TinyPtrSet::deleteListIfNecessary):

2:20 PM Changeset in webkit [204353] by sbarati@apple.com
  • 3 edits in trunk/LayoutTests

Web Inspector: rebase inspector/model/remote-object-get-properties.html and unskip
https://bugs.webkit.org/show_bug.cgi?id=160738
<rdar://problem/27788116>

Reviewed by Joseph Pecoraro.

2:19 PM Changeset in webkit [204352] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Remove some useless code I left when rewriting CSE's large maps
https://bugs.webkit.org/show_bug.cgi?id=160720

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-10
Reviewed by Michael Saboff.

  • dfg/DFGCSEPhase.cpp:

The maps m_worldMap && m_sideStateMap are useless. They come from the previous
iteration that had weaker constraints.

Also move m_heapMap after m_fallbackStackMap since that is the order
in which they are used in the algorithm.

2:15 PM Changeset in webkit [204351] by benjamin@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Remove AbstractInterpreter::executeEdges(unsigned), it is no longer used anywhere
https://bugs.webkit.org/show_bug.cgi?id=160708

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-10
Reviewed by Mark Lam.

  • dfg/DFGAbstractInterpreter.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEdges): Deleted.

2:00 PM Changeset in webkit [204350] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/fetch/fetch-in-worker-crash.html as a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=160510

Unreviewed test gardening.

1:30 PM Changeset in webkit [204349] by andersca@apple.com
  • 8 edits in trunk/Source/WebCore

Move all SQLTransactionBackend member variables to SQLTransaction
https://bugs.webkit.org/show_bug.cgi?id=160745

Reviewed by Tim Horton.

  • Modules/webdatabase/ChangeVersionWrapper.cpp:

(WebCore::ChangeVersionWrapper::performPreflight):
(WebCore::ChangeVersionWrapper::performPostflight):
(WebCore::ChangeVersionWrapper::handleCommitFailedAfterPostflight):

  • Modules/webdatabase/ChangeVersionWrapper.h:

(WebCore::ChangeVersionWrapper::sqlError): Deleted.

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::deliverTransactionErrorCallback):
(WebCore::SQLTransaction::deliverStatementCallback):
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
(WebCore::SQLTransaction::hasCallback): Deleted.
(WebCore::SQLTransaction::hasSuccessCallback): Deleted.
(WebCore::SQLTransaction::hasErrorCallback): Deleted.

  • Modules/webdatabase/SQLTransaction.h:

(WebCore::SQLTransaction::isReadOnly):

  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::SQLTransactionBackend):
(WebCore::SQLTransactionBackend::~SQLTransactionBackend):
(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::enqueueStatement):
(WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
(WebCore::SQLTransactionBackend::executeSQL):
(WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
(WebCore::SQLTransactionBackend::acquireLock):
(WebCore::SQLTransactionBackend::lockAcquired):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::runStatements):
(WebCore::SQLTransactionBackend::getNextStatement):
(WebCore::SQLTransactionBackend::runCurrentStatement):
(WebCore::SQLTransactionBackend::handleCurrentStatementError):
(WebCore::SQLTransactionBackend::handleTransactionError):
(WebCore::SQLTransactionBackend::postflightAndCommit):
(WebCore::SQLTransactionBackend::cleanupAndTerminate):
(WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
(WebCore::SQLTransactionBackend::requestTransitToState):
(WebCore::SQLTransactionBackend::acquireOriginLock):
(WebCore::SQLTransactionBackend::releaseOriginLockIfNeeded):
(WebCore::SQLTransactionBackend::currentStatement): Deleted.
(WebCore::SQLTransactionBackend::transactionError): Deleted.
(WebCore::SQLTransactionBackend::setShouldRetryCurrentStatement): Deleted.
(WebCore::SQLTransactionBackend::enqueueStatementBackend): Deleted.

  • Modules/webdatabase/SQLTransactionBackend.h:

(WebCore::SQLTransactionBackend::database): Deleted.
(WebCore::SQLTransactionBackend::isReadOnly): Deleted.

  • Modules/webdatabase/SQLTransactionCoordinator.cpp:

(WebCore::SQLTransactionCoordinator::processPendingTransactions):
(WebCore::SQLTransactionCoordinator::releaseLock):

1:25 PM Changeset in webkit [204348] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.50.0-branch/Source

Versioning.

1:24 PM Changeset in webkit [204347] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Sort the project file.

  • WebCore.xcodeproj/project.pbxproj:
1:23 PM Changeset in webkit [204346] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.50.1-branch/Source

Versioning.

1:23 PM Changeset in webkit [204345] by Simon Fraser
  • 10 edits in trunk

Sort the feature flags in the FEATURE_DEFINES lines
https://bugs.webkit.org/show_bug.cgi?id=160742

Reviewed by Anders Carlsson.
Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
1:21 PM Changeset in webkit [204344] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

Add JS array sort test case
https://bugs.webkit.org/show_bug.cgi?id=160680

Incorporate a test case related to a improper JavaScript Array
sorting behavior. The actual bug was fixed more than a year ago,
as a side effect of Bug 144013, but no test case was provided.

  • js/array-sort-crash-expected.txt: Added.
  • js/array-sort-crash.html: Added.
1:21 PM Changeset in webkit [204343] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

1:17 PM Changeset in webkit [204342] by bshafiei@apple.com
  • 1 copy in tags/Safari-603.1.2

New tag.

12:59 PM Changeset in webkit [204341] by Simon Fraser
  • 3 edits in trunk/Tools

Logging and other minor improvements to iOS webkitpy
https://bugs.webkit.org/show_bug.cgi?id=160722

Reviewed by Dan Bates.

Fix --debug-rwt-logging to log all the calls to simctl as well as device state information,
to make it easier to debug launching issues.

Have reset_preferences() reset the device, rather than just nuking the data
directory (which broke some versions of the simulator).

Make the Simulator.app launch in the background with open -g.

Wait for the simulator device to be in a known state in some more places.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort.setup_test_run):
(IOSSimulatorPort._quit_ios_simulator):
(IOSSimulatorPort.clean_up_test_run):
(IOSSimulatorPort.setup_environ_for_server):
(IOSSimulatorPort.reset_preferences):

  • Scripts/webkitpy/xcode/simulator.py:

(Device.create):
(Device.delete):
(Device):
(Device.reset):
(Simulator.wait_until_device_is_booted):
(Simulator.wait_until_device_is_in_state):
(Simulator):
(Simulator.delete_device):
(Simulator.reset_device):
(Simulator.lookup_or_create_device):

12:37 PM Changeset in webkit [204340] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking inspector/model/remote-object-get-properties.html as failing
https://bugs.webkit.org/show_bug.cgi?id=160738

Unreviewed test gardening.

12:35 PM Changeset in webkit [204339] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Can't click on the lower half of "S" icon in JavaScript Allocations timeline
https://bugs.webkit.org/show_bug.cgi?id=160743
<rdar://problem/27790098>

Reviewed by Timothy Hatcher.

"S" icons are covered by .scroll-container, which has z-index: calc(var(--z-index-resizer) + 1).
Set larger z-index on the "S" icons.

  • UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css:

(.timeline-overview-graph.heap-allocations > img.snapshot):

11:41 AM Changeset in webkit [204338] by andersca@apple.com
  • 12 edits in trunk/Source/WebCore

Make SQLTransactionBackend a member of SQLTransaction
https://bugs.webkit.org/show_bug.cgi?id=160741

Reviewed by Tim Horton.

This is another step towards merging SQLTransaction and SQLTransactionBackend.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::performClose):
(WebCore::Database::scheduleTransaction):
(WebCore::Database::scheduleTransactionStep):
(WebCore::Database::runTransaction):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseTask.cpp:

(WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
(WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
(WebCore::DatabaseTransactionTask::doPerformTask):

  • Modules/webdatabase/DatabaseTask.h:

(WebCore::DatabaseTransactionTask::transaction):

  • Modules/webdatabase/DatabaseThread.cpp:
  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::deliverTransactionCallback):
(WebCore::SQLTransaction::deliverTransactionErrorCallback):
(WebCore::SQLTransaction::deliverStatementCallback):
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
(WebCore::SQLTransaction::deliverSuccessCallback):
(WebCore::SQLTransaction::executeSQL):
(WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):
(WebCore::SQLTransaction::setBackend): Deleted.

  • Modules/webdatabase/SQLTransaction.h:

(WebCore::SQLTransaction::backend):

  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::SQLTransactionBackend):
(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
(WebCore::SQLTransactionBackend::acquireLock):
(WebCore::SQLTransactionBackend::lockAcquired):
(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
(WebCore::SQLTransactionBackend::runCurrentStatement):
(WebCore::SQLTransactionBackend::handleCurrentStatementError):
(WebCore::SQLTransactionBackend::handleTransactionError):
(WebCore::SQLTransactionBackend::postflightAndCommit):
(WebCore::SQLTransactionBackend::requestTransitToState):
(WebCore::SQLTransactionBackend::create): Deleted.

  • Modules/webdatabase/SQLTransactionBackend.h:
  • Modules/webdatabase/SQLTransactionCoordinator.cpp:

(WebCore::getDatabaseIdentifier):
(WebCore::SQLTransactionCoordinator::processPendingTransactions):
(WebCore::SQLTransactionCoordinator::acquireLock):
(WebCore::SQLTransactionCoordinator::releaseLock):
(WebCore::SQLTransactionCoordinator::shutdown):

  • Modules/webdatabase/SQLTransactionCoordinator.h:
10:37 AM Changeset in webkit [204337] by Simon Fraser
  • 5 edits
    2 adds in trunk

child-transform-with-anchor-point-expected.html renders incorrectly
https://bugs.webkit.org/show_bug.cgi?id=160616

Reviewed by Zalan Bujtas.
Source/WebCore:

If a layer has perspective, we need to ensure that its bounds don't collapse to 0x0 when clipped out,
otherwise the sublayerTransform geometry gets messed up.

Test: compositing/geometry/clipped-out-perspective.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateCompositedBounds):

LayoutTests:

  • compositing/geometry/clipped-out-perspective-expected.html: Added.
  • compositing/geometry/clipped-out-perspective.html: Added.
  • compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt: Rebaseline.
  • platform/mac-wk1/TestExpectations:
10:32 AM Changeset in webkit [204336] by weinig@apple.com
  • 26 edits in trunk/Source/WebCore

Remove support for array types in IDLs
https://bugs.webkit.org/show_bug.cgi?id=160729

Reviewed by Anders Carlsson.

Array types have been removed from WebIDL in favor of sequence<> and FrozenArray<>.

  • Replace all current uses of Array types with sequences. This causes no functional change.
  • bindings/scripts/CodeGenerator.pm:
  • bindings/scripts/CodeGeneratorGObject.pm:
  • bindings/scripts/CodeGeneratorJS.pm:
  • bindings/scripts/IDLParser.pm:

Remove array support from the generators.

  • Modules/gamepad/Gamepad.idl:
  • Modules/gamepad/NavigatorGamepad.idl:
  • Modules/gamepad/deprecated/Gamepad.idl:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/MediaTrackConstraints.idl:
  • Modules/mediastream/RTCConfiguration.idl:
  • Modules/mediastream/RTCIceServer.idl:
  • Modules/mediastream/RTCTrackEvent.idl:
  • crypto/CryptoKey.idl:
  • dom/MessageEvent.idl:
  • testing/Internals.idl:

Switch from array to sequence.

10:19 AM Changeset in webkit [204335] by sbarati@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed. Skip a JSC test that's timing out and an inspector test that needs to be rebased after r204321

  • TestExpectations:
  • js/regress/script-tests/bound-function-construction-performance.js:

(makeBoundFunc):

10:05 AM Changeset in webkit [204334] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Use unsigned for locations in URL
https://bugs.webkit.org/show_bug.cgi?id=160706

Patch by Alex Christensen <achristensen@webkit.org> on 2016-08-10
Reviewed by Sam Weinig.

No change in behavior.

  • platform/URL.cpp:

(WebCore::isSchemeFirstChar):
(WebCore::findFirstOf):
(WebCore::checkEncodedString):
(WebCore::URL::host):
(WebCore::URL::protocolIs):
(WebCore::URL::setPort):
(WebCore::URL::setUser):
(WebCore::URL::setPass):
(WebCore::escapeAndAppendNonHierarchicalPart):
(WebCore::copyPathRemovingDots):
(WebCore::URL::serialize):
(WebCore::isDefaultPortForScheme):
(WebCore::hostPortIsEmptyButCredentialsArePresent):
(WebCore::URL::parse):
(WebCore::protocolHostAndPortAreEqual):
(WebCore::hostsAreEqual):
(WebCore::protocolIs):
(WebCore::findHostnamesInMailToURL):
(WebCore::findHostnameInHierarchicalURL):
(WebCore::encodeHostnames):
(WebCore::encodeRelativeString):

  • platform/URL.h:
9:47 AM Changeset in webkit [204333] by andersca@apple.com
  • 10 edits in trunk/Source/WebCore

Move SQLTransactionBackend construction inside SQLTransaction
https://bugs.webkit.org/show_bug.cgi?id=160726

Reviewed by Tim Horton.

This is the first step towards re-merging SQLTransactionBackend and SQLTransaction and clean up the code.

  • Modules/webdatabase/ChangeVersionWrapper.cpp:
  • Modules/webdatabase/ChangeVersionWrapper.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::performClose):
(WebCore::Database::scheduleTransactionStep):
(WebCore::Database::changeVersion):
(WebCore::Database::transaction):
(WebCore::Database::readTransaction):
(WebCore::Database::runTransaction):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseTask.cpp:
  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::create):
(WebCore::SQLTransaction::SQLTransaction):

  • Modules/webdatabase/SQLTransaction.h:

(WebCore::SQLTransactionWrapper::~SQLTransactionWrapper):
(WebCore::SQLTransaction::backend):

  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::lockAcquired):
(WebCore::SQLTransactionBackend::requestTransitToState):

  • Modules/webdatabase/SQLTransactionBackend.h:

(WebCore::SQLTransactionWrapper::~SQLTransactionWrapper): Deleted.

8:57 AM Changeset in webkit [204332] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK][EFL] ALSA_CARD environment variable is not passed for layout tests.
https://bugs.webkit.org/show_bug.cgi?id=160697

Reviewed by Antonio Gomes.

  • Scripts/webkitpy/port/base.py:

(Port.to.setup_environ_for_server): Add ALSA_CARD and sort the Linux
list of environment variables to copy.

7:49 AM Changeset in webkit [204331] by Chris Dumez
  • 3 edits
    2 adds in trunk

It should be possible to re-initialize a MutationEvent after it's been dispatched
https://bugs.webkit.org/show_bug.cgi?id=160703

Reviewed by Sam Weinig.

Source/WebCore:

It should be possible to re-initialize a MutationEvent after it's been dispatched,
similarly to Event:

Test: fast/events/initMutationEvent-after-dispatch.html

  • dom/MutationEvent.cpp:

(WebCore::MutationEvent::initMutationEvent):

LayoutTests:

Add layout test coverage.

  • fast/events/initMutationEvent-after-dispatch-expected.txt: Added.
  • fast/events/initMutationEvent-after-dispatch.html: Added.
1:37 AM Changeset in webkit [204330] by Yusuke Suzuki
  • 15 edits
    1 copy
    2 moves
    3 adds
    1 delete in trunk/Source

[ES6] Add ModuleLoaderPrototype and move methods to it
https://bugs.webkit.org/show_bug.cgi?id=160633

Reviewed by Saam Barati.

Source/JavaScriptCore:

In the future, we need to add the ability to create the new Loader object (by users).
So rather than holding all the methods in the ModuleLoaderObject instance, moving them
to ModuleLoaderPrototype and create the default JSModuleLoader instance is better.

No behavior change.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/ModuleLoaderObject.js:

(setStateToMax): Deleted.
(newRegistryEntry): Deleted.
(ensureRegistered): Deleted.
(forceFulfillPromise): Deleted.
(fulfillFetch): Deleted.
(fulfillTranslate): Deleted.
(fulfillInstantiate): Deleted.
(commitInstantiated): Deleted.
(instantiation): Deleted.
(requestFetch): Deleted.
(requestTranslate): Deleted.
(requestInstantiate): Deleted.
(requestResolveDependencies.): Deleted.
(requestResolveDependencies): Deleted.
(requestInstantiateAll): Deleted.
(requestLink): Deleted.
(requestReady): Deleted.
(link): Deleted.
(moduleEvaluation): Deleted.
(provide): Deleted.
(loadAndEvaluateModule): Deleted.
(loadModule): Deleted.
(linkAndEvaluateModule): Deleted.

  • builtins/ModuleLoaderPrototype.js: Renamed from Source/JavaScriptCore/builtins/ModuleLoaderObject.js.

(setStateToMax):
(newRegistryEntry):
(ensureRegistered):
(forceFulfillPromise):
(fulfillFetch):
(fulfillTranslate):
(fulfillInstantiate):
(commitInstantiated):
(instantiation):
(requestFetch):
(requestTranslate):
(requestInstantiate):
(requestResolveDependencies.):
(requestResolveDependencies):
(requestInstantiateAll):
(requestLink):
(requestReady):
(link):
(moduleEvaluation):
(provide):
(loadAndEvaluateModule):
(loadModule):
(linkAndEvaluateModule):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • jsc.cpp:

(GlobalObject::moduleLoaderResolve):
(GlobalObject::moduleLoaderFetch):

  • runtime/Completion.cpp:

(JSC::loadAndEvaluateModule):
(JSC::loadModule):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::moduleLoader):
(JSC::JSGlobalObject::moduleLoaderStructure):

  • runtime/JSModuleLoader.cpp: Added.

(JSC::JSModuleLoader::JSModuleLoader):
(JSC::JSModuleLoader::finishCreation):
(JSC::printableModuleKey):
(JSC::JSModuleLoader::provide):
(JSC::JSModuleLoader::loadAndEvaluateModule):
(JSC::JSModuleLoader::loadModule):
(JSC::JSModuleLoader::linkAndEvaluateModule):
(JSC::JSModuleLoader::resolve):
(JSC::JSModuleLoader::fetch):
(JSC::JSModuleLoader::translate):
(JSC::JSModuleLoader::instantiate):
(JSC::JSModuleLoader::evaluate):

  • runtime/JSModuleLoader.h: Copied from Source/JavaScriptCore/runtime/ModuleLoaderObject.h.

(JSC::JSModuleLoader::create):
(JSC::JSModuleLoader::createStructure):

  • runtime/JSModuleRecord.h:
  • runtime/ModuleLoaderObject.cpp: Removed.

(JSC::ModuleLoaderObject::ModuleLoaderObject): Deleted.
(JSC::ModuleLoaderObject::finishCreation): Deleted.
(JSC::printableModuleKey): Deleted.
(JSC::ModuleLoaderObject::provide): Deleted.
(JSC::ModuleLoaderObject::loadAndEvaluateModule): Deleted.
(JSC::ModuleLoaderObject::loadModule): Deleted.
(JSC::ModuleLoaderObject::linkAndEvaluateModule): Deleted.
(JSC::ModuleLoaderObject::resolve): Deleted.
(JSC::ModuleLoaderObject::fetch): Deleted.
(JSC::ModuleLoaderObject::translate): Deleted.
(JSC::ModuleLoaderObject::instantiate): Deleted.
(JSC::ModuleLoaderObject::evaluate): Deleted.
(JSC::moduleLoaderObjectParseModule): Deleted.
(JSC::moduleLoaderObjectRequestedModules): Deleted.
(JSC::moduleLoaderObjectModuleDeclarationInstantiation): Deleted.
(JSC::moduleLoaderObjectResolve): Deleted.
(JSC::moduleLoaderObjectFetch): Deleted.
(JSC::moduleLoaderObjectTranslate): Deleted.
(JSC::moduleLoaderObjectInstantiate): Deleted.
(JSC::moduleLoaderObjectEvaluate): Deleted.

  • runtime/ModuleLoaderObject.h:

(JSC::ModuleLoaderObject::create): Deleted.
(JSC::ModuleLoaderObject::createStructure): Deleted.

  • runtime/ModuleLoaderPrototype.cpp: Added.

(JSC::ModuleLoaderPrototype::ModuleLoaderPrototype):
(JSC::moduleLoaderPrototypeParseModule):
(JSC::moduleLoaderPrototypeRequestedModules):
(JSC::moduleLoaderPrototypeModuleDeclarationInstantiation):
(JSC::moduleLoaderPrototypeResolve):
(JSC::moduleLoaderPrototypeFetch):
(JSC::moduleLoaderPrototypeTranslate):
(JSC::moduleLoaderPrototypeInstantiate):
(JSC::moduleLoaderPrototypeEvaluate):

  • runtime/ModuleLoaderPrototype.h: Renamed from Source/JavaScriptCore/runtime/ModuleLoaderObject.h.

(JSC::ModuleLoaderPrototype::create):
(JSC::ModuleLoaderPrototype::createStructure):

Source/WebCore:

No behavior change.

  • ForwardingHeaders/runtime/JSModuleLoader.h: Added.
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::moduleLoaderResolve):
(WebCore::JSDOMWindowBase::moduleLoaderFetch):
(WebCore::JSDOMWindowBase::moduleLoaderEvaluate):

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSModuleLoader.cpp:

(WebCore::JSModuleLoader::resolve):
(WebCore::JSModuleLoader::fetch):
(WebCore::JSModuleLoader::evaluate):

  • bindings/js/JSModuleLoader.h:
1:18 AM Changeset in webkit [204329] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Warning fix.
https://bugs.webkit.org/show_bug.cgi?id=160687

Reviewed by Sam Weinig.

Avoid forward declarations with different dll linkage.

  • platform/spi/cf/CFNetworkSPI.h:
1:14 AM Changeset in webkit [204328] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Warning fix.
https://bugs.webkit.org/show_bug.cgi?id=160690

Reviewed by Sam Weinig.

Use static cast to convert from enum to unsigned.

  • platform/network/ProtectionSpaceHash.h:

(WebCore::ProtectionSpaceHash::hash):

12:01 AM Changeset in webkit [204327] by achristensen@apple.com
  • 33 edits
    1 add in trunk/Source

Move NetworkStorageSession management to WebCore
https://bugs.webkit.org/show_bug.cgi?id=160173

Reviewed by Brady Eidson.

Source/WebCore:

No new tests. No change in behaviour.
Just moving the mapping from SessionID to NetworkStorageSession so we can use it from WebCore.
I need this so we can get to the NetworkStorageSession from SocketStreamHandle without requiring a NetworkingContext.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/CookieJar.cpp:
  • platform/network/NetworkStorageSession.cpp: Added.

(WebCore::globalSessionMap):
(WebCore::NetworkStorageSession::storageSession):
(WebCore::NetworkStorageSession::destroySession):
(WebCore::NetworkStorageSession::forEach):
Moved from forEachNetworkStorageSession and fixed the FIXME. This function now includes the default NetworkStorageSession.

  • platform/network/NetworkStorageSession.h:
  • platform/network/NetworkingContext.h:
  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::defaultStorageSession):
(WebCore::NetworkStorageSession::ensurePrivateBrowsingSession):
(WebCore::NetworkStorageSession::cookieStorage):
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Deleted.

  • platform/network/cf/SocketStreamHandleCFNet.cpp:
  • platform/network/soup/CookieJarSoup.cpp:
  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::defaultStorageSession):
(WebCore::NetworkStorageSession::ensurePrivateBrowsingSession):
(WebCore::NetworkStorageSession::switchToNewTestingSession):
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Deleted.

  • platform/network/soup/ResourceHandleSoup.cpp:

Source/WebKit/mac:

  • WebCoreSupport/WebFrameNetworkingContext.mm:

(WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebFrameNetworkingContext::destroyPrivateBrowsingSession):

  • WebCoreSupport/WebPlatformStrategies.mm:
  • WebView/WebView.mm:

Source/WebKit/win:

  • WebCoreSupport/WebFrameNetworkingContext.cpp:

(identifierBase):
(WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
(WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebFrameNetworkingContext::destroyPrivateBrowsingSession):
(WebFrameNetworkingContext::blockedError):
(WebFrameNetworkingContext::storageSession):
(privateSession): Deleted.

  • WebCoreSupport/WebPlatformStrategies.cpp:

(WebPlatformStrategies::createPasteboardStrategy):
(WebPlatformStrategies::createBlobRegistry):

Source/WebKit2:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::storageSession):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::sessionID):
NetworkSessions no longer own NetworkStorageSessions, but they should still have the same lifetime.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(WebKit::NetworkSession::setSourceApplicationAuditTokenData):
(WebKit::NetworkSession::create):
(WebKit::NetworkSession::defaultSession):
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::networkStorageSession):
(WebKit::NetworkSession::clearCredentials):

  • NetworkProcess/mac/RemoteNetworkingContext.mm:

(WebKit::RemoteNetworkingContext::storageSession):
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):

  • Shared/SessionTracker.cpp:

(WebKit::SessionTracker::networkSession):
(WebKit::SessionTracker::setSession):
(WebKit::SessionTracker::destroySession):
(WebKit::SessionTracker::storageSession): Deleted.
(WebKit::staticStorageSessionMap): Deleted.
(WebKit::SessionTracker::sessionID): Deleted.
(WebKit::SessionTracker::forEachNetworkStorageSession): Deleted.

  • Shared/SessionTracker.h:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::setCookiesFromDOM):
(WebKit::WebPlatformStrategies::cookiesEnabled):
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebKit::WebPlatformStrategies::getRawCookies):
(WebKit::WebPlatformStrategies::deleteCookie):
(WebKit::WebPlatformStrategies::addCookie):

  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:

(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
(WebKit::WebFrameNetworkingContext::storageSession):

  • WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:

(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):

  • WebProcess/WebPage/mac/WebPageMac.mm:
  • WebProcess/WebProcess.cpp:

Aug 9, 2016:

10:44 PM Changeset in webkit [204326] by Chris Dumez
  • 5 edits in trunk

Optimization in Node.replaceChild() is not spec-compliant
https://bugs.webkit.org/show_bug.cgi?id=160730

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/nodes/MutationObserver-childList-expected.txt:
  • web-platform-tests/dom/ranges/Range-mutations-expected.txt:

Source/WebCore:

We have an optimization in Node.replaceChild() to avoid doing any work
when the reference child and the new child are the same node. This
optimization is not spec-compliant:

This is an issue because it is observable via Mutation observers /
listeners or DOM ranges.

To address the issue, this patch drops the optimization. This is
probably not common enough to be worth optimizing for. However,
if it turns out to regress performance of things we care about,
we can fall back to do the optimization only in cases where it
is not observable.

No new tests, rebaselined existing tests.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::replaceChild):

  1. Drop the oldChild == newChild optimization which is not in the specification.
  2. Add a null check for oldChild.parentNode() before trying to remove it from its parent, as per step 12 of the specification. oldChild.parentNode() is null when oldChild is newChild.
  3. Make sure we enqueue separate mutation records for the adoption of newNode into parent's node document and for the removal of oldChild / insertion of newChild. This is mandated by the specification (steps 10 and 15). Without this change, the following test would still not pass after dropping the optimization: imported/w3c/web-platform-tests/dom/nodes/MutationObserver-childList.html
9:08 PM Changeset in webkit [204325] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

8:58 PM Changeset in webkit [204324] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r204274. rdar://problem/27688892

8:55 PM Changeset in webkit [204323] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix iOS build.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setPluginLoadClientPolicy): Deleted.
(WebKit::WebProcessPool::clearPluginClientPolicies): Deleted.

8:47 PM Changeset in webkit [204322] by Chris Dumez
  • 5 edits
    2 adds in trunk

Optimization in Node::appendChild() is not spec-compliant
https://bugs.webkit.org/show_bug.cgi?id=160728

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/ranges/Range-mutations-expected.txt:

Source/WebCore:

We have an optimization in Node::appendChild() that avoid doing any work
if the node to be appended is already the last child. This optimization
is not spec-compliant:

The issue is that this is observable via DOM Mutation observers / listeners
or DOM ranges.

To address the issue, this patch drops the optimization in appendChild().
This seems like an odd case to optimize for as I am not convinced it is
common to call parent.appendChild(parent.lastChild). If it turns out to
regress the performance of things we care about though, we could fall
back to do the optimization only when it is not observable.

Test: fast/dom/Node/appendChild-no-op-mutationobserver.html

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::appendChild): Deleted.

LayoutTests:

Add layout test to make sure that mutation events are always fired
when calling Node::appendChild(), even if the new node is already
the last child.

  • fast/dom/Node/appendChild-no-op-mutationobserver-expected.txt: Added.
  • fast/dom/Node/appendChild-no-op-mutationobserver.html: Added.
8:39 PM Changeset in webkit [204321] by sbarati@apple.com
  • 8 edits
    4 adds in trunk

JSBoundFunction should lazily generate its name string
https://bugs.webkit.org/show_bug.cgi?id=160678
<rdar://problem/27043194>

Reviewed by Mark Lam.

JSTests:

  • stress/bound-function-lazy-name-generation.js: Added.

(assert):
(test.let.f):
(test.f):
(test):

Source/JavaScriptCore:

We were eagerly allocating the BoundFunction's 'name' string
by prepending the "bound " prefix. This patch makes the 'name'
string creation lazy like we do with ordinary JSFunctions.

This is a 25% speedup on the microbenchmark I added that measures
bound function creation speed. Hopefully this also helps us recover
from a 1% Speedometer regression that was introduced in the original
bound function "bound " prefixing patch.

  • runtime/JSBoundFunction.cpp:

(JSC::JSBoundFunction::create):
(JSC::JSBoundFunction::JSBoundFunction):
(JSC::JSBoundFunction::finishCreation):

  • runtime/JSBoundFunction.h:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::finishCreation):
(JSC::JSFunction::getOwnPropertySlot):
(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::put):
(JSC::JSFunction::deleteProperty):
(JSC::JSFunction::defineOwnProperty):
(JSC::JSFunction::reifyLazyPropertyIfNeeded):
(JSC::JSFunction::reifyBoundNameIfNeeded):

  • runtime/JSFunction.h:

LayoutTests:

  • js/regress/bound-function-construction-performance-expected.txt: Added.
  • js/regress/bound-function-construction-performance.html: Added.
  • js/regress/script-tests/bound-function-construction-performance.js: Added.

(makeBoundFunc):
(foo.f):
(foo):

6:31 PM Changeset in webkit [204320] by andersca@apple.com
  • 19 edits in trunk/Source

Instantiate WebKit plug-ins at layout time, instead of at style resolution time
https://bugs.webkit.org/show_bug.cgi?id=160715

Reviewed by Tim Horton.

Source/WebCore:

This gets rid of the differentiation of WebKit plug-ins and Netscape plug-ins, and
always instantiates plug-ins at layout time.

Initially, plug-ins were always instantiated after style recalc, but that lead to bugs
where plug-ins wouldn't be instantiated with their correct size. Fixing that bug lead
to a regression in the Web Clip widget which is why the special casing was introduced.

The Web Clip widget has now been fixed, so we can get rid of the special case.

  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::updateWidget):

  • html/HTMLAppletElement.h:
  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::updateWidget):

  • html/HTMLEmbedElement.h:
  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::updateWidget):

  • html/HTMLObjectElement.h:
  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::isImageType):
(WebCore::HTMLPlugInImageElement::wouldLoadAsPlugIn):
(WebCore::HTMLPlugInImageElement::updateWidgetIfNecessary):
(WebCore::HTMLPlugInImageElement::wouldLoadAsNetscapePlugin): Deleted.

  • html/HTMLPlugInImageElement.h:
  • loader/EmptyClients.h:
  • loader/FrameLoaderTypes.h:
  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::shouldUsePlugin):

  • page/FrameView.cpp:

(WebCore::FrameView::updateEmbeddedObject):

Source/WebKit/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::objectContentType):

Source/WebKit/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::objectContentType):

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::objectContentType):

6:16 PM Changeset in webkit [204319] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix assertions after r204311.

Range::textNodeSplit() can now get called with a node that
does not have a nextSibling(), in the case where this node
does not have a parent.

  • dom/Range.cpp:

(WebCore::Range::textNodeSplit):

5:49 PM Changeset in webkit [204318] by beidson@apple.com
  • 14 edits
    1 copy in trunk/Source/WebKit2

[WK2] Only send gamepad input events to the currently focused page.
https://bugs.webkit.org/show_bug.cgi?id=160699

Reviewed by Tim Horton.

  • UIProcess/Gamepad/UIGamepadProvider.cpp:

(WebKit::UIGamepadProvider::updateTimerFired):
(WebKit::UIGamepadProvider::platformWebProcessProxyForGamepadInput):

  • UIProcess/Gamepad/UIGamepadProvider.h:
  • UIProcess/Gamepad/mac/UIGamepadProviderMac.mm: Copied from Source/WebKit2/UIProcess/API/mac/WKViewInternal.h.

(WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::gamepadActivity):

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

(WebKit::WebProcessPool::gamepadActivity): Deleted.

  • UIProcess/WebProcessPool.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::gamepadActivity):

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

(WebKit::WebProcess::gamepadActivity): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
5:31 PM Changeset in webkit [204317] by andersca@apple.com
  • 7 edits in trunk/Source/WebKit2

Remove code that would tell clients whenever the list of installed plug-ins changes
https://bugs.webkit.org/show_bug.cgi?id=160719

Reviewed by Tim Horton.

  • UIProcess/Plugins/PluginInfoStore.cpp:

(WebKit::PluginInfoStore::PluginInfoStore): Deleted.
(WebKit::PluginInfoStore::loadPluginsIfNecessary): Deleted.

  • UIProcess/Plugins/PluginInfoStore.h:

(WebKit::PluginInfoStoreClient::~PluginInfoStoreClient): Deleted.
(WebKit::PluginInfoStoreClient::PluginInfoStoreClient): Deleted.
(WebKit::PluginInfoStore::setClient): Deleted.
(WebKit::PluginInfoStore::client): Deleted.

  • UIProcess/WebContextClient.cpp:

(WebKit::WebContextClient::plugInInformationBecameAvailable): Deleted.

  • UIProcess/WebContextClient.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::m_hiddenPageThrottlingTimer): Deleted.
(WebKit::WebProcessPool::pluginInfoStoreDidLoadPlugins): Deleted.

  • UIProcess/WebProcessPool.h:
5:10 PM Changeset in webkit [204316] by Chris Dumez
  • 6 edits
    2 adds in trunk

CharacterData.data setter optimization is not spec-compliant and is observable
https://bugs.webkit.org/show_bug.cgi?id=160712

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/ranges/Range-mutations-expected.txt:

Source/WebCore:

We have an optimization in CharacterData.setData() that avoid doing any
work if the new data is identical to the old data. However, this
optimization is not spec-compliant:

This is an issue because this is observable using DOM mutation observer
or ranges.

To address the issue, we now:

  1. Only use the optimization if there are not DOM mutation observers / listeners on the page.
  2. We now update the associated range when we use the fast path as well.

Test: fast/dom/Text/setData-no-op-mutation.html

  • dom/CharacterData.cpp:

(WebCore::canUseSetDataOptimization):
(WebCore::CharacterData::setData):

LayoutTests:

Add test coverage to make sure that DOM Mutation observers get notified
when CharacterData.data is set to the same data.

  • fast/dom/Text/setData-no-op-mutation-expected.txt: Added.
  • fast/dom/Text/setData-no-op-mutation.html: Added.
4:32 PM Changeset in webkit [204315] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.50.1.1

New tag.

4:31 PM Changeset in webkit [204314] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.50.0.1

New tag.

4:22 PM Changeset in webkit [204313] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Don't filter out the latest data point in chart data sampling
https://bugs.webkit.org/show_bug.cgi?id=160714

Reviewed by Chris Dumez.

Exclude the last data point from sampling so that it's always included in the "sampled" charts data.
Without this, the last data point can change as we zoom out the time domain.

Luckily, we already had a mechanism to exclude the user selected point from sampling. Extend this
feature by supporting an array of point IDs instead of a single ID to exclude from filering.

  • public/v3/components/interactive-time-series-chart.js:

(InteractiveTimeSeriesChart.prototype._sampleTimeSeries): Replaced exclusionPointID by excludedPoints.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart.prototype._ensureSampledTimeSeries): Put the last data point in excludedPoints.
(TimeSeriesChart.prototype._sampleTimeSeries): Check point's id against the list of IDs.

3:58 PM Changeset in webkit [204312] by commit-queue@webkit.org
  • 26 edits in trunk

Implement functionality of media capture on iOS
https://bugs.webkit.org/show_bug.cgi?id=158945
<rdar://problem/26893343>

Patch by George Ruan <gruan@apple.com> on 2016-08-09
Reviewed by Tim Horton.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Enable media capture feature

for iOS.

Source/WebCore:

No new tests, feature requires user gesture which we are unable to
test currently.

  • Configurations/FeatureDefines.xcconfig: Enable Media Capture feature

for iOS.

  • html/FileInputType.cpp:

(WebCore::FileInputType::handleDOMActivateEvent): Modified call for
mediaCaptureType property.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::mediaCaptureType): Returns
MediaCaptureType according to the value of the capture attribute on
the HTMLInputElement.
(WebCore::HTMLInputElement::shouldUseMediaCapture): Deleted.

  • html/HTMLInputElement.h:
  • html/HTMLInputElement.idl: As the capture attribute is specified as

a boolean attribute in the Media Capture spec, this is a non-standard
web-facing change with accordance to the proposal #1102. We would like
to be able to specify a capture device to pull up upon interaction
with the input type file element. In favor of not introducing a new
attribute to specify the capture device, we reuse the capture
attribute with a set of enumerated values (user, environment, none) to
specify the desired media capture behavior.

  • platform/FileChooser.h: Created enum MediaCaptureType representing

whether the front or rear camera shoul dbe shown when the capture
attribute is specified.

Source/WebKit/ios:

  • DefaultDelegates/WebDefaultUIKitDelegate.m:

(-[WebDefaultUIKitDelegate
webView:runOpenPanelForFileButtonWithResultListener:configuration:]):
Use a dictionary instead of passing each parameter in separately.
(-[WebDefaultUIKitDelegate webView:runOpenPanelForFileButtonWithResultListener:allowMultipleFiles:acceptMIMETypes:]): Deleted.

  • WebCoreSupport/WebChromeClientIOS.mm:

(webMediaCaptureType): Converts from WebCore::MediaCaptureType to
WebMediaCaptureType.
(WebChromeClientIOS::runOpenPanel):

  • WebKit.iOS.exp: Expose NSDictionary keys for

runOpenPanelForFileButtonWithResultListener.

  • WebView/WebUIKitDelegate.h: Add WebMediaCaptureType enum and

NSDictionary keys for
runOpenPanelForFileButtonWithResultListener.

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig: Enable Media Capture feature

for iOS.

Source/WebKit2:

For a input type file element on iOS, the media capture attribute can
now be used to specify which camera to pull up immediately, as opposed
to having to select the camera from a file picker menu. If the
specified capture type camera device is unavailable, the other
built-in camera will be pulled up instead. If no camera is available,
then the file picker menu will be presented to the user.

  • Configurations/FeatureDefines.xcconfig: Enable Media Capture feature

on iOS.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<FileChooserSettings>::encode): Encode enum
MediaCaptureType.
(IPC::ArgumentCoder<FileChooserSettings>::decode): Decode enum
MediaCaptureType.

  • UIProcess/API/APIOpenPanelParameters.cpp:

(API::OpenPanelParameters::mediaCaptureType):
(API::OpenPanelParameters::capture): Deleted.

  • UIProcess/API/APIOpenPanelParameters.h: Capture attribute is now

represented with MediaCaptureType instead of boolean.

  • UIProcess/API/C/WKOpenPanelParametersRef.cpp:

(WKOpenPanelParametersGetMediaCaptureType): Change function name to
better represent function.
(WKOpenPanelParametersGetCaptureEnabled): Deleted.

  • UIProcess/API/C/WKOpenPanelParametersRef.h:
  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(cameraDeviceForMediaCaptureType): Translate MediaCaptureType to media
device.
(-[WKFileUploadPanel presentWithParameters:resultListener:]):
Immediately pull up media capture device if devices are available and
capture attribute is present.
(-[WKFileUploadPanel _showDocumentPickerMenu]): Only show option to
use media capture device if it is available for the source type.
(-[WKFileUploadPanel _adjustMediaCaptureType]): Determines correct
fallback option for the media capture device.
(-[WKFileUploadPanel _shouldMediaCaptureOpenMediaDevice]): Checks if
the media capture device should be immediately pulled up.
(-[WKFileUploadPanel _showPhotoPickerWithSourceType:]): Specified the
media capture device to use.

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Enable Media

Capture feature on iOS.

3:30 PM Changeset in webkit [204311] by Chris Dumez
  • 5 edits in trunk

Calling splitText() on a parent-less Text node should update associated ranges
https://bugs.webkit.org/show_bug.cgi?id=160710

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/ranges/Range-mutations-expected.txt:

Source/WebCore:

Calling splitText() on a parent-less Text node should update associated ranges:

Previously, we would only update ranges for Text nodes that have a parent.

No new tests, rebaselined existing test.

  • dom/Range.cpp:

(WebCore::boundaryTextNodesSplit):
(WebCore::Range::textNodeSplit): Deleted.

  • dom/Text.cpp:

(WebCore::Text::splitText):

3:25 PM Changeset in webkit [204310] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.50.1-branch/Source/WebCore

Merge r204274. rdar://problem/27688892

3:20 PM Changeset in webkit [204309] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.50.1-branch/LayoutTests

Merge r203458. rdar://problem/27434307

3:20 PM Changeset in webkit [204308] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.50.1-branch/LayoutTests

Merge r204201. rdar://problem/27710755

3:20 PM Changeset in webkit [204307] by bshafiei@apple.com
  • 2 edits
    1 delete in branches/safari-602.1.50.1-branch/LayoutTests

Merge r204267. rdar://problem/27595142

3:08 PM Changeset in webkit [204306] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.50.1-branch/Source

Versioning.

3:03 PM Changeset in webkit [204305] by sbarati@apple.com
  • 6 edits in trunk

Parser<LexerType>::parseFunctionInfo() has the wrong info about captured vars when a function is not cached.
https://bugs.webkit.org/show_bug.cgi?id=160671
<rdar://problem/27756112>

Reviewed by Mark Lam.

Source/JavaScriptCore:

There was a bug in our captured variable analysis when a function has a default
parameter expression that is a function that captures something from the parent scope.
The bug was that we were relying on the SourceProviderCache to succeed for the
analysis to work. This is obviously wrong. I've fixed this to work regardless
of getting a cache hit. To prevent future bugs that rely on the success of the
SourceProviderCache, I've made the validate testing mode disable the SourceProviderCache

  • parser/Parser.cpp:

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

  • parser/Parser.h:

(JSC::Scope::setInnerArrowFunctionUsesEvalAndUseArgumentsIfNeeded):
(JSC::Scope::addClosedVariableCandidateUnconditionally):
(JSC::Scope::collectFreeVariables):

  • runtime/Options.h:

Tools:

  • Scripts/run-jsc-stress-tests:
2:54 PM Changeset in webkit [204304] by adachan@apple.com
  • 3 edits in trunk/LayoutTests

[macOS Sierra] Fix flaky test: media/controls/picture-in-picture.html
https://bugs.webkit.org/show_bug.cgi?id=160707

Reviewed by Eric Carlson.

This test became flaky after r201474 when we started to delay showing
the inline placeholder until we are sure the video layer has been moved
into the video fullscreen layer. This means we can't guarantee that the
placeholder is visible right away after the video's presentation mode
changes to "picture-in-picture".

To fix this, we'll update the test so that we'll wait until the placeholder
becomes visible before testing its visibility without the "controls" attribute.

  • media/controls/picture-in-picture.html:
  • platform/mac-wk2/TestExpectations:
2:50 PM Changeset in webkit [204303] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Build fix after r204187. interval has to be a getter, not a method.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart.prototype._renderTimeSeries):

  • public/v3/models/measurement-adaptor.js:

(MeasurementAdaptor.prototype.applyTo):

2:36 PM Changeset in webkit [204302] by weinig@apple.com
  • 2 edits in trunk/Source/WTF

Fix windows build.

  • wtf/Variant.h:

(std::experimental::visit_helper2::visit):
MSVC does not support extended constexpr. Use a ternary operator instead of an if statement.

2:35 PM Changeset in webkit [204301] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.50.0-branch/LayoutTests

Merge r203458. rdar://problem/27434307

2:35 PM Changeset in webkit [204300] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.50.0-branch/LayoutTests

Merge r204201. rdar://problem/27710755

2:35 PM Changeset in webkit [204299] by bshafiei@apple.com
  • 2 edits
    1 delete in branches/safari-602.1.50.0-branch/LayoutTests

Merge r204267. rdar://problem/27595142

2:34 PM Changeset in webkit [204298] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Fix a typo that was supposed to be fixed in r204296 before landing.

  • public/v3/pages/chart-pane.js:

(ChartPane):
(ChartPane.prototype.updateFromSerializedState):
(ChartPane.prototype._analyzeRange):
(ChartPane.prototype._renderTrendLinePopover):
(ChartPane.prototype._trendLineTypeDidChange):

2:29 PM Changeset in webkit [204297] by beidson@apple.com
  • 15 edits
    4 copies
    1 add in trunk/Source/WebKit2

Implement "dumb" WK2 support for gamepads.
https://bugs.webkit.org/show_bug.cgi?id=160700

Reviewed by Alex Christensen.

With this patch, gamepads work in WK2.

Things known to be missing to make this mechanism more "smart":

  • Refresh values along with display sync instead of on a 60hz timer (bug 160673)
  • Only send updated values to the current focused web page (bug 160699)
  • CMakeLists.txt:
  • WebKit2.xcodeproj/project.pbxproj:
  • Shared/Gamepad/GamepadData.cpp: Copied from Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp.

(WebKit::GamepadData::encode):
(WebKit::GamepadData::decode):
(WebKit::GamepadData::isNull):
(WebKit::GamepadData::loggingString):

  • Shared/Gamepad/GamepadData.h: Copied from Source/WebKit2/WebProcess/Gamepad/WebGamepad.h.
  • UIProcess/Gamepad/UIGamepad.cpp: Copied from Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp.

(WebKit::UIGamepad::UIGamepad):
(WebKit::UIGamepad::updateFromPlatformGamepad):
(WebKit::UIGamepad::gamepadData):

  • UIProcess/Gamepad/UIGamepad.h: Copied from Source/WebKit2/WebProcess/Gamepad/WebGamepad.h.

(WebKit::UIGamepad::index):

  • UIProcess/Gamepad/UIGamepadProvider.cpp:

(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::updateTimerFired):
(WebKit::UIGamepadProvider::startOrStopSynchingGamepadState):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::platformGamepads):

  • UIProcess/Gamepad/UIGamepadProvider.h:
  • UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp:

(WebKit::UIGamepadProvider::platformGamepads):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::gamepadConnected):
(WebKit::WebProcessPool::gamepadDisconnected):
(WebKit::WebProcessPool::gamepadActivity):

  • UIProcess/WebProcessPool.h:
  • WebProcess/Gamepad/WebGamepad.cpp:

(WebKit::WebGamepad::WebGamepad):
(WebKit::WebGamepad::axisValues):
(WebKit::WebGamepad::buttonValues):
(WebKit::WebGamepad::updateValues):

  • WebProcess/Gamepad/WebGamepad.h:
  • WebProcess/Gamepad/WebGamepadProvider.cpp:

(WebKit::WebGamepadProvider::gamepadConnected):
(WebKit::WebGamepadProvider::gamepadDisconnected):
(WebKit::WebGamepadProvider::gamepadActivity):
(WebKit::WebGamepadProvider::platformGamepads):

  • WebProcess/Gamepad/WebGamepadProvider.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::gamepadConnected):
(WebKit::WebProcess::gamepadDisconnected):
(WebKit::WebProcess::gamepadActivity):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
2:22 PM Changeset in webkit [204296] by rniwa@webkit.org
  • 14 edits
    2 adds in trunk/Websites/perf.webkit.org

Always show segmentation on v3 charts page
https://bugs.webkit.org/show_bug.cgi?id=160576

Rubber-stamped by Chris Dumez.

Added "Trend Lines" popover to select and customize a moving average or a segmentation to show on charts page
and made Schwarz criterion segmentation the default trend line for all charts.

Because computing the segmentation is expensive, we use WebWorker to parallelize the computation via AsyncTask.
We also compute and cache the segmentation for each cluster separately to avoid processing the entire measurement
set as that could take 10-20s total, which was a huge problem in v2 UI. v3 UI's approach is more incremental and
even opens up an opportunity to cache the results in the server side.

Also brought back "shading" for the confidence interval drawing as done in v1 and v2 UI.

  • public/shared/statistics.js:

(Statistics.segmentTimeSeriesByMaximizingSchwarzCriterion): Added segmentCountWeight and gridSize as arguments
to customize the algorithm.
(Statistics.splitIntoSegmentsUntilGoodEnough): Takes segmentCountWeight as BirgeAndMassartC.

  • public/v3/async-task.js: Added.

(AsyncTask): Added. This class represents a task such as computing segmentation to be executed in a worker.
(AsyncTask.prototype.execute): Added. Returns a promise that gets resolved when the specified task completes.
(AsyncTaskWorker.waitForAvailableWorker): Added. Calls the given callback with the first available worker. When
all workers are processing some tasks, it waits until one becomes available by putting the callback into a queue.
_didRecieveMessage pops an item out of this queue when a worker completes a task. We don't use a promise here
because calling this function multiple times synchronously could result in all the returned promises getting
resolved with the same worker as none of the callers get to lock away the first available worker until the end
of the current micro-task.
(AsyncTaskWorker._makeWorkerEventuallyAvailable): Added. A helper function for waitForAvailableWorker. Start
a new worker if the number of workers we've started is less than the number of extra cores (e.g. 7 if there are
8 cores on the machine). Avoid starting a new worker if we've started a new worker within the last 50 ms since
starting a new worker takes some time.
(AsyncTaskWorker._findAvailableWorker): Added. Finds a worker that's available right now if there is any.
(AsyncTaskWorker): Added. An instance of AsyncTaskWorker represents a Web worker.
(AsyncTaskWorker.prototype.id): Added.
(AsyncTaskWorker.prototype.sendTask): Added. Sends a task represented by AsyncTask to the worker.
(AsyncTaskWorker.prototype._didRecieveMessage): Added. This function gets called when the current task completes
in the worker. Pop the next callback if some caller of waitForAvailableWorker is still waiting. Otherwise stop
the worker after one second of waiting to avoid worker churning.
(AsyncTaskWorker.workerDidRecieveMessage): Added. Called by onmessage on the worker. Executes the specified task
and sends back a message upon completion with the appropriate timing data.

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

(ChartPaneBase.prototype.configure): Uses _createSourceList.
(ChartPaneBase.prototype._createSourceList): Added. Extracted from configure to customize the source list for
the main chart and the overview chart.
(ChartPaneBase.prototype._updateSourceList): Uses _createSourceList.

  • public/v3/components/chart-styles.js:

(ChartStyles.createSourceList): Added a boolean showPoint as an extra argument. This specifies whether circles
are drawn for each data point.
(ChartStyles.baselineStyle): Added styles for foreground lines and background lines. They're used for trend lines
and underlying raw data respectively when trend lines are shown.
(ChartStyles.targetStyle): Ditto.
(ChartStyles.currentStyle): Ditto.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart): Added _trendLines, _renderedTrendLines, and _fetchedTimeSeries as instance variables.
(TimeSeriesChart.prototype.setSourceList): Clear _fetchedTimeSeries before calling setSourceList for consistency.
(TimeSeriesChart.prototype.sourceList): Added.
(TimeSeriesChart.prototype.clearTrendLines): Added.
(TimeSeriesChart.prototype.setTrendLine): Added. Preserves the existing trend lines for other sources. This is
necessary because segmentation for "current" and "baseline" lines may become available at different times, and we
don't want to clear one or the other when setting one.
(TimeSeriesChart.prototype._layout): Added a call to _ensureTrendLines.
(TimeSeriesChart.prototype._renderChartContent): Call _renderTimeSeries for trend lines. Trend lines are always
foreground lines and "regular" raw data points are drawn as background if there are trend lines.
(TimeSeriesChart.prototype._renderTimeSeries): Added layerName as an argument. It could be an empty string,
"foreground", or "background". Draw a "shade" just like v1 and v2 UI instead of vertical lines for the confidence
intervals. Pick "foreground", "background", or "regular" chart style based on layerName. Also avoid drawing data
points when *PointRadius is set to zero to reduce the runtime of this function.
(TimeSeriesChart.prototype._sourceOptionWithFallback): Added.
(TimeSeriesChart.prototype._ensureSampledTimeSeries): When *PointRadius is 0, show as many points as there are x
coordinates as a fallback instead of showing every point.
(TimeSeriesChart.prototype._ensureTrendLines): Added. Returns true if the chart contents haven't been re-rendered
since the last update to trend lines. This flag is unset by setTrendLine.

  • public/v3/index.html:
  • public/v3/models/measurement-cluster.js:

(MeasurementCluster.prototype.addToSeries): Store the data points' index to idMap to help aid MeasurementSet's
_cachedClusterSegmentation efficiently re-create the segmentation from the cache.

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

(MeasurementSet): Added _segmentationCache as an instance variable.
(MeasurementSet.prototype.fetchSegmentation): Added. Calls _cachedClusterSegmentation on each cluster, and
constructs the time series representation of the segmentation from the results.
(MeasurementSet.prototype._cachedClusterSegmentation): Computes and caches the segmentation for each cluster.
The cache of segmentation stores ID of each measurement set at which segment changes instead of its index since
the latter could change in any moment when a new test result is reported, or an existing test result is removed
from the time series; e.g. when it's marked as an outlier.
(MeasurementSet.prototype._validateSegmentationCache): Added. Checks whether the cached segmentation's name and
its parameters match that of the requested one.
(MeasurementSet.prototype._invokeSegmentationAlgorithm): Added. Invokes the segmentation algorithm either in the
main thread or in a Web worker via AsyncTask API based on the size of the time series. While parallelizing the
work is beneficial when the data set is large, the overhead can add up if we keep processing a very small data
set in a worker.

  • public/v3/models/time-series.js: Made the file compatible with Node.

(TimeSeries.prototype.length): Added.
(TimeSeries.prototype.valuesBetweenRange): Added.

  • public/v3/pages/chart-pane.js:

(createTrendLineExecutableFromAveragingFunction): Added.
(ChartTrendLineTypes): Added. Similar to StatisticsStrategies (statistics-strategies.js) in v2 UI.
(ChartPane): Added _trendLineType, _trendLineParameters, _trendLineVersion, and _renderedTrendLineOptions as
instance variables.
(ChartPane.prototype.serializeState): Serialize the trend line option. This format is compatible with v2 UI.
(ChartPane.prototype.updateFromSerializedState): Ditto. Parsing is compatible with v2 UI except that we now have
the default trend line set when the specified ID doesn't match an existing type ID.
(ChartPane.prototype._renderActionToolbar): Added a call to _renderTrendLinePopover. This is the popover that
specifies the type of a trend line to show as well as its parameters.
(ChartPane.prototype._renderTrendLinePopover): Added. A popover for specifying and customizing a trend line.
(ChartPane.prototype._trendLineTypeDidChange): Added. Called when a new trend line is selected.
(ChartPane.prototype._defaultParametersForTrendLine): Added.
(ChartPane.prototype._trendLineParameterDidChange): Added. Called when the trend lines' parameters are changed.
(ChartPane.prototype._didFetchData): Added. Overrides the one in ChartPaneBase to trigger a trend line update.
(ChartPane.prototype._updateTrendLine): Added. Update the trend line. Since segmentation can take an arbitrary
long time, avoid updating trend lines if this function had been called again (possibly for a different trend line
type or with different parameters) before the results become available; hence the versioning.
(ChartPane.paneHeaderTemplate): Added the trend line popover.
(ChartPane.cssTemplate): Added styles for the trend line popover. Also use a more opaque background color behind
popovers when the -webkit-backdrop-filter property is not supported.

  • public/v3/pages/dashboard-page.js:

(DashboardPage.prototype._createChartForCell): Call createSourceList with showPoints set to true to preserve the
existing behavior.

  • tools/js/v3-models.js: Include TimeSeries object.
  • unit-tests/measurement-set-tests.js: Added two test cases for MeasurementSet's fetchSegmentation.
  • unit-tests/resources/almost-equal.js: Added.

(almostEqual): Extracted out of statistics-tests.js.

  • unit-tests/statistics-tests.js:
2:22 PM Changeset in webkit [204295] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.50.0-branch/Source

Versioning.

2:13 PM Changeset in webkit [204294] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop unused NodeListsNodeData::isEmpty()
https://bugs.webkit.org/show_bug.cgi?id=160704

Reviewed by Ryosuke Niwa.

Drop unused NodeListsNodeData::isEmpty(). Its implementation is incorrect
anyway because it fails to check if the m_childNodeList / m_emptyChildNodeList
members are null.

  • dom/NodeRareData.h:

(WebCore::NodeListsNodeData::isEmpty): Deleted.

1:59 PM Changeset in webkit [204293] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit/win

[Win] Crash in MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=160686

Reviewed by Sam Weinig.

We need to specify a plugin info provider object in the page configuration.

  • WebView.cpp:

(WebView::initWithFrame):

1:33 PM Changeset in webkit [204292] by ap@apple.com
  • 2 edits in trunk/Tools

Make directory reading code in iOSSimulatorDevices() more strict
https://bugs.webkit.org/show_bug.cgi?id=160702

Reviewed by Tim Horton.

  • Scripts/webkitdirs.pm:

(iOSSimulatorDevices):

1:31 PM Changeset in webkit [204291] by weinig@apple.com
  • 16 edits
    2 deletes in trunk

Source/WebCore:
Replace NodeOrString with std::variant<Ref<Node>, String>
https://bugs.webkit.org/show_bug.cgi?id=160638

Reviewed by Anders Carlsson.

  • WebCore.xcodeproj/project.pbxproj:

Remove NodeOrString.h/cpp

  • bindings/js/JSNodeOrString.cpp:
  • bindings/js/JSNodeOrString.h:
  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::append):
(WebCore::ContainerNode::prepend):

  • dom/ContainerNode.h:
  • dom/Node.cpp:

(WebCore::nodeSetPreTransformedFromNodeOrStringVector):
(WebCore::firstFollowingSiblingNotInNodeSet):
(WebCore::Node::convertNodesOrStringsIntoNode):
(WebCore::Node::before):
(WebCore::Node::after):
(WebCore::Node::replaceWith):

  • dom/Node.h:

Replace NodeOrString with std::variant<Ref<Node>, String> and move convertNodesOrStringsIntoNode
into Node.

  • dom/NodeOrString.cpp: Removed.
  • dom/NodeOrString.h: Removed.

Source/WTF:
Replace NodeOrString with std::variant<RefPtr<Node>, String>
https://bugs.webkit.org/show_bug.cgi?id=160638

Reviewed by Anders Carlsson.

  • wtf/StdLibExtras.h:

(WTF::Visitor::Visitor):
(WTF::makeVisitor):
Add WTF::makeVisitor() which takes a list of lambdas to use
an an overload set for a visitor object.

Also, re-export std::experimental::variant (and helpers) in the std
namespace using type aliasing.

  • wtf/Variant.h:

Make std::experimental::variant work in WebCore.

Tools:
Replace NodeOrString with std::variant<RefPtr<Node>, String>
https://bugs.webkit.org/show_bug.cgi?id=160638

Reviewed by Anders Carlsson.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/Tests/WTF/Variant.cpp:

Add additional tests for the initial state of std::variant and using
makeVisitor for visiting.

12:57 PM Changeset in webkit [204290] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/win

Fix build.

  • WebCoreSupport/WebPlatformStrategies.h:
12:30 PM Changeset in webkit [204289] by aakash_jain@apple.com
  • 6 edits in trunk/Tools

EWS logging should ensure the logging to file is stopped on queue termination
https://bugs.webkit.org/show_bug.cgi?id=160698
rdar://problem/24464570

Reviewed by Daniel Bates.

  • Scripts/webkitpy/tool/bot/queueengine.py:

(QueueEngine._stopping): Stop logging to file on queue termination.
(QueueEngine._begin_logging): Configure the Python logger to log to file.

  • Scripts/webkitpy/common/system/logutils.py:

(configure_logger_to_log_to_file): Return the handler so as to enable caller to remove it later.

  • Scripts/webkitpy/tool/bot/queueengine_unittest.py:

(QueueEngineTest._run_engine): Removed extra newline character to improve log readability.

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

(AbstractQueue._log_directory): Reverting to os.path.join as we don't have host object.
(AbstractQueue.queue_log_path): Same.
(AbstractQueue.begin_work_queue): Removed logging initialization, it is now being done in QueueEngine.
(AbstractQueue.init): Removed host parameter, not required anymore, it was required by logging initialization
which moved to QueueEngine now.
(PatchProcessingQueue.init): Same.
(CommitQueue.init): Same.
(AbstractReviewQueue.init): Same.
(StyleQueue.init): Same.

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

(TestCommitQueue): Removed host parameter.
(TestCommitQueue.init): Same.
(AbstractPatchQueueTest.test_next_patch): Same.
(PatchProcessingQueueTest.test_upload_results_archive_for_patch): Same.
(test_commit_queue_failure): Same.
(mock_run_webkit_patch):
(MockCommitQueueTask.results_from_patch_test_run): Same.
(test_rollout_lands): Same.
(test_non_valid_patch): Same.
(test_auto_retry): Same.
(test_style_queue_with_watch_list_exception): Same.
(TestQueue.init): Deleted.
(TestReviewQueue.init): Deleted.
(TestFeederQueue.init): Deleted.

11:52 AM Changeset in webkit [204288] by Chris Dumez
  • 5 edits
    2 copies in trunk

It should be possible to re-initialize a CustomEvent after it's been dispatched
https://bugs.webkit.org/show_bug.cgi?id=160664

Reviewed by Darin Adler.

Source/WebCore:

It should be possible to re-initialize a CustomEvent after it's been dispatched:

Test: fast/events/initCustomEvent-after-dispatch.html

  • dom/CustomEvent.cpp:

(WebCore::CustomEvent::initCustomEvent):

LayoutTests:

  • fast/events/initCustomEvent-after-dispatch-expected.txt: Copied from LayoutTests/fast/events/initEvent-after-dispatch-expected.txt.
  • fast/events/initCustomEvent-after-dispatch.html: Copied from LayoutTests/fast/events/initEvent-after-dispatch.html.

Add layout test coverage.

  • fast/events/initEvent-after-dispatch-expected.txt:
  • fast/events/initEvent-after-dispatch.html:

Fix related layout test.

11:06 AM Changeset in webkit [204287] by andersca@apple.com
  • 18 edits
    1 delete in trunk/Source

Get rid of PluginStrategy
https://bugs.webkit.org/show_bug.cgi?id=160696

Reviewed by Dan Bernstein.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:
  • platform/PlatformStrategies.h:

(WebCore::PlatformStrategies::pluginStrategy): Deleted.

  • plugins/PluginInfoProvider.h:
  • plugins/PluginStrategy.h: Removed.

(WebCore::PluginStrategy::~PluginStrategy): Deleted.

Source/WebKit/mac:

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::createPluginStrategy): Deleted.

  • WebCoreSupport/WebPluginInfoProvider.h:
  • WebCoreSupport/WebPluginInfoProvider.mm:

(WebPluginInfoProvider::setPluginLoadClientPolicy): Deleted.
(WebPluginInfoProvider::clearPluginClientPolicies): Deleted.

Source/WebKit/win:

  • WebCoreSupport/WebPlatformStrategies.cpp:

(WebPlatformStrategies::createPluginStrategy): Deleted.

Source/WebKit2:

  • NetworkProcess/NetworkProcessPlatformStrategies.cpp:

(WebKit::NetworkProcessPlatformStrategies::createPluginStrategy): Deleted.

  • NetworkProcess/NetworkProcessPlatformStrategies.h:
  • WebProcess/Plugins/WebPluginInfoProvider.h:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::createPluginStrategy): Deleted.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
10:47 AM Changeset in webkit [204286] by bshafiei@apple.com
  • 1 copy in branches/safari-602.1.50.1-branch

New Branch.

10:46 AM Changeset in webkit [204285] by bshafiei@apple.com
  • 1 copy in branches/safari-602.1.50.0-branch

New Branch.

10:01 AM Changeset in webkit [204284] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

Add WKPage SPI for looking up a WKFrame given a WKFrameHandle
https://bugs.webkit.org/show_bug.cgi?id=160695

Reviewed by Anders Carlsson.

  • UIProcess/API/C/WKPage.cpp:

(WKPageLookUpFrameFromHandle): Added. Gets the frame from the map in the page’s process and

returns it if it belongs to the page.

  • UIProcess/API/C/WKPagePrivate.h:
9:57 AM Changeset in webkit [204283] by Konstantin Tokarev
  • 2 edits in trunk/Tools

webkit-gtk tarball fails to build due to missing files
https://bugs.webkit.org/show_bug.cgi?id=160684

Reviewed by Alex Christensen.

  • gtk/manifest.txt.in: Added back spi directories.
9:57 AM Changeset in webkit [204282] by andersca@apple.com
  • 8 edits in trunk/Source/WebKit

Move plug-in enumeration from WebPlatformStrategies to WebPluginInfoProvider
https://bugs.webkit.org/show_bug.cgi?id=160694

Reviewed by Dan Bernstein.

Source/WebKit/mac:

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::createPluginStrategy):
(WebPlatformStrategies::refreshPlugins): Deleted.
(WebPlatformStrategies::getPluginInfo): Deleted.
(WebPlatformStrategies::getWebVisiblePluginInfo): Deleted.
(WebPlatformStrategies::setPluginLoadClientPolicy): Deleted.
(WebPlatformStrategies::clearPluginClientPolicies): Deleted.

  • WebCoreSupport/WebPluginInfoProvider.mm:

(WebPluginInfoProvider::refreshPlugins):
(WebPluginInfoProvider::getPluginInfo):
(WebPluginInfoProvider::getWebVisiblePluginInfo):

Source/WebKit/win:

  • WebCoreSupport/WebPlatformStrategies.cpp:

(WebPlatformStrategies::createPluginStrategy):
(WebPlatformStrategies::refreshPlugins): Deleted.
(WebPlatformStrategies::getPluginInfo): Deleted.
(WebPlatformStrategies::getWebVisiblePluginInfo): Deleted.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPluginInfoProvider.cpp:

(WebPluginInfoProvider::refreshPlugins):
(WebPluginInfoProvider::getPluginInfo):
(WebPluginInfoProvider::getWebVisiblePluginInfo):

9:26 AM Changeset in webkit [204281] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit2

Move plug-in code from WebPlatformStrategies to WebPluginInfoProvider
https://bugs.webkit.org/show_bug.cgi?id=160679

Reviewed by Alex Christensen.

  • WebProcess/Plugins/WebPluginInfoProvider.cpp:

(WebKit::WebPluginInfoProvider::setPluginLoadClientPolicy):
(WebKit::WebPluginInfoProvider::clearPluginClientPolicies):
(WebKit::WebPluginInfoProvider::refreshPlugins):
(WebKit::WebPluginInfoProvider::getPluginInfo):
(WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo):
(WebKit::WebPluginInfoProvider::populatePluginCache):
(WebKit::WebPluginInfoProvider::pluginLoadClientPolicyForHost):
(WebKit::WebPluginInfoProvider::longestMatchedWildcardHostForHost):
(WebKit::WebPluginInfoProvider::replaceHostWithMatchedWildcardHost):

  • WebProcess/Plugins/WebPluginInfoProvider.h:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::createPluginStrategy):
(WebKit::WebPlatformStrategies::WebPlatformStrategies): Deleted.
(WebKit::WebPlatformStrategies::refreshPlugins): Deleted.
(WebKit::WebPlatformStrategies::getPluginInfo): Deleted.
(WebKit::WebPlatformStrategies::getWebVisiblePluginInfo): Deleted.
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy): Deleted.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies): Deleted.
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost): Deleted.
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost): Deleted.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost): Deleted.
(WebKit::WebPlatformStrategies::populatePluginCache): Deleted.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setPluginLoadClientPolicy):
(WebKit::WebProcess::clearPluginClientPolicies):

8:51 AM Changeset in webkit [204280] by Ryan Haddad
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r203458. rdar://problem/27434307

3:37 AM Changeset in webkit [204279] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK] Build the jhbuild with -O2 optimization level by default
https://bugs.webkit.org/show_bug.cgi?id=160544

Reviewed by Michael Catanzaro.

  • gtk/jhbuildrc: Pass -O2 when building the JHBuild, as also -g1

which don't increases the required disk space significatively and
provides better debug information than no passing it.

2:11 AM Changeset in webkit [204278] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

Allow more --cmakeargs option in build-jsc and build-webkit
https://bugs.webkit.org/show_bug.cgi?id=160340

Reviewed by Michael Catanzaro.

  • Scripts/build-jsc:
  • Scripts/build-webkit:
12:25 AM Changeset in webkit [204277] by Gyuyoung Kim
  • 2 edits in trunk/Tools

Do not check if WebKitLibraries folder exists on EFL and GTK
https://bugs.webkit.org/show_bug.cgi?id=160659

Reviewed by Csaba Osztrogonác.

Though WebKitLibraries is only needed by mac and win ports,
EFL and GTK ports have checked whether it exists.

  • Scripts/build-webkit:

Aug 8, 2016:

8:26 PM Changeset in webkit [204276] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebCore

Ensure StringView lifetime is correct inside InlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=160584

Reviewed by Darin Adler.

A TextRun contains a StringView. Previously, we had a helper function which
could possibly create a new string, and then create a TextRun whose StringView
pointed inside this new string. Then, the string would be destroyed because it
was on the stack.

Luckily, this is benign because this new string would always share a
StringImpl with the string passed into the function (and the StringView
would point into this StringImpl). However, relying on this is dangerous
and we are trying to enforce StringView lifetime checks in
https://bugs.webkit.org/show_bug.cgi?id=160384.

The solution is to make a helper function which returns this built string
so that the caller can own this built string, thereby extending its lifetime.
Unfortunately, this built string can't be a StringView because the same
mechanism must be used for text-combine, which returns originalText(), which
may return a built string if it is a RenderCounter. Perhaps it would be
valuable to migrate RenderCounter::originalText() to something else, or to
divorce text-combine from originalText(), but that is out of scope for this
patch. Similarly, hyphenation uses this same mechanism, but because the
hyphenated string needs to be created, we must own the string storage (so
StringView is incorrect here).

Another reason is for performance: StringView::substring() is faster to use
than String::substringSharingImpl(), since it does not allocate and destroy a
StringImpl on the heap. This patch migrates away from
String::substringSharingImpl() and onto StringView::substring().

No new tests because there is no behavior change.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::localSelectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::selectionStartEnd):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::hyphenatedStringForTextRun):
(WebCore::InlineTextBox::constructTextRun):

  • rendering/InlineTextBox.h:
  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::maybeGetCombinedStringForRendering):
(WebCore::RenderCombineText::getStringToRender): Deleted.

  • rendering/RenderCombineText.h:
6:17 PM Changeset in webkit [204275] by aakash_jain@apple.com
  • 6 edits in trunk/Tools

Some EWS console logs doesn't go to log file
https://bugs.webkit.org/show_bug.cgi?id=160585
rdar://problem/24464570

Reviewed by Daniel Bates.

  • Scripts/webkitpy/common/system/logutils.py:

(FileSystemHandler._open): Ensure that we open logfile in append mode in order to avoid
any possible overwriting.

  • Scripts/webkitpy/common/system/filesystem.py:

(FileSystem.open_text_file_for_writing): Add should_append parameter to append to file.

  • Scripts/webkitpy/common/system/filesystem_mock.py:

(MockFileSystem.open_text_file_for_writing): Same.

  • Scripts/webkitpy/common/system/filesystem_unittest.py:

(RealFileSystemTest.test_read_and_write_text_file): Removed unused variable 'hex_equivalent'.
(RealFileSystemTest.test_append_to_text_file): Added new unit test for testing append functionality.

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

(AbstractQueue.begin_work_queue): Configure the logger for overall webkitpy to log to file.
This will ensure that all the sub-modules inside webkitpy will log to file.

6:06 PM Changeset in webkit [204274] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Clear fullscreen mode state after exiting fullscreen mode to keep state in sync.
https://bugs.webkit.org/show_bug.cgi?id=160668

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-08-08
Reviewed by Jon Lee.

When exiting fullscreen while in auto picture in picture mode, fullscreen mode gets
out of sync, causing exit fullscreen to fail. This change updates the state
to keep it correct.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::exitFullscreen):

5:52 PM Changeset in webkit [204273] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

[Web IDL] We should resolve typedefs for dictionary members
https://bugs.webkit.org/show_bug.cgi?id=160675

Reviewed by Sam Weinig.

Resolve typedefs for dictionary member types.

Added bindings test coverage.

  • bindings/scripts/IDLParser.pm:

(applyTypedefs):

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

(WebCore::convert<TestObj::Dictionary>):

  • bindings/scripts/test/TestObj.idl:
5:48 PM Changeset in webkit [204272] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Update test expectations for rdar://problem/27711048.

  • platform/mac/TestExpectations:
5:22 PM Changeset in webkit [204271] by Simon Fraser
  • 6 edits in trunk/Tools

Have the iOS platform interit from the Apple platform in webkitpy
https://bugs.webkit.org/show_bug.cgi?id=160672

Reviewed by Dan Bates.

The IOSSimulatorPort used to inherit from Port, rather than ApplePort.
Fix this, and move duplicated code from IOSSimulatorPort and MacPort into
ApplePort.

Since WinPort also inherits from ApplePort, it needs to stub out some things
that are unavailable on Windows (leaks, sampling).

Some SnowLeopard-related code and the associated test were removed.

  • Scripts/webkitpy/port/apple.py:

(ApplePort.init):
(ApplePort):
(ApplePort._make_leak_detector):
(ApplePort.default_timeout_ms):
(ApplePort.supports_per_test_timeout):
(ApplePort.should_retry_crashes):
(ApplePort._generate_all_test_configurations):
(ApplePort.check_for_leaks):
(ApplePort.print_leaks_summary):
(ApplePort._path_to_webcore_library):
(ApplePort.show_results_html_file):
(ApplePort._merge_crash_logs):
(ApplePort._look_for_all_crash_logs_in_log_dir):
(ApplePort._get_crash_log):
(ApplePort.look_for_new_crash_logs):
(ApplePort.sample_process):
(ApplePort.sample_file_path):
(ApplePort.look_for_new_samples):
(ApplePort._path_to_helper):
(ApplePort.determine_full_port_name): Deleted.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort):
(IOSSimulatorPort.init):
(IOSSimulatorPort.default_timeout_ms): Deleted.
(IOSSimulatorPort.supports_per_test_timeout): Deleted.
(IOSSimulatorPort.should_retry_crashes): Deleted.
(IOSSimulatorPort.check_for_leaks): Deleted.
(IOSSimulatorPort.print_leaks_summary): Deleted.
(IOSSimulatorPort._path_to_webcore_library): Deleted.
(IOSSimulatorPort.show_results_html_file): Deleted.
(IOSSimulatorPort.sample_file_path): Deleted.
(IOSSimulatorPort._merge_crash_logs): Deleted.
(IOSSimulatorPort._look_for_all_crash_logs_in_log_dir): Deleted.
(IOSSimulatorPort.look_for_new_crash_logs): Deleted.
(IOSSimulatorPort.look_for_new_samples): Deleted.
(IOSSimulatorPort.sample_process): Deleted.
(IOSSimulatorPort._path_to_helper): Deleted.
(IOSSimulatorPort.make_command): Deleted.

  • Scripts/webkitpy/port/mac.py:

(MacPort.init):
(MacPort.make_command):
(MacPort._build_java_test_support):
(MacPort): Deleted.
(MacPort.default_timeout_ms): Deleted.
(MacPort.supports_per_test_timeout): Deleted.
(MacPort.should_retry_crashes): Deleted.
(MacPort.default_child_processes): Deleted.
(MacPort.check_for_leaks): Deleted.
(MacPort.print_leaks_summary): Deleted.
(MacPort._path_to_webcore_library): Deleted.
(MacPort.show_results_html_file): Deleted.
(MacPort.sample_file_path): Deleted.
(MacPort._merge_crash_logs): Deleted.
(MacPort._look_for_all_crash_logs_in_log_dir): Deleted.
(MacPort.look_for_new_crash_logs): Deleted.
(MacPort.look_for_new_samples): Deleted.
(MacPort.sample_process): Deleted.
(MacPort._path_to_helper): Deleted.

  • Scripts/webkitpy/port/mac_unittest.py:

(MacTest.test_default_child_processes): Deleted.

  • Scripts/webkitpy/port/win.py:

(WinPort.look_for_new_samples):
(WinPort):
(WinPort.sample_process):
(WinPort._make_leak_detector):
(WinPort.check_for_leaks):
(WinPort.print_leaks_summary):
(WinPort._path_to_webcore_library):

5:08 PM Changeset in webkit [204270] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the Windows build.

  • plugins/PluginInfoProvider.h:
5:01 PM Changeset in webkit [204269] by Ryan Haddad
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r204201. rdar://problem/27710755

4:43 PM Changeset in webkit [204268] by andersca@apple.com
  • 23 edits
    8 adds in trunk/Source

Add a new PluginInfoProvider class, to replace PluginStrategy
https://bugs.webkit.org/show_bug.cgi?id=160670

Reviewed by Sam Weinig.

Source/WebCore:

Add a per page PluginInfoProvider class that's going to ultimately replace the plug-in strategy.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:

(WebCore::fillWithEmptyClients):

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::refreshPlugins):
(WebCore::Page::pluginData):
(WebCore::Page::pluginInfoProvider):

  • page/Page.h:
  • page/PageConfiguration.cpp:
  • page/PageConfiguration.h:
  • plugins/DOMPluginArray.cpp:

(WebCore::DOMPluginArray::refresh):

  • plugins/DOMPluginArray.h:
  • plugins/PluginData.cpp:

(WebCore::PluginData::PluginData):
(WebCore::PluginData::webVisiblePlugins):
(WebCore::PluginData::publiclyVisiblePlugins):
(WebCore::PluginData::initPlugins):
(WebCore::PluginData::refresh): Deleted.

  • plugins/PluginData.h:

(WebCore::PluginData::create):
(WebCore::PluginData::PluginData): Deleted.

  • plugins/PluginInfoProvider.cpp: Added.

(WebCore::PluginInfoProvider::~PluginInfoProvider):
(WebCore::PluginInfoProvider::addPage):
(WebCore::PluginInfoProvider::removePage):

  • plugins/PluginInfoProvider.h: Added.
  • replay/SerializationMethods.cpp:

(JSC::EncodingTraits<PluginData>::decodeValue):
(JSC::DeserializedPluginData::DeserializedPluginData): Deleted.

Source/WebKit:

Add new files.

  • PlatformWin.cmake:
  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

Add a new WebPluginInfoProvider - it just calls through to the plug-in strategy for now.

  • WebCoreSupport/WebPluginInfoProvider.h: Added.
  • WebCoreSupport/WebPluginInfoProvider.mm: Added.

(WebPluginInfoProvider::singleton):
(WebPluginInfoProvider::WebPluginInfoProvider):
(WebPluginInfoProvider::~WebPluginInfoProvider):
(WebPluginInfoProvider::refreshPlugins):
(WebPluginInfoProvider::getPluginInfo):
(WebPluginInfoProvider::getWebVisiblePluginInfo):
(WebPluginInfoProvider::setPluginLoadClientPolicy):
(WebPluginInfoProvider::clearPluginClientPolicies):

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WebKit/win:

Add a new WebPluginInfoProvider - it just calls through to the plug-in strategy for now.

  • WebCoreSupport/WebPluginInfoProvider.cpp: Added.

(WebPluginInfoProvider::singleton):
(WebPluginInfoProvider::WebPluginInfoProvider):
(WebPluginInfoProvider::~WebPluginInfoProvider):
(WebPluginInfoProvider::refreshPlugins):
(WebPluginInfoProvider::getPluginInfo):
(WebPluginInfoProvider::getWebVisiblePluginInfo):

  • WebCoreSupport/WebPluginInfoProvider.h: Added.

Source/WebKit2:

Add a new WebPluginInfoProvider - it just calls through to the plug-in strategy for now.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/Plugins/WebPluginInfoProvider.cpp: Added.

(WebKit::WebPluginInfoProvider::singleton):
(WebKit::WebPluginInfoProvider::WebPluginInfoProvider):
(WebKit::WebPluginInfoProvider::~WebPluginInfoProvider):
(WebKit::WebPluginInfoProvider::refreshPlugins):
(WebKit::WebPluginInfoProvider::getPluginInfo):
(WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo):
(WebKit::WebPluginInfoProvider::setPluginLoadClientPolicy):
(WebKit::WebPluginInfoProvider::clearPluginClientPolicies):

  • WebProcess/Plugins/WebPluginInfoProvider.h: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_userInterfaceLayoutDirection):

3:57 PM Changeset in webkit [204267] by Ryan Haddad
  • 2 edits
    1 delete in branches/safari-602-branch/LayoutTests

Test gardening for rdar://problem/27595142.

2:43 PM Changeset in webkit [204266] by wilander@apple.com
  • 3 edits
    4 adds in trunk

Popups opened from a sandboxed iframe should themselves be sandboxed
https://bugs.webkit.org/show_bug.cgi?id=134850
<rdar://problem/27375388>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):

Now copies the opener's frame loader effective sandbox flags to the
new frame loader.

LayoutTests:

  • http/tests/security/resources/anchor-tag-with-blank-target.html: Added.
  • http/tests/security/resources/page-executing-javascript.html: Added.
  • http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox-expected.txt: Added.
  • http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html: Added.
2:41 PM Changeset in webkit [204265] by Matt Baker
  • 2 edits in trunk/Tools

Unreviewed: moved myself to the reviewers list.

  • Scripts/webkitpy/common/config/contributors.json:
1:56 PM Changeset in webkit [204264] by Joseph Pecoraro
  • 10 edits in trunk/Source/WebInspectorUI

Web Inspector: Popover for Color Picker should update position when window resizes
https://bugs.webkit.org/show_bug.cgi?id=160321

Reviewed by Brian Burg.

  • UserInterface/Views/Popover.js:

(WebInspector.Popover):
(WebInspector.Popover.prototype.set windowResizeHandler):
(WebInspector.Popover.prototype.dismiss):
(WebInspector.Popover.prototype.handleEvent):
(WebInspector.Popover.prototype._addListenersIfNeeded):
The popover already has a set of window listeners, add "resize" to
the list. If there is a resize, invoke a resize handler. The resize
handler will only be called while the popover is visible.

  • UserInterface/Views/HeapSnapshotDataGridTree.js:

(WebInspector.HeapSnapshotDataGridTree):
(WebInspector.HeapSnapshotDataGridTree.prototype.get visible):
(WebInspector.HeapSnapshotDataGridTree.prototype.get popoverNode):
(WebInspector.HeapSnapshotDataGridTree.prototype.set popoverNode):
(WebInspector.HeapSnapshotDataGridTree.prototype.get popoverTargetElement):
(WebInspector.HeapSnapshotDataGridTree.prototype.set popoverTargetElement):
(WebInspector.HeapSnapshotDataGridTree.prototype.get popover):
(WebInspector.HeapSnapshotDataGridTree.prototype.willDismissPopover):

  • UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:

Update heap snapshot popovers to reposition on window resize.
Set a target to reposition around, since the popover is shared.

  • UserInterface/Views/ProbeSetDetailsSection.js:

(WebInspector.ProbeSetDetailsSection.prototype._addProbeButtonClicked):
Update probe expression popover to respect window resizes.

  • UserInterface/Views/VisualStylePropertyEditor.js:

(WebInspector.VisualStylePropertyEditor.prototype._showPropertyInfoPopover):
Though not yet visible, update this to respect window resizes.

  • UserInterface/Views/InlineSwatch.js:

(WebInspector.InlineSwatch.prototype._swatchElementClicked):
Add a window resize handler to reposition over the swatch element.

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WebInspector.LayerTreeDetailsSidebarPanel.prototype._updatePopoverForSelectedNode):
(WebInspector.LayerTreeDetailsSidebarPanel): Deleted.
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._windowResized): Deleted.

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid.prototype._showPopoverForSelectedNodeSoon):
(WebInspector.TimelineDataGrid): Deleted.
(WebInspector.TimelineDataGrid.prototype.closed): Deleted.
(WebInspector.TimelineDataGrid.prototype.handleEvent): Deleted.
(WebInspector.TimelineDataGrid.prototype._windowResized): Deleted.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.willDismissPopover): Deleted.
Replace custom popover repositioning with standard Popover handling.

1:30 PM Changeset in webkit [204263] by Chris Dumez
  • 34 edits
    2 adds in trunk

Align Selection API with the specification
https://bugs.webkit.org/show_bug.cgi?id=160663

Reviewed by Ryosuke Niwa.

Source/WebCore:

Align Selection API with the specification:

In particular, the following changes were made:

  • Mark parameters as non-nullable when they should be.
  • Mark parameters as mandatory when they should be.
  • Use "unsigned long" type for offsets instead of "long".

This aligns our behavior with Firefox and Chrome.

Note that the Node parameters to setBaseAndExtent() operation were kept
nullable, which does not match the specification. This is intentional
as I worry about compatibility risk, especially considering they are
still nullable in Chrome. Only Firefox marks them as non-nullable.

Test: editing/selection/bad-input.html

  • dom/Position.h:

(WebCore::Position::LegacyEditingOffset::value):
(WebCore::Position::LegacyEditingOffset::LegacyEditingOffset):
(WebCore::createLegacyEditingPosition):

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::anchorOffset):
(WebCore::DOMSelection::focusOffset):
(WebCore::DOMSelection::baseOffset):
(WebCore::DOMSelection::extentOffset):
(WebCore::DOMSelection::rangeCount):
(WebCore::DOMSelection::collapse):
(WebCore::DOMSelection::setBaseAndExtent):
(WebCore::DOMSelection::setPosition):
(WebCore::DOMSelection::extend):
(WebCore::DOMSelection::getRangeAt):
(WebCore::DOMSelection::addRange):
(WebCore::DOMSelection::deleteFromDocument):
(WebCore::DOMSelection::containsNode):
(WebCore::DOMSelection::selectAllChildren):
(WebCore::DOMSelection::shadowAdjustedOffset):
(WebCore::DOMSelection::modify): Deleted.
(WebCore::DOMSelection::shadowAdjustedNode): Deleted.
(WebCore::DOMSelection::isValidForPosition): Deleted.

  • page/DOMSelection.h:
  • page/DOMSelection.idl:

LayoutTests:

  • editing/selection/bad-input-expected.txt: Added.
  • editing/selection/bad-input.html: Added.

Add new layout test to cover passing bad input to the Selection API.
This new test is passing completely in Firefox and Chrome.

  • editing/execCommand/apply-style-text-decoration-crash.html:
  • editing/execCommand/applyblockelement-visiblepositionforindex-crash.html:
  • editing/execCommand/ident-crashes-topnode-is-text.html:
  • editing/execCommand/indent-pre-expected.txt:
  • editing/execCommand/indent-pre.html:
  • editing/execCommand/overtype.html:
  • editing/selection/containsNode-expected.txt:
  • editing/selection/containsNode.html:
  • editing/selection/move-by-line-003.html:
  • editing/selection/script-tests/DOMSelection-DocumentType.js:
  • editing/selection/script-tests/DOMSelection-crossing-document.js:

(clear):

  • editing/selection/selection-invalid-offset-expected.txt:
  • fast/block/float/float-list-changed-before-layout-crash.html:
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
  • fast/events/selectstart-by-arrow-keys.html:
  • fast/html/nav-element.html:
  • fast/html/script-tests/article-element.js:
  • fast/html/script-tests/aside-element.js:
  • fast/html/script-tests/footer-element.js:
  • fast/html/script-tests/header-element.js:
  • fast/html/script-tests/hgroup-element.js:
  • fast/html/script-tests/main-element.js:
  • fast/html/script-tests/section-element.js:
  • imported/blink/accessibility/event-on-deleted-iframe-causes-crash.html:
  • imported/blink/editing/apply-inline-style-to-element-with-no-renderer-crash.html:
  • svg/custom/unicode-in-tspan-multi-svg-crash.html:

Update existing tests to use the Selection API properly.

12:39 PM Changeset in webkit [204262] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r204239): Caused flaky crashes under ~Database()
https://bugs.webkit.org/show_bug.cgi?id=160665
<rdar://problem/27748065>

Reviewed by Brady Eidson.

Make sure the scriptExecution context only gets ref'd / deref'd
on the context thread. Document / WorkerGlobalScope are not
ThreadSafeRefCounted.

No new tests, already covered by:
storage/websql/open-database-creation-callback.html

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::~Database):

11:56 AM Changeset in webkit [204261] by mark.lam@apple.com
  • 4 edits in trunk

ASSERTION FAILED: hasInlineStorage() in JSFinalObject::visitChildren().
https://bugs.webkit.org/show_bug.cgi?id=160666

Reviewed by Keith Miller.

JSTests:

  • stress/object-constructor-should-be-new-target-aware.js:

Source/JavaScriptCore:

This assertion is benign. JSFinalObject::visitChildren() calls
JSObject::inlineStorage() to get a pointer to the object's inline storage, and
later passes it to visitor.appendValuesHidden() with a previously computed
storageSize. When storageSize is 0, appendValuesHidden() ends up doing nothing.
However, before we get there, JSObject::inlineStorage() will be asserting
hasInlineStorage() and this assertion will fail when storageSize is 0.

We can fix this assertion failure by simply adding a storageSize check before
calling hasInlineStorage() and visitor.appendValuesHidden().

  • runtime/JSObject.cpp:

(JSC::JSFinalObject::visitChildren):

11:38 AM Changeset in webkit [204260] by wilander@apple.com
  • 13 edits
    2 adds in trunk

Don't set document.domain to an IP address fragment
https://bugs.webkit.org/show_bug.cgi?id=126045
<rdar://problem/27331794>

Reviewed by Daniel Bates.

Source/WebCore:

This patch matches the following Blink one:
https://chromium.googlesource.com/chromium/blink//b19a57fdb323d5a80d3a1cb0a6b343558c4237b0

IP address octets should not be treated as subdomains when setting
document.domain. The specs say:
'The domain attribute's setter must run these steps: ...

  1. If host is not equal to effectiveDomain, then run these substeps:
    1. If host or effectiveDomain is not a domain, then throw a "SecurityError" DOMException.'

https://html.spec.whatwg.org/multipage/browsers.html#relaxing-the-same-origin-restriction
Last Updated 5 August 2016

'A host is a domain, an IPv4 address, or an IPv6 address.'
https://url.spec.whatwg.org/#concept-domain
Last Updated 28 July 2016

Test: http/tests/security/set-domain-remove-subdomain-for-ip-address.html

  • dom/Document.cpp:

(WebCore::Document::setDomain):

Now checks whether the security origin is allowed to remove
subdomains. If not, it throws a security error.

  • page/OriginAccessEntry.cpp:

(WebCore::OriginAccessEntry::OriginAccessEntry):

Constructor now expects an IP address setting.

(WebCore::OriginAccessEntry::matchesOrigin):

Now also checks whether the host in an IP address and returns
false if IP addresses aren't configured to be treated as domains.

  • page/OriginAccessEntry.h:

Introduced new enum for IP address setting.
Constructor now expects an IP address setting.

(WebCore::OriginAccessEntry::ipAddressSettings):

New getter.

(WebCore::operator==):

Now also requires IP address settings to match.

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):

Changes to match OriginAccessEntry's new constructor.

(WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):

Changes to match OriginAccessEntry's new constructor.

  • page/Settings.in:

Added a setting to allow IP address octets to be treated as
subdomains. This way our existing tests setting document.domain
still work.

LayoutTests:

IP address octets should not be treated as subdomains when setting document.domain.

  • http/tests/security/aboutBlank/security-context-alias.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/security/aboutBlank/security-context-grandchildren-alias.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/security/postMessage/origin-unaffected-by-document-domain.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/security/set-domain-remove-subdomain-for-ip-address-expected.txt: Added.
  • http/tests/security/set-domain-remove-subdomain-for-ip-address.html: Added.
  • http/tests/security/setDomainRelaxationForbiddenForURLScheme.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/workers/worker-document-domain-security.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/xmlhttprequest/document-domain-set.html:

Now enables the new setting treatIPAddressesAsDomains.

10:54 AM Changeset in webkit [204259] by andersca@apple.com
  • 57 edits
    5 deletes in trunk/Source/WebCore

Remove more unused bindings code
https://bugs.webkit.org/show_bug.cgi?id=160568

Reviewed by Sam Weinig.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMDocument.mm:

(-[DOMDocument execCommand:userInterface:]):
(-[DOMDocument execCommand:]):
(-[DOMDocument getMatchedCSSRules:pseudoElement:]):

  • bindings/objc/DOMHTMLBaseFontElement.mm:
  • bindings/objc/DOMHTMLCollection.mm:

(-[DOMHTMLCollection tags:]):

  • bindings/objc/DOMWheelEvent.mm:

(-[DOMWheelEvent isHorizontal]):

  • css/RGBColor.idl:
  • dom/Attr.idl:
  • dom/DOMImplementation.idl:
  • dom/Document.h:
  • dom/Document.idl:
  • dom/Element.idl:
  • dom/EventException.h: Removed.

(WebCore::EventException::EventException): Deleted.

  • dom/EventException.idl: Removed.
  • dom/KeyboardEvent.idl:
  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::messagePort): Deleted.
(WebCore::MessageEvent::initMessageEvent): Deleted.

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

(WebCore::MessagePort::postMessage): Deleted.

  • dom/MessagePort.h:
  • dom/Node.idl:
  • dom/NodeFilter.idl:
  • dom/OverflowEvent.idl:
  • dom/WheelEvent.h:
  • dom/WheelEvent.idl:
  • html/HTMLAllCollection.cpp:

(WebCore::HTMLAllCollection::tags):

  • html/HTMLAllCollection.h:
  • html/HTMLAnchorElement.idl:
  • html/HTMLAreaElement.idl:
  • html/HTMLBaseFontElement.cpp: Removed.

(WebCore::HTMLBaseFontElement::HTMLBaseFontElement): Deleted.

  • html/HTMLBaseFontElement.h: Removed.
  • html/HTMLBaseFontElement.idl: Removed.
  • html/HTMLButtonElement.idl:
  • html/HTMLCanvasElement.idl:
  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::tags): Deleted.

  • html/HTMLCollection.h:
  • html/HTMLCollection.idl:
  • html/HTMLElement.idl:
  • html/HTMLFieldSetElement.idl:
  • html/HTMLFormElement.idl:
  • html/HTMLHyperlinkElementUtils.idl:
  • html/HTMLIFrameElement.idl:
  • html/HTMLImageElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLLabelElement.idl:
  • html/HTMLLegendElement.idl:
  • html/HTMLLinkElement.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTableCellElement.idl:
  • html/HTMLTextAreaElement.idl:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::postMessage): Deleted.

  • page/DOMWindow.h:
  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::postMessage): Deleted.

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/Worker.cpp:

(WebCore::Worker::postMessage): Deleted.

  • workers/Worker.h:
10:26 AM Changeset in webkit [204258] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/27711048.

  • platform/mac/TestExpectations:
10:25 AM Changeset in webkit [204257] by beidson@apple.com
  • 15 edits in trunk/Source

Addressing late review feedback in bug 160605
https://bugs.webkit.org/show_bug.cgi?id=160605

Reviewed by Darin's suggestions.

Source/WebCore:

  • Modules/gamepad/GamepadManager.cpp:

(WebCore::GamepadManager::maybeStartMonitoringGamepads):
(WebCore::GamepadManager::maybeStopMonitoringGamepads):

  • platform/gamepad/EmptyGamepadProvider.cpp:

(WebCore::EmptyGamepadProvider::startMonitoringGamepads):
(WebCore::EmptyGamepadProvider::stopMonitoringGamepads):

  • platform/gamepad/EmptyGamepadProvider.h:
  • platform/gamepad/GamepadProvider.h:
  • platform/gamepad/mac/HIDGamepadProvider.cpp:

(WebCore::HIDGamepadProvider::startMonitoringGamepads):
(WebCore::HIDGamepadProvider::stopMonitoringGamepads):

  • platform/gamepad/mac/HIDGamepadProvider.h:

(WebCore::HIDGamepadProvider::platformGamepads): Deleted.

Source/WebKit2:

  • UIProcess/Gamepad/UIGamepadProvider.cpp:

(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):

  • UIProcess/Gamepad/UIGamepadProvider.h:
  • UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp:

(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
(WebKit::WebProcessPool::processStoppedUsingGamepads):

  • UIProcess/WebProcessPool.h:
  • WebProcess/Gamepad/WebGamepadProvider.cpp:

(WebKit::WebGamepadProvider::startMonitoringGamepads):
(WebKit::WebGamepadProvider::stopMonitoringGamepads):

  • WebProcess/Gamepad/WebGamepadProvider.h:
10:24 AM Changeset in webkit [204256] by Chris Dumez
  • 2 edits in trunk/Tools

Update API tests in mac/SetDocumentURI.mm after r204247
https://bugs.webkit.org/show_bug.cgi?id=160660

Reviewed by Alex Christensen.

  • TestWebKitAPI/Tests/mac/SetDocumentURI.mm:

(TestWebKitAPI::TEST):

9:43 AM Changeset in webkit [204255] by BJ Burg
  • 18 edits in trunk/Source/JavaScriptCore

Web Inspector: clean up prefixing of Automation protocol generated files
https://bugs.webkit.org/show_bug.cgi?id=160635
<rdar://problem/27735327>

Reviewed by Timothy Hatcher.

Introduce different settings for the 'protocol group' name for C++ vs. Objective-C.

Use 'WD' as the prefix for generated Objective-C frontend dispatchers and helpers.
Continue using 'Automation' as the prefix for generated C++ backend dispatchers.

  • inspector/scripts/codegen/cpp_generator.py:

(CppGenerator.protocol_name):

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:

(ObjCProtocolTypeConversionsImplementationGenerator.generate_output):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_interface):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_implementation):
Adjust the class name. Generate one category per protocol domain to keep it easy to read.

  • inspector/scripts/codegen/models.py:
  • inspector/scripts/codegen/objc_generator.py:

(ObjCGenerator.protocol_name):

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

Rebaseline test results.

9:35 AM Changeset in webkit [204254] by Chris Dumez
  • 5 edits
    2 adds in trunk

It should be possible to re-initialize an Event after it's been dispatched
https://bugs.webkit.org/show_bug.cgi?id=160651

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/events/Event-propagation-expected.txt:

Source/WebCore:

Allow re-initialization of an Event that's already been dispatched, as
per the latest DOM specification:

Firefox already follows the specification here.

No new tests, rebaselined existing test.

Test: fast/events/initEvent-after-dispatch.html

  • dom/Event.cpp:

(WebCore::Event::initEvent):

LayoutTests:

Add layout test coverage.

  • fast/events/initEvent-after-dispatch-expected.txt: Added.
  • fast/events/initEvent-after-dispatch.html: Added.
9:18 AM Changeset in webkit [204253] by commit-queue@webkit.org
  • 8 edits in trunk/Tools

run-webkit-tests should trigger a spindump when WebContent process is unresponsive
https://bugs.webkit.org/show_bug.cgi?id=159827

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-08-08
Reviewed by Daniel Bates.

This change was spurred by a process hang which occurred between tests and did
not produce a meaningful crashlog.

  • Scripts/webkitpy/port/driver.py:

(Driver._check_for_driver_crash_or_unresponsiveness): Notify test controller when finished through stdin.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort):
(IOSSimulatorPort.sample_process): Attempt spindump, but use sample if spindump fails.

  • Scripts/webkitpy/port/mac.py:

(MacPort):
(MacPort.sample_process): Attempt spindump, but use sample if spindump fails.

  • Scripts/webkitpy/port/mac_unittest.py: Changed expected values to match spindump calls, added specific spindump test.
  • Scripts/webkitpy/port/driver_unittest.py: Added dummy write function.
  • WebKitTestRunner/TestController.h:

(WTR::TestController::usingServerMode): Added accessor for m_usingServerMode.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::dumpWebProcessUnresponsiveness): Wait for stdin before continuing when in server mode.

Aug 7, 2016:

11:05 PM Changeset in webkit [204252] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

Unreviewed. Fix GObject DOM bindings API break after r204236.

Text.replaceWholeText was removed from DOM API.

  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_text_replace_whole_text):

  • bindings/gobject/WebKitDOMDeprecated.h:
  • bindings/gobject/WebKitDOMDeprecated.symbols:
10:54 PM Changeset in webkit [204251] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

Unreviewed. Fix GObject DOM bindings API break after r204113.

Document.defaultCharset was removed from DOM API.

  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_document_get_default_charset):

  • bindings/gobject/WebKitDOMDeprecated.h:
  • bindings/gobject/WebKitDOMDeprecated.symbols:
10:40 PM Changeset in webkit [204250] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Bad performance in accelerated compositing mode with the modesetting intel driver and DRI3 enabled
https://bugs.webkit.org/show_bug.cgi?id=160491

Reviewed by Michael Catanzaro.

This is becoming the default in several linux distributions and it makes WebKitGTK+ unusable in accelerated
compositing mode, which is now always enabled because since we switched to use the threaded compositor. The
problem seems to be an optimization of the intel driver for windows that are offscreen, and our redirected
window is always positioned at ScreenWidth + 1, 0. Using negative coordinates to position the redirected window
offscreen fixes the problem.
See also https://bugs.freedesktop.org/show_bug.cgi?id=85064.

  • WebProcess/WebPage/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Position the parent window at -1, -1.

10:38 PM Changeset in webkit [204249] by Carlos Garcia Campos
  • 9 edits
    2 moves in trunk/Source/WebKit2

Duplicated code in DrawingAreaProxyImpl and CoordinatedDrawingAreaProxy
https://bugs.webkit.org/show_bug.cgi?id=160506

Reviewed by Michael Catanzaro.

Same logic as in r202855 but in the UI process. CoordinatedDrawingAreaProxy is just a copy paste of
DrawingAreaProxyImpl with non-accelerated code path removed. There's actually nothing (or very little) specific
to coordinated graphics in the CoordinatedDrawingAreaProxy implementation. This patch renames
CoordinatedDrawingAreaProxy as AcceleratedDrawingAreaProxy and makes DrawingAreaProxyImpl inherit from it, so
that in case of accelerated compositing the parent class is used, and DrawingAreaProxyImpl only adds the non
accelerated code path.
To simplify the common API of AcceleratedDrawingAreaProxy, I have changed CoordinatedLayerTreeHostProxy to
receive a WebPageProxy in the constructor instead of a drawing area, since the drawing area was used just to get
the page proxy.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • UIProcess/AcceleratedDrawingAreaProxy.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp.

(WebKit::AcceleratedDrawingAreaProxy::AcceleratedDrawingAreaProxy):
(WebKit::AcceleratedDrawingAreaProxy::~AcceleratedDrawingAreaProxy):
(WebKit::AcceleratedDrawingAreaProxy::alwaysUseCompositing):
(WebKit::AcceleratedDrawingAreaProxy::dispatchAfterEnsuringDrawing):
(WebKit::AcceleratedDrawingAreaProxy::sizeDidChange):
(WebKit::AcceleratedDrawingAreaProxy::deviceScaleFactorDidChange):
(WebKit::AcceleratedDrawingAreaProxy::visibilityDidChange):
(WebKit::AcceleratedDrawingAreaProxy::waitForBackingStoreUpdateOnNextPaint):
(WebKit::AcceleratedDrawingAreaProxy::didUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::enterAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::exitAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::updateAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::backingStoreStateDidChange):
(WebKit::AcceleratedDrawingAreaProxy::sendUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::setNativeSurfaceHandleForCompositing):
(WebKit::AcceleratedDrawingAreaProxy::destroyNativeSurfaceHandleForCompositing):

  • UIProcess/AcceleratedDrawingAreaProxy.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h.

(WebKit::AcceleratedDrawingAreaProxy::isInAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::coordinatedLayerTreeHostProxy):

  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:

(WebKit::CoordinatedLayerTreeHostProxy::CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::~CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::updateViewport):
(WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState):
(WebKit::CoordinatedLayerTreeHostProxy::setVisibleContentsRect):
(WebKit::CoordinatedLayerTreeHostProxy::renderNextFrame):
(WebKit::CoordinatedLayerTreeHostProxy::commitScrollOffset):

  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
  • UIProcess/CoordinatedGraphics/PageViewportController.cpp:

(WebKit::PageViewportController::syncVisibleContents):

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
(WebKit::DrawingAreaProxyImpl::paint):
(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState):
(WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyImpl::~DrawingAreaProxyImpl): Deleted.
(WebKit::DrawingAreaProxyImpl::update): Deleted.
(WebKit::DrawingAreaProxyImpl::incorporateUpdate): Deleted.
(WebKit::DrawingAreaProxyImpl::discardBackingStoreSoon): Deleted.
(WebKit::DrawingAreaProxyImpl::discardBackingStore): Deleted.

  • UIProcess/DrawingAreaProxyImpl.h:
  • UIProcess/efl/WebView.cpp:

(WebKit::WebView::setVisible):
(WebKit::WebView::coordinatedGraphicsScene):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::createDrawingAreaProxy):

7:48 PM Changeset in webkit [204248] by Yusuke Suzuki
  • 11 edits
    8 adds in trunk

[ES6] Module namespace object should not allow unset IC
https://bugs.webkit.org/show_bug.cgi?id=160553

Reviewed by Saam Barati.

JSTests:

  • modules/namespace-object-get-property.js: Added.

(import.as.ns.from.string_appeared_here.shouldThrow):

  • modules/namespace-object-has-property.js: Added.
  • modules/namespace-object-inline-caching.js: Added.

(import.as.A.from.string_appeared_here.import.as.B.from.string_appeared_here.lookup):
(shouldBe.lookup.lookup):
(shouldBe.lookup):

  • modules/namespace-object-inline-caching/a.js: Added.
  • modules/namespace-object-inline-caching/b.js: Added.
  • modules/namespace-object-try-get.js: Added.

(import.as.ns.from.string_appeared_here.tryGetByIdText):
(tryGetByIdTextStrict):

  • modules/namespace-object-typed-array-fast-path.js: Added.
  • test262.yaml:

Source/JavaScriptCore:

Previously, module namespace object accidentally allow "unset IC". But this "unsetness" does not rely on
the structure. We should disable inline caching onto the namespace object. Once it is needed, we should
create the special caching for namespace object like the following: it should be similar to monomorphic IC,
but it caches the object itself instead of the structure. It checks the object itself (And in DFG, it should be
CheckCell) and loads the value from the target module environment directly[1].

And this patch also set setIsTaintedByProxy for the module namespace object to notify to the caller that
this object has impure ::getOwnPropertySlot. Then this function is now renamed to setIsTaintedByOpaqueObject.

We drop the hack in JSModuleNamespaceObject::getOwnPropertySlot since we already introduced InternalMethodType
for ProxyObject. Previously we cannot distinguish ::HasProperty and ::GetOwnProperty. So not to throw any
errors for ::HasProperty case, we used slot.setCustom to delay the observable operation.
But, this hack lacks the support for hasOwnProperty: hasOwnProperty uses GetOwnProperty?, so it should throw an error.
However the previous implementation does not throw an error since the delayed observable part (custom function part) is
skipped in hasOwnProperty implementation. We now remove this custom property hack and fix the corresponding failure
in test262.

[1]: https://bugs.webkit.org/show_bug.cgi?id=160590

  • jit/JITOperations.cpp:
  • runtime/ArrayPrototype.cpp:

(JSC::getProperty):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructGenericTypedArrayViewWithArguments):

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::getOwnPropertySlot):
(JSC::callbackGetter): Deleted.

  • runtime/JSModuleNamespaceObject.h:
  • runtime/PropertySlot.cpp:

(JSC::PropertySlot::getPureResult):

  • runtime/PropertySlot.h:

(JSC::PropertySlot::PropertySlot):
(JSC::PropertySlot::setIsTaintedByOpaqueObject):
(JSC::PropertySlot::isTaintedByOpaqueObject):
(JSC::PropertySlot::setIsTaintedByProxy): Deleted.
(JSC::PropertySlot::isTaintedByProxy): Deleted.

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::getOwnPropertySlotCommon):

7:47 PM Changeset in webkit [204247] by Chris Dumez
  • 10 edits
    3 deletes in trunk

Node.baseURI should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=160649

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

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

Rebaseline now that one more check is passing.

  • web-platform-tests/domparsing/DOMParser-parseFromString-html-expected.txt:

Rebaseline now that the baseURI is "about:blank" instead of null. The check
is still failing. We are falling back to using the document's URL, as expected.
However, the document's URL should not be "about:blank" in this case, which is
why we are failing the previous check.

Source/WebCore:

Node.baseURI should not be nullable as per the latest DOM specification:

It is not nullable in Firefox. It is supposed to fallback to using the
document's URL. The document's URL is "about:blank" by default so
baseURI() now returns "about:blank" in the internal URL is null,
similarly to what we do for Document.URL (c.g. urlForBindings()).

No new tests, rebaselined existing test.

  • dom/Node.cpp:

(WebCore::Node::baseURI):

  • dom/Node.h:
  • dom/Node.idl:

LayoutTests:

Drop outdated DOM test.

  • dom/xhtml/level3/core/nodegetbaseuri02-expected.txt: Removed.
  • dom/xhtml/level3/core/nodegetbaseuri02.js: Removed.
  • dom/xhtml/level3/core/nodegetbaseuri02.xhtml: Removed.
6:33 PM Changeset in webkit [204246] by Chris Dumez
  • 22 edits in trunk

Drop SVGDocument as per the SVG2 specification
https://bugs.webkit.org/show_bug.cgi?id=160361

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:

Source/WebCore:

Drop SVGDocument as per the SVG2 specification:

SVGDocument has been merged into Document.

Chrome and Edge have dropped SVGDocument already, Firefox has not.

No new tests, rebaselined existing test.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::remoteSVGRootElement):

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::createNewDocumentWrapper): Deleted.

  • bindings/js/JSXMLDocumentCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS): Deleted.

  • page/DOMWindow.idl:
  • page/FrameView.cpp:

(WebCore::FrameView::scrollToAnchor):

  • svg/SVGDocument.cpp:

(WebCore::SVGDocument::rootElement):
(WebCore::SVGDocument::zoomAndPanEnabled):
(WebCore::SVGDocument::startPan):
(WebCore::SVGDocument::updatePan):

  • svg/SVGDocument.h:
  • svg/SVGDocument.idl:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::rootElement):

LayoutTests:

Update / rebaseline existing tests to reflect behavior change.

  • platform/mac/svg/custom/dynamic-svg-document-creation-expected.txt:
  • svg/custom/clone-node-expected.txt:
  • svg/custom/clone-node.html:
  • svg/custom/frame-getSVGDocument.html:
  • svg/custom/global-constructors-expected.txt:
  • svg/custom/manually-parsed-svg-allowed-in-dashboard-expected.txt:
  • svg/custom/script-tests/global-constructors.js:
1:50 PM Changeset in webkit [204245] by mitz@apple.com
  • 10 edits in trunk

[Cocoa] Reply block leaks if the remote object doesn’t call it
https://bugs.webkit.org/show_bug.cgi?id=160642

Reviewed by Sam Weinig.

Source/WebKit2:

  • Shared/API/Cocoa/RemoteObjectRegistry.h: Declared new member functions.
  • Shared/API/Cocoa/RemoteObjectRegistry.messages.in: Added ReleaseUnusedReplyBlock message.
  • Shared/API/Cocoa/RemoteObjectRegistry.mm:

(WebKit::RemoteObjectRegistry::sendUnusedReply): Send the ReleaseUnusedReplyBlock message.
(WebKit::RemoteObjectRegistry::releaseUnusedReplyBlock): Message receiver that call through

to -_releaseReplyWithID:.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _invokeMethod:]): Define a ReplyBlockCallChecker object and

capture an instance of it in the reply block we pass to the exported object. Have that
block set a flag on the checker when it’s called. If the checker gets destroyed without
the block having been called, which means that the block got destroyed without being
called, call sendUnusedReply to let the other side know that the block will not be invoked.

(-[_WKRemoteObjectRegistry _releaseReplyWithID:]): Added. Removed the pending reply from the

map, which release the block.

  • Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h:

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.h: Declared a new method.
  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm:

(TEST): Added a test case that checks that the reply block is released even when it’s not

called.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistryPlugIn.mm:

(-[RemoteObjectRegistryPlugIn doNotCallCompletionHandler:]): Implement new method by not

calling the completion handler.

12:40 PM Changeset in webkit [204244] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r201245): switching between Computed and Visual Styles panels causes internal error
https://bugs.webkit.org/show_bug.cgi?id=160604
<rdar://problem/27723416>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/StyleDetailsPanel.js:

(WebInspector.StyleDetailsPanel.prototype.shown):
Only perform a layout if needed. Subclasses access node style
data during layout, which may not exist yet.

12:08 PM Changeset in webkit [204243] by Chris Dumez
  • 5 edits in trunk

Write API test to cover crash fix in r204135
https://bugs.webkit.org/show_bug.cgi?id=160587

Reviewed by Darin Adler.

Source/WebKit2:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::terminateProcess):
Stop calling resetStateAfterProcessExited() after calling
requestTermination() because requestTermination() now calls
didClose() which calls processDidCrash() which already calls
resetStateAfterProcessExited(). Because the processDidCrash()
delegates may start new loads, we really do not want to
reset the state again after calling the delegates.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::requestTermination):

  • Call didClose() in WebProcessProxy::requestTermination() so that the processDidCrash() delegates get called in API tests whenever a WebContent process is terminated to simulate a crash.
  • Stop calling shutDown() and webConnection()->didClose() because didClose() already does this for us.

Tools:

Add API test to cover crash fix in r204135. This reproduces the crash
by destroying a related WKWebView in the webViewWebContentProcessDidTerminate
callback.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:

(-[NavigationDelegate webViewWebContentProcessDidTerminate:]):
(TEST):

10:14 AM Changeset in webkit [204242] by Chris Dumez
  • 17 edits in trunk

Un-expose DOMSettableTokenList
https://bugs.webkit.org/show_bug.cgi?id=160643

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

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

Source/WebCore:

Un-expose DOMSettableTokenList. We merged DOMSettableTokenList into
DOMTokenList a while back, as per the specification. At the time, we
kept DOMSettableTokenList on Window, as an alias to DOMTokenList.
However, Firefox and Chrome dropped DOMSettableTokenList completely.
We now do the same as other browsers.

No new tests, rebaselined existing test.

  • page/DOMWindow.idl:

LayoutTests:

Update / rebaseline existing tests.

  • fast/dom/HTMLLinkElement/sizes-setter-expected.txt:
  • fast/dom/HTMLLinkElement/sizes-setter.html:
  • fast/dom/HTMLOutputElement/dom-settable-token-list-expected.txt:
  • fast/dom/HTMLOutputElement/script-tests/dom-settable-token-list.js:
  • fast/frames/sandbox-attribute-expected.txt:
  • fast/frames/sandbox-attribute.html:
  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
10:05 AM Changeset in webkit [204241] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

DocumentRuleSets::collectFeatures() should shrink-to-fit.
<https://webkit.org/b/160646>

Reviewed by Darin Adler.

We forgot to shrink-wrap the RuleFeatureSet in DocumentRuleSets
after collecting the document-wide features.

  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::collectFeatures):

12:40 AM Changeset in webkit [204240] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

LayoutTest http/tests/fetch/fetch-in-worker-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=160510

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-07

Aug 6, 2016:

10:52 PM Changeset in webkit [204239] by Gyuyoung Kim
  • 45 edits in trunk/Source/WebCore

Purge all uses of PassRefPtr in WebCore/Modules
https://bugs.webkit.org/show_bug.cgi?id=159965

Reviewed by Chris Dumez.

Final clean up in Modules directory.

No new tests, no behavior changes.

  • Modules/gamepad/deprecated/GamepadList.cpp:

(WebCore::GamepadList::set):

  • Modules/gamepad/deprecated/GamepadList.h:
  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::IDBGetResult):

  • Modules/indieui/UIRequestEvent.cpp:

(WebCore::UIRequestEvent::create):
(WebCore::UIRequestEvent::UIRequestEvent):

  • Modules/indieui/UIRequestEvent.h:

(WebCore::UIRequestEvent::receiver):

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

(WebCore::SampleMap::addSample):

  • Modules/mediasource/SampleMap.h:

(WebCore::SampleMap::addRange):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::textTrackAddCue):
(WebCore::SourceBuffer::textTrackRemoveCue):

  • Modules/mediasource/SourceBuffer.h:
  • Modules/mediastream/CaptureDeviceManager.cpp:

(CaptureDeviceManager::bestSourcesForTypeAndConstraints):

  • Modules/mediastream/CaptureDeviceManager.h:
  • Modules/mediastream/MediaDevicesRequest.h:
  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalRemoveTrack):

  • Modules/mediastream/MediaStreamRegistry.h:
  • Modules/mediastream/MediaStreamTrackEvent.cpp:

(WebCore::MediaStreamTrackEvent::create):
(WebCore::MediaStreamTrackEvent::MediaStreamTrackEvent):
(WebCore::MediaStreamTrackEvent::track):

  • Modules/mediastream/MediaStreamTrackEvent.h:
  • Modules/mediastream/MediaTrackConstraints.cpp:

(WebCore::MediaTrackConstraints::create):
(WebCore::MediaTrackConstraints::MediaTrackConstraints):
(WebCore::MediaTrackConstraints::optional):

  • Modules/mediastream/MediaTrackConstraints.h:
  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::create):
(WebCore::RTCDTMFSender::RTCDTMFSender):

  • Modules/mediastream/RTCDTMFSender.h:
  • Modules/mediastream/RTCDataChannelEvent.cpp:

(WebCore::RTCDataChannelEvent::create):
(WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
(WebCore::RTCDataChannelEvent::channel):

  • Modules/mediastream/RTCDataChannelEvent.h:
  • Modules/mediastream/RTCIceServer.h:
  • Modules/mediastream/RTCStatsReport.h:
  • Modules/mediastream/SourceInfo.cpp:

(WebCore::SourceInfo::create):
(WebCore::SourceInfo::SourceInfo):

  • Modules/mediastream/SourceInfo.h:
  • Modules/mediastream/UserMediaClient.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::didCreateStream):

  • Modules/mediastream/UserMediaRequest.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::~Database):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::textTrackAddCue):
(WebCore::HTMLMediaElement::textTrackRemoveCue):

  • html/HTMLMediaElement.h:
  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::textTrackAddCue):
(WebCore::HTMLTrackElement::textTrackRemoveCue):

  • html/HTMLTrackElement.h:
  • html/track/TextTrack.h:
  • platform/graphics/SourceBufferPrivateClient.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):

  • platform/mediastream/MediaStreamCreationClient.h:
  • platform/mediastream/mac/AVCaptureDeviceManager.h:
  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

(WebCore::AVCaptureDeviceManager::bestSourcesForTypeAndConstraints):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints):

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

(WebCore::MockSourceBufferPrivate::didReceiveSample):

9:21 PM Changeset in webkit [204238] by Chris Dumez
  • 4 edits in trunk

Unreviewed, rolling out r204226.

Broke some API tests

Reverted changeset:

"Write API test to cover crash fix in r204135"
https://bugs.webkit.org/show_bug.cgi?id=160587
http://trac.webkit.org/changeset/204226

8:22 PM Changeset in webkit [204237] by Chris Dumez
  • 5 edits
    2 adds in trunk

a.replaceChild(a, a) should throw a HierarchyRequestError
https://bugs.webkit.org/show_bug.cgi?id=160640

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

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

Source/WebCore:

a.replaceChild(a, a) should throw a HierarchyRequestError, because 'a'
is a host-including inclusive ancestor of 'a':

However, the call is merely ignored in WebKit.

No new tests, rebaselined existing test.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::replaceChild):

LayoutTests:

  • fast/dom/Node/replaceChild-notFoundError-expected.txt: Added.
  • fast/dom/Node/replaceChild-notFoundError.html: Added.
8:06 PM Changeset in webkit [204236] by Chris Dumez
  • 12 edits
    17 deletes in trunk

Drop legacy Text.replaceWholeText() API
https://bugs.webkit.org/show_bug.cgi?id=160641

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

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

Source/WebCore:

Drop legacy Text.replaceWholeText() API, which is no longer in the
specification:

Firefox and Chrome already dropped support for it.

No new tests, rebaselined existing test.

  • dom/Text.idl:

LayoutTests:

Drop outdated tests / checks.

  • dom/xhtml/level3/core/textreplacewholetext01-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext01.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext01.xhtml: Removed.
  • dom/xhtml/level3/core/textreplacewholetext02-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext02.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext02.xhtml: Removed.
  • dom/xhtml/level3/core/textreplacewholetext03-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext03.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext03.xhtml: Removed.
  • dom/xhtml/level3/core/textreplacewholetext04-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext04.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext04.xhtml: Removed.
  • dom/xhtml/level3/core/textreplacewholetext05-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext05.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext05.xhtml: Removed.
  • fast/dom/Attr/change-id-via-attr-node-value-expected.txt:
  • fast/dom/Attr/change-id-via-attr-node-value.html:
  • fast/dom/Text/replaceWholeText-expected.txt: Removed.
  • fast/dom/Text/replaceWholeText.html: Removed.
  • fast/storage/storage-detached-iframe-expected.txt:
  • fast/storage/storage-detached-iframe.html:
  • http/tests/security/xss-DENIED-iframe-src-alias-expected.txt:
  • http/tests/security/xss-DENIED-iframe-src-alias.html:
  • platform/mac/inspector/model/remote-object-expected.txt:
7:43 PM Changeset in webkit [204235] by Chris Dumez
  • 10 edits in trunk

Align Range.createContextualFragment() input validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=160634

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/domparsing/createContextualFragment-expected.txt:

Source/WebCore:

Align Range.createContextualFragment() input validation with the specification:

In particular, we were throwing a NOT_SUPPORTED_ERR when element had localname
"html" but was not in the HTML namespace. We should not throw in this case.

Firefox complies with the specification here.

No new tests, rebaselined existing test.

  • dom/Range.cpp:

(WebCore::Range::createContextualFragment): Deleted.

7:29 PM Changeset in webkit [204234] by Chris Dumez
  • 9 edits in trunk

[Web IDL] Add support for [Unscopable] extended attribute
https://bugs.webkit.org/show_bug.cgi?id=160637

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/nodes/remove-unscopable-expected.txt:

Source/WebCore:

Add support for [Unscopable] extended attribute:

No new tests, rebaselined existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(addUnscopableProperties):
(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjPrototype::finishCreation):

  • bindings/scripts/test/TestObj.idl:
  • dom/ChildNode.idl:
  • dom/ParentNode.idl:
6:50 PM Changeset in webkit [204233] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

REGRESSION (r203253): Node details sidebar flickers while resizing
https://bugs.webkit.org/show_bug.cgi?id=160631
<rdar://problem/27733024>

Reviewed by Timothy Hatcher.

Sidebar panel layouts can be expensive, and should be performed only
when necessary (i.e., when the panel is shown for the first time, or
model data changed while the panel was hidden).

  • UserInterface/Views/Sidebar.js:

(WebInspector.Sidebar.prototype._recalculateWidth):

  • UserInterface/Views/SidebarPanel.js:

(WebInspector.SidebarPanel.prototype.shown):

  • UserInterface/Views/View.js:

(WebInspector.View.prototype.updateLayoutIfNeeded):
Update the layout if an initial layout was never performed.

6:41 PM Changeset in webkit [204232] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] -[_WKRemoteObjectRegistry() _invokeMethod:] leaks a block
https://bugs.webkit.org/show_bug.cgi?id=160636

Reviewed by Darin Adler.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _invokeMethod:]): Release the block returned from

NSMakeSpecialForwardingCaptureBlock.

4:43 PM Changeset in webkit [204231] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests/imported/w3c

imported/w3c/web-platform-tests/fetch/api/basic/mode-same-origin.html and -worker.html are failing after r204224
https://bugs.webkit.org/show_bug.cgi?id=160639

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-06

  • web-platform-tests/fetch/api/basic/mode-same-origin-expected.txt: Rebaased after redirect.py update in

https://bugs.webkit.org/show_bug.cgi?id=160593.

  • web-platform-tests/fetch/api/basic/mode-same-origin-worker-expected.txt: Ditto.
12:33 PM Changeset in webkit [204230] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

EWS Style Queue fails to process patches which fails validation
https://bugs.webkit.org/show_bug.cgi?id=160632

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/tool/bot/stylequeuetask.py:

(StyleQueueTask.validate): Add more information about validation failure.
(StyleQueueTask.run): Pass the error details in the PatchIsNotValid exception.

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

(test_non_valid_patch): Add a unit test to test the above code path.

11:23 AM Changeset in webkit [204229] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.50

New tag.

11:19 AM Changeset in webkit [204228] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Simplify valueToUSVString
https://bugs.webkit.org/show_bug.cgi?id=160628

Reviewed by Sam Weinig.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::isUnmatchedSurrogatePair): Deleted. This function was incorrectly named,
since it actually returned true if any surrogate code unit was passed.
(WebCore::valueToUSVString): Added a fast path for 8-bit characters that doesn't
bother iterating the string at all. Changed the fast path to actually check for
surrogate pairs. Use StringView::codePoints rather than writing our own loop that
does the same thing. In the slow path, use StringView::codePoints to make the logic
clear rather than writing out exactly what the specification says. This gets rid of
all the many constants the old version of the function contained.

9:01 AM Changeset in webkit [204227] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

WTF needs a variant implementation
https://bugs.webkit.org/show_bug.cgi?id=160618

Patch by Sam Weinig <sam@webkit.org> on 2016-08-06
Reviewed by Darin Adler.

Source/WTF:

Add an implementation of std::experimental::variant matching the C++17 draft http://wg21.link/n4606
taken from https://bitbucket.org/anthonyw/variant/src (5bce47fa788648f79e5ea1d77b0eef2e8f0b2999) and
modified to support compiling without exceptions (where it used to throw, we lovingly CRASH()).

  • WTF.xcodeproj/project.pbxproj:

Add new file.

  • wtf/Compiler.h:

Add COMPILER_SUPPORTS define for C++ exceptions.

  • wtf/Variant.h: Added.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/Variant.cpp: Added.

Add tests for the variant implementation.

8:13 AM Changeset in webkit [204226] by Chris Dumez
  • 4 edits in trunk

Write API test to cover crash fix in r204135
https://bugs.webkit.org/show_bug.cgi?id=160587

Reviewed by Darin Adler.

Source/WebKit2:

Call didClose() in WebProcessProxy::requestTermination() so that
the processDidCrash() delegates get called in API tests whenever
a WebContent process is terminated to simulate a crash.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::requestTermination):

Tools:

Add API test to cover crash fix in r204135. This reproduces the crash
by destroying a related WKWebView in the webViewWebContentProcessDidTerminate
callback.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:

(-[NavigationDelegate webViewWebContentProcessDidTerminate:]):
(TEST):

1:51 AM Changeset in webkit [204225] by commit-queue@webkit.org
  • 9 edits in trunk

[Fetch API] Fetching with a FormData body should reject until it is implemented
https://bugs.webkit.org/show_bug.cgi?id=160595

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-06
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Adding new tests to cover changes.
Removing HEAD with body test as it throws as expected and is redundant with
web-platform-tests/fetch/api/request/request-init-002.html.

  • web-platform-tests/fetch/api/basic/request-headers-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers.js:

(checkContentType):
(requestHeaders):

Source/WebCore:

Covered by updated tests.

This patch ensures that fetch will throw if trying to upload something that is not supported.
This is the case of BufferSource (FetchBody does not yet extract it) and FormData (no upload support yet).

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::extract): Added a FIXME.

  • Modules/fetch/FetchBodyOwner.h:

(WebCore::FetchBodyOwner::bodyType): Getter used by FetchResponse.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::setBody): Throwing if given body parameter cannot be extracted by FetchBody.
This ensures that a fetch with a body that cannot be uploaded will fail.
This is the case of BufferSource which is not yet supported.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::fetch): Rejecting fetch promise if trying to upload a FormData as it is not implemented.

1:50 AM Changeset in webkit [204224] by commit-queue@webkit.org
  • 11 edits in trunk

[Fetch API] Fetch API should strip fragment and credentials from URLs used as referrer
https://bugs.webkit.org/show_bug.cgi?id=160593

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-06
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/referrer-expected.txt:
  • web-platform-tests/fetch/api/basic/referrer-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/referrer.js:

(runTest): Adding more tests.
One test is failing as the redirection from same-origin to cross-origin is stripping the referer header.
But none is added afterwards. Hence cross-origin redirected request is sent without any referer header.

  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt: Rebasing according redirect.py script changes.
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt: Ditto.
  • web-platform-tests/fetch/api/resources/redirect.py:

(main): Fixing rediret.py script.

Source/WebCore:

Covered by updated tests.

Stripping of referrer value before sending a load request.

Fixing bug in workers as referrer value was overwritten by WorkerThreadableLoader.
The current handling of referrer values as HTTP header is not great as this may trigger unnecessary preflighting.
Refactoring should allow passing it as a separate parameter and setting it after preflighting as per
https://fetch.spec.whatwg.org/#http-network-or-cache-fetch.

Also a newly added test is failing, as SubresourceLoader is removing the referer header in case of a cross-origin redirection.
But none is added back.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::internalRequest): Stripping referrer value.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): Do not override referrer value if one is defined.

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::generateReferrerHeader): Adding assertion to ensure referrer value does not contain
credentials and/or fragment identifiers.

1:48 AM Changeset in webkit [204223] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

LayoutTest http/tests/fetch/fetch-in-worker-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=160510

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-06
Reviewed by Sam Weinig.

  • http/tests/fetch/fetch-in-worker-crash.html:
  • http/tests/fetch/fetch-in-worker.js:

Adding a new test based on a ReadableStream that is not closed and therefore Response.text promise cannot resolve.
Removing the blob resolve message as there is no guarantee that blob load will finish after the test is done.

1:00 AM Changeset in webkit [204222] by beidson@apple.com
  • 7 edits
    10 adds in trunk/Source/WebKit2

Lay WebProcess/UIProcess groundwork for an IPC GamepadProvider.
https://bugs.webkit.org/show_bug.cgi?id=160605

Reviewed by Alex Christensen.

This patch:

  • Introduces the GamepadProvider that the WebProcess will use (WebGamepadProvider)
  • Has that provider message to the UIProcess notifying interest in gamepad state
  • Introduces a GamepadProviderClient in the UIProcess (UIGamepadProvider) that will use one of the existing GamepadProviders to pass gamepad state along to WebProcesses.
  • Adds an empty skeleton for the soon-to-be-used WebGamepad, which will be the "PlatformGamepad" for WebProcesses.
  • CMakeLists.txt:
  • WebKit2.xcodeproj/project.pbxproj:
  • UIProcess/Gamepads/UIGamepadProvider.cpp: Added.

(WebKit::UIGamepadProvider::singleton):
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::~UIGamepadProvider):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

  • UIProcess/Gamepads/UIGamepadProvider.h: Added.
  • UIProcess/Gamepads/mac/UIGamepadProviderHID.cpp: Added.

(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
(WebKit::WebProcessPool::processStoppedUsingGamepads):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessPool.messages.in:
  • WebProcess/Gamepad/WebGamepad.cpp: Added.
  • WebProcess/Gamepad/WebGamepad.h: Added.
  • WebProcess/Gamepad/WebGamepadProvider.cpp: Added.

(WebKit::WebGamepadProvider::singleton):
(WebKit::WebGamepadProvider::WebGamepadProvider):
(WebKit::WebGamepadProvider::~WebGamepadProvider):
(WebKit::WebGamepadProvider::startMonitoringGamepads):
(WebKit::WebGamepadProvider::stopMonitoringGamepads):
(WebKit::WebGamepadProvider::platformGamepads):

  • WebProcess/Gamepad/WebGamepadProvider.h: Added.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

Note: See TracTimeline for information about the timeline view.