Timeline
Dec 13, 2016:
- 11:20 PM Changeset in webkit [209793] by
-
- 48 edits in trunk/Source
Unreviewed, rolling out r209792.
https://bugs.webkit.org/show_bug.cgi?id=165841
Cause build failures (Requested by yusukesuzuki on #webkit).
Reverted changeset:
"Use JSValue::toWTFString instead of calling toString(exec)
and value(exec)"
https://bugs.webkit.org/show_bug.cgi?id=165795
http://trac.webkit.org/changeset/209792
- 11:02 PM Changeset in webkit [209792] by
-
- 48 edits in trunk/Source
Use JSValue::toWTFString instead of calling toString(exec) and value(exec)
https://bugs.webkit.org/show_bug.cgi?id=165795
Reviewed by Saam Barati.
Source/JavaScriptCore:
In old days, we frequently use the idiom like,
value.toString(exec)->value(exec)to
get WTFString from the given JSValue. But now, we have better function,toWTFString.
toWTFStringdoes not create intermediate JSString objects, then reduce unnecessary
allocations.
This patch mechanically replaces
value.toString(exec)->value(exec)withtoWTFString(exec).
- API/JSValueRef.cpp:
(JSValueToStringCopy):
- bindings/ScriptValue.cpp:
(Deprecated::ScriptValue::toString):
- inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::reportAPIException):
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):
- inspector/JSJavaScriptCallFrame.cpp:
(Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
- inspector/ScriptCallStackFactory.cpp:
(Inspector::extractSourceInformationFromException):
- runtime/ConsoleObject.cpp:
(JSC::valueToStringWithUndefinedOrNullCheck):
(JSC::valueOrDefaultLabelString):
- runtime/DateConstructor.cpp:
(JSC::dateParse):
- runtime/DatePrototype.cpp:
(JSC::formatLocaleDate):
- runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::sanitizedToString):
- runtime/ErrorPrototype.cpp:
(JSC::errorProtoFuncToString):
- runtime/InspectorInstrumentationObject.cpp:
(JSC::inspectorInstrumentationObjectLog):
- runtime/JSCJSValue.cpp:
(JSC::JSValue::toWTFStringSlowCase):
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncEval):
- runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::fetch):
- runtime/ModuleLoaderPrototype.cpp:
(JSC::moduleLoaderPrototypeParseModule):
- runtime/RegExpConstructor.cpp:
(JSC::regExpCreate):
- runtime/RegExpPrototype.cpp:
(JSC::regExpProtoFuncCompile):
(JSC::regExpProtoFuncToString):
- runtime/StringPrototype.cpp:
(JSC::replaceUsingRegExpSearch):
(JSC::replaceUsingStringSearch):
(JSC::stringProtoFuncSlice):
(JSC::stringProtoFuncSplitFast):
(JSC::stringProtoFuncSubstr):
(JSC::stringProtoFuncLocaleCompare):
(JSC::stringProtoFuncBig):
(JSC::stringProtoFuncSmall):
(JSC::stringProtoFuncBlink):
(JSC::stringProtoFuncBold):
(JSC::stringProtoFuncFixed):
(JSC::stringProtoFuncItalics):
(JSC::stringProtoFuncStrike):
(JSC::stringProtoFuncSub):
(JSC::stringProtoFuncSup):
(JSC::stringProtoFuncFontcolor):
(JSC::stringProtoFuncFontsize):
(JSC::stringProtoFuncAnchor):
(JSC::stringProtoFuncLink):
(JSC::trimString):
(JSC::stringProtoFuncStartsWith):
(JSC::stringProtoFuncEndsWith):
(JSC::stringProtoFuncIncludes):
(JSC::builtinStringIncludesInternal):
(JSC::stringProtoFuncNormalize):
- tools/JSDollarVMPrototype.cpp:
(JSC::functionPrint):
- wasm/js/JSWebAssemblyCompileError.h:
(JSC::JSWebAssemblyCompileError::create):
- wasm/js/JSWebAssemblyRuntimeError.h:
(JSC::JSWebAssemblyRuntimeError::create):
Source/WebCore:
- bindings/js/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromValue):
(WebCore::getNthValueOnKeyPath): Deleted.
(WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath): Deleted.
(WebCore::ensureNthValueOnKeyPath): Deleted.
(WebCore::canInjectNthValueOnKeyPath): Deleted.
(WebCore::injectIDBKeyIntoScriptValue): Deleted.
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath): Deleted.
(WebCore::canInjectIDBKeyIntoScriptValue): Deleted.
(WebCore::deserializeIDBValueToJSValue): Deleted.
(WebCore::scriptValueToIDBKey): Deleted.
(WebCore::idbKeyDataToScriptValue): Deleted.
(WebCore::createKeyPathArray): Deleted.
(WebCore::generateIndexKeyForValue): Deleted.
- bindings/js/JSAudioTrackCustom.cpp:
(WebCore::JSAudioTrack::setKind):
(WebCore::JSAudioTrack::setLanguage):
- bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::JSCryptoAlgorithmDictionary::getAlgorithmIdentifier):
- bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::setLocation):
- bindings/js/JSDeviceMotionEventCustom.cpp:
(WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
- bindings/js/JSDeviceOrientationEventCustom.cpp:
(WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
- bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
(WebCore::JSEventListener::virtualisAttribute): Deleted.
(WebCore::JSEventListener::operator==): Deleted.
(WebCore::eventHandlerAttribute): Deleted.
(WebCore::createEventListenerForEventHandlerAttribute): Deleted.
(WebCore::setEventHandlerAttribute): Deleted.
(WebCore::windowEventHandlerAttribute): Deleted.
(WebCore::setWindowEventHandlerAttribute): Deleted.
(WebCore::documentEventHandlerAttribute): Deleted.
(WebCore::setDocumentEventHandlerAttribute): Deleted.
- bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::callHTMLAllCollection):
(WebCore::JSHTMLAllCollection::namedItem):
- bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
(WebCore::JSHTMLFormControlsCollection::namedItem):
- bindings/js/JSHTMLInputElementCustom.cpp:
(WebCore::JSHTMLInputElement::setSelectionDirection):
(WebCore::JSHTMLInputElement::setSelectionRange): Deleted.
- bindings/js/JSInspectorFrontendHostCustom.cpp:
(WebCore::populateContextMenuItems):
(WebCore::JSInspectorFrontendHost::showContextMenu): Deleted.
- bindings/js/JSMessageEventCustom.cpp:
(WebCore::handleInitMessageEvent):
- bindings/js/JSSQLTransactionCustom.cpp:
(WebCore::JSSQLTransaction::executeSql):
- bindings/js/JSTextTrackCustom.cpp:
(WebCore::JSTextTrack::setLanguage):
- bindings/js/JSVideoTrackCustom.cpp:
(WebCore::JSVideoTrack::setKind):
(WebCore::JSVideoTrack::setLanguage):
- bindings/js/JSWebKitSubtleCryptoCustom.cpp:
(WebCore::cryptoKeyFormatFromJSValue):
(WebCore::cryptoKeyUsagesFromJSValue):
- bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::send):
(WebCore::JSXMLHttpRequest::responseText): Deleted.
(WebCore::JSXMLHttpRequest::retrieveResponse): Deleted.
- bindings/js/JSXSLTProcessorCustom.cpp:
(WebCore::JSXSLTProcessor::setParameter):
(WebCore::JSXSLTProcessor::getParameter):
(WebCore::JSXSLTProcessor::removeParameter):
- bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::create):
- bridge/c/c_utility.cpp:
(JSC::Bindings::convertValueToNPVariant):
- bridge/testbindings.cpp:
(main):
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
Source/WebKit2:
- WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
- 10:22 PM Changeset in webkit [209791] by
-
- 4 edits in trunk
ASSERTION FAILED: hasParserBlockingScript() seen with js/dom/modules/module-will-fire-beforeload.html
https://bugs.webkit.org/show_bug.cgi?id=164883
Reviewed by Ryosuke Niwa.
Source/WebCore:
This is *attempt to fix* patch since I cannot reproduce the crash reported in this issue.
One possible scenario of this crash is the following.
- There is pending deferred scripts, that is not fetched yet.
- Then, we start watching on the script. And stop document parser.
- The document parser is stopped/detached by calling finishJSTest in beforeload.
- At this critical timing, (2)'s script is fetched, and notifyFinished is called since it is watched.
In this patch, we ignore the script execution if the document parser is stopped / detached.
Previously, it goes into the wrong path. And it causes assertion failure.
- html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::notifyFinished):
LayoutTests:
- platform/mac-wk2/TestExpectations:
- 10:09 PM Changeset in webkit [209790] by
-
- 2 edits in trunk/Source/WebCore
Memory warning logging appears to capture resident footprint, missing compress/swap.
https://bugs.webkit.org/show_bug.cgi?id=165533
<rdar://problem/29318410>
Patch by Keith Rollin <Keith Rollin> on 2016-12-13
Reviewed by Daniel Bates.
Fix GTK build by adding an explicit constructor.
- platform/MemoryPressureHandler.h:
(WebCore::MemoryPressureHandler::ReliefLogger::MemoryUsage::MemoryUsage):
- 8:18 PM Changeset in webkit [209789] by
-
- 3 edits8 adds in trunk
CSP: ws: and wss: blocked with connect-src *
https://bugs.webkit.org/show_bug.cgi?id=165804
<rdar://problem/28563643>
Reviewed by David Kilzer.
Source/WebCore:
Allow * to match ws: and wss:. This will make our behavior of * more closely conform
the behavior of * in the Content Security Policy Level 3 spec.,
<https://w3c.github.io/webappsec-csp/#match-url-to-source-expression> (Editor's Draft, 2 December 2016).
Tests: http/tests/security/contentSecurityPolicy/connect-src-star-secure-websocket-allowed.html
http/tests/security/contentSecurityPolicy/connect-src-star-websocket-allowed.html
http/tests/security/contentSecurityPolicy/default-src-star-secure-websocket-allowed.html
http/tests/security/contentSecurityPolicy/default-src-star-websocket-allowed.html
- page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::ContentSecurityPolicySourceList::isProtocolAllowedByStar):
LayoutTests:
Add tests to ensure that * matches ws: and wss:.
- http/tests/security/contentSecurityPolicy/connect-src-star-secure-websocket-allowed-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/connect-src-star-secure-websocket-allowed.html: Added.
- http/tests/security/contentSecurityPolicy/connect-src-star-websocket-allowed-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/connect-src-star-websocket-allowed.html: Added.
- http/tests/security/contentSecurityPolicy/default-src-star-secure-websocket-allowed-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/default-src-star-secure-websocket-allowed.html: Added.
- http/tests/security/contentSecurityPolicy/default-src-star-websocket-allowed-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/default-src-star-websocket-allowed.html: Added.
- 7:24 PM Changeset in webkit [209788] by
-
- 7 edits in trunk/Source/WebCore
[CSS Parser] Make CSSFunctionValue derive from CSSValueList
https://bugs.webkit.org/show_bug.cgi?id=165832
Reviewed by Dean Jackson.
With the old parser gone, we can now shrink CSSFunctionValue a bit by
having it derive from CSSValueList instead of having an extra member
that holds a value list of arguments. This is similar to the trick
already employed by WebkitCSSTransformValue.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::specifiedValueForGridTrackSize):
- css/CSSFunctionValue.cpp:
(WebCore::CSSFunctionValue::customCSSText):
(WebCore::CSSFunctionValue::CSSFunctionValue): Deleted.
(WebCore::CSSFunctionValue::equals): Deleted.
(WebCore::CSSFunctionValue::append): Deleted.
- css/CSSFunctionValue.h:
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertScrollSnapPoints):
(WebCore::StyleBuilderConverter::createGridTrackSize):
- css/StyleResolver.cpp:
(WebCore::StyleResolver::createFilterOperations):
- css/parser/CSSPropertyParser.cpp:
(WebCore::isGridTrackFixedSized):
- 6:39 PM Changeset in webkit [209787] by
-
- 3 edits in trunk/Source/WebCore
Make Document a FrameDestructionObserver
https://bugs.webkit.org/show_bug.cgi?id=165810
<rdar://problem/29157645>
Reviewed by Ryosuke Niwa.
Make Document a FrameDestructionObserver to make sure Document::m_frame
is properly nulled out when a Frame gets destroyed.
Document::disconnectFromFrame() is supposed to be called before the Frame
gets destroyed so this also adds an assertion to try and identify places
where we fail to call it.
No new tests, no known reproduction case.
- dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::disconnectFromFrame):
(WebCore::Document::frameDestroyed):
- dom/Document.h:
(WebCore::Document::frame): Deleted.
- 6:39 PM Changeset in webkit [209786] by
-
- 4 edits in trunk
Fix CMake build.
Source/WebKit2:
- PlatformMac.cmake:
Tools:
- DumpRenderTree/PlatformMac.cmake:
Define NS_RETURNS_RETAINED as nothing for now.
- 5:31 PM Changeset in webkit [209785] by
-
- 8 edits2 adds in trunk
WebAssembly: implement the elements section
https://bugs.webkit.org/show_bug.cgi?id=165715
Reviewed by Keith Miller.
JSTests:
- wasm/Builder.js:
(export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
(export.default.Builder.prototype._registerSectionBuilders.switch):
- wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Element):
- wasm/function-tests/basic-element.js: Added.
- wasm/js-api/element.js: Added.
(assertBadBinary):
(assertBadBinary.badInstantiation):
Source/JavaScriptCore:
This is a straight forward implementation of the Element
section in the Wasm spec:
https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#element-section
There are a few ambiguities I encountered when implementing this, so I've
filed bugs against the Wasm design repo, and corresponding bugzilla bugs
for us to address after they've been discussed by the various Wasm folks:
- https://bugs.webkit.org/show_bug.cgi?id=165827
- https://bugs.webkit.org/show_bug.cgi?id=165826
- https://bugs.webkit.org/show_bug.cgi?id=165825
- wasm/WasmFormat.h:
- wasm/WasmModuleParser.cpp:
(JSC::Wasm::ModuleParser::parseElement):
(JSC::Wasm::ModuleParser::parseInitExpr):
(JSC::Wasm::ModuleParser::parseData):
- wasm/WasmModuleParser.h:
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::evaluate):
- 4:20 PM Changeset in webkit [209784] by
-
- 6 edits2 adds in trunk
REGRESSION(r204163): Web Inspector: Page crashes when Inspector tries to load insecure SourceMap
https://bugs.webkit.org/show_bug.cgi?id=165806
<rdar://problem/28169025>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-12-13
Reviewed by Alex Christensen.
Source/WebCore:
Test: http/tests/inspector/network/loadResource-insecure-resource.html
- inspector/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::loadResource):
DocumentThreadableLoader now triggers the ThreadableLoaderClient's didFail
callback, so this didFailLoaderCreation is now redundent and incorrect.
LayoutTests:
- http/tests/inspector/network/loadResource-insecure-resource-expected.txt: Added.
- http/tests/inspector/network/loadResource-insecure-resource.html: Added.
- http/tests/inspector/network/resource-timing.html:
- http/tests/inspector/resources/inspector-test.js:
(runTestHTTPS):
- 4:18 PM Changeset in webkit [209783] by
-
- 2 edits in trunk/Source/WebCore
[CSS Parser] Enhance fast path translate transforms to allow percentages
https://bugs.webkit.org/show_bug.cgi?id=165822
Reviewed by Simon Fraser.
- css/parser/CSSParserFastPaths.cpp:
(WebCore::parseTransformTranslateArguments):
- 3:37 PM Changeset in webkit [209782] by
-
- 6 edits in trunk
Fullscreen in WebKit2 does not restore topContentInset upon exiting; leaves top of page not visible
https://bugs.webkit.org/show_bug.cgi?id=165697
Source/WebKit2:
Delegate the values of topContentInset() from WebViewImpl (used by WKWebView and WKView) to the
WebPageProxy, so that setting the topContentInset() on WebPageProxy is reflected in the getters
for the two view classes.
Reviewed by Tim Horton.
- UIProcess/Cocoa/WebViewImpl.h:
(WebKit::WebViewImpl::topContentInset): Deleted.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateContentInsetsIfAutomatic):
(WebKit::WebViewImpl::topContentInset):
(WebKit::WebViewImpl::setTopContentInset):
(WebKit::WebViewImpl::dispatchSetTopContentInset):
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
(-[WKFullScreenWindowController _saveTopContentInset]): Deleted.
(-[WKFullScreenWindowController _restoreTopContentInset]): Deleted.
Tools:
Reviewed by Tim Horton.
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.mm:
(TestWebKitAPI::TEST):
- 3:24 PM Changeset in webkit [209781] by
-
- 2 edits in trunk/LayoutTests
Rebaseline js/dom/global-constructors-attributes.html after r209777.
Unreviewed test gardening.
- platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
- 3:22 PM Changeset in webkit [209780] by
-
- 5 edits4 adds in trunk
:hover rule causes a single tap to not activate a slotted anchor element
https://bugs.webkit.org/show_bug.cgi?id=165551
Reviewed by Antti Koivisto.
Source/WebCore:
Fixed a bug in ancestorRespondingToClickEvents that we were traversing the ancestor nodes without taking
shadow roots and slots into account. This prevented tapping on a text node assigned to a slot inside
an anchor element to activate the hyperlink on iOS.
This bug was supposed to be fixed in r206605, and it was still broken on iOS due to the bug in
ancestorRespondingToClickEvents. It is now tested by click-text-inside-linked-slot.html.
Tests: fast/shadow-dom/click-on-slotted-anchor-with-hover.html
fast/shadow-dom/click-text-inside-linked-slot.html
- page/ios/FrameIOS.mm:
(WebCore::ancestorRespondingToClickEvents):
(WebCore::Frame::qualifyingNodeAtViewportLocation):
LayoutTests:
Added a test for tapping on an anchor element assigned to a slot, which has been fixed in r209065.
Also added a new helper JS wrapepr, UIHelper, defined inside LayoutTests/resources/js-helper.js
to provide an abstraction around EventSender and UIScriptController.
Fixed click-text-inside-linked-slot.html on iOS using UIHelper.
- fast/shadow-dom/click-on-slotted-anchor-with-hover-expected.txt: Added.
- fast/shadow-dom/click-on-slotted-anchor-with-hover.html: Added.
- fast/shadow-dom/click-text-inside-linked-slot.html:
- platform/ios-simulator/fast/shadow-dom/click-text-inside-linked-slot-expected.txt: Added.
- resources/ui-helper.js: Added.
(window.UIHelper.isIOS):
(window.UIHelper.activateAt.return.new.Promise):
(window.UIHelper.activateAt):
(window.UIHelper.wait):
(window.UIHelper):
- platform/ios-simulator-wk2/TestExpectations: Skip the test in the open source iOS's WebKit2.
- 2:56 PM Changeset in webkit [209779] by
-
- 4 edits in trunk/Source/WebKit2
[Mac][WK2] Tighten Keychain directory access
https://bugs.webkit.org/show_bug.cgi?id=165818
<rdar://problem/16863857>
Reviewed by Anders Carlsson.
Lock down Keychain directory access to just the file-read-data, file-read-metadata, and
file-write-data operations we actually need.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 2:27 PM Changeset in webkit [209778] by
-
- 2 edits in trunk/Source/WTF
std::expected: fix rvalue forwarding issues
https://bugs.webkit.org/show_bug.cgi?id=165812
Reviewed by Mark Lam.
- wtf/Expected.h:
(WTF::UnexpectedType::UnexpectedType):
(WTF::ExpectedDetail::Base::Base):
(WTF::Expected::Expected):
- 2:15 PM Changeset in webkit [209777] by
-
- 51 edits6 deletes in trunk
[CSS Parser] Eliminate SVGPaint and SVGColor
https://bugs.webkit.org/show_bug.cgi?id=165819
Reviewed by Dean Jackson.
Source/WebCore:
Remove SVGColor and SVGPaint CSS values from the tree. The new parser
already stopped making these values when parsing, so all that's left
is to make sure computed style doesn't use these values either.
We are the only browser engine to support these CSS values, they see no use
on the Web, and they're already gone at the parsing level, so it's time
to remove these interfaces from our tree.
- CMakeLists.txt:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSCSSValueCustom.cpp:
(WebCore::toJSNewlyCreated):
- css/CSSComputedStyleDeclaration.h:
- css/CSSValue.cpp:
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
(WebCore::CSSValue::cloneForCSSOM):
- css/CSSValue.h:
(WebCore::CSSValue::isSubtypeExposedToCSSOM):
(WebCore::CSSValue::isSVGColor): Deleted.
(WebCore::CSSValue::isSVGPaint): Deleted.
- css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::adjustSVGPaintForCurrentColor):
(WebCore::ComputedStyleExtractor::svgPropertyValue):
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertSVGColor):
- css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyValueFill):
(WebCore::StyleBuilderCustom::applyValueStroke):
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::PropertyWrapperSVGPaint::PropertyWrapperSVGPaint):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::fillPaintType):
(WebCore::RenderStyle::setFillPaintColor):
(WebCore::RenderStyle::strokePaintType):
(WebCore::RenderStyle::setStrokePaintColor):
- rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::initialFillPaintType):
(WebCore::SVGRenderStyle::initialStrokePaintType):
(WebCore::SVGRenderStyle::setFillPaint):
(WebCore::SVGRenderStyle::setStrokePaint):
(WebCore::SVGRenderStyle::fillPaintType):
(WebCore::SVGRenderStyle::strokePaintType):
(WebCore::SVGRenderStyle::visitedLinkFillPaintType):
(WebCore::SVGRenderStyle::visitedLinkStrokePaintType):
(WebCore::SVGRenderStyle::hasStroke):
(WebCore::SVGRenderStyle::hasFill):
- rendering/style/SVGRenderStyleDefs.h:
- rendering/svg/RenderSVGResource.cpp:
(WebCore::requestPaintingResource):
- rendering/svg/SVGResources.cpp:
(WebCore::paintingResourceFromSVGPaint):
- svg/SVGAllInOne.cpp:
- svg/SVGAnimatedColor.cpp:
(WebCore::SVGAnimatedColorAnimator::constructFromString):
(WebCore::parseColorFromString):
(WebCore::SVGAnimatedColorAnimator::calculateDistance):
- svg/SVGAnimatedType.cpp:
(WebCore::SVGAnimatedType::setValueAsString):
- svg/SVGAnimatedType.h:
- svg/SVGColor.cpp: Removed.
- svg/SVGColor.h: Removed.
- svg/SVGColor.idl: Removed.
- svg/SVGFEDiffuseLightingElement.cpp:
- svg/SVGFESpecularLightingElement.cpp:
- svg/SVGPaint.cpp: Removed.
- svg/SVGPaint.h: Removed.
- svg/SVGPaint.idl: Removed.
LayoutTests:
- fast/dom/Window/resources/window-properties.js:
- platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
- platform/mac/fast/dom/Window/window-lookup-precedence-expected.txt:
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- svg/animations/additive-type-by-animation-expected.txt:
- svg/animations/animate-color-calcMode-discrete-expected.txt:
- svg/animations/animate-color-fill-currentColor-expected.txt:
- svg/animations/animate-color-fill-from-by-expected.txt:
- svg/animations/animate-color-transparent-expected.txt:
- svg/animations/animate-currentColor-expected.txt:
- svg/animations/animate-dynamic-update-attributeName-expected.txt:
- svg/animations/animate-elem-03-t-drt-expected.txt:
- svg/animations/animate-inherit-css-property-expected.txt:
- svg/animations/attributeTypes-expected.txt:
- svg/animations/resources/SVGAnimationTestCase.js:
(expectColor):
- svg/animations/script-tests/animate-color-fill-currentColor.js:
(sample1):
(sample2):
(sample3):
- svg/animations/script-tests/animate-color-fill-from-by.js:
(sample1):
(sample2):
(sample3):
- svg/css/getComputedStyle-basic-expected.txt:
- svg/css/rect-system-color-expected.txt:
- svg/css/rect-system-color.xhtml:
- svg/custom/global-constructors-expected.txt:
- svg/custom/js-svg-constructors-expected.txt:
- svg/custom/js-svg-constructors.svg:
- svg/custom/script-tests/global-constructors.js:
- 2:11 PM Changeset in webkit [209776] by
-
- 2 edits in trunk/Source/WebCore
Restore NSURLRequest's default time interval to match behavior before NSURLSession adoption
https://bugs.webkit.org/show_bug.cgi?id=165821
<rdar://problem/28492939>
Reviewed by Brady Eidson.
Before adopting NSURLSession, iOS used CFURLConnection, not NSURLConnection.
iOS used to have a default timeout of INT_MAX and it now has a default timeout of 0, which means use the
default NSURLRequest timeout, which is 60 seconds. This is not enough for some slow mobile networks,
so we want to match behavior of our CFURLConnection code here.
- platform/network/ResourceRequestBase.cpp:
Use INT_MAX as the default timeout of requests on iOS.
- 2:08 PM Changeset in webkit [209775] by
-
- 7 edits in trunk
[Cocoa] Implement -shouldInsertText: on WKWebProcessPlugInEditingDelegate
https://bugs.webkit.org/show_bug.cgi?id=165785
<rdar://problem/26929398>
Reviewed by Darin Adler.
Source/WebKit2:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInEditingDelegate.h: Defined
WKEditorInsertAction and declared
-_webProcessPlugInBrowserContextController:shouldInsertText:replacingRange:givenAction:.
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(toWK): Added. Mapped a WebCore::EditorInsertAction to a WKEditorInsertAction.
(-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]): Implemented
EditorClient::shouldInsertText() by calling
-_webProcessPlugInBrowserContextController:shouldInsertText:replacingRange:givenAction: with
the text, wrapped range handle, and action. Added shouldInsertText to DelegateMethods and
initialized it according to whether the delegate responds to shouldInsertText:.
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegate.mm:
(-[BundleEditingDelegateRemoteObject shouldInsertText:replacingRange:givenAction:]): Added
expectations for the text, range, and action.
(TEST): Set the "EditingDelegateShouldInsertText" bundle parameter to NO so that the plug-in
will return NO in -_webProcessPlugInBrowserContextController:willInsertText:. Added a
plain-text string to the pasteboard, executed a paste action, and verified that the selected
text in the web view did not change.
- TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegatePlugIn.mm:
(-[BundleEditingDelegatePlugIn webProcessPlugIn:didCreateBrowserContextController:]): Set
_editingDelegateShouldInsertText according to the "EditingDelegateShouldInsertText" bundle
parameter.
(-[BundleEditingDelegatePlugIn _webProcessPlugInBrowserContextController:shouldInsertText:replacingRange:givenAction:]):
Added. Called -shouldInsertText:replacingRange:givenAction: on the remote object proxy
and returned the value of _editingDelegateShouldInsertText.
- TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegateProtocol.h: Declared
-shouldInsertText:replacingRange:givenAction:.
- 2:05 PM Changeset in webkit [209774] by
-
- 2 edits in trunk/LayoutTests
Rebaseline js/dom/global-constructors-attributes.html after r209760.
Unreviewed test gardening.
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- 12:44 PM Changeset in webkit [209773] by
-
- 6 edits in trunk
Unreviewed, rolling out r209544.
Looks like r209489 did not cause the performance regression
after all
Reverted changeset:
"Unreviewed, rolling out r209489."
https://bugs.webkit.org/show_bug.cgi?id=165550
http://trac.webkit.org/changeset/209544
- 12:41 PM Changeset in webkit [209772] by
-
- 1 edit1 add in trunk/PerformanceTests
Add a PerfTest targeting IDBObjectStore.get().
https://bugs.webkit.org/show_bug.cgi?id=165816
Reviewed by Alex Christensen.
- IndexedDB/objectstore-get.html: Added.
- 12:32 PM Changeset in webkit [209771] by
-
- 27 edits4 adds in trunk
WebAssembly: implement the table section and table import
https://bugs.webkit.org/show_bug.cgi?id=165716
Reviewed by Keith Miller.
JSTests:
- wasm/Builder.js:
(const._importMemoryContinuation):
(const._importTableContinuation):
(export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
(const._importMemoryContinuation.section): Deleted.
(const): Deleted.
(const._importMemoryContinuation.assert): Deleted.
- wasm/Builder_WebAssemblyBinary.js:
(const.putResizableLimits):
(const.putTable):
(const.emitters.Import):
(const.emitters.Table):
- wasm/function-tests/call-indirect-params.js:
- wasm/function-tests/call-indirect.js:
- wasm/function-tests/table-basic-2.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
(func):
- wasm/function-tests/table-basic.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
- wasm/js-api/call-indirect-results.js:
(const.wasmModuleWhichImportJS): Deleted.
(MonomorphicImport): Deleted.
- wasm/js-api/call-indirect.js:
(const.wasmModuleWhichImportJS):
(const.makeTable):
(Polyphic2Import):
(VirtualImport):
(MonomorphicImport): Deleted.
- wasm/js-api/table.js: Added.
(assertBadBinary):
(assert.truthy):
(assertBadTable):
(assertBadTableImport):
(assertBadBinary.assertBadTableInstance):
(assertBadTableInstance):
(new.WebAssembly.Table):
- wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
Source/JavaScriptCore:
This patch implements the Table space for wasm:
https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#table-section
It only implements defining and importing a table. The bulk
of this patch is implementing the various wasm Table prototype
methods and the underlying Table object:
https://github.com/WebAssembly/design/blob/master/JS.md#webassemblytable-constructor
This patch also fixes a bug in our implementation with call_indirect.
We initially implemented call_indirect as a way to call functions that
are imported or defined in the module. This was the wrong
interpretation of the spec. Instead, call_indirect can only index into
the table index space.
- JavaScriptCore.xcodeproj/project.pbxproj:
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
(JSC::Wasm::parseAndCompile):
- wasm/WasmFormat.h:
(JSC::Wasm::TableInformation::TableInformation):
(JSC::Wasm::TableInformation::operator bool):
(JSC::Wasm::TableInformation::isImport):
(JSC::Wasm::TableInformation::initial):
(JSC::Wasm::TableInformation::maximum):
(JSC::Wasm::CallableFunction::CallableFunction):
- wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseExpression):
- wasm/WasmModuleParser.cpp:
(JSC::Wasm::ModuleParser::parseImport):
(JSC::Wasm::ModuleParser::parseResizableLimits):
(JSC::Wasm::ModuleParser::parseTableHelper):
(JSC::Wasm::ModuleParser::parseTable):
(JSC::Wasm::ModuleParser::parseMemoryHelper):
(JSC::Wasm::ModuleParser::parseExport):
- wasm/WasmModuleParser.h:
- wasm/js/JSWebAssemblyHelpers.h: Added.
(JSC::toNonWrappingUint32):
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::visitChildren):
- wasm/js/JSWebAssemblyInstance.h:
(JSC::JSWebAssemblyInstance::table):
(JSC::JSWebAssemblyInstance::setTable):
(JSC::JSWebAssemblyInstance::offsetOfTable):
- wasm/js/JSWebAssemblyTable.cpp:
(JSC::JSWebAssemblyTable::create):
(JSC::JSWebAssemblyTable::JSWebAssemblyTable):
(JSC::JSWebAssemblyTable::visitChildren):
(JSC::JSWebAssemblyTable::grow):
(JSC::JSWebAssemblyTable::clearFunction):
(JSC::JSWebAssemblyTable::setFunction):
- wasm/js/JSWebAssemblyTable.h:
(JSC::JSWebAssemblyTable::maximum):
(JSC::JSWebAssemblyTable::size):
(JSC::JSWebAssemblyTable::getFunction):
(JSC::JSWebAssemblyTable::offsetOfSize):
(JSC::JSWebAssemblyTable::offsetOfFunctions):
(JSC::JSWebAssemblyTable::isValidSize):
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::call):
(JSC::WebAssemblyFunction::create):
(JSC::WebAssemblyFunction::visitChildren):
(JSC::WebAssemblyFunction::finishCreation):
- wasm/js/WebAssemblyFunction.h:
(JSC::WebAssemblyFunction::signature):
(JSC::WebAssemblyFunction::wasmEntrypoint):
(JSC::WebAssemblyFunction::webAssemblyCallee): Deleted.
- wasm/js/WebAssemblyInstanceConstructor.cpp:
(JSC::constructJSWebAssemblyInstance):
- wasm/js/WebAssemblyMemoryConstructor.cpp:
(JSC::constructJSWebAssemblyMemory):
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::finishCreation):
(JSC::WebAssemblyModuleRecord::link):
- wasm/js/WebAssemblyTableConstructor.cpp:
(JSC::constructJSWebAssemblyTable):
- wasm/js/WebAssemblyTablePrototype.cpp:
(JSC::getTable):
(JSC::webAssemblyTableProtoFuncLength):
(JSC::webAssemblyTableProtoFuncGrow):
(JSC::webAssemblyTableProtoFuncGet):
(JSC::webAssemblyTableProtoFuncSet):
(JSC::WebAssemblyTablePrototype::create):
(JSC::WebAssemblyTablePrototype::finishCreation):
- wasm/js/WebAssemblyTablePrototype.h:
- 12:24 PM Changeset in webkit [209770] by
-
- 2 edits in trunk/LayoutTests
Remove ios-simulator-wk2 pass expectation for a directory that requires touch events.
https://bugs.webkit.org/show_bug.cgi?id=165787
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 12:23 PM Changeset in webkit [209769] by
-
- 2 edits in trunk/Source/WebKit2
NSArray leaks seen in Safari, allocated under WKIconDatabaseTryCopyCGImageArrayForURL
https://bugs.webkit.org/show_bug.cgi?id=165809
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-12-13
Reviewed by Dan Bernstein.
- UIProcess/API/C/cg/WKIconDatabaseCG.cpp:
(WKIconDatabaseTryCopyCGImageArrayForURL):
Avoid an extra retain on already newly created array.
- 12:18 PM Changeset in webkit [209768] by
-
- 2 edits in trunk/LayoutTests
Marking two scroll-to-fragid tests as flaky on ios-simulator.
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 12:14 PM Changeset in webkit [209767] by
-
- 2 edits in trunk/Source/JavaScriptCore
Add null checks to opaque root APIs.
Rubber stamped by Saam Barati.
If we got a crash report about null in the opaque root HashSet, we would probably not
celebrate how great it is that we found out about a new race - instead we would probably
be annoyed that null wasn't just silently ignored.
- heap/SlotVisitor.cpp:
(JSC::SlotVisitor::addOpaqueRoot):
(JSC::SlotVisitor::containsOpaqueRoot):
(JSC::SlotVisitor::containsOpaqueRootTriState):
- 11:54 AM Changeset in webkit [209766] by
-
- 27 edits in trunk/Source
Make opaque root scanning truly constraint-based
https://bugs.webkit.org/show_bug.cgi?id=165760
Reviewed by Saam Barati.
Source/JavaScriptCore:
We have bugs when visitChildren() changes its mind about what opaque root to add, since
we don't have barriers on opaque roots. This supposedly once worked for generational GC,
and I started adding more barriers to support concurrent GC. But I think that the real
bug here is that we want the JSObject->OpaqueRoot to be evaluated as a constraint that
participates in the fixpoint. A constraint is different from the normal visiting in that
the GC will not wait for a barrier to rescan the object.
So, it's now possible for any visitChildren() method to become a constraint by calling
slotVisitor.rescanAsConstraint(). Because opaque roots are constraints, addOpaqueRoot()
does rescanAsConstraint() for you.
The constraint set is simply a HashSet<JSCell*> that accumulates with every
rescanAsConstraint() call and is only cleared at the start of full GC. This trivially
resolves most classes of GC bugs that would have arisen from opaque roots being changed
in a way that the GC did not anticipate.
Looks like this is perf-neutral.
- heap/Heap.cpp:
(JSC::Heap::markToFixpoint):
(JSC::Heap::setMutatorShouldBeFenced):
(JSC::Heap::writeBarrierOpaqueRootSlow): Deleted.
(JSC::Heap::addMutatorShouldBeFencedCache): Deleted.
- heap/Heap.h:
- heap/HeapInlines.h:
(JSC::Heap::writeBarrierOpaqueRoot): Deleted.
- heap/MarkedSpace.cpp:
(JSC::MarkedSpace::visitWeakSets):
- heap/MarkedSpace.h:
- heap/SlotVisitor.cpp:
(JSC::SlotVisitor::visitChildren):
(JSC::SlotVisitor::visitSubsequently):
(JSC::SlotVisitor::drain):
(JSC::SlotVisitor::addOpaqueRoot):
(JSC::SlotVisitor::rescanAsConstraint):
(JSC::SlotVisitor::mergeIfNecessary):
(JSC::SlotVisitor::mergeOpaqueRootsAndConstraints):
(JSC::SlotVisitor::mergeOpaqueRootsIfNecessary): Deleted.
- heap/SlotVisitor.h:
- heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::reportExtraMemoryVisited):
(JSC::SlotVisitor::reportExternalMemoryVisited):
(JSC::SlotVisitor::didNotRace):
- heap/WeakBlock.cpp:
(JSC::WeakBlock::specializedVisit):
(JSC::WeakBlock::visit):
- heap/WeakBlock.h:
- heap/WeakSet.h:
(JSC::WeakSet::visit):
Source/WebCore:
No new tests yet. I think that writing tests for this is a big investigation:
https://bugs.webkit.org/show_bug.cgi?id=165808
Remove the previous advancing wavefront DOM write barrier. I don't think this will scale
very well. It's super confusing.
This change makes it so that visitChildren can become a GC constraint that executes as
part of the fixpoint. This changes all WebCore visitChildren methods that do opaque
roots into constraints.
- bindings/js/CommonVM.cpp:
(WebCore::commonVMSlow):
(WebCore::writeBarrierOpaqueRootSlow): Deleted.
- bindings/js/CommonVM.h:
(WebCore::writeBarrierOpaqueRoot): Deleted.
- bindings/js/JSAttrCustom.cpp:
(WebCore::JSAttr::visitAdditionalChildren):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::visitAdditionalChildren):
- bindings/js/JSIDBCursorCustom.cpp:
(WebCore::JSIDBCursor::visitAdditionalChildren):
- bindings/js/JSMessageChannelCustom.cpp:
(WebCore::JSMessageChannel::visitAdditionalChildren):
- bindings/js/JSMessagePortCustom.cpp:
(WebCore::JSMessagePort::visitAdditionalChildren):
- bindings/js/JSNodeIteratorCustom.cpp:
(WebCore::JSNodeIterator::visitAdditionalChildren):
- bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::JSTextTrackCue::visitAdditionalChildren):
- bindings/js/JSTreeWalkerCustom.cpp:
(WebCore::JSTreeWalker::visitAdditionalChildren):
- bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::visitAdditionalChildren):
- bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::visitAdditionalChildren):
- bindings/js/JSXPathResultCustom.cpp:
(WebCore::JSXPathResult::visitAdditionalChildren):
- dom/ContainerNodeAlgorithms.cpp:
(WebCore::notifyChildNodeInserted):
(WebCore::notifyChildNodeRemoved):
- 11:44 AM Changeset in webkit [209765] by
-
- 1 edit1 add in trunk/PerformanceTests
Add a PerfTest targeting IDBIndex.get().
https://bugs.webkit.org/show_bug.cgi?id=165803
Reviewed by Alex Christensen.
- IndexedDB/index-get.html: Added.
- 11:38 AM Changeset in webkit [209764] by
-
- 105 edits14 deletes in trunk
Unreviewed, rolling out r209725.
https://bugs.webkit.org/show_bug.cgi?id=165811
"Broke ARMv7 builds" (Requested by msaboff on #webkit).
Reverted changeset:
"REGRESSION(r209653): speedometer crashes making virtual slow
path tailcalls"
https://bugs.webkit.org/show_bug.cgi?id=165748
http://trac.webkit.org/changeset/209725
- 11:28 AM Changeset in webkit [209763] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, revert the collectorPermittedIdleRatio back to 0 because of 100MB
regression on membuster. Also, it didn't seem to help perf.
- runtime/Options.h:
- 11:26 AM Changeset in webkit [209762] by
-
- 2 edits in trunk/LayoutTests
Skip fast/events/page-visibility-onvisibilitychange.html on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=165799
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 11:15 AM Changeset in webkit [209761] by
-
- 6 edits in trunk/Source
[WTF] Turn tryMakeString(), makeString() into variadic templates
https://bugs.webkit.org/show_bug.cgi?id=147142
Reviewed by Mark Lam.
Source/JavaScriptCore:
- runtime/JSStringBuilder.h:
(JSC::jsMakeNontrivialString): remove WTF:: prefix, it isn't needed anymore
- runtime/Lookup.cpp:
(JSC::reifyStaticAccessor): remove WTF:: prefix, it isn't needed anymore
- runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncToString): remove WTF:: prefix, it isn't needed anymore
Source/WTF:
I wrote this patch while improving WebAssembly's error messages,
and only found this bug afterwards. My implementation does the
bare minimum to make this code variadic without changing
behavior. I think it's better to go with this baby step first, and
improve the code later.
Notable, for my WebAssembly patch I also taught the code to handle
integers and other types (including WebAssembly types). A
follow-up could rely on ADL magic to pretty-format these other
types.
- wtf/text/StringConcatenate.h:
(WTF::sumWithOverflow): This unconditionally does the sum for all
inputs, which the compiler is more likely to appreciate (because
it's the common case) compared to testing for overflow and bailing
on each addition
(WTF::are8Bit): are: the plural of is!
(WTF::makeStringAccumulator): accumulate strings
(WTF::tryMakeStringFromAdapters): a small helper which creates the string adapters
(WTF::tryMakeString): expose out of WTF, since it's part of this file's used API
(WTF::makeString): make it variadic
- 10:47 AM Changeset in webkit [209760] by
-
- 14 edits3 adds1 delete in trunk
[WebIDL] Remove use of Dictionary in ApplePaySession
https://bugs.webkit.org/show_bug.cgi?id=165787
Reviewed by Anders Carlsson.
Source/WebCore:
First take at generating the bindings for ApplePaySession and removing
all use of Dictionary.
- Removes all use of Dictionary!
- Removes use of logging errors to the console with improved Exception messages.
- Use ExceptionOr extensively to pass exception state.
Still to do:
- Reconcile / merge ApplePaySession::PaymentRequest with WebCore::PaymentRequest and all the sub-objects held within.
- Remove PaymentRequestValidator entirely, merging validation into the validation we already do in ApplePaySession.cpp
- Make ApplePayEvents use generated dictionary creation code.
Test: http/tests/ssl/applepay/ApplePaySession.html
- Modules/applepay/ApplePaySession.cpp:
(WebCore::convertAndValidate):
(WebCore::canCallApplePaySessionAPIs):
(WebCore::ApplePaySession::create):
(WebCore::ApplePaySession::ApplePaySession):
(WebCore::ApplePaySession::supportsVersion):
(WebCore::ApplePaySession::canMakePayments):
(WebCore::ApplePaySession::canMakePaymentsWithActiveCard):
(WebCore::ApplePaySession::openPaymentSetup):
(WebCore::ApplePaySession::begin):
(WebCore::ApplePaySession::completeMerchantValidation):
(WebCore::ApplePaySession::completeShippingMethodSelection):
(WebCore::ApplePaySession::completeShippingContactSelection):
(WebCore::ApplePaySession::completePaymentMethodSelection):
(WebCore::ApplePaySession::didSelectShippingMethod):
(WebCore::createContactFields): Deleted.
(WebCore::toLineItemType): Deleted.
(WebCore::isValidLineItemPropertyName): Deleted.
(WebCore::createLineItem): Deleted.
(WebCore::createLineItems): Deleted.
(WebCore::createMerchantCapabilities): Deleted.
(WebCore::createSupportedNetworks): Deleted.
(WebCore::toShippingType): Deleted.
(WebCore::isValidShippingMethodPropertyName): Deleted.
(WebCore::createShippingMethod): Deleted.
(WebCore::createShippingMethods): Deleted.
(WebCore::isValidPaymentRequestPropertyName): Deleted.
(WebCore::createPaymentRequest): Deleted.
- Modules/applepay/ApplePaySession.h:
Replace hand written dictionary extraction code with autogenerated code
and hand written additional validation.
- Modules/applepay/ApplePaySession.idl:
Add helper dictionaries and enums.
- Modules/applepay/PaymentRequestValidator.cpp:
(WebCore::PaymentRequestValidator::validate):
(WebCore::PaymentRequestValidator::validateTotal):
(WebCore::validateCountryCode):
(WebCore::validateCurrencyCode):
(WebCore::validateMerchantCapabilities):
(WebCore::validateSupportedNetworks):
(WebCore::validateShippingMethod):
(WebCore::validateShippingMethods):
(WebCore::PaymentRequestValidator::PaymentRequestValidator): Deleted.
(WebCore::PaymentRequestValidator::~PaymentRequestValidator): Deleted.
(WebCore::PaymentRequestValidator::validateCountryCode): Deleted.
(WebCore::PaymentRequestValidator::validateCurrencyCode): Deleted.
(WebCore::PaymentRequestValidator::validateMerchantCapabilities): Deleted.
(WebCore::PaymentRequestValidator::validateShippingMethod): Deleted.
(WebCore::PaymentRequestValidator::validateSupportedNetworks): Deleted.
(WebCore::PaymentRequestValidator::validateShippingMethods): Deleted.
- Modules/applepay/PaymentRequestValidator.h:
Instead of reporting the validation errors to the console, pass them in the exception.
This allows us to remove the window member, and move the helpers to the implementation
file as statics.
- WebCore.xcodeproj/project.pbxproj:
Remove file.
- bindings/generic/IDLTypes.h:
(WebCore::IDLObject::nullValue):
(WebCore::IDLObject::isNullValue):
(WebCore::IDLObject::extractValueFromNullable):
Add nullability traits for IDLObject.
- bindings/js/JSApplePaySessionCustom.cpp:
Removed.
Tools:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration):
(WTR::TestController::platformCreateWebView):
Enable ApplePay for the tests (where supported).
LayoutTests:
- http/tests/ssl/applepay: Added.
- http/tests/ssl/applepay/ApplePaySession-expected.txt: Added.
- http/tests/ssl/applepay/ApplePaySession.html: Added.
Add a compressive test of the handling of the payment request to the ApplePaySession
constructor. For further testing, we will need to mock out bits of the underlying
coordinator, but this allows for testing the aspect I am changing. The applepay
directory is in the ssl directory, as all use of ApplePay requires https.
- TestExpectations:
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
Only enable the tests on iOS 10.10 and greater, and macOS 10.12 and greater, WebKit2.
- 10:21 AM Changeset in webkit [209759] by
-
- 5 edits8 adds in trunk
CSP: Teach the preload scanner about the 'nonce' attribute
https://bugs.webkit.org/show_bug.cgi?id=161192
<rdar://problem/28010354>
Reviewed by Darin Adler.
Source/WebCore:
This patch was inspired by a similar Blink change:
<https://chromium.googlesource.com/chromium/src/+/dde5487f380cf774e4c0e96ba7f88ea68e723907>
Preload external scripts and stylesheets whose HTML script and link elements have a nonce
attribute that is listed in the Content Security Policy (CSP) of the page.
Currently the preload scanner ignores the nonce attribute on HTML script and link elements.
So, WebKit does not preload their associated subresources unless the value of the src
attribute or href attribute is whitelisted in the CSP of the page for script and link
elements, respectively. Instead the preload scanner should recognize the nonce attribute on
script and link elements and query the CSP of the page with it. If the nonce attribute is
whitelisted then the request should be preloaded.
Tests: http/tests/loading/do-not-preload-css-blocked-by-csp.html
http/tests/loading/do-not-preload-script-src-blocked-by-csp.html
http/tests/loading/preload-css-with-csp-nonce.html
http/tests/loading/preload-script-src-with-csp-nonce.html
- html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest): Set the nonce on the
PreloadRequest to the nonce that we found during the scan.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): For script and link tag names,
save the value of the nonce attribute (if it has one).
- html/parser/HTMLResourcePreloader.cpp:
(WebCore::PreloadRequest::resourceRequest): Skip CSP policy check if the nonce is listed in
the CSP of the page.
- html/parser/HTMLResourcePreloader.h:
(WebCore::PreloadRequest::setNonce): Added.
LayoutTests:
Add tests to ensure that we preload <script>s and <link>s whose nonce is allowed by the
Content Security Policy of the page.
- http/tests/loading/do-not-preload-css-blocked-by-csp-expected.txt: Added.
- http/tests/loading/do-not-preload-css-blocked-by-csp.html: Added.
- http/tests/loading/do-not-preload-script-src-blocked-by-csp-expected.txt: Added.
- http/tests/loading/do-not-preload-script-src-blocked-by-csp.html: Added.
- http/tests/loading/preload-css-with-csp-nonce-expected.txt: Added.
- http/tests/loading/preload-css-with-csp-nonce.html: Added.
- http/tests/loading/preload-script-src-with-csp-nonce-expected.txt: Added.
- http/tests/loading/preload-script-src-with-csp-nonce.html: Added.
- 9:39 AM Changeset in webkit [209758] by
-
- 20 edits in trunk/Source/WebCore
[CSS Parser] Rename CSSPrimitiveValue::UnitTypes to CSSPrimitiveValue::UnitType
https://bugs.webkit.org/show_bug.cgi?id=165776
Reviewed by Zalan Bujtas.
- css/CSSCalculationValue.cpp:
(WebCore::unitCategory):
(WebCore::hasDoubleValue):
(WebCore::determineCategory):
(WebCore::CSSCalcExpressionNodeParser::parseValue):
- css/CSSCalculationValue.h:
- css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::unitCategory):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::computeLengthDouble):
(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor):
(WebCore::CSSPrimitiveValue::getFloatValue):
(WebCore::CSSPrimitiveValue::doubleValue):
(WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
(WebCore::CSSPrimitiveValue::doubleValueInternal):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
- css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::isFontRelativeLength):
(WebCore::CSSPrimitiveValue::isLength):
(WebCore::CSSPrimitiveValue::isResolution):
(WebCore::CSSPrimitiveValue::createAllowingMarginQuirk):
- css/CSSValue.h:
- css/CSSValuePool.cpp:
(WebCore::CSSValuePool::createValue):
- css/CSSValuePool.h:
(WebCore::CSSValuePool::createValue):
- css/MediaQueryExp.cpp:
(WebCore::featureWithValidDensity):
(WebCore::MediaQueryExpression::MediaQueryExpression):
- css/parser/CSSParserFastPaths.cpp:
(WebCore::parseSimpleLength):
(WebCore::parseSimpleLengthValue):
(WebCore::parseColorIntOrPercentage):
(WebCore::fastParseColorInternal):
(WebCore::parseTransformTranslateArguments):
(WebCore::parseTransformNumberArguments):
- css/parser/CSSParserToken.cpp:
(WebCore::cssPrimitiveValueUnitFromTrie):
(WebCore::stringToUnitType):
(WebCore::CSSParserToken::CSSParserToken):
(WebCore::CSSParserToken::convertToPercentage):
- css/parser/CSSParserToken.h:
(WebCore::CSSParserToken::unitType):
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::consumeTransformOrigin):
(WebCore::consumeCounter):
(WebCore::consumeAnimationName):
(WebCore::consumePerspective):
(WebCore::consumePositionLonghand):
(WebCore::consumeCounterContent):
(WebCore::consumeReflect):
(WebCore::consumeGridBreadth):
(WebCore::CSSPropertyParser::consumeFlex):
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeNumber):
(WebCore::CSSPropertyParserHelpers::consumeInteger):
(WebCore::CSSPropertyParserHelpers::consumeLength):
(WebCore::CSSPropertyParserHelpers::consumePercent):
(WebCore::CSSPropertyParserHelpers::consumeAngle):
(WebCore::CSSPropertyParserHelpers::consumeTime):
(WebCore::CSSPropertyParserHelpers::consumeCustomIdent):
(WebCore::CSSPropertyParserHelpers::consumeString):
(WebCore::CSSPropertyParserHelpers::consumeUrl):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientPoint):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientColorStop):
(WebCore::CSSPropertyParserHelpers::consumeCrossFade):
(WebCore::CSSPropertyParserHelpers::consumeImageSet):
(WebCore::CSSPropertyParserHelpers::consumeFilterFunction):
- css/parser/MediaQueryParser.cpp:
(WebCore::MediaQueryParser::readFeatureValue):
- css/parser/SizesAttributeParser.cpp:
(WebCore::SizesAttributeParser::computeLength):
- css/parser/SizesAttributeParser.h:
- dom/StyledElement.cpp:
(WebCore::StyledElement::setInlineStyleProperty):
(WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
- dom/StyledElement.h:
- svg/SVGLengthValue.cpp:
(WebCore::SVGLengthValue::toCSSPrimitiveValue):
- 8:59 AM Changeset in webkit [209757] by
-
- 6 edits in trunk
Annotate MediaStream and WebRTC idl with EnabledAtRuntime flag
https://bugs.webkit.org/show_bug.cgi?id=165251
Reviewed by Youenn Fablet.
Source/WebCore:
No new tests, fixes an API test.
- page/Settings.in: Delete mediaStreamEnabled and peerConnectionEnabled, we don't need a
setting and a runtime feature.
Source/WebKit2:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Update the media stream and peer connection runtime
feature instead of the setting.
Tools:
- TestWebKitAPI/Tests/WebKit2/EnumerateMediaDevices.cpp:
(TestWebKitAPI::TEST): Enable MediaStream, create web view from the page group upon which
the preferences have been set.
- 8:08 AM Changeset in webkit [209756] by
-
- 13 edits2 adds in trunk
Source/WebCore:
REGRESSION (r198990): Cannot edit content inside <details> in wysiwyg editor
https://bugs.webkit.org/show_bug.cgi?id=165757
Reviewed by Andreas Kling.
Test: fast/html/details-edit.html
-webkit-user-modify is reset on shadow boundary so it doesn't go through <details> shadow tree.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::applyMatchedProperties):
- dom/Node.cpp:
(WebCore::computeEditabilityFromComputedStyle):
(WebCore::Node::computeEditability):
Make -webkit-user-modify (which we would want to get rid of completely eventually) have no effect in shadow trees.
Check for contenteditable directly instead.
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::createInnerTextStyle):
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::createInnerTextStyle):
- html/shadow/TextControlInnerElements.cpp:
- rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::createFlowThreadStyle):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
- rendering/RenderListItem.cpp:
(WebCore::RenderListItem::styleDidChange):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::createAnonymousStyleWithDisplay):
(WebCore::RenderStyle::createStyleInheritingFromPseudoStyle):
(WebCore::RenderStyle::inheritFrom):
Let -webkit-user-modify inherit through shadow boundary as normal.
- rendering/style/RenderStyle.h:
LayoutTests:
REGRESSION (r198990): Safari - Cannot edit content inside <details> in wysiwyg editor
https://bugs.webkit.org/show_bug.cgi?id=165757
Reviewed by Andreas Kling.
- editing/execCommand/justify-right-then-indent-with-problematic-body-expected.txt:
- fast/html/details-edit-expected.txt: Added.
- fast/html/details-edit.html: Added.
- 4:49 AM Changeset in webkit [209755] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, silence -Wsuggest-attribute for GCC with pragmas
- wtf/PrintStream.cpp:
(WTF::PrintStream::printfVariableFormat):
- 4:25 AM Changeset in webkit [209754] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
Update test expectations on Windows for failing tests. These failures are tracked in
https://bugs.webkit.org/show_bug.cgi?id=160447.
- platform/win/TestExpectations:
- 2:23 AM Changeset in webkit [209753] by
-
- 2 edits in trunk/Source/WebKit2
Fix GTK build after r209733
https://bugs.webkit.org/show_bug.cgi?id=165794
Document::visibilityState() now returns an IDL string enumeration.
Reviewed by Žan Doberšek.
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp:
(webkit_dom_document_get_visibility_state):
Dec 12, 2016:
- 9:17 PM Changeset in webkit [209752] by
-
- 24 edits in trunk
Remove bindings generation support for legacy WebCore::Dictionary
https://bugs.webkit.org/show_bug.cgi?id=165762
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/datachannel-emptystring-expected.txt:
- web-platform-tests/webrtc/no-media-call-expected.txt:
- web-platform-tests/webrtc/promises-call-expected.txt:
- web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor-expected.txt:
- web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt:
Updated to expect error messages with "dictionary" with a lowercase D.
Source/WebCore:
After this patch, all use of legacy WebCore::Dictionary is within custom bindings or
inside the DOM code itself. Bindings generation machinery no longer has a special
type named "Dictionary" but has increasingly good support for IDL-defined dictionaries.
- Modules/applepay/ApplePaySession.cpp:
(WebCore::ApplePaySession::create): Take ExecState and a JSValue rather than a Dictionary.
(WebCore::ApplePaySession::completeMerchantValidation): Ditto.
- Modules/applepay/ApplePaySession.h: Updated for the above changes.
- Modules/applepay/ApplePaySession.idl: For this last file using Dictionary in IDL, move
to "[CallWith=ScriptState]" and "any" as a stopgap. Later we can return and use IDL
dictionaries or other more modern solutions.
- Modules/mediastream/MediaDevices.idl: For the custom binding written in JavaScript,
use the type mentioned in the specification rather than Dictionary. The bindings generator
ignores the type, so this is more like changing a comment rather than changing source code.
- Modules/mediastream/RTCPeerConnection.js:
(initializeRTCPeerConnection): Refer to a non-object as not a valid "dictionary", lowercase
rather than "Dictionary".
- Modules/mediastream/RTCPeerConnectionInternals.js:
(callbacksAndDictionaryOverload): Ditto.
- bindings/generic/IDLTypes.h: Removed IDLLegacyDictionary.
- bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::getHashAlgorithm): Fixed a comment.
- bindings/js/JSDOMConvert.h:
(WebCore::Converter<IDLLegacyDictionary<T>>::convert): Deleted.
- bindings/scripts/CodeGenerator.pm:
(IsBuiltinType): Removed special case for "Dictionary".
- bindings/scripts/CodeGeneratorJS.pm:
(AddToIncludesForIDLType): Ditto.
(AreTypesDistinguishableForOverloadResolution): Ditto.
(GenerateOverloadedFunctionOrConstructor): Ditto.
(GenerateParametersCheck): Ditto.
(GetBaseIDLType): Ditto.
- bindings/scripts/test/JS/JSTestObj.cpp: Regenerated results.
- bindings/scripts/test/TestObj.idl: Removed test case for Dictionary.
LayoutTests:
- fast/mediastream/RTCPeerConnection-expected.txt:
- fast/mediastream/RTCPeerConnection-overloaded-operations-params-expected.txt:
- fast/mediastream/RTCPeerConnection-overloaded-operations-params.html:
Updated to expect error messages with "dictionary" with a lowercase D.
- 6:20 PM Changeset in webkit [209751] by
-
- 2 edits in trunk/Source/WebCore
Drop unnecessary null check in removeDetachedChildrenInContainer()
https://bugs.webkit.org/show_bug.cgi?id=165778
Reviewed by Alex Christensen.
Drop unnecessary null check in removeDetachedChildrenInContainer().
Node cannot be null but we do an implicit null check.
No new tests, no Web-exposed behavior change.
- dom/ContainerNodeAlgorithms.cpp:
(WebCore::removeDetachedChildrenInContainer):
- 6:05 PM Changeset in webkit [209750] by
-
- 3 edits2 adds in trunk
Add Document.onvisibilitychange event handler attribute
https://bugs.webkit.org/show_bug.cgi?id=165784
Reviewed by Daniel Bates.
Source/WebCore:
Add Document.onvisibilitychange event handler attribute as per Page
Visibility Level 2 API:
Test: fast/events/page-visibility-onvisibilitychange.html
- dom/Document.idl:
LayoutTests:
Add layout test coverage.
- fast/events/page-visibility-onvisibilitychange-expected.txt: Added.
- fast/events/page-visibility-onvisibilitychange.html: Added.
- 5:32 PM Changeset in webkit [209749] by
-
- 2 edits4 moves15 adds in trunk/LayoutTests
[WebCrypto] Migrate some tests from webkitSubtle to subtle
https://bugs.webkit.org/show_bug.cgi?id=165554
Reviewed by Brent Fulgham.
To improve test coverage for subtle.
- crypto/crypto-key-algorithm-gc-expected.txt: Renamed from LayoutTests/crypto/webkitSubtle/crypto-key-algorithm-gc-expected.txt.
- crypto/crypto-key-algorithm-gc.html: Renamed from LayoutTests/crypto/webkitSubtle/crypto-key-algorithm-gc.html.
- crypto/crypto-key-usages-gc-expected.txt: Renamed from LayoutTests/crypto/webkitSubtle/crypto-key-usages-gc-expected.txt.
- crypto/crypto-key-usages-gc.html: Renamed from LayoutTests/crypto/webkitSubtle/crypto-key-usages-gc.html.
- crypto/subtle/resources/rsa-indexeddb-non-exportable.js: Added.
- crypto/subtle/resources/rsa-indexeddb.js: Added.
- crypto/subtle/rsa-indexeddb-expected.txt: Added.
- crypto/subtle/rsa-indexeddb-non-exportable-expected.txt: Added.
- crypto/subtle/rsa-indexeddb-non-exportable-private-expected.txt: Added.
- crypto/subtle/rsa-indexeddb-non-exportable-private.html: Added.
- crypto/subtle/rsa-indexeddb-non-exportable.html: Added.
- crypto/subtle/rsa-indexeddb-private-expected.txt: Added.
- crypto/subtle/rsa-indexeddb-private.html: Added.
- crypto/subtle/rsa-indexeddb.html: Added.
- crypto/subtle/rsa-oaep-plaintext-length-expected.txt: Added.
- crypto/subtle/rsa-oaep-plaintext-length.html: Added.
- crypto/subtle/rsassa-pkcs1-v1_5-generate-key-with-leading-zeroes-in-exponent-expected.txt: Added.
- crypto/subtle/rsassa-pkcs1-v1_5-generate-key-with-leading-zeroes-in-exponent.html: Added.
- platform/ios-simulator-wk1/TestExpectations:
- 5:05 PM Changeset in webkit [209748] by
-
- 1 edit1 add in trunk/Source/WebInspectorUI
[GTK] Web Inspector: Add NavigationItemCodeCoverage.svg icon
https://bugs.webkit.org/show_bug.cgi?id=165698
Reviewed by Joseph Pecoraro.
- UserInterface/Images/gtk/NavigationItemCodeCoverage.svg: Added.
Match in style the existing NavigationItemTypes.svg icon.
- 4:45 PM Changeset in webkit [209747] by
-
- 12 edits in trunk/Source
[iOS] MediaDocument "Done" button should navigate the page back
https://bugs.webkit.org/show_bug.cgi?id=165779
Reviewed by Sam Weinig.
Source/WebCore:
Detect if the exit from fullscreen was caused by the Done button,
and if so, tell the page to navigate back.
Unfortunately this is not yet testable. It's waiting on the
UI-based device testing in development by the media team.
- platform/cocoa/WebVideoFullscreenModel.h: Add a finishedWithMedia parameter to
requestFullscreenMode, to indicate if the change in mode is associated with
the closing of the media document.
- platform/cocoa/WebVideoFullscreenModelVideoElement.h:
- platform/cocoa/WebVideoFullscreenModelVideoElement.mm:
(WebVideoFullscreenModelVideoElement::requestFullscreenMode): If we're a media
document, and we say we're finished with the media, tell the document
to navigate back a page.
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::requestFullscreenMode):
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
Source/WebKit2:
- UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
- UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenModelContext::requestFullscreenMode):
(WebKit::WebVideoFullscreenManagerProxy::requestFullscreenMode):
- WebProcess/cocoa/WebVideoFullscreenManager.h:
- WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
- WebProcess/cocoa/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::requestFullscreenMode):
- 4:37 PM Changeset in webkit [209746] by
-
- 2 edits in trunk/Source/WebKit/mac
Remove unused workaround for Silverlight
https://bugs.webkit.org/show_bug.cgi?id=165773
Patch by Alex Christensen <achristensen@webkit.org> on 2016-12-12
Reviewed by Dean Jackson.
- Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView _workaroundSilverlightFullscreenBug:]): Deleted.
This code was introduced in January 2010. Microsoft fixed their bug shortly thereafter.
Allowing 6 years for users to update Silverlight is more than enough.
Safari doesn't even use WebKit1 for this any more.
I need this to be removed because this is the only non-WebGL code that needs to link against
the OpenGL framework, and I'm changing how that is done to link only through ANGLE instead.
- 4:35 PM Changeset in webkit [209745] by
-
- 2 edits in trunk/Source/WebCore
Infinite recursion when viewport is set to the size of the content but the content overflows the viewport.
https://bugs.webkit.org/show_bug.cgi?id=165775
rdar://problem/29366628
Reviewed by Simon Fraser.
In certain cases when the viewport is sized to accomodate the content and
the content always overflows the viewport, we might end up in recursive FrameView::layout calls.
This is specific to content with viewport units, because we always invalidate elements with vw/vh units on
viewport size change. However if this viewport size change is in response to content size change (layout),
invalidating elements could trigger synchronous layout, while we are still inside this current layout.
This is very similar to the m_setNeedsLayoutWasDeferred case and they should eventually be merged.
It also means that we might be behind by one layout on elements with vw/vh units (fixed layout only though).
Currently not testable.
- page/FrameView.cpp:
(WebCore::FrameView::availableContentSizeChanged):
- 4:28 PM Changeset in webkit [209744] by
-
- 8 edits in trunk/Source/WebCore
Memory warning logging appears to capture resident footprint, missing compress/swap.
https://bugs.webkit.org/show_bug.cgi?id=165533
<rdar://problem/29318410>
Reviewed by Andreas Kling.
Have platformMemoryUsage return both resident and resident + swapped
values. This is now returned as a struct in a std::optional to better
support cases where values cannot or are not returned. Report these
values in logMemoryUsageChange.
Remove most of the ReliefLogger instances and their messages. We no
longer free up fastMalloc memory after each memory-release operation,
so there are no memory regions returned to the OS. Instead, we now
free up fastMalloc memory regions at the end of all memory-releasing
operations in one fell swoop and report a grand total of memory
returned.
No new tests -- no changes to user accessible functionality.
- page/MemoryRelease.cpp:
(WebCore::releaseNoncriticalMemory):
(WebCore::releaseCriticalMemory):
(WebCore::releaseMemory):
- page/cocoa/MemoryReleaseCocoa.mm:
(WebCore::platformReleaseMemory):
- platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::releaseMemory):
(WebCore::MemoryPressureHandler::ReliefLogger::logMemoryUsageChange):
(WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
- platform/MemoryPressureHandler.h:
(WebCore::MemoryPressureHandler::ReliefLogger::ReliefLogger):
(WebCore::MemoryPressureHandler::ReliefLogger::~ReliefLogger):
(WebCore::MemoryPressureHandler::ReliefLogger::loggingEnabled):
- platform/cocoa/MemoryPressureHandlerCocoa.mm:
(WebCore::MemoryPressureHandler::platformReleaseMemory):
(WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
- platform/linux/MemoryPressureHandlerLinux.cpp:
- platform/win/MemoryPressureHandlerWin.cpp:
(WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
- 4:23 PM Changeset in webkit [209743] by
-
- 5 edits in tags/Safari-603.1.15.1
Merge r209485. rdar://problem/29502055
- 4:23 PM Changeset in webkit [209742] by
-
- 5 edits in tags/Safari-603.1.15.1
Merge r209479. rdar://problem/29502055
- 4:21 PM Changeset in webkit [209741] by
-
- 5 edits in tags/Safari-603.1.14.4
Merge r209485. rdar://problem/29502055
- 4:21 PM Changeset in webkit [209740] by
-
- 5 edits in tags/Safari-603.1.14.4
Merge r209479. rdar://problem/29502055
- 4:19 PM Changeset in webkit [209739] by
-
- 5 edits in tags/Safari-603.1.14.4/Source
Versioning.
- 4:12 PM Changeset in webkit [209738] by
-
- 3 edits3 adds in trunk/PerformanceTests
More IndexedDB perf tests.
https://bugs.webkit.org/show_bug.cgi?id=165634
Reviewed by Sam Weinig.
- IndexedDB/index-multientry.html:
- IndexedDB/large-number-of-inserts-responsiveness.html: Added.
- IndexedDB/large-number-of-inserts.html: Added.
- IndexedDB/objectstore-cursor.html: Added. Runtime cut in 1/4th compared to r209672.
- resources/runner.js:
- 4:11 PM Changeset in webkit [209737] by
-
- 1 copy in tags/Safari-603.1.14.4
New tag.
- 4:07 PM Changeset in webkit [209736] by
-
- 5 edits in trunk/Source/WebKit2
Provide SPI to avoid blocking on painting when coming into view
https://bugs.webkit.org/show_bug.cgi?id=165780
<rdar://problem/29009559>
Reviewed by Simon Fraser.
By default, when parenting a WKWebView which was previously in-window,
we block on painting to ensure that we don't flash stale content.
We added SPI to disable this behavior to WKWebViewConfiguration, but
some clients might want the behavior most of the time, but sometimes
instead want to not block the UI process main thread, but instead do
their own work (e.g. removing a snapshot) when painting eventually occurs.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForPainting:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Tell WebPageProxy not to block on painting next time we are parented,
and use doAfterNextPresentationUpdate to call the block when the painting
does eventually happen. This SPI must be called before - but in the same
runloop cycle - the WKWebView is brought back in-window to work correctly.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchActivityStateChange):
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::skipWaitingForPaintAfterNextViewDidMoveToWindow):
If we would block because we're coming in-window, but the bit to skip
blocking the next time we get brought in-window is set, reset the bit,
and avoid blocking.
- 3:56 PM Changeset in webkit [209735] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, follow-up after r209706.
- inspector/debugger/breakpoint-action-log.html:
Add missing test case description.
- 3:36 PM Changeset in webkit [209734] by
-
- 2 edits3 adds in trunk/LayoutTests
Web Inspector: Add tests for Fetch API Network Data (CORs, Opaque Responses, Filtered Headers)
https://bugs.webkit.org/show_bug.cgi?id=165683
Reviewed by Brian Burg.
- http/tests/inspector/network/fetch-network-data-expected.txt: Added.
- http/tests/inspector/network/fetch-network-data.html: Added.
- http/tests/inspector/network/resources/cors-data.pl: Added.
- http/tests/inspector/resources/inspector-test.js:
- 3:27 PM Changeset in webkit [209733] by
-
- 14 edits1 delete in trunk/Source
Document.visibilityState should use an IDL string enumeration
https://bugs.webkit.org/show_bug.cgi?id=165774
Reviewed by Daniel Bates.
Source/WebCore:
Document.visibilityState should use an IDL string enumeration:
No new tests, there should be no Web-exposed behavior change.
- CMakeLists.txt:
- Modules/vibration/NavigatorVibration.cpp:
(WebCore::NavigatorVibration::vibrate):
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::Document::hidden):
(WebCore::Document::pageVisibilityState): Deleted.
(WebCore::Document::visibilityState): Deleted.
- dom/Document.h:
- dom/Document.idl:
- page/Page.cpp:
(WebCore::Page::visibilityState):
- page/PageVisibilityState.cpp: Removed.
- page/PageVisibilityState.h:
(): Deleted.
Source/WebKit/mac:
- DOM/DOMDocument.mm:
(-[DOMDocument visibilityState]):
- WebView/WebView.mm:
(kit):
Source/WebKit2:
- Shared/API/c/WKSharedAPICast.h:
(WebKit::toPageVisibilityState):
- 3:25 PM Changeset in webkit [209732] by
-
- 5 edits40 adds in branches/safari-602-branch
Merge r209540.
- 3:21 PM Changeset in webkit [209731] by
-
- 5 edits in tags/Safari-603.1.15.1/Source
Versioning.
- 3:12 PM Changeset in webkit [209730] by
-
- 16 edits2 deletes in trunk
Remove implementation of legacy Mozilla-based Fullscreen API.
https://bugs.webkit.org/show_bug.cgi?id=165689
Source/WebCore:
Reviewed by Eric Carlson.
Alias the legacy webkitRequestFull_S_creen() function on Element to webkitRequestFull_s_creen().
Remove the custom behavior in Document::requestFullScreenForElement() to handle the legacy path.
- dom/Document.cpp:
(WebCore::Document::requestFullScreenForElement):
- dom/Document.h:
- dom/Element.cpp:
(WebCore::Element::webkitRequestFullscreen):
(WebCore::Element::webkitRequestFullScreen): Deleted.
- dom/Element.h:
- dom/Element.idl:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::enterFullscreen):
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
Source/WebKit/mac:
<rdar://problem/29603053>
Reviewed by Eric Carlson.
- DOM/DOMElement.mm:
(-[DOMElement webkitRequestFullScreen:]):
LayoutTests:
Reviewed by Eric Carlson.
- fullscreen/full-screen-css-expected.txt:
- fullscreen/full-screen-css.html:
- fullscreen/full-screen-keyboard-disabled-expected.txt: Removed.
- fullscreen/full-screen-keyboard-disabled.html: Removed.
- fullscreen/full-screen-twice-expected.txt:
- fullscreen/full-screen-twice.html:
- js/dom/dom-static-property-for-in-iteration-expected.txt:
- 3:11 PM Changeset in webkit [209729] by
-
- 1 copy in tags/Safari-603.1.15.1
New tag.
- 3:11 PM Changeset in webkit [209728] by
-
- 4 edits in trunk/Source/JavaScriptCore
Rename BytecodeGenerator's ControlFlowContext to ControlFlowScope.
https://bugs.webkit.org/show_bug.cgi?id=165777
Reviewed by Keith Miller.
The existing code sometimes refer to ControlFlowContext (and associated references)
as context, and sometimes as scope. Let's be consistent and always call it a scope.
Also renamed push/popScopedControlFlowContext() to push/popLocalControlFlowScope()
because these are only used when we inc/dec the m_localScopeDepth.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::initializeVarLexicalEnvironment):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):
(JSC::BytecodeGenerator::popLexicalScopeInternal):
(JSC::BytecodeGenerator::emitPushWithScope):
(JSC::BytecodeGenerator::emitPopWithScope):
(JSC::BytecodeGenerator::pushFinallyControlFlowScope):
(JSC::BytecodeGenerator::pushIteratorCloseControlFlowScope):
(JSC::BytecodeGenerator::popFinallyControlFlowScope):
(JSC::BytecodeGenerator::popIteratorCloseControlFlowScope):
(JSC::BytecodeGenerator::emitComplexPopScopes):
(JSC::BytecodeGenerator::emitPopScopes):
(JSC::BytecodeGenerator::pushLocalControlFlowScope):
(JSC::BytecodeGenerator::popLocalControlFlowScope):
(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::pushFinallyContext): Deleted.
(JSC::BytecodeGenerator::pushIteratorCloseContext): Deleted.
(JSC::BytecodeGenerator::popFinallyContext): Deleted.
(JSC::BytecodeGenerator::popIteratorCloseContext): Deleted.
(JSC::BytecodeGenerator::pushScopedControlFlowContext): Deleted.
(JSC::BytecodeGenerator::popScopedControlFlowContext): Deleted.
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::TryNode::emitBytecode):
- 2:06 PM Changeset in webkit [209727] by
-
- 6 edits2 adds in trunk/Source/JavaScriptCore
GC scheduler should avoid consecutive pauses
https://bugs.webkit.org/show_bug.cgi?id=165758
Reviewed by Michael Saboff.
This factors out the scheduler from lambdas in Heap::markToFixpoint to an actual class.
It's called the SpaceTimeScheduler because it is a linear controller that ties the
amount of time you spend on things to the amount of space you are using.
This patch uses this refactoring to fix a bug where the GC would pause even though we
still had time during a mutator timeslice. This is a 15% improvement on
JetStream/splay-latency. Seems neutral on everything else. However, it's not at all
clear if this is the right policy or not since retreating wavefront can sometimes be so
sensitive to scheduling decisions. For this reason, there is a tunable option that lets
you decide how long the GC will sit idle before the start of its timeslice.
So, we can revert this policy change in this patch without reverting the patch.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- heap/Heap.cpp:
(JSC::Heap::markToFixpoint):
- heap/Heap.h:
- heap/SpaceTimeScheduler.cpp: Added.
(JSC::SpaceTimeScheduler::Decision::targetMutatorUtilization):
(JSC::SpaceTimeScheduler::Decision::targetCollectorUtilization):
(JSC::SpaceTimeScheduler::Decision::elapsedInPeriod):
(JSC::SpaceTimeScheduler::Decision::phase):
(JSC::SpaceTimeScheduler::Decision::shouldBeResumed):
(JSC::SpaceTimeScheduler::Decision::timeToResume):
(JSC::SpaceTimeScheduler::Decision::timeToStop):
(JSC::SpaceTimeScheduler::SpaceTimeScheduler):
(JSC::SpaceTimeScheduler::snapPhase):
(JSC::SpaceTimeScheduler::currentDecision):
- heap/SpaceTimeScheduler.h: Added.
(JSC::SpaceTimeScheduler::Decision::Decision):
(JSC::SpaceTimeScheduler::Decision::operator bool):
- runtime/Options.h:
- 1:49 PM Changeset in webkit [209726] by
-
- 5 edits in trunk/Source/WebCore
[CSS Parser] MediaQueryParser should use Ref and not RefPtr
https://bugs.webkit.org/show_bug.cgi?id=165771
Reviewed by Simon Fraser.
- css/MediaList.cpp:
(WebCore::MediaQuerySet::create):
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeImportRule):
(WebCore::CSSParserImpl::consumeMediaRule):
- css/parser/MediaQueryParser.cpp:
(WebCore::MediaQueryParser::parseMediaQuerySet):
(WebCore::MediaQueryParser::parseMediaCondition):
(WebCore::MediaQueryParser::parseInternal):
- css/parser/MediaQueryParser.h:
- 1:46 PM Changeset in webkit [209725] by
-
- 105 edits14 adds in trunk
REGRESSION(r209653): speedometer crashes making virtual slow path tailcalls
https://bugs.webkit.org/show_bug.cgi?id=165748
Reviewed by Filip Pizlo.
JSTests:
New regression test.
- stress/regress-165748.js: Added.
(sum1):
(sum2):
(sum3):
(sum4):
(sum5):
(sum6):
(tailCaller):
(test):
Source/JavaScriptCore:
The virtual slow path for tailcalls always passes arguments on the stack.
The fix here is to link to the stack argument entrypoint instead of a register
argument entrypoint.
While fixing this bug, I found that we weren't clearing the code origin when
shuffling the call frame for a register argument tailcall.
Also rolling back in r209653, r209654, r209663, and r209673.
- jit/CallFrameShuffler.cpp:
(JSC::CallFrameShuffler::prepareAny):
- jit/ThunkGenerators.cpp:
(JSC::virtualThunkFor):
Source/WTF:
Rolling back in r209653, r209654, r209663, and r209673.
- wtf/Platform.h:
- 1:26 PM Changeset in webkit [209724] by
-
- 2 edits in trunk/JSTests
Debug JSC test timeout: stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js.ftl-no-cjit.
https://bugs.webkit.org/show_bug.cgi?id=164630
Reviewed by Keith Miller.
Speculative fix for timeout issue. It looks like this test just runs a bit
slower on debug builds. So, we'll give it a little more time to run.
- stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
- 1:03 PM Changeset in webkit [209723] by
-
- 3 edits in trunk/Source/JavaScriptCore
Rename BytecodeGenerator's m_symbolTableStack to m_lexicalScopeStack.
https://bugs.webkit.org/show_bug.cgi?id=165768
Reviewed by Saam Barati.
The lexical scope in "m_lexicalScopeStack" here refers to a pair of { } in the
source code that bounds the scope of variables.
There are 4 places in the code where we call m_symbolTableStack.append() to
append a new stack entry. In only 3 of the 4 cases, a symbol table is provided
in the new stack entry. In all 4 cases, a scope register is provided in the new
stack entry.
Also, 3 of the 4 functions that appends an entry to this stack are named:
- initializeVarLexicalEnvironment()
- pushLexicalScopeInternal()
- emitPushWithScope()
The 4th function is the BytecodeGenerator constructor where it pushes the scope
for a module environment.
Based on these details, m_lexicalScopeStack is a better name for this stack than
m_symbolTableStack.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::initializeVarLexicalEnvironment):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):
(JSC::BytecodeGenerator::initializeBlockScopedFunctions):
(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):
(JSC::BytecodeGenerator::popLexicalScopeInternal):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::resolveType):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitPushWithScope):
(JSC::BytecodeGenerator::emitPopWithScope):
(JSC::BytecodeGenerator::pushFinallyContext):
(JSC::BytecodeGenerator::pushIteratorCloseContext):
(JSC::BytecodeGenerator::emitComplexPopScopes):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
- bytecompiler/BytecodeGenerator.h:
- 12:55 PM Changeset in webkit [209722] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed. Try to fix the cloop build.
- interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::calleeSaveRegisters):
- interpreter/StackVisitor.h:
- 12:49 PM Changeset in webkit [209721] by
-
- 7 edits in trunk/LayoutTests
[css-grid] Add some test cases that were removed in r209562
https://bugs.webkit.org/show_bug.cgi?id=165750
Reviewed by Sergio Villar Senin.
Some valid test cases were removed in r209562, this patch adds them back.
- fast/css-grid-layout/grid-template-shorthand-get-set.html: The specified style is now preserved,
so we've to use a different value for it (as it doesn't merge the line names).
- fast/css-grid-layout/resources/grid-columns-rows-get-set.js: Flexible sizes must be non-negative,
but 0fr should be accepted (this is new as it was not working like that with the old parser).
A space between the dimension and the unit is wrong for flexible sizes.
- fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js: Ditto.
- 12:35 PM Changeset in webkit [209720] by
-
- 5 edits in branches/safari-602-branch/Tools
Merge r209216. rdar://problem/29560678
- 12:17 PM Changeset in webkit [209719] by
-
- 3 edits2 adds in trunk
The CSS 'columns' property when set on the <body> element makes short columns
https://bugs.webkit.org/show_bug.cgi?id=164891
Reviewed by Darin Adler and David Hyatt.
Source/WebCore:
Currently when the body has auto height, we use the height of the viewport as
the available height for the columns defined on the body element.
This is the desired behaviour for paginated content.
However in case of a simple, non-paginated multicolumn context, we should let the columns grow beyond
the viewport vertically. This is also what other browsers do.
This patch sets the available height on columns (in non-paginated context) only if the logical height
is defined (we are right before layout, so applying non-defined values does not make much sense anyway).
The reason why it is only broken on the <body> is because it stretches to the viewport by
default (see stretchesToViewport()) while other block renderers do not.
Test: fast/multicol/columns-on-body.html
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
LayoutTests:
- fast/multicol/columns-on-body-expected.html: Added.
- fast/multicol/columns-on-body.html: Added.
- 11:55 AM Changeset in webkit [209718] by
-
- 36 edits23 adds in trunk
[CSS Parser] Implement deferred parsing of properties, @media, @supports and @keyframes
https://bugs.webkit.org/show_bug.cgi?id=165743
Reviewed by Darin Adler.
Source/WebCore:
Added new tests in fast/css/deferred-parsing.
This patch implements deferred parsing in CSS. By default, when parsing
author stylesheets, the parser goes into a deferred mode where it leaves
the declaration block of all style rules unparsed initially. Instead of
creating and setting an ImmutableStyleProperties object on the StyleRule,
the parser creates a DeferredStyleProperties object instead that is
capable of calling into CSSDeferredParser to parse the properties and values
only when the properties are finally asked for.
In addition, this patch defers the parsing of the interior of @media,
@supports, and @keyframes rules. @media blocks that are never matched will
never parse any of the rules inside. @supports conditions for unsupported
features will also not be parsed. For @keyframes, if the animation is never
referenced/used, then the @keyframes child rules will never be parsed.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
Add CSSDeferredParser to the build.
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::matchingFaces):
Patched to drop the StyleSheetContents* argument from parseValue, since it
is no longer needed.
- css/CSSKeyframesRule.cpp:
(WebCore::StyleRuleKeyframes::StyleRuleKeyframes):
(WebCore::StyleRuleKeyframes::parseDeferredRulesIfNeeded):
(WebCore::StyleRuleKeyframes::keyframes):
(WebCore::StyleRuleKeyframes::wrapperAppendKeyframe):
(WebCore::StyleRuleKeyframes::wrapperRemoveKeyframe):
(WebCore::StyleRuleKeyframes::findKeyframeIndex):
- css/CSSKeyframesRule.h:
Keyframes now hold both a keyframes Vector and a DeferredStyleGroupRuleList
object. The keyframes vector won't be populated until it is needed, and the
population is done by DeferredStyleGroupRuleList, which holds both the original
CSSParserTokenRange of the keyframes rule interior, and a references to the
CSSDeferredParser that will do the parsing.
- css/DOMCSSNamespace.cpp:
(WebCore::DOMCSSNamespace::supports):
Patched to drop the StyleSheetContents* argument from parseValue, since it
is no longer needed.
- css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
ElementRuleCollector tests to see if a rule is empty by counting properties(),
but we don't want to initiate deferred parsing just to check this. Instead we
invoke propertiesWithoutDeferredParsing, which will hand back a nullptr if
the properties haven't been parsed yet. In order to ensure this optimization
continues to work, any rules whose interiors consist of only whitespace do
not get deferred.
- css/FontFace.cpp:
(WebCore::FontFace::setVariant):
- css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::setProperty):
(WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
Patched to drop the StyleSheetContents* argument from parseValue, since it
is no longer needed.
- css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::MutableStyleProperties):
(WebCore::MutableStyleProperties::setProperty):
(WebCore::DeferredStyleProperties::create):
(WebCore::DeferredStyleProperties::DeferredStyleProperties):
(WebCore::DeferredStyleProperties::~DeferredStyleProperties):
(WebCore::DeferredStyleProperties::parseDeferredProperties):
- css/StyleProperties.h:
(WebCore::StylePropertiesBase::type):
(WebCore::StylePropertiesBase::cssParserMode):
(WebCore::StylePropertiesBase::StylePropertiesBase):
(WebCore::StyleProperties::isMutable):
(WebCore::StyleProperties::StyleProperties):
(WebCore::StylePropertiesBase::deref):
(isType):
(WebCore::StyleProperties::cssParserMode): Deleted.
(WebCore::StyleProperties::deref): Deleted.
Right now StyleProperties has two subclasses, ImmutableStyleProperties (which
is created by the parser when not deferring), and MutableStyleProperties (used
when making changes and doing DOM Manipulations).
This patch adds a new base class called StylePropertiesBase, and StyleProperties
now derives from it. DeferredStyleProperties derives from this base. The members
of StyleProperties have been moved up into StylePropertiesBase.
The m_isMutable bit, used to determine the type for downcasting has been enhanced
to m_type (2 bits), since there are now three possible subclasses.
- css/StyleRule.cpp:
(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::properties):
(WebCore::StyleRule::mutableProperties):
(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount):
Patched to ensure that when properties() are accessed, that if the current
stored StylePropertyBase in the rule is a DeferredStyleProperties, we then
parse and replace DeferredStyleProperties with ImmutableStyleProperties on the
rule. By using a common base class, we avoid increasing memory usage in
StyleRule.
(WebCore::DeferredStyleGroupRuleList::create):
(WebCore::DeferredStyleGroupRuleList::DeferredStyleGroupRuleList):
(WebCore::DeferredStyleGroupRuleList::parseDeferredRules):
(WebCore::DeferredStyleGroupRuleList::parseDeferredKeyframes):
DeferredStyleGroupList is used to handle deferred parsing of objects with
child rules. These include @media, @supports and @keyframes.
(WebCore::StyleRuleGroup::StyleRuleGroup):
(WebCore::StyleRuleGroup::childRules):
(WebCore::StyleRuleGroup::wrapperInsertRule):
(WebCore::StyleRuleGroup::wrapperRemoveRule):
(WebCore::StyleRuleGroup::parseDeferredRulesIfNeeded):
(WebCore::StyleRuleMedia::StyleRuleMedia):
(WebCore::StyleRuleSupports::StyleRuleSupports):
StyleRuleGroup now holds both a child rules Vector and a
DeferredStyleGroupRuleList. If DeferredStyleGroupRuleList is set, then
when the childRules are finally accessed, we will populate the childRules
Vector and then null out the DeferredStyleGroupRuleList.
- css/StyleRule.h:
(WebCore::StyleRule::propertiesWithoutDeferredParsing):
(WebCore::StyleRuleGroup::childRulesWithoutDeferredParsing):
(WebCore::StyleRuleGroup::childRules): Deleted.
Add new accesors for fetching properties and child rules without causing
deferred parsing to happen.
- css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::parseAuthorStyleSheet):
(WebCore::StyleSheetContents::parseString):
Patched to turn on deferred parsing for author sheets and for all
non-UA stylesheets parsed from a string (e.g., <style>).
(WebCore::traverseSubresourcesInRules):
The broken resource check was aggressively accessing properties(). Patch
it to call propertiesWithoutDeferredParsing() instead so that it doesn't
defeat the new optimization.
- css/WebKitCSSMatrix.cpp:
(WebCore::WebKitCSSMatrix::setMatrixValue):
Patched to drop the StyleSheetContents* argument from parseValue, since it
is no longer needed.
- css/parser/CSSDeferredParser.cpp: Added.
(WebCore::CSSDeferredParser::CSSDeferredParser):
(WebCore::CSSDeferredParser::parseDeclaration):
(WebCore::CSSDeferredParser::parseRuleList):
(WebCore::CSSDeferredParser::parseKeyframeList):
- css/parser/CSSDeferredParser.h: Added.
(WebCore::CSSDeferredParser::create):
(WebCore::CSSDeferredParser::tokenizer):
(WebCore::CSSDeferredParser::mode):
(WebCore::CSSDeferredParser::context):
(WebCore::CSSDeferredParser::styleSheet):
The CSSDeferredParser. It caches the original CSSTokenizer used to parse
the sheet, which in turn retains all the tokens and escaped strings. Because
the CSSDeferredParser is referenced by all the rules that have yet to parse,
it will stay alive until all rules in the stylesheet has been fully parsed.
The parser receives CSSParserTokenRanges from DeferredStyleProperties or
DeferredStyleGroupRuleList and feeds them to CSSParserImpl, which then
is able to do the parsing as it would have occurred originally had the
range not been deferred.
- css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseSheet):
(WebCore::CSSParser::parseSupportsCondition):
(WebCore::CSSParser::parseSingleValue):
(WebCore::CSSParser::parseValue):
- css/parser/CSSParser.h:
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::parseKeywordValue):
(WebCore::CSSParserFastPaths::maybeParseValue):
- css/parser/CSSParserFastPaths.h:
Drop the StyleSheetContents* argument from the methods that no longer need
them.
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::CSSParserImpl):
(WebCore::CSSParserImpl::tokenizer):
(WebCore::CSSParserImpl::parseValue):
(WebCore::CSSParserImpl::parseCustomPropertyValue):
(WebCore::CSSParserImpl::parseDeclarationList):
(WebCore::CSSParserImpl::parseInlineStyleDeclaration):
(WebCore::CSSParserImpl::parseRule):
(WebCore::CSSParserImpl::parseStyleSheet):
(WebCore::CSSParserImpl::parseDeclarationListForInspector):
(WebCore::CSSParserImpl::parseStyleSheetForInspector):
(WebCore::CSSParserImpl::consumeQualifiedRule):
(WebCore::CSSParserImpl::consumeMediaRule):
(WebCore::CSSParserImpl::consumeSupportsRule):
(WebCore::CSSParserImpl::consumeKeyframesRule):
(WebCore::CSSParserImpl::consumeStyleRule):
Drop the StyleSheetContents* argument from the methods that no longer need
them.
(WebCore::CSSParserImpl::createDeferredStyleProperties):
(WebCore::CSSParserImpl::parseDeferredDeclaration):
(WebCore::CSSParserImpl::parseDeferredRuleList):
(WebCore::CSSParserImpl::parseDeferredKeyframeList):
The methods that handle deferred parsing. They make sure to initialize
new CSSParserImpls with the original deferred parser, and then call existing
methods to do the parsing.
- css/parser/CSSParserImpl.h:
Patched to remove StyleSheetContents* arguments from some methods and
to add the new deferred parsing methods.
- css/parser/CSSParserTokenRange.cpp:
(WebCore::CSSParserTokenRange::consumeBlockCheckingForEditability):
- css/parser/CSSParserTokenRange.h:
In order to preserve the editability optimization from r180867, when
a style rule's block is consumed, we use a special method that looks
for -webkit-user-modify tokens. If one is seen, then the editability
optimization is turned off. Because we do this at the token level,
the optimization keeps working even if properties don't get parsed.
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseFontFaceDescriptor):
(WebCore::CSSPropertyParser::consumeFont):
(WebCore::CSSPropertyParser::parseShorthand):
Patched to remove StyleSheetContents* arguments now that the editability
check is in CSSTokenizer instead.
- css/parser/CSSTokenizer.cpp:
(WebCore::CSSTokenizer::tokenRange):
- css/parser/CSSTokenizer.h:
Make tokenRange() const.
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setFont):
Patched to drop the StyleSheetContents* argument.
- testing/Internals.cpp:
(WebCore::deferredStyleRulesCountForList):
(WebCore::Internals::deferredStyleRulesCount):
(WebCore::deferredGroupRulesCountForList):
(WebCore::Internals::deferredGroupRulesCount):
(WebCore::deferredKeyframesRulesCountForList):
(WebCore::Internals::deferredKeyframesRulesCount):
- testing/Internals.h:
- testing/Internals.idl:
Add new testing methods that can count the deferred style rules and
group child rule lists. These methods are used by the new layout tests.
LayoutTests:
- fast/css/deferred-parsing: Added.
- fast/css/deferred-parsing/dynamic-external-style-expected.txt: Added.
- fast/css/deferred-parsing/dynamic-external-style.html: Added.
- fast/css/deferred-parsing/dynamic-style-in-document-expected.txt: Added.
- fast/css/deferred-parsing/dynamic-style-in-document.html: Added.
- fast/css/deferred-parsing/hover-test-expected.txt: Added.
- fast/css/deferred-parsing/hover-test.html: Added.
- fast/css/deferred-parsing/keyframes-rule-expected.txt: Added.
- fast/css/deferred-parsing/keyframes-rule.html: Added.
- fast/css/deferred-parsing/media-print-expected.txt: Added.
- fast/css/deferred-parsing/media-print.html: Added.
- fast/css/deferred-parsing/nth-of-type-expected.txt: Added.
- fast/css/deferred-parsing/nth-of-type.html: Added.
- fast/css/deferred-parsing/resources: Added.
- fast/css/deferred-parsing/resources/basic-sheet.css: Added.
- fast/css/deferred-parsing/simple-external-style-expected.txt: Added.
- fast/css/deferred-parsing/simple-external-style.html: Added.
- fast/css/deferred-parsing/simple-style-in-document-expected.txt: Added.
- fast/css/deferred-parsing/simple-style-in-document.html: Added.
- fast/css/deferred-parsing/supports-rule-expected.txt: Added.
- fast/css/deferred-parsing/supports-rule.html: Added.
- 11:49 AM Changeset in webkit [209717] by
-
- 4 edits in trunk/Tools
Enable network cache speculative revalidation in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=165616
Reviewed by Darin Adler.
Match Safari. Also add a menu item to disable it.
- MiniBrowser/mac/AppDelegate.m:
(defaultConfiguration):
- MiniBrowser/mac/SettingsController.h:
- MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController networkCacheSpeculativeRevalidationDisabled]):
(-[SettingsController toggleNetworkCacheSpeculativeRevalidationDisabled:]):
- 11:04 AM WebInspectorCodingStyleGuide edited by
- Removed section about bugs that have been fixed. (diff)
- 11:02 AM WebInspectorCodingStyleGuide edited by
- Added style notes for trivial getters. (diff)
- 10:59 AM Changeset in webkit [209716] by
-
- 3 edits3 deletes in trunk/PerformanceTests
Unreviewed, rolling out r209672.
https://bugs.webkit.org/show_bug.cgi?id=165766
IndexedDB/objectstore-cursor.html perf test always times out
(Requested by ap on #webkit).
Reverted changeset:
"More IndexedDB perf tests."
https://bugs.webkit.org/show_bug.cgi?id=165634
http://trac.webkit.org/changeset/209672
- 10:42 AM Changeset in webkit [209715] by
-
- 5 edits3 adds in trunk
Autoplay isn't working in iPhone MediaDocuments
https://bugs.webkit.org/show_bug.cgi?id=165710
<rdar://problems/29606761>
Reviewed by Darin Adler.
Source/WebCore:
Our silent video autoplay detection disabled autoplay
of videos in MediaDocuments.
Test: media/ios/autoplay-only-in-main-document.html
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::playbackPermitted):
Return true if we're in a top-level media document.
LayoutTests:
- media/ios/autoplay-only-in-main-document.html: Make sure that
an iframe pointing to media is not autoplayed.
- TestExpectations:
- platform/ios-simulator/TestExpectations:
- 10:18 AM Changeset in webkit [209714] by
-
- 2 edits in trunk/Tools
ChangeLogs become readonly after resolving a conflict
https://bugs.webkit.org/show_bug.cgi?id=165440
rdar://problem/29491002
Reviewed by Darin Adler.
- Scripts/resolve-ChangeLogs: (resolveChangeLog): Set correct permissions when
moving the file.
- 10:17 AM Changeset in webkit [209713] by
-
- 2 edits in trunk/LayoutTests
Marking http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame.html as flaky on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=165691
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 9:38 AM Changeset in webkit [209712] by
-
- 2 edits in trunk/LayoutTests
Rebaseline js/dom/global-constructors-attributes.html for mac-wk1 after r209666.
Unreviewed test gardening.
- platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
- 9:24 AM Changeset in webkit [209711] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Cleanup HierarchicalPathComponent
https://bugs.webkit.org/show_bug.cgi?id=165745
Reviewed by Brian Burg.
Prefer toggle for style class names, remove single use CSS class name
constants, and back all properties by the model not the DOM.
- UserInterface/Views/HierarchicalPathComponent.js:
(WebInspector.HierarchicalPathComponent):
(WebInspector.HierarchicalPathComponent.prototype.get element):
(WebInspector.HierarchicalPathComponent.prototype.get representedObject):
(WebInspector.HierarchicalPathComponent.prototype.get minimumWidth):
(WebInspector.HierarchicalPathComponent.prototype.get forcedWidth):
(WebInspector.HierarchicalPathComponent.prototype.set forcedWidth):
(WebInspector.HierarchicalPathComponent.prototype.get hidden):
(WebInspector.HierarchicalPathComponent.prototype.set hidden):
(WebInspector.HierarchicalPathComponent.prototype.get collapsed):
(WebInspector.HierarchicalPathComponent.prototype.set collapsed):
(WebInspector.HierarchicalPathComponent.prototype.get selectorArrows):
(WebInspector.HierarchicalPathComponent.prototype.set selectorArrows):
(WebInspector.HierarchicalPathComponent.prototype.get previousSibling):
(WebInspector.HierarchicalPathComponent.prototype.set previousSibling):
(WebInspector.HierarchicalPathComponent.prototype.get nextSibling):
(WebInspector.HierarchicalPathComponent.prototype.set nextSibling):
(WebInspector.HierarchicalPathComponent.prototype._updateElementTitleAndText):
(WebInspector.HierarchicalPathComponent.prototype._updateSelectElement.createOption):
(WebInspector.HierarchicalPathComponent.prototype._updateSelectElement):
- 9:21 AM Changeset in webkit [209710] by
-
- 2 edits in trunk/Tools
Re-enable collectContinuously since it doesn't crash anymore
Rubber stamped by Michael Saboff.
- Scripts/run-jsc-stress-tests:
- 9:20 AM Changeset in webkit [209709] by
-
- 5 edits in trunk/Source/WebInspectorUI
Web Inspector: Allow keyboard navigation in Heap Snapshot data grids
https://bugs.webkit.org/show_bug.cgi?id=165752
Reviewed by Brian Burg.
- UserInterface/Views/DOMTreeOutline.css:
(.tree-outline.dom:focus li.selected > span::after):
Use new color variable.
- UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.get selectable): Deleted.
Should be selectable.
- UserInterface/Views/HeapSnapshotInstancesContentView.css:
(.heap-snapshot > .data-grid:focus tr.selected > td .sub-retained):
(.heap-snapshot > .data-grid:focus tr.selected .object-id,):
(.heap-snapshot > .data-grid:focus tr.selected .formatted-string,):
(.heap-snapshot > .data-grid:focus tr.selected td .location):
Selected row text should just be white, except for values that are usually
gray (object ID, object size, and sub-retained size values). These should
be styled like the "= $0" marker in the DOM tree outline.
(.heap-snapshot > .data-grid:matches(:focus, .force-focus) tr.selected td .location): Deleted.
Removed forced-focus reference. Only used by TreeOutlineDataGridSynchronizer.
- UserInterface/Views/Variables.css:
(:root):
Added --selected-secondary-text-color.
- 9:10 AM Changeset in webkit [209708] by
-
- 2 edits in trunk/Source/JavaScriptCore
FTL: Dumping disassembly requires that code origin is set when making polymorphic tail calls.
https://bugs.webkit.org/show_bug.cgi?id=165747
Reviewed by Filip Pizlo.
Setting the code origin needs to be done for both the fast and slow path as we might need
it when linking a polymorphic or virtual call stub.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
- 8:17 AM Changeset in webkit [209707] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
Update test expectations on Windows for failing tests. These failures are tracked in
https://bugs.webkit.org/show_bug.cgi?id=160447.
- platform/win/TestExpectations:
- 3:11 AM Changeset in webkit [209706] by
-
- 8 edits5 adds in trunk
Web Inspector: Breakpoint Log action should support template literals
https://bugs.webkit.org/show_bug.cgi?id=165116
<rdar://problem/29464765>
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js:
New string "${expr} = expression" for breakpoint popover.
- UserInterface/Controllers/BreakpointLogMessageLexer.js: Added.
To support template literal placeholders in message text, it is necessary
to distinguish plain text parts of the message from placeholders, since
plain text must be escaped.
(WebInspector.BreakpointLogMessageLexer):
(WebInspector.BreakpointLogMessageLexer.prototype.tokenize):
(WebInspector.BreakpointLogMessageLexer.prototype.reset):
(WebInspector.BreakpointLogMessageLexer.prototype._finishPlainText):
(WebInspector.BreakpointLogMessageLexer.prototype._finishExpression):
(WebInspector.BreakpointLogMessageLexer.prototype._appendToken):
(WebInspector.BreakpointLogMessageLexer.prototype._consume):
(WebInspector.BreakpointLogMessageLexer.prototype._peek):
(WebInspector.BreakpointLogMessageLexer.prototype._expression):
(WebInspector.BreakpointLogMessageLexer.prototype._plainText):
(WebInspector.BreakpointLogMessageLexer.prototype._possiblePlaceholder):
(WebInspector.BreakpointLogMessageLexer.prototype._regExpOrStringLiteral):
- UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype._debuggerBreakpointOptions):
Build breakpoint "options" object for DebuggerAgent. If a Log action
contains template literal placeholders it is changed to an Evaluate
action, which calls console.log with a template literal.
(WebInspector.DebuggerManager.prototype._setBreakpoint):
Use converted breakpoint options.
- UserInterface/Main.html:
- UserInterface/Test.html:
New file.
- UserInterface/Views/BreakpointActionView.css:
(.breakpoint-action-block-body > .description):
Styles for breakpoint Log action hint text.
- UserInterface/Views/BreakpointActionView.js:
(WebInspector.BreakpointActionView.prototype._updateBody):
Add Log action hint text element.
LayoutTests:
- inspector/debugger/breakpoint-action-log-expected.txt: Added.
- inspector/debugger/breakpoint-action-log.html: Added.
Check that breakpoint log actions support template literal placeholders.
- inspector/unit-tests/breakpoint-log-message-lexer-expected.txt: Added.
- inspector/unit-tests/breakpoint-log-message-lexer.html: Added.
Check that the lexer correctly scans breakpoint log action text.
- 1:10 AM Changeset in webkit [209705] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Fixing build breakage in GStreamer's WebKitCommonEncryptionDecryptorGStreamer.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(webkitMediaCommonEncryptionDecryptTransformInPlace):
WTF::Seconds should be used instead of std::chrono::seconds.
- 12:32 AM Changeset in webkit [209704] by
-
- 3 edits in trunk/Source/WTF
Unreviewed, rolling out r209703.
https://bugs.webkit.org/show_bug.cgi?id=165749
Broke Apple builds (Requested by annulen|home on #webkit).
Reverted changeset:
"Unreviewed, use WTF_ATTRIBUTE_PRINTF instead of clang pragma"
http://trac.webkit.org/changeset/209703
Patch by Commit Queue <commit-queue@webkit.org> on 2016-12-12
- 12:14 AM Changeset in webkit [209703] by
-
- 3 edits in trunk/Source/WTF
Unreviewed, use WTF_ATTRIBUTE_PRINTF instead of clang pragma
- wtf/PrintStream.cpp:
(WTF::PrintStream::printfVariableFormat):
- wtf/PrintStream.h: