Timeline



Jun 4, 2014:

11:35 PM Changeset in webkit [169607] by fred.wang@free.fr
  • 9 edits
    9 adds in trunk

MathML operators not stretched horizontally
https://bugs.webkit.org/show_bug.cgi?id=72828

Reviewed by Chris Fleizach.

Source/WebCore:
This patch adds basic horizontal stretching rules for operators inside
an <munder>, <mover> or <munderover> elements. The stretchy operators
in such an element stretch to cover the size of the non-stretchy
operators. This only works when fonts that have an OpenType MATH table
are used.

Tests: mathml/opentype/horizontal-LatinModern.html

mathml/opentype/opentype-stretchy-horizontal.html
mathml/opentype/horizontal-LatinModern-munderover.html

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::MathMLOperatorDictionary::ExtractKeyHorizontal): We add an ordered list of operators that have horizontal stretch direction.
(WebCore::RenderMathMLOperator::RenderMathMLOperator): init m_Vertical
(WebCore::RenderMathMLOperator::SetOperatorProperties): set m_Vertical by checking whether the operator is in the horizontalOperators list.
(WebCore::RenderMathMLOperator::stretchTo): We do not stretch vertically
if the operator has horizontal direction.
We also add a new version stretchTo(LayoutUnit width) for horizontal stretching only.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Handle horizontal stretching: the maximumGlyphWidth is the maximum of
the base size or of the stretch size.
(WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): Add an ASSERT to ensure that this function is only called for vertical stretching.
(WebCore::RenderMathMLOperator::findStretchyData): Add an ASSERT to ensure that this function is not called to get the maximum width of a horizontal stretchy operator.
We take into account m_isVertical when calling getMathVariants or computing sizes.
There is not any Unicode-only construction for horizontal stretching, so a MATH table is required for horizontal stretching.
(WebCore::RenderMathMLOperator::updateStyle): Ignore some code paths specific to vertical stretching and take into account the m_Vertical parameters.
For horizontal stretching, the m_stretch*Baseline parameters are now updated to match the metrics of the size variant or of the maximum of the parts in the glyph assembly.
(WebCore::RenderMathMLOperator::computeLogicalHeight): logicalHeight is now explicitely the sum of m_stretchHeightAboveBaseline and m_stretchDepthBelowBaseline, since it can be different from the stretchSize() in horizontal stretching.
(WebCore::RenderMathMLOperator::paintGlyph): handle trimming for horizontal stretching.
(WebCore::RenderMathMLOperator::fillWithVerticalExtensionGlyph): rename the function and ensure it is only call for m_isVertical.
(WebCore::RenderMathMLOperator::fillWithHorizontalExtensionGlyph): same as fillWithVerticalExtensionGlyph, but for horizontal stretching.
(WebCore::RenderMathMLOperator::paint): For glyph assembly, choose between paintVerticalGlyphAssembly or paintHorizontalGlyphAssembly.
(WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): rename the function and ensure it is only call for m_isVertical.
(WebCore::RenderMathMLOperator::paintHorizontalGlyphAssembly): same as paintVerticalGlyphAssembly but for horizontal stretching.

  • rendering/mathml/RenderMathMLOperator.h: we add a m_isVertical member to indicate the stretch direction and a m_stretchWidth to indicate the width of the stretchy character.

We define the horizontal counterparts of fillWith*ExtensionGlyph, paint*GlyphAssembly, GlyphPaintTrimming StretchyData.
Finally stretchSize() takes into account the stretch direction.

  • rendering/mathml/RenderMathMLUnderOver.cpp: We override the layout() function to stretch munderover children horizontally.

(WebCore::RenderMathMLUnderOver::layout):

  • rendering/mathml/RenderMathMLUnderOver.h: we declare layout().

LayoutTests:
Add some tests to verify horizontal stretching with the MATH data.

  • mathml/opentype/horizontal-LatinModern-munderover.html: Added.
  • mathml/opentype/horizontal-LatinModern.html: Added.
  • mathml/opentype/opentype-stretchy-horizontal.html: Added.
  • platform/efl/TestExpectations: mark tests as failing.
  • platform/gtk/mathml/opentype/horizontal-LatinModern-expected.png: Added.
  • platform/gtk/mathml/opentype/horizontal-LatinModern-expected.txt: Added.
  • platform/gtk/mathml/opentype/horizontal-LatinModern-munderover-expected.png: Added.
  • platform/gtk/mathml/opentype/horizontal-LatinModern-munderover-expected.txt: Added.
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png: Added.
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Added.
  • platform/mac/TestExpectations: mark tests as failing.
  • platform/win/TestExpectations: ditto.
9:52 PM Changeset in webkit [169606] by Bem Jones-Bey
  • 4 edits
    2 adds in trunk

[CSS Shapes] Image lifetime is not properly handled for gradient shapes
https://bugs.webkit.org/show_bug.cgi?id=133414

Reviewed by Simon Fraser.

Source/WebCore:
Refactor computedShape() and it's helpers to be able to properly
manage the lifetime of the image returned from StyleImage.

This is a port of a Blink patch by Hans Muller.

Test: fast/shapes/shape-outside-floats/shape-outside-uncached-gradient.html

  • rendering/shapes/ShapeOutsideInfo.cpp:

(WebCore::ShapeOutsideInfo::createShapeForImage): Properly handle the

lifetime of the image. Changed to use StyleImage::image() to get
the image in all cases there's no need to special case cached
images.

(WebCore::ShapeOutsideInfo::computedShape): Call createShapeForImage.
(WebCore::getShapeImageAndRect): Deleted.

  • rendering/shapes/ShapeOutsideInfo.h:

LayoutTests:

  • fast/shapes/shape-outside-floats/shape-outside-uncached-gradient-expected.txt: Added.
  • fast/shapes/shape-outside-floats/shape-outside-uncached-gradient.html: Added.
6:55 PM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
6:05 PM Changeset in webkit [169605] by timothy_horton@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

iOS Debug build fix

Rubber-stamped by Filip Pizlo.

  • Configurations/LLVMForJSC.xcconfig:

Dead-code strip the llvmForJSC library unconditionally, to work around <rdar://problem/16920916>.

5:45 PM Changeset in webkit [169604] by Bem Jones-Bey
  • 3 edits
    2 adds in trunk

[CSS Shapes] Fix off by one in creating a RasterShape
https://bugs.webkit.org/show_bug.cgi?id=133499

Reviewed by Darin Adler.

Source/WebCore:
Test: fast/shapes/shape-outside-floats/shape-outside-floats-shape-margin-crash.html

  • rendering/shapes/RasterShape.cpp:

(WebCore::RasterShapeIntervals::computeShapeMarginIntervals):

marginY1 is supposed to be an inclusive endpoint, however, maxY()
is an exclusive endpoint. This simply changes marginY1 into an
exclusive endpoint.

LayoutTests:

  • fast/shapes/shape-outside-floats/shape-outside-floats-shape-margin-crash-expected.txt: Added.
  • fast/shapes/shape-outside-floats/shape-outside-floats-shape-margin-crash.html: Added.
4:41 PM Changeset in webkit [169603] by benjamin@webkit.org
  • 9 edits in trunk/Source

[iOS][WK2] Restore the visual scroll position instead of the dom scroll position when restoring states from the history
https://bugs.webkit.org/show_bug.cgi?id=133490

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-06-04
Reviewed by Tim Horton.

Source/WebCore:
Expose the WebKit1 parameter "ScaleIsInitial". It is used for a similar concept in WebKit2 (userHasChangedPageScaleFactor).

Add "exposedContentPosition", which is the scroll position of the exposed rect.

  • history/HistoryItem.h:

(WebCore::HistoryItem::exposedContentPosition):
(WebCore::HistoryItem::setExposedContentPosition):
(WebCore::HistoryItem::setScaleIsInitial):

  • loader/HistoryController.cpp:

(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):

Source/WebKit2:
Instead of restoring the scroll position, restore the visual position. This makes pages appear at the same position
on screen ignoring changes in the obscured top inset.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:

(WebKit::WebFrameLoaderClient::saveViewStateToItem):
(WebKit::WebFrameLoaderClient::restoreViewState):
Save and restore userHasChangedPageScaleFactor to handle rescaling correctly.
Limit the scale into valid viewport limits in case the viewport meta tag has changed or the device has rotated.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::userHasChangedPageScaleFactor):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::restorePageState):
(WebKit::WebPage::updateVisibleContentRects):
In updateVisibleContentRects, we keep track or the current difference between the exposed rect and the unobscured rect.
When restoring the page position, we use the current top inset and the saved exposed rect to restore the visual
scroll position.

It is not very robust as it does not resolve races between the two processes, but that is not worse than what we is there now.

3:37 PM Changeset in webkit [169602] by matthew_hanson@apple.com
  • 5 edits in branches/safari-537.77-branch/Source

Fix versioning.

3:22 PM Changeset in webkit [169601] by achristensen@apple.com
  • 19 edits
    2 adds in trunk/Source

Enable WebGL on Windows.
https://bugs.webkit.org/show_bug.cgi?id=133503

Reviewed by Brent Fulgham.

Source/ThirdParty/ANGLE:

  • changes.diff

Recorded additional changes from ANGLE.

  • ANGLE.vcxproj/libEGL.vcxproj:
  • ANGLE.vcxproj/libEGL.vcxproj.filters:
  • ANGLE.vcxproj/libGLESv2.vcxproj:
  • ANGLE.vcxproj/libGLESv2.vcxproj.filters:
  • include/EGL/egl.h:
  • include/EGL/eglsoftlinking.h: Added.
  • include/GLES2/gl2.h:
  • include/GLES2/gl2softlinking.h: Added.

Resurrected soft linking headers from r153664.

  • src/libGLESv2/renderer/VertexBuffer.cpp:

(rx::VertexBufferInterface::directStoragePossible):
Compile fix for Win64.

Source/WebCore:
No new tests, but we should enable the webgl tests soon.

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::markContextChanged):
Check if the context and RenderBox are accelerated to use accelerated code path.

  • html/canvas/WebGLRenderingContext.h:

Disable accelerated compositing on WebGL canvases until that works.

  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):
Compile fix after r166563.

Source/WebKit:

  • WebKit.vcxproj/WebKit.sln:

Build ANGLE projects and add them as a dependency for linking WebKit.dll.

  • WebKit.vcxproj/WebKit/WebKitCommon.props:

Link to ANGLE libraries to get EGL, GLESv2, and GLSL translator symbols.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

Added 64-bit linker symbol.

Source/WTF:

  • wtf/FeatureDefines.h:

Enable WebGL for AppleWin and WinCairo ports.

3:19 PM Changeset in webkit [169600] by matthew_hanson@apple.com
  • 4 edits
    2 copies in tags/Safari-538.38

Merge r169599. <rdar://problem/17154371>

3:08 PM Changeset in webkit [169599] by benjamin@webkit.org
  • 4 edits
    2 adds in trunk

Regression(r169547): Crash in WebCore::styleForFirstLetter() while loading http://thenextweb.com/apple/2014/02/21/apple-confirms-acquired-testflight-creator-burstly/
https://bugs.webkit.org/show_bug.cgi?id=133500

Reviewed by Antti Koivisto.

Source/WebCore:
Unlike the other tree marking optimization, adding HasPseudoStyle() on an element style
during style resolution must be conservative and not set the flag unless every other filter
matched first.

After r169547, the SelectorChecker was setting flags on HasPseudoStyle() during the pseudo
element matching. If that passed but the remaining filter did not match, the element style
could have the flag "FIRST_LETTER" while not being able to resolve a style for "FIRST_LETTER".

When the layout code was creating the renderer, it would find the FIRST_LETTER flag on the main style
and try to get the specific style for FIRST_LETTER. Since no rule would resolve for FIRST_LETTER,
the style would be null and the code would be crashing when accessing its parameters.

This patch fixes the issue by moving the style marking for pseudo element at the end of the matching.

Test: fast/css/first-letter-on-non-matching-selectors.html

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::match):
(WebCore::SelectorChecker::matchRecursively):

  • css/SelectorChecker.h:

(WebCore::SelectorChecker::match): Deleted.

LayoutTests:

  • fast/css/first-letter-on-non-matching-selectors-expected.txt: Added.
  • fast/css/first-letter-on-non-matching-selectors.html: Added.
2:54 PM Changeset in webkit [169598] by oliver@apple.com
  • 4 edits
    3 adds in trunk

ArrayIterator should not be exposed in Safari 8
https://bugs.webkit.org/show_bug.cgi?id=133494

Reviewed by Michael Saboff.

Source/JavaScriptCore:
Separate out types that require constructor objects, and don't
include the iterator types in that list.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::reset):

  • runtime/JSGlobalObject.h:

LayoutTests:
Add tests.

  • js/no-iterator-constructors.html: Added.
  • js/script-tests/no-iterator-constructors.js: Added.
2:44 PM Changeset in webkit [169597] by fpizlo@apple.com
  • 2 edits in branches/ftlopt/Source/JavaScriptCore

[ftlopt] Unreviewed, fix 32-bit.

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

2:40 PM Changeset in webkit [169596] by eric.carlson@apple.com
  • 6 edits in trunk/Source/WebCore

[iOS] allow UA to specify network interface
https://bugs.webkit.org/show_bug.cgi?id=133396

Reviewed by Jer Noble.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerInterfaceName): Return settings->networkInterfaceName.

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::mediaPlayerNetworkInterfaceName): Pass through the media element.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerNetworkInterfaceName):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): If the media player

wants to use a specific netork interface name, pass it to the AVAsset allocator.

2:28 PM Changeset in webkit [169595] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFG::Safepoint::begin() should set m_didCallBegin before releasing the rightToRun lock, because otherwise, Safepoint::checkLivenessAndVisitChildren() may assert due to a race
https://bugs.webkit.org/show_bug.cgi?id=133525
<rdar://problem/16790296>

Reviewed by Oliver Hunt.

  • dfg/DFGSafepoint.cpp:

(JSC::DFG::Safepoint::begin):

1:46 PM Changeset in webkit [169594] by jhoneycutt@apple.com
  • 2 edits in trunk/Source/WebCore

Pasting multiple photos on iOS only pastes one photo

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

Reviewed by Alexey Proskuryakov.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::pasteWithPasteboard):
Create a WebContentReader. For each pasteboard item, get the document
fragment for that item, and add it to the reader. If we fail to get
the fragment from the delegate, fall back to using
webContentFromPasteboard() as before.

1:42 PM Changeset in webkit [169593] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Use references instead of pointers for non-optional arguments during text layout
https://bugs.webkit.org/show_bug.cgi?id=133501

Patch by Myles C. Maxfield <litherum@gmail.com> on 2014-06-04
Reviewed by Tim Horton.

This patch applies some cleanup to InlineBox layout functions to take
references instead of pointers where appropriate.

No new tests are necessary because there is no behavior change.

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::computeLogicalBoxHeights): Make the function take a
reference to the RootInlineBox instead of a pointer. This function does some
rounding.
(WebCore::InlineFlowBox::addTextBoxVisualOverflow): Make the function take a
reference to the InlineTextBox instead of a pointer.
(WebCore::InlineFlowBox::computeOverflow): Update call to addTextBoxVisualOverflow
to pass a reference instead of a pointer.

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::alignBoxesInBlockDirection): Update call to
computeLogicalBoxHeights to pass a reference instead of a pointer.
(WebCore::RootInlineBox::ascentAndDescentForBox): Make the function take a
reference to the InlineBox instead of a pointer.
(WebCore::RootInlineBox::includeLeadingForBox): Make the function take a reference
instead of a pointer.
(WebCore::RootInlineBox::includeFontForBox): Ditto.
(WebCore::RootInlineBox::includeGlyphsForBox): Ditto.
(WebCore::RootInlineBox::includeMarginForBox): Ditto.

  • rendering/RootInlineBox.h: Move functions that are not externally called into

a private: section. In addition, update function signatures to take references
instead of pointers.

1:25 PM Changeset in webkit [169592] by bshafiei@apple.com
  • 9 edits in branches/safari-538.34-branch/Source

Merged r168763.

1:22 PM Changeset in webkit [169591] by mmaxfield@apple.com
  • 6 edits
    5 adds in trunk

Lists styled with SVG fonts are not rendered as expected
https://bugs.webkit.org/show_bug.cgi?id=133198

Reviewed by Simon Fraser.

Source/WebCore:
There were a couple places in RenderListMarker and RenderMenuList that were
implicitly creating TextRuns by passing a String to a function which
expected a TextRun. Because TextRun has a constructor which takes a single
String and isn't marked explicit, TextRuns were being created without
any of the associated code that initializes the TextRun (such as creating
a RenderingContext if necessary).

There is currently one more client of this code that needs to be fixed.
This is in RenderThemeIOS::adjustMenuListButtonStyle(). However, fixing
this will be a somewhat large change, and is out of scope for this patch.
I will submit a follow-up patch that fixes this permanently. Once this is
fixed, I can mark TextRun's constructors as explicit.

Test: svg/custom/list-items-with-svg-font-family.html

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun): Mark constructors as explicit.

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::computePreferredLogicalWidths): Call
RenderBlock::constructTextRun.
(WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.

  • rendering/RenderMenuList.cpp:

(RenderMenuList::updateOptionsWidth): Ditto.

  • rendering/RenderThemeIOS.mm:

(WebCore::adjustInputElementButtonStyle): Instead of crashing, mark
form controls rendered with SVG fonts as having 0 width. This isn't
perfect, but fixing this is out of scope for this patch.

LayoutTests:
See per-file comments.

  • platform/ios-sim/fonts/input-style-with-svg-font-crash.html: Added. Make sure

that iOS input elements don't crash when styled with SVG fonts.

  • platform/ios-sim/fonts/resources/graffiti.svg: Added. SVG font for above test.
  • svg/custom/list-items-with-svg-font-family-expected.txt: Added.
  • svg/custom/list-items-with-svg-font-family.html: Added. Make sure there is

no crash when styling list elements with SVG fonts.

12:25 PM Changeset in webkit [169590] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

Add the new HiDPI tests to the bug that tracks support for this
feature on GTK.
Mark and report the new tests introduced on r169407 that timeout.
Mark and report the new accesibility test introduced on r169427
that fails.
Move the reported timeout tests to the timeout section of the
TestExpectations file.

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-06-04

  • platform/gtk/TestExpectations:
11:57 AM HackingWebInspector edited by timothy@apple.com
(diff)
11:18 AM Changeset in webkit [169589] by dfarler@apple.com
  • 4 edits in trunk/Tools

Build ASan WebKit for iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=133489

Reviewed by Darin Adler.

  • DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
  • DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig:
  • Add missing ASan LDFLAGS.
  • asan/asan.xcconfig:
  • Split compiler-rt linker flags for OS X and iOS Simulator
11:03 AM Changeset in webkit [169588] by fpizlo@apple.com
  • 57 edits
    23 adds in branches/ftlopt

[ftlopt] AI should be able track structure sets larger than 1
https://bugs.webkit.org/show_bug.cgi?id=128073

Reviewed by Oliver Hunt.

Source/JavaScriptCore:

This makes two major changes to how AI (abstract interpreter) proves that a value has
some structure:

  • StructureAbstractValue can now track an arbitrary number of structures. A set whose size is greater than one means that the value may have any of the structures, and we don't know which - but we do know that it cannot be any structure not in the set. The structure abstract value can still be TOP, which means the set of all structures. We artificially limit the set size to StructureAbstractValue::polymorphismLimit to guard memory explosion on pathological programs. This limit is big enough that it wouldn't kick in for normal code, since we have other heuristics that limit the number of structures that we would allow an inline cache to know about.


  • We eagerly set watchpoints on all watchable structures and then we assume that watchable structures are being watched, and that the watchpoint will jettison the code. This allows tracking of watchable structures to be far simpler than before. Previously, a structure being tracked as "future possible" was predicated on it being watchable but we might not actually watch it. This makes algebra over sets of future possible structures quite weird. But watching all watchable structures means that we simple say that a structure set can be in the following states: unclobbered, which means it's just a set of structures and it doesn't matter what is watchable or what isn't because we've proven that the value must have one of these structures right now; and clobbered, which means that we have a set of structures, plus all possible structures temporarily, with invalidation removing the "plus all possible structures". Clobbering a set means that if any of its structures are unwatchable, the set just becomes TOP; but if all structures in the set are watchable then we just set the clobbered bit to add the "plus all possible structures temporarily" thing. This precisely tracks the exact meaning of watchability and invalidation points.


Slight SunSpider slow-down, neutral on Octane, slight AsmBench speed-up. I believe that
we will ultimately undo the SunSpider slow-down by making further improvements to the set
representation. I believe that Octane perfromance will ultimately improve once we remove
remaining singleton special-cases. The ultimate goal of this is to remove the need to
try quite so desperately hard to make everything monomorphic as we do currently.

(JSC::StructureSet::clear):
(JSC::StructureSet::remove):
(JSC::StructureSet::filter):
(JSC::StructureSet::copyFromOutOfLine):
(JSC::StructureSet::StructureSet): Deleted.
(JSC::StructureSet::operator=): Deleted.
(JSC::StructureSet::copyFrom): Deleted.

  • bytecode/StructureSet.h:

(JSC::StructureSet::StructureSet):
(JSC::StructureSet::operator=):
(JSC::StructureSet::isEmpty):
(JSC::StructureSet::genericFilter):
(JSC::StructureSet::ContainsOutOfLine::ContainsOutOfLine):
(JSC::StructureSet::ContainsOutOfLine::operator()):
(JSC::StructureSet::copyFrom):
(JSC::StructureSet::deleteStructureListIfNecessary):
(JSC::StructureSet::setEmpty):
(JSC::StructureSet::getReservedFlag):
(JSC::StructureSet::setReservedFlag):

  • dfg/DFGAbstractInterpreter.h:

(JSC::DFG::AbstractInterpreter::setBuiltInConstant):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::booleanResult):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::verifyEdge):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::clobberCapturedVars):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::forAllValues):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::clobberStructures):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransition):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransitions):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::setDidClobber):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::dump):

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::observeTransitions):
(JSC::DFG::AbstractValue::setMostSpecific):
(JSC::DFG::AbstractValue::set):
(JSC::DFG::AbstractValue::filter):
(JSC::DFG::AbstractValue::shouldBeClear):
(JSC::DFG::AbstractValue::normalizeClarity):
(JSC::DFG::AbstractValue::checkConsistency):
(JSC::DFG::AbstractValue::assertIsWatched):
(JSC::DFG::AbstractValue::dumpInContext):
(JSC::DFG::AbstractValue::setFuturePossibleStructure): Deleted.

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::clear):
(JSC::DFG::AbstractValue::clobberStructures):
(JSC::DFG::AbstractValue::clobberStructuresFor):
(JSC::DFG::AbstractValue::observeInvalidationPoint):
(JSC::DFG::AbstractValue::observeInvalidationPointFor):
(JSC::DFG::AbstractValue::observeTransition):
(JSC::DFG::AbstractValue::TransitionObserver::TransitionObserver):
(JSC::DFG::AbstractValue::TransitionObserver::operator()):
(JSC::DFG::AbstractValue::TransitionsObserver::TransitionsObserver):
(JSC::DFG::AbstractValue::TransitionsObserver::operator()):
(JSC::DFG::AbstractValue::isHeapTop):
(JSC::DFG::AbstractValue::setType):
(JSC::DFG::AbstractValue::operator==):
(JSC::DFG::AbstractValue::merge):
(JSC::DFG::AbstractValue::validate):
(JSC::DFG::AbstractValue::hasClobberableState):
(JSC::DFG::AbstractValue::assertIsWatched):
(JSC::DFG::AbstractValue::observeIndexingTypeTransition):
(JSC::DFG::AbstractValue::makeTop):
(JSC::DFG::AbstractValue::bestProvenStructure): Deleted.

  • dfg/DFGAllocator.h:
  • dfg/DFGArgumentsSimplificationPhase.cpp:

(JSC::DFG::ArgumentsSimplificationPhase::run):

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::alreadyChecked):

  • dfg/DFGAtTailAbstractState.h:

(JSC::DFG::AtTailAbstractState::structureClobberState):
(JSC::DFG::AtTailAbstractState::setStructureClobberState):
(JSC::DFG::AtTailAbstractState::setFoundConstants):
(JSC::DFG::AtTailAbstractState::haveStructures): Deleted.
(JSC::DFG::AtTailAbstractState::setHaveStructures): Deleted.

  • dfg/DFGBasicBlock.cpp:

(JSC::DFG::BasicBlock::BasicBlock):

  • dfg/DFGBasicBlock.h:
  • dfg/DFGBranchDirection.h:

(JSC::DFG::branchDirectionToString):
(WTF::printInternal):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handlePutById):

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::performBlockCFA):

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::checkStructureElimination):
(JSC::DFG::CSEPhase::structureTransitionWatchpointElimination):
(JSC::DFG::CSEPhase::performNodeCSE):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGCommon.cpp:

(JSC::DFG::startCrashing):
(JSC::DFG::isCrashing):

  • dfg/DFGCommon.h:
  • dfg/DFGCommonData.cpp:

(JSC::DFG::CommonData::notifyCompilingStructureTransition):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::emitGetByOffset):
(JSC::DFG::ConstantFoldingPhase::emitPutByOffset):
(JSC::DFG::ConstantFoldingPhase::addStructureTransitionCheck):

  • dfg/DFGDesiredWatchpoints.cpp:

(JSC::DFG::DesiredWatchpoints::consider):
(JSC::DFG::DesiredWatchpoints::addLazily): Deleted.

  • dfg/DFGDesiredWatchpoints.h:

(JSC::DFG::GenericDesiredWatchpoints::reallyAdd):
(JSC::DFG::GenericDesiredWatchpoints::areStillValid):
(JSC::DFG::GenericDesiredWatchpoints::isWatched):
(JSC::DFG::DesiredWatchpoints::isWatched):
(JSC::DFG::WatchpointForGenericWatchpointSet::WatchpointForGenericWatchpointSet): Deleted.
(JSC::DFG::GenericDesiredWatchpoints::addLazily): Deleted.
(JSC::DFG::GenericDesiredWatchpoints::isStillValid): Deleted.
(JSC::DFG::GenericDesiredWatchpoints::shouldAssumeMixedState): Deleted.
(JSC::DFG::GenericDesiredWatchpoints::isValidOrMixed): Deleted.
(JSC::DFG::DesiredWatchpoints::isStillValid): Deleted.
(JSC::DFG::DesiredWatchpoints::shouldAssumeMixedState): Deleted.
(JSC::DFG::DesiredWatchpoints::isValidOrMixed): Deleted.

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::canOptimizeStringObjectAccess):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::~Graph):
(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::dumpBlockHeader):
(JSC::DFG::Graph::tryGetFoldableView):
(JSC::DFG::Graph::visitChildren):
(JSC::DFG::Graph::assertIsWatched):
(JSC::DFG::Graph::handleAssertionFailure):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::convertToConstant):
(JSC::DFG::Graph::masqueradesAsUndefinedWatchpointIsStillValid):
(JSC::DFG::Graph::addStructureTransitionData): Deleted.

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::beginBasicBlock):
(JSC::DFG::InPlaceAbstractState::initialize):
(JSC::DFG::InPlaceAbstractState::endBasicBlock):
(JSC::DFG::InPlaceAbstractState::reset):
(JSC::DFG::InPlaceAbstractState::merge):

  • dfg/DFGInPlaceAbstractState.h:

(JSC::DFG::InPlaceAbstractState::structureClobberState):
(JSC::DFG::InPlaceAbstractState::setStructureClobberState):
(JSC::DFG::InPlaceAbstractState::setFoundConstants):
(JSC::DFG::InPlaceAbstractState::haveStructures): Deleted.
(JSC::DFG::InPlaceAbstractState::setHaveStructures): Deleted.

  • dfg/DFGLivenessAnalysisPhase.cpp:

(JSC::DFG::LivenessAnalysisPhase::run):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasTransition):
(JSC::DFG::Node::transition):
(JSC::DFG::Node::hasStructure):
(JSC::DFG::StructureTransitionData::StructureTransitionData): Deleted.
(JSC::DFG::Node::convertToStructureTransitionWatchpoint): Deleted.
(JSC::DFG::Node::hasStructureTransitionData): Deleted.
(JSC::DFG::Node::structureTransitionData): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::speculateStringObjectForStructure):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStructureAbstractValue.cpp: Added.

(JSC::DFG::StructureAbstractValue::assertIsWatched):
(JSC::DFG::StructureAbstractValue::clobber):
(JSC::DFG::StructureAbstractValue::observeTransition):
(JSC::DFG::StructureAbstractValue::observeTransitions):
(JSC::DFG::StructureAbstractValue::add):
(JSC::DFG::StructureAbstractValue::merge):
(JSC::DFG::StructureAbstractValue::mergeSlow):
(JSC::DFG::StructureAbstractValue::mergeNotTop):
(JSC::DFG::StructureAbstractValue::filter):
(JSC::DFG::StructureAbstractValue::filterSlow):
(JSC::DFG::StructureAbstractValue::contains):
(JSC::DFG::StructureAbstractValue::isSubsetOf):
(JSC::DFG::StructureAbstractValue::isSupersetOf):
(JSC::DFG::StructureAbstractValue::overlaps):
(JSC::DFG::StructureAbstractValue::equalsSlow):
(JSC::DFG::StructureAbstractValue::dumpInContext):
(JSC::DFG::StructureAbstractValue::dump):

  • dfg/DFGStructureAbstractValue.h:

(JSC::DFG::StructureAbstractValue::StructureAbstractValue):
(JSC::DFG::StructureAbstractValue::operator=):
(JSC::DFG::StructureAbstractValue::clear):
(JSC::DFG::StructureAbstractValue::makeTop):
(JSC::DFG::StructureAbstractValue::assertIsWatched):
(JSC::DFG::StructureAbstractValue::observeInvalidationPoint):
(JSC::DFG::StructureAbstractValue::top):
(JSC::DFG::StructureAbstractValue::isClear):
(JSC::DFG::StructureAbstractValue::isTop):
(JSC::DFG::StructureAbstractValue::isNeitherClearNorTop):
(JSC::DFG::StructureAbstractValue::isClobbered):
(JSC::DFG::StructureAbstractValue::merge):
(JSC::DFG::StructureAbstractValue::filter):
(JSC::DFG::StructureAbstractValue::operator==):
(JSC::DFG::StructureAbstractValue::size):
(JSC::DFG::StructureAbstractValue::at):
(JSC::DFG::StructureAbstractValue::operator[]):
(JSC::DFG::StructureAbstractValue::onlyStructure):
(JSC::DFG::StructureAbstractValue::isSupersetOf):
(JSC::DFG::StructureAbstractValue::makeTopWhenThin):
(JSC::DFG::StructureAbstractValue::setClobbered):
(JSC::DFG::StructureAbstractValue::add): Deleted.
(JSC::DFG::StructureAbstractValue::addAll): Deleted.
(JSC::DFG::StructureAbstractValue::contains): Deleted.
(JSC::DFG::StructureAbstractValue::isSubsetOf): Deleted.
(JSC::DFG::StructureAbstractValue::doesNotContainAnyOtherThan): Deleted.
(JSC::DFG::StructureAbstractValue::isClearOrTop): Deleted.
(JSC::DFG::StructureAbstractValue::last): Deleted.
(JSC::DFG::StructureAbstractValue::speculationFromStructures): Deleted.
(JSC::DFG::StructureAbstractValue::isValidOffset): Deleted.
(JSC::DFG::StructureAbstractValue::hasSingleton): Deleted.
(JSC::DFG::StructureAbstractValue::singleton): Deleted.
(JSC::DFG::StructureAbstractValue::dumpInContext): Deleted.
(JSC::DFG::StructureAbstractValue::dump): Deleted.
(JSC::DFG::StructureAbstractValue::topValue): Deleted.

  • dfg/DFGStructureClobberState.h: Added.

(JSC::DFG::merge):
(WTF::printInternal):

  • dfg/DFGTransition.cpp: Added.

(JSC::DFG::Transition::dumpInContext):
(JSC::DFG::Transition::dump):

  • dfg/DFGTransition.h: Added.

(JSC::DFG::Transition::Transition):

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):

  • dfg/DFGWatchableStructureWatchingPhase.cpp: Added.

(JSC::DFG::WatchableStructureWatchingPhase::WatchableStructureWatchingPhase):
(JSC::DFG::WatchableStructureWatchingPhase::run):
(JSC::DFG::WatchableStructureWatchingPhase::tryWatch):
(JSC::DFG::performWatchableStructureWatching):

  • dfg/DFGWatchableStructureWatchingPhase.h: Added.
  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle):
(JSC::DFG::WatchpointCollectionPhase::handleEdge): Deleted.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::ftlUnreachable):
(JSC::FTL::LowerDFGToLLVM::createPhiVariables):
(JSC::FTL::LowerDFGToLLVM::compileBlock):
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileUpsilon):
(JSC::FTL::LowerDFGToLLVM::compilePhi):
(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::compileValueRep):
(JSC::FTL::LowerDFGToLLVM::compileValueToInt32):
(JSC::FTL::LowerDFGToLLVM::compileGetArgument):
(JSC::FTL::LowerDFGToLLVM::compileGetLocal):
(JSC::FTL::LowerDFGToLLVM::compileSetLocal):
(JSC::FTL::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::LowerDFGToLLVM::compileArithMul):
(JSC::FTL::LowerDFGToLLVM::compileArithDiv):
(JSC::FTL::LowerDFGToLLVM::compileArithMod):
(JSC::FTL::LowerDFGToLLVM::compileArithMinOrMax):
(JSC::FTL::LowerDFGToLLVM::compileArithAbs):
(JSC::FTL::LowerDFGToLLVM::compileArithNegate):
(JSC::FTL::LowerDFGToLLVM::compileArrayifyToStructure):
(JSC::FTL::LowerDFGToLLVM::compilePutStructure):
(JSC::FTL::LowerDFGToLLVM::compileGetById):
(JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentsLength):
(JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentByVal):
(JSC::FTL::LowerDFGToLLVM::compileGetArrayLength):
(JSC::FTL::LowerDFGToLLVM::compileGetByVal):
(JSC::FTL::LowerDFGToLLVM::compilePutByVal):
(JSC::FTL::LowerDFGToLLVM::compileArrayPush):
(JSC::FTL::LowerDFGToLLVM::compileArrayPop):
(JSC::FTL::LowerDFGToLLVM::compileNewArray):
(JSC::FTL::LowerDFGToLLVM::compileNewArrayBuffer):
(JSC::FTL::LowerDFGToLLVM::compileAllocatePropertyStorage):
(JSC::FTL::LowerDFGToLLVM::compileReallocatePropertyStorage):
(JSC::FTL::LowerDFGToLLVM::compileToString):
(JSC::FTL::LowerDFGToLLVM::compileMakeRope):
(JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):
(JSC::FTL::LowerDFGToLLVM::compileMultiPutByOffset):
(JSC::FTL::LowerDFGToLLVM::compileCompareEq):
(JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
(JSC::FTL::LowerDFGToLLVM::compileSwitch):
(JSC::FTL::LowerDFGToLLVM::compare):
(JSC::FTL::LowerDFGToLLVM::boolify):
(JSC::FTL::LowerDFGToLLVM::terminate):
(JSC::FTL::LowerDFGToLLVM::lowInt32):
(JSC::FTL::LowerDFGToLLVM::lowInt52):
(JSC::FTL::LowerDFGToLLVM::opposite):
(JSC::FTL::LowerDFGToLLVM::lowCell):
(JSC::FTL::LowerDFGToLLVM::lowBoolean):
(JSC::FTL::LowerDFGToLLVM::lowDouble):
(JSC::FTL::LowerDFGToLLVM::lowJSValue):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::isArrayType):
(JSC::FTL::LowerDFGToLLVM::speculateStringObjectForStructureID):
(JSC::FTL::LowerDFGToLLVM::callCheck):
(JSC::FTL::LowerDFGToLLVM::buildExitArguments):
(JSC::FTL::LowerDFGToLLVM::addExitArgumentForNode):
(JSC::FTL::LowerDFGToLLVM::setInt52):
(JSC::FTL::LowerDFGToLLVM::crash):
(JSC::FTL::LowerDFGToLLVM::compileStructureTransitionWatchpoint): Deleted.

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::crashNonTerminal): Deleted.

  • ftl/FTLOutput.h:

(JSC::FTL::Output::crash): Deleted.

  • jit/JITOperations.h:
  • jsc.cpp:

(WTF::jscExit):
(functionQuit):
(main):
(printUsageStatement):
(CommandLine::parseArguments):

  • runtime/Structure.h:

(JSC::Structure::dfgShouldWatchIfPossible):
(JSC::Structure::dfgShouldWatch):

  • tests/stress/arrayify-to-structure-contradiction.js: Added.

(foo):

  • tests/stress/ftl-getmyargumentslength-inline.js: Added.

(foo):

  • tests/stress/multi-put-by-offset-multiple-transitions.js: Added.

(foo):
(Foo):

  • tests/stress/throw-from-ftl-in-loop.js: Added.
  • tests/stress/throw-from-ftl.js: Added.

(foo):

Source/WTF:

  • wtf/Bag.h:

(WTF::Bag::Node::Node):
(WTF::Bag::add):

LayoutTests:

  • js/regress/get-by-id-bimorphic-check-structure-elimination-expected.txt: Added.
  • js/regress/get-by-id-bimorphic-check-structure-elimination-simple-expected.txt: Added.
  • js/regress/get-by-id-bimorphic-check-structure-elimination-simple.html: Added.
  • js/regress/get-by-id-bimorphic-check-structure-elimination.html: Added.
  • js/regress/get-by-id-check-structure-elimination-expected.txt: Added.
  • js/regress/get-by-id-check-structure-elimination.html: Added.
  • js/regress/get-by-id-quadmorphic-check-structure-elimination-simple-expected.txt: Added.
  • js/regress/get-by-id-quadmorphic-check-structure-elimination-simple.html: Added.
  • js/regress/script-tests/get-by-id-bimorphic-check-structure-elimination-simple.js: Added.
  • js/regress/script-tests/get-by-id-bimorphic-check-structure-elimination.js: Added.
  • js/regress/script-tests/get-by-id-check-structure-elimination.js: Added.
  • js/regress/script-tests/get-by-id-quadmorphic-check-structure-elimination-simple.js: Added.
10:10 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
9:24 AM Changeset in webkit [169587] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

WebKit should adopt journal_mode=wal for all SQLite databases.
<https://webkit.org/b/133496>
<rdar://problem/15600186>

We already had code to enable write-ahead logging, but it didn't work
since calling SQLiteStatement::step() without first calling prepare()
is a no-op.

Converted it to use into a simple executeCommand() instead.

Reviewed by Brady Eidson.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open):

5:41 AM Changeset in webkit [169586] by stavila@adobe.com
  • 3 edits
    2 adds in trunk

REGRESSION: [CSS Regions] Regions with overflow:auto generate scrollbars even if the content flows into the following regions and as such, should not be scrolled
https://bugs.webkit.org/show_bug.cgi?id=133481

Reviewed by Antti Koivisto.

Source/WebCore:
When enlarging the layout overflow of a scrollable region, the portion of the content that flows
in the region must be taken into consideration. If the content continues to flow into the next
region, the layout overflow of the current region must not be enlarged.

Test: fast/regions/scrollable-first-region.html

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::addRegionsOverflowFromChild):

LayoutTests:
Added test for a large item flowed through two regions with the first region having overflow:auto.
The region must NOT scroll.

  • fast/regions/scrollable-first-region-expected.html: Added.
  • fast/regions/scrollable-first-region.html: Added.
12:25 AM Changeset in webkit [169585] by benjamin@webkit.org
  • 7 edits in trunk

Fix some corner cases of :hover and :active in quirks mode
https://bugs.webkit.org/show_bug.cgi?id=133493

Reviewed by Andreas Kling.

Source/WebCore:
Previously, the quirks mode of :hover and :active were evaluated from the SelectorFragment
in fragmentOnlyMatchesLinksInQuirksMode(). There were two problems with that approach:
1) The FragmentGenerator optimizes out some filter when they always match or can never match.

Those fragment should still qualify :hover and :active, but they were lost
for fragmentOnlyMatchesLinksInQuirksMode().

2) Explicitely listing every attribute of SelectorFragment in fragmentOnlyMatchesLinksInQuirksMode()

was extremly fragile. When :not() and :-webkit-any() were added, we forgot to update the quirks
exceptions.

This patch moves the quirks mode exception code from the code generator to the Fragment generator.
The useless filters are no longer ignored for the quirks, and we don't need to update the quirks mode detection
with every change of SelectorFragment.

It is inefficient and ugly, but that is how that quirks is defined. It is only a problem for compilation,
execution time remains unchanged.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::pseudoClassOnlyMatchesLinksInQuirksMode):
(WebCore::SelectorCompiler::constructFragments):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSpecialFailureInQuirksModeForActiveAndHoverIfNeeded):
(WebCore::SelectorCompiler::fragmentOnlyMatchesLinksInQuirksMode): Deleted.

LayoutTests:
Add test case for the corner cases.

  • fast/selectors/active-hover-quirks-expected.txt:
  • fast/selectors/active-quirks-expected.txt:
  • fast/selectors/hover-quirks-expected.txt:
  • fast/selectors/resources/hover-active-quirks-utility.js:

Jun 3, 2014:

9:47 PM Changeset in webkit [169584] by fpizlo@apple.com
  • 28 edits
    1 add
    5 deletes in branches/ftlopt/Source/JavaScriptCore

[ftlopt] Unreviewed, roll out r169578. The build system needs some more love.

  • InlineRuntimeSymbolTable.h: Removed.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • build-symbol-table-index.py:
  • build-symbol-table-index.sh:
  • copy-llvm-ir-to-derived-sources.sh:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleCall):

  • dfg/DFGNode.h:

(JSC::DFG::Node::canBeKnownFunction): Deleted.
(JSC::DFG::Node::hasKnownFunction): Deleted.
(JSC::DFG::Node::knownFunction): Deleted.
(JSC::DFG::Node::giveKnownFunction): Deleted.

  • ftl/FTLAbbreviatedTypes.h:
  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::LowerDFGToLLVM):
(JSC::FTL::LowerDFGToLLVM::lower):
(JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct):
(JSC::FTL::LowerDFGToLLVM::possiblyCompileInlineableNativeCall): Deleted.
(JSC::FTL::LowerDFGToLLVM::getFunctionBySymbol): Deleted.
(JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol): Deleted.
(JSC::FTL::LowerDFGToLLVM::isInlinableSize): Deleted.

  • ftl/FTLState.cpp:

(JSC::FTL::State::State):

  • ftl/FTLState.h:
  • heap/HandleStack.h:
  • llvm/InitializeLLVM.h:
  • llvm/InitializeLLVMMac.cpp: Removed.
  • llvm/InitializeLLVMMac.mm: Added.

(JSC::initializeLLVMImpl):

  • llvm/LLVMAPIFunctions.h:
  • llvm/LLVMHeaders.h:
  • runtime/BundlePath.h: Removed.
  • runtime/BundlePath.mm: Removed.
  • runtime/DateConversion.h:
  • runtime/DateInstance.h:
  • runtime/ExceptionHelpers.h:
  • runtime/JSArray.h:
  • runtime/JSCJSValue.h:

(JSC::JSValue::toFloat):

  • runtime/JSDateMath.h:
  • runtime/JSObject.h:
  • runtime/JSWrapperObject.h:
  • runtime/Options.h:
  • runtime/RegExp.h:
  • runtime/StringObject.h:
  • runtime/Structure.h:
  • tested-symbols.symlst: Removed.
9:34 PM Changeset in webkit [169583] by dburkart@apple.com
  • 1 copy in tags/Safari-538.38

Tagging Safari-538.38

9:28 PM Changeset in webkit [169582] by fpizlo@apple.com
  • 7 edits
    2 moves
    2 adds
    7 deletes in branches/ftlopt

[ftlopt] FTL native inlining tests take far too long
https://bugs.webkit.org/show_bug.cgi?id=133498

Unreviewed test gardening.

Source/JavaScriptCore:
Added a new exceptions test since the other one appears to not work.

  • tests/stress/ftl-library-exception.js:
  • tests/stress/ftl-library-inline-gettimezoneoffset.js: Added.

(foo):

  • tests/stress/ftl-library-inlining-exceptions-dataview.js: Added.

(foo):

  • tests/stress/ftl-library-inlining-exceptions.js: Copied from LayoutTests/js/regress/script-tests/ftl-library-inlining-exceptions.js.
  • tests/stress/ftl-library-inlining-loops.js: Copied from LayoutTests/js/regress/script-tests/ftl-library-inlining-loops.js.
  • tests/stress/ftl-library-inlining-random.js:
  • tests/stress/ftl-library-substring.js:

LayoutTests:
Move long-running tests that focus on correctness into JSC/tests/stress.
Speed up the performance tests by reducing allocation and call overhead.

  • js/regress/ftl-library-inlining-exceptions-expected.txt: Removed.
  • js/regress/ftl-library-inlining-exceptions.html: Removed.
  • js/regress/ftl-library-inlining-folding-expected.txt: Removed.
  • js/regress/ftl-library-inlining-folding.html: Removed.
  • js/regress/ftl-library-inlining-loops-expected.txt: Removed.
  • js/regress/ftl-library-inlining-loops.html: Removed.
  • js/regress/script-tests/ftl-library-inlining-dataview.js:

(foo): Deleted.

  • js/regress/script-tests/ftl-library-inlining-exceptions.js: Removed.
  • js/regress/script-tests/ftl-library-inlining-folding.js: Removed.
  • js/regress/script-tests/ftl-library-inlining-loops.js: Removed.
  • js/regress/script-tests/ftl-library-inlining.js:

(foo): Deleted.

9:22 PM Changeset in webkit [169581] by dburkart@apple.com
  • 5 edits in branches/safari-537.77-branch/Source

Version bump.

9:12 PM Changeset in webkit [169580] by dburkart@apple.com
  • 1 copy in tags/Safari-537.77.4

Tagging

8:33 PM Changeset in webkit [169579] by gyuyoung.kim@samsung.com
  • 11 edits in trunk

Need to check invalid scheme in navigator content utils
https://bugs.webkit.org/show_bug.cgi?id=133296

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp:

(WebCore::verifyProtocolHandlerScheme): Just fix a wrong typo.

LayoutTests:
Add tests that check that schemes with colons in their names are rejected.
Spec: http://www.whatwg.org/specs/web-apps/current-work/#custom-handlers

  • fast/dom/NavigatorContentUtils/is-protocol-handler-registered-expected.txt:
  • fast/dom/NavigatorContentUtils/is-protocol-handler-registered.html:
  • fast/dom/NavigatorContentUtils/register-protocol-handler-expected.txt:
  • fast/dom/NavigatorContentUtils/register-protocol-handler.html:
  • fast/dom/NavigatorContentUtils/unregister-protocol-handler-expected.txt:
  • fast/dom/NavigatorContentUtils/unregister-protocol-handler.html:
  • platform/efl/fast/dom/NavigatorContentUtils/register-protocol-handler-expected.txt:
  • platform/efl/fast/dom/NavigatorContentUtils/unregister-protocol-handler-expected.txt:
7:50 PM Changeset in webkit [169578] by fpizlo@apple.com
  • 29 edits
    23 adds
    1 delete in branches/ftlopt

[ftlopt] Added system for inlining native functions via the FTL.
https://bugs.webkit.org/show_bug.cgi?id=131515

Patch by Matthew Mirman <mmirman@apple.com> on 2014-06-03
Reviewed by Filip Pizlo.

Source/JavaScriptCore:
Also fixed the build to not compress the bitcode and to
include all of the relevant runtime. With GCC_GENERATE_DEBUGGING_SYMBOLS = NO,
the produced bitcode files are a 100th the size they were before.
Now we can include all of the relevant runtime files with only a 3mb overhead.
This is the same overhead as for two compressed files before,
but done more efficiently (on both ends) and with less code.

Deciding whether to inline native functions is left up to LLVM.
The entire module containing the function is linked into the current
compiled JS so that inlining the native functions shouldn't make them smaller.

Rather than loading Runtime.symtbl at runtime FTLState.cpp now includes a file
InlineRuntimeSymbolTable.h which statically builds the symbol table hash table.
Currently build-symbol-table-index.py updates this file from the
contents of tested-symbols.symlst when done building as a matter of convenience.
However, in order to include the new contents of the file in the build
you'd need to build twice. This will be fixed in future versions.

  • JavaScriptCore.xcodeproj/project.pbxproj: Added back runtime files to compile.
  • build-symbol-table-index.py: Changed bitcode suffix.

Added inclusion of only tested symbols.
Added output to InlineRuntimeSymbolTable.h.

  • build-symbol-table-index.sh: Changed bitcode suffix.
  • copy-llvm-ir-to-derived-sources.sh: Removed gzip compression.
  • tested-symbols.symlst: Added.
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleCall):
Now sets the knownFunction of the call node if such a function exists
and emits a check that during runtime the callee is in fact known.

  • dfg/DFGNode.h:

Added functions to set the known function of a call node.
(JSC::DFG::Node::canBeKnownFunction): Added.
(JSC::DFG::Node::hasKnownFunction): Added.
(JSC::DFG::Node::knownFunction): Added.
(JSC::DFG::Node::giveKnownFunction): Added.

  • ftl/FTLAbbreviatedTypes.h: Added a typedef for LLVMMemoryBufferRef
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::isInlinableSize): Added. Hardcoded threshold to 275.
(JSC::FTL::LowerDFGToLLVM::getModuleByPathForSymbol): Added.
(JSC::FTL::LowerDFGToLLVM::getFunctionBySymbol): Added.
(JSC::FTL::LowerDFGToLLVM::possiblyCompileInlineableNativeCall): Added.
(JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct):
Added call to possiblyCompileInlineableNativeCall

  • ftl/FTLOutput.h:

(JSC::FTL::Output::allocaName): Added. Useful for debugging.

  • ftl/FTLState.cpp:

(JSC::FTL::State::State): Added an include for InlineRuntimeSymbolTable.h

  • ftl/FTLState.h: Added symbol table hash table.
  • ftl/FTLCompile.cpp:

(JSC::FTL::compile): Added inlining and dead function elimination passes.

  • heap/HandleStack.h: Added JS_EXPORT_PRIVATE to a few functions to get inlining to compile.
  • InlineRuntimeSymbolTable.h: Added.
  • llvm/InitializeLLVMMac.mm: Deleted.
  • llvm/InitializeLLVMMac.cpp: Added.
  • llvm/LLVMAPIFunctions.h: Added macros to include Bitcode parsing and linking functions.
  • llvm/LLVMHeaders.h: Added includes for Bitcode parsing and linking.
  • runtime/BundlePath.h: Added.
  • runtime/BundlePath.mm: Added.
  • runtime/DateInstance.h: Added JS_EXPORT_PRIVATE to a few functions to get inlining to compile.
  • runtime/DateInstance.h: ditto.
  • runtime/DateConversion.h: ditto.
  • runtime/ExceptionHelpers.h: ditto.
  • runtime/JSCJSValue.h: ditto.
  • runtime/JSArray.h: ditto.
  • runtime/JSDateMath.h: ditto.
  • runtime/JSObject.h: ditto.
  • runtime/JSObject.h: ditto.
  • runtime/RegExp.h: ditto.
  • runtime/Structure.h: ditto.
  • runtime/Options.h: Added maximumLLVMInstructionCountForNativeInlining.
  • tests/stress/ftl-library-inlining-random.js: Added.
  • tests/stress/ftl-library-substring.js: Added.

LayoutTests:
Adds microbenchmarks.

  • js/regress/script-tests/ftl-library-inlining.js: Added.
  • js/regress/ftl-library-inlining-expected.txt: Added.
  • js/regress/ftl-library-inlining.html: Added.
  • js/regress/script-tests/ftl-library-inlining-dataview.js: Added.
  • js/regress/ftl-library-inlining-dataview-expected.txt: Added.
  • js/regress/ftl-library-inlining-dataview.html: Added.
  • js/regress/script-tests/ftl-library-inlining-exceptions.js: Added.
  • js/regress/ftl-library-inlining-exceptions-expected.txt: Added.
  • js/regress/ftl-library-inlining-exceptions.html: Added.
  • js/regress/script-tests/ftl-library-inlining-folding.js: Added.
  • js/regress/ftl-library-inlining-folding-expected.txt: Added.
  • js/regress/ftl-library-inlining-folding-expected.html: Added.
  • js/regress/script-tests/ftl-library-inlining-loops.js: Added.
  • js/regress/ftl-library-inlining-loops-expected.txt: Added.
  • js/regress/ftl-library-inlining-loops.html: Added.
7:08 PM Changeset in webkit [169577] by dburkart@apple.com
  • 5 edits in branches/safari-537.77-branch/Source

Bump version to 537.77.4

6:27 PM Changeset in webkit [169576] by timothy_horton@apple.com
  • 5 edits in trunk/Source

WebKit2 View Gestures (Zoom): Can show unpainted regions when zoom-pinching-out
https://bugs.webkit.org/show_bug.cgi?id=133472
<rdar://problem/15686848>

Reviewed by Simon Fraser.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToLayers):
(WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom):
Use prepopulateRect() when zooming out to ensure that we have tiles for the current exposed area.

Factor applyTransientZoomToLayers out of adjustTransientZoom, so that
flushLayers can call applyTransientZoomToLayers without ending up calling prepopulateRect()
during layer flushing, which causes trouble.

It is OK to populate layers at the current scale even when zooming out, because the overdraw
already covers most of the zoomed out area, and we're only adding a few more tiles at worst.

  • WebCore.exp.in:
4:01 PM Changeset in webkit [169575] by dburkart@apple.com
  • 9 edits in branches/safari-537.77-branch/Source/WebCore

Back out r169227

3:50 PM Changeset in webkit [169574] by yoav@yoav.ws
  • 2 edits in trunk/Tools

Add myself (yoav@yoav.ws) to contributors.json

3:44 PM Changeset in webkit [169573] by yoav@yoav.ws
  • 9 edits
    2 adds in trunk/Source/WebCore

Refactor the srcset parser into its own file
https://bugs.webkit.org/show_bug.cgi?id=133480

Reviewed by Andreas Kling.

No new tests, since this patch doesn't change the parser's behavior.

This patch moves the srcset parser into its own file,
in order to prepare the code for alignment with recent spec changes.

  • CMakeLists.txt:
  • html/HTMLImageElement.cpp:
  • html/parser/HTMLParserIdioms.cpp:

(WebCore::compareByScaleFactor): Deleted.
(WebCore::parseDescriptors): Deleted.
(WebCore::parseImagesWithScaleFromSrcsetAttribute): Deleted.
(WebCore::bestFitSourceForImageAttributes): Deleted.

  • html/parser/HTMLParserIdioms.h:

(WebCore::ImageWithScale::ImageWithScale): Deleted.
(WebCore::ImageWithScale::imageURL): Deleted.
(WebCore::ImageWithScale::scaleFactor): Deleted.

  • html/parser/HTMLPreloadScanner.cpp:
  • html/parser/HTMLSrcsetParser.cpp: Added.

(WebCore::compareByScaleFactor):
(WebCore::parseDescriptors):
(WebCore::parseImagesWithScaleFromSrcsetAttribute):
(WebCore::bestFitSourceForImageAttributes):

  • html/parser/HTMLSrcsetParser.h: Added.

(WebCore::ImageWithScale::ImageWithScale):
(WebCore::ImageWithScale::imageURL):
(WebCore::ImageWithScale::scaleFactor):

2:38 PM Changeset in webkit [169572] by mario.prada@samsung.com
  • 2 edits in trunk/Source/WebCore

[ATK] accessibility/textarea-selected-text-range.html is failing
https://bugs.webkit.org/show_bug.cgi?id=133479

Reviewed by Chris Fleizach.

Implement atk_text_set_caret_offset() in terms of
atk_text_set_selection() for zero-length selections.

No new tests needed, the following test should just start
passing again now: accessibility/textarea-selected-text-range.html.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(webkitAccessibleTextSetCaretOffset): Reimplemented this function
in terms of webkitAccessibleTextSetSelection().

2:37 PM Changeset in webkit [169571] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Corrected arm64 assertion in css jit.

Rubber stamped by Benjamin Poulain.

  • cssjit/StackAllocator.h:

(WebCore::StackAllocator::pop):
Changed assertion from incorrectly matching x86_64 to using the correct minimum offset,
taking into account that a stackUnitInBytes is used for two registers on arm64
except the last stack unit, which could only be used for one register if there are
an odd number of registers.

2:31 PM Changeset in webkit [169570] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] Start ignoring common bogus viewport parameters
https://bugs.webkit.org/show_bug.cgi?id=133466
<rdar://problem/16203396>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-06-03
Reviewed by Sam Weinig.

Incorrect viewports are spreading really quickly lately. We have to start ignoring
some combinations of arguments as they are almost always used incorrectly, causing
a poor user experience on those websites.

  • dom/ViewportArguments.cpp:

(WebCore::finalizeViewportArguments):

2:26 PM Changeset in webkit [169569] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

CSS JIT: add support for the "any" pseudo class
https://bugs.webkit.org/show_bug.cgi?id=133473

Patch by Yusuke Suzuki <Yusuke Suzuki> on 2014-06-03
Reviewed by Benjamin Poulain.

Add support for the :any pseudo class.

Source/WebCore:
Test: fast/selectors/pseudo-class-any.html

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::minimumRegisterRequirements):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatchesAnyPseudoClass):

LayoutTests:

  • fast/selectors/pseudo-class-any-expected.txt: Added.
  • fast/selectors/pseudo-class-any.html: Added.
2:09 PM Changeset in webkit [169568] by jer.noble@apple.com
  • 17 edits in trunk

Update PlatformTimeRanges to use MediaTime rather than doubles for time values.
https://bugs.webkit.org/show_bug.cgi?id=133454

Reviewed by Eric Carlson.

Source/WebCore:
PlatformTimeRanges will now use MediaTime, so operations at the platform level won't
lose precision when converting to and from doubles and rational time values like CMTime.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::currentTimeFudgeFactor):
(WebCore::SourceBuffer::hasCurrentTime):
(WebCore::SourceBuffer::hasFutureTime):
(WebCore::SourceBuffer::canPlayThrough):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • html/TimeRanges.cpp:

(WebCore::TimeRanges::TimeRanges):
(WebCore::TimeRanges::start):
(WebCore::TimeRanges::end):
(WebCore::TimeRanges::add):
(WebCore::TimeRanges::contain):
(WebCore::TimeRanges::find):
(WebCore::TimeRanges::nearest):
(WebCore::TimeRanges::totalDuration):

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::seekable):

  • platform/graphics/PlatformTimeRanges.cpp:

(WebCore::PlatformTimeRanges::create):
(WebCore::PlatformTimeRanges::PlatformTimeRanges):
(WebCore::PlatformTimeRanges::invert):
(WebCore::PlatformTimeRanges::start):
(WebCore::PlatformTimeRanges::end):
(WebCore::PlatformTimeRanges::add):
(WebCore::PlatformTimeRanges::contain):
(WebCore::PlatformTimeRanges::find):
(WebCore::PlatformTimeRanges::nearest):
(WebCore::PlatformTimeRanges::totalDuration):

  • platform/graphics/PlatformTimeRanges.h:

(WebCore::PlatformTimeRanges::Range::Range):
(WebCore::PlatformTimeRanges::Range::isPointInRange):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::extraMemoryCost):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered): Deleted.

  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::buffered):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::buffered):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::advanceCurrentTime):

LayoutTests:
Update the video-pause-immediately to allow for small floating point differences.

  • media/video-pause-immediately-expected.txt:
  • media/video-pause-immediately.html:
1:59 PM Changeset in webkit [169567] by benjamin@webkit.org
  • 7 edits in trunk/Source

[iOS][WK2] Align the highlight rects with device pixels
https://bugs.webkit.org/show_bug.cgi?id=133464

Source/WebCore:

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-06-03
Reviewed by Enrica Casucci.

Add utility functions to pixel align points and rects.

  • WebCore.exp.in:
  • platform/graphics/FloatPoint.h:

(WebCore::flooredToDevicePixels):
(WebCore::ceiledToDevicePixels):

  • platform/graphics/FloatRect.cpp:

(WebCore::enclosingRectExtendedToDevicePixels):

  • platform/graphics/FloatRect.h:

Source/WebKit2:
<rdar://problem/16708861>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-06-03
Reviewed by Enrica Casucci.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _showTapHighlightWithColor:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):

1:13 PM Changeset in webkit [169566] by Manuel Rego Casasnovas
  • 2 edits in trunk/Websites/planet.webkit.org

Add Igalia WebKit blog to the planet
https://bugs.webkit.org/show_bug.cgi?id=133446

Reviewed by Bem Jones-Bey.

  • config.ini: Add Igalia WebKit blog to the planet and remove Martin's

and Xan's blogs as they will be included there.

11:59 AM Changeset in webkit [169565] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebCore

Prepopulated tiles may never be unparented from TileGrids with aggressive tile retention on
https://bugs.webkit.org/show_bug.cgi?id=133471

Reviewed by Simon Fraser.

  • platform/graphics/ca/mac/TileController.h:
  • platform/graphics/ca/mac/TileGrid.h:

(WebCore::TileGrid::TileCohortInfo::TileCohortInfo):

  • platform/graphics/ca/mac/TileGrid.mm:

(WebCore::TileGrid::TileCohortInfo::timeUntilExpiration):
(WebCore::TileGrid::cohortRemovalTimerFired):
Factor timeUntilExpiration() out of cohortRemovalTimerFired().

(WebCore::TileGrid::revalidateTiles):
Ensure that secondary tiles that never touch the primary coverage rect
are still unparented eventually (after 2 seconds, the same lifetime we use
for cohorts in non-aggressive retention).
Schedule another revalidateTiles if we left parented secondary tiles behind.

11:13 AM Changeset in webkit [169564] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

TileGrid::prepopulateRect populates the wrong tiles if scale != 1
https://bugs.webkit.org/show_bug.cgi?id=133470

Reviewed by Simon Fraser.

  • page/FrameView.cpp:

(WebCore::FrameView::requestScrollPositionUpdate):

  • platform/graphics/ca/mac/TileGrid.mm:

(WebCore::TileGrid::prepopulateRect):
(WebCore::TileGrid::revalidateTiles):
prepopulateRect takes rects in "content" coordinates, but when later passed to
ensureTilesForRect, they're expected to be in the same coordinate space as the layer's
visible rect, and are scaled up. So, apply the inverse scale to counter that.

11:12 AM Changeset in webkit [169563] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebCore

Minor TileCoverageMap refinements
https://bugs.webkit.org/show_bug.cgi?id=133468

Reviewed by Simon Fraser.

  • platform/graphics/ca/mac/TileController.mm:

(WebCore::TileController::setContentsScale):

  • platform/graphics/ca/mac/TileCoverageMap.h:
  • platform/graphics/ca/mac/TileCoverageMap.mm:

(WebCore::TileCoverageMap::TileCoverageMap):
(WebCore::TileCoverageMap::setDeviceScaleFactor):
Keep the TileCoverageMap's contentsScale at the device scale factor, so that it
looks sharp on non-1x displays.

(WebCore::TileCoverageMap::update):
Decrease the height available for the TileCoverageMap by the topContentInset;
it's already being vertically offset by the topContentInset, but the height was
not adjusted, so it would run off the bottom of the window.

  • platform/graphics/ca/mac/TileGrid.mm:

(WebCore::TileGrid::drawTileMapContents):
If using aggressive tile retention (and thus not coloring tiles based on age),
dim tiles that aren't in the visible cohort.

11:11 AM Changeset in webkit [169562] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebCore

Fix a typo, TileGrid::updateTilerLayerProperties
https://bugs.webkit.org/show_bug.cgi?id=133474

Reviewed by Anders Carlsson.

  • platform/graphics/ca/mac/TileController.mm:

(WebCore::TileController::setAcceleratesDrawing):
(WebCore::TileController::setTilesOpaque):
(WebCore::TileController::setTileDebugBorderWidth):
(WebCore::TileController::setTileDebugBorderColor):

  • platform/graphics/ca/mac/TileGrid.h:
  • platform/graphics/ca/mac/TileGrid.mm:

(WebCore::TileGrid::updateTileLayerProperties):
(WebCore::TileGrid::updateTilerLayerProperties):
s/updateTilerLayerProperties/updateTileLayerProperties/g

10:52 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
9:42 AM Changeset in webkit [169561] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

LLVM soft-linking should be truly fail-silent
https://bugs.webkit.org/show_bug.cgi?id=133482

Reviewed by Mark Lam.

  • llvm/InitializeLLVMPOSIX.cpp:

(JSC::initializeLLVMPOSIX): Missing return statement in the dlsym() returning null case.

5:04 AM Changeset in webkit [169560] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[SOUP] ResourceLoadTiming.responseStart is always 0
https://bugs.webkit.org/show_bug.cgi?id=133469

Reviewed by Sergio Villar Senin.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::sendRequestCallback): Record the responseStart time.

4:40 AM Changeset in webkit [169559] by commit-queue@webkit.org
  • 8 edits in trunk

REGRESSION(r169092 and r169102): Skip failing JSC tests poperly on non-x86 Darwin platforms
https://bugs.webkit.org/show_bug.cgi?id=133149

Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-06-03
Reviewed by Csaba Osztrogonác.

PerformanceTests/SunSpider:

  • profiler-test.yaml: Skip profiler tests only if the architecture isn't x86 and the host is Darwin.

Source/JavaScriptCore:

  • tests/mozilla/mozilla-tests.yaml: Skip js1_5/Regress/regress-159334.js only if the architecture isn't x86 and the host is Darwin.

Tools:

  • Scripts/run-jsc-stress-tests: Added determineOS to determine the host operating system the script run on.

LayoutTests:

  • js/script-tests/function-apply-many-args.js: Skip it only if the architecture isn't x86 and the host is Darwin.
Note: See TracTimeline for information about the timeline view.