Timeline



Apr 24, 2016:

11:34 PM Changeset in webkit [199977] by Hunseop Jeong
  • 3 edits in trunk/Source/WebKit2

[EFL] Update the ewk_settings_offline_web_application_cache_enabled_get() expected value after r199854.
https://bugs.webkit.org/show_bug.cgi?id=156968

Reviewed by Gyuyoung Kim.

  • UIProcess/API/C/WKPreferencesRef.h: Update the comment.
  • UIProcess/API/efl/tests/test_ewk2_settings.cpp:

(TEST_F):

10:59 PM Changeset in webkit [199976] by Chris Dumez
  • 19 edits
    1 delete in trunk/Source/WebCore

[Web IDL] Specify default values for boolean parameters
https://bugs.webkit.org/show_bug.cgi?id=156964

Reviewed by Darin Adler.

Specify default values for boolean parameters in our IDL files and
let the bindings generator use WTF::Optional<> for the ones without
a default value.

  • CMakeLists.txt:
  • Modules/indexeddb/IDBKeyRange.cpp:
  • Modules/indexeddb/IDBKeyRange.h:
  • Modules/indexeddb/IDBKeyRange.idl:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSDOMTokenListCustom.cpp: Removed.

We no longer need these custom bindings as the bindings generator
will now provide the implementation with an Optional<bool>, given
that the parameter has no default value.

  • bindings/scripts/CodeGeneratorJS.pm:

(CanUseWTFOptionalForParameterType): Deleted.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_method_with_optional_boolean):
(webkit_dom_test_obj_method_with_optional_boolean_is_false):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBoolean):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanIsFalse):

  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj methodWithOptionalBoolean:]):
(-[DOMTestObj methodWithOptionalBooleanIsFalse:]):

  • bindings/scripts/test/TestObj.idl:
  • dom/Document.h:
  • dom/Document.idl:
  • dom/Element.idl:
  • dom/EventTarget.idl:
  • html/DOMTokenList.idl:
10:56 PM Changeset in webkit [199975] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Some media tests have been failed after bumping gstreamer ver.

Unreviewed EFL gardening. Mark failing tests to timeout or failure.

  • platform/efl/TestExpectations:
8:09 PM Changeset in webkit [199974] by Matt Baker
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Can't sort by name/source code location columns in Timeline data grids
https://bugs.webkit.org/show_bug.cgi?id=156965
<rdar://problem/25898716>

Reviewed by Timothy Hatcher.

Add support for sorting SourceCodeLocation objects to TimelineDataGrid,
and include a grid delegate so that views can extend sorting logic for
other document fragment columns.

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView):
(WebInspector.NetworkTimelineView.prototype.dataGridSortComparator):
Sort "name" column by display name first, then resource URL.

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WebInspector.ScriptDetailsTimelineView):
(WebInspector.ScriptDetailsTimelineView.prototype.dataGridSortComparator):
Sort "name" column by display name first, then subtitle.

  • UserInterface/Views/ScriptTimelineDataGridNode.js:

(WebInspector.ScriptTimelineDataGridNode.prototype.get subtitle):
Make subtitle accessible externally for sorting.
(WebInspector.ScriptTimelineDataGridNode.prototype._createNameCellDocumentFragment):
(WebInspector.ScriptTimelineDataGridNode):

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid):
(WebInspector.TimelineDataGrid.prototype.get sortDelegate):
(WebInspector.TimelineDataGrid.prototype.set sortDelegate):
Fire a SortChanged event if the delegate changed and the grid is sorted.
(WebInspector.TimelineDataGrid.prototype._sort):
If a sort delegate exists, and it returns a numeric value, skip the
default compare.

(WebInspector.TimelineDataGrid.prototype._sortComparator):
Add support for sorting SourceCodeLocation columns.

6:40 PM Changeset in webkit [199973] by Chris Dumez
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed, revert part of r199970 that shouldn't have been committed.

  • web-platform-tests/IndexedDB/idbfactory_open9.htm:
6:17 PM WebKitIDL edited by Chris Dumez
Drop [Default] (diff)
6:03 PM Changeset in webkit [199972] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Error when selecting a bar in the Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=156960
<rdar://problem/25897955>

Reviewed by Timothy Hatcher.

Fixes timeline grid node selection when record selected in the overview.
Adds general purpose findNode method to DataGrid.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.findNode):
Basic find function for locating a grid node in linear time.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._recordSelected):
Remove tree outline references, call generic select method.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.selectRecord):
If a data grid was set, deselect current selection and select the node
associated with the timeline record.

5:59 PM Changeset in webkit [199971] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Events in JavaScript & Events timeline have no profile children
https://bugs.webkit.org/show_bug.cgi?id=156627
<rdar://problem/25749740>

Reviewed by Timothy Hatcher.

ProfileNodeDataGridNode should handle populate events when expanded.
This was previously done by ProfileNodeTreeElement, which is no longer
used in the Timelines tab.

  • UserInterface/Views/ProfileDataGridNode.js:

(WebInspector.ProfileDataGridNode.prototype._updateChildrenForModifiers):
(WebInspector.ProfileDataGridNode.prototype._populate):
(WebInspector.ProfileDataGridNode):
DataGridNode sets shouldRefreshChildren to false after populating
child nodes. No need to track with a separate flag.

  • UserInterface/Views/ProfileNodeDataGridNode.js:

(WebInspector.ProfileNodeDataGridNode):
(WebInspector.ProfileNodeDataGridNode.prototype._populate):

5:27 PM Changeset in webkit [199970] by Chris Dumez
  • 23 edits in trunk

Autogenerated IDBFactory.open() does the wrong thing if you pass an explicit 'undefined' as the second argument
https://bugs.webkit.org/show_bug.cgi?id=156939

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Re-sync tests from upstream b1818929.

  • IndexedDB-private-browsing/idbfactory_open9-expected.txt:
  • IndexedDB-private-browsing/idbfactory_open9.html:
  • web-platform-tests/IndexedDB/idbfactory_open9-expected.txt:
  • web-platform-tests/IndexedDB/idbfactory_open9.htm:

Source/WebCore:

As per WebIDL, if undefined is passed by JS for an optional parameter then
we should use its default value if it has one, or use the special value
"missing":
http://heycam.github.io/webidl/#es-overloads (step 10.4)

Our bindings generator was already mapping undefined to the parameter's
default value when present. However, it was missing the notion of
"missing" value when there no default value. This patch adds supports
for its by passing Optional<>(Nullopt) to the implementation in such
case. This means that the implementation will need to use WTF::Optional<>
type for parameters that do not have a default value. Thankfully though,
in most cases, we will be able to specify a default value in the IDL
so cases where we will need to use WTF::Optional<> will actually be
rare.

To avoid having to do too much refactoring in this patch, the support
for WTF::Optional is currently blacklisted for most IDL types. I will
gradually stop blacklisting each type in follow-up patches, as I either:

  • Add default parameter values in our IDL (preferred)
  • Use WTF::Optional<> in our implementation (when we cannot specify a default value).

This patch fixes a bug with IDBFactory.open()'s second parameter (version)
for which undefined should not throw and indicate that the version
should not be changed. We now use WTF::Optional in the implementation to
distinguish this case and not throw.

No new tests, existing tests were updated / rebaselined.

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::open):
(WebCore::IDBFactory::openInternal): Deleted.

  • Modules/indexeddb/IDBFactory.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldUseWTFOptionalForParameterType):
(GenerateParametersCheck):

  • fileapi/Blob.idl:
  • inspector/InspectorIndexedDBAgent.cpp:

LayoutTests:

Update / rebaseline existing test now that passing undefined as second parameter to
IDBFactory.open() no longer throws.

  • storage/indexeddb/intversion-bad-parameters-expected.txt:
  • storage/indexeddb/intversion-bad-parameters-private-expected.txt:
  • storage/indexeddb/resources/intversion-bad-parameters.js:

(deleteSuccess):

10:23 AM Changeset in webkit [199969] by Chris Dumez
  • 145 edits in trunk

[WebIDL] Drop [Default] WebKit-IDL extended attribute
https://bugs.webkit.org/show_bug.cgi?id=156955

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline some tests now that a different exception type is thrown
for some of our APIs when passing null.

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

Source/WebCore:

Drop [Default] WebKit-IDL extended attribute in favor of the standard
WebIDL syntax for parameters' default value.

Here is what it looks like:
[Default=NullString] optional DOMString a -> optional DOMString a = null
[Default=NullString] optional DOMString? a -> optional DOMString? a = null
[Default=Undefined] optional DOMString a -> optional DOMString a = "undefined"
[Default=Undefined] optional DOMString? a -> optional DOMString? a = null
[Default=Undefined] optional long a -> optional long a = 0
[Default=Undefined] optional bool a -> optional bool a = false
[Default=Undefined] optional unrestricted double a -> optional unrestricted double a = NaN
[Default=Undefined] optional unrestricted float a -> optional unrestricted float a = NaN
[Default=Undefined] optional sequence<DOMString> a -> optional sequence<DOMString> a = []

These do not cause any Web-Exposed behavior change. However, when getting
rid of [Default] started passing more parameters by derefence instead of
pointer (as is expected for parameters not marked as nullable). As a result,
I had to mark a few parameters as nullable in the IDL to maintain the
previous behavior. In some cases, the implementation was already throwing
when passing null. In such cases, I have not marked the type as nullable
so that the generated bindings now throw the exception instead of our
implementation code. In some cases, the exception being thrown is now
different. This is why some of the layout tests had to be rebaselined.

No new tests, existing tests have been rebaselined. No significant Web
exposed behavior change is expected from this patch, beside exceptions
type sometimes being different.

  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/fetch/FetchRequest.idl:
  • Modules/gamepad/deprecated/GamepadList.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/mediastream/RTCStatsResponse.idl:
  • Modules/notifications/Notification.idl:
  • Modules/speech/SpeechSynthesisUtterance.idl:
  • Modules/webaudio/AudioNode.idl:
  • Modules/websockets/WebSocket.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/IDLParser.pm:

(parseDefault):
(parseDefaultValue):

  • bindings/scripts/test/TestInterface.idl:
  • bindings/scripts/test/TestNamedConstructor.idl:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestOverrideBuiltins.idl:
  • css/CSSKeyframesRule.idl:
  • css/CSSMediaRule.idl:
  • css/CSSPrimitiveValue.idl:
  • css/CSSRuleList.idl:
  • css/CSSStyleDeclaration.idl:
  • css/CSSStyleSheet.idl:
  • css/CSSSupportsRule.idl:
  • css/CSSValueList.idl:
  • css/MediaList.idl:
  • css/MediaQueryList.idl:
  • css/MediaQueryListListener.idl:
  • css/StyleMedia.idl:
  • css/StyleSheetList.idl:
  • css/WebKitCSSFilterValue.idl:
  • css/WebKitCSSMatrix.idl:
  • css/WebKitCSSTransformValue.idl:
  • dom/ClientRectList.idl:
  • dom/Comment.idl:
  • dom/CompositionEvent.idl:
  • dom/CustomEvent.h:
  • dom/CustomEvent.idl:
  • dom/DOMImplementation.idl:
  • dom/DOMStringList.idl:
  • dom/DataTransferItem.idl:
  • dom/DataTransferItemList.idl:
  • dom/DeviceMotionEvent.idl:
  • dom/DeviceOrientationEvent.idl:
  • dom/Document.cpp:

(WebCore::Document::adoptNode):

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

(WebCore::Element::setAttributeNode):
(WebCore::Element::setAttributeNodeNS):
(WebCore::Element::removeAttributeNode):
(WebCore::Element::parseAttributeName): Deleted.

  • dom/Element.h:
  • dom/Element.idl:
  • dom/Event.idl:
  • dom/HashChangeEvent.idl:
  • dom/KeyboardEvent.idl:
  • dom/MessageEvent.idl:
  • dom/MouseEvent.idl:
  • dom/MutationEvent.idl:
  • dom/NamedNodeMap.cpp:

(WebCore::NamedNodeMap::setNamedItem):
(WebCore::NamedNodeMap::setNamedItemNS):
(WebCore::NamedNodeMap::item): Deleted.

  • dom/NamedNodeMap.h:
  • dom/NamedNodeMap.idl:
  • dom/Node.idl:
  • dom/NodeFilter.idl:
  • dom/NonElementParentNode.idl:
  • dom/OverflowEvent.idl:
  • dom/Range.idl:
  • dom/Text.idl:
  • dom/TextEvent.idl:
  • dom/TouchEvent.idl:
  • dom/UIEvent.idl:
  • dom/WheelEvent.idl:
  • html/DOMFormData.idl:
  • html/HTMLAllCollection.idl:
  • html/HTMLAudioElement.idl:
  • html/HTMLCanvasElement.idl:
  • html/HTMLCollection.idl:
  • html/HTMLDocument.idl:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::insertAdjacentElement):
(WebCore::contextElementForInsertion): Deleted.

  • html/HTMLElement.h:
  • html/HTMLElement.idl:
  • html/HTMLFormControlsCollection.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLOptionElement.idl:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTableElement.idl:
  • html/HTMLTableRowElement.idl:
  • html/HTMLTableSectionElement.idl:
  • html/HTMLTextAreaElement.idl:
  • html/ImageData.idl:
  • html/canvas/CanvasGradient.idl:
  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/DOMPath.idl:
  • html/canvas/OESVertexArrayObject.idl:
  • page/DOMSelection.cpp:

(WebCore::DOMSelection::extend):
(WebCore::DOMSelection::getRangeAt): Deleted.

  • page/DOMSelection.h:
  • page/DOMSelection.idl:
  • page/DOMWindow.idl:
  • page/History.idl:
  • page/Performance.idl:
  • page/WindowTimers.idl:
  • plugins/DOMMimeTypeArray.idl:
  • plugins/DOMPlugin.idl:
  • plugins/DOMPluginArray.idl:
  • storage/StorageEvent.idl:
  • svg/SVGAnimationElement.idl:
  • svg/SVGDocument.idl:
  • svg/SVGElement.idl:
  • svg/SVGFEDropShadowElement.idl:
  • svg/SVGFEGaussianBlurElement.idl:
  • svg/SVGFEMorphologyElement.idl:
  • svg/SVGFilterElement.idl:
  • svg/SVGGraphicsElement.idl:
  • svg/SVGMarkerElement.idl:
  • svg/SVGPathElement.idl:
  • svg/SVGSVGElement.idl:
  • svg/SVGTests.idl:
  • svg/SVGTextContentElement.idl:
  • xml/DOMParser.idl:
  • xml/XMLSerializer.cpp:

(WebCore::XMLSerializer::serializeToString):

  • xml/XMLSerializer.h:
  • xml/XMLSerializer.idl:
  • xml/XPathEvaluator.idl:
  • xml/XPathExpression.idl:
  • xml/XPathNSResolver.idl:
  • xml/XPathResult.idl:
  • xml/XSLTProcessor.idl:

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:

LayoutTests:

Rebaseline some tests now that a different exception type is thrown
for some of our APIs when passing null.

  • editing/selection/extend-expected.txt:
  • fast/dom/Element/attr-param-typechecking-expected.txt:
  • fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt:
  • fast/dynamic/insertAdjacentElement-expected.txt:
10:07 AM Changeset in webkit [199968] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Optimize JSON.parse string fast path
https://bugs.webkit.org/show_bug.cgi?id=156953

Reviewed by Mark Lam.

This patch further optimizes the string parsing fast path.
Previously, we generated the WTF::String to hold the ownership of the token's string.
And always copied the token in LiteralParser side.
Instead, we hold the ownership of the token String by the StringBuilder in LiteralParser::Lexer,
and remove the processing in the string parsing fast path.
This patch gives us stable 1 - 2.5% improvement in Kraken json-parse-financial.

Baseline Modified

json-parse-financial 41.383+-0.248 40.894+-0.189 definitely 1.0120x faster

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::tryJSONPParse):
(JSC::LiteralParser<CharType>::Lexer::lex):
(JSC::LiteralParser<CharType>::Lexer::lexStringSlow):
(JSC::LiteralParser<CharType>::parse):
(JSC::LiteralParser<CharType>::Lexer::lexString): Deleted.

  • runtime/LiteralParser.h:

(JSC::LiteralParser::tryLiteralParse):
(JSC::LiteralParser::Lexer::currentToken):
(JSC::LiteralParser::Lexer::LiteralParserTokenPtr::LiteralParserTokenPtr):
(JSC::LiteralParser::Lexer::LiteralParserTokenPtr::operator->):

10:05 AM Changeset in webkit [199967] by fpizlo@apple.com
  • 27 edits
    5 adds in trunk

[INTL] Implement String.prototype.localeCompare in ECMA-402
https://bugs.webkit.org/show_bug.cgi?id=147607

Patch by Filip Pizlo <fpizlo@apple.com> and Andy VanWagoner <thetalecrafter@gmail.com> on 2016-04-24
Reviewed by Darin Adler.
Source/JavaScriptCore:


Part of this change is just rolling 194394 back in.

The other part is making that not a regression on CDjs. Other than the fact that it uses
bound functions, the problem with this new localeCompare implementation is that it uses
the arguments object. It uses it in a way that *seems* like ArgumentsEliminationPhase
ought to handle, but to my surprise it didn't:

  • If we have a ForceExit GetByVal on the arguments object, we would previously assume that it escaped. That's false since we just exit at ForceExit. On the other hand we probably should be pruning unreachable paths before we get here, but that's a separate issue. I don't want to play with phase order right now.


  • If we have a OutOfBounds GetByVal on the arguments object, then the best that would previously happen is that we'd compile it into an in-bounds arguments access. That's quite bad, as Andy's localeCompare illustrates: it uses out-of-bounds access on the arguments object to detect if an argument was passed. This change introduces an OutOfBounds version of GetMyArgumentByVal for this purpose.


This change required registering sane chain watchpoints. In the process, I noticed that the
old way of doing it had a race condition: we might register watchpoints for the structure
that had become insane. This change introduces a double-checking idiom that I believe works
because once the structure becomes insane it can't go back to sane and watchpoints
registration already involves executing the hardest possible fences.

  • builtins/StringPrototype.js:

(repeat):
(localeCompare):
(search):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::refine):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNodeType.h:
  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGValidate.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):

  • ftl/FTLTypedPointer.h:

(JSC::FTL::TypedPointer::TypedPointer):
(JSC::FTL::TypedPointer::operator bool):
(JSC::FTL::TypedPointer::heap):
(JSC::FTL::TypedPointer::operator!): Deleted.

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):

LayoutTests:

  • js/dom/script-tests/string-prototype-properties.js:
  • js/dom/string-prototype-properties-expected.txt:
  • js/regress/locale-compare.html: Added.
  • js/regress/locale-compare-expected.txt: Added.
  • js/regress/scripts-tests/locale-compare.js: Added.
  • js/script-tests/string-localeCompare.js:
  • js/string-localeCompare-expected.txt:
  • js/string-localeCompare.html:
9:20 AM Changeset in webkit [199966] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.29.1/Source

Versioning.

9:18 AM Changeset in webkit [199965] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.29.1

New tag.

6:54 AM Changeset in webkit [199964] by Antti Koivisto
  • 423 edits in trunk/Source/WebCore

RenderStyle should not be reference counted
https://bugs.webkit.org/show_bug.cgi?id=156846

Reviewed by Andreas Kling.

RenderStyle reference counts its substructures. We no longer share RenderStyle objects between normal renderers
so there is no reason to refcount the RenderStyles themselves too. Making it a non-refcounted type clarifies
ownership relations, reduces branchiness and saves some memory.

This patches switches mostly mechanically from Ref/RefPtr<RenderStyle> to std::unique_ptr<RenderStyle>. In
the future RenderStyle can be given regular value semantics.

  • Modules/plugins/PluginReplacement.h:

(WebCore::PluginReplacement::scriptObject):
(WebCore::PluginReplacement::willCreateRenderer):

  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement):
(WebCore::QuickTimePluginReplacement::createElementRenderer):

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::YouTubePluginReplacement):
(WebCore::YouTubePluginReplacement::createElementRenderer):

  • Modules/plugins/YouTubePluginReplacement.h:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::getFontSizeCSSValuePreferringKeyword):
(WebCore::ComputedStyleExtractor::useFixedFontDefaultSize):
(WebCore::updateStyleIfNeededForNode):
(WebCore::computeRenderStyleForProperty):
(WebCore::ComputedStyleExtractor::customPropertyValue):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
(WebCore::MediaQueryEvaluator::eval):

  • css/MediaQueryEvaluator.h:

Clarify in code that MediaQueryEvaluator does not own the style.

  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::mediaType):
(WebCore::MediaQueryMatcher::documentElementUserAgentStyle):
(WebCore::MediaQueryMatcher::evaluate):
(WebCore::MediaQueryMatcher::matchMedia):
(WebCore::MediaQueryMatcher::styleResolverChanged):
(WebCore::MediaQueryMatcher::prepareEvaluator): Deleted.

  • css/MediaQueryMatcher.h:
  • css/StyleMedia.cpp:

(WebCore::StyleMedia::matchMedium):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::State::updateConversionData):
(WebCore::StyleResolver::State::setStyle):
(WebCore::StyleResolver::State::setParentStyle):

State owns the style explicitly set by setParentStyle but not the one given via constructor.

(WebCore::isAtShadowBoundary):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::keyframeStylesForAnimation):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::applyPropertyToStyle):

  • css/StyleResolver.h:

(WebCore::ElementStyle::ElementStyle):
(WebCore::StyleResolver::style):
(WebCore::StyleResolver::parentStyle):
(WebCore::StyleResolver::setOverrideDocumentElementStyle):
(WebCore::StyleResolver::State::document):
(WebCore::StyleResolver::State::element):
(WebCore::StyleResolver::State::style):
(WebCore::StyleResolver::State::takeStyle):
(WebCore::StyleResolver::State::parentStyle):
(WebCore::StyleResolver::State::rootElementStyle):
(WebCore::StyleResolver::State::regionForStyling):
(WebCore::StyleResolver::State::setParentStyle): Deleted.

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):
(WebCore::Document::updateLayoutIgnorePendingStylesheets):
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
(WebCore::Document::isPageBoxVisible):
(WebCore::Document::pageSizeAndMarginsInPixels):
(WebCore::Document::addAutoSizingNode):
(WebCore::Document::validateAutoSizingNodes):
(WebCore::Document::resetAutoSizingNodes):
(WebCore::Document::setFullScreenRenderer):

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

(WebCore::Element::rendererIsNeeded):
(WebCore::Element::createElementRenderer):
(WebCore::Element::resolveComputedStyle):

  • dom/Element.h:

(WebCore::Element::copyNonAttributePropertiesFromElement):

  • dom/ElementRareData.h:

...

  • page/animation/AnimationBase.h:
  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::receivedStartTimeResponse):
(WebCore::AnimationControllerPrivate::getAnimatedStyleForRenderer):
(WebCore::AnimationControllerPrivate::computeExtentOfAnimation):
(WebCore::AnimationController::cancelAnimations):
(WebCore::AnimationController::updateAnimations):

std::unique_ptr<RenderStyle& animatedStyle argument is now expected no be initially null and
is only set if a new style is created.

(WebCore::AnimationController::getAnimatedStyleForRenderer):

  • page/animation/AnimationController.h:
  • page/animation/AnimationControllerPrivate.h:
  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::updateTransitions):
(WebCore::CompositeAnimation::updateKeyframeAnimations):
(WebCore::CompositeAnimation::animate):
(WebCore::CompositeAnimation::getAnimatedStyle):

  • page/animation/CompositeAnimation.h:
  • page/animation/ImplicitAnimation.cpp:

(WebCore::ImplicitAnimation::ImplicitAnimation):
(WebCore::ImplicitAnimation::shouldSendEventForListener):
(WebCore::ImplicitAnimation::animate):
(WebCore::ImplicitAnimation::getAnimatedStyle):
(WebCore::ImplicitAnimation::onAnimationEnd):
(WebCore::ImplicitAnimation::reset):

  • page/animation/ImplicitAnimation.h:
  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty):
(WebCore::KeyframeAnimation::animate):
(WebCore::KeyframeAnimation::getAnimatedStyle):

  • page/animation/KeyframeAnimation.h:
  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::RenderAttachment):

  • rendering/RenderAttachment.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::clone):
(WebCore::RenderBlock::updateFirstLetterStyle):
(WebCore::RenderBlock::createFirstLetterRenderer):

  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::MarginInfo::MarginInfo):
(WebCore::RenderBlockFlow::RenderBlockFlow):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderBox.cpp:

(WebCore::skipBodyBackground):
(WebCore::RenderBox::RenderBox):

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::suspendAnimations):
(WebCore::RenderBoxModelObject::RenderBoxModelObject):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderButton.cpp:

(WebCore::RenderButton::RenderButton):
(WebCore::RenderButton::setupInnerStyle):

  • rendering/RenderButton.h:
  • rendering/RenderCombineText.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):

  • rendering/RenderDeprecatedFlexibleBox.h:
  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::RenderDetailsMarker):

  • rendering/RenderDetailsMarker.h:
  • rendering/RenderElement.cpp:

(WebCore::controlStatesRendererMap):
(WebCore::RenderElement::RenderElement):
(WebCore::RenderElement::~RenderElement):
(WebCore::RenderElement::createFor):
(WebCore::firstLineStyleForCachedUncachedType):
(WebCore::RenderElement::uncachedFirstLineStyle):
(WebCore::RenderElement::cachedFirstLineStyle):
(WebCore::RenderElement::initializeStyle):
(WebCore::RenderElement::setStyle):
(WebCore::RenderElement::propagateStyleToAnonymousChildren):
(WebCore::RenderElement::styleDidChange):
(WebCore::RenderElement::getCachedPseudoStyle):

Return plain pointer as the cache owns the style.

(WebCore::RenderElement::getUncachedPseudoStyle):

return std::unique_ptr<RenderStyle>

(WebCore::RenderElement::selectionColor):
(WebCore::RenderElement::selectionPseudoStyle):
(WebCore::RenderElement::selectionBackgroundColor):

  • rendering/RenderElement.h:

(WebCore::RenderElement::hasInitializedStyle):
(WebCore::RenderElement::style):
(WebCore::RenderElement::element):
(WebCore::RenderElement::setStyleInternal):

  • rendering/RenderEmbeddedObject.cpp:

...

(WebCore::RenderImage::imageResource):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::RenderInline):
(WebCore::updateStyleOfAnonymousBlockContinuations):
(WebCore::RenderInline::styleDidChange):

Continuations now get their own RenderStyles.

(WebCore::RenderInline::addChildIgnoringContinuation):
(WebCore::RenderInline::clone):

  • rendering/RenderInline.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::currentTransform):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h:

...

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::operator==):
(WebCore::KeyframeList::insert):

KeyframeValue is now movable but not copyable type. Adjust accordingly.

  • rendering/style/KeyframeList.h:

(WebCore::KeyframeValue::KeyframeValue):
(WebCore::KeyframeValue::setKey):
(WebCore::KeyframeValue::style):
(WebCore::KeyframeValue::setStyle):
(WebCore::KeyframeList::animationName):
(WebCore::KeyframeList::addProperty):
(WebCore::KeyframeList::containsProperty):

  • rendering/style/RenderStyle.cpp:

(WebCore::defaultStyle):
(WebCore::RenderStyle::create):
(WebCore::RenderStyle::createDefaultStyle):
(WebCore::RenderStyle::createAnonymousStyleWithDisplay):
(WebCore::RenderStyle::clone):
(WebCore::RenderStyle::createStyleInheritingFromPseudoStyle):

Return std::unique_ptr<RenderStyle> instead of Ref<RenderStyle>.

(WebCore::RenderStyle::RenderStyle):
(WebCore::RenderStyle::~RenderStyle):
(WebCore::resolveAlignmentData):
(WebCore::RenderStyle::operator==):
(WebCore::RenderStyle::hasUniquePseudoStyle):
(WebCore::RenderStyle::getCachedPseudoStyle):
(WebCore::RenderStyle::addCachedPseudoStyle):
(WebCore::RenderStyle::isStyleAvailable): Deleted.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setStyleType):
(WebCore::RenderStyle::cachedPseudoStyles):
(WebCore::RenderStyle::initialIsolation):
(WebCore::RenderStyle::isPlaceholderStyle):
(WebCore::RenderStyle::setIsPlaceholderStyle):

Add placeholder style bit to rareNonInheritedData. We no longer rely on RenderStyle identity for this test.

(WebCore::RenderStyle::noninheritedFlagsMemoryOffset):

  • rendering/style/SVGRenderStyle.cpp:

(WebCore::defaultSVGStyle):
(WebCore::SVGRenderStyle::createDefaultStyle):

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
(WebCore::StyleRareNonInheritedData::contentDataEquivalent):

  • rendering/style/StyleRareNonInheritedData.h:

...

(WebCore::findRenderingRoot):
(WebCore::findRenderingRoots):
(WebCore::RenderTreeUpdater::commit):

Style::Update is no longer const as we move the styles from it to the render tree.

(WebCore::pseudoStyleCacheIsInvalid):
(WebCore::RenderTreeUpdater::updateElementRenderer):
(WebCore::moveToFlowThreadIfNeeded):
(WebCore::RenderTreeUpdater::createRenderer):
(WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement):

  • style/RenderTreeUpdater.h:
  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

  • style/StyleResolveForDocument.h:
  • style/StyleSharingResolver.cpp:

(WebCore::Style::elementHasDirectionAuto):
(WebCore::Style::SharingResolver::resolve):

  • style/StyleSharingResolver.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::ensurePlaceholderStyle):

Set the placeholder.

(WebCore::Style::TreeResolver::Parent::Parent):
(WebCore::Style::TreeResolver::pushScope):
(WebCore::Style::TreeResolver::pushEnclosingScope):
(WebCore::Style::TreeResolver::popScope):

Set and clear StyleResolver overrideDocumentElementStyle as needed. It is owned by the TreeResolver.

(WebCore::Style::TreeResolver::styleForElement):

Clone the placeholder style.

(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::pushParent):
(WebCore::Style::TreeResolver::resolveComposedTree):
(WebCore::Style::TreeResolver::resolve):

Adopt to the std::unique_ptr and ElementStyle move semantics.

  • style/StyleTreeResolver.h:

(WebCore::Style::TreeResolver::scope):

  • style/StyleUpdate.cpp:

(WebCore::Style::Update::elementUpdate):
(WebCore::Style::Update::textUpdate):
(WebCore::Style::Update::elementStyle):
(WebCore::Style::Update::addElement):
(WebCore::Style::Update::addText):

  • style/StyleUpdate.h:

(WebCore::Style::Update::roots):
(WebCore::Style::Update::document):

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::svgAttributeChanged):
(WebCore::SVGAElement::createElementRenderer):

...

5:45 AM Changeset in webkit [199963] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from MediaControlsHost
https://bugs.webkit.org/show_bug.cgi?id=156903

Reviewed by Chris Dumez.

No change of behavior.

  • Modules/mediacontrols/MediaControlsHost.idl: Marking some parameters as nullable.
5:45 AM Changeset in webkit [199962] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from WebGLRenderingContext
https://bugs.webkit.org/show_bug.cgi?id=156909

Reviewed by Chris Dumez.

No change of behavior.

Marking a lot of method parameters as nullable.

  • html/canvas/WebGLRenderingContextBase.idl:
5:37 AM Changeset in webkit [199961] by youenn.fablet@crf.canon.fr
  • 4 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from WebSocket
https://bugs.webkit.org/show_bug.cgi?id=156897

Reviewed by Chris Dumez.

No change of behavior.

Updating WebSocket::send methods to take references, except for ArrayBufferView, which is not yet supported by the binding generator.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::send):

  • Modules/websockets/WebSocket.h:
  • Modules/websockets/WebSocket.idl:

Apr 23, 2016:

7:49 PM Changeset in webkit [199960] by aestes@apple.com
  • 20 edits in trunk/Source

Fix issues found by the clang static analyzer
https://bugs.webkit.org/show_bug.cgi?id=156956

Reviewed by Alexey Proskuryakov.

Source/WebCore:

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange): Stored tz in a RetainPtr.

  • platform/cf/KeyedDecoderCF.cpp:

(WebCore::KeyedDecoderCF::KeyedDecoderCF): If dynamic_cf_cast returned nullptr, the result of
CFPropertyListCreateWithData would leak. Stored the CFPropertyListRef in a RetainPtr, then leaked/adopted it
into m_rootDictionary (to avoid retain count churn) if it is a CFDictionary.

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController dealloc]): Released _externalPlaybackAirPlayDeviceLocalizedName.
(-[WebAVMediaSelectionOption dealloc]): Added to release _localizedDisplayName.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer dealloc]): Released _pixelBufferAttributes.

  • platform/network/cocoa/WebCoreNSURLSession.h: Removed the readwrite attributes from properties, since

properties are readwrite by default.

  • platform/network/cocoa/WebCoreNSURLSession.mm: Removed @dynamic, which isn't necessary just for defining a custom getter.

(-[WebCoreNSURLSessionDataTask dealloc]): Added to release copied ivars.

Source/WebKit/mac:

  • WebView/WebDeviceOrientationProviderMock.mm:

(-[WebDeviceOrientationProviderMock dealloc]): [super dealloc] should be called last.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKPreviewActionItem.mm:

(-[WKPreviewAction dealloc]): Added to release _identifier.

  • UIProcess/_WKWebViewPrintFormatter.mm:

(-[_WKWebViewPrintFormatter dealloc]): Released _frameToPrint.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView inputView]): -createPeripheralWithView: returned a retained object, but the method name did not
match Cocoa conventions. Called -initWithView: instead.
(-[WKContentView _showAttachmentSheet]): Stored the _WKActivatedElementInfo in a RetainPtr.
(-[WKContentView _dataForPreviewItemController:atPosition:type:]): Ditto.
(+[WKAutocorrectionContext autocorrectionContextWithData:markedText:selectedText:afterText:selectedRangeInMarkedText:]):
The properties contextBeforeSelection, selectedText, markedText, and contextAfterSelection have the 'copy'
annotation in UIWKAutocorrectionContext, so the additional copy made here would be leaked. Removed the extra copy.
(-[WKAutocorrectionContext dealloc]): Deleted.

  • UIProcess/ios/forms/WKFormInputControl.h: Removed -createPeripheralWithView: and declared -initWithView:.
  • UIProcess/ios/forms/WKFormInputControl.mm:

(-[WKFormInputControl initWithView:]): Changed to return instancetype.
(+[WKFormInputControl createPeripheralWithView:]): Deleted.

  • UIProcess/ios/forms/WKFormSelectControl.h: Removed -createPeripheralWithView: and declared -initWithView:.
  • UIProcess/ios/forms/WKFormSelectControl.mm:

(+[WKFormSelectControl createPeripheralWithView:]): Deleted.

  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::decodeLegacySessionState): If dynamic_cf_cast returned nullptr, the result of
CFPropertyListCreateWithData would leak. Stored the CFPropertyListRef in a RetainPtr before calling dynamic_cf_cast.

  • UIProcess/mac/ServicesController.mm:

(WebKit::ServicesController::refreshExistingServices): Used a RetainPtr for attachment and cell.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu): Used a RetainPtr for groupEntry.

7:27 PM Changeset in webkit [199959] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Really enable INDEXED_DATABASE on Apple Mac cmake build
https://bugs.webkit.org/show_bug.cgi?id=156902

Reviewed by Michael Catanzaro.

  • Scripts/webkitperl/FeatureList.pm:
7:25 PM Changeset in webkit [199958] by aestes@apple.com
  • 3 edits in trunk/Tools

check-webkit-style: fix false-positive warnings about @synchronized
https://bugs.webkit.org/show_bug.cgi?id=156957

Reviewed by Dan Bernstein.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_spacing_for_function_call): Ignore @synchronized lines.
(check_braces): Ditto.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest.test_brace_at_begin_of_line): Added a test case.

5:13 PM Changeset in webkit [199957] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29.0.1/Source/WebCore

Merged r199956. rdar://problem/25894586

4:51 PM Changeset in webkit [199956] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

<rdar://problem/25894586> A project has failed to build because WTF_MAKE_FAST_ALLOCATED was not defined

Rubber-stamped by Chris Dumez.

Reverted the IntSize part of r199735, to let IntSize.h keep being used in another project.

  • platform/graphics/IntSize.h:

(WebCore::IntSize::IntSize):

2:33 PM Changeset in webkit [199955] by Chris Dumez
  • 22 edits in trunk/Source

Tie the DiagnosticLoggingClient's lifetime to the Page
https://bugs.webkit.org/show_bug.cgi?id=156938
<rdar://problem/25851499>

Reviewed by Antti Koivisto.

Source/WebCore:

Tie the DiagnosticLoggingClient's lifetime to the Page rather than to the
MainFrame. The diagnostic logging client in WebKit2 requires the WebPage
to be alive in order to send IPC to the UIProcess. The WebPage owns the
Page and Page is not refCounted so the lifetime of the
DiagnosticLoggingClient should now be tied to the one of the WebPage as
well.

Previously, the DiagnosticLoggingClient would stay alive as long as the
MainFrame and could apparently in rare cases outlive the WebPage, thus
crashing when trying to send the IPC.

  • history/PageCache.cpp:

(WebCore::logPageCacheFailureDiagnosticMessage):
(WebCore::canCachePage):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource):
(WebCore::logMediaLoadRequest):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::mediaPlayerEngineFailedToLoad):

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

(WebCore::logNavigation):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

  • loader/ResourceLoader.cpp:

(WebCore::logResourceResponseSource):

  • loader/SubframeLoader.cpp:

(WebCore::logPluginRequest):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::logResourceLoaded):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::logMemoryCacheResourceRequest):
(WebCore::logResourceRevalidationDecision):

  • page/DiagnosticLoggingClient.h:
  • page/MainFrame.cpp:

(WebCore::MainFrame::MainFrame): Deleted.
(WebCore::MainFrame::~MainFrame): Deleted.
(WebCore::MainFrame::diagnosticLoggingClient): Deleted.

  • page/MainFrame.h:
  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::diagnosticLoggingClient):

  • page/Page.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::pageDestroyed):
(WebKit::WebDiagnosticLoggingClient::mainFrameDestroyed): Deleted.

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::willStartUserTriggeredZooming):

10:45 AM Changeset in webkit [199954] by bshafiei@apple.com
  • 11 edits in tags/Safari-602.1.29.0.1/Source/WebKit2

Merged r199951. rdar://problem/25893246

10:44 AM Changeset in webkit [199953] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.29.0.1/Source

Versioning.

10:41 AM Changeset in webkit [199952] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.29.0.1

New tag.

10:37 AM Changeset in webkit [199951] by mitz@apple.com
  • 11 edits in trunk/Source/WebKit2

<rdar://problem/25893246> WebKit2 has failed to build: error: use of undeclared identifier 'm_playbackSessionManager'

Fixed the non-AVKit build.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _isShowingVideoPictureInPicture]):
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::fullScreenManager):
(WebKit::WebPageProxy::playbackSessionManager):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidBecomeActive):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createScrollingCoordinator):
(WebKit::WebChromeClient::supportsVideoFullscreen):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::inspectorUI):
(WebKit::WebPage::playbackSessionManager):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/cocoa/WebVideoFullscreenManager.h:
  • WebProcess/cocoa/WebVideoFullscreenManager.mm:
10:05 AM Changeset in webkit [199950] by barraclough@apple.com
  • 4 edits in trunk/Source/bmalloc

bmalloc: vm allocations should plant guard pages
https://bugs.webkit.org/show_bug.cgi?id=156937

Rolling out - looks like this is memory regression.

  • bmalloc/Object.h:

(bmalloc::Object::operator+):
(bmalloc::Object::operator<=):
(bmalloc::Object::operator-): Deleted.

  • bmalloc/VMAllocate.h:

(bmalloc::vmDeallocate):
(bmalloc::vmRevokePermissions): Deleted.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateSmallChunk):

9:38 AM Changeset in webkit [199949] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, unbreak cloop.

  • runtime/VM.cpp:

(JSC::VM::getHostFunction):

8:18 AM Changeset in webkit [199948] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Updated Hungarian translation
https://bugs.webkit.org/show_bug.cgi?id=156952

Patch by Gabor Kelemen <kelemeng@ubuntu.com> on 2016-04-23
Rubber-stamped by Michael Catanzaro.

  • hu.po:
2:12 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)

Apr 22, 2016:

7:49 PM Changeset in webkit [199947] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: HeapAllocationsTimeline grid should use built-in grid column icons
https://bugs.webkit.org/show_bug.cgi?id=156934

Reviewed by Timothy Hatcher.

  • UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:

(WebInspector.HeapAllocationsTimelineDataGridNode):
Use existing base class helper function to create main title text.
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCellContent):
Add icon class names to cell, remove icon element.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView):
Turn on icons for the column.

7:00 PM Changeset in webkit [199946] by fpizlo@apple.com
  • 19 edits
    3 adds in trunk

Speed up bound functions a bit
https://bugs.webkit.org/show_bug.cgi?id=156889

Reviewed by Saam Barati.
Source/JavaScriptCore:


Bound functions are hard to optimize because JSC doesn't have a good notion of non-JS code
that does JS-ey things like make JS calls. What I mean by "non-JS code" is code that did not
originate from JS source. A bound function does a highly polymorphic call to the target
stored in the JSBoundFunction. Prior to this change, we represented it as native code that
used the generic native->JS call API. That's not cheap.

We could model bound functions using a builtin, but it's not clear that this would be easy
to grok, since so much of the code would have to access special parts of the JSBoundFunction
type. Doing it that way might solve the performance problems but it would mean extra work to
arrange for the builtin to have speedy access to the call target, the bound this, and the
bound arguments. Also, optimizing bound functions that way would mean that bound function
performance would be gated on the performance of a bunch of other things in our system. For
example, we'd want this polymorphic call to be handled like the funnel that it is: if we're
compiling the bound function's outgoing call with no context then we should compile it as
fully polymorphic but we can let it assume basic sanity like that the callee is a real
function; but if we're compiling the call with any amount of calling context then we want to
use normal call IC's.

Since the builtin path wouldn't lead to a simpler patch and since I think that the VM will
benefit in the long run from using custom handling for bound functions, I kept the native
code and just added Intrinsic/thunk support.

This just adds an Intrinsic for bound function calls where the JSBoundFunction targets a
JSFunction instance and has no bound arguments (only bound this). This intrinsic is
currently only implemented as a thunk and not yet recognized by the DFG bytecode parser.

I needed to loosen some restrictions to do this. For one, I was really tired of our bad use
of ENABLE(JIT) conditionals, which made it so that any serious client of Intrinsics would
have to have #ifdefs. Really what should happen is that if the JIT is not enabled then we
just ignore intrinsics. Also, the code was previously assuming that having a native
constructor and knowing the Intrinsic for your native call were mutually exclusive. This
change makes it possible to have a native executable that has a custom function, custom
constructor, and an Intrinsic.

This is a >4x speed-up on bound function calls with no bound arguments.

In the future, we should teach the DFG Intrinsic handling to deal with bound functions and
we should teach the inliner (and ByteCodeParser::handleCall() in general) how to deal with
the function call inside the bound function. That would be super awesome.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::timesPtr):
(JSC::AbstractMacroAssembler::Address::withOffset):
(JSC::AbstractMacroAssembler::BaseIndex::BaseIndex):
(JSC::MacroAssemblerType>::Address::indexedBy):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::storeCell):
(JSC::AssemblyHelpers::loadCell):
(JSC::AssemblyHelpers::storeValue):
(JSC::AssemblyHelpers::emitSaveCalleeSaves):
(JSC::AssemblyHelpers::emitSaveThenMaterializeTagRegisters):
(JSC::AssemblyHelpers::emitRestoreCalleeSaves):
(JSC::AssemblyHelpers::emitRestoreSavedTagRegisters):
(JSC::AssemblyHelpers::copyCalleeSavesToVMCalleeSavesBuffer):

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiNativeTailCall):
(JSC::JITThunks::ctiNativeTailCallWithoutSavedTags):
(JSC::JITThunks::ctiStub):
(JSC::JITThunks::hostFunctionStub):
(JSC::JITThunks::clearHostFunctionStubs):

  • jit/JITThunks.h:
  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::callDoubleToDoublePreservingReturn):
(JSC::SpecializedThunkJIT::tagReturnAsInt32):
(JSC::SpecializedThunkJIT::emitSaveThenMaterializeTagRegisters): Deleted.
(JSC::SpecializedThunkJIT::emitRestoreSavedTagRegisters): Deleted.

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::nativeCallGenerator):
(JSC::nativeTailCallGenerator):
(JSC::nativeTailCallWithoutSavedTagsGenerator):
(JSC::nativeConstructGenerator):
(JSC::randomThunkGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • jit/ThunkGenerators.h:
  • runtime/Executable.cpp:

(JSC::NativeExecutable::create):
(JSC::NativeExecutable::destroy):
(JSC::NativeExecutable::createStructure):
(JSC::NativeExecutable::finishCreation):
(JSC::NativeExecutable::NativeExecutable):
(JSC::ScriptExecutable::ScriptExecutable):

  • runtime/Executable.h:
  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncBind):

  • runtime/IntlCollatorPrototype.cpp:

(JSC::IntlCollatorPrototypeGetterCompare):

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

(JSC::boundThisNoArgsFunctionCall):
(JSC::boundFunctionCall):
(JSC::boundThisNoArgsFunctionConstruct):
(JSC::boundFunctionConstruct):
(JSC::getBoundFunctionStructure):
(JSC::JSBoundFunction::create):
(JSC::JSBoundFunction::customHasInstance):
(JSC::JSBoundFunction::JSBoundFunction):

  • runtime/JSBoundFunction.h:

(JSC::JSBoundFunction::targetFunction):
(JSC::JSBoundFunction::boundThis):
(JSC::JSBoundFunction::boundArgs):
(JSC::JSBoundFunction::createStructure):
(JSC::JSBoundFunction::offsetOfTargetFunction):
(JSC::JSBoundFunction::offsetOfBoundThis):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::lookUpOrCreateNativeExecutable):
(JSC::JSFunction::create):

  • runtime/VM.cpp:

(JSC::thunkGeneratorForIntrinsic):
(JSC::VM::getHostFunction):

  • runtime/VM.h:

(JSC::VM::getCTIStub):
(JSC::VM::exceptionOffset):

LayoutTests:

This microbenchmark speeds up by >4x with this change.

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

(foo):

6:14 PM Changeset in webkit [199945] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

6:13 PM Changeset in webkit [199944] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

6:11 PM Changeset in webkit [199943] by jh718.park@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix build break since r199866
https://bugs.webkit.org/show_bug.cgi?id=156892

Reviewed by Darin Adler.

  • runtime/MathCommon.cpp: Follow up to r199913. Remove 'include cmath' in cpp file.
5:58 PM Changeset in webkit [199942] by Chris Dumez
  • 11 edits
    2 adds in trunk

Cannot access the SQLTransaction.constructor.prototype
https://bugs.webkit.org/show_bug.cgi?id=156613

Reviewed by Darin Adler.

Source/WebCore:

Drop [NoInterfaceObject] from the following SQL interfaces:
Database, SQLError, SQLResultSet, SQLResultSetRowList and SQLTransaction.

This matches the specification:
https://dev.w3.org/html5/webdatabase/

This was causing the 'constructor' property to be wrong for these
interfaces as it would be a generic Object.

Test: storage/websql/transaction-prototype.html

  • Modules/webdatabase/Database.idl:
  • Modules/webdatabase/SQLError.idl:
  • Modules/webdatabase/SQLResultSet.idl:
  • Modules/webdatabase/SQLResultSetRowList.idl:
  • Modules/webdatabase/SQLTransaction.idl:

LayoutTests:

Rebaseline existing test now that more SQL constructors are exposed on the
global Window object. Also add a test to confirm that it is possible to
access SQLTransaction.constructor.prototype and that it seems correct.

  • js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • storage/websql/transaction-prototype-expected.txt: Added.
  • storage/websql/transaction-prototype.html: Added.
5:45 PM Changeset in webkit [199941] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Optimize number parsing and string parsing in LiteralParser
https://bugs.webkit.org/show_bug.cgi?id=156896

Reviewed by Mark Lam.

This patch aim to improve JSON.parse performance. Major 2 optimizations are included.

  1. Change double result to int32_t result in integer parsing case.

We already have the optimized path for integer parsing, when it's digits are less than 10.
At that case, the maximum number is 999999999, and the minimum number is -99999999.
The both are in range of Int32. So We can use int32_t for accumulation instead of double.

  1. Add the string parsing fast / slow cases.

We add the fast case for string parsing, which does not include any escape sequences.

Both optimizations improve Kraken json-parse-financial, roughly 3.5 - 4.5%.

json-parse-financial 49.128+-1.589 46.979+-0.912 might be 1.0457x faster

  • runtime/LiteralParser.cpp:

(JSC::isJSONWhiteSpace):
(JSC::isSafeStringCharacter):
(JSC::LiteralParser<CharType>::Lexer::lexString):
(JSC::LiteralParser<CharType>::Lexer::lexStringSlow):
(JSC::LiteralParser<CharType>::Lexer::lexNumber):

  • runtime/LiteralParser.h:
5:44 PM Changeset in webkit [199940] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Include columnNumber in event listener locations
https://bugs.webkit.org/show_bug.cgi?id=156927
<rdar://problem/25884584>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-22
Reviewed by Brian Burg.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForEventListener):
Include the column number in the location as well.

5:40 PM Changeset in webkit [199939] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

Web Inspector: Source directives lost when using Function constructor repeatedly
https://bugs.webkit.org/show_bug.cgi?id=156863
<rdar://problem/25861064>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-22
Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Source directives (sourceURL and sourceMappingURL) are normally accessed through
the SourceProvider and normally set when the script is parsed. However, when a
CodeCache lookup skips parsing, the new SourceProvider never gets the directives
(sourceURL/sourceMappingURL). This patch stores the directives on the UnlinkedCodeBlock
and UnlinkedFunctionExecutable when entering the cache, and copies to the new providers
when the cache is used.

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::sourceURLDirective):
(JSC::UnlinkedCodeBlock::sourceMappingURLDirective):
(JSC::UnlinkedCodeBlock::setSourceURLDirective):
(JSC::UnlinkedCodeBlock::setSourceMappingURLDirective):

  • bytecode/UnlinkedFunctionExecutable.h:
  • parser/SourceProvider.h:
  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/CodeCache.h:

Store directives on the unlinked code block / executable when adding
to the cache, so they can be used to update new providers when the
cache gets used.

  • runtime/JSGlobalObject.cpp:

Add needed header after CodeCache header cleanup.

LayoutTests:

  • inspector/debugger/sourceURL-repeated-identical-executions-expected.txt: Added.
  • inspector/debugger/sourceURL-repeated-identical-executions.html: Added.
5:07 PM Changeset in webkit [199938] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.128

New tag.

5:07 PM Changeset in webkit [199937] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.6.17

New tag.

4:56 PM Changeset in webkit [199936] by ggaren@apple.com
  • 4 edits in trunk/Source/bmalloc

bmalloc: vm allocations should plant guard pages
https://bugs.webkit.org/show_bug.cgi?id=156937

Reviewed by Michael Saboff.

  • bmalloc/Object.h:

(bmalloc::Object::operator-): Added a - helper.

  • bmalloc/VMAllocate.h:

(bmalloc::vmRevokePermissions): Added a helper to revoke permissions on
a VM region. We use this for guard pages.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::allocateSmallChunk): Add guard pages to the start and
end of the chunk.

Note that we don't guard large chunks becuase we need to be able to merge
them. Otherwise, we will run out of virtual addresses.

4:48 PM Changeset in webkit [199935] by mark.lam@apple.com
  • 4 edits
    3 adds in trunk

javascript jit bug affecting Google Maps.
https://bugs.webkit.org/show_bug.cgi?id=153431

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

The issue was due to the abstract interpreter wrongly marking the type of the
value read from the Uint3Array as SpecInt52, which precludes it from being an
Int32. This proves to be false, and the generated code failed to handle the case
where the read value is actually an Int32.

The fix is to have the abstract interpreter use SpecMachineInt instead of
SpecInt52.

  • bytecode/SpeculatedType.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

LayoutTests:

  • js/regress/bug-153431-expected.txt: Added.
  • js/regress/bug-153431.html: Added.
  • js/regress/script-tests/bug-153431.js: Added.
4:25 PM Changeset in webkit [199934] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

bmalloc: Constify introspect function pointer table
https://bugs.webkit.org/show_bug.cgi?id=156936

Reviewed by Michael Saboff.

  • bmalloc/Zone.cpp:

(bmalloc::Zone::Zone): Declaring this function pointer table const puts
it in the read-only section of the binary, providing a little hardening
against overwriting the function pointers at runtime. (We have to
const_cast when assigning because the API declares a pointer to non-const,
but we happen to know it will never try to write through that pointer.
This is not my favorite API.)

4:10 PM Changeset in webkit [199933] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] PredictionPropagation should not be in the top 5 heaviest phases
https://bugs.webkit.org/show_bug.cgi?id=156891

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

In DFG, PredictionPropagation is often way too high in profiles.
It is a simple phase, it should not be that hot.

Most of the time is spent accessing memory. This patch attempts
to reduce that.

First, propagate() is split in processInvariants() and propagates().
The step processInvariants() sets all the types for nodes for which
the type does not depends on other nodes.

Adding processInvariants() lowers two hotspot inside PredictionPropagation:
speculationFromValue() and setPrediction().

Next, to avoid touching all the nodes at every operation, we keep
track of the nodes that actually need propagate().
The vector m_dependentNodes keeps the list of those nodes and propagate()
only need to process them at each phase.

This is a smaller gain because growing m_dependentNodes negates
some of the gains.

On 3d-cube, this moves PredictionPropagation from fifth position
to ninth. A lot of the remaining overhead is caused by double-voting
and cannot be fixed by moving stuff around.

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagateToFixpoint): Deleted.
(JSC::DFG::PredictionPropagationPhase::propagate): Deleted.
(JSC::DFG::PredictionPropagationPhase::propagateForward): Deleted.
(JSC::DFG::PredictionPropagationPhase::propagateBackward): Deleted.
(JSC::DFG::PredictionPropagationPhase::doDoubleVoting): Deleted.
(JSC::DFG::PredictionPropagationPhase::doRoundOfDoubleVoting): Deleted.
(JSC::DFG::PredictionPropagationPhase::propagateThroughArgumentPositions): Deleted.

4:10 PM Changeset in webkit [199932] by bshafiei@apple.com
  • 3 edits in tags/Safari-602.1.29/Source/WebKit2

Merged r199919.

4:09 PM Changeset in webkit [199931] by bshafiei@apple.com
  • 3 edits in tags/Safari-602.1.29/Source/WebKit2

Merged r199917.

4:08 PM Changeset in webkit [199930] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebCore

Merged r199915.

4:07 PM Changeset in webkit [199929] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebCore

Merged r199885.

4:05 PM Changeset in webkit [199928] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebKit2

Merged r199914.

4:04 PM Changeset in webkit [199927] by ggaren@apple.com
  • 20 edits in trunk

super should be available in object literals
https://bugs.webkit.org/show_bug.cgi?id=156933

Reviewed by Saam Barati.

Source/JavaScriptCore:

When we originally implemented classes, super seemed to be a class-only
feature. But the final spec says it's available in object literals too.

  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitBytecode): Having 'super' and being a class
property are no longer synonymous, so we track two separate variables.

(JSC::PropertyListNode::emitPutConstantProperty): Being inside the super
branch no longer guarantees that you're a class property, so we decide
our attributes and our function name dynamically.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createArrowFunctionExpr):
(JSC::ASTBuilder::createGetterOrSetterProperty):
(JSC::ASTBuilder::createArguments):
(JSC::ASTBuilder::createArgumentsList):
(JSC::ASTBuilder::createProperty):
(JSC::ASTBuilder::createPropertyList): Pass through state to indicate
whether we're a class property, since we can't infer it from 'super'
anymore.

  • parser/NodeConstructors.h:

(JSC::PropertyNode::PropertyNode): See ASTBuilder.h.

  • parser/Nodes.h:

(JSC::PropertyNode::expressionName):
(JSC::PropertyNode::name):
(JSC::PropertyNode::type):
(JSC::PropertyNode::needsSuperBinding):
(JSC::PropertyNode::isClassProperty):
(JSC::PropertyNode::putType): See ASTBuilder.h.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parseMemberExpression): I made these error
messages generic because it is no longer practical to say concise things
about the list of places you can use super.

  • parser/Parser.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createArgumentsList):
(JSC::SyntaxChecker::createProperty):
(JSC::SyntaxChecker::appendExportSpecifier):
(JSC::SyntaxChecker::appendConstDecl):
(JSC::SyntaxChecker::createGetterOrSetterProperty): Updated for
interface change.

  • tests/stress/generator-with-super.js:

(test):

  • tests/stress/modules-syntax-error.js:
  • tests/stress/super-in-lexical-scope.js:

(testSyntaxError):
(testSyntaxError.test):

  • tests/stress/tagged-templates-syntax.js: Updated for error message

changes. See Parser.cpp.

LayoutTests:

Updated expected results and added a few new tests.

  • js/arrowfunction-syntax-errors-expected.txt:
  • js/class-syntax-super-expected.txt:
  • js/object-literal-methods-expected.txt:
  • js/script-tests/arrowfunction-syntax-errors.js:
  • js/script-tests/class-syntax-super.js:
  • js/script-tests/object-literal-methods.js:
4:04 PM Changeset in webkit [199926] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebCore

Merged r199912. rdar://problem/25865315

4:03 PM Changeset in webkit [199925] by bshafiei@apple.com
  • 4 edits in tags/Safari-602.1.29/Source/WebKit

Merged r199908.

4:02 PM Changeset in webkit [199924] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebCore

Merged r199904.

4:02 PM Changeset in webkit [199923] by matthew_hanson@apple.com
  • 3 adds in branches/safari-601-branch/LayoutTests/http/tests/svg

Merge LayoutTests for r199881. rdar://problem/25879498

4:01 PM Changeset in webkit [199922] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebCore

Merged r199886.

3:58 PM Changeset in webkit [199921] by bshafiei@apple.com
  • 3 edits in tags/Safari-602.1.29/Source/WebKit2

Merged r199903.

3:57 PM Changeset in webkit [199920] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.29/Source/WebCore

Merged r199902.

3:46 PM Changeset in webkit [199919] by Ryan Haddad
  • 3 edits in trunk/Source/WebKit2

Fixing a typo in my last commit.

Unreviewed build fix.

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
  • WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
3:46 PM Changeset in webkit [199918] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ASSERT(m_stack.last().isTailDeleted) at ShadowChicken.cpp:127 inspecting the inspector
https://bugs.webkit.org/show_bug.cgi?id=156930

Reviewed by Joseph Pecoraro.

The loop that prunes the stack from the top should preserve the invariant that the top frame
cannot be tail-deleted.

  • interpreter/ShadowChicken.cpp:

(JSC::ShadowChicken::update):

3:41 PM Changeset in webkit [199917] by Ryan Haddad
  • 3 edits in trunk/Source/WebKit2

Missed some macros to fix builds that do not support AVKit.

Unreviewed build fix.

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in:
  • WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
3:38 PM Changeset in webkit [199916] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Add JSC test results in json format to a buildbot log
https://bugs.webkit.org/show_bug.cgi?id=156920

Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-04-22
Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(RunJavaScriptCoreTests):
Add runtime flag to output json into buildbot

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):
Change key names and remove redundant count key

3:30 PM Changeset in webkit [199915] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix.

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::isHidden):

3:05 PM Changeset in webkit [199914] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit2

Fix builds that do not support AVKit

Unreviewed build fix.

  • UIProcess/WebPageProxy.h:
3:02 PM Changeset in webkit [199913] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Attempt to fix the CLoop after r199866

  • runtime/MathCommon.h:
2:48 PM Changeset in webkit [199912] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Crash at -[WebAVPlayerLayer resolveBounds]
https://bugs.webkit.org/show_bug.cgi?id=156931
<rdar://problem/25865315>

Reviewed by Eric Carlson.

When cloning the WebAVPlayerLayer, we must copy over the fullscreenInterface to the cloned layer.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebAVPlayerLayerView_startRoutingVideoToPictureInPicturePlayerLayerView):

2:40 PM Changeset in webkit [199911] by matthew_hanson@apple.com
  • 10 edits in branches/safari-601-branch

Merge r199881. rdar://problem/25879498

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

Crash under WebCore::DataDetection::detectContentInRange()
https://bugs.webkit.org/show_bug.cgi?id=156880
<rdar://problem/25622631>

Reviewed by Darin Adler.

We would sometimes crash under WebCore::DataDetection::detectContentInRange()
when dereferencing a null parentNode pointer. This patch adds a null check
for parentNode in the for() loop. It also does some clean up and optimization
since I was passing by.

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):

2:32 PM Changeset in webkit [199909] by matthew_hanson@apple.com
  • 10 edits
    3 adds in branches/safari-601.1.46-branch

Merge r199881. rdar://problem/25879593

2:27 PM Changeset in webkit [199908] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

Source/WebKit:
Unreviewed build fix after r199841.

  • PlatformWin.cmake: Add missing WebApplicationCache.cpp buid directive.

Source/WebKit/win:
Unreviewed build fix after 4199841.

  • WebApplicationCache.cpp:

(WebApplicationCache::WebApplicationCache): Provide missing preference key definition.

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

Rebaselining inspector/model/stack-trace.html after r199897

Unreviewed test gardening.

  • inspector/model/stack-trace-expected.txt:
2:25 PM Changeset in webkit [199906] by Simon Fraser
  • 2 edits in trunk/PerformanceTests

Skip two content animation tests which are only meant for iOS testing.

  • Animation/css-animation.html: Added.
  • Animation/raf-animation.html: Added.
  • Skipped:
2:24 PM Changeset in webkit [199905] by keith_miller@apple.com
  • 2 edits in trunk/Source/WebCore

buildObjectForEventListener should not call into JSC with a null ExecState
https://bugs.webkit.org/show_bug.cgi?id=156923

Reviewed by Joseph Pecoraro.

If a user had disabled JavaScript on their page then the inspector tried to
add an event listener we would fail to create an ExecState. Since we didn't
check this ExecState was valid we would then attempt to stringify the value,
which would cause JSC to crash.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForEventListener):

2:22 PM Changeset in webkit [199904] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Yet another attempt at fixing Windows.

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::isHidden):

  • platform/graphics/ca/win/PlatformCALayerWin.h:
2:07 PM Changeset in webkit [199903] by Ryan Haddad
  • 3 edits in trunk/Source/WebKit2

Take 2 for fixing builds that do not support AVKit

Unreviewed build fix.

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetState):

2:07 PM Changeset in webkit [199902] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Attempt to fix Windows build after r199862

Unreviewed build fix.

  • platform/graphics/ca/win/PlatformCALayerWin.h:
2:06 PM Changeset in webkit [199901] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

WKWebView WebSQL is not enabled
https://bugs.webkit.org/show_bug.cgi?id=156928
rdar://problem/19029603

Reviewed by Beth Dakin.

Give databases a default quota of 50 MB, matching what we have in UIWebView.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::exceededDatabaseQuota):

1:57 PM Changeset in webkit [199900] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Anchor element 'ping' property should only apply to http/https destinations
https://bugs.webkit.org/show_bug.cgi?id=156801
<rdar://problem/25834419>

Reviewed by Chris Dumez.

Take advantage of the hyperlink auditing language "UAs may either ignore the
ping attribute altogether, or selectively ignore URLs in the list (e.g. ignoring
any third-party URLs)" to restrict pings to http/https targets. For details, see
<https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing>.

Tested by http/tests/navigation/ping-attribute tests.

  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendPing): Ignore requests to ping anything outside the
family of HTTP protocols (http/https).

1:28 PM Changeset in webkit [199899] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Change an assert to a warn based on post review feedback.

https://bugs.webkit.org/show_bug.cgi?id=156919
rdar://problem/25857118

Rubber-stamped by Joseph Pecoraro.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.debuggerDidPause):

1:12 PM Changeset in webkit [199898] by bshafiei@apple.com
  • 8 edits in tags/Safari-602.1.29/Source

Merged r199896.

12:53 PM Changeset in webkit [199897] by timothy@apple.com
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger statement in console does not provide any call frames and debugger UI is confused

https://bugs.webkit.org/show_bug.cgi?id=156919
rdar://problem/25857118

This makes console expressions show up in the Debugger tab sidebar if a ScriptContentView is shown for them.
We now also show call frames that originate from a console expression, so the call frames in the sidebar is not empty.
Also fix a bug where when there are no call frames we auto resume the debugger and don't leave it in a broken state.

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js: Updated.
  • UserInterface/Base/Utilities.js:

(appendWebInspectorSourceURL): Don't append if another sourceURL is already added.
(appendWebInspectorConsoleEvaluationSourceURL): Added.
(isWebInspectorConsoleEvaluationScript): Added.
(isWebKitInternalScript): Return false for isWebInspectorConsoleEvaluationScript().

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.debuggerDidPause): Resume if call frames is empty. This is not as common now
since console expression call frames are not skipped.
(WebInspector.DebuggerManager.prototype.scriptDidParse): Change an early return for isWebInspectorInternalScript() that
was skipping adding internal scripts to the known script lists, but it should only do that when the debug UI is disabled.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
Call appendWebInspectorConsoleEvaluationSourceURL so the console expressions are tagged before evaluateInInspectedWindow
added the internal sourceURL name.

  • UserInterface/Models/Script.js:

(WebInspector.Script): Assign unique identifiers to console scripts so they are named correctly.
(WebInspector.Script.resetUniqueDisplayNameNumbers): Reset _nextUniqueConsoleDisplayNameNumber.
(WebInspector.Script.prototype.get displayName): Special case console expressions with a better name.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype.treeElementForRepresentedObject): Add a script tree element on demand
like the ResourceSidebarPanel does for anonymous scripts.
(WebInspector.DebuggerSidebarPanel.prototype._addScript): Return treeElement so treeElementForRepresentedObject can use it.

12:44 PM Changeset in webkit [199896] by Ryan Haddad
  • 8 edits in trunk/Source

Fix builds that do not support AVKit

Unreviewed build fix.

  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::viewDidLeaveWindow):

  • UIProcess/ios/WebPageProxyIOS.mm:
  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:
12:42 PM Changeset in webkit [199895] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (r189567): The top of Facebook's messenger.com looks visually broken
https://bugs.webkit.org/show_bug.cgi?id=156869
<rdar://problem/23204668>

Reviewed by Zalan Bujtas.

Source/WebCore:

Added fast/block/min-content-with-box-sizing.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing):

LayoutTests:

  • fast/block/min-content-box-sizing-expected.html: Added.
  • fast/block/min-content-box-sizing.html: Added.
12:27 PM Changeset in webkit [199894] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Integer Multiply of a number by itself does not need negative zero support
https://bugs.webkit.org/show_bug.cgi?id=156895

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

You cannot produce negative zero by squaring an integer.

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithMul):
Minor codegen fixes:
-Use the right form of multiply for ARM.
-Use a sign-extended 32bit immediates, that's the one with fast forms

in the MacroAssembler.

12:25 PM Changeset in webkit [199893] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

TextAutoSizingKey should use normal refcounting
https://bugs.webkit.org/show_bug.cgi?id=156893

Reviewed by Andreas Kling.

Get rid of special refcounting of style in favor of RefPtr. It also becomes a move-only type
to support future switch to non-refcounted RenderStyle.

Also general cleanups and modernization.

  • dom/Document.cpp:

(WebCore::TextAutoSizingTraits::constructDeletedValue):
(WebCore::TextAutoSizingTraits::isDeletedValue):
(WebCore::Document::addAutoSizingNode):
(WebCore::Document::validateAutoSizingNodes):
(WebCore::Document::resetAutoSizingNodes):

Adopt to being move-only.

  • rendering/TextAutoSizing.cpp:

(WebCore::cloneRenderStyleWithState):
(WebCore::TextAutoSizingKey::TextAutoSizingKey):

Clone the style for safety against mutations. Cloning is cheap.

(WebCore::TextAutoSizingValue::numNodes):
(WebCore::TextAutoSizingValue::adjustNodeSizes):
(WebCore::TextAutoSizingValue::reset):
(WebCore::TextAutoSizingKey::~TextAutoSizingKey): Deleted.
(WebCore::TextAutoSizingKey::operator=): Deleted.
(WebCore::TextAutoSizingKey::ref): Deleted.
(WebCore::TextAutoSizingKey::deref): Deleted.

  • rendering/TextAutoSizing.h:

(WebCore::TextAutoSizingKey::TextAutoSizingKey):
(WebCore::TextAutoSizingKey::style):
(WebCore::TextAutoSizingKey::isDeleted):
(WebCore::operator==):
(WebCore::TextAutoSizingKey::doc): Deleted.
(WebCore::TextAutoSizingKey::isValidDoc): Deleted.
(WebCore::TextAutoSizingKey::isValidStyle): Deleted.
(WebCore::TextAutoSizingKey::deletedKeyDoc): Deleted.
(WebCore::TextAutoSizingKey::deletedKeyStyle): Deleted.

m_doc member is not used for anything except deleted value comparisons. Replace it with a bit.

12:25 PM Changeset in webkit [199892] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.29

New tag.

12:25 PM Changeset in webkit [199891] by bshafiei@apple.com
  • 1 delete in tags/Safari-602.1.29

Delete tag.

12:24 PM Changeset in webkit [199890] by Chris Dumez
  • 13 edits in trunk/Source/WebCore

Crash under FontCache::purgeInactiveFontData()
https://bugs.webkit.org/show_bug.cgi?id=156822
<rdar://problem/25373970>

Reviewed by Darin Adler.

In some rare cases, the Font constructor would mutate the FontPlatformData
that is being passed in. This is an issue because because our FontCache
uses the FontPlatformData as key for the cached fonts. This could lead to
crashes because the WTFMove() in FontCache::purgeInactiveFontData() would
nullify values in our HashMap but we would then fail to remove them from
the HashMap (because the key did not match). We would then reference the
null font when looping again when doing font->hasOneRef().

This patch marks Font::m_platformData member as const to avoid such issues
in the future and moves the code altering the FontPlatformData from the
Font constructor into the FontPlatformData constructor. The purpose of
that code was to initialize FontPlatformData::m_cgFont in case the CGFont
passed in the constructor was null.

  • platform/graphics/Font.h:
  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::fontForPlatformData):
(WebCore::FontCache::purgeInactiveFontData):

  • platform/graphics/FontPlatformData.cpp:

(WebCore::FontPlatformData::FontPlatformData):

  • platform/graphics/FontPlatformData.h:
  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::webFallbackFontFamily): Deleted.
(WebCore::Font::platformInit): Deleted.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::webFallbackFontFamily):
(WebCore::FontPlatformData::setFallbackCGFont):

  • platform/graphics/win/FontPlatformDataCGWin.cpp:

(WebCore::FontPlatformData::setFallbackCGFont):

12:22 PM Changeset in webkit [199889] by Chris Dumez
  • 18 edits in trunk

Support disabling at runtime IndexedDB constructors exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=156883

Reviewed by Darin Adler.

Source/WebCore:

Support disabling at runtime IndexedDB constructors exposed to workers.
Previously, constructors visibility to workers and window was constrolled
by the same runtime flag.

  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBCursorWithValue.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBOpenDBRequest.idl:
  • Modules/indexeddb/IDBRequest.idl:
  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/indexeddb/IDBVersionChangeEvent.idl:
  • workers/WorkerGlobalScope.idl:

LayoutTests:

Add layout test coverage.

  • storage/indexeddb/modern/resources/workers-disabled.js:
  • storage/indexeddb/modern/resources/workers-enable.js:
  • storage/indexeddb/modern/workers-disabled-expected.txt:
  • storage/indexeddb/modern/workers-enable-expected.txt:
12:14 PM Changeset in webkit [199888] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

12:13 PM Changeset in webkit [199887] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.29

New tag.

12:01 PM Changeset in webkit [199886] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Attempting to fix Windows build. Add isHidden implementation.

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::isHidden):

11:59 AM Changeset in webkit [199885] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Attempt at a Windows build fix.

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):

11:27 AM Changeset in webkit [199884] by hyatt@apple.com
  • 3 edits
    4 adds in trunk

Source/WebCore:

-webkit-image-set doesn't work inside CSS variables

https://bugs.webkit.org/show_bug.cgi?id=156915
<rdar://problem/25473972>

Reviewed by Zalan Bujtas.

Added new tests in fast/hidpi.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::equals):
(WebCore::CSSPrimitiveValue::buildParserValue):

LayoutTests:
-webkit-image-set doesn't work inside CSS variables
https://bugs.webkit.org/show_bug.cgi?id=156915
<rdar://problem/25473972>

Reviewed by Zalan Bujtas.

  • fast/hidpi/image-srcset-simple-in-variable-1x-expected.txt: Added.
  • fast/hidpi/image-srcset-simple-in-variable-1x.html: Added.
  • fast/hidpi/image-srcset-simple-in-variable-2x-expected.txt: Added.
  • fast/hidpi/image-srcset-simple-in-variable-2x.html: Added.
11:17 AM Changeset in webkit [199883] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r199877.
https://bugs.webkit.org/show_bug.cgi?id=156918

The LayoutTest added with this change is failing on all
platforms. (Requested by ryanhaddad on #webkit).

Reverted changeset:

"REGRESSION (r189567): The top of Facebook's messenger.com
looks visually broken"
https://bugs.webkit.org/show_bug.cgi?id=156869
http://trac.webkit.org/changeset/199877

Patch by Commit Queue <commit-queue@webkit.org> on 2016-04-22

11:06 AM Changeset in webkit [199882] by beidson@apple.com
  • 10 edits in trunk/Source

Modern IDB: Rework the ownership/RefCounting model of IDBConnectionToServer and IDBConnectionProxy.
https://bugs.webkit.org/show_bug.cgi?id=156916

Reviewed by Tim Horton.

Source/WebCore:

No new tests (No behavior change).

  • Modules/indexeddb/IDBFactory.cpp: Remove unneeded include.
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::ref): Ref the ConnectionToServer.
(WebCore::IDBClient::IDBConnectionProxy::deref): Deref it.
(WebCore::IDBClient::IDBConnectionProxy::connectionToServer):
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):
(WebCore::IDBClient::IDBConnectionProxy::create): Deleted.

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::IDBConnectionToServer): Create a proxy owned by this.
(WebCore::IDBClient::IDBConnectionToServer::proxy): Expose it.

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • dom/Document.cpp:

(WebCore::Document::idbConnectionProxy):

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):

10:37 AM Changeset in webkit [199881] by Antti Koivisto
  • 10 edits
    3 adds in trunk

REGRESSION (r194898): Multi download of external SVG defs file by <use> xlinks:href (caching)
https://bugs.webkit.org/show_bug.cgi?id=156368
<rdar://problem/25611746>

Reviewed by Simon Fraser.

Source/WebCore:

We would load svg resources with fragment identifier again because the encoding never matched.

Test: http/tests/svg/svg-use-external.html

  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::setEncoding):
(WebCore::TextResourceDecoder::hasEqualEncodingForCharset):

Encoding can depend on mime type. Add a comparison function that takes this into account.

(WebCore::findXMLEncoding):

  • loader/TextResourceDecoder.h:

(WebCore::TextResourceDecoder::encoding):

  • loader/cache/CachedCSSStyleSheet.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::textResourceDecoder):

Add a way to get the TextResourceDecoder from a cached resource.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::determineRevalidationPolicy):

Use the new comparison function.

  • loader/cache/CachedSVGDocument.h:
  • loader/cache/CachedScript.h:
  • loader/cache/CachedXSLStyleSheet.h:

LayoutTests:

  • http/tests/svg/resources/symbol-defs.svg: Added.
  • http/tests/svg/svg-use-external-expected.txt: Added.
  • http/tests/svg/svg-use-external.html: Added.
10:18 AM Changeset in webkit [199880] by Ryan Haddad
  • 2 edits in trunk/Tools

Update expected result for WKPreferencesGetOfflineWebApplicationCacheEnabled after r199854

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp:

(TestWebKitAPI::TEST):

9:13 AM Changeset in webkit [199879] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from InspectorFrontendHost
https://bugs.webkit.org/show_bug.cgi?id=156908

Reviewed by Timothy Hatcher.

No change of behavior.

  • inspector/InspectorFrontendHost.idl: Marking event parameter as nullable to keep compatibility.
8:59 AM Changeset in webkit [199878] by Chris Dumez
  • 16 edits in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from MutationObserver
https://bugs.webkit.org/show_bug.cgi?id=156890

Reviewed by Darin Adler.

Source/WebCore:

Drop [UsePointersEvenForNonNullableObjectArguments] from MutationObserver
and clean up / modernize the code a bit. There is not significant Web-
exposed behavior change except that MutationObserver.observe() now throws
a different kind of exception (a TypeError as per Web IDL) when passed in
a null Node.

No new tests, rebaselined existing test.

  • bindings/js/JSMutationCallback.cpp:

(WebCore::JSMutationCallback::call):

  • bindings/js/JSMutationCallback.h:
  • bindings/js/JSMutationObserverCustom.cpp:

(WebCore::constructJSMutationObserver):

  • css/PropertySetCSSStyleDeclaration.cpp:
  • dom/ChildListMutationScope.cpp:

(WebCore::ChildListMutationAccumulator::enqueueMutationRecord):

  • dom/MutationCallback.h:
  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::create):
(WebCore::MutationObserver::MutationObserver):
(WebCore::MutationObserver::observe):
(WebCore::MutationObserver::takeRecords):
(WebCore::MutationObserver::enqueueMutationRecord):
(WebCore::MutationObserver::deliver):
(WebCore::MutationObserver::disconnect): Deleted.

  • dom/MutationObserver.h:
  • dom/MutationObserver.idl:
  • dom/MutationObserverInterestGroup.cpp:

(WebCore::MutationObserverInterestGroup::enqueueMutationRecord):

  • dom/MutationObserverInterestGroup.h:
  • dom/MutationRecord.cpp:

(WebCore::MutationRecord::createChildList):

  • dom/MutationRecord.h:

LayoutTests:

Rebaseline now that MutationObserver.observe() throws a TypeError instead
of a NOT_FOUND_ERR when passed a null Node.

  • fast/dom/MutationObserver/observe-exceptions-expected.txt:
8:58 AM Changeset in webkit [199877] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (r189567): The top of Facebook's messenger.com looks visually broken
https://bugs.webkit.org/show_bug.cgi?id=156869
<rdar://problem/23204668>

Reviewed by Zalan Bujtas.

Source/WebCore:

Added fast/block/min-content-with-box-sizing.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeContentLogicalHeight):

LayoutTests:

  • fast/block/min-content-with-box-sizing-expected.html: Added.
  • fast/block/min-content-with-box-sizing.html: Added.
5:49 AM Changeset in webkit [199876] by Carlos Garcia Campos
  • 6 edits in trunk

[GTK] Enable the download attribute support
https://bugs.webkit.org/show_bug.cgi?id=99025

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsGTK.cmake:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

Unskip tests that should pass now.

  • platform/gtk/TestExpectations:
5:21 AM Changeset in webkit [199875] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

NetworkCacheIOChannelSoup: detach the newly-created IOChannel::readSync thread
https://bugs.webkit.org/show_bug.cgi?id=156907

Reviewed by Carlos Garcia Campos.

  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::IOChannel::readSyncInThread): Detach the new thread,
ensuring the resources are released after the thread exits. Next step is
to set up a thread pool and use that, avoiding thread re-creation.

5:08 AM WebKitGTK/Gardening/Calendar edited by Carlos Garcia Campos
(diff)
12:54 AM Changeset in webkit [199874] by Manuel Rego Casasnovas
  • 3 edits
    2 adds in trunk

[css-grid] Fix bug with positioned items in vertical writing mode
https://bugs.webkit.org/show_bug.cgi?id=156870

Reviewed by Darin Adler.

Source/WebCore:

In RenderGrid::offsetAndBreadthForPositionedChild() we were using
directly borderLeft(), which is wrong in vertical writing modes.

To fix it we just need to use borderLogicalLeft() which is aware of
the current writing mode.

Test: fast/css-grid-layout/grid-positioned-children-writing-modes.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):

LayoutTests:

Add new test to check positioned items in different writing modes
and direction combinations.

  • fast/css-grid-layout/grid-positioned-children-writing-modes-expected.html: Added.
  • fast/css-grid-layout/grid-positioned-children-writing-modes.html: Added.
12:09 AM Changeset in webkit [199873] by jh718.park@samsung.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[ANGLE] Remove deprecated auto_ptr warning. Unreviewed.
https://bugs.webkit.org/show_bug.cgi?id=156894

  • src/compiler/preprocessor/MacroExpander.h: Use std::unique_ptr instead of std::auto_ptr.

Apr 21, 2016:

11:58 PM Changeset in webkit [199872] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r199738): The ANGLE update broke accelerated compositing in GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=156789

Reviewed by Carlos Garcia Campos.

After the update, the ANGLE library has to be built with
ANGLE_ENABLE_ESSL and ANGLE_ENABLE_GLSL definitions in order
to compile in the support for the two translators that Linux-based
ports using OpenGL ES or OpenGL require. Missing files are also added.

  • CMakeLists.txt:
11:19 PM Changeset in webkit [199871] by Chris Dumez
  • 12 edits
    4 adds
    2 deletes in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from Document
https://bugs.webkit.org/show_bug.cgi?id=156881

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

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

Source/WebCore:

Drop [UsePointersEvenForNonNullableObjectArguments] from Document. There
is no major Web-exposed behavior change but the type of the exception
being thrown when passing null or not enough parameters has changed for
some of the API (It is now always a TypeError as per the Web IDL
specification).

Tests: fast/dom/Document/adoptNode-null.html

fast/dom/Document/importNode-null.html

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::takeAllChildrenFrom):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::parserAppendChild):

  • dom/Document.cpp:

(WebCore::Document::importNode):
(WebCore::Document::adoptNode):
(WebCore::Document::createNodeIterator):
(WebCore::Document::createTreeWalker):
(WebCore::Document::setBodyOrFrameset):
(WebCore::Document::hasValidNamespaceForElements): Deleted.
(WebCore::Document::scheduleForcedStyleRecalc): Deleted.
(WebCore::Document::scheduleStyleRecalc): Deleted.
(WebCore::Document::unscheduleStyleRecalc): Deleted.
(WebCore::Document::hasPendingStyleRecalc): Deleted.
(WebCore::Document::hasPendingForcedStyleRecalc): Deleted.
(WebCore::Document::recalcStyle): Deleted.
(WebCore::Document::explicitClose): Deleted.

  • dom/Document.h:

(WebCore::Document::importNode):

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

(WebCore::NodeIterator::NodeIterator):

  • dom/NodeIterator.h:

(WebCore::NodeIterator::create):

LayoutTests:

Add test cases for cases where the type of the exception being thrown
has changed.

  • fast/dom/Document/adoptNode-null-expected.txt: Added.
  • fast/dom/Document/adoptNode-null.html: Added.
  • fast/dom/Document/importNode-null-expected.txt: Added.
  • fast/dom/Document/importNode-null.html: Added.
  • fast/dom/importNode-null-expected.txt: Removed.
  • fast/dom/importNode-null.html: Removed.
11:07 PM Changeset in webkit [199870] by Darin Adler
  • 2 edits in trunk/Source/JavaScriptCore

Follow-on to the build fix.

  • runtime/MathCommon.h: Use the C++ std namespace version of the

frexp function too.

10:56 PM Changeset in webkit [199869] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

More improvements and explanations regarding resetting CSS properties on the <math> element
https://bugs.webkit.org/show_bug.cgi?id=156840

Patch by Frederic Wang <fwang@igalia.com> on 2016-04-21
Reviewed by Darin Adler.

We some follow-up improvements regarding CSS rules on the <math> element, after bug 133603:

  • We fix indenting to use 4 spaces.
  • We explain why we set -webkit-line-box-contain and add references to related bugs.
  • We explain why we reset some CSS spacing rules.
  • We explain why the direction is set to ltr.
  • We explain why font-family is set to a list of known math fonts and add reference to the wiki.
  • We mention the need to customize math fonts to get consistent style and add references to a bug report and to the wiki.
  • We described each of the math font listed and add some justification about their orders.
  • We better explain the section about fonts that do not satisfy the requirements for good mathematical rendering, reformulate why we still need them for iOS/Mac and we add some references to a bug report and to the wiki. Some fonts that not pre-installed were removed in r199773.
  • We add a FIXME comments for potential changes of CSS properties on the <math> tag.

We make the following changes to the lists of font-family:

  • We move "TeX Gyre Termes Math" into the Times group.
  • We move "Asana Math" into the Palatino group.
  • We remove iOS conditionals on "Symbol" and "Times New Roman".

No new tests, only order of math fonts that are not used by test framework is changed.

  • css/mathml.css:

(math): We merge the two math selectors, reorder some font-families, remove iOS ifdef and
add more description.

10:56 PM Changeset in webkit [199868] by jh718.park@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix build break since r199866. Unreviewed.
https://bugs.webkit.org/show_bug.cgi?id=156892

  • runtime/MathCommon.h: Add namespace std to isnormal invoking.
10:08 PM Changeset in webkit [199867] by commit-queue@webkit.org
  • 12 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Add primitive String support to compare operators
https://bugs.webkit.org/show_bug.cgi?id=156783

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-21
Reviewed by Geoffrey Garen.

Just the basics.
We should eventually inline some of the simplest cases.

This is a 2% improvement on Longspider. It is unfortunately neutral
for Sunspider on my machine because most of the comparison are from
baseline.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compare):
(JSC::DFG::SpeculativeJIT::compileStringCompare):
(JSC::DFG::SpeculativeJIT::compileStringIdentCompare):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareLess):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareLessEq):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareGreater):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareGreaterEq):
(JSC::FTL::DFG::LowerDFGToB3::compare):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::callWithoutSideEffects):

  • jit/JITOperations.h:
  • tests/stress/string-compare.js: Added.

(makeRope):
(makeString):
(let.operator.of.operators.eval.compareStringIdent):
(let.operator.of.operators.compareStringString):
(let.operator.of.operators.compareStringIdentString):
(let.operator.of.operators.compareStringStringIdent):
(let.operator.of.operators.let.left.of.typeCases.let.right.of.typeCases.eval):

9:46 PM Changeset in webkit [199866] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Commute FDiv-by-constant into FMul-by-reciprocal when it is safe
https://bugs.webkit.org/show_bug.cgi?id=156871

Patch by Benjamin Poulain <bpoulain@webkit.org> on 2016-04-21
Reviewed by Filip Pizlo.

FMul is significantly faster than FDiv.
For example, on Haswell, FMul has a latency of 5, a throughput of 1
while FDiv has latency 10-24, throughput 8-18.

Fortunately for us, Sunspider and Kraken have plenty of division
by a simple power of 2 constant. Those are just exponent operations
and can be easily reversed to use FMul instead of FDiv.

LLVM does something similar in InstCombine.

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::loadOperand):
(JSC::JITDivGenerator::generateFastPath):

  • jit/SnippetOperand.h:

(JSC::SnippetOperand::asConstNumber):

  • runtime/MathCommon.h:

(JSC::safeReciprocalForDivByConst):

  • tests/stress/floating-point-div-to-mul.js: Added.

(opaqueDivBy2):
(opaqueDivBy3):
(opaqueDivBy4):
(opaqueDivBySafeMaxMinusOne):
(opaqueDivBySafeMax):
(opaqueDivBySafeMaxPlusOne):
(opaqueDivBySafeMin):
(opaqueDivBySafeMinMinusOne):
(i.catch):
(i.result.opaqueDivBySafeMin.valueOf):

9:29 PM Changeset in webkit [199865] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Improve the absThunkGenerator() for 64bit
https://bugs.webkit.org/show_bug.cgi?id=156888

Reviewed by Michael Saboff.

A few tests spend a lot of time in this abs() with double argument.

This patch adds custom handling for the JSValue64 representation.
In particular:
-Do not load the value twice. Unbox the GPR if it is not an Int32.
-Deal with IntMin inline instead of falling back to the C function call.
-Box the values ourself to avoid a duplicate function tail and return.

  • jit/ThunkGenerators.cpp:

(JSC::absThunkGenerator):

9:26 PM Changeset in webkit [199864] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

LLInt CallSiteIndex off by 1
https://bugs.webkit.org/show_bug.cgi?id=156886

Reviewed by Benjamin Poulain.

I think was done for historical reasons but isn't needed anymore.

  • llint/LLIntSlowPaths.cpp:
7:28 PM Changeset in webkit [199863] by keith_miller@apple.com
  • 9 edits
    1 add in trunk/Source/JavaScriptCore

FTL should handle exceptions in operationInOptimize
https://bugs.webkit.org/show_bug.cgi?id=156885

Reviewed by Michael Saboff.

For some reasone we didn't handle any exceptions in "in" when we called
operationInOptimize in the FTL.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpAssumingJITType):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileIn):

  • ftl/FTLPatchpointExceptionHandle.h: Add comments explaining which

function to use for different exception types.

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionNoFTL):

  • runtime/Executable.cpp:

(JSC::ScriptExecutable::ScriptExecutable):

  • runtime/Executable.h:

(JSC::ScriptExecutable::setNeverFTLOptimize):
(JSC::ScriptExecutable::neverFTLOptimize):

  • tests/stress/in-ftl-exception-check.js: Added.

(foo):
(bar):
(catch):

6:48 PM Changeset in webkit [199862] by dino@apple.com
  • 9 edits
    6 adds in trunk

Backdrop Filter should not be visible if element has visibility:hidden
https://bugs.webkit.org/show_bug.cgi?id=149318
<rdar://problem/22749780>

Reviewed by Simon Fraser.

Source/WebCore:

Make sure that backdrop filter layers take note of when
the contents are visible or not.

Tests: css3/filters/backdrop/backdrop-with-visibility-hidden-changing.html

css3/filters/backdrop/backdrop-with-visibility-hidden.html
css3/filters/backdrop/backdrop-with-visibility-hidden-2.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateContentsVisibility): Tell the backdrop layer about the
change if there is one.
(WebCore::GraphicsLayerCA::updateBackdropFilters): When we update filters, make
sure to check the contents visibility.
(WebCore::dumpInnerLayer): Output "hidden" if the layer is set as such.

  • platform/graphics/ca/PlatformCALayer.h: Add an isHidden method.
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::isHidden): Call into CALayer isHidden.

Source/WebKit2:

Add the isHidden method to PlatformCALayerRemote.

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::isHidden):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:

LayoutTests:

Three tests that check if a backdrop filter should be visible when
its owning element is visibility hidden.

  • css3/filters/backdrop/backdrop-with-visibility-hidden-changing-expected.txt: Added.
  • css3/filters/backdrop/backdrop-with-visibility-hidden-changing.html: Added.
  • css3/filters/backdrop/backdrop-with-visibility-hidden-expected.txt: Added.
  • css3/filters/backdrop/backdrop-with-visibility-hidden.html: Added.
  • css3/filters/backdrop/backdrop-with-visibility-hidden-2.html: Added.
  • css3/filters/backdrop/backdrop-with-visibility-hidden-2-expected.html: Added.
6:25 PM Changeset in webkit [199861] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSC virtual call thunk shouldn't do a structure->classInfo lookup
https://bugs.webkit.org/show_bug.cgi?id=156874

Reviewed by Keith Miller.

This lookup was unnecessary because we can just test the inlined type field.

But also, this meant that we were exempting JSBoundFunction from the virtual call optimization.
That's pretty bad.

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):

6:23 PM Changeset in webkit [199860] by bshafiei@apple.com
  • 5 edits in branches/safari-601.6.16-branch/Source

Versioning.

6:21 PM Changeset in webkit [199859] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.6.16.1

New tag.

6:18 PM Changeset in webkit [199858] by bshafiei@apple.com
  • 9 edits in branches/safari-601.6.16-branch

Merged r199762. rdar://problem/25786278

6:15 PM Changeset in webkit [199857] by bshafiei@apple.com
  • 5 edits in branches/safari-601.6.16-branch/Source

Versioning.

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

RenderVideo should always update the intrinsic size before layout.
https://bugs.webkit.org/show_bug.cgi?id=156878

Reviewed by Simon Fraser.

In order to layout video element properly we need to know the correct intrinsic size.
This patch also asserts if we end up updating the intrinsic size right after finishing video renderer layout.

This issues was discovered as part of webkit.org/b/156245. (hence covered by existing tests)

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::updateIntrinsicSize):
(WebCore::RenderVideo::layout):
(WebCore::RenderVideo::updatePlayer):

  • rendering/RenderVideo.h:
6:11 PM Changeset in webkit [199855] by bshafiei@apple.com
  • 1 copy in branches/safari-601.6.16-branch

New Branch.

6:05 PM Changeset in webkit [199854] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

WKWebView HTML5 AppCache not working
https://bugs.webkit.org/show_bug.cgi?id=156887
rdar://problem/17944162

Reviewed by Tim Horton.

  • Shared/WebPreferencesDefinitions.h:

Set the offlineWebApplicationCacheEnabled property to true by default.

  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultDataStoreConfiguration):
Set the default applicationCacheFlatFileSubdirectoryName to "Files".

6:03 PM Changeset in webkit [199853] by beidson@apple.com
  • 12 edits in trunk

Modern IDB (Workers): Get the IDBConnectionProxy from the Document to the WorkerGlobalScope.
https://bugs.webkit.org/show_bug.cgi?id=156877

Reviewed by Tim Horton.

Source/WebCore:

No new tests (Covered by changes to existing tests).

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope): This is the point on the main thread

where we can get the IDBConnectionProxy from the Document and pass it down through Worker
machinery so it can end up at the WorkerGlobalScope.

Everything else is this patch is just passing it along as needed.

And cleaning up header style for neglected headers.

  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):

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

(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):

  • workers/DedicatedWorkerThread.h:

(WebCore::DedicatedWorkerThread::create):
(WebCore::DedicatedWorkerThread::workerObjectProxy):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::idbConnectionProxy):

  • workers/WorkerGlobalScope.h:
  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::idbConnectionProxy):

  • workers/WorkerThread.h:

(WebCore::WorkerThread::threadID):
(WebCore::WorkerThread::runLoop):
(WebCore::WorkerThread::workerLoaderProxy):
(WebCore::WorkerThread::workerReportingProxy):
(WebCore::WorkerThread::getNotificationClient):
(WebCore::WorkerThread::setNotificationClient):
(WebCore::WorkerThread::workerGlobalScope):

LayoutTests:

  • storage/indexeddb/modern/workers-enable-expected.txt:
5:50 PM Changeset in webkit [199852] by commit-queue@webkit.org
  • 20 edits
    2 adds in trunk

Web Inspector: sourceMappingURL not loaded in generated script
https://bugs.webkit.org/show_bug.cgi?id=156022
<rdar://problem/25438595>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-21
Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):
Synthetic CallFrames for native code will not have script identifiers.

  • inspector/ScriptCallFrame.cpp:

(Inspector::ScriptCallFrame::ScriptCallFrame):
(Inspector::ScriptCallFrame::isEqual):
(Inspector::ScriptCallFrame::buildInspectorObject):

  • inspector/ScriptCallFrame.h:
  • inspector/protocol/Console.json:

Include the script identifier in ScriptCallFrame so we can correlate this
to the exactly script, even if there isn't a URL. The Script may have a
sourceURL, so the Web Inspector frontend may decide to show / link to it.

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::CreateScriptCallStackFunctor::operator()):
(Inspector::createScriptCallStackFromException):
Include SourceID when we have it.

  • interpreter/Interpreter.cpp:

(JSC::GetStackTraceFunctor::operator()):

  • interpreter/Interpreter.h:
  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::sourceID):

  • interpreter/StackVisitor.h:

Access the SourceID when we have it.

Source/WebInspectorUI:

  • UserInterface/Controllers/SourceMapManager.js:

(WebInspector.SourceMapManager.prototype.downloadSourceMap):
If the sourceMapURL is a dataURL at this point, we can just pass it on,
otherwise we would have returned and skipped it.

  • UserInterface/Models/CallFrame.js:

(WebInspector.CallFrame.fromPayload):
Add handling for "scriptId" if it is available in the Console.CallFrame.
Don't automatically mark CallFrames that didn't have a "url" as native,
instead try to get a SourceCode.

  • UserInterface/Models/Script.js:

(WebInspector.Script.prototype.get displayURL):
Used by SourceCodeLocation formatting, so behave more like Resources
when we have only have a sourceURL name. This produces output like:
"foo.js:#:#" instead of "foo.js (line #:#)"

(WebInspector.Script.prototype.get anonymous):
Easy accessor to see if this would be treated as anonymous or not.

  • UserInterface/Models/SourceMap.js:

(WebInspector.SourceMap.prototype.get sourceMappingBasePathURLComponents):
Gracefully handle no path.

  • UserInterface/Models/StackTrace.js:

(WebInspector.StackTrace.prototype.get firstNonNativeCallFrame):
(WebInspector.StackTrace.prototype.get firstNonNativeNonAnonymousCallFrame):

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
Now that "Eval Code" with a sourceURL is no longer native, we still don't
want to show it in the Web Inspector if it is anonymous. So include a stricter
version that skips native and anonymous call frames.

LayoutTests:

  • inspector/console/messageAdded-from-named-evaluations-expected.txt: Added.
  • inspector/console/messageAdded-from-named-evaluations.html: Added.
  • inspector/debugger/js-stacktrace-expected.txt:
  • inspector/model/stack-trace-expected.txt:
5:33 PM Changeset in webkit [199851] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix crashes when loading SVG images.

  • loader/EmptyClients.cpp:

(WebCore::fillWithEmptyClients):
Give the SVG page its own application cache storage.

5:27 PM Changeset in webkit [199850] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Fix the iOS build: WAKView may not respond to drawLayer:inContext:
https://bugs.webkit.org/show_bug.cgi?id=156879
<rdar://problem/25772661>

Reviewed by Beth Dakin.

  • WebView/WebHTMLView.mm:

WebHTMLView on iOS never uses drawLayer:inContext:, and WAKView
doesn't implement it, so this would have thrown an exception
if called, anyway. Fix the build with stricter CA protocols.

5:18 PM Changeset in webkit [199849] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Get rid of ApplicationCacheStorage::singleton
https://bugs.webkit.org/show_bug.cgi?id=156882

Reviewed by Tim Horton.

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::setCacheDirectory): Deleted.
(WebCore::ApplicationCacheStorage::singleton): Deleted.

  • loader/appcache/ApplicationCacheStorage.h:
  • page/Page.cpp:

(WebCore::Page::Page):

5:09 PM Changeset in webkit [199848] by sbarati@apple.com
  • 8 edits in trunk/Source

Lets do less locking of symbol tables in the BytecodeGenerator where we don't have race conditions
https://bugs.webkit.org/show_bug.cgi?id=156821

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

The BytecodeGenerator allocates all the SymbolTables that it uses.
This is before any concurrent compiler thread can use that SymbolTable.
This means we don't actually need to lock for any operations of the
SymbolTable. This patch makes this change by removing all locking.
To do this, I've introduced a new constructor for ConcurrentJITLocker
which implies no locking is necessary. You instantiate such a ConcurrentJITLocker like so:
ConcurrentJITLocker locker(ConcurrentJITLocker::NoLockingNecessary);

This patch also removes all uses of Strong<SymbolTable> from the bytecode
generator and instead wraps bytecode generation in a DeferGC.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::instantiateLexicalVariables):
(JSC::BytecodeGenerator::emitPrefillStackTDZVariables):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):
(JSC::BytecodeGenerator::initializeBlockScopedFunctions):
(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):
(JSC::BytecodeGenerator::popLexicalScopeInternal):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitPushWithScope):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::constructorKind):
(JSC::BytecodeGenerator::superBinding):
(JSC::BytecodeGenerator::generate):

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):

  • runtime/ConcurrentJITLock.h:

(JSC::ConcurrentJITLockerBase::ConcurrentJITLockerBase):
(JSC::ConcurrentJITLockerBase::~ConcurrentJITLockerBase):
(JSC::ConcurrentJITLocker::ConcurrentJITLocker):

Source/WTF:

This patch introduces a new constructor for Locker which implies no
locking is necessary. You instantiate such a locker like so:
Locker<Lock> locker(Locker<Lock>::NoLockingNecessary);

This is useful to for very specific places when it is not yet
required to engage in a specified locking protocol. As an example,
we use this in JSC when we allocate a particular object that
engages in a locking protocol with the concurrent compiler thread,
but before a concurrent compiler thread that could have access
to the object exists.

  • wtf/Locker.h:

(WTF::Locker::Locker):
(WTF::Locker::~Locker):

5:08 PM Changeset in webkit [199847] by Simon Fraser
  • 4 edits
    4 adds in trunk

ASSERTION FAILED: accumulation == TransformState::FlattenTransform in WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect
https://bugs.webkit.org/show_bug.cgi?id=155362

Reviewed by Zalan Bujtas.

Source/WebCore:

A particular configuration of composited RenderLayers with preserve-3d and clipping
caused assertions because an ancestor clipping layer had masksToBounds() set, but
a preserves3D() parent, triggering an assertion in GraphicsLayerCA::computeVisibleAndCoverageRect().
Make two changes to address this:

First, CSS clip: and clip-path: should force flattening and override preserve-3d in
the RenderStyle.

Second, don't accumulate transforms in GraphicsLayerCA through layers with masksToBounds().

Tests: compositing/clipping/preserve3d-flatten-assertion-nested.html

compositing/clipping/preserve3d-flatten-assertion.html

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyle):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::accumulatesTransform):

LayoutTests:

Test cases that should not assert in debug builds.

  • compositing/clipping/preserve3d-flatten-assertion-nested.html: Added.
  • compositing/clipping/preserve3d-flatten-assertion.html: Added.
4:56 PM Changeset in webkit [199846] by jer.noble@apple.com
  • 7 edits in trunk/Source/WebKit/mac

[WK1] Add WebPlaybackSession support to WebKit
https://bugs.webkit.org/show_bug.cgi?id=156854

Reviewed by Beth Dakin.

Add support for WebPlaybackSession and the ChromeClient methods setUpPlaybackControlsManager() and
clearPlaybackControlsManager() to WebKit.

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

(WebChromeClient::setUpPlaybackControlsManager):
(WebChromeClient::clearPlaybackControlsManager):

  • WebView/WebView.mm:

(-[WebView _hasActiveVideoForControlsInterface]):
(-[WebView _setUpPlaybackControlsManagerForMediaElement:]):
(-[WebView _clearPlaybackControlsManagerForMediaElement:]):

  • WebView/WebViewData.h:
  • WebView/WebViewData.mm:
  • WebView/WebViewInternal.h:
4:30 PM Changeset in webkit [199845] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Remove some unnecessary RefPtrs in the parser
https://bugs.webkit.org/show_bug.cgi?id=156865

Reviewed by Filip Pizlo.

The IdentifierArena or the SourceProviderCacheItem will own these UniquedStringImpls
while we are using them. There is no need for us to reference count them.

This might be a 0.5% speedup on octane code-load.

  • parser/Parser.cpp:

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

  • parser/Parser.h:

(JSC::Scope::setIsLexicalScope):
(JSC::Scope::isLexicalScope):
(JSC::Scope::closedVariableCandidates):
(JSC::Scope::declaredVariables):
(JSC::Scope::lexicalVariables):
(JSC::Scope::finalizeLexicalEnvironment):
(JSC::Scope::computeLexicallyCapturedVariablesAndPurgeCandidates):
(JSC::Scope::collectFreeVariables):
(JSC::Scope::getCapturedVars):
(JSC::Scope::setStrictMode):
(JSC::Scope::isValidStrictMode):
(JSC::Scope::shadowsArguments):
(JSC::Scope::copyCapturedVariablesToVector):

  • parser/SourceProviderCacheItem.h:

(JSC::SourceProviderCacheItem::usedVariables):
(JSC::SourceProviderCacheItem::~SourceProviderCacheItem):
(JSC::SourceProviderCacheItem::create):
(JSC::SourceProviderCacheItem::SourceProviderCacheItem):
(JSC::SourceProviderCacheItem::writtenVariables): Deleted.

4:28 PM Changeset in webkit [199844] by Chris Dumez
  • 9 edits in trunk/Source/WebCore

Element::idForStyleResolution() is a foot-gun
https://bugs.webkit.org/show_bug.cgi?id=156852

Reviewed by Darin Adler.

Element::idForStyleResolution() is a foot-gun. It requires the caller to check
Element::hasID() first or it may end up crashing when dereferencing elementData()
(e.g. see Bug 156806).

This patch updates Element::idForStyleResolution() to return nullAtom is the
Element does not have an ID. I did not see a performance impact on Speedometer,
Dromaeo DOM Core, Dromaeo CSS Selectors and our local performanceTests/.

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::collectMatchingRules):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):

  • css/SelectorFilter.cpp:

(WebCore::collectElementIdentifierHashes):

  • dom/Element.h:

(WebCore::Element::idForStyleResolution):

  • rendering/RenderBlockFlow.cpp:

(WebCore::needsAppleMailPaginationQuirk):

  • rendering/RenderTreeAsText.cpp:

(WebCore::writeRenderRegionList):

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement):

4:25 PM Changeset in webkit [199843] by beidson@apple.com
  • 9 edits in trunk/Source/WebCore

Modern IDB (Workers): Move IDBConnectionProxy into IDBRequest and IDBDatabase.
https://bugs.webkit.org/show_bug.cgi?id=156868

Reviewed by Tim Horton.

No new tests (No behavior change).

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::create):
(WebCore::IDBDatabase::IDBDatabase):
(WebCore::IDBDatabase::~IDBDatabase):
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::maybeCloseInServer):

  • Modules/indexeddb/IDBDatabase.h:

(WebCore::IDBDatabase::connectionProxy):
(WebCore::IDBDatabase::serverConnection):

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::createDeleteRequest):
(WebCore::IDBOpenDBRequest::createOpenRequest):
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::onSuccess):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::requestCompleted):
(WebCore::IDBOpenDBRequest::maybeCreateDeleteRequest): Deleted.
(WebCore::IDBOpenDBRequest::maybeCreateOpenRequest): Deleted.

  • Modules/indexeddb/IDBOpenDBRequest.h:
  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::connectionToServer): Deleted.

  • Modules/indexeddb/IDBRequest.h:

(WebCore::IDBRequest::connectionProxy):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):

4:06 PM Changeset in webkit [199842] by andersca@apple.com
  • 11 edits in trunk/Source/WebKit2

Get rid of the last uses of ApplicationCacheStorage::singleton() from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=156876

Reviewed by Tim Horton.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:

Add and encode and decode a applicationCacheFlatFileSubdirectoryName.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
Set m_applicationCacheFlatFileSubdirectoryName to "ApplicationCache".

(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
Set m_applicationCacheFlatFileSubdirectoryName to "Files".

(API::ProcessPoolConfiguration::copy):
Copy m_applicationCacheFlatFileSubdirectoryName.

  • UIProcess/API/APIProcessPoolConfiguration.h:

Add getter for applicationCacheFlatFileSubdirectoryName.

  • UIProcess/WebProcessPool.cpp:

(WebKit::legacyWebsiteDataStoreConfiguration):
Initialize applicationCacheFlatFileSubdirectoryName from the process pool configuration.

(WebKit::WebProcessPool::createNewWebProcess):
Initialize parameters.applicationCacheFlatFileSubdirectoryName. Remove a call to
ApplicationCacheStorage::singleton().setDefaultOriginQuota since it had no effect (it was called in the UI process).

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):
Initialize m_applicationCacheFlatFileSubdirectoryName.

(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
Pass m_applicationCacheFlatFileSubdirectoryName when creating the application cache storage.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Add new members.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
Set the application cache storage.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
Initialize the application cache storage.

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::applicationCacheStorage):
Add new getter.

4:03 PM Changeset in webkit [199841] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/win

Add a missing space, as noticed by Darin.

  • WebApplicationCache.cpp:

(applicationCachePath):

3:50 PM Changeset in webkit [199840] by jiewen_tan@apple.com
  • 4 edits in trunk

[iOS] DumpRenderTree crashed in com.apple.WebCore: WebCore::ResourceLoadNotifier::didFailToLoad
https://bugs.webkit.org/show_bug.cgi?id=156829
<rdar://problem/23348217>

Reviewed by Daniel Bates.

Source/WebCore:

Ensure that the frame associated with the ResourceLoadNotifier is kept alive when notifying the Web Inspector.

Covered by existing tests.

  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::didFailToLoad):
(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveData):
(WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
(WebCore::ResourceLoadNotifier::dispatchDidFailLoading):

LayoutTests:

Unmark imported/blink/http/tests/css/remove-placeholder-styles.html as flaky because of bug fix.

  • platform/ios-simulator-wk1/TestExpectations:
3:24 PM Changeset in webkit [199839] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Remove two uses of ApplicationCacheStorage::singleton() from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=156873

Reviewed by Beth Dakin.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::clearApplicationCache): Deleted.

  • WebProcess/WebProcess.h:
3:24 PM Changeset in webkit [199838] by commit-queue@webkit.org
  • 6 edits
    2 moves in trunk

Web Inspector: Debugger statement gets a space after it when pretty printed
https://bugs.webkit.org/show_bug.cgi?id=156867
<rdar://problem/25862308>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-21
Reviewed by Geoffrey Garen.

Source/WebInspectorUI:

  • Tools/Formatting/index.html:
  • UserInterface/Workers/Formatter/EsprimaFormatter.js:

(EsprimaFormatter.prototype._handleTokenAtNode):
Handle the unhandled DebuggerStatement node type.

LayoutTests:

  • inspector/formatting/formatting-javascript-expected.txt:
  • inspector/formatting/formatting-javascript.html:
  • inspector/formatting/resources/javascript-tests/other-statements-expected.js: Renamed from LayoutTests/inspector/formatting/resources/javascript-tests/throw-statement-expected.js.
  • inspector/formatting/resources/javascript-tests/other-statements.js: Renamed from LayoutTests/inspector/formatting/resources/javascript-tests/throw-statement.js.
3:11 PM Changeset in webkit [199837] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

PolymorphicAccess adds sizeof(CallerFrameAndPC) rather than subtracting it when calculating stack height
https://bugs.webkit.org/show_bug.cgi?id=156872

Reviewed by Geoffrey Garen.

The code that added sizeof(CallerFrameAndPC) emerged from a bad copy-paste in r189586. That was
the revision that created the PolymorphicAccess class. It moved code for generating a
getter/setter call from Repatch.cpp to PolymorphicAccess.cpp. You can see the code doing a
subtraction here:

http://trac.webkit.org/changeset/189586/trunk/Source/JavaScriptCore/jit/Repatch.cpp


This makes the world right again.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generateImpl):

2:16 PM Changeset in webkit [199836] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit/win

Stop using ApplicationCacheStorage::singleton() on Windows
https://bugs.webkit.org/show_bug.cgi?id=156861

Reviewed by Darin Adler.

  • WebApplicationCache.cpp:

(applicationCachePath):
(WebApplicationCache::storage):

  • WebApplicationCache.h:
  • WebCache.cpp:

(WebCache::empty):

  • WebView.cpp:

(WebView::initWithFrame):
(WebKitSetApplicationCachePathIfNecessary): Deleted.

2:08 PM Changeset in webkit [199835] by beidson@apple.com
  • 12 edits in trunk

Modern IDB (Workers): More IDBConnectionProxy refactoring.
https://bugs.webkit.org/show_bug.cgi?id=156855

Reviewed by Darin Adler.

Source/WebCore:

No new tests (Covered by changes to existing tests).

  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::indexedDB):

Hang on to the IDBConnectionProxy passed in at creation time, as it should never change:

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::create):
(WebCore::IDBFactory::IDBFactory):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):

  • Modules/indexeddb/IDBFactory.h:

Hang on to the IDBConnectionProxy passed in at creation time, as it should never change:

  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:

(WebCore::WorkerGlobalScopeIndexedDatabase::WorkerGlobalScopeIndexedDatabase):
(WebCore::WorkerGlobalScopeIndexedDatabase::from):
(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):

  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:

Make IDBConnectionProxy ThreadSafeRefCounted:

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::create):

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • dom/Document.cpp:

(WebCore::Document::idbConnectionProxy):

  • dom/Document.h:

LayoutTests:

  • storage/indexeddb/modern/workers-enable-expected.txt: Revert some of the PASS expectations to FAIL, just for now.
2:00 PM Changeset in webkit [199834] by keith_miller@apple.com
  • 4 edits
    2 adds in trunk

WebScriptObject description swizzler should work in a multi-threaded world
https://bugs.webkit.org/show_bug.cgi?id=156808

Source/WebCore:

Reviewed by Geoffrey Garen.

A WebKit legacy API user might be running Objective-C code on another thread.
Since we don't want to corrupt other thread's NSObject description method
we use TLS to record if we are in the stringValue function. As an attempt to
preserve any user swizzling we update the non-stringValue NSObject description
method on each call to stringValue if it has changed. Additionally, the TLS
needs to be a int because the user might call into stringValue, back into JS,
then back into stringValue. If the TLS was a boolean then it would be unset
at that point so when we return into the first stringValue call we would call
the original NSObject description method rather than our override.

Test added to API tests: WebKit1.WebScriptObjectDescription

  • bridge/objc/objc_instance.mm:

(-[NSObject _web_description]):
(ObjcInstance::stringValue):
(swizzleNSObjectDescription): Deleted.

Tools:

Add a test for our NSObject swizzling TLS implementation. The test runs on
two threads. One in JS and another in Objective-C. We expect the JS thread
to use our NSObject description override and the Objective-C thread to act
as though it was using the original NSObject description method.

Reviewed by Geoffrey Garen.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/WebScriptObjectDescription.html: Added.
  • TestWebKitAPI/Tests/mac/WebScriptObjectDescription.mm: Added.

(nsObjectDescriptionTest):
(-[WebScriptDescriptionTest webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):

1:23 PM Changeset in webkit [199833] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Build warning: CODE_SIGN_ENTITLEMENTS specified without specifying CODE_SIGN_IDENTITY
https://bugs.webkit.org/show_bug.cgi?id=156862

Reviewed by Joseph Pecoraro.

  • Configurations/Base.xcconfig: Specify the ad hoc signing identity by

default. See <http://trac.webkit.org/changeset/143544>.

1:21 PM Changeset in webkit [199832] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Build fix.

  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(WebCore::WebPlaybackSessionInterfaceMac::setAudioMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::setLegibleMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::invalidate):

1:18 PM Changeset in webkit [199831] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

32 bit build fix.

  • platform/mac/WebPlaybackSessionInterfaceMac.mm:
1:07 PM Changeset in webkit [199830] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Fixed compilation with !ENABLE(SVG_FONTS).
https://bugs.webkit.org/show_bug.cgi?id=156850

Patch by Konstantin Tokarev <Konstantin Tokarev> on 2016-04-21
Reviewed by Michael Catanzaro.

No new tests needed.

  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::CSSFontFaceSource):
Added missing ENABLE(SVG_FONTS) guards.

  • css/CSSFontFaceSource.h: Ditto.
  • platform/graphics/FontCascade.cpp: Ditto.
  • svg/SVGToOTFFontConversion.cpp:

(WebCore::FontCascade::drawGlyphBuffer): Deleted extraneous
!ENABLE(SVG_FONTS) guard.

1:05 PM Changeset in webkit [199829] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Stop using ApplicationCacheStorage::singleton() in WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=156859

Reviewed by Tim Horton.

  • WebCoreSupport/WebApplicationCache.mm:

(+[WebApplicationCache initializeWithBundleIdentifier:]):
Change this to just store the bundle identifier.

(applicationCacheBundleIdentifier):
Helper function that returns the bundle identifier for the app cache.

(applicationCachePath):
Return the application cache path.

(webApplicationCacheStorage):
Create a new ApplicationCacheStorage object.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Set pageConfiguration.applicationCacheStorage to webApplicationCacheStorage().

(WebKitInitializeApplicationCachePathIfNecessary): Deleted.

12:37 PM Changeset in webkit [199828] by Beth Dakin
  • 8 edits in trunk/Source

showCandidates() should take a range and the string should be the whole
paragraph
https://bugs.webkit.org/show_bug.cgi?id=156813
-and corresponding-
rdar://problem/25760533

Reviewed by Tim Horton.

Source/WebKit/mac:

Cache the range and the paragraph since we compute them in
requestCandidatesForSelection, and then we can use them again in
handleRequestedCandidates.

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::requestCandidatesForSelection):
(WebEditorClient::handleRequestedCandidates):

  • WebView/WebView.mm:

(-[WebView updateWebViewAdditions]):
(-[WebView showCandidates:forString:inRect:forSelectedRange:view:completionHandler:]):
(-[WebView showCandidates:forString:inRect:view:completionHandler:]): Deleted.

  • WebView/WebViewInternal.h:

Source/WebKit2:

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateWebViewImplAdditions):
(WebKit::WebViewImpl::showCandidates):
(WebKit::WebViewImpl::requestCandidatesForSelectionIfNeeded):
(WebKit::WebViewImpl::handleRequestedCandidates):

12:36 PM Changeset in webkit [199827] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Remove reliance on WebAVMediaSelectionOptionMac for the
WebPlaybackControlsManager
https://bugs.webkit.org/show_bug.cgi?id=156811
-and corresponding-
rdar://problem/25760523

Reviewed by Jer Noble.

  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(-[WebPlaybackControlsManager setSeekableTimeRanges:]):
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:withSelectedIndex:]):
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:withSelectedIndex:]):
(WebCore::WebPlaybackSessionInterfaceMac::~WebPlaybackSessionInterfaceMac):
(WebCore::WebPlaybackSessionInterfaceMac::setSeekableRanges):
(WebCore::WebPlaybackSessionInterfaceMac::setAudioMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::setLegibleMediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceMac::invalidate):
(-[WebAVMediaSelectionOptionMac localizedDisplayName]): Deleted.
(-[WebAVMediaSelectionOptionMac setLocalizedDisplayName:]): Deleted.
(-[WebPlaybackControlsManager isSeeking]): Deleted.
(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]): Deleted.
(-[WebPlaybackControlsManager audioMediaSelectionOptions]): Deleted.
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:]): Deleted.
(-[WebPlaybackControlsManager currentAudioMediaSelectionOption]): Deleted.
(-[WebPlaybackControlsManager setCurrentAudioMediaSelectionOption:]): Deleted.
(-[WebPlaybackControlsManager legibleMediaSelectionOptions]): Deleted.
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:]): Deleted.
(-[WebPlaybackControlsManager currentLegibleMediaSelectionOption]): Deleted.
(-[WebPlaybackControlsManager setCurrentLegibleMediaSelectionOption:]): Deleted.
(-[WebPlaybackControlsManager cancelThumbnailAndAudioAmplitudeSampleGeneration]): Deleted.
(WebCore::mediaSelectionOptions): Deleted.

12:03 PM Changeset in webkit [199826] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip <area ping> tests on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=156857

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
11:11 AM Changeset in webkit [199825] by youenn.fablet@crf.canon.fr
  • 8 edits in trunk/LayoutTests/imported/w3c

[Fetch API] Improve some fetch response streams tests
https://bugs.webkit.org/show_bug.cgi?id=156848

Reviewed by Darin Adler.

Most important changes are for response-stream-disturbed-2.html and response-stream-disturbed-5.html which were broken.
response-stream-disturbed-2.html was calling an undefined function and was expecting to get a resolved promise while it should be rejected.
response-stream-disturbed-5.html was expecting to have a null body if data is consumed.
After rereading the spec, this test is non conformant, as the body should not be null, but getting the reader should throw.

  • web-platform-tests/fetch/api/resources/utils.js: Adding delay helper function.
  • web-platform-tests/fetch/api/response/response-cancel-stream.html: Using delay function.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-1.html: Removing unused function.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-2-expected.txt: Rebasing
  • web-platform-tests/fetch/api/response/response-stream-disturbed-2.html: Fixing test.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-5-expected.txt: Rebasing
  • web-platform-tests/fetch/api/response/response-stream-disturbed-5.html: Fixing test.
11:11 AM Changeset in webkit [199824] by eric.carlson@apple.com
  • 2 edits in trunk/LayoutTests

LayoutTest http/tests/media/hls/video-controls-live-stream.html is sometimes flaky
https://bugs.webkit.org/show_bug.cgi?id=156851
<rdar://problem/25792102>

Reviewed by Daniel Bates.

  • http/tests/media/hls/video-controls-live-stream.html: Only listen for events once because we don't care if they fire more often.
11:10 AM Changeset in webkit [199823] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS] Allow clients to hide the accessory view on a form input session
https://bugs.webkit.org/show_bug.cgi?id=155574

Patch by Chelsea Pugh <cpugh@apple.com> on 2016-04-21
Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/_WKFormInputSession.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKFormInputSession accessoryViewShouldNotShow]): Getter for accessoryViewShouldNotShow.
(-[WKFormInputSession setAccessoryViewShouldNotShow:]): Set accessoryViewShouldNotShow and reload input views.
(-[WKContentView requiresAccessoryView]): If the accessory view should be not be shown, do not require
the accessory view.

11:03 AM Changeset in webkit [199822] by dbates@webkit.org
  • 2 edits
    9 adds in trunk/LayoutTests

Add tests for <area ping>
https://bugs.webkit.org/show_bug.cgi?id=79438
<rdar://problem/22586699>

Reviewed by Alexey Proskuryakov.

  • http/tests/navigation/ping-attribute/anchor-cookie.html: Extracted out code into functions setCookie(),

clearLastPingResultAndRunTest() and clickElement() (defined in utilities.js) so that they can be
used by this test and others. Also added HTML5 doctype declaration since it is unnecessary to run
this test in quirks mode.

  • http/tests/navigation/ping-attribute/area-cookie-expected.txt: Added.
  • http/tests/navigation/ping-attribute/area-cookie.html: Added.
  • http/tests/navigation/ping-attribute/area-cross-origin-expected.txt: Added.
  • http/tests/navigation/ping-attribute/area-cross-origin-from-https-expected.txt: Added.
  • http/tests/navigation/ping-attribute/area-cross-origin-from-https.html: Added.
  • http/tests/navigation/ping-attribute/area-cross-origin.html: Added.
  • http/tests/navigation/ping-attribute/area-same-origin-expected.txt: Added.
  • http/tests/navigation/ping-attribute/area-same-origin.html: Added.
  • http/tests/navigation/ping-attribute/resources/utilities.js: Added.

(setCookie):
(clearLastPingResultAndRunTest.done):
(clearLastPingResultAndRunTest):
(clickElement):

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

REGRESSION(198782): ImageSource::subsamplingLevelForScale() does not cache the MaximumSubsamplingLevel for this ImageSource
https://bugs.webkit.org/show_bug.cgi?id=156766

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-04-21
Reviewed by Darin Adler.

Ensure the MaximumSubsamplingLevel for the ImageSource is calculated
only once and is cached for subsequent uses.

The image subsampling is on by default only for iOS. So the and this
patch currently affects the iOS port.

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::cacheMetadata): Cache m_maximumSubsamplingLevel.
Use m_frameCount as a flag for having_the_cache_done.
(WebCore::ImageSource::subsamplingLevelForScale): Call cacheMetadata()
before using m_maximumSubsamplingLevel.
(WebCore::ImageSource::frameCount): Call cacheMetadata() before returning
m_frameCount.

  • platform/graphics/ImageSource.h:
9:44 AM Changeset in webkit [199820] by aestes@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION (r199734): WebKit crashes loading numerous websites in iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=156842

Reviewed by Daniel Bates.

Disable separated heap on iOS Simulator.

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

9:38 AM Changeset in webkit [199819] by commit-queue@webkit.org
  • 12 edits
    8 adds in trunk

Creating a large number of WebGL contexts should recycle older contexts
https://bugs.webkit.org/show_bug.cgi?id=156689
<rdar://problem/19535330>

Patch by Antoine Quint <Antoine Quint> on 2016-04-21
Reviewed by Dean Jackson.

Source/WebCore:

We used to stop creating WebGL contexts once a maximum of 64 WebGL contexts had been
created on a page. Other browsers have a limit of 16 concurrent active WebGL contexts
and they lose older contexts when the developer creates a new context, logging a warning
to the console. We now follow the same approach.

Tests: webgl/max-active-contexts-console-warning.html

webgl/max-active-contexts-gc.html
webgl/max-active-contexts-oldest-context-lost.html
webgl/max-active-contexts-webglcontextlost-prevent-default.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::recycleContext):

Prints a warning message to the console indicating that an older WebGL context
will be lost to accomodate for the active contexts limit being reached and loses
the provided context in a way that it may not be recovered by calling event.preventDefault()
in the webglcontextlost event handler. Finally, we destroy the associated GraphicsContext3D
since it will no longer be useful and it may hold large Open GL resources.

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/GraphicsContext3D.h:

Changed GraphicsContext3D::create to return RefPtr instead of PassRefPtr.

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::create):

  • platform/graphics/efl/GraphicsContext3DEfl.cpp:

(WebCore::GraphicsContext3D::create):

  • platform/graphics/mac/GraphicsContext3DMac.mm:

(WebCore::activeContexts):
(WebCore::GraphicsContext3D::create):

Check if we are at the active contexts limit (16) and recycle the oldest context
in our active contexts list. Calling recycleContext() on a context will call the
GraphicsContext3D destructor and remove it from the active contexts list there.

(WebCore::GraphicsContext3D::~GraphicsContext3D):

Remove the deconstructed context from the active contexts list.

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::recycleContext):

  • platform/graphics/win/GraphicsContext3DWin.cpp:

(WebCore::GraphicsContext3D::create):

LayoutTests:

  • webgl/many-contexts-expected.txt:
  • webgl/many-contexts.html:

New output for this existing test since a lot of warnings are now logged to
indicate that we've reached the active contexts limit. We also removed the
check that the last context created was null since it no longer is due to this
source change (older contexts are lost instead).

  • webgl/max-active-contexts-console-warning-expected.txt: Added.
  • webgl/max-active-contexts-console-warning.html: Added.

This new test checks that we log a warning when we've created one context more
than the active contexts limit.

  • webgl/max-active-contexts-gc-expected.txt: Added.
  • webgl/max-active-contexts-gc.html: Added.

This new test checks that contexts that are garbage collected do not count
agaist the active contexts limit.

  • webgl/max-active-contexts-oldest-context-lost-expected.txt: Added.
  • webgl/max-active-contexts-oldest-context-lost.html: Added.

This new test checks that older contexts are lost when we reach the active
contexts limit and we create a new context.

  • webgl/max-active-contexts-webglcontextlost-prevent-default-expected.txt: Added.
  • webgl/max-active-contexts-webglcontextlost-prevent-default.html: Added.

This new test checks that calling event.preventDefault() in a webglcontextlost
event handler does not prevent a context from being lost when the active contexts
limit is reached.

9:25 AM Changeset in webkit [199818] by hyatt@apple.com
  • 5 edits
    2 adds in trunk

Don't hyphenate the last word in a paragraph of text.
https://bugs.webkit.org/show_bug.cgi?id=156803

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/hyphenate-avoid-orphaned-word.html

  • rendering/RenderText.h:
  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):

LayoutTests:

  • fast/text/hyphenate-avoid-orphaned-word.html: Added.
  • platform/mac/fast/text/hyphenate-avoid-orphaned-word-expected.txt: Added.
  • platform/mac/fast/text/hyphenate-limit-before-after-expected.txt:
9:07 AM Changeset in webkit [199817] by Chris Dumez
  • 42 edits in trunk/Source

Drop [UsePointersEvenForNonNullableObjectArguments] from Range
https://bugs.webkit.org/show_bug.cgi?id=156805

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, no web-exposed behavior change.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::rangeForNodeContents):
(WebCore::characterOffsetsInOrder):
(WebCore::setRangeStartOrEndWithCharacterOffset):
(WebCore::AXObjectCache::startOrEndCharacterOffsetForRange):
(WebCore::AXObjectCache::previousBoundary):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::selectText):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::documentBasedSelectedTextRange):

  • dom/Node.cpp:

(WebCore::Node::textRects):

  • dom/Range.cpp:

(WebCore::Range::Range):
(WebCore::Range::setDocument):
(WebCore::Range::setStart):
(WebCore::Range::setEnd):
(WebCore::Range::isPointInRange):
(WebCore::Range::comparePoint):
(WebCore::Range::compareNode):
(WebCore::Range::compareBoundaryPoints):
(WebCore::Range::compareBoundaryPointsForBindings):
(WebCore::Range::intersectsNode):
(WebCore::Range::processContents):
(WebCore::Range::insertNode):
(WebCore::Range::checkNodeWOffset):
(WebCore::Range::setStartAfter):
(WebCore::Range::setEndBefore):
(WebCore::Range::setEndAfter):
(WebCore::Range::selectNode):
(WebCore::Range::selectNodeContents):
(WebCore::Range::surroundContents):
(WebCore::Range::setStartBefore):
(WebCore::Range::contains):
(WebCore::rangesOverlap):
(WebCore::rangeOfContents):
(WebCore::boundaryNodeChildrenWillBeRemoved):
(WebCore::boundaryTextNodesMerged):
(WebCore::boundaryTextNodesSplit):
(WebCore::Range::expand):
(WebCore::checkForDifferentRootContainer): Deleted.
(WebCore::highestAncestorUnderCommonRoot): Deleted.
(WebCore::childOfCommonRootBeforeOffset): Deleted.
(WebCore::deleteCharacterData): Deleted.
(WebCore::Range::toString): Deleted.
(WebCore::Range::toHTML): Deleted.
(WebCore::Range::text): Deleted.
(WebCore::Range::cloneRange): Deleted.
(WebCore::Range::absoluteTextRects): Deleted.
(WebCore::Range::absoluteTextQuads): Deleted.
(WebCore::boundaryNodeChildrenChanged): Deleted.
(WebCore::boundaryNodeWillBeRemoved): Deleted.
(WebCore::Range::nodeWillBeRemoved): Deleted.
(WebCore::boundaryTextRemoved): Deleted.
(WebCore::Range::getBoundingClientRect): Deleted.
(WebCore::Range::getBorderAndTextQuads): Deleted.

  • dom/Range.h:
  • dom/Range.idl:
  • dom/RangeBoundaryPoint.h:

(WebCore::RangeBoundaryPoint::set):
(WebCore::RangeBoundaryPoint::setToStartOfNode):
(WebCore::RangeBoundaryPoint::setToEndOfNode):

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::applyAlternativeTextToRange):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):

  • editing/Editor.cpp:

(WebCore::Editor::advanceToNextMisspelling):
(WebCore::Editor::rangeOfString):
(WebCore::isFrameInRange):
(WebCore::Editor::countMatchesForText):

  • editing/EditorCommand.cpp:

(WebCore::unionDOMRanges):
(WebCore::executeDeleteToMark):
(WebCore::executeSelectToMark):

  • editing/FormatBlockCommand.cpp:

(WebCore::FormatBlockCommand::formatRange):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::respondToNodeModification):

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApplyForSingleParagraph):

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingParagraph::offsetTo):

  • editing/TextIterator.cpp:

(WebCore::CharacterIterator::range):
(WebCore::BackwardsCharacterIterator::range):
(WebCore::TextIterator::rangeFromLocationAndLength):
(WebCore::TextIterator::getLocationAndLengthFromRange):
(WebCore::findPlainText):

  • editing/VisiblePosition.cpp:

(WebCore::setStart):
(WebCore::setEnd):

  • editing/VisibleSelection.cpp:

(WebCore::makeSearchRange):

  • editing/VisibleUnits.cpp:

(WebCore::previousBoundary):
(WebCore::nextBoundary):

  • editing/htmlediting.cpp:

(WebCore::visiblePositionForIndexUsingCharacterIterator):
(WebCore::isNodeVisiblyContainedWithin):

  • editing/htmlediting.h:
  • editing/mac/EditorMac.mm:

(WebCore::Editor::adjustedSelectionRange):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::addRange):

  • page/DragController.cpp:

(WebCore::selectElement):

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchMouseEvent):

  • page/Page.cpp:

(WebCore::Page::findStringMatchingRanges):

  • page/TextIndicator.cpp:

(WebCore::hasNonInlineOrReplacedElements):

  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::getRanges):

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _smartDeleteRangeForProposedRange:]):

Source/WebKit2:

  • WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:

(-[WKDOMRange setStart:offset:]):
(-[WKDOMRange setEnd:offset:]):
(-[WKDOMRange selectNode:]):
(-[WKDOMRange selectNodeContents:]):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::contentsAsString):

8:42 AM Changeset in webkit [199816] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Drop [UsePointersEvenForNonNullableObjectArguments] from DOMURL
https://bugs.webkit.org/show_bug.cgi?id=156797

Reviewed by Youenn Fablet.

  • html/DOMURL.cpp:

(WebCore::DOMURL::create):

  • html/DOMURL.h:
  • html/DOMURL.idl:
8:12 AM Changeset in webkit [199815] by Claudio Saavedra
  • 3 edits
    2 moves
    1 add
    2 deletes in trunk/Source/WebCore

[GTK][EFL] Move non-glib/gtk platform implementations out of platform/gtk
https://bugs.webkit.org/show_bug.cgi?id=156847

Reviewed by Carlos Garcia Campos.

The Language and Logging implementation don't really need glib, so
rework them and move them to a new platform/unix directory so that
they can be shared among Unix ports.

  • PlatformEfl.cmake: Use the unix version.
  • PlatformGTK.cmake: Same.
  • platform/efl/LanguageEfl.cpp: Removed.
  • platform/efl/LoggingEfl.cpp: Removed.
  • platform/unix/LanguageUnix.cpp: Renamed from Source/WebCore/platform/gtk/LanguageGtk.cpp.

(WebCore::platformLanguage):
(WebCore::platformUserPreferredLanguages):

  • platform/unix/LoggingUnix.cpp: Renamed from Source/WebCore/platform/gtk/LoggingGtk.cpp.

(WebCore::logLevelString):

6:45 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
5:33 AM Changeset in webkit [199814] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations for some editing tests that are slow on Debug.

All these pass for me locally when run with --no-timeout.

  • platform/gtk/TestExpectations:
4:45 AM Changeset in webkit [199813] by Carlos Garcia Campos
  • 4 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Rebaseline tests after r180867.

  • platform/gtk/editing/execCommand/5142012-1-expected.txt:
  • platform/gtk/editing/inserting/insert-at-end-02-expected.txt:
  • platform/gtk/editing/pasteboard/4989774-expected.txt:
3:57 AM Changeset in webkit [199812] by msaboff@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Align RegExp[@@match] with other @@ methods
https://bugs.webkit.org/show_bug.cgi?id=156832

Reviewed by Mark Lam.

Various changes to align the RegExp[@@match] with [@@search] and [@@split].

Made RegExp.prototype.@exec a hidden property on the global object and
called it @regExpBuiltinExec to match the name it has in the standard.
Changed all places that used the old name to use the new one.

Made the match fast path function, which used to be call @match, to be called
@regExpMatchFast and put it on the global object. Changed it to also handle
expressions both with and without the global flag. Refactored the builtin
@match accordingly.

Added the builtin function @hasObservableSideEffectsForRegExpMatch() that
checks to see if we can use the fast path of if we need the explicit version.

Put the main RegExp functions @match, @search and @split in alphabetical
order in RegExpPrototype.js. Did the same for @match, @repeat, @search and
@split in StringPrototype.js.

  • builtins/RegExpPrototype.js:

(regExpExec):
(hasObservableSideEffectsForRegExpMatch): New.
(match):
(search):
(hasObservableSideEffectsForRegExpSplit):
Reordered in the file and updated to use @regExpBuiltinExec.

  • builtins/StringPrototype.js:

(match):
(repeatSlowPath):
(repeat):
(search):
(split):
Reordered functions in the file.

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::setGlobalThis):
(JSC::getById):
(JSC::getGetterById):
(JSC::JSGlobalObject::init):

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncMatchFast):
(JSC::regExpProtoFuncMatchPrivate): Deleted.

  • runtime/RegExpPrototype.h:
3:53 AM Changeset in webkit [199811] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK] WebKitWebView should claim the contents size as its natural size
https://bugs.webkit.org/show_bug.cgi?id=156835

Reviewed by Žan Doberšek.

Source/WebKit2:

And keep claiming 0 as its minimum size since it's scrollable.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::didChangeContentSize): Call webkitWebViewBaseSetContentsSize().

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseGetPreferredWidth): Return the contents width as natural width.
(webkitWebViewBaseGetPreferredHeight): Return the contents height as natural height.
(webkit_web_view_base_class_init): Add implementations of get_preferred_width/height.
(webkitWebViewBaseSetContentsSize): Save the contents size.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

Tools:

Add test case to check the WebKitWebView preferred size.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewPreferredSize):
(beforeAll):

3:50 AM Changeset in webkit [199810] by Carlos Garcia Campos
  • 9 edits in trunk/Source/WebKit2

[GTK] WebKitWebView should propagate wheel events not handled by the web process
https://bugs.webkit.org/show_bug.cgi?id=156834

Reviewed by Žan Doberšek.

We are currently swallowing all wheel events unconditionally, not allowing applications to handle wheel events
when not handled by us. Since the GTK+ event propagation system is synchronous, and our events are handled
asynchronously, we need to do something similar to what we do for key events, not propagate the event the first
time and if not handled by the web process, re-inject it in the event loop and then just propagate it.

  • Shared/NativeWebWheelEvent.h:

(WebKit::NativeWebWheelEvent::nativeEvent): Remove useless const.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore): Tell the web view to propagate the next wheel event,
and re-inject the event not handled by the web process in the event loop.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseScrollEvent): Propagate the event if shouldForwardNextWheelEvent is true.
(webkitWebViewBaseForwardNextWheelEvent): Set shouldForwardNextWheelEvent to true.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didReceiveEvent): Remove ifdef.

  • UIProcess/efl/WebView.h:
1:50 AM MathML/Fonts edited by fred.wang@free.fr
(diff)
1:41 AM Changeset in webkit [199809] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: stringForTextMarkerRange returning empty string for document range
https://bugs.webkit.org/show_bug.cgi?id=156819

Reviewed by Chris Fleizach.

Source/WebCore:

Set text marker data with CharacterOffset when VisiblePosition is having PositionIsAfterAnchor
or PositionIsAfterChildren anchor type, so that the character offset corresponds to the anchored
node.

Test: accessibility/mac/text-marker-string-for-document-range.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::textMarkerDataForVisiblePosition):

LayoutTests:

  • accessibility/mac/text-marker-string-for-document-range-expected.txt: Added.
  • accessibility/mac/text-marker-string-for-document-range.html: Added.
1:25 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:12 AM MathML/Fonts edited by fred.wang@free.fr
(diff)
12:40 AM WebKitGTK/Gardening/Calendar edited by Carlos Garcia Campos
(diff)

Apr 20, 2016:

10:04 PM Changeset in webkit [199808] by Simon Fraser
  • 2 edits in trunk/Tools

Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
https://bugs.webkit.org/show_bug.cgi?id=156827

Update the .plan file now that the files are present in SVN.

  • Scripts/webkitpy/benchmark_runner/data/plans/content-animation.plan:
10:02 PM Changeset in webkit [199807] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under WebCore::TextIterator::subrange()
https://bugs.webkit.org/show_bug.cgi?id=156809
<rdar://problem/21102730>

Reviewed by Ryosuke Niwa.

TextIterator::rangeFromLocationAndLength() may return null. However, we
failed to do a null check before calling TextIterator::subrange() with
that range.

No new tests, do not know how to reproduce.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::applyAlternativeTextToRange):

10:01 PM Changeset in webkit [199806] by Simon Fraser
  • 1 edit
    2 adds in trunk/PerformanceTests

Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
https://bugs.webkit.org/show_bug.cgi?id=156827

Add two files missing from the previous commit.

  • Animation/css-animation.html: Added.
  • Animation/raf-animation.html: Added.
9:56 PM Changeset in webkit [199805] by Simon Fraser
  • 9 edits
    2 adds in trunk

Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
https://bugs.webkit.org/show_bug.cgi?id=156827
PerformanceTests:

Reviewed by Stephanie Lewis.

Two new files for the content-animation suite.

After patching for use in the benchmark, these tests are a little different to other benchmarks.
The test content itself does not collect performance data; the tests spit out a boilerplate JSON
result with a placeholder for framerate, which is collected in native code.

When run as a benchmark, test completion involves a couple of bounces between the test and MobileSafari.
Test completion is initiated by a setTimeout() in the test, at which point location.hash is set to "#done".
MobileSafari detects that, and asynchronously dumps performance data. Once this is complete, MobileSafari
changes the URL has to "#submit", which triggers the XHR to the test relay that indicates the test is
complete.

  • Animation/css-animation.html: Added.
  • Animation/raf-animation.html: Added.

Tools:

rdar://problem/24358135

Reviewed by Stephanie Lewis.

Enhance benchmark_runner so that a benchmark can load a set of tests sequentially,
and collate results across them. Also add the ability for the browser_driver to supply
additional results, allowing for tests that collect results data in native code, rather
than generating it in the web page.

Add a set of "content animation" tests that use this new functionality, which test
CSS animation and requestAnimationFrame performance.

'plan' files have two new optional keys:

'test_files': a list of files to run as a suite
'options': optional parameters. Currently supports one new option,

'animation_command', which affects the way that iOS tests are run,
and is passed to MobileSafari as a parameter on launch.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.init): If options is not specified in the plan file, set it to an empty dictionary.
(BenchmarkRunner._get_result): Allow the browser_driver to modify the test results.
(BenchmarkRunner):
(BenchmarkRunner._run_one_test): Factored out of _run_benchmark, this contains logic for
running a single test. It starts and stops the http_server_driver.
(BenchmarkRunner._run_benchmark): Run a test in the traditional way if the plan has an 'entry_point'
key, otherwise look for the new 'test_files' and load each in a loop.
(BenchmarkRunner._dump):

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:

(BrowserDriver.launch_url): Pass options.
(BrowserDriver.add_additional_results): Allow a driver to supply additional results.
(BrowserDriver):

  • Scripts/webkitpy/benchmark_runner/browser_driver/gtk_minibrowser_driver.py:

(GTKMiniBrowserDriver.launch_url):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver.close_browsers):
(OSXBrowserDriver._terminate_processes): Fix spelling mistake.
(OSXBrowserDriver._terminiate_processes): Deleted.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:

(OSXChromeDriver.launch_url):
(OSXChromeCanaryDriver.launch_url):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:

(OSXFirefoxDriver.launch_url):
(OSXFirefoxNightlyDriver.launch_url):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.launch_url):

  • Scripts/webkitpy/benchmark_runner/data/patches/ContentAnimation.patch: Added.
  • Scripts/webkitpy/benchmark_runner/data/plans/content-animation.plan: Added.
9:42 PM Changeset in webkit [199804] by beidson@apple.com
  • 9 edits in trunk/Source/WebCore

Modern IDB (Workers): Remove IDBRequest/IDBOpenDBRequest's requirement to get an IDBServerConnection around.
https://bugs.webkit.org/show_bug.cgi?id=156826

Reviewed by Alex Christensen.

No new tests (No behavior change, existing tests pass).

This doesn't appear to do much but make things a little more complicated, but it's the first of a few
small pushes in the right direction.

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::maybeCreateDeleteRequest):
(WebCore::IDBOpenDBRequest::maybeCreateOpenRequest):
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::onSuccess):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::requestCompleted):
(WebCore::IDBOpenDBRequest::createDeleteRequest): Deleted.
(WebCore::IDBOpenDBRequest::createOpenRequest): Deleted.

  • Modules/indexeddb/IDBOpenDBRequest.h:
  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::connectionToServer):

  • Modules/indexeddb/IDBRequest.h:

(WebCore::IDBRequest::connection): Deleted.

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::IDBConnectionProxy):
(WebCore::IDBClient::IDBConnectionProxy::connectionToServer):
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):

  • Modules/indexeddb/client/IDBConnectionProxy.h:

(WebCore::IDBClient::IDBConnectionProxy::serverConnectionIdentifier):

  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::IDBResourceIdentifier::IDBResourceIdentifier):

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:
9:40 PM Changeset in webkit [199803] by ggaren@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

JavaScriptCore garbage collection is missing an autorelease pool
https://bugs.webkit.org/show_bug.cgi?id=156751
<rdar://problem/25787802>

Reviewed by Mark Lam.

  • heap/Heap.cpp:

(JSC::Heap::releaseDelayedReleasedObjects): Add an autorelease pool to
catch autoreleases when we call out to arbitrary ObjC code.

We use the C interface here because this is not an ObjC compilation unit.

9:25 PM Changeset in webkit [199802] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add Subresource Integrity as "Under consideration".
https://bugs.webkit.org/show_bug.cgi?id=156800

Patch by John Wilander <wilander@apple.com> on 2016-04-20
Reviewed by Alexey Proskuryakov.

No new tests needed.

  • features.json:

Added an entry for Subresource Integrity.

7:35 PM Changeset in webkit [199801] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

DFG del_by_id support forgets to set()
https://bugs.webkit.org/show_bug.cgi?id=156830

Reviewed by Saam Barati.

  • dfg/DFGByteCodeParser.cpp:

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

  • tests/stress/dfg-del-by-id.js: Added.
5:55 PM Changeset in webkit [199800] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Improve sampling profiler CLI JSC tool
https://bugs.webkit.org/show_bug.cgi?id=156824

Reviewed by Mark Lam.

This patch enhances the Sampling Profiler CLI tool from the JSC shell
to display the JITType of a particular CodeBlock. Because this happens
once we process a log of stack frames, the data for a particular frame
being in LLInt vs. Baseline could be wrong. For example, we may have taken
a stack trace of a CodeBlock while it was executing in the LLInt, then
it tiers up to the baseline, then we process the log. We will show such CodeBlocks
as being in the baseline JIT. We could be smarter about this in the future if
it turns out to truly be a problem.

This patch also adds a 'samplingProfilerTimingInterval' JSC option to allow
CLI users to control the sleep time between stack traces.

  • jsc.cpp:

(jscmain):

  • runtime/Options.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::SamplingProfiler):
(JSC::SamplingProfiler::processUnverifiedStackTraces):
(JSC::SamplingProfiler::reportTopBytecodes):

  • runtime/SamplingProfiler.h:

(JSC::SamplingProfiler::StackFrame::hasExpressionInfo):

5:35 PM Changeset in webkit [199799] by Ryan Haddad
  • 1 edit
    123 adds in trunk/LayoutTests

Adding ios-simulator-wk1 specific baselines for compositing and css3 LayoutTests due to contentsOpaque difference

Unreviewed test gardening.

  • Truncating changelog due to large number of added files
4:49 PM Changeset in webkit [199798] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Get rid of a couple of uses of ApplicationCacheStorage::singleton()
https://bugs.webkit.org/show_bug.cgi?id=156818

Reviewed by Geoffrey Garen.

  • loader/appcache/ApplicationCache.cpp:

(WebCore::ApplicationCache::addResource):

  • loader/appcache/ApplicationCacheGroup.h:

(WebCore::ApplicationCacheGroup::storage):

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setApplicationCacheOriginQuota):

4:43 PM Changeset in webkit [199797] by beidson@apple.com
  • 25 edits
    1 copy
    1 add in trunk

Modern IDB (Workers): Introduce "IDBConnectionProxy" for future threading abstraction, and adopt it in IDBFactory.
https://bugs.webkit.org/show_bug.cgi?id=156810

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Covered by changes to existing tests).

Add the IDBConnectionProxy object, including the ability to replicate IDBFactory functionality:

  • Modules/indexeddb/client/IDBConnectionProxy.cpp: Added.

(WebCore::IDBClient::IDBConnectionProxy::IDBConnectionProxy):
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):

  • Modules/indexeddb/client/IDBConnectionProxy.h:

Add pure virtual IDBConnectionProxy accessor:

  • dom/ScriptExecutionContext.h:

Implement it:

  • dom/Document.cpp:

(WebCore::Document::idbConnectionProxy):

  • dom/Document.h:

Implement it:

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::idbConnectionProxy):

  • workers/WorkerGlobalScope.h:
  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::indexedDB):

Don't keep a reference to IDBConnectionToServer, but rather get at the context's IDBConnectionProxy:

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::create):
(WebCore::IDBFactory::IDBFactory):
(WebCore::IDBFactory::open):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):

  • Modules/indexeddb/IDBFactory.h:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:

(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • inspector/InspectorIndexedDBAgent.cpp:
  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

  • storage/indexeddb/intversion-bad-parameters-expected.txt:
  • storage/indexeddb/intversion-bad-parameters-private-expected.txt:
  • storage/indexeddb/modern/opendatabase-request-event-expected.txt:
  • storage/indexeddb/modern/opendatabase-request-event-private-expected.txt:
  • storage/indexeddb/modern/opendatabase-request-expected.txt:
  • storage/indexeddb/modern/opendatabase-request-private-expected.txt:
  • storage/indexeddb/modern/workers-enable-expected.txt:
  • storage/indexeddb/version-change-event-basic-expected.txt:
  • storage/indexeddb/version-change-event-basic-private-expected.txt:
4:28 PM Changeset in webkit [199796] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] DFG should not generate two jumps when the target of DoubleBranch is the next block
https://bugs.webkit.org/show_bug.cgi?id=156815

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleDoubleBranch):

3:56 PM Changeset in webkit [199795] by commit-queue@webkit.org
  • 6 edits in trunk

[GTK] Expose AllowUniversalAccessFromFileURLs preference now that calling localStorage.getItem() results in SecurityError: DOM Exception 18
Source/WebKit2:

Patch by Dustin Falgout <dustin@falgout.us> on 2016-04-20
Reviewed by Michael Catanzaro.

As of r197858 JavaScript loaded in the context of a file scheme url cannot access local storage. That is a major
breaking change as many applications that serve files locally rely on having access to local storage. The point
of that security fix is to avoid cases of downloaded HTML content (such as e-mail attachments or JS injected
into local contexts) from having access to your local file system and arbitrary local storage. If you are serving
local files in your applications, you can use the WebKitAllowUniversalAccessFromFileURLs preference key to tell
Webkit that you are approve of these kinds of interactions.

https://bugs.webkit.org/show_bug.cgi?id=156651

  • UIProcess/API/gtk/WebKitSettings.cpp:

(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_allow_universal_access_from_file_urls):
(webkit_settings_set_allow_universal_access_from_file_urls):

  • UIProcess/API/gtk/WebKitSettings.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:

Tools:

https://bugs.webkit.org/show_bug.cgi?id=156651

Patch by Dustin Falgout <dustin@falgout.us> on 2016-04-20
Reviewed by Michael Catanzaro.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSettings.cpp:

(testWebKitSettings):

3:51 PM Changeset in webkit [199794] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking compositing/webgl/webgl-reflection.html as failing on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=156812

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
3:45 PM Changeset in webkit [199793] by commit-queue@webkit.org
  • 5 edits in trunk

Web Inspector: console.table(navigator) throws exception about rowPreview.propertyPreviews.length
https://bugs.webkit.org/show_bug.cgi?id=156698
<rdar://problem/25778244>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-04-20
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._formatParameterAsTable):
Handle a row with a value preview but no sub-property previews (a function).

LayoutTests:

  • inspector/console/console-table-expected.txt:
  • inspector/console/console-table.html:
3:24 PM Changeset in webkit [199792] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Add register reuse for ArithAdd of an Int32 and constant in DFG
https://bugs.webkit.org/show_bug.cgi?id=155164

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

Every "inc" in loop was looking like this:

move rX, rY
inc rY
jo 0x230f4a200580

This patch add register Reuse to that case to remove
the extra "move".

  • dfg/DFGOSRExit.h:

(JSC::DFG::SpeculationRecovery::SpeculationRecovery):
(JSC::DFG::SpeculationRecovery::immediate):

  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithAdd):

  • tests/stress/arith-add-with-constant-overflow.js: Added.

(opaqueAdd):

3:03 PM Changeset in webkit [199791] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Remove flaky expectation for imported/mozilla/svg/image/image-filter-01.svg on ios-simulator-wk2

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
2:58 PM Changeset in webkit [199790] by timothy@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Use debounce proxies in a couple more places

https://bugs.webkit.org/show_bug.cgi?id=156759

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype._dispatchCurrentRepresentedObjectsDidChangeEvent):
(WebInspector.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
(WebInspector.ContentBrowser.prototype._contentViewSupplementalRepresentedObjectsDidChange):
(WebInspector.ContentBrowser.prototype._dispatchCurrentRepresentedObjectsDidChangeEventSoon): Deleted.

  • UserInterface/Views/DOMTreeUpdater.js:

(WebInspector.DOMTreeUpdater.prototype._attributesUpdated):
(WebInspector.DOMTreeUpdater.prototype._characterDataModified):
(WebInspector.DOMTreeUpdater.prototype._nodeInserted):
(WebInspector.DOMTreeUpdater.prototype._nodeRemoved):
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodesSoon): Deleted.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
(WebInspector.NavigationSidebarPanel.prototype._treeElementDisclosureDidChange):
(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibilitySoon): Deleted.

2:58 PM Changeset in webkit [199789] by timothy@apple.com
  • 6 edits
    2 adds in trunk

Web Inspector: Make debounce use an ES6 Proxy

https://bugs.webkit.org/show_bug.cgi?id=156756
rdar://problem/25809771

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Base/Utilities.js:

(Object.prototype.soon): Added.
(Object.prototype.debounce): Added.
(Function.prototype.debounce): Deleted.
(Function.prototype.cancelDebounce): Added.

  • UserInterface/Views/BezierEditor.js:

(WebInspector.BezierEditor.createBezierInput): Use new debounce proxy.

  • UserInterface/Views/VisualStyleBackgroundPicker.js:

(WebInspector.VisualStyleBackgroundPicker): Ditto.

  • UserInterface/Views/VisualStyleURLInput.js:

(WebInspector.VisualStyleURLInput): Ditto.

LayoutTests:

  • inspector/unit-tests/debounce-expected.txt: Added.
  • inspector/unit-tests/debounce.html: Added.
2:54 PM Changeset in webkit [199788] by Ryan Haddad
  • 4 edits
    1 add in trunk/LayoutTests

Rebaseline tests for iOS simulator.

Unreviewed test gardening.

  • platform/ios-simulator-wk2/css2.1/t0905-c5525-flthw-00-c-g-expected.txt:
  • platform/ios-simulator-wk2/css2.1/t0905-c5526-flthw-00-c-g-expected.txt:
  • platform/ios-simulator/fast/canvas/set-colors-expected.txt: Added.
  • platform/ios-simulator/fast/text/emoji-expected.txt:
2:47 PM Changeset in webkit [199787] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

We don't need a manual stack for an RAII object when the machine's stack will do just fine
https://bugs.webkit.org/show_bug.cgi?id=156807

Reviewed by Mark Lam.

We kept around a vector for an RAII object to maintain
the recursive nature of having these RAII objects on
the stack as the parser recursed. Instead, the RAII object
can just have a field with the value it wants to restore
and use the machine's stack.

This is a 1% octane code-load progression.

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::BinaryExprContext::BinaryExprContext):
(JSC::SyntaxChecker::BinaryExprContext::~BinaryExprContext):
(JSC::SyntaxChecker::UnaryExprContext::UnaryExprContext):
(JSC::SyntaxChecker::UnaryExprContext::~UnaryExprContext):
(JSC::SyntaxChecker::operatorStackPop):

2:25 PM Changeset in webkit [199786] by yoav@yoav.ws
  • 2 edits in trunk/LayoutTests

Speculative unflake of dynamic_remove_preload_href layout test
https://bugs.webkit.org/show_bug.cgi?id=156773

Reviewed by Alexey Proskuryakov.

  • http/tests/preload/dynamic_remove_preload_href.html: Avoid using a blocking script based timeout.
2:07 PM Changeset in webkit [199785] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Use Optional<size_t> for OrderIterator::m_orderIndex instead of int
https://bugs.webkit.org/show_bug.cgi?id=156796

Reviewed by Anders Carlsson.

Use Optional<size_t> for OrderIterator::m_orderIndex instead of int
(with invalid value of -1). m_orderIndex a vector index and therefore
is in the range of an unsigned (type used internally by Vector, even
though the index is exposed as size_t). Therefore, assigning it to an
int is unsafe as it may overflow.

This may fix <rdar://problem/23410338> which is a top crasher.

  • rendering/OrderIterator.cpp:

(WebCore::OrderIterator::next):
(WebCore::OrderIterator::reset):

  • rendering/OrderIterator.h:
2:07 PM Changeset in webkit [199784] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under needsAppleMailPaginationQuirk()
https://bugs.webkit.org/show_bug.cgi?id=156806
<rdar://problem/23323479>

Reviewed by Simon Fraser.

Add check for element()->hasID() before calling element()->idForStyleResolution()
so that we don't dereference a potentially null element()->elementData().
Also stop repeatedly atomizing "messageContentContainer" and leverage
the operator==(const AtomicString&, const char*) instead for performance.

  • rendering/RenderBlockFlow.cpp:

(WebCore::needsAppleMailPaginationQuirk):

1:31 PM Changeset in webkit [199783] by msaboff@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

REGRESSION(r190289): Spin trying to view/sign in to hbogo.com
https://bugs.webkit.org/show_bug.cgi?id=156765

Reviewed by Saam Barati.

In the op_get_by_val case, we were holding the lock on a profiled CodeBlock
when we call into handleGetById(). Changed to drop the lock before calling
handleGetById().

The bug here was that the call to handleGetById() may end up calling in to
getPredictionWithoutOSRExit() for a tail call opcode. As part of that
processing, we walk back up the stack to find the effective caller and when
found, we lock the corresponding CodeBlock to get the predicition.
That CodeBLock may be the same one locked above. There is no need anyway
to hold the CodeBlock lock when calling handleGetById().

Added a new stress test.

  • dfg/DFGByteCodeParser.cpp:

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

  • tests/stress/regress-156765.js: Added.

(realValue):
(object.get hello):
(ok):

1:21 PM Changeset in webkit [199782] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Attempt to fix non-INDEXED_DATABASE_IN_WORKERS builds after r199779

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setIndexedDBWorkersEnabled):

  • testing/InternalSettings.h:
12:57 PM Changeset in webkit [199781] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Potential overflow in RenderLayer::hitTestList()
https://bugs.webkit.org/show_bug.cgi?id=156804

Reviewed by Simon Fraser.

Use size_t type instead of int to iterate over the Vector to make sure
we don't overflow. This is a speculative fix for <rdar://problem/23249479>.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hitTestList):

12:13 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:10 PM Changeset in webkit [199780] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unindent an unnecessary block in stringProtoFuncSplitFast().
https://bugs.webkit.org/show_bug.cgi?id=156802

Reviewed by Filip Pizlo.

In webkit.org/b/156013, I refactored stringProtoFuncSplit into
stringProtoFuncSplitFast. In that patch, I left an unnecessary block of code in
its original block (with FIXMEs) to keep the diff for that patch minimal. Now
that the patch for webkit.org/b/156013 has landed, I will unindent that block and
remove the FIXMEs.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncSplitFast):

11:59 AM Changeset in webkit [199779] by beidson@apple.com
  • 23 edits
    6 adds in trunk

Modern IDB (Workers): Enable INDEXED_DATABASE_IN_WORKERS compile time flag, but disabled in RuntimeEnabledFeatures.
https://bugs.webkit.org/show_bug.cgi?id=156782

Reviewed by Alex Christensen.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Test: storage/indexeddb/modern/workers-disabled.html

storage/indexeddb/modern/workers-enable.html

  • Configurations/FeatureDefines.xcconfig:

ScriptExecutionContext shouldn't really be supplementable:

  • dom/ScriptExecutionContext.h:

WorkerGlobalScope should be supplementable.
Also modernize this archaic header (pragma once, and re-indent):

  • workers/WorkerGlobalScope.h:

Update for WorkerGlobalScope now being directly supplementable:

  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:

(WebCore::WorkerGlobalScopeIndexedDatabase::WorkerGlobalScopeIndexedDatabase):
(WebCore::WorkerGlobalScopeIndexedDatabase::from):
(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):

  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl:
  • Modules/notifications/WorkerGlobalScopeNotifications.cpp:

(WebCore::WorkerGlobalScopeNotifications::WorkerGlobalScopeNotifications):
(WebCore::WorkerGlobalScopeNotifications::from):
(WebCore::WorkerGlobalScopeNotifications::webkitNotifications):

  • Modules/notifications/WorkerGlobalScopeNotifications.h:

Expose IndexedDBWorkers to RuntimeEnabledFeatures:

  • bindings/generic/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):

  • bindings/generic/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setIndexedDBWorkersEnabled):
(WebCore::RuntimeEnabledFeatures::indexedDBWorkersEnabled):

Expose IndexedDBWorkers to InternalSettings:

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setIndexedDBWorkersEnabled):

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

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Note: One test has some "FAIL" lines in the expected results, which is intentional.
As work on this progresses, those FAILs will become PASSes and the expectations will be updated.

  • storage/indexeddb/modern/resources/workers-disabled.js: Added.
  • storage/indexeddb/modern/resources/workers-enable.js: Added.
  • storage/indexeddb/modern/workers-disabled-expected.txt: Added.
  • storage/indexeddb/modern/workers-disabled.html: Added.
  • storage/indexeddb/modern/workers-enable-expected.txt: Added.
  • storage/indexeddb/modern/workers-enable.html: Added.
11:26 AM Changeset in webkit [199778] by Brent Fulgham
  • 3 edits
    2 adds in trunk

[WK2][Mac][iOS] WebContent crash when using special file:// URI scheme @ WebKit::resolveSymlinksInPath(WTF::CString const&) + 159
https://bugs.webkit.org/show_bug.cgi?id=156747
<rdar://problem/24648176>

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

FileSystemCF::fileSystemRepresentation return a null string when presented with a file URL that contains embedded nulls. When
this happens, SandboxExtension::createHandle attempts to pass a null string to 'resolveSymlinksInPath', which attemps to call
'strrchr' on the null pointer, causing a crash.

Test: fast/url/file-uri-with-embedded-null-no-crash.html

  • Shared/mac/SandboxExtensionMac.mm:

(WebKit::SandboxExtension::createHandle): If 'fileSystemRepresentation' is null, return early with an error.

LayoutTests:

  • fast/url/file-uri-with-embedded-null-no-crash-expected.txt: Added.
  • fast/url/file-uri-with-embedded-null-no-crash.html: Added.
11:01 AM Changeset in webkit [199777] by hyatt@apple.com
  • 4 edits
    2 adds in trunk

Hangable punctuation measurement using the wrong indices.
https://bugs.webkit.org/show_bug.cgi?id=155899

Reviewed by Simon Fraser.

Source/WebCore:

New tests in fast/text.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths):

  • rendering/RenderText.cpp:

(WebCore::RenderText::hangablePunctuationStartWidth):
(WebCore::RenderText::hangablePunctuationEndWidth):
(WebCore::RenderText::isHangableStopOrComma):

LayoutTests:

  • fast/text/hanging-punctuation-variable-font-size-expected.html: Added.
  • fast/text/hanging-punctuation-variable-font-size.html: Added.
10:40 AM Changeset in webkit [199776] by Chris Dumez
  • 11 edits in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from several Canvas interfaces
https://bugs.webkit.org/show_bug.cgi?id=156781

Reviewed by Darin Adler.

Source/WebCore:

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::fill):
(WebCore::CanvasRenderingContext2D::stroke):
(WebCore::CanvasRenderingContext2D::clip):
(WebCore::CanvasRenderingContext2D::isPointInPath):
(WebCore::CanvasRenderingContext2D::isPointInStroke):
(WebCore::size):
(WebCore::CanvasRenderingContext2D::drawImage):
(WebCore::CanvasRenderingContext2D::drawImageFromRect):
(WebCore::CanvasRenderingContext2D::drawFocusIfNeeded):

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/DOMPath.h:
  • html/canvas/DOMPath.idl:
  • html/canvas/WebGLDebugShaders.cpp:

(WebCore::WebGLDebugShaders::getTranslatedShaderSource):

  • html/canvas/WebGLDebugShaders.h:
  • html/canvas/WebGLDebugShaders.idl:

LayoutTests:

Update outdated test which expected a legacy TYPE_MISMATCH_ERR exception
to be thrown when passing null instead of the newer TypeError.

  • canvas/philip/tests/2d.drawImage.null.html:
10:27 AM Changeset in webkit [199775] by Chris Dumez
  • 16 edits
    2 adds in trunk

Drop [UsePointersEvenForNonNullableObjectArguments] from WebAudio
https://bugs.webkit.org/show_bug.cgi?id=156777

Reviewed by Darin Adler.

Source/WebCore:

Drop [UsePointersEvenForNonNullableObjectArguments] from WebAudio and
modernize the interface a bit.

There is no major Web-exposed behavioral change except for
the exception type thrown when passing null (now always TypeError).
Tests were updated to add coverage for this.

  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::decodeAsync):
(WebCore::AsyncAudioDecoder::DecodingTask::DecodingTask):
(WebCore::AsyncAudioDecoder::DecodingTask::decode): Deleted.

  • Modules/webaudio/AsyncAudioDecoder.h:

(WebCore::AsyncAudioDecoder::DecodingTask::audioData):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::lazyInitialize):
(WebCore::AudioContext::createBuffer):
(WebCore::AudioContext::decodeAudioData):
(WebCore::AudioContext::createBufferSource):
(WebCore::AudioContext::createMediaElementSource):
(WebCore::AudioContext::createMediaStreamSource):
(WebCore::AudioContext::createMediaStreamDestination):
(WebCore::AudioContext::createScriptProcessor):
(WebCore::AudioContext::createBiquadFilter):
(WebCore::AudioContext::createWaveShaper):
(WebCore::AudioContext::createPanner):
(WebCore::AudioContext::createConvolver):
(WebCore::AudioContext::createDynamicsCompressor):
(WebCore::AudioContext::createAnalyser):
(WebCore::AudioContext::createGain):
(WebCore::AudioContext::createDelay):
(WebCore::AudioContext::createChannelSplitter):
(WebCore::AudioContext::createChannelMerger):
(WebCore::AudioContext::createOscillator):
(WebCore::AudioContext::createPeriodicWave):
(WebCore::AudioContext::derefFinishedSourceNodes):
(WebCore::AudioContext::refNode):
(WebCore::AudioContext::derefNode):
(WebCore::AudioContext::notifyNodeFinishedProcessing): Deleted.
(WebCore::AudioContext::derefUnfinishedSourceNodes): Deleted.
(WebCore::AudioContext::lock): Deleted.

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::create):
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::process):

  • Modules/webaudio/MediaElementAudioSourceNode.h:

(WebCore::MediaElementAudioSourceNode::mediaElement):

  • Modules/webaudio/OscillatorNode.idl:

LayoutTests:

Added test coverage for the type of the exception being thrown when
pasing null to various WebAudio API.

  • webaudio/audiobuffer-expected.txt:
  • webaudio/audiobuffer.html:
  • webaudio/createMediaStreamSource-null-expected.txt: Added.
  • webaudio/createMediaStreamSource-null.html: Added.
  • webaudio/decode-audio-data-basic-expected.txt:
  • webaudio/decode-audio-data-basic.html:
  • webaudio/mediaelementaudiosourcenode-expected.txt:
  • webaudio/mediaelementaudiosourcenode.html:
9:14 AM Changeset in webkit [199774] by beidson@apple.com
  • 5 edits in trunk

Addressing additional review feedback for:
Modern IDB: Lots of IDB bindings cleanup (including making IDBVersionChangeEvent constructible).
https://bugs.webkit.org/show_bug.cgi?id=156760

Source/WebCore:

  • Modules/indexeddb/IDBVersionChangeEvent.h:

LayoutTests:

  • storage/indexeddb/modern/idbversionchangeevent-constructor-expected.txt:
  • storage/indexeddb/modern/idbversionchangeevent-constructor.html:
8:43 AM Changeset in webkit [199773] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Use OpenType MATH fonts by default
https://bugs.webkit.org/show_bug.cgi?id=133603

Patch by Frederic Wang <fwang@igalia.com> on 2016-04-20
Reviewed by Alejandro G. Castro.

No new tests. This is already tested by pixel tests like roots.xhtml.
However, new math fonts are not used during test execution.

  • css/mathml.css:

(math): We use only a list of known OpenType fonts with a MATH table but keep some pre-installed fallback fonts for OS X and iOS.

8:03 AM Changeset in webkit [199772] by Claudio Saavedra
  • 2 edits
    4 moves in trunk/Source/WebCore

[GTK] Move GTK+-independent platform code to platform/glib
https://bugs.webkit.org/show_bug.cgi?id=156787

Reviewed by Carlos Garcia Campos.

There is plenty of code in platform/gtk that is independent from the GTK+ library.
Move those files to platform/glib so that they can be reused by other GLib-based ports.

Also clean some style warnings in those files.

  • PlatformGTK.cmake: Move the files.
  • platform/glib/EventLoopGlib.cpp: Renamed from Source/WebCore/platform/gtk/EventLoopGtk.cpp.

(WebCore::EventLoop::cycle):

  • platform/glib/FileSystemGlib.cpp: Renamed from Source/WebCore/platform/gtk/FileSystemGtk.cpp.

(WebCore::filenameToString):
(WebCore::unescapedFilename):
(WebCore::fileSystemRepresentation):
(WebCore::filenameForDisplay):
(WebCore::fileExists):
(WebCore::deleteFile):
(WebCore::deleteEmptyDirectory):
(WebCore::getFileStat):
(WebCore::getFileSize):
(WebCore::getFileCreationTime):
(WebCore::getFileModificationTime):
(WebCore::getFileMetadata):
(WebCore::pathByAppendingComponent):
(WebCore::makeAllDirectories):
(WebCore::homeDirectoryPath):
(WebCore::pathGetFileName):
(WebCore::applicationDirectoryPath):
(WebCore::sharedResourcesPath):
(WebCore::getVolumeFreeSizeForPath):
(WebCore::directoryName):
(WebCore::listDirectory):
(WebCore::openTemporaryFile):
(WebCore::openFile):
(WebCore::closeFile):
(WebCore::seekFile):
(WebCore::writeToFile):
(WebCore::readFromFile):
(WebCore::unloadModule):
(WebCore::hardLinkOrCopyFile):

  • platform/glib/GamepadsGlib.cpp: Renamed from Source/WebCore/platform/gtk/GamepadsGtk.cpp.

(WebCore::GamepadDeviceGlib::GamepadDeviceGlib):
(WebCore::GamepadDeviceGlib::~GamepadDeviceGlib):
(WebCore::GamepadDeviceGlib::readCallback):
(WebCore::GamepadsGlib::GamepadsGlib):
(WebCore::GamepadsGlib::~GamepadsGlib):
(WebCore::GamepadsGlib::registerDevice):
(WebCore::GamepadsGlib::unregisterDevice):
(WebCore::GamepadsGlib::updateGamepadList):
(WebCore::GamepadsGlib::onUEventCallback):
(WebCore::GamepadsGlib::isGamepadDevice):
(WebCore::sampleGamepads):

  • platform/glib/SharedBufferGlib.cpp: Renamed from Source/WebCore/platform/gtk/SharedBufferGtk.cpp.

(WebCore::SharedBuffer::createFromReadingFile):

6:41 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
6:31 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
6:25 AM Changeset in webkit [199771] by fred.wang@free.fr
  • 5 edits in trunk

Refactor RenderMathMLSpace to avoid using flexbox
https://bugs.webkit.org/show_bug.cgi?id=155168

Patch by Frederic Wang <fwang@igalia.com> on 2016-04-20
Reviewed by Martin Robinson.

Source/WebCore:

No new tests, already covered by existing tests. The behavior of mspace-prefered-width-expected is not specified by the MathML recommendation, we update that test to match our new behavior.

  • rendering/mathml/RenderMathMLSpace.cpp: Implement layout functions without passing by flebox.

(WebCore::RenderMathMLSpace::computePreferredLogicalWidths): Implement this function.
(WebCore::RenderMathMLSpace::layoutBlock): Implement this function.
(WebCore::RenderMathMLSpace::computeIntrinsicLogicalWidths): Deleted.
(WebCore::RenderMathMLSpace::updateLogicalWidth): Deleted.
(WebCore::RenderMathMLSpace::updateLogicalHeight): Deleted.

  • rendering/mathml/RenderMathMLSpace.h: Update function declarations.

LayoutTests:

  • mathml/presentation/mspace-prefered-width-expected.html: Update the expectation so that the logical width and preferred width are both equal to the one specified by the width attribute.
6:05 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
2:06 AM Changeset in webkit [199770] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Mark HLS tests release expectations as release only.

  • platform/gtk/TestExpectations:
1:47 AM Changeset in webkit [199769] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Cairo] Crash in GraphicsContext::drawFocusRing when painting is disabled
https://bugs.webkit.org/show_bug.cgi?id=156785

Reviewed by Žan Doberšek.

This happens for example when view state changes to focus and paint is called from
FrameView::updateControlTints() with a graphics context that doesn't have a platform context. Layout test
fast/images/image-map-outline-with-scale-transform.html sometimes crashes because of this.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawFocusRing): Return early if painting is disabled.

1:44 AM Changeset in webkit [199768] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Remove unused m_writtenVariables from the parser and related bits
https://bugs.webkit.org/show_bug.cgi?id=156784

Reviewed by Yusuke Suzuki.

This isn't a octane/codeload speedup even though we're doing less work in
collectFreeVariables. But it's good to get rid of things that are not used.

  • parser/Nodes.h:

(JSC::ScopeNode::usesEval):
(JSC::ScopeNode::usesArguments):
(JSC::ScopeNode::usesArrowFunction):
(JSC::ScopeNode::isStrictMode):
(JSC::ScopeNode::setUsesArguments):
(JSC::ScopeNode::usesThis):
(JSC::ScopeNode::modifiesParameter): Deleted.
(JSC::ScopeNode::modifiesArguments): Deleted.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseAssignmentExpression):

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::hasDeclaredParameter):
(JSC::Scope::preventAllVariableDeclarations):
(JSC::Scope::collectFreeVariables):
(JSC::Scope::mergeInnerArrowFunctionFeatures):
(JSC::Scope::getSloppyModeHoistedFunctions):
(JSC::Scope::getCapturedVars):
(JSC::Scope::setStrictMode):
(JSC::Scope::strictMode):
(JSC::Scope::fillParametersForSourceProviderCache):
(JSC::Scope::restoreFromSourceProviderCache):
(JSC::Parser::hasDeclaredParameter):
(JSC::Parser::exportName):
(JSC::Scope::declareWrite): Deleted.
(JSC::Parser::declareWrite): Deleted.

  • parser/ParserModes.h:
1:33 AM Changeset in webkit [199767] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening. Follow up gardening for media test.

  • platform/efl/TestExpectations: Unskip 3 media tests.
Note: See TracTimeline for information about the timeline view.