[webkit-changes] [205222] releases/WebKitGTK/webkit-2.14/Source/JavaScriptCore
Title: [205222] releases/WebKitGTK/webkit-2.14/Source/_javascript_Core Revision 205222 Author carlo...@webkit.org Date 2016-08-30 22:59:02 -0700 (Tue, 30 Aug 2016) Log Message Unreviewed. Remove incorrect assert causing crashes in debug builds. * dfg/DFGAbstractValue.h: (JSC::DFG::AbstractValue::AbstractValue): Modified Paths releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/ChangeLog releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/dfg/DFGAbstractValue.h Diff Modified: releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/ChangeLog (205221 => 205222) --- releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/ChangeLog 2016-08-31 05:54:31 UTC (rev 205221) +++ releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/ChangeLog 2016-08-31 05:59:02 UTC (rev 205222) @@ -1,3 +1,10 @@ +2016-08-30 Carlos Garcia Campos+ +Unreviewed. Remove incorrect assert causing crashes in debug builds. + +* dfg/DFGAbstractValue.h: +(JSC::DFG::AbstractValue::AbstractValue): + 2016-08-29 Joseph Pecoraro REGRESSION(r202568): Web Inspector: Expanding Array Prototype in Console shows no properties Modified: releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/dfg/DFGAbstractValue.h (205221 => 205222) --- releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/dfg/DFGAbstractValue.h 2016-08-31 05:54:31 UTC (rev 205221) +++ releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/dfg/DFGAbstractValue.h 2016-08-31 05:59:02 UTC (rev 205222) @@ -55,17 +55,6 @@ : m_type(SpecNone) , m_arrayModes(0) { -#if USE(JSVALUE64) && !defined(NDEBUG) -// The WTF Traits for AbstractValue allow the initialization of values with bzero(). -// We verify the correctness of this assumption here. -static bool needsDefaultConstructorCheck = true; -if (needsDefaultConstructorCheck) { -needsDefaultConstructorCheck = false; - -for (unsigned i = 0; i < sizeof(AbstractValue); ++i) -ASSERT(!(reinterpret_cast (this)[i])); -} -#endif } void clear() ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [205221] branches/safari-602-branch/Source
Title: [205221] branches/safari-602-branch/Source Revision 205221 Author bshaf...@apple.com Date 2016-08-30 22:54:31 -0700 (Tue, 30 Aug 2016) Log Message Versioning. Modified Paths branches/safari-602-branch/Source/_javascript_Core/Configurations/Version.xcconfig branches/safari-602-branch/Source/WebCore/Configurations/Version.xcconfig branches/safari-602-branch/Source/WebInspectorUI/Configurations/Version.xcconfig branches/safari-602-branch/Source/WebKit/mac/Configurations/Version.xcconfig branches/safari-602-branch/Source/WebKit2/Configurations/Version.xcconfig Diff Modified: branches/safari-602-branch/Source/_javascript_Core/Configurations/Version.xcconfig (205220 => 205221) --- branches/safari-602-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2016-08-31 05:18:54 UTC (rev 205220) +++ branches/safari-602-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2016-08-31 05:54:31 UTC (rev 205221) @@ -23,7 +23,7 @@ MAJOR_VERSION = 602; MINOR_VERSION = 2; -TINY_VERSION = 3; +TINY_VERSION = 4; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-602-branch/Source/WebCore/Configurations/Version.xcconfig (205220 => 205221) --- branches/safari-602-branch/Source/WebCore/Configurations/Version.xcconfig 2016-08-31 05:18:54 UTC (rev 205220) +++ branches/safari-602-branch/Source/WebCore/Configurations/Version.xcconfig 2016-08-31 05:54:31 UTC (rev 205221) @@ -23,7 +23,7 @@ MAJOR_VERSION = 602; MINOR_VERSION = 2; -TINY_VERSION = 3; +TINY_VERSION = 4; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-602-branch/Source/WebInspectorUI/Configurations/Version.xcconfig (205220 => 205221) --- branches/safari-602-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2016-08-31 05:18:54 UTC (rev 205220) +++ branches/safari-602-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2016-08-31 05:54:31 UTC (rev 205221) @@ -1,6 +1,6 @@ MAJOR_VERSION = 602; MINOR_VERSION = 2; -TINY_VERSION = 3; +TINY_VERSION = 4; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-602-branch/Source/WebKit/mac/Configurations/Version.xcconfig (205220 => 205221) --- branches/safari-602-branch/Source/WebKit/mac/Configurations/Version.xcconfig 2016-08-31 05:18:54 UTC (rev 205220) +++ branches/safari-602-branch/Source/WebKit/mac/Configurations/Version.xcconfig 2016-08-31 05:54:31 UTC (rev 205221) @@ -23,7 +23,7 @@ MAJOR_VERSION = 602; MINOR_VERSION = 2; -TINY_VERSION = 3; +TINY_VERSION = 4; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-602-branch/Source/WebKit2/Configurations/Version.xcconfig (205220 => 205221) --- branches/safari-602-branch/Source/WebKit2/Configurations/Version.xcconfig 2016-08-31 05:18:54 UTC (rev 205220) +++ branches/safari-602-branch/Source/WebKit2/Configurations/Version.xcconfig 2016-08-31 05:54:31 UTC (rev 205221) @@ -23,7 +23,7 @@ MAJOR_VERSION = 602; MINOR_VERSION = 2; -TINY_VERSION = 3; +TINY_VERSION = 4; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [205220] trunk
Title: [205220] trunk Revision 205220 Author rn...@webkit.org Date 2016-08-30 22:18:54 -0700 (Tue, 30 Aug 2016) Log Message Add "get" to CustomElementsRegistry https://bugs.webkit.org/show_bug.cgi?id=161421 Reviewed by Yusuke Suzuki. Source/WebCore: Add the support for "get" method on CustomElementsRegistry, which returns the constructor of the custom element with the given name: https://html.spec.whatwg.org/multipage/scripting.html#dom-customelementregistry-get Tests: fast/custom-elements/CustomElementRegistry.html * dom/CustomElementRegistry.cpp: (WebCore::CustomElementRegistry::get): Added. * dom/CustomElementRegistry.h: * dom/CustomElementRegistry.idl: LayoutTests: Added test cases for "get" method on CustomElementsRegistry. * fast/custom-elements/CustomElementRegistry-expected.txt: * fast/custom-elements/CustomElementRegistry.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/fast/custom-elements/CustomElementRegistry-expected.txt trunk/LayoutTests/fast/custom-elements/CustomElementRegistry.html trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/dom/CustomElementRegistry.cpp trunk/Source/WebCore/dom/CustomElementRegistry.h trunk/Source/WebCore/dom/CustomElementRegistry.idl Diff Modified: trunk/LayoutTests/ChangeLog (205219 => 205220) --- trunk/LayoutTests/ChangeLog 2016-08-31 05:03:10 UTC (rev 205219) +++ trunk/LayoutTests/ChangeLog 2016-08-31 05:18:54 UTC (rev 205220) @@ -1,3 +1,15 @@ +2016-08-30 Ryosuke Niwa+ +Add "get" to CustomElementsRegistry +https://bugs.webkit.org/show_bug.cgi?id=161421 + +Reviewed by Yusuke Suzuki. + +Added test cases for "get" method on CustomElementsRegistry. + +* fast/custom-elements/CustomElementRegistry-expected.txt: +* fast/custom-elements/CustomElementRegistry.html: + 2016-08-30 Jiewen Tan Unreviewed, update iOS simulator WK1 flaky tests. Modified: trunk/LayoutTests/fast/custom-elements/CustomElementRegistry-expected.txt (205219 => 205220) --- trunk/LayoutTests/fast/custom-elements/CustomElementRegistry-expected.txt 2016-08-31 05:03:10 UTC (rev 205219) +++ trunk/LayoutTests/fast/custom-elements/CustomElementRegistry-expected.txt 2016-08-31 05:18:54 UTC (rev 205220) @@ -17,4 +17,8 @@ PASS customElements.define must rethrow an exception thrown while retrieving Symbol.iterator on observedAttributes PASS customElements.define must not throw even if "observedAttributes" fails to convert if "attributeChangedCallback" is not defined PASS customElements.define must define an instantiatable custom element +PASS CustomElementRegistry interface must have get as a method +PASS "get" must return undefined when the registry does not contain an entry with the given name +PASS "get" must return undefined when the registry does not contain an entry with the given name even if the name was not a valid custom element name +PASS "get" return the constructor of the entry with the given name when there is a matching entry. Modified: trunk/LayoutTests/fast/custom-elements/CustomElementRegistry.html (205219 => 205220) --- trunk/LayoutTests/fast/custom-elements/CustomElementRegistry.html 2016-08-31 05:03:10 UTC (rev 205219) +++ trunk/LayoutTests/fast/custom-elements/CustomElementRegistry.html 2016-08-31 05:18:54 UTC (rev 205220) @@ -267,6 +267,30 @@ }, 'customElements.define must define an instantiatable custom element'); +test(function () { +assert_true('get' in CustomElementRegistry.prototype, '"get" exists on CustomElementRegistry.prototype'); +assert_true('get' in customElements, '"get" exists on window.customElements'); +}, 'CustomElementRegistry interface must have get as a method'); + +test(function () { +assert_equals(customElements.get('a-b'), undefined); +}, '"get" must return undefined when the registry does not contain an entry with the given name'); + +test(function () { +assert_equals(customElements.get('html'), undefined); +assert_equals(customElements.get('span'), undefined); +assert_equals(customElements.get('div'), undefined); +assert_equals(customElements.get('g'), undefined); +assert_equals(customElements.get('ab'), undefined); +}, '"get" must return undefined when the registry does not contain an entry with the given name even if the name was not a valid custom element name'); + +test(function () { +assert_equals(customElements.get('existing-custom-element'), undefined); +class ExistingCustomElement extends HTMLElement {}; +customElements.define('existing-custom-element', ExistingCustomElement); +assert_equals(customElements.get('existing-custom-element'), ExistingCustomElement); +}, '"get" return the constructor of the entry with the given name when there is a matching entry.'); + Modified: trunk/Source/WebCore/ChangeLog (205219 => 205220) --- trunk/Source/WebCore/ChangeLog 2016-08-31 05:03:10 UTC (rev 205219) +++ trunk/Source/WebCore/ChangeLog
[webkit-changes] [205219] trunk/LayoutTests
Title: [205219] trunk/LayoutTests Revision 205219 Author jiewen_...@apple.com Date 2016-08-30 22:03:10 -0700 (Tue, 30 Aug 2016) Log Message Unreviewed, update iOS simulator WK1 flaky tests. * platform/ios-simulator-wk1/TestExpectations: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/ios-simulator-wk1/TestExpectations Diff Modified: trunk/LayoutTests/ChangeLog (205218 => 205219) --- trunk/LayoutTests/ChangeLog 2016-08-31 02:37:12 UTC (rev 205218) +++ trunk/LayoutTests/ChangeLog 2016-08-31 05:03:10 UTC (rev 205219) @@ -1,3 +1,9 @@ +2016-08-30 Jiewen Tan+ +Unreviewed, update iOS simulator WK1 flaky tests. + +* platform/ios-simulator-wk1/TestExpectations: + 2016-08-30 Ryan Haddad Marking inspector/debugger/breakpoint-action-with-exception.html as flaky. Modified: trunk/LayoutTests/platform/ios-simulator-wk1/TestExpectations (205218 => 205219) --- trunk/LayoutTests/platform/ios-simulator-wk1/TestExpectations 2016-08-31 02:37:12 UTC (rev 205218) +++ trunk/LayoutTests/platform/ios-simulator-wk1/TestExpectations 2016-08-31 05:03:10 UTC (rev 205219) @@ -1749,9 +1749,13 @@ http/tests/security/xss-DENIED-xml-external-entity.xhtml [ Pass Failure ] http/tests/security/xss-DENIED-xsl-external-entity-redirect.xml [ Pass Failure ] http/tests/security/xss-DENIED-xsl-external-entity.xml [ Pass Failure ] +imported/blink/compositing/ancestor-painted-layer-should-appear.html [ Pass ImageOnlyFailure ] +imported/blink/compositing/invisible-subtree-compositing-and-preserves-3d.html [ Pass ImageOnlyFailure ] +imported/blink/compositing/will-change/stacking-context-creation.html [ Pass ImageOnlyFailure ] imported/blink/fast/animation/last-child-assert.html [ Crash Pass Failure ] imported/blink/fast/multicol/hit-test-translate-z.html [ Pass Failure ] imported/blink/fast/sub-pixel/clip-sub-pixel-composited-layer.html [ Pass ImageOnlyFailure ] +imported/blink/paint/invalidation/fixed-position-descendant-paint-offset-indirect.html [ Pass ImageOnlyFailure ] imported/blink/paint/tables/tbody-fixedposition.html [ Pass ImageOnlyFailure ] imported/blink/svg/hittest/rect-hittest.html [ Pass Failure ] imported/blink/svg/hittest/rect-miterlimit.html [ Pass Failure ] @@ -1759,6 +1763,7 @@ imported/mozilla/svg/dynamic-use-06.svg [ Pass ImageOnlyFailure ] imported/w3c/web-platform-tests/fetch/api/cors/cors-origin.html [ Pass Crash ] platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe.html [ Pass Failure ] +svg/text/add-tspan-position-bug.html [ Pass ImageOnlyFailure ] security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star.html [ Pass ImageOnlyFailure ] svg/text/hidpi-text-selection-rect-position.html [ Pass ImageOnlyFailure ] transforms/2d/perspective-not-fixed-container.html [ Pass ImageOnlyFailure ] ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [205218] trunk/Source/WebCore
Title: [205218] trunk/Source/WebCore Revision 205218 Author utatane@gmail.com Date 2016-08-30 19:37:12 -0700 (Tue, 30 Aug 2016) Log Message Make PendingScript as ref-counted https://bugs.webkit.org/show_bug.cgi?id=161350 Reviewed by Ryosuke Niwa. Currently, while PendingScript is copyable, PendingScript is also CachedResourceClient. So when copying this, the client registration is done in PendingScript's operator= etc. However, this copying functionality is not effectively used. In this patch, we change this PendingScript to ref-counted class and make it noncopyable. This change makes things simple (dropping this copying functionality), and drops unnecessary addClient / removeClient calls. And we also simplify PendingScript class. Since we can offer all the members at the construction time, we do not need any setters like setCachedScript, setElement etc. This prevents us from accidentally generating the half-baked pending script. Furthermore, by changing PendingScript noncopyable & ref-counted, we easily make it observable. In this patch, we add PendingScriptClient to receive the notification from PendingScript. Previously, we directly used CachedScript in PendingScript to receive the notification. When introducing ScriptModuleGraph and making this PendingScript the container of the both CachedScript and ScriptModuleGraph, hiding the raw CachedScript operations is useful. No behavior changes. * WebCore.xcodeproj/project.pbxproj: * dom/PendingScript.cpp: (WebCore::PendingScript::create): These factory functions take all the information needed to construct the PendingScript. So the setters of PendingScript are dropped. This is better since we now do not expose any half-baked pending script accidentally. (WebCore::PendingScript::PendingScript): (WebCore::PendingScript::~PendingScript): (WebCore::PendingScript::notifyClientFinished): (WebCore::PendingScript::notifyFinished): (WebCore::PendingScript::isLoaded): When introducing ScriptModuleGraph, this will query to either CachedScript or ScriptModuleGraph. PendingScript will become the container for the both types. (WebCore::PendingScript::setClient): (WebCore::PendingScript::clearClient): PendingScript is now observable by PendingScriptClient. This avoids touching CachedScript in PendingScript directly. That is good when we introduce ScriptModuleGraph and make PendingScript the container of the both CachedScript and ScriptModuleGraph. (WebCore::PendingScript::releaseElementAndClear): Deleted. Previously, PendingScript is not ref-counted. So when we would like to say "this pending script is empty", we used the pending script with `m_element = nullptr`. This releaseElementAndClear cleared this m_element and made the pending script empty. Now, we use RefPtr and empty one is just represented by the nullptr. This function is no longer necessary. Dropped. (WebCore::PendingScript::setCachedScript): Deleted. The fields are set in the constructor. So this setter is no longer necessary. Dropped. * dom/PendingScript.h: * dom/PendingScriptClient.h: Copied from Source/WebCore/html/parser/HTMLScriptRunnerHost.h. (WebCore::PendingScriptClient::~PendingScriptClient): * dom/ScriptRunner.cpp: (WebCore::ScriptRunner::queueScriptForExecution): (WebCore::ScriptRunner::notifyScriptReady): (WebCore::ScriptRunner::timerFired): We use `std::exchange` to retrieve the RefPtr and make the original vector element nullptr. Without this, all the PendingScript is held until the iteration finishes. We keep the original semantics here that the pending script can be released per iteration. * dom/ScriptRunner.h: * html/parser/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::watchForLoad): (WebCore::HTMLDocumentParser::stopWatchingForLoad): Use PendingScript instead of touching CachedScript directly. (WebCore::HTMLDocumentParser::notifyFinished): * html/parser/HTMLDocumentParser.h: * html/parser/HTMLScriptRunner.cpp: (WebCore::HTMLScriptRunner::~HTMLScriptRunner): (WebCore::HTMLScriptRunner::sourceFromPendingScript): (WebCore::HTMLScriptRunner::isPendingScriptReady): (WebCore::HTMLScriptRunner::executeParsingBlockingScript): (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent): As the previous comment describes, we used releaseElementAndClear to make the current pending script empty. Instead of doing so, we now explicitly clear executeParsingBlockingScript (by assigning nullptr to m_parserBlockingScript). (WebCore::HTMLScriptRunner::watchForLoad): (WebCore::HTMLScriptRunner::stopWatchingForLoad): Previously, we used CachedScript::addClient directly in the m_host.watchForLoad. This means that we did not have a quick way to query whether the pending script is watched. In the old implementation, we have the `m_watchingForLoad : bool` flag in PendingScript to hold the watching status for the given pending script. This `pendingScript.setWatchingForLoad(true)` just made this flag `true`. But now, we do not use CachedScript::addClient directly. Instead, we have the
[webkit-changes] [205217] trunk/LayoutTests
Title: [205217] trunk/LayoutTests Revision 205217 Author ryanhad...@apple.com Date 2016-08-30 19:01:07 -0700 (Tue, 30 Aug 2016) Log Message Marking inspector/debugger/breakpoint-action-with-exception.html as flaky. https://bugs.webkit.org/show_bug.cgi?id=161387 Unreviewed test gardening. * platform/mac/TestExpectations: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/mac/TestExpectations Diff Modified: trunk/LayoutTests/ChangeLog (205216 => 205217) --- trunk/LayoutTests/ChangeLog 2016-08-31 01:48:22 UTC (rev 205216) +++ trunk/LayoutTests/ChangeLog 2016-08-31 02:01:07 UTC (rev 205217) @@ -1,3 +1,12 @@ +2016-08-30 Ryan Haddad+ +Marking inspector/debugger/breakpoint-action-with-exception.html as flaky. +https://bugs.webkit.org/show_bug.cgi?id=161387 + +Unreviewed test gardening. + +* platform/mac/TestExpectations: + 2016-08-30 Johan K. Jensen Web Inspector: Add resource timing model with timing information Modified: trunk/LayoutTests/platform/mac/TestExpectations (205216 => 205217) --- trunk/LayoutTests/platform/mac/TestExpectations 2016-08-31 01:48:22 UTC (rev 205216) +++ trunk/LayoutTests/platform/mac/TestExpectations 2016-08-31 02:01:07 UTC (rev 205217) @@ -1201,6 +1201,7 @@ webkit.org/b/148636 inspector/css/selector-dynamic-specificity.html [ Pass Timeout ] webkit.org/b/148636 inspector/css/selector-specificity.html [ Pass Timeout ] webkit.org/b/158742 [ Debug ] inspector/debugger/break-in-constructor-before-super.html [ Pass Timeout ] +webkit.org/b/161387 inspector/debugger/breakpoint-action-with-exception.html [ Pass Failure ] webkit.org/b/148636 inspector/dom/content-flow-content-nodes.html [ Pass Timeout ] webkit.org/b/148636 inspector/dom/content-flow-content-removal.html [ Pass Timeout ] webkit.org/b/148636 inspector/dom/content-flow-list.html [ Pass Timeout ] ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [205216] trunk/Source/JavaScriptCore
Title: [205216] trunk/Source/_javascript_Core Revision 205216 Author commit-qu...@webkit.org Date 2016-08-30 18:48:22 -0700 (Tue, 30 Aug 2016) Log Message [JSC] Some arith nodes are too pessimistic with the types supported on the fast path https://bugs.webkit.org/show_bug.cgi?id=161410 Patch by Benjamin Poulainon 2016-08-30 Reviewed by Geoffrey Garen. * dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): DoubleRep is able to convert numbers, undefined, booleans and null. I was too pessimistic when I gated the double implementations on number-or-boolean speculation. We can just let DoubleRep convert the other cases as long as it is not a Cell. Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp Diff Modified: trunk/Source/_javascript_Core/ChangeLog (205215 => 205216) --- trunk/Source/_javascript_Core/ChangeLog 2016-08-31 01:34:29 UTC (rev 205215) +++ trunk/Source/_javascript_Core/ChangeLog 2016-08-31 01:48:22 UTC (rev 205216) @@ -1,3 +1,17 @@ +2016-08-30 Benjamin Poulain + +[JSC] Some arith nodes are too pessimistic with the types supported on the fast path +https://bugs.webkit.org/show_bug.cgi?id=161410 + +Reviewed by Geoffrey Garen. + +* dfg/DFGFixupPhase.cpp: +(JSC::DFG::FixupPhase::fixupNode): +DoubleRep is able to convert numbers, undefined, booleans and null. +I was too pessimistic when I gated the double implementations +on number-or-boolean speculation. We can just let DoubleRep convert +the other cases as long as it is not a Cell. + 2016-08-30 Chris Dumez Unreviewed, fix build after r205205. Modified: trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp (205215 => 205216) --- trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp 2016-08-31 01:34:29 UTC (rev 205215) +++ trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp 2016-08-31 01:48:22 UTC (rev 205216) @@ -343,7 +343,7 @@ break; } -if (node->child1()->shouldSpeculateNumberOrBoolean()) { +if (node->child1()->shouldSpeculateNotCell()) { fixDoubleOrBooleanEdge(node->child1()); node->clearFlags(NodeMustGenerate); } else @@ -400,7 +400,7 @@ case ArithSin: case ArithSqrt: { Edge& child1 = node->child1(); -if (child1->shouldSpeculateNumberOrBoolean()) { +if (child1->shouldSpeculateNotCell()) { fixDoubleOrBooleanEdge(child1); node->clearFlags(NodeMustGenerate); } else ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [205215] trunk/Source/bmalloc
Title: [205215] trunk/Source/bmalloc Revision 205215 Author utatane@gmail.com Date 2016-08-30 18:34:29 -0700 (Tue, 30 Aug 2016) Log Message Unreviewed, build fix for GCC ports std::forward is declared in header. * bmalloc/ScopeExit.h: Modified Paths trunk/Source/bmalloc/ChangeLog trunk/Source/bmalloc/bmalloc/ScopeExit.h Diff Modified: trunk/Source/bmalloc/ChangeLog (205214 => 205215) --- trunk/Source/bmalloc/ChangeLog 2016-08-31 01:28:35 UTC (rev 205214) +++ trunk/Source/bmalloc/ChangeLog 2016-08-31 01:34:29 UTC (rev 205215) @@ -1,3 +1,11 @@ +2016-08-30 Yusuke Suzuki+ +Unreviewed, build fix for GCC ports + +std::forward is declared in header. + +* bmalloc/ScopeExit.h: + 2016-08-30 Geoffrey Garen bmalloc: speed up the lock slow path Modified: trunk/Source/bmalloc/bmalloc/ScopeExit.h (205214 => 205215) --- trunk/Source/bmalloc/bmalloc/ScopeExit.h 2016-08-31 01:28:35 UTC (rev 205214) +++ trunk/Source/bmalloc/bmalloc/ScopeExit.h 2016-08-31 01:34:29 UTC (rev 205215) @@ -24,6 +24,7 @@ */ #include +#include namespace bmalloc { ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [205214] trunk/Source/WebCore
Title: [205214] trunk/Source/WebCore Revision 205214 Author commit-qu...@webkit.org Date 2016-08-30 18:28:35 -0700 (Tue, 30 Aug 2016) Log Message "pluginReplacementEnabled" should be a Setting, not a RuntimeEnabledFeature https://bugs.webkit.org/show_bug.cgi?id=161416 Patch by Ricky Mondelloon 2016-08-30 Reviewed by Simon Fraser. Mostly mechanical. Tested by running LayoutTests/plugins/quicktime-plugin-replacement.html and manually toggling defaultPluginReplacementEnabled and observing a behavior change. * bindings/generic/RuntimeEnabledFeatures.cpp: (WebCore::RuntimeEnabledFeatures::reset): Purged of the pluginReplacementEnabled setting. * bindings/generic/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setPluginReplacementEnabled): Deleted. (WebCore::RuntimeEnabledFeatures::pluginReplacementEnabled): Deleted. * html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::requestObject): Use the setting. * page/Settings.cpp: Supply different values for iOS and other platforms, matching the RuntimeEnabledFeature values, enabled for iOS and disabled otherwise. * page/Settings.in: Declare the setting. * testing/InternalSettings.cpp: (WebCore::InternalSettings::Backup::Backup): Use the setting. (WebCore::InternalSettings::Backup::restoreTo): Ditto. (WebCore::InternalSettings::setPluginReplacementEnabled): Ditto. * testing/InternalSettings.h: Can now throw an exception, like other Settings-backed members. * testing/InternalSettings.idl: Declare this as possibly throwing an exception. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h trunk/Source/WebCore/html/HTMLPlugInElement.cpp trunk/Source/WebCore/page/Settings.cpp trunk/Source/WebCore/page/Settings.in trunk/Source/WebCore/testing/InternalSettings.cpp trunk/Source/WebCore/testing/InternalSettings.h trunk/Source/WebCore/testing/InternalSettings.idl Diff Modified: trunk/Source/WebCore/ChangeLog (205213 => 205214) --- trunk/Source/WebCore/ChangeLog 2016-08-31 00:37:59 UTC (rev 205213) +++ trunk/Source/WebCore/ChangeLog 2016-08-31 01:28:35 UTC (rev 205214) @@ -1,5 +1,33 @@ 2016-08-30 Ricky Mondello +"pluginReplacementEnabled" should be a Setting, not a RuntimeEnabledFeature +https://bugs.webkit.org/show_bug.cgi?id=161416 + + +Reviewed by Simon Fraser. + +Mostly mechanical. Tested by running LayoutTests/plugins/quicktime-plugin-replacement.html and manually toggling +defaultPluginReplacementEnabled and observing a behavior change. + +* bindings/generic/RuntimeEnabledFeatures.cpp: +(WebCore::RuntimeEnabledFeatures::reset): Purged of the pluginReplacementEnabled setting. +* bindings/generic/RuntimeEnabledFeatures.h: +(WebCore::RuntimeEnabledFeatures::setPluginReplacementEnabled): Deleted. +(WebCore::RuntimeEnabledFeatures::pluginReplacementEnabled): Deleted. +* html/HTMLPlugInElement.cpp: +(WebCore::HTMLPlugInElement::requestObject): Use the setting. +* page/Settings.cpp: Supply different values for iOS and other platforms, matching the RuntimeEnabledFeature values, +enabled for iOS and disabled otherwise. +* page/Settings.in: Declare the setting. +* testing/InternalSettings.cpp: +(WebCore::InternalSettings::Backup::Backup): Use the setting. +(WebCore::InternalSettings::Backup::restoreTo): Ditto. +(WebCore::InternalSettings::setPluginReplacementEnabled): Ditto. +* testing/InternalSettings.h: Can now throw an exception, like other Settings-backed members. +* testing/InternalSettings.idl: Declare this as possibly throwing an exception. + +2016-08-30 Ricky Mondello + YouTubePluginReplacementTest's URL transformation logic should have tests https://bugs.webkit.org/show_bug.cgi?id=161406 Modified: trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp (205213 => 205214) --- trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp 2016-08-31 00:37:59 UTC (rev 205213) +++ trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp 2016-08-31 01:28:35 UTC (rev 205214) @@ -57,11 +57,6 @@ m_isDeviceOrientationEnabled = true; m_isLinkPreloadEnabled = false; m_isLangAttributeAwareFormControlUIEnabled = false; -#if PLATFORM(IOS) -m_isPluginReplacementEnabled = true; -#else -m_isPluginReplacementEnabled = false; -#endif m_isResourceTimingEnabled = false; #if ENABLE(INDEXED_DATABASE) m_isIndexedDBEnabled = true; Modified: trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h (205213 => 205214) --- trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h 2016-08-31 00:37:59 UTC (rev 205213) +++ trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h 2016-08-31
[webkit-changes] [205213] trunk/Source/WebKit2
Title: [205213] trunk/Source/WebKit2 Revision 205213 Author ander...@apple.com Date 2016-08-30 17:37:59 -0700 (Tue, 30 Aug 2016) Log Message Try to fix the 32-bit build. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::deleteWebsiteData): (WebKit::WebProcessProxy::deleteWebsiteDataForOrigins): * UIProcess/WebProcessProxy.h: Modified Paths trunk/Source/WebKit2/ChangeLog trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp trunk/Source/WebKit2/UIProcess/WebProcessProxy.h Diff Modified: trunk/Source/WebKit2/ChangeLog (205212 => 205213) --- trunk/Source/WebKit2/ChangeLog 2016-08-31 00:34:39 UTC (rev 205212) +++ trunk/Source/WebKit2/ChangeLog 2016-08-31 00:37:59 UTC (rev 205213) @@ -1,5 +1,14 @@ 2016-08-30 Anders Carlsson+Try to fix the 32-bit build. + +* UIProcess/WebProcessProxy.cpp: +(WebKit::WebProcessProxy::deleteWebsiteData): +(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins): +* UIProcess/WebProcessProxy.h: + +2016-08-30 Anders Carlsson + Switch more messages over to Connection::sendWithReply https://bugs.webkit.org/show_bug.cgi?id=161415 Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (205212 => 205213) --- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2016-08-31 00:34:39 UTC (rev 205212) +++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2016-08-31 00:37:59 UTC (rev 205213) @@ -722,7 +722,7 @@ }); } -void WebProcessProxy::deleteWebsiteData(SessionID sessionID, OptionSet dataTypes, std::chrono::system_clock::time_point modifiedSince, std::function completionHandler) +void WebProcessProxy::deleteWebsiteData(SessionID sessionID, OptionSet dataTypes, std::chrono::system_clock::time_point modifiedSince, Function completionHandler) { ASSERT(canSendMessage()); @@ -735,7 +735,7 @@ }); } -void WebProcessProxy::deleteWebsiteDataForOrigins(SessionID sessionID, OptionSet dataTypes, const Vector & origins, std::function completionHandler) +void WebProcessProxy::deleteWebsiteDataForOrigins(SessionID sessionID, OptionSet dataTypes, const Vector & origins, Function completionHandler) { ASSERT(canSendMessage()); @@ -746,7 +746,7 @@ for (auto& origin : origins) originData.append(SecurityOriginData::fromSecurityOrigin(*origin)); -connection()->sendWithReply(Messages::WebProcess::DeleteWebsiteDataForOrigins(sessionID, dataTypes, originData), 0, RunLoop::main(), [this, token, completionHandler, sessionID](auto reply) { +connection()->sendWithReply(Messages::WebProcess::DeleteWebsiteDataForOrigins(sessionID, dataTypes, originData), 0, RunLoop::main(), [this, token, completionHandler = WTFMove(completionHandler), sessionID](auto reply) { completionHandler(); RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), "%p - WebProcessProxy is releasing a background assertion because the Web process is done deleting Website data for several origins", this); }); Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.h (205212 => 205213) --- trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2016-08-31 00:34:39 UTC (rev 205212) +++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2016-08-31 00:37:59 UTC (rev 205213) @@ -120,8 +120,8 @@ void releasePageCache(); void fetchWebsiteData(WebCore::SessionID, OptionSet, Function completionHandler); -void deleteWebsiteData(WebCore::SessionID, OptionSet, std::chrono::system_clock::time_point modifiedSince, std::function completionHandler); -void deleteWebsiteDataForOrigins(WebCore::SessionID, OptionSet, const Vector & origins, std::function completionHandler); +void deleteWebsiteData(WebCore::SessionID, OptionSet, std::chrono::system_clock::time_point modifiedSince, Function completionHandler); +void deleteWebsiteDataForOrigins(WebCore::SessionID, OptionSet, const Vector & origins, Function completionHandler); void enableSuddenTermination(); void disableSuddenTermination(); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [205212] trunk
Title: [205212] trunk Revision 205212 Author commit-qu...@webkit.org Date 2016-08-30 17:34:39 -0700 (Tue, 30 Aug 2016) Log Message YouTubePluginReplacementTest's URL transformation logic should have tests https://bugs.webkit.org/show_bug.cgi?id=161406 Patch by Ricky Mondelloon 2016-08-30 Reviewed by Eric Carlson. Source/WebCore: Refactor most of YouTubePluginReplacement::youTubeURL into a static method that can be used by TestWebKitAPI. * Modules/plugins/YouTubePluginReplacement.cpp: (WebCore::YouTubePluginReplacement::youTubeURL): Now implemented in terms of youTubeURLFromAbsoluteURL. (WebCore::YouTubePluginReplacement::youTubeURLFromAbsoluteURL): Absorbs most of youTubeURL. * Modules/plugins/YouTubePluginReplacement.h: Declare a public method, for the benefit of testing. * WebCore.xcodeproj/project.pbxproj: Make some heads private for TestWebKitAPI's benefit. Tools: Add some very basic tests. Future patches should expand on these to find and fix bugs. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add YouTubePluginReplacement.cpp. * TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp: Added. (TestWebKitAPI::test): Added. (TestWebKitAPI::TEST_F): Added. Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj Added Paths trunk/Tools/TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (205211 => 205212) --- trunk/Source/WebCore/ChangeLog 2016-08-31 00:27:27 UTC (rev 205211) +++ trunk/Source/WebCore/ChangeLog 2016-08-31 00:34:39 UTC (rev 205212) @@ -1,3 +1,19 @@ +2016-08-30 Ricky Mondello + +YouTubePluginReplacementTest's URL transformation logic should have tests +https://bugs.webkit.org/show_bug.cgi?id=161406 + + +Reviewed by Eric Carlson. + +Refactor most of YouTubePluginReplacement::youTubeURL into a static method that can be used by TestWebKitAPI. + +* Modules/plugins/YouTubePluginReplacement.cpp: +(WebCore::YouTubePluginReplacement::youTubeURL): Now implemented in terms of youTubeURLFromAbsoluteURL. +(WebCore::YouTubePluginReplacement::youTubeURLFromAbsoluteURL): Absorbs most of youTubeURL. +* Modules/plugins/YouTubePluginReplacement.h: Declare a public method, for the benefit of testing. +* WebCore.xcodeproj/project.pbxproj: Make some heads private for TestWebKitAPI's benefit. + 2016-08-30 Frederic Wang Move some code from MathMLElement to MathMLPresentationElement Modified: trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp (205211 => 205212) --- trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp 2016-08-31 00:27:27 UTC (rev 205211) +++ trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp 2016-08-31 00:34:39 UTC (rev 205212) @@ -283,7 +283,11 @@ String YouTubePluginReplacement::youTubeURL(const String& srcString) { URL srcURL = m_parentElement->document().completeURL(stripLeadingAndTrailingHTMLSpaces(srcString)); +return youTubeURLFromAbsoluteURL(srcURL, srcString); +} +String YouTubePluginReplacement::youTubeURLFromAbsoluteURL(const URL& srcURL, const String& srcString) +{ bool isYouTubeShortenedURL = false; URL youTubeURL = processAndCreateYouTubeURL(srcURL, isYouTubeShortenedURL); if (srcURL.isEmpty() || youTubeURL.isEmpty()) Modified: trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h (205211 => 205212) --- trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h 2016-08-31 00:27:27 UTC (rev 205211) +++ trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h 2016-08-31 00:34:39 UTC (rev 205212) @@ -38,6 +38,8 @@ typedef HashMap KeyValueMap; +WEBCORE_EXPORT static String youTubeURLFromAbsoluteURL(const URL& srcURL, const String& srcString); + private: YouTubePluginReplacement(HTMLPlugInElement&, const Vector& paramNames, const Vector& paramValues); static Ref create(HTMLPlugInElement&, const Vector& paramNames, const Vector& paramValues); Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (205211 => 205212) --- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2016-08-31 00:27:27 UTC (rev 205211) +++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2016-08-31 00:34:39 UTC (rev 205212) @@ -139,7 +139,7 @@ 07297FA71C1881C5003F0735 /* UserMediaPermissionCheck.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07297FA51C1881C5003F0735 /* UserMediaPermissionCheck.cpp */; }; 07297FA81C1881C5003F0735 /* UserMediaPermissionCheck.h in Headers */ = {isa = PBXBuildFile; fileRef = 07297FA61C1881C5003F0735 /*
[webkit-changes] [205211] trunk
Title: [205211] trunk Revision 205211 Author commit-qu...@webkit.org Date 2016-08-30 17:27:27 -0700 (Tue, 30 Aug 2016) Log Message Web Inspector: Add resource timing model with timing information https://bugs.webkit.org/show_bug.cgi?id=161314 Patch by Johan K. Jensenon 2016-08-30 Reviewed by Joseph Pecoraro. Source/WebInspectorUI: Add a resource timing data model and populate it with info from the response from the backend. * UserInterface/Controllers/FrameResourceManager.js: (WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache): (WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse): Forward timing data from response to Resource.js. * UserInterface/Main.html: Add new ResourceTimingData.js. * UserInterface/Test.html: Add new ResourceTimingData.js. * UserInterface/Models/Resource.js: (WebInspector.Resource): Instantiate ResourceTimingData object. (WebInspector.Resource.prototype.get timing): (WebInspector.Resource.prototype.get firstTimestamp): (WebInspector.Resource.prototype.get lastTimestamp): (WebInspector.Resource.prototype.get duration): (WebInspector.Resource.prototype.get latency): (WebInspector.Resource.prototype.get receiveDuration): Update getters to use new timing model. (WebInspector.Resource.prototype.updateForResponse): Update timing object with info from response. (WebInspector.Resource.prototype.markAsFinished): Log response end time. * UserInterface/Models/ResourceTimelineRecord.js: (WebInspector.ResourceTimelineRecord.prototype.get startTime): (WebInspector.ResourceTimelineRecord.prototype.get activeStartTime): (WebInspector.ResourceTimelineRecord.prototype.get endTime): Update getters to use new timing model. * UserInterface/Models/ResourceTimingData.js: Added. (WebInspector.ResourceTimingData): (WebInspector.ResourceTimingData.fromPayload): (WebInspector.ResourceTimingData.prototype.get startTime): (WebInspector.ResourceTimingData.prototype.get domainLookupStart): (WebInspector.ResourceTimingData.prototype.get domainLookupEnd): (WebInspector.ResourceTimingData.prototype.get connectStart): (WebInspector.ResourceTimingData.prototype.get connectEnd): (WebInspector.ResourceTimingData.prototype.get secureConnectionStart): (WebInspector.ResourceTimingData.prototype.get requestStart): (WebInspector.ResourceTimingData.prototype.get responseStart): (WebInspector.ResourceTimingData.prototype.get responseEnd): (WebInspector.ResourceTimingData.prototype.markResponseEndTime): Add new ResourceTimingData model and fall back on old timestamps for when data is unavailable. LayoutTests: Add tests for the Resource Timing Data model. * http/tests/inspector/network/resource-timing-expected.txt: Added. * http/tests/inspector/network/resource-timing.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js trunk/Source/WebInspectorUI/UserInterface/Main.html trunk/Source/WebInspectorUI/UserInterface/Models/Resource.js trunk/Source/WebInspectorUI/UserInterface/Models/ResourceTimelineRecord.js trunk/Source/WebInspectorUI/UserInterface/Test.html Added Paths trunk/LayoutTests/http/tests/inspector/network/resource-timing-expected.txt trunk/LayoutTests/http/tests/inspector/network/resource-timing.html trunk/Source/WebInspectorUI/UserInterface/Models/ResourceTimingData.js Diff Modified: trunk/LayoutTests/ChangeLog (205210 => 205211) --- trunk/LayoutTests/ChangeLog 2016-08-31 00:15:50 UTC (rev 205210) +++ trunk/LayoutTests/ChangeLog 2016-08-31 00:27:27 UTC (rev 205211) @@ -1,3 +1,15 @@ +2016-08-30 Johan K. Jensen + +Web Inspector: Add resource timing model with timing information +https://bugs.webkit.org/show_bug.cgi?id=161314 + +Reviewed by Joseph Pecoraro. + +Add tests for the Resource Timing Data model. + +* http/tests/inspector/network/resource-timing-expected.txt: Added. +* http/tests/inspector/network/resource-timing.html: Added. + 2016-08-30 Chris Dumez Object.setPrototypeOf() should throw when used on a cross-origin Window / Location object Added: trunk/LayoutTests/http/tests/inspector/network/resource-timing-expected.txt (0 => 205211) --- trunk/LayoutTests/http/tests/inspector/network/resource-timing-expected.txt (rev 0) +++ trunk/LayoutTests/http/tests/inspector/network/resource-timing-expected.txt 2016-08-31 00:27:27 UTC (rev 205211) @@ -0,0 +1,19 @@ +Tests that a resource has timing information. + + +== Running test suite: ResourceTimingData +-- Running test case: CheckResourceTimingInformationForResource +PASS: Newly added resource should have a resource timing model. +PASS: Newly added resource should have a start time. +PASS: Resource should now contain timing information. +PASS: Resource should have a start time. +PASS: Resource should have
[webkit-changes] [205210] trunk/Source/bmalloc
Title: [205210] trunk/Source/bmalloc Revision 205210 Author gga...@apple.com Date 2016-08-30 17:15:50 -0700 (Tue, 30 Aug 2016) Log Message bmalloc: speed up the lock slow path https://bugs.webkit.org/show_bug.cgi?id=161058 Unreviewed roll-in - with regression fixed. Revert to using yield() instead of swtch() because very low priority background tasks can cause priority inversion and deadlock. In the network process, that happened with com.apple.WebKit.Cache.Storage.serialBackground. Still a big speedup on MallocBench. * bmalloc.xcodeproj/project.pbxproj: * bmalloc/ScopeExit.h: Added. (bmalloc::ScopeExit::ScopeExit): (bmalloc::ScopeExit::~ScopeExit): (bmalloc::makeScopeExit): * bmalloc/StaticMutex.cpp: (bmalloc::StaticMutex::lockSlowCase): * bmalloc/StaticMutex.h: (bmalloc::StaticMutex::init): Modified Paths trunk/Source/bmalloc/ChangeLog trunk/Source/bmalloc/bmalloc/StaticMutex.cpp trunk/Source/bmalloc/bmalloc/StaticMutex.h trunk/Source/bmalloc/bmalloc.xcodeproj/project.pbxproj Added Paths trunk/Source/bmalloc/bmalloc/ScopeExit.h Diff Modified: trunk/Source/bmalloc/ChangeLog (205209 => 205210) --- trunk/Source/bmalloc/ChangeLog 2016-08-31 00:11:33 UTC (rev 205209) +++ trunk/Source/bmalloc/ChangeLog 2016-08-31 00:15:50 UTC (rev 205210) @@ -1,3 +1,26 @@ +2016-08-30 Geoffrey Garen+ +bmalloc: speed up the lock slow path +https://bugs.webkit.org/show_bug.cgi?id=161058 + +Unreviewed roll-in - with regression fixed. + +Revert to using yield() instead of swtch() because very low priority +background tasks can cause priority inversion and deadlock. In the +network process, that happened with com.apple.WebKit.Cache.Storage.serialBackground. + +Still a big speedup on MallocBench. + +* bmalloc.xcodeproj/project.pbxproj: +* bmalloc/ScopeExit.h: Added. +(bmalloc::ScopeExit::ScopeExit): +(bmalloc::ScopeExit::~ScopeExit): +(bmalloc::makeScopeExit): +* bmalloc/StaticMutex.cpp: +(bmalloc::StaticMutex::lockSlowCase): +* bmalloc/StaticMutex.h: +(bmalloc::StaticMutex::init): + 2016-08-26 Geoffrey Garen Unreviewed build fix. Added: trunk/Source/bmalloc/bmalloc/ScopeExit.h (0 => 205210) --- trunk/Source/bmalloc/bmalloc/ScopeExit.h (rev 0) +++ trunk/Source/bmalloc/bmalloc/ScopeExit.h 2016-08-31 00:15:50 UTC (rev 205210) @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2016 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +namespace bmalloc { + +template +class ScopeExit { +public: +explicit ScopeExit(ExitFunction&& exitFunction) +: m_exitFunction(exitFunction) +{ +} + +~ScopeExit() +{ +m_exitFunction(); +} + +private: +ExitFunction m_exitFunction; +}; + +template +ScopeExit makeScopeExit(ExitFunction&& exitFunction) +{ +return ScopeExit(std::forward(exitFunction)); +} + +} // namespace bmalloc Modified: trunk/Source/bmalloc/bmalloc/StaticMutex.cpp (205209 => 205210) --- trunk/Source/bmalloc/bmalloc/StaticMutex.cpp 2016-08-31 00:11:33 UTC (rev 205209) +++ trunk/Source/bmalloc/bmalloc/StaticMutex.cpp 2016-08-31 00:15:50 UTC (rev 205210) @@ -23,6 +23,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include "ScopeExit.h" #include "StaticMutex.h" #include @@ -30,6 +31,21 @@ void StaticMutex::lockSlowCase() { +// The longest critical section in bmalloc is much shorter than the +// time it takes to make a system call to yield to the OS scheduler. +// So, we try again a lot before we yield. +static const size_t aLot = 256; +
[webkit-changes] [205209] trunk/Source/WebKit2
Title: [205209] trunk/Source/WebKit2 Revision 205209 Author ander...@apple.com Date 2016-08-30 17:11:33 -0700 (Tue, 30 Aug 2016) Log Message Switch more messages over to Connection::sendWithReply https://bugs.webkit.org/show_bug.cgi?id=161415 Reviewed by Tim Horton. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::~WebProcessProxy): (WebKit::WebProcessProxy::processWillShutDown): (WebKit::WebProcessProxy::canTerminateChildProcess): (WebKit::WebProcessProxy::deleteWebsiteData): (WebKit::WebProcessProxy::deleteWebsiteDataForOrigins): (WebKit::generateCallbackID): Deleted. (WebKit::WebProcessProxy::didDeleteWebsiteData): Deleted. (WebKit::WebProcessProxy::didDeleteWebsiteDataForOrigins): Deleted. * UIProcess/WebProcessProxy.h: * UIProcess/WebProcessProxy.messages.in: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::deleteWebsiteData): (WebKit::WebProcess::deleteWebsiteDataForOrigins): * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: Modified Paths trunk/Source/WebKit2/ChangeLog trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp trunk/Source/WebKit2/UIProcess/WebProcessProxy.h trunk/Source/WebKit2/UIProcess/WebProcessProxy.messages.in trunk/Source/WebKit2/WebProcess/WebProcess.cpp trunk/Source/WebKit2/WebProcess/WebProcess.h trunk/Source/WebKit2/WebProcess/WebProcess.messages.in Diff Modified: trunk/Source/WebKit2/ChangeLog (205208 => 205209) --- trunk/Source/WebKit2/ChangeLog 2016-08-30 23:01:13 UTC (rev 205208) +++ trunk/Source/WebKit2/ChangeLog 2016-08-31 00:11:33 UTC (rev 205209) @@ -1,5 +1,29 @@ 2016-08-30 Anders Carlsson+Switch more messages over to Connection::sendWithReply +https://bugs.webkit.org/show_bug.cgi?id=161415 + +Reviewed by Tim Horton. + +* UIProcess/WebProcessProxy.cpp: +(WebKit::WebProcessProxy::~WebProcessProxy): +(WebKit::WebProcessProxy::processWillShutDown): +(WebKit::WebProcessProxy::canTerminateChildProcess): +(WebKit::WebProcessProxy::deleteWebsiteData): +(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins): +(WebKit::generateCallbackID): Deleted. +(WebKit::WebProcessProxy::didDeleteWebsiteData): Deleted. +(WebKit::WebProcessProxy::didDeleteWebsiteDataForOrigins): Deleted. +* UIProcess/WebProcessProxy.h: +* UIProcess/WebProcessProxy.messages.in: +* WebProcess/WebProcess.cpp: +(WebKit::WebProcess::deleteWebsiteData): +(WebKit::WebProcess::deleteWebsiteDataForOrigins): +* WebProcess/WebProcess.h: +* WebProcess/WebProcess.messages.in: + +2016-08-30 Anders Carlsson + Add Connection::sendWithReply https://bugs.webkit.org/show_bug.cgi?id=161399 Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (205208 => 205209) --- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2016-08-30 23:01:13 UTC (rev 205208) +++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2016-08-31 00:11:33 UTC (rev 205209) @@ -80,13 +80,6 @@ return ++uniquePageID; } -static uint64_t generateCallbackID() -{ -static uint64_t callbackID; - -return ++callbackID; -} - static WebProcessProxy::WebPageProxyMap& globalPageMap() { ASSERT(RunLoop::isMain()); @@ -115,8 +108,6 @@ WebProcessProxy::~WebProcessProxy() { -ASSERT(m_pendingDeleteWebsiteDataCallbacks.isEmpty()); -ASSERT(m_pendingDeleteWebsiteDataForOriginsCallbacks.isEmpty()); ASSERT(m_pageURLRetainCountMap.isEmpty()); if (m_webConnection) @@ -163,14 +154,6 @@ { ASSERT_UNUSED(connection, this->connection() == ); -for (const auto& callback : m_pendingDeleteWebsiteDataCallbacks.values()) -callback(); -m_pendingDeleteWebsiteDataCallbacks.clear(); - -for (const auto& callback : m_pendingDeleteWebsiteDataForOriginsCallbacks.values()) -callback(); -m_pendingDeleteWebsiteDataForOriginsCallbacks.clear(); - for (auto& page : m_pageMap.values()) page->webProcessWillShutDown(); @@ -683,9 +666,6 @@ if (!m_pageMap.isEmpty()) return false; -if (!m_pendingDeleteWebsiteDataCallbacks.isEmpty()) -return false; - if (!m_processPool->shouldTerminate(this)) return false; @@ -701,18 +681,6 @@ } } -void WebProcessProxy::didDeleteWebsiteData(uint64_t callbackID) -{ -auto callback = m_pendingDeleteWebsiteDataCallbacks.take(callbackID); -callback(); -} - -void WebProcessProxy::didDeleteWebsiteDataForOrigins(uint64_t callbackID) -{ -auto callback = m_pendingDeleteWebsiteDataForOriginsCallbacks.take(callbackID); -callback(); -} - void WebProcessProxy::updateTextCheckerState() { if (canSendMessage()) @@ -758,15 +726,13 @@ { ASSERT(canSendMessage()); -uint64_t callbackID = generateCallbackID(); auto token = throttler().backgroundActivityToken(); RELEASE_LOG_IF(sessionID.isAlwaysOnLoggingAllowed(), "%p - WebProcessProxy is
[webkit-changes] [205208] trunk/Source/JavaScriptCore
Title: [205208] trunk/Source/_javascript_Core Revision 205208 Author cdu...@apple.com Date 2016-08-30 16:01:13 -0700 (Tue, 30 Aug 2016) Log Message Unreviewed, fix build after r205205. * runtime/ObjectConstructor.cpp: (JSC::objectConstructorSetPrototypeOf): Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/runtime/ObjectConstructor.cpp Diff Modified: trunk/Source/_javascript_Core/ChangeLog (205207 => 205208) --- trunk/Source/_javascript_Core/ChangeLog 2016-08-30 22:59:12 UTC (rev 205207) +++ trunk/Source/_javascript_Core/ChangeLog 2016-08-30 23:01:13 UTC (rev 205208) @@ -1,5 +1,12 @@ 2016-08-30 Chris Dumez+Unreviewed, fix build after r205205. + +* runtime/ObjectConstructor.cpp: +(JSC::objectConstructorSetPrototypeOf): + +2016-08-30 Chris Dumez + Object.setPrototypeOf() should throw when used on a cross-origin Window / Location object https://bugs.webkit.org/show_bug.cgi?id=161396 Modified: trunk/Source/_javascript_Core/runtime/ObjectConstructor.cpp (205207 => 205208) --- trunk/Source/_javascript_Core/runtime/ObjectConstructor.cpp 2016-08-30 22:59:12 UTC (rev 205207) +++ trunk/Source/_javascript_Core/runtime/ObjectConstructor.cpp 2016-08-30 23:01:13 UTC (rev 205208) @@ -233,7 +233,7 @@ return JSValue::encode(objectValue); if (!checkProtoSetterAccessAllowed(exec, object)) { -throwTypeError(exec, ASCIILiteral("Permission denied")); +throwTypeError(exec, scope, ASCIILiteral("Permission denied")); return JSValue::encode(objectValue); } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [205207] trunk/Source/WebKit2
Title: [205207] trunk/Source/WebKit2 Revision 205207 Author ander...@apple.com Date 2016-08-30 15:59:12 -0700 (Tue, 30 Aug 2016) Log Message Add Connection::sendWithReply https://bugs.webkit.org/show_bug.cgi?id=161399 Reviewed by Tim Horton. Connection::sendWithReply makes it easy to send a message and process its reply asynchronously on a given WorkQueue or RunLoop. The reply handler is guaranteed to be called. If the reply is successfully received, it will consist of an std::tuple with the arguments, otherwise it will be called with Nullopt. * Platform/IPC/Connection.cpp: (IPC::Connection::invalidate): Go through all reply handlers and dispatch them with a null Decoder. (IPC::Connection::sendMessageWithReply): Add the reply handler to the m_replyHandlers hash map, and send the message. (IPC::Connection::processIncomingSyncReply): Check if the incoming reply has an entry in m_replyHandlers. If it does, dispatch its handler using the given dispatcher. (IPC::Connection::connectionDidClose): Go through all reply handlers and dispatch them with a null Decoder. * Platform/IPC/Connection.h: (IPC::Connection::sendWithReply): Encode the message (we use the sync message ID infrastructure for this), then call sendMessageWithReply with a reply handler that decodes the reply and calls the real reply handler. * Platform/IPC/HandleMessage.h: Forward declare Connection. * UIProcess/Databases/DatabaseProcessProxy.h: * UIProcess/Network/NetworkProcessProxy.h: Forward declare WebsiteData. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::~WebProcessProxy): (WebKit::WebProcessProxy::processWillShutDown): Remove m_pendingFetchWebsiteDataCallbacks. (WebKit::WebProcessProxy::fetchWebsiteData): Use Connection::sendWithReply. (WebKit::WebProcessProxy::didFetchWebsiteData): Deleted. * UIProcess/WebProcessProxy.h: Remove members. * UIProcess/WebProcessProxy.messages.in: Remove DidFetchWebsiteData. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::fetchWebsiteData): * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: Update the FetchWebsiteData message to have a reply parameter. Modified Paths trunk/Source/WebKit2/ChangeLog trunk/Source/WebKit2/Platform/IPC/Connection.cpp trunk/Source/WebKit2/Platform/IPC/Connection.h trunk/Source/WebKit2/Platform/IPC/HandleMessage.h trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp trunk/Source/WebKit2/UIProcess/WebProcessProxy.h trunk/Source/WebKit2/UIProcess/WebProcessProxy.messages.in trunk/Source/WebKit2/WebProcess/WebProcess.cpp trunk/Source/WebKit2/WebProcess/WebProcess.h trunk/Source/WebKit2/WebProcess/WebProcess.messages.in Diff Modified: trunk/Source/WebKit2/ChangeLog (205206 => 205207) --- trunk/Source/WebKit2/ChangeLog 2016-08-30 22:54:41 UTC (rev 205206) +++ trunk/Source/WebKit2/ChangeLog 2016-08-30 22:59:12 UTC (rev 205207) @@ -1,3 +1,61 @@ +2016-08-30 Anders Carlsson+ +Add Connection::sendWithReply +https://bugs.webkit.org/show_bug.cgi?id=161399 + +Reviewed by Tim Horton. + +Connection::sendWithReply makes it easy to send a message and process its reply asynchronously on a given WorkQueue or RunLoop. +The reply handler is guaranteed to be called. If the reply is successfully received, it will consist of an std::tuple with the arguments, +otherwise it will be called with Nullopt. + +* Platform/IPC/Connection.cpp: +(IPC::Connection::invalidate): +Go through all reply handlers and dispatch them with a null Decoder. + +(IPC::Connection::sendMessageWithReply): +Add the reply handler to the m_replyHandlers hash map, and send the message. + +(IPC::Connection::processIncomingSyncReply): +Check if the incoming reply has an entry in m_replyHandlers. If it does, dispatch its handler using the given dispatcher. + +(IPC::Connection::connectionDidClose): +Go through all reply handlers and dispatch them with a null Decoder. + +* Platform/IPC/Connection.h: +(IPC::Connection::sendWithReply): +Encode the message (we use the sync message ID infrastructure for this), then call sendMessageWithReply with a reply handler that +decodes the reply and calls the real reply handler. + +* Platform/IPC/HandleMessage.h: +Forward declare Connection. + +* UIProcess/Databases/DatabaseProcessProxy.h: +* UIProcess/Network/NetworkProcessProxy.h: +Forward declare WebsiteData. + +* UIProcess/WebProcessProxy.cpp: +(WebKit::WebProcessProxy::~WebProcessProxy): +(WebKit::WebProcessProxy::processWillShutDown): +Remove m_pendingFetchWebsiteDataCallbacks. + +(WebKit::WebProcessProxy::fetchWebsiteData): +Use Connection::sendWithReply. + +(WebKit::WebProcessProxy::didFetchWebsiteData):
[webkit-changes] [205206] trunk/Source/WebCore
Title: [205206] trunk/Source/WebCore Revision 205206 Author commit-qu...@webkit.org Date 2016-08-30 15:54:41 -0700 (Tue, 30 Aug 2016) Log Message Move some code from MathMLElement to MathMLPresentationElement https://bugs.webkit.org/show_bug.cgi?id=161377 Patch by Frederic Wangon 2016-08-30 Reviewed by Darin Adler. The following code is only used in presentation MathML classes. We then move it from MathMLElement to MathMLPresentationElement: - testing whether a child is a phrasing/flow element. - parsing of length attributes. - parsing of boolean attributes. - parsing of mathvariant attributes. No new tests, already covered by existing tests. * mathml/MathMLElement.cpp: (WebCore::MathMLElement::isPhrasingContent): Deleted. (WebCore::MathMLElement::isFlowContent): Deleted. (WebCore::MathMLElement::parseNumberAndUnit): Deleted. (WebCore::MathMLElement::parseNamedSpace): Deleted. (WebCore::MathMLElement::parseMathMLLength): Deleted. (WebCore::MathMLElement::cachedMathMLLength): Deleted. (WebCore::MathMLElement::cachedBooleanAttribute): Deleted. (WebCore::MathMLElement::parseMathVariantAttribute): Deleted. (WebCore::MathMLElement::specifiedDisplayStyle): Deleted. (WebCore::MathMLElement::specifiedMathVariant): Deleted. * mathml/MathMLElement.h: (WebCore::MathMLElement::specifiedDisplayStyle): (WebCore::MathMLElement::specifiedMathVariant): (WebCore::MathMLElement::acceptsDisplayStyleAttribute): Deleted. (WebCore::MathMLElement::acceptsMathVariantAttribute): Deleted. (WebCore::MathMLElement::toOptionalBool): Deleted. * mathml/MathMLPresentationElement.cpp: (WebCore::MathMLPresentationElement::isPhrasingContent): (WebCore::MathMLPresentationElement::isFlowContent): (WebCore::MathMLPresentationElement::cachedBooleanAttribute): (WebCore::MathMLPresentationElement::parseNumberAndUnit): (WebCore::MathMLPresentationElement::parseNamedSpace): (WebCore::MathMLPresentationElement::parseMathMLLength): (WebCore::MathMLPresentationElement::cachedMathMLLength): (WebCore::MathMLPresentationElement::specifiedDisplayStyle): (WebCore::MathMLPresentationElement::parseMathVariantAttribute): (WebCore::MathMLPresentationElement::specifiedMathVariant): * mathml/MathMLPresentationElement.h: (WebCore::MathMLPresentationElement::toOptionalBool): (WebCore::MathMLPresentationElement::acceptsMathVariantAttribute): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/mathml/MathMLElement.cpp trunk/Source/WebCore/mathml/MathMLElement.h trunk/Source/WebCore/mathml/MathMLPresentationElement.cpp trunk/Source/WebCore/mathml/MathMLPresentationElement.h Diff Modified: trunk/Source/WebCore/ChangeLog (205205 => 205206) --- trunk/Source/WebCore/ChangeLog 2016-08-30 22:49:45 UTC (rev 205205) +++ trunk/Source/WebCore/ChangeLog 2016-08-30 22:54:41 UTC (rev 205206) @@ -1,5 +1,53 @@ 2016-08-30 Frederic Wang +Move some code from MathMLElement to MathMLPresentationElement +https://bugs.webkit.org/show_bug.cgi?id=161377 + +Reviewed by Darin Adler. + +The following code is only used in presentation MathML classes. We then move it from +MathMLElement to MathMLPresentationElement: +- testing whether a child is a phrasing/flow element. +- parsing of length attributes. +- parsing of boolean attributes. +- parsing of mathvariant attributes. + +No new tests, already covered by existing tests. + +* mathml/MathMLElement.cpp: +(WebCore::MathMLElement::isPhrasingContent): Deleted. +(WebCore::MathMLElement::isFlowContent): Deleted. +(WebCore::MathMLElement::parseNumberAndUnit): Deleted. +(WebCore::MathMLElement::parseNamedSpace): Deleted. +(WebCore::MathMLElement::parseMathMLLength): Deleted. +(WebCore::MathMLElement::cachedMathMLLength): Deleted. +(WebCore::MathMLElement::cachedBooleanAttribute): Deleted. +(WebCore::MathMLElement::parseMathVariantAttribute): Deleted. +(WebCore::MathMLElement::specifiedDisplayStyle): Deleted. +(WebCore::MathMLElement::specifiedMathVariant): Deleted. +* mathml/MathMLElement.h: +(WebCore::MathMLElement::specifiedDisplayStyle): +(WebCore::MathMLElement::specifiedMathVariant): +(WebCore::MathMLElement::acceptsDisplayStyleAttribute): Deleted. +(WebCore::MathMLElement::acceptsMathVariantAttribute): Deleted. +(WebCore::MathMLElement::toOptionalBool): Deleted. +* mathml/MathMLPresentationElement.cpp: +(WebCore::MathMLPresentationElement::isPhrasingContent): +(WebCore::MathMLPresentationElement::isFlowContent): +(WebCore::MathMLPresentationElement::cachedBooleanAttribute): +(WebCore::MathMLPresentationElement::parseNumberAndUnit): +(WebCore::MathMLPresentationElement::parseNamedSpace): +(WebCore::MathMLPresentationElement::parseMathMLLength): +
[webkit-changes] [205205] trunk
Title: [205205] trunk Revision 205205 Author cdu...@apple.com Date 2016-08-30 15:49:45 -0700 (Tue, 30 Aug 2016) Log Message Object.setPrototypeOf() should throw when used on a cross-origin Window / Location object https://bugs.webkit.org/show_bug.cgi?id=161396 Reviewed by Ryosuke Niwa. Source/_javascript_Core: Object.setPrototypeOf() should throw when used on a cross-origin Window / Location object: - https://html.spec.whatwg.org/#windowproxy-setprototypeof - https://html.spec.whatwg.org/#location-setprototypeof - https://tc39.github.io/ecma262/#sec-object.setprototypeof (step 5) Firefox and Chrome already throw. However, WebKit merely ignores the call and logs an error message. Note that technically, we should also throw in the same origin case. However, not all browsers agree on this yet so I haven't not changed the behavior for the same origin case. * runtime/ObjectConstructor.cpp: (JSC::objectConstructorSetPrototypeOf): LayoutTests: Update / rebaseline existing test to reflect behavior change. * http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt: * http/tests/security/cross-frame-access-object-setPrototypeOf.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt trunk/LayoutTests/http/tests/security/cross-frame-access-object-setPrototypeOf.html trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/runtime/ObjectConstructor.cpp Diff Modified: trunk/LayoutTests/ChangeLog (205204 => 205205) --- trunk/LayoutTests/ChangeLog 2016-08-30 22:43:12 UTC (rev 205204) +++ trunk/LayoutTests/ChangeLog 2016-08-30 22:49:45 UTC (rev 205205) @@ -1,3 +1,15 @@ +2016-08-30 Chris Dumez+ +Object.setPrototypeOf() should throw when used on a cross-origin Window / Location object +https://bugs.webkit.org/show_bug.cgi?id=161396 + +Reviewed by Ryosuke Niwa. + +Update / rebaseline existing test to reflect behavior change. + +* http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt: +* http/tests/security/cross-frame-access-object-setPrototypeOf.html: + 2016-08-30 Jiewen Tan Unreviewed, update iOS simulator WK1 flaky tests. Modified: trunk/LayoutTests/http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt (205204 => 205205) --- trunk/LayoutTests/http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt 2016-08-30 22:43:12 UTC (rev 205204) +++ trunk/LayoutTests/http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt 2016-08-30 22:49:45 UTC (rev 205205) @@ -1,6 +1,18 @@ -CONSOLE MESSAGE: line 22: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match. -This tests that you can't set the prototype of the window or history objects cross-origin using Object.setPrototypeOf(). +CONSOLE MESSAGE: line 1: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match. +CONSOLE MESSAGE: line 1: Blocked a frame with origin "http://127.0.0.1:8000" from accessing a frame with origin "http://localhost:8000". Protocols, domains, and ports must match. +This tests that you can't set the prototype of the window or location objects cross-origin using Object.setPrototypeOf() +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + PASS: targetWindow instanceof Array should be 'false' and is. +PASS Object.setPrototypeOf(targetWindow, Array.prototype) threw exception TypeError: Permission denied. PASS: targetWindow instanceof Array should be 'false' and is. +PASS: targetWindow.location instanceof Array should be 'false' and is. +PASS Object.setPrototypeOf(targetWindow.location, Array.prototype) threw exception TypeError: Permission denied. +PASS: targetWindow.location instanceof Array should be 'false' and is. +PASS: successfullyParsed should be 'true' and is. +TEST COMPLETE + + Modified: trunk/LayoutTests/http/tests/security/cross-frame-access-object-setPrototypeOf.html (205204 => 205205) --- trunk/LayoutTests/http/tests/security/cross-frame-access-object-setPrototypeOf.html 2016-08-30 22:43:12 UTC (rev 205204) +++ trunk/LayoutTests/http/tests/security/cross-frame-access-object-setPrototypeOf.html 2016-08-30 22:49:45 UTC (rev 205205) @@ -1,11 +1,10 @@ +