Timeline



May 17, 2016:

8:39 PM Changeset in webkit [201071] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Add LayerListMutationDetector to hittesting.
https://bugs.webkit.org/show_bug.cgi?id=157758

Reviewed by Simon Fraser.

Hittesting is supposed to be readonly.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hitTestLayer):

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::clearZOrderLists):

8:29 PM Changeset in webkit [201070] by youenn.fablet@crf.canon.fr
  • 10 edits in trunk/Source/WebCore

Remove toJS template methods taking const Ref and const RefPtr
https://bugs.webkit.org/show_bug.cgi?id=157791

Reviewed by Chris Dumez.

Updating toJS template method taking a const Ref<T>& to take a Ref<T>&&.
Updating toJS template method taking a const RefPtr<T>& to take a RefPtr<T>&&.
Updating binding generator to generate rvalue references.

Covered by existing tests.

  • bindings/js/JSDOMBinding.h:

(WebCore::toJS):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorDefinition):

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

(WebCore::JSTestInterfaceConstructor::construct):

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

(WebCore::JSTestNamedConstructorNamedConstructor::construct):

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

(WebCore::JSTestNodeConstructor::construct):

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

(WebCore::JSTestObjConstructor::construct):

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

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):
(WebCore::constructJSTestOverloadedConstructors5):

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

(WebCore::JSTestTypedefsConstructor::construct):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):

7:53 PM Changeset in webkit [201069] by sbarati@apple.com
  • 2 edits in trunk/LayoutTests

LayoutTest inspector/debugger/tail-recursion.html failing on WK2 debug
https://bugs.webkit.org/show_bug.cgi?id=157801

Rubber-stamped by Joseph Pecoraro.

  • inspector/debugger/tail-recursion.html:
7:26 PM Changeset in webkit [201068] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: NavigationSidebarPanel should coordinate item selection between its tree outlines
https://bugs.webkit.org/show_bug.cgi?id=157813
<rdar://problem/26331779>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
Deselecting elements in other tree outlines is now done in the base class.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
Listen for selection changed events on all content tree outlines.
(WebInspector.NavigationSidebarPanel.prototype.treeElementAddedOrChanged):
Moved stub from the public section to the protected section.
(WebInspector.NavigationSidebarPanel.prototype._contentTreeOutlineTreeSelectionDidChange):
Deselect tree elements in any content tree outline that is not the
parent of the selected element.

(WebInspector.NavigationSidebarPanel.prototype._treeSelectionDidChange): Deleted.
Rename _contentTreeOutlineTreeSelectionDidChange, to prevent being
shadowed by subclasses with _treeSelectionDidChange event handlers.

7:14 PM Changeset in webkit [201067] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Adding children incorrectly when there are nested inline continuations
https://bugs.webkit.org/show_bug.cgi?id=157818

Reviewed by Chris Fleizach.

Source/WebCore:

When getting the inline element continuation's next sibling, if we fall back on to the parent
case, we might end up adding the same node repeatedly. Fixed it by skipping this case.

Test: accessibility/mac/nested-inline-elements-children.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::nextSibling):

LayoutTests:

  • accessibility/mac/nested-inline-elements-children-expected.txt: Added.
  • accessibility/mac/nested-inline-elements-children.html: Added.
7:11 PM Changeset in webkit [201066] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSC should detect the right default locale even when it's not embedded in WebCore
https://bugs.webkit.org/show_bug.cgi?id=157755
rdar://problem/24665424

Reviewed by Keith Miller.

This makes JSC try to use WTF's platform user preferred language detection if the DOM did
not register a defaultLanguage callback. The result is that when JSC runs standalone it
will detect the platform user preferred language almost the same way as when it's embedded
in WebCore. The only difference is that WebCore may have its own additional overrides via
the WK API. But in the absence of overrides, WebCore uses the same WTF logic that JSC falls
back to.

We first found this bug because on iOS, the intl tests would fail because ICU would report
a somewhat bogus locale on that platform. Prior to this change, standalone JSC would fall
back to ICU's locale detection. It turns out that the ICU default locale is also bogus on
OS X, just less so. For example, setting things to Poland did not result in the jsc shell
printing dates Polish-style. Now it will print them Polish-style if your system preferences
say so. Also, the tests don't fail on iOS anymore.

  • runtime/IntlObject.cpp:

(JSC::defaultLocale):

7:07 PM Changeset in webkit [201065] by dino@apple.com
  • 12 edits in trunk

Add media query support for wide gamut displays on Mac
https://bugs.webkit.org/show_bug.cgi?id=157824
<rdar://problem/26333137>

Reviewed by Simon Fraser.

Source/WebCore:

Implement the Mac version of the color-gamut media query
by filling out the screenSupportsExtendedColor function.

On Yosemite, we always return false. On El Capitan, we
can check the ColorProfile via ColorSync to see if the
screen is wide gamut.

There is already a test in fast/media/mq-color-gamut.html

  • css/MediaQueryEvaluator.cpp:

(WebCore::color_gamutMediaFeatureEval): Pass the mainFrame's view
to screenSupportsExtendedColor, so that it can fetch the NSScreen.

  • platform/PlatformScreen.h: screenSupportsExtendedColor now takes

an optional Widget parameter.

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenSupportsExtendedColor): Add empty parameter.

  • platform/mac/PlatformScreenMac.mm:

(WebCore::screenSupportsExtendedColor): Get the NSWindow, then the
NSScreen, then the ColorSpace, then the ColorSyncProfile, and
check if it is a wide gamut profile.

  • platform/spi/cg/CoreGraphicsSPI.h: Add the SPI declarations.

LayoutTests:

Remove the check for sRGB, since it is confusingly false
on browsers that don't implement this query, and is likely
to be dropped from the specification.

Also, make the text readable.

  • fast/media/mq-color-gamut-expected.html:
  • fast/media/mq-color-gamut.html:
6:26 PM Changeset in webkit [201064] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed, fix Darin's post-mortem review comments for r201052.

  • rendering/RenderFieldset.cpp:

(WebCore::RenderFieldset::findLegend):

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::layoutChildren):

6:05 PM Changeset in webkit [201063] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.32-branch/Source

Versioning.

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

Versioning.

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

Versioning.

5:44 PM Changeset in webkit [201060] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.7.3

New tag.

5:43 PM Changeset in webkit [201059] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.142

New tag.

5:14 PM Changeset in webkit [201058] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.32.3

New tag.

5:13 PM Changeset in webkit [201057] by Matt Baker
  • 1 edit
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: Remove TimelineSidebarPanel.js as it's no longer referenced anywhere
https://bugs.webkit.org/show_bug.cgi?id=157819

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineSidebarPanel.js: Removed.

Removed unused file.

4:24 PM Changeset in webkit [201056] by Beth Dakin
  • 12 edits
    2 adds in trunk

Make handleAcceptedCandidate a public function
https://bugs.webkit.org/show_bug.cgi?id=157763
-and corresponding-
rdar://problem/26206397

Reviewed by Tim Horton.

Source/WebCore:

Define handleAcceptedCandidateWithSoftSpaces on EditorClient so that it can
be invoked on any EditorClient.

  • loader/EmptyClients.h:
  • page/EditorClient.h:

(WebCore::EditorClient::handleAcceptedCandidateWithSoftSpaces):

Source/WebKit/mac:

This patch re-names handleAcceptedCandidate to
handleAcceptedCandidateWithSoftSpaces. The function now takes a
WebCore::TextCheckingResult instead of an NSTextCheckingResult and it can be
called from outside of WebEditorClient.

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

(WebEditorClient::handleRequestedCandidates):
(WebEditorClient::handleAcceptedCandidateWithSoftSpaces):
(textCheckingResultFromNSTextCheckingResult): Deleted.
(WebEditorClient::handleAcceptedCandidate): Deleted.

Move showCandidates to WebViewPrivate so that it can be overridden by a test.

  • WebView/WebViewInternal.h:
  • WebView/WebViewPrivate.h:

Source/WebKit2:

This patch makes handleAcceptedCandidate a public member of WebViewImpl
instead of a private member.

  • UIProcess/Cocoa/WebViewImpl.h:

(WebKit::WebViewImpl::createWeakPtr):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/autofocused-text-input.html: Added.
  • TestWebKitAPI/Tests/mac/ViewWithEditableAreaLeak.mm: Added.

(-[DoNotLeakWebView dealloc]):
(-[DoNotLeakWebView showCandidates:forString:inRect:forSelectedRange:view:completionHandler:]):
(-[DoNotLeakFrameLoadDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):

4:22 PM Changeset in webkit [201055] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed debug build fix after r201052.

  • rendering/svg/RenderSVGText.cpp:

(WebCore::findPreviousAndNextAttributes): Deleted.

4:14 PM Changeset in webkit [201054] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit/mac

Merge r200867. rdar://problem/26253396

3:52 PM Changeset in webkit [201053] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

REGRESSION(r192855): Math.random() always produces the same first 7 decimal points the first two invocations
https://bugs.webkit.org/show_bug.cgi?id=157805
<rdar://problem/26327851>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-17
Reviewed by Geoffrey Garen.

Source/WTF:

  • wtf/WeakRandom.h:

(WTF::WeakRandom::setSeed):
Advance once to randomize the 32bit seed across the 128bit state
and avoid re-using 64bits of state in the second advance.

LayoutTests:

  • js/dom/math-random-initial-values-expected.txt: Added.
  • js/dom/math-random-initial-values.html: Added.
  • js/resources/math-random-initial-values-iframe.html: Added.

Test that less then 5% of the time, early Math.random invocations
produce very similiar values. Before this change we were failing
100%, but after we see similiar values mostly around 0-3%.

3:39 PM Changeset in webkit [201052] by Chris Dumez
  • 22 edits in trunk/Source/WebCore

Use RenderChildIterator more for traversing a renderer's children
https://bugs.webkit.org/show_bug.cgi?id=157811

Reviewed by Antti Koivisto.

Use RenderChildIterator more for traversing a renderer's children.

  • inspector/InspectorLayerTreeAgent.cpp:

(WebCore::InspectorLayerTreeAgent::layersForNode):
(WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):

  • inspector/InspectorLayerTreeAgent.h:
  • rendering/AutoTableLayout.cpp:

(WebCore::AutoTableLayout::recalcColumn):

  • rendering/InlineIterator.h:

(WebCore::isEmptyInline):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::addFocusRingRects):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::positionForPoint):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::updateOutlineAutoAncestor):

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

(WebCore::RenderFieldset::findLegend):

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

(WebCore::RenderInline::generateCulledLineBoxRects):
(WebCore::RenderInline::culledInlineFirstLineBox):
(WebCore::RenderInline::culledInlineVisualOverflowBoundingBox):
(WebCore::RenderInline::dirtyLineBoxes):

  • rendering/RenderListItem.cpp:

(WebCore::getParentOfFirstLineBox):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::setFlowThreadStateIncludingDescendants):
(WebCore::RenderObject::addAbsoluteRectForLayer):
(WebCore::RenderObject::paintingRootRect):
(WebCore::RenderObject::removeFromRenderFlowThreadIncludingDescendants):
(WebCore::RenderObject::invalidateFlowThreadContainingBlockIncludingDescendants):
(WebCore::RenderObject::updateDragState):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::firstColumn):

  • rendering/RenderTableCol.cpp:

(WebCore::RenderTableCol::clearPreferredLogicalWidthsDirtyBits):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layoutRows):

  • rendering/RenderTreeAsText.cpp:

(WebCore::write):

  • rendering/svg/RenderSVGText.cpp:

(WebCore::findPreviousAndNextAttributes):
(WebCore::RenderSVGText::subtreeChildWasAdded):
(WebCore::RenderSVGText::subtreeChildWillBeRemoved):

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::updateObjectBoundingBox):
(WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
(WebCore::SVGRenderSupport::layoutChildren):

  • rendering/svg/SVGTextLayoutAttributesBuilder.cpp:

(WebCore::SVGTextLayoutAttributesBuilder::collectTextPositioningElements):

  • rendering/svg/SVGTextMetricsBuilder.cpp:

(WebCore::SVGTextMetricsBuilder::walkTree):

3:34 PM Changeset in webkit [201051] by dino@apple.com
  • 17 edits in trunk

Remove ES6_GENERATORS flag
https://bugs.webkit.org/show_bug.cgi?id=157815
<rdar://problem/26332894>

Reviewed by Geoffrey Garen.

This flag isn't needed. Generators are enabled everywhere and
part of a stable specification.

.:

  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseFunctionDeclaration): Deleted.
(JSC::Parser<LexerType>::parseClass): Deleted.
(JSC::Parser<LexerType>::parseExportDeclaration): Deleted.
(JSC::Parser<LexerType>::parseAssignmentExpression): Deleted.
(JSC::Parser<LexerType>::parseProperty): Deleted.
(JSC::Parser<LexerType>::parseFunctionExpression): Deleted.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:
3:27 PM Changeset in webkit [201050] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

REGRESSION: JetStream crashes on some iPhones
https://bugs.webkit.org/show_bug.cgi?id=157814

Reviewed by Michael Saboff.

  • bmalloc/Sizes.h: Reduce smallMax to 32kB.

Previous justification for 64kB was:

  • bmalloc/Sizes.h: Upped smallMax to 64kB. Upping to 32kB is pretty reasonable, since sizes between 16kB and 32kB share page sizes. I went all the way up to 64kB because the GC uses 64kB blocks, and also just for extra padding to ensure that large allocations are indeed rare.

It turns out that the bump to 64kB substantially increases our memory
high water mark on JetStream, leading to jetsam crashes. Also, there
doesn't seem to be a practical performance problem to putting objects in
the (32kB - 64kB) range in the large allocator.

3:19 PM Changeset in webkit [201049] by keith_miller@apple.com
  • 40 edits
    5 deletes in trunk

Rollout r200426 since it causes PLT regressions.
https://bugs.webkit.org/show_bug.cgi?id=157812

Unreviewed rollout of r200426 since the bots see a ~.6% PLT regression from the patch.

3:04 PM Changeset in webkit [201048] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: inspector tests should redirect and log console.trace() calls in test output
https://bugs.webkit.org/show_bug.cgi?id=157802
<rdar://problem/26325671>

Reviewed by Timothy Hatcher.

  • UserInterface/Test/FrontendTestHarness.js:

(FrontendTestHarness.prototype.redirectConsoleToTestOutput.createProxyConsoleHandler):
Remove bind() that is now unnecessary. Also redirect console.warn.

(FrontendTestHarness.prototype.redirectConsoleToTestOutput):
For console.trace(), throw and catch a dummy Error to get a stack trace.
Do some post processing on it to remove useless frames and sanitize file paths.

2:38 PM Changeset in webkit [201047] by BJ Burg
  • 5 edits
    3 adds in trunk

Web Inspector: Filtering huge data grids should yield occasionally so the UI remains responsive
https://bugs.webkit.org/show_bug.cgi?id=157702
<rdar://problem/26282898>

Based on a patch by Matt Baker <Matt Baker> on 2016-05-16
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

This patch adds a new class, YieldableTask, for processing large
data sets without starving the runloop. A yieldable task takes a delegate,
an iterator that produces the items to be processed by the delegate, and
the "work interval" time slice and "idle interval" to wait between time slices.
It works by using yield to suspend processing when the current time
slice is exceeded, and setting a timeout to wait out the idle interval.

The iterator is responsible for deciding a good traversal order for items,
and the delegate is responsible for processing each item in turn. Tasks
cannot be reused once cancelled or processing completes.

Change DataGrid to use a yieldable task for filtering data grid nodes.
When the filtering criteria changes, cancel the task and run a new task.

  • UserInterface/Base/YieldableTask.js: Added.

(WebInspector.YieldableTask.prototype.get processing):
(WebInspector.YieldableTask.prototype.get cancelled):
(WebInspector.YieldableTask.prototype.get idleInterval):
(WebInspector.YieldableTask.prototype.get workInterval):
Add getters.

(WebInspector.YieldableTask.prototype.start.createIteratorForProcessingItems):
(WebInspector.YieldableTask.prototype.start):
Set up an iterator that cranks through items to be processed until the
time slice is exceeded. Check to see if the task is cancelled before and
after calling out to the delegate to perform processing on the item.

(WebInspector.YieldableTask.prototype.cancel):
Set the cancel flag. Tell the delegate the task is finished soon.

(WebInspector.YieldableTask.prototype._processPendingItems):
Request the next item from the cranking iterator so it tries to process
more items. If it yields but still has more items to process, set a timeout
and continue processing more items after the idle interval.

(WebInspector.YieldableTask.prototype._willYield): Notify the delegate.
(WebInspector.YieldableTask.prototype._didFinish): Clear state and notify.
(WebInspector.YieldableTask):

  • UserInterface/Main.html:
  • UserInterface/Test.html: Add new file.
  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype.filterDidChange):
Cancel the currently running filter task, if any exists.

(WebInspector.DataGrid.prototype._updateFilter.createIteratorForNodesToBeFiltered):
(WebInspector.DataGrid.prototype._updateFilter):
Set up and start a new filtering task when the filter updates.

(WebInspector.DataGrid.prototype.yieldableTaskWillProcessItem):
(WebInspector.DataGrid.prototype.yieldableTaskDidYield):
(WebInspector.DataGrid.prototype.yieldableTaskDidFinish):
Batch up notifications about filtered nodes changing since this can
cause a lot of unnecessary work by event listeners.

LayoutTests:

Add tests for new Inspector utility class YieldableTask.

  • inspector/unit-tests/yieldable-task-expected.txt: Added.
  • inspector/unit-tests/yieldable-task.html: Added.
2:35 PM Changeset in webkit [201046] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200631.

2:35 PM Changeset in webkit [201045] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200628.

2:35 PM Changeset in webkit [201044] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit/mac

Merge r200800.

2:28 PM Changeset in webkit [201043] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

BitmapImage::destroyDecodedDataIfNecessary() should only count frames with image data
https://bugs.webkit.org/show_bug.cgi?id=157779

Reviewed by Tim Horton.

BitmapImage::destroyDecodedDataIfNecessary() throws away all frames of an image if the
decoded frame size exceeds a threshold. However, it counts all frames, whether or not
they have an image (some frames may only have metadata, but m_frameBytes still returns
height*width*4).

Fix by only count m_frameBytes for frames that have an image.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::destroyDecodedDataIfNecessary):

  • platform/graphics/BitmapImage.h:

(WebCore::FrameData::FrameData):
(WebCore::FrameData::usedFrameBytes):

2:24 PM Changeset in webkit [201042] by dino@apple.com
  • 2 edits in trunk/Source/WebKit2

Temporarily enable Experimental Features
https://bugs.webkit.org/show_bug.cgi?id=157810
<rdar://problem/26330804>

Reviewed by Anders Carlsson.

We currently don't have good UI for enabling these features,
which would mean Safari Technology Preview users would
never be able to turn them on… unless we enable them by
default temporarily.

  • Shared/WebPreferencesDefinitions.h:
2:17 PM Changeset in webkit [201041] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Add a subtitle under platform name in the summary page
https://bugs.webkit.org/show_bug.cgi?id=157809

Reviewed by Chris Dumez.

Add a description beneath the platform names.

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

(SummaryPage.prototype._constructTable): Add a br and a span if subtitle is present.
(SummaryPage.cssTemplate): Added CSS rules for .subtitle.

2:02 PM Changeset in webkit [201040] by hyatt@apple.com
  • 23 edits in trunk/Source/WebCore

Optimize layer repaint rect computation and painting.
https://bugs.webkit.org/show_bug.cgi?id=157631

Reviewed by Zalan Bujtas.

This patch changes the computation of repaint rects to be for self-painting layers
only. In addition, hasBoxDecorations() has been changed to hasVisibleBoxDecorations(),
and it will no longer be set for transparent borders.

For scrolling layer position updating, visually empty layers have their repaint rects
cleared, and we don't compute repaint rects during the scroll. We would like to do this
all the time, but computeRepaintRects can be called at times when the visually empty
state is stale/unknown. For now we limit it to scrolling, since we know that the layer's
visually empty state is correct.

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paintBoxDecorations):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::layoutRunsAndFloats):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateFromStyle):
(WebCore::RenderBox::paintBoxDecorations):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::willBeDestroyed):
(WebCore::RenderBoxModelObject::hasVisibleBoxDecorationStyle):
(WebCore::RenderBoxModelObject::updateFromStyle):
(WebCore::RenderBoxModelObject::hasBoxDecorationStyle): Deleted.

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

(WebCore::RenderElement::styleWillChange):
(WebCore::mustRepaintBackgroundOrBorder):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::imageChanged):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleDidChange):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::repaintRectIncludingNonCompositingDescendants):
(WebCore::RenderLayer::computeRepaintRects):
(WebCore::RenderLayer::clearRepaintRects):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::calculateClipRects):

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

(WebCore::RenderLayerBacking::updateDrawsContent):
(WebCore::RenderLayerBacking::compositingOpacity):
(WebCore::hasVisibleBoxDecorations):
(WebCore::canCreateTiledImage):
(WebCore::hasVisibleBoxDecorationsOrBackgroundImage):
(WebCore::supportsDirectBoxDecorationsComposition):
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
(WebCore::RenderLayerBacking::containsPaintedContent):
(WebCore::RenderLayerBacking::isDirectlyCompositedImage):
(WebCore::hasBoxDecorations): Deleted.
(WebCore::hasBoxDecorationsOrBackgroundImage): Deleted.

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleDidChange):

  • rendering/RenderNamedFlowFragment.cpp:

(WebCore::RenderNamedFlowFragment::setObjectStyleInRegion):

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasVisibleBoxDecorations):
(WebCore::RenderObject::setFloating):
(WebCore::RenderObject::setInline):
(WebCore::RenderObject::computeBackgroundIsKnownToBeObscured):
(WebCore::RenderObject::setSelectionStateIfNeeded):
(WebCore::RenderObject::setHasVisibleBoxDecorations):
(WebCore::RenderObject::invalidateBackgroundObscurationStatus):
(WebCore::RenderObject::hasBoxDecorations): Deleted.
(WebCore::RenderObject::setHasBoxDecorations): Deleted.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::paintObject):
(WebCore::RenderTable::paintBoxDecorations):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::styleDidChange):

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paint):

  • rendering/style/BorderData.h:

(WebCore::BorderData::hasBorder):
(WebCore::BorderData::hasVisibleBorder):
(WebCore::BorderData::hasFill):
(WebCore::BorderData::hasBorderRadius):

  • rendering/style/RenderStyle.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):
(WebCore::RenderSVGRoot::styleDidChange):

1:38 PM Changeset in webkit [201039] by keith_miller@apple.com
  • 4 edits
    1 add in trunk

Add test262 harness support code
https://bugs.webkit.org/show_bug.cgi?id=157797

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch adds some new tooling needed to run Test262 with the jsc
CLI. There were three options that needed to be added for Test262:

1) "--test262-async" This option overrides the print function in the test runner to look for
'Test262:AsyncTestComplete' instead of printing the passed text. If test262-async mode is on
and that string is not passed then the test is marked as failing.

2) "--strict-file=<file>" This option appends "use strict";\n to the beginning of the
passed file before passing the source code to the VM. This option can, in theory, be passed
multiple times.

3) "--exception=<name>" This option asserts that at the end of the last script file passed
the VM has an uncaught exception with its name property equal to the passed name.

  • jsc.cpp:

(Script::Script):
(fillBufferWithContentsOfFile):
(functionPrint):
(checkUncaughtException):
(runWithScripts):
(printUsageStatement):
(CommandLine::parseArguments):
(runJSC):

Tools:

The import-test262-tests script is used to generate the yaml file used to run test262. It
takes a path to the local copy of the Test262 repository as well as an optional path to file
containing a list of failures. This script currently just creates the yaml file used to run
the script. It does not relocate the test files into our tests directory. In the future I
plan to add that feature but it didn't seem essential for the first iteration. Since many
test262 tests need to be run in both strict and non-strict mode, import-test262-tests
creates two separate runs for those tests. This enables us to distinguish between failures
in only one of the two modes.

This patch also updates the run-jsc-stress-tests Script to run tests from Test262. In order
to do so two new run commands were needed runTest262 and prepareTest262Fixture. runTest262
takes an actual test file along with the metadata associated with it. prepareTest262Fixture
takes a fixture file (used by module tests for importing) and makes sure that file is
properly relocated to the test runner directory.

The proccess I used to import the tests was to first run import-test262-tests to create a
yaml for all the tests (import-test262-tests assumes all tests pass if to failures file is
passed). Then I ran the generated yaml file with "run-jsc-stress-tests -v -c 1" piping the
output to a file and collected all the lines with "FAIL" in it. Finally, I reran
import-test262-tests with the new failure file to create the final yaml.

  • Scripts/import-test262-tests: Added.
  • Scripts/run-jsc-stress-tests:
12:38 PM Changeset in webkit [201038] by fpizlo@apple.com
  • 64 edits
    1 copy
    6 moves
    1 add in trunk/Source

WTF should know about Language
https://bugs.webkit.org/show_bug.cgi?id=157756

Source/JavaScriptCore:

Reviewed by Geoffrey Garen.

Teach our scripts that a ObjC class beginning with WTF is totally cool.

Source/WebCore:

Reviewed by Geoffrey Garen.

No new tests because this does not change behavior.

This change is all about moving some language functionality to WTF. Quoting the WTF
ChangeLog, this contains two changes:

  • Move everything that WebCore's logic for getting the platform user preferred language depended on into WTF. This means CFBundleSPI.h and BlockObjCExceptions.h|cpp.
  • Move WebCore::platformUserPreferredLanguages() to WTF::platformUserPreferredLanguages(). This is needed by https://bugs.webkit.org/show_bug.cgi?id=157755, which will make JSC use this to detect the platform user preferred language when running standalone.

The changes in WebCore are mostly about rewiring #includes and #imports and removing the
code that we moved to WTF. But there is one logic change: previously,
platformUserPreferredLanguages() would call WebCore::languageDidChange(). It can't do that
directly anymore, but WTF gives WebCore some API for registering the callback. So in
Language.cpp we now register languageDidChange anytime we do something that would
necessitate it, like calling platformUserPreferredLanguages(). This also registers the
callback inside addLanguageChangeObserver(), since it's possible for that to be called
after JSC had called platformUserPreferredLanguages() but before WebCore does so.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWin.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMCustomXPathNSResolver.mm:
  • editing/ios/EditorIOS.mm:
  • editing/mac/DictionaryLookup.mm:
  • editing/mac/EditorMac.mm:
  • page/CaptionUserPreferencesMediaAF.cpp:
  • page/ios/EventHandlerIOS.mm:
  • page/ios/FrameIOS.mm:
  • page/mac/ChromeMac.mm:
  • page/mac/EventHandlerMac.mm:
  • platform/Language.cpp:

(WebCore::registerLanguageDidChangeCallbackIfNecessary):
(WebCore::observerMap):
(WebCore::addLanguageChangeObserver):
(WebCore::overrideUserPreferredLanguages):
(WebCore::userPreferredLanguages):

  • platform/Language.h:
  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:
  • platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
  • platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
  • platform/graphics/cocoa/FontCocoa.mm:
  • platform/graphics/mac/ColorMac.mm:
  • platform/graphics/mac/GraphicsContext3DMac.mm:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
  • platform/ios/PlatformSpeechSynthesizerIOS.mm:
  • platform/ios/ScrollViewIOS.mm:
  • platform/ios/WidgetIOS.mm:
  • platform/mac/BlockExceptions.h: Removed.
  • platform/mac/BlockExceptions.mm: Removed.
  • platform/mac/CursorMac.mm:
  • platform/mac/Language.mm: Removed.
  • platform/mac/ScrollAnimatorMac.mm:
  • platform/mac/ScrollViewMac.mm:
  • platform/mac/ScrollbarThemeMac.mm:
  • platform/mac/ThemeMac.mm:
  • platform/mac/WidgetMac.mm:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:
  • platform/network/mac/CookieJarMac.mm:
  • platform/network/mac/ResourceErrorMac.mm:
  • platform/network/mac/ResourceHandleMac.mm:
  • platform/spi/cf/CFBundleSPI.h: Removed.
  • platform/unix/LanguageUnix.cpp: Removed.
  • platform/win/LanguageWin.cpp: Removed.

Source/WebKit/mac:

Reviewed by Geoffrey Garen.

Rewires a bunch of includes/imports.

  • WebCoreSupport/PopupMenuMac.mm:
  • WebCoreSupport/WebChromeClient.mm:
  • WebCoreSupport/WebFrameLoaderClient.mm:
  • WebCoreSupport/WebGeolocationClient.mm:
  • WebCoreSupport/WebNotificationClient.mm:
  • WebCoreSupport/WebPlatformStrategies.mm:
  • WebCoreSupport/WebUserMediaClient.mm:
  • WebCoreSupport/WebVisitedLinkStore.mm:
  • WebView/WebHTMLView.mm:

Source/WebKit2:

Reviewed by Geoffrey Garen and Alexey Proskuryakov.

Rewires a bunch of includes/imports.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:
  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:

Source/WTF:

Reviewed by Geoffrey Garen.

This contains two changes:

  • Move everything that WebCore's logic for getting the platform user preferred language depended on into WTF. This means CFBundleSPI.h and BlockObjCExceptions.h|cpp.
  • Move WebCore::platformUserPreferredLanguages() to WTF::platformUserPreferredLanguages(). This is needed by https://bugs.webkit.org/show_bug.cgi?id=157755, which will make JSC use this to detect the platform user preferred language when running standalone.

Moving the dependencies accounts for a huge chunk of this change, since we have to rewire
all of the references to those headers in all of WebKit.

Moving platformUserPreferredLanguages() is mostly easy except for the weird callback.
That function would call languageDidChange(), which needs to stay in WebCore. So, this
gives WebCore the ability to register a languageDidChange callback. Other than this new
logic, the code being added to WTF is just being lifted out of WebCore.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/BlockObjCExceptions.h: Added.
  • wtf/BlockObjCExceptions.mm: Added.

(ReportBlockedObjCException):

  • wtf/PlatformEfl.cmake:
  • wtf/PlatformGTK.cmake:
  • wtf/PlatformJSCOnly.cmake:
  • wtf/PlatformMac.cmake:
  • wtf/PlatformUserPreferredLanguages.h: Added.
  • wtf/PlatformUserPreferredLanguagesMac.mm: Added.

(WTF::setPlatformUserPreferredLanguagesChangedCallback):
(WTF::preferredLanguages):
(+[WTFLanguageChangeObserver languagePreferencesDidChange:]):
(WTF::httpStyleLanguageCode):
(WTF::isValidICUCountryCode):
(WTF::platformUserPreferredLanguages):

  • wtf/PlatformUserPreferredLanguagesUnix.cpp: Added.

(WTF::setPlatformUserPreferredLanguagesChangedCallback):
(WTF::platformLanguage):
(WTF::platformUserPreferredLanguages):

  • wtf/PlatformUserPreferredLanguagesWin.cpp: Added.

(WTF::setPlatformUserPreferredLanguagesChangedCallback):
(WTF::localeInfo):
(WTF::platformLanguage):
(WTF::platformUserPreferredLanguages):

  • wtf/PlatformWin.cmake:
  • wtf/spi/cf: Added.
  • wtf/spi/cf/CFBundleSPI.h: Added.
12:12 PM Changeset in webkit [201037] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200975. rdar://problem/24529203

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

Tidy unused parameters with build flags in isValidKeywordPropertyAndValue
https://bugs.webkit.org/show_bug.cgi?id=157780
<rdar://problem/26327312>

Reviewed by Alex Christensen.

CSS_COMPOSITING and CSS_REGIONS aren't runtime flags any more, so
don't need a parser context. Meanwhile CSS_GRID_LAYOUT does, even
though it wasn't in the condition for the UNUSED_PARAM.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

11:57 AM WebInspectorDebugging edited by BJ Burg
How to disable combining test resources. (diff)
11:49 AM Changeset in webkit [201035] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200974. rdar://problem/26304845

11:49 AM Changeset in webkit [201034] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200976. rdar://problem/26231897

11:49 AM Changeset in webkit [201033] by bshafiei@apple.com
  • 10 edits
    1 move
    3 adds in branches/safari-602.1.32-branch

Merge r200939. rdar://problem/26180740

11:49 AM Changeset in webkit [201032] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200918. rdar://problem/26230168

11:49 AM Changeset in webkit [201031] by bshafiei@apple.com
  • 8 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200908. rdar://problem/26273173

11:49 AM Changeset in webkit [201030] by bshafiei@apple.com
  • 13 edits in branches/safari-602.1.32-branch

Merge r200876. rdar://problem/26180300

11:49 AM Changeset in webkit [201029] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200891. rdar://problem/26269611

11:49 AM Changeset in webkit [201028] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200877. rdar://problem/26269611

11:49 AM Changeset in webkit [201027] by bshafiei@apple.com
  • 9 edits in branches/safari-602.1.32-branch/Source

Merge r200874. rdar://problem/26269611

11:48 AM Changeset in webkit [201026] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Tools

Merge r200670.

11:48 AM Changeset in webkit [201025] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Tools

Merge r200669.

11:48 AM Changeset in webkit [201024] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.32-branch/Source/WebKit2

Merge r200668.

11:31 AM Changeset in webkit [201023] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r177786): GlyphMetricsMap<T>::locatePageSlowCase() fills existing pages with unknown metrics
https://bugs.webkit.org/show_bug.cgi?id=157749

Reviewed by Antti Koivisto.

After r177786, GlyphMetricsMap<T>::locatePageSlowCase() would unconditionally fill
pages with unknown metrics. This patch updates the code to do so only if the page
is new, thus restoring the pre-r177786 behavior.

  • platform/graphics/GlyphMetricsMap.h:

(WebCore::GlyphMetricsMap::metricsForGlyph):
(WebCore::GlyphMetricsMap::setMetricsForGlyph):
(WebCore::GlyphMetricsMap::GlyphMetricsPage::GlyphMetricsPage):
(WebCore::GlyphMetricsMap::GlyphMetricsPage::fill):
(WebCore::GlyphMetricsMap::locatePage):
(WebCore::GlyphMetricsMap<T>::locatePageSlowCase):
(WebCore::GlyphMetricsMap::GlyphMetricsPage::metricsForGlyph): Deleted.
(WebCore::GlyphMetricsMap::GlyphMetricsPage::setMetricsForGlyph): Deleted.
(WebCore::GlyphMetricsMap::GlyphMetricsPage::setMetricsForIndex): Deleted.
(WebCore::GlyphMetricsMap<float>::unknownMetrics): Deleted.
(WebCore::GlyphMetricsMap<FloatRect>::unknownMetrics): Deleted.

11:20 AM Changeset in webkit [201022] by Joseph Pecoraro
  • 5 edits in trunk

console namespace breaks putting properties on console.proto
https://bugs.webkit.org/show_bug.cgi?id=157782
<rdar://problem/26250526>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Some websites currently depend on console.proto existing and being
a separate object from Object.prototype. This patch adds back a basic
console.proto object, but all the console functions are left on
the ConsoleObject itself.

  • runtime/JSGlobalObject.cpp:

(JSC::createConsoleProperty):

LayoutTests:

  • js/console-expected.txt:
  • js/console.html:
11:00 AM WebInspectorDebugging edited by BJ Burg
(diff)
10:58 AM Changeset in webkit [201021] by bshafiei@apple.com
  • 17 edits in branches/safari-602.1.32-branch/Source

Merge r200819. rdar://problem/26235373

10:49 AM WebInspectorDebugging edited by BJ Burg
Instructions about debug logging for WKTR (diff)
10:36 AM Changeset in webkit [201020] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

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

Rebaselining the test was not the right solution. (Requested
by ryanhaddad on #webkit).

Reverted changeset:

"Rebaseline inspector/debugger/tail-recursion.html"
http://trac.webkit.org/changeset/201017

Patch by Commit Queue <commit-queue@webkit.org> on 2016-05-17

10:33 AM Changeset in webkit [201019] by BJ Burg
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: breakpoints in sourceURL named scripts are not persisted
https://bugs.webkit.org/show_bug.cgi?id=157714
<rdar://problem/26287099>

Reviewed by Joseph Pecoraro.

The Inspector frontend doesn't try to persist a breakpoint that
lacks a URL, even if the breakpoint has a sourceURL. Similarly, for
breakpoints without a URL, the frontend asks the backend to create
the breakpoint for a specific script identifier rather than a
URL-based breakpoint. This prevents breakpoints in injected scripts
from being resolved if the page is reloaded.

The Inspector backend knows how to resolve URL-based breakpoints
by matching against the script's URL or sourceURL, so we just need
to teach the frontend when either is appropriate to use.

This patch adds SourceCode.contentIdentifier, which is roughly
url || sourceURL for content that is not emphemeral, such as
console evaluations. Change breakpoint and debugger code to use
contentIdentifier rather than url, and pass contentIdentifier
to the backend when setting a breakpoint by URL.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.breakpointsForSourceCode):
(WebInspector.DebuggerManager.prototype.scriptsForURL):
(WebInspector.DebuggerManager.prototype.get searchableScripts):
(WebInspector.DebuggerManager.prototype.removeBreakpoint):
(WebInspector.DebuggerManager.prototype.reset):
(WebInspector.DebuggerManager.prototype.scriptDidParse):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
(WebInspector.DebuggerManager.prototype._saveBreakpoints):
(WebInspector.DebuggerManager.prototype._associateBreakpointsWithSourceCode):

  • UserInterface/Models/Breakpoint.js:

(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get contentIdentifier):
(WebInspector.Breakpoint.prototype.get info):
(WebInspector.Breakpoint.prototype.saveIdentityToCookie):
(WebInspector.Breakpoint.prototype.get url): Deleted.
Replace uses of Breakpoint.prototype.get url with
contentIdentifier inside the class and at all callsites.

  • UserInterface/Models/Script.js:

(WebInspector.Script.prototype.get contentIdentifier):
Added. Use the URL, or the sourceURL unless the script is
ephemeral and only run once, like as a console evaluation.

  • UserInterface/Models/SourceCode.js:

(WebInspector.SourceCode.prototype.get url): Added.
All subclasses already override this getter. Add it here so that
the default implementation of contentIdentifier can use it.

(WebInspector.SourceCode.prototype.get contentIdentifier): Added.

  • UserInterface/Views/BreakpointTreeElement.js:

(WebInspector.BreakpointTreeElement.prototype.get filterableData):

  • UserInterface/Views/ProbeSetDetailsSection.js:

(WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._matchesBreakpoint):

  • UserInterface/Views/TextResourceContentView.js:

(WebInspector.TextResourceContentView.prototype.get supplementalRepresentedObjects):

10:07 AM Changeset in webkit [201018] by Csaba Osztrogonác
  • 5 edits in trunk/Source/WebCore

Fix the !ENABLE(WEB_TIMING) build after r200887
https://bugs.webkit.org/show_bug.cgi?id=157796

Reviewed by Chris Dumez.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/DocumentThreadableLoader.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::loadResource):

  • loader/cache/CachedResourceLoader.h:
10:03 AM Changeset in webkit [201017] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline inspector/debugger/tail-recursion.html

Unreviewed test gardening.

  • inspector/debugger/tail-recursion-expected.txt:
9:40 AM Changeset in webkit [201016] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed GTK+ and EFL bulid fix; make the audio playback user gesture requirement
Cocoa-only.

  • Shared/WebPreferencesDefinitions.h:
9:21 AM Changeset in webkit [201015] by mmaxfield@apple.com
  • 3 edits
    3 adds in trunk

REGRESSION(r54729): Line breaking in complex mixed-direction text is inconsistent across page refreshes
https://bugs.webkit.org/show_bug.cgi?id=157783
<rdar://problem/22908924>

Reviewed by Zalan Bujtas.

Source/WebCore:

mappedIndices is uninitialized.

Test: fast/text/complex-mixed-direction-line-breaking.html

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::ComplexTextRun::setIsNonMonotonic):

LayoutTests:

  • fast/text/complex-mixed-direction-line-breaking-expected.html: Added.
  • fast/text/complex-mixed-direction-line-breaking.html: Added.
  • fast/text/resources/Gulf-regular.ttf: Added.
6:43 AM Changeset in webkit [201014] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, dump more information when math-pow-stable-results.js failed
https://bugs.webkit.org/show_bug.cgi?id=157168

  • tests/stress/math-pow-stable-results.js:
4:54 AM WebKitGTK/2.12.x edited by berto@igalia.com
(diff)
3:20 AM Changeset in webkit [201013] by youenn.fablet@crf.canon.fr
  • 21 edits in trunk/Source

DOMPromise should only restrict the resolution type
https://bugs.webkit.org/show_bug.cgi?id=157307

Reviewed by Darin Adler.

Source/WebCore:

Removing from DOMPromise the rejection template parameter.
Supported rejection types are integers (Exception codes) and DOM objects (DOMError typically).

Updated DeferredWrapper to accept Ref<>&& and RefPtr<>&&.
Relanding without touching JSDOMBinding.h as this seemed to be impacting performances.

Changes also allow in most cases to remove the need for explictly declaring the
rejection/resolution type.

Minor refactoring of FontFaceSet promise handling to use DOMPromise in lieu of DeferredWrapper.

Covered by existing tests.
Changes should not be visible from user scripts.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::consume):
(WebCore::FetchBody::consumeText):
(WebCore::blobFromArrayBuffer):
(WebCore::FetchBody::loadingFailed):

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::formData):

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::arrayBuffer):
(WebCore::FetchBodyOwner::blob):
(WebCore::FetchBodyOwner::formData):
(WebCore::FetchBodyOwner::json):
(WebCore::FetchBodyOwner::text):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didReceiveResponse):

  • Modules/fetch/FetchResponse.h:
  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::didCreateStream):

  • Modules/streams/ReadableStreamSource.h:
  • Modules/webaudio/AudioContext.h:
  • bindings/js/JSDOMPromise.cpp:

(WebCore::fulfillPromiseWithJSON):

  • bindings/js/JSDOMPromise.h:

(WebCore::TypeInspector::decltype):
(WebCore::TypeInspector::testIsVector):
(WebCore::TypeInspector::testIsRefOrRefPtr):
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DOMPromise::resolve):
(WebCore::DOMPromise::reject):
(WebCore::DeferredWrapper::resolveWithValue):
(WebCore::DeferredWrapper::rejectWithValue):
(WebCore::callPromiseFunction):

  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::unwrapKey):

  • css/FontFace.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::PendingPromise::PendingPromise):
(WebCore::FontFaceSet::load):
(WebCore::FontFaceSet::registerReady):

  • css/FontFaceSet.h:
  • html/HTMLMediaElement.h:

Source/WTF:

  • wtf/Ref.h: Adding static constexpr to ease detection of Ref for templates.
  • wtf/RefPtr.h: Ditto.
1:47 AM Changeset in webkit [201012] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200872. rdar://problem/25993225

1:47 AM Changeset in webkit [201011] by bshafiei@apple.com
  • 15 edits
    1 add
    1 delete in branches/safari-602.1.32-branch/Source

Merge r200866. rdar://problem/26253396

1:47 AM Changeset in webkit [201010] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200793. rdar://problem/26251756

1:47 AM Changeset in webkit [201009] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200792. rdar://problem/26253394

1:47 AM Changeset in webkit [201008] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.32-branch/Source/WebCore

Merge r200788. rdar://problem/26143008

1:47 AM Changeset in webkit [201007] by bshafiei@apple.com
  • 7 edits in branches/safari-602.1.32-branch/Source/WebInspectorUI

Merge r200708. rdar://problem/26228913

1:47 AM Changeset in webkit [201006] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200688. rdar://problem/26013966

1:47 AM Changeset in webkit [201005] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200803. rdar://problem/17779042

1:47 AM Changeset in webkit [201004] by bshafiei@apple.com
  • 3 edits in branches/safari-602.1.32-branch/LayoutTests

Merge r200674. rdar://problem/17779042

1:46 AM Changeset in webkit [201003] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/LayoutTests

Merge r200646. rdar://problem/17779042

1:46 AM Changeset in webkit [201002] by bshafiei@apple.com
  • 8 edits
    6 adds in branches/safari-602.1.32-branch

Merge r200601. rdar://problem/17779042

1:46 AM Changeset in webkit [201001] by bshafiei@apple.com
  • 5 edits
    2 adds in branches/safari-602.1.32-branch

Merge r200778. rdar://problem/25840861

May 16, 2016:

11:36 PM Changeset in webkit [201000] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Modernize CSS Parser
https://bugs.webkit.org/show_bug.cgi?id=157772

Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-16
Reviewed by Brady Eidson.

No new tests. This patch just replaces PassRefPtr with RefPtr&&.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseDeclaration):
(WebCore::CSSParser::SourceSize::SourceSize):
(WebCore::CSSParser::createStyleProperties):
(WebCore::CSSParser::addProperty):
(WebCore::CSSParser::parseValidPrimitive):
(WebCore::CSSParser::addExpandedPropertyForValue):
(WebCore::CSSParser::parseVariableDependentValue):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseColumnsShorthand):
(WebCore::CSSParser::parseGridItemPositionShorthand):
(WebCore::CSSParser::parseGridAreaShorthand):
(WebCore::CSSParser::parseInsetRoundedCorners):
(WebCore::CSSParser::parseBasicShapeInset):
(WebCore::ShadowParseContext::commitLength):
(WebCore::ShadowParseContext::commitColor):
(WebCore::BorderImageParseContext::requireWidth):
(WebCore::BorderImageParseContext::requireOutset):
(WebCore::BorderImageParseContext::commitImage):
(WebCore::BorderImageParseContext::commitImageSlice):
(WebCore::BorderImageParseContext::commitForwardSlashOperator):
(WebCore::BorderImageParseContext::commitBorderWidth):
(WebCore::BorderImageParseContext::commitBorderOutset):
(WebCore::BorderImageParseContext::commitRepeat):
(WebCore::BorderImageParseContext::commitWebKitBorderImage):
(WebCore::BorderImageParseContext::commitBorderImage):
(WebCore::BorderImageParseContext::commitBorderImageProperty):
(WebCore::BorderImageSliceParseContext::commitFill):
(WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
(WebCore::BorderImageQuadParseContext::commitNumber):
(WebCore::BorderImageQuadParseContext::setAllowFinalCommit):
(WebCore::BorderImageQuadParseContext::setTop):
(WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
(WebCore::CSSParser::parseCounter):
(WebCore::parseDeprecatedGradientPoint):
(WebCore::CSSParser::parseDeprecatedGradient):
(WebCore::valueFromSideKeyword):
(WebCore::parseGradientColorOrKeyword):
(WebCore::CSSParser::parsePerspectiveOrigin):
(WebCore::CSSParser::addTextDecorationProperty):
(WebCore::CSSParser::parseTextDecoration):
(WebCore::CSSParser::realLex):
(WebCore::CSSParser::createImportRule):
(WebCore::CSSParser::createMediaRule):
(WebCore::CSSParser::processAndAddNewRuleToSourceTreeIfNeeded):
(WebCore::CSSParser::addNewRuleToSourceTree):

  • css/CSSParser.h:

(WebCore::CSSParser::hasProperties):
(WebCore::CSSParser::resetPropertyRange):
(WebCore::CSSParser::isExtractingSourceData):

10:37 PM Changeset in webkit [200999] by bshafiei@apple.com
  • 3 edits
    4 copies in branches/safari-601.1.46-branch

Merged r200986. rdar://problem/26300489

10:35 PM Changeset in webkit [200998] by bshafiei@apple.com
  • 3 edits
    4 copies in branches/safari-601-branch

Merged r200986. rdar://problem/26300514

10:31 PM Changeset in webkit [200997] by sbarati@apple.com
  • 4 edits
    3 adds in trunk

ShadowChicken crashes when reading a scope from the frame during a stack overflow exception
https://bugs.webkit.org/show_bug.cgi?id=157770

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

ShadowChicken was reading the scope from a half formed
frame as it threw a stack overflow exception. The frame had
a valid CodeBlock pointer, but it did not have a valid scope.
The code in ShadowChicken's throw packet logging mechanism didn't
account for this. The fix is to respect whether genericUnwind wants
to unwind from the current frame or the caller's frame. For stack
overflow errors, we always unwind the caller's frame.

  • jit/JITExceptions.cpp:

(JSC::genericUnwind):

LayoutTests:

  • inspector/debugger/debugger-stack-overflow-expected.txt: Added.
  • inspector/debugger/debugger-stack-overflow.html: Added.
  • inspector/debugger/resources/stack-overflow.js: Added.

(foo):
(start):

9:36 PM Changeset in webkit [200996] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

REGRESSION(r200208): It made 2 JSC stress tests fail on x86
https://bugs.webkit.org/show_bug.cgi?id=157168

Reviewed by Benjamin Poulain.

The fast path in operationMathPow produces different results between x87 and the other environments.
This is because x87 calculates the double value in 80bit precision.
The situation is the following: in x86 32bit environment, floating point operations are compiled to
x87 operations by default even if we can use SSE2. But in DFG environment, we aggressively use SSE2
if the cpuid reports SSE2 is available. As a result, the implementations differ between C runtime
and DFG JIT code. The C runtime uses x87 while DFG JIT code uses SSE2. This causes a precision
problem since x87 has 80bit precision while SSE2 has 64bit precision.

In this patch, in x86 32bit environment, we use volatile double if the -mfpmath=sse and -msse2 (or later)
is not specified. This will round the x87 value into 64bit per multiplying. Note that this problem does not
occur in OS X clang 32bit environment. This is because -mfpmath=sse is enabled by default in OS X clang 32bit.

  • b3/B3MathExtras.cpp:

(JSC::B3::powDoubleInt32):

  • runtime/MathCommon.cpp:

(JSC::operationMathPow):

9:11 PM Changeset in webkit [200995] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Uncaught Exception: TypeError: null is not an object (evaluating 'event.data.pathComponent.domTreeElement')
https://bugs.webkit.org/show_bug.cgi?id=157759
<rdar://problem/26309427>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-16
Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeContentView.js:

(WebInspector.DOMTreeContentView.prototype._pathComponentSelected):
Handle possible null path components.

  • UserInterface/Views/HierarchicalPathComponent.js:

(WebInspector.HierarchicalPathComponent.prototype.get selectedPathComponent):
When there is a list of just one that is triggered, the Clicked
event should produce that one, to be consistent with clicking
on a list of multiple elements and selecting the same value.

9:11 PM Changeset in webkit [200994] by Chris Dumez
  • 3 edits
    1 add in trunk/Source/WebCore

Add RenderDescendantIterator to traverse a RenderObject's descendants
https://bugs.webkit.org/show_bug.cgi?id=157785

Reviewed by Zalan Bujtas.

Add RenderDescendantIterator to traverse a RenderObject's descendants. I
am planning to use it in the iOS Text Autosizing code (See Bug 157784).

  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderDescendantIterator.h: Added.

(WebCore::RenderDescendantIterator<T>::RenderDescendantIterator):
(WebCore::RenderDescendantIterator<T>::operator):
(WebCore::RenderDescendantConstIterator<T>::RenderDescendantConstIterator):
(WebCore::RenderDescendantConstIterator<T>::operator):
(WebCore::RenderDescendantIteratorAdapter<T>::RenderDescendantIteratorAdapter):
(WebCore::RenderDescendantIteratorAdapter<T>::begin):
(WebCore::RenderDescendantIteratorAdapter<T>::end):
(WebCore::RenderDescendantConstIteratorAdapter<T>::RenderDescendantConstIteratorAdapter):
(WebCore::RenderDescendantConstIteratorAdapter<T>::begin):
(WebCore::RenderDescendantConstIteratorAdapter<T>::end):
(WebCore::descendantsOfType):

  • rendering/RenderIterator.h:

(WebCore::RenderObjectTraversal::firstChild):
(WebCore::RenderObjectTraversal::nextAncestorSibling):
(WebCore::RenderObjectTraversal::next):
(WebCore::RenderTraversal::firstChild):
(WebCore::RenderTraversal::lastChild):
(WebCore::RenderTraversal::nextSibling):
(WebCore::RenderTraversal::previousSibling):
(WebCore::RenderTraversal::findAncestorOfType):
(WebCore::RenderTraversal::firstWithin):
(WebCore::RenderTraversal::next):
(WebCore::RenderIterator<T>::traverseNext):
(WebCore::RenderConstIterator<T>::traverseNext):

9:02 PM Changeset in webkit [200993] by msaboff@apple.com
  • 3 edits in trunk/Source/WTF

ARMV7K: Crash at JavaScriptCore: WTF::ScopedLambdaFunctor<bool
https://bugs.webkit.org/show_bug.cgi?id=157781

Reviewed by Filip Pizlo.

Replaced use of ScopedLambda in locking code with std::function much as it was
before change set 199760 to work around what appears to be a clang compiler issue.

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionallyImpl):
(WTF::ParkingLot::unparkOne):
(WTF::ParkingLot::unparkAll):
(WTF::ParkingLot::forEach):
(WTF::ParkingLot::unparkOneImpl): Deleted.
(WTF::ParkingLot::forEachImpl): Deleted.

  • wtf/ParkingLot.h:

(WTF::ParkingLot::parkConditionally):
(WTF::ParkingLot::unparkOne): Deleted.
(WTF::ParkingLot::forEach): Deleted.

8:36 PM Changeset in webkit [200992] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] "return this" in a constructor does not need a branch on isObject(this)
https://bugs.webkit.org/show_bug.cgi?id=157775

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-16
Reviewed by Saam Barati and Ryosuke Niwa.

When returning "this" in a constructor, the bytecode generator was generating:

is_object locX, this
jtrue locX, 5(->second ret)
ret this
ret this

That code is eliminated in DFG but it is pretty costly lower tiers.

This patch changes bytecode generation to avoid the is_object test
when possible and not generate two ret if they encode the same thing.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitReturn):

8:31 PM Changeset in webkit [200991] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Remove the index check from op_get_by_val/op_put_by_val when the index is constant
https://bugs.webkit.org/show_bug.cgi?id=157766

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

If the index is an integer constant, do not generate the index check.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):

8:28 PM Changeset in webkit [200990] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC][DFG] Fill spilled Int32 as Int32 instead of JSInt32
https://bugs.webkit.org/show_bug.cgi?id=157700

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

In general, fillSpeculateInt32() originate from SpeculateInt32
and the user does not care about the tag.

This is particularily obvious on Sunspider's math-spectral-norm.js.
In that test, registers are frequently spilled because of x86's DIV.

When they are re-filled, they were always tagged.
Since the loops are small, all the tagging adds up.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):

7:34 PM Changeset in webkit [200989] by dino@apple.com
  • 11 edits in branches/safari-602.1.32-branch/Source

Disable some features on safari-602.1.32-branch.
<rdar://problem/26080754>

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:
6:30 PM Changeset in webkit [200988] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove YouTube site-specific hack
https://bugs.webkit.org/show_bug.cgi?id=157776

Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-16
Reviewed by Eric Carlson.

No new tests. Youtube fullscreen seems to work without
http://trac.webkit.org/changeset/173533 now.

  • dom/Document.cpp:

(WebCore::unwrapFullScreenRenderer):
(WebCore::Document::webkitWillEnterFullScreenForElement):
(WebCore::Document::webkitDidEnterFullScreenForElement):
(WebCore::Document::webkitWillExitFullScreenForElement):
(WebCore::Document::webkitDidExitFullScreenForElement):
(WebCore::Document::setFullScreenRenderer):
(WebCore::hostIsYouTube): Deleted.

6:17 PM Changeset in webkit [200987] by dino@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/WebCore

Merge r200985. <rdar://problem/26312967>

6:09 PM Changeset in webkit [200986] by Brent Fulgham
  • 3 edits
    4 adds in trunk

heap use-after-free at WebCore::TimerBase::heapPopMin()
https://bugs.webkit.org/show_bug.cgi?id=157742
<rdar://problem/26236778>

Source/WebCore:

Reviewed by David Kilzer.

Tested by fast/frames/resources/crash-during-iframe-load-stop.html.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopForUserCancel): Protect m_frame from destruction while it is still
being used by the current stack frame.
(WebCore::FrameLoader::frameDetached): Ditto.
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): Ditto.

LayoutTests:

Reviewed by Simon Fraser.

  • fast/frames/crash-during-iframe-load-stop-expected.txt: Added.
  • fast/frames/crash-during-iframe-load-stop.html: Added.
  • fast/frames/resources/crash-during-iframe-load-stop-inner.html: Added.
  • fast/frames/resources/crash-during-iframe-load-stop.html: Added.
6:05 PM Changeset in webkit [200985] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

WebCoreJSBuiltinInternals won't compile if some build flags are off
https://bugs.webkit.org/show_bug.cgi?id=157777
<rdar://problem/26312967>

Reviewed by Simon Fraser.

Allow this file to compile when some build flags are disabled.

  • bindings/js/WebCoreJSBuiltinInternals.cpp:

(WebCore::JSBuiltinInternalFunctions::JSBuiltinInternalFunctions):

5:29 PM Changeset in webkit [200984] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed Cloop build fix.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::bytecodeOffsetFromCallSiteIndex):

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

REGRESSION (200035): changes in "WebKit Malloc" VM regions are causing 'leaks' to spew "Failed to map remote region" messages
https://bugs.webkit.org/show_bug.cgi?id=157764

Reviewed by Gavin Barraclough.

We need to allow for guard pages and only report unguarded pages to the
leaks tool -- otherwise, it will try to remote map our guarded pages,
and crash.

  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::tryAllocateLargeChunk):
(bmalloc::VMHeap::allocateSmallChunk): Adopt the new API for reporting
a range instead of a Chunk*, and report the unguarded range.

This also fixes a separate bug -- very large allocations would not
fully participate in pointer scanning because they would only report 2MB
(chunkSize) in size. This could cause false-positive leak reports.

  • bmalloc/Zone.cpp:

(bmalloc::enumerator): Updated to scan ranges instead of fixed-sized
Chunk pointers.

  • bmalloc/Zone.h:

(bmalloc::Zone::ranges):
(bmalloc::Zone::addRange): Store ranges instead of fixed-sized Chunk
pointers because our VM ranges have variable sizes -- both due to guard
pages and due to large allocations.

(bmalloc::Zone::chunks): Deleted.
(bmalloc::Zone::addChunk): Deleted.

4:49 PM Changeset in webkit [200982] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Modern IDB: Give each UniqueIDBDatabase its own task queues.
https://bugs.webkit.org/show_bug.cgi?id=157757

Reviewed by Alex Christensen.

No new tests (Refactor, no behavior change).

Each UniqueIDBDatabase now maintains its own databaseTask and databaseTaskReply queues.

Instead of posting the specific task(reply) with the IDBServer, it merely posts a task(reply) that says
"Handle your next task(reply)".

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
(WebCore::IDBServer::UniqueIDBDatabase::deleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::openBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performCreateObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performClearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::createIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performCreateIndex):
(WebCore::IDBServer::UniqueIDBDatabase::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::getRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performGetRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performGetIndexRecord):
(WebCore::IDBServer::UniqueIDBDatabase::getCount):
(WebCore::IDBServer::UniqueIDBDatabase::performGetCount):
(WebCore::IDBServer::UniqueIDBDatabase::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteRecord):
(WebCore::IDBServer::UniqueIDBDatabase::openCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performOpenCursor):
(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performIterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::performCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::performAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::activateTransactionInBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::performActivateTransactionInBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTaskReply):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
4:31 PM Changeset in webkit [200981] by sbarati@apple.com
  • 53 edits
    12 adds in trunk

Hook up ShadowChicken to the debugger to show tail deleted frames
https://bugs.webkit.org/show_bug.cgi?id=156685
<rdar://problem/25770521>

Reviewed by Filip Pizlo and Mark Lam and Joseph Pecoraro.

Source/JavaScriptCore:

The heart of this patch hooks up ShadowChicken to DebuggerCallFrame to
allow the Web Inspector to display the ShadowChicken's shadow stack.
This means the Web Inspector can now display tail deleted frames.
To make this work, I made the necessary changes to ShadowChicken and
DebuggerCallFrame to allow DebuggerCallFrame to keep the same API
when representing both machine frames and tail deleted frames.

  • ShadowChicken prologue packets now log the current scope. Tail packets log the current scope, the 'this' value, the CodeBlock, and the CallSiteIndex. This allows the inspector to not only show the tail deleted frame, but also show exactly where the tail call happened (line and column numbers), with which scope it executed, and with which 'this' value. This patch also allows DebuggerCallFrame to execute console statements in a tail deleted frame.
  • I changed ShadowChicken's stack resizing algorithm. ShadowChicken now only keeps a maximum number of tail deleted frames in its shadow stack. It will happily represent all machine frames without limit. Right now, the maximum number of tail deleted frames I chose to keep alive is 128. We will keep frames alive starting from the top of the stack. This allows us to have a strong defense against runaway memory usage. We will only keep around at most 128 "shadow" frames that wouldn't have naturally been kept alive by the executing program. We can play around with this number if we find that 128 is either too many or too few frames.
  • DebuggerCallFrame is no longer a cheap class to create. When it is created, we will eagerly create the entire virtual debugger stack. So I modified the existing code to lazily create DebuggerCallFrames only when necessary. We used to eagerly create them at each op_debug statement even though we would just throw them away if we didn't hit a breakpoint.
  • A valid DebuggerCallFrame will always have a valid CallFrame* pointer into the stack. This pointer won't always refer to the logical frame that the DebuggerCallFrame represents because a DebuggerCallFrame can now represent a tail deleted frame. To do this, DebuggerCallFrame now has a ShadowChicken::Frame member variable. This allows DebuggerCallFrame to know when it represents a tail deleted frame and gives DebuggerCallFrame a mechanism to ask the tail deleted frame for interesting information (like its 'this' value, scope, CodeBlock, etc). A tail deleted frame's machine frame pointer will be the machine caller of the tail deleted frame (or the machine caller of the first of a series of consecutive tail calls).
  • I added a new flag to UnlinkedCodeBlock to indicate when it is compiled with debugging opcodes. I did this because ShadowChicken may read a JSScope from the machine stack. This is only safe if the machine CodeBlock was compiled with debugging opcodes. This is safer than asking if the CodeBlock's global object has an interactive debugger enabled because it's theoretically possible for the debugger to be enabled while code compiled without a debugger is still live on the stack. This field is also now used to indicate to the DFGGraph that the interactive debugger is enabled.
  • Finally, this patch adds a new field to the Inspector's CallFrame protocol object called 'isTailDeleted' to allow the Inspector to know when a CallFrame represents a tail deleted frame.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::findPC):
(JSC::CodeBlock::bytecodeOffsetFromCallSiteIndex):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::clearDebuggerRequests):
(JSC::CodeBlock::wasCompiledWithDebuggingOpcodes):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::wasCompiledWithDebuggingOpcodes):
(JSC::UnlinkedCodeBlock::finishCreation):
(JSC::UnlinkedGlobalCodeBlock::UnlinkedGlobalCodeBlock):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitEnter):
(JSC::BytecodeGenerator::emitLogShadowChickenPrologueIfNecessary):
(JSC::BytecodeGenerator::emitLogShadowChickenTailIfNecessary):
(JSC::BytecodeGenerator::emitCallDefineProperty):

  • debugger/Debugger.cpp:

(JSC::DebuggerPausedScope::DebuggerPausedScope):
(JSC::DebuggerPausedScope::~DebuggerPausedScope):
(JSC::Debugger::didReachBreakpoint):
(JSC::Debugger::currentDebuggerCallFrame):

  • debugger/Debugger.h:
  • debugger/DebuggerCallFrame.cpp:

(JSC::LineAndColumnFunctor::operator()):
(JSC::DebuggerCallFrame::create):
(JSC::DebuggerCallFrame::DebuggerCallFrame):
(JSC::DebuggerCallFrame::callerFrame):
(JSC::DebuggerCallFrame::globalExec):
(JSC::DebuggerCallFrame::vmEntryGlobalObject):
(JSC::DebuggerCallFrame::sourceID):
(JSC::DebuggerCallFrame::functionName):
(JSC::DebuggerCallFrame::scope):
(JSC::DebuggerCallFrame::type):
(JSC::DebuggerCallFrame::thisValue):
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
(JSC::DebuggerCallFrame::invalidate):
(JSC::DebuggerCallFrame::currentPosition):
(JSC::DebuggerCallFrame::positionForCallFrame):
(JSC::DebuggerCallFrame::sourceIDForCallFrame):
(JSC::FindCallerMidStackFunctor::FindCallerMidStackFunctor): Deleted.
(JSC::FindCallerMidStackFunctor::operator()): Deleted.
(JSC::FindCallerMidStackFunctor::getCallerFrame): Deleted.
(JSC::DebuggerCallFrame::thisValueForCallFrame): Deleted.

  • debugger/DebuggerCallFrame.h:

(JSC::DebuggerCallFrame::isValid):
(JSC::DebuggerCallFrame::isTailDeleted):
(JSC::DebuggerCallFrame::create): Deleted.
(JSC::DebuggerCallFrame::exec): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::~Graph):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::addCallSite):
(JSC::DFG::JITCompiler::emitStoreCodeOrigin):
(JSC::DFG::JITCompiler::emitStoreCallSiteIndex):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileLogShadowChickenPrologue):
(JSC::FTL::DFG::LowerDFGToB3::compileLogShadowChickenTail):
(JSC::FTL::DFG::LowerDFGToB3::compileRecordRegExpCachedResult):
(JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
(JSC::FTL::DFG::LowerDFGToB3::ensureShadowChickenPacket):
(JSC::FTL::DFG::LowerDFGToB3::setupShadowChickenPacket): Deleted.

  • inspector/InjectedScriptSource.js:

(InjectedScript.CallFrameProxy):

  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::thisObject):
(Inspector::JSJavaScriptCallFrame::isTailDeleted):
(Inspector::JSJavaScriptCallFrame::type):

  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFramePrototype.cpp:

(Inspector::JSJavaScriptCallFramePrototype::finishCreation):
(Inspector::jsJavaScriptCallFramePrototypeFunctionEvaluateWithScopeExtension):
(Inspector::jsJavaScriptCallFrameAttributeType):
(Inspector::jsJavaScriptCallFrameIsTailDeleted):

  • inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::type):
(Inspector::JavaScriptCallFrame::scopeChain):
(Inspector::JavaScriptCallFrame::vmEntryGlobalObject):
(Inspector::JavaScriptCallFrame::isTailDeleted):
(Inspector::JavaScriptCallFrame::thisValue):
(Inspector::JavaScriptCallFrame::evaluateWithScopeExtension):

  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::evaluateBreakpointAction):

  • inspector/protocol/Debugger.json:
  • interpreter/ShadowChicken.cpp:

(JSC::ShadowChicken::update):
(JSC::ShadowChicken::visitChildren):
(JSC::ShadowChicken::reset):

  • interpreter/ShadowChicken.h:

(JSC::ShadowChicken::Packet::throwMarker):
(JSC::ShadowChicken::Packet::prologue):
(JSC::ShadowChicken::Packet::tail):
(JSC::ShadowChicken::Frame::Frame):
(JSC::ShadowChicken::Frame::operator==):

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::logShadowChickenProloguePacket):
(JSC::CCallHelpers::logShadowChickenTailPacket):
(JSC::CCallHelpers::ensureShadowChickenPacket):
(JSC::CCallHelpers::setupShadowChickenPacket): Deleted.

  • jit/CCallHelpers.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_profile_type):
(JSC::JIT::emit_op_log_shadow_chicken_prologue):
(JSC::JIT::emit_op_log_shadow_chicken_tail):
(JSC::JIT::emit_op_get_enumerable_length):
(JSC::JIT::emit_op_resume):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_profile_type):
(JSC::JIT::emit_op_log_shadow_chicken_prologue):
(JSC::JIT::emit_op_log_shadow_chicken_tail):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::webAssemblyCalleeSaveRegisters):
(JSC::RegisterSet::argumentGPRS):
(JSC::RegisterSet::registersToNotSaveForJSCall):

  • jit/RegisterSet.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):

  • runtime/Options.h:
  • tests/stress/shadow-chicken-enabled.js:

(test5a.foo):
(test5a):
(test5b.foo):
(test5b):
(test6.foo):
(test6):

Source/WebCore:

Tests: inspector/debugger/tail-deleted-frames-this-value.html

inspector/debugger/tail-deleted-frames.html
inspector/debugger/tail-recursion.html

  • ForwardingHeaders/interpreter/ShadowChicken.h: Added.

Source/WebInspectorUI:

This patch makes the WebInspector display tail deleted frames.
We show tail deleted frames with a gray [f] instead of a green
[f]. We also put text in the tooltip to indicate that the frame
is tail deleted. Other than that, tail deleted frames behave like
normal frames. You can evaluate in them, inspect their scope, etc.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Images/TailDeletedFunction.svg: Added.
  • UserInterface/Images/gtk/TailDeletedFunction.svg: Added.
  • UserInterface/Models/CallFrame.js:
  • UserInterface/Views/CallFrameIcons.css:
  • UserInterface/Views/CallFrameTreeElement.js:
  • UserInterface/Views/CallFrameView.js:

LayoutTests:

  • inspector/debugger/resources/tail-deleted-frames-this-value.js: Added.

(a):
(b):

  • inspector/debugger/resources/tail-deleted-frames.js: Added.

(a):
(b):
(c):
(startABC):

  • inspector/debugger/resources/tail-recursion.js: Added.

(recurse):
(startRecurse):

  • inspector/debugger/tail-deleted-frames-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames-this-value-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames-this-value.html: Added.
  • inspector/debugger/tail-deleted-frames.html: Added.
  • inspector/debugger/tail-recursion-expected.txt: Added.
  • inspector/debugger/tail-recursion.html: Added.
4:27 PM Changeset in webkit [200980] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

TypeSet/StructureShape have a flawed sense of JS prototype chains
https://bugs.webkit.org/show_bug.cgi?id=157760

Reviewed by Joseph Pecoraro.

There was an assumption that we would bottom out in "Object". This is
not true for many reasons. JS objects may not end in Object.prototype.
Also, our mechanism of grabbing an Object's class name may also not
bottom out in "Object". We were seeing this in the JS objects we use
in the InjectedScriptSource.js inspector script.

  • runtime/TypeSet.cpp:

(JSC::StructureShape::leastCommonAncestor):

  • tests/typeProfiler/weird-prototype-chain.js: Added.

(wrapper.foo):
(wrapper.let.o2):
(wrapper):

4:21 PM Changeset in webkit [200979] by enrica@apple.com
  • 2 edits in trunk/Tools

build fix after r200968 and r200969

Unreviewed.

  • DumpRenderTree/mac/EventSendingController.mm:

(-[EventSendingController keyDown:withModifiers:withLocation:]):

4:19 PM Changeset in webkit [200978] by jer.noble@apple.com
  • 2 edits in trunk/Tools

API test WebKit2.MSEIsPlayingAudio timing out after r200951
https://bugs.webkit.org/show_bug.cgi?id=157748

Reviewed by Eric Carlson.

The file-with-mse.html testcase only calls play() once it's own XHR loading is complete; the
"user gesture" check fails at that point. Call play() up front; playback will begin as soon
as enough data is loaded.

  • TestWebKitAPI/Tests/WebKit2/file-with-mse.html:
4:11 PM Changeset in webkit [200977] by achristensen@apple.com
  • 10 edits in trunk/Source/WebCore

Don't include CSSParser.h from other headers
https://bugs.webkit.org/show_bug.cgi?id=157765

Reviewed by Zalan Bujtas.

No change in behavior. This just makes it so touching CSSParser.h doesn't rebuild as many files.

  • css/CSSCalculationValue.cpp:
  • css/CSSParser.cpp:

(WebCore::CSSParser::sourceSize):
(WebCore::filterProperties):

  • css/CSSParser.h:

(WebCore::CSSParser::ValueWithCalculation::ValueWithCalculation):

  • css/CSSProperty.h:

(WebCore::prefixingVariantForPropertyId):

  • css/FontFace.cpp:
  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::parseDeclaration):
(WebCore::MutableStyleProperties::addParsedProperties):

  • css/StyleProperties.h:
  • css/StyleResolver.h:
  • rendering/style/RenderStyle.cpp:
4:08 PM Changeset in webkit [200976] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (r200441): Yahoo sports, finance and news pages automatically scroll
https://bugs.webkit.org/show_bug.cgi?id=157692
<rdar://problem/26231897>

Patch by Aaron Chu <aaron_chu@apple.com> on 2016-05-16
Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-controls-to-not-scroll-page-on-load.html

This bug was due to the fact that showControls button was shown and focused
when the video controls are hidden. The showControls button is used by FKA or
screen readers to make the video controls reappear after they have faded out.
When the showControls button is shown, a focus() is called on it to ensure that
the screen reader is focusing on the button instead of <body> or the video chrome.
To fix this bug, I added the shouldHaveControls() check before calling focus() on
the showControls button.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.showShowControlsButton):

LayoutTests:

Added Layout test to make sure that the page does not scroll automatically because
of the focus() on showControlsButton in the video shadow DOM.

  • media/video-controls-to-not-scroll-page-on-load-expected.txt: Added.
  • media/video-controls-to-not-scroll-page-on-load.html: Added.
3:53 PM Changeset in webkit [200975] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Add a WKA extension point for WKPreferences SPI
https://bugs.webkit.org/show_bug.cgi?id=157762
rdar://problem/24529203

Reviewed by Sam Weinig.

  • UIProcess/API/Cocoa/WKPreferences.mm:
3:44 PM Changeset in webkit [200974] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit2

Action sheets don’t work in presented view controllers
<https://webkit.org/b/157754>
<rdar://problem/26304845>

Reviewed by Anders Carlsson.

  • UIProcess/ios/WKActionSheet.mm:

(-[WKActionSheet presentSheetFromRect:]):
(-[WKActionSheet willRotate]):

  • Call SPI to get the presenting view controller, since it may not always be the root view controller.
3:31 PM Changeset in webkit [200973] by Joseph Pecoraro
  • 95 edits
    7 copies
    104 adds in trunk

Unreviewed rollout r200924. Caused js/regress/string-replace-generic.html to fail.

.:

  • ManualTests/inspector/profiler-test-call.html: Added.
  • ManualTests/inspector/profiler-test-many-calls-in-the-same-scope.html: Added.

Source/JavaScriptCore:

  • API/JSProfilerPrivate.cpp: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.

(JSStartProfiling):
(JSEndProfiling):

  • API/JSProfilerPrivate.h: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitCallVarargs):
(JSC::BytecodeGenerator::emitCallVarargsInTailPosition):
(JSC::BytecodeGenerator::emitConstructVarargs):
(JSC::BytecodeGenerator::emitConstruct):

  • bytecompiler/BytecodeGenerator.h:

(JSC::CallArguments::profileHookRegister):
(JSC::BytecodeGenerator::shouldEmitProfileHooks):

  • bytecompiler/NodesCodegen.cpp:

(JSC::CallArguments::CallArguments):
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::callFunctionWithEvalEnabled):

  • inspector/protocol/Timeline.json:
  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::operator()):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_profile_will_call):
(JSC::JIT::emit_op_profile_did_call):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_profile_will_call):
(JSC::JIT::emit_op_profile_did_call):

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

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • parser/ParserModes.h:
  • profiler/CallIdentifier.h: Added.

(JSC::CallIdentifier::CallIdentifier):
(JSC::CallIdentifier::functionName):
(JSC::CallIdentifier::url):
(JSC::CallIdentifier::lineNumber):
(JSC::CallIdentifier::columnNumber):
(JSC::CallIdentifier::operator==):
(JSC::CallIdentifier::operator!=):
(JSC::CallIdentifier::Hash::hash):
(JSC::CallIdentifier::Hash::equal):
(JSC::CallIdentifier::hash):
(JSC::CallIdentifier::operator const char*):
(JSC::CallIdentifier::c_str):
(WTF::HashTraits<JSC::CallIdentifier>::constructDeletedValue):
(WTF::HashTraits<JSC::CallIdentifier>::isDeletedValue):

  • profiler/LegacyProfiler.cpp: Added.

(JSC::LegacyProfiler::profiler):
(JSC::LegacyProfiler::startProfiling):
(JSC::LegacyProfiler::stopProfiling):
(JSC::callFunctionForProfilesWithGroup):
(JSC::LegacyProfiler::suspendProfiling):
(JSC::LegacyProfiler::unsuspendProfiling):
(JSC::LegacyProfiler::willExecute):
(JSC::LegacyProfiler::didExecute):
(JSC::LegacyProfiler::exceptionUnwind):
(JSC::LegacyProfiler::createCallIdentifier):
(JSC::createCallIdentifierFromFunctionImp):

  • profiler/LegacyProfiler.h: Added.

(JSC::LegacyProfiler::currentProfiles):

  • profiler/Profile.cpp: Added.

(JSC::Profile::create):
(JSC::Profile::Profile):
(JSC::Profile::~Profile):
(JSC::Profile::debugPrint):
(JSC::functionNameCountPairComparator):
(JSC::Profile::debugPrintSampleStyle):

  • profiler/Profile.h: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.
  • profiler/ProfileGenerator.cpp: Added.

(JSC::ProfileGenerator::create):
(JSC::ProfileGenerator::ProfileGenerator):
(JSC::AddParentForConsoleStartFunctor::AddParentForConsoleStartFunctor):
(JSC::AddParentForConsoleStartFunctor::foundParent):
(JSC::AddParentForConsoleStartFunctor::operator()):
(JSC::ProfileGenerator::addParentForConsoleStart):
(JSC::ProfileGenerator::title):
(JSC::ProfileGenerator::beginCallEntry):
(JSC::ProfileGenerator::endCallEntry):
(JSC::ProfileGenerator::willExecute):
(JSC::ProfileGenerator::didExecute):
(JSC::ProfileGenerator::exceptionUnwind):
(JSC::ProfileGenerator::stopProfiling):
(JSC::ProfileGenerator::removeProfileStart):
(JSC::ProfileGenerator::removeProfileEnd):

  • profiler/ProfileGenerator.h: Added.

(JSC::ProfileGenerator::profile):
(JSC::ProfileGenerator::origin):
(JSC::ProfileGenerator::profileGroup):
(JSC::ProfileGenerator::setIsSuspended):

  • profiler/ProfileNode.cpp: Added.

(JSC::ProfileNode::ProfileNode):
(JSC::ProfileNode::addChild):
(JSC::ProfileNode::removeChild):
(JSC::ProfileNode::spliceNode):
(JSC::ProfileNode::traverseNextNodePostOrder):
(JSC::ProfileNode::debugPrint):
(JSC::ProfileNode::debugPrintSampleStyle):
(JSC::ProfileNode::debugPrintRecursively):
(JSC::ProfileNode::debugPrintSampleStyleRecursively):

  • profiler/ProfileNode.h: Added.

(JSC::ProfileNode::create):
(JSC::ProfileNode::Call::Call):
(JSC::ProfileNode::Call::startTime):
(JSC::ProfileNode::Call::setStartTime):
(JSC::ProfileNode::Call::elapsedTime):
(JSC::ProfileNode::Call::setElapsedTime):
(JSC::ProfileNode::operator==):
(JSC::ProfileNode::callerCallFrame):
(JSC::ProfileNode::callIdentifier):
(JSC::ProfileNode::id):
(JSC::ProfileNode::functionName):
(JSC::ProfileNode::url):
(JSC::ProfileNode::lineNumber):
(JSC::ProfileNode::columnNumber):
(JSC::ProfileNode::parent):
(JSC::ProfileNode::setParent):
(JSC::ProfileNode::calls):
(JSC::ProfileNode::lastCall):
(JSC::ProfileNode::appendCall):
(JSC::ProfileNode::children):
(JSC::ProfileNode::firstChild):
(JSC::ProfileNode::lastChild):
(JSC::ProfileNode::nextSibling):
(JSC::ProfileNode::setNextSibling):
(JSC::ProfileNode::forEachNodePostorder):
(JSC::CalculateProfileSubtreeDataFunctor::operator()):
(JSC::CalculateProfileSubtreeDataFunctor::returnValue):

  • profiler/ProfilerJettisonReason.cpp:

(WTF::printInternal):

  • profiler/ProfilerJettisonReason.h:
  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):

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

(JSC::ScriptExecutable::newCodeBlockFor):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::~JSGlobalObject):
(JSC::JSGlobalObject::hasLegacyProfiler):
(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):
(JSC::JSGlobalObject::createModuleProgramCodeBlock):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::supportsLegacyProfiling):

  • runtime/Options.h:
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::SetEnabledProfilerFunctor::operator()):
(JSC::VM::setEnabledProfiler):

  • runtime/VM.h:

(JSC::VM::enabledProfiler):
(JSC::VM::enabledProfilerAddress):

Source/WebCore:

Tests: fast/profiler/*

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • ForwardingHeaders/profiler/LegacyProfiler.h: Added.
  • ForwardingHeaders/profiler/Profile.h: Added.
  • ForwardingHeaders/profiler/ProfileNode.h: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCustomXPathNSResolver.cpp:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::supportsLegacyProfiling):
(WebCore::JSDOMWindowBase::supportsRichSourceInfo):

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

(WebCore::JSWorkerGlobalScopeBase::supportsLegacyProfiling):

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • bindings/js/ScriptCachedFrameData.cpp:
  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::clearWindowShell):

  • bindings/js/ScriptProfile.h: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.
  • bindings/js/ScriptProfileNode.h: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.
  • bindings/scripts/CodeGeneratorJS.pm:

(AddClassForwardIfNeeded):

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

(WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):

  • bindings/scripts/test/TestObj.idl:
  • css/CSSParser.cpp:
  • dom/Document.cpp:
  • inspector/InspectorConsoleInstrumentation.h:

(WebCore::InspectorInstrumentation::stopProfiling):

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::legacyProfilerEnabled):
(WebCore::InspectorController::setLegacyProfilerEnabled):

  • inspector/InspectorController.h:
  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::stopProfilingImpl):

  • inspector/InspectorInstrumentation.h:
  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):

  • inspector/InspectorTimelineAgent.h:
  • inspector/PageDebuggerAgent.cpp:
  • inspector/PageRuntimeAgent.cpp:
  • inspector/ScriptProfile.idl: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.
  • inspector/ScriptProfileNode.idl: Copied from Source/JavaScriptCore/profiler/ProfilerJettisonReason.h.
  • inspector/TimelineRecordFactory.cpp:

(WebCore::buildAggregateCallInfoInspectorObject):
(WebCore::buildInspectorObject):
(WebCore::buildProfileInspectorObject):
(WebCore::TimelineRecordFactory::appendProfile):

  • inspector/TimelineRecordFactory.h:
  • page/DOMWindow.cpp:
  • page/Page.cpp:
  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::profileEnd):
(WebCore::PageConsoleClient::clearProfiles):

  • page/PageConsoleClient.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::consoleProfiles):
(WebCore::Internals::setLegacyJavaScriptProfilingEnabled):

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/js/WebCoreTestSupport.cpp:
  • xml/XSLStyleSheetLibxslt.cpp:
  • xml/XSLTProcessorLibxslt.cpp:

Source/WebKit/win:

  • Interfaces/IWebInspector.idl:
  • WebCoreStatistics.cpp:
  • WebInspector.cpp:

(WebInspector::isJavaScriptProfilingEnabled):
(WebInspector::setJavaScriptProfilingEnabled):

LayoutTests:

  • fast/profiler/anonymous-event-handler-expected.txt: Added.
  • fast/profiler/anonymous-event-handler.html: Added.
  • fast/profiler/anonymous-function-called-from-different-contexts-expected.txt: Added.
  • fast/profiler/anonymous-function-called-from-different-contexts.html: Added.
  • fast/profiler/anonymous-function-calls-built-in-functions-expected.txt: Added.
  • fast/profiler/anonymous-function-calls-built-in-functions.html: Added.
  • fast/profiler/anonymous-function-calls-eval-expected.txt: Added.
  • fast/profiler/anonymous-function-calls-eval.html: Added.
  • fast/profiler/anonymous-functions-with-display-names-expected.txt: Added.
  • fast/profiler/anonymous-functions-with-display-names.html: Added.
  • fast/profiler/apply-expected.txt: Added.
  • fast/profiler/apply.html: Added.
  • fast/profiler/built-in-function-calls-anonymous-expected.txt: Added.
  • fast/profiler/built-in-function-calls-anonymous.html: Added.
  • fast/profiler/built-in-function-calls-user-defined-function-expected.txt: Added.
  • fast/profiler/built-in-function-calls-user-defined-function.html: Added.
  • fast/profiler/call-expected.txt: Added.
  • fast/profiler/call-register-leak-expected.txt: Added.
  • fast/profiler/call-register-leak.html: Added.
  • fast/profiler/call.html: Added.
  • fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope-expected.txt: Added.
  • fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope.html: Added.
  • fast/profiler/compare-multiple-profiles-expected.txt: Added.
  • fast/profiler/compare-multiple-profiles.html: Added.
  • fast/profiler/constructor-expected.txt: Added.
  • fast/profiler/constructor.html: Added.
  • fast/profiler/dead-time-expected.txt: Added.
  • fast/profiler/dead-time.html: Added.
  • fast/profiler/document-dot-write-expected.txt: Added.
  • fast/profiler/document-dot-write.html: Added.
  • fast/profiler/event-handler-expected.txt: Added.
  • fast/profiler/event-handler.html: Added.
  • fast/profiler/execution-context-and-eval-on-same-line-expected.txt: Added.
  • fast/profiler/execution-context-and-eval-on-same-line.html: Added.
  • fast/profiler/inline-event-handler-expected.txt: Added.
  • fast/profiler/inline-event-handler.html: Added.
  • fast/profiler/many-calls-in-the-same-scope-expected.txt: Added.
  • fast/profiler/many-calls-in-the-same-scope.html: Added.
  • fast/profiler/multiple-and-different-scoped-anonymous-function-calls-expected.txt: Added.
  • fast/profiler/multiple-and-different-scoped-anonymous-function-calls.html: Added.
  • fast/profiler/multiple-and-different-scoped-function-calls-expected.txt: Added.
  • fast/profiler/multiple-and-different-scoped-function-calls.html: Added.
  • fast/profiler/multiple-anonymous-functions-called-from-the-same-function-expected.txt: Added.
  • fast/profiler/multiple-anonymous-functions-called-from-the-same-function.html: Added.
  • fast/profiler/multiple-frames-expected.txt: Added.
  • fast/profiler/multiple-frames.html: Added.
  • fast/profiler/named-functions-with-display-names-expected.txt: Added.
  • fast/profiler/named-functions-with-display-names.html: Added.
  • fast/profiler/nested-anonymous-functon-expected.txt: Added.
  • fast/profiler/nested-anonymous-functon.html: Added.
  • fast/profiler/nested-start-and-stop-profiler-expected.txt: Added.
  • fast/profiler/nested-start-and-stop-profiler.html: Added.
  • fast/profiler/no-execution-context-expected.txt: Added.
  • fast/profiler/no-execution-context.html: Added.
  • fast/profiler/one-execution-context-expected.txt: Added.
  • fast/profiler/one-execution-context.html: Added.
  • fast/profiler/profile-calls-in-included-file-expected.txt: Added.
  • fast/profiler/profile-calls-in-included-file.html: Added.
  • fast/profiler/profile-with-no-title-expected.txt: Added.
  • fast/profiler/profile-with-no-title.html: Added.
  • fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting-expected.txt: Added.
  • fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html: Added.
  • fast/profiler/profiling-from-a-nested-location-expected.txt: Added.
  • fast/profiler/profiling-from-a-nested-location.html: Added.
  • fast/profiler/resources/other-frame.html: Added.
  • fast/profiler/resources/other-window.html: Added.
  • fast/profiler/resources/profiler-test-JS-resources.js: Added.

(endTest):
(insertGivenText):
(insertNewText):
(arrayOperatorFunction):
(anonymousFunction):
(anotherAnonymousFunction):
(intermediaryFunction):
(isEqualToFive):
(startProfile):
(printHeavyProfilesDataWithoutTime):
(printProfilesDataWithoutTime):
(printProfileNodeWithoutTime):

  • fast/profiler/simple-event-call-expected.txt: Added.
  • fast/profiler/simple-event-call.html: Added.
  • fast/profiler/simple-no-level-change-expected.txt: Added.
  • fast/profiler/simple-no-level-change.html: Added.
  • fast/profiler/start-and-stop-profiler-multiple-times-expected.txt: Added.
  • fast/profiler/start-and-stop-profiler-multiple-times.html: Added.
  • fast/profiler/start-and-stop-profiling-in-the-same-function-expected.txt: Added.
  • fast/profiler/start-and-stop-profiling-in-the-same-function.html: Added.
  • fast/profiler/start-but-dont-stop-profiling-expected.txt: Added.
  • fast/profiler/start-but-dont-stop-profiling.html: Added.
  • fast/profiler/stop-profiling-after-setTimeout-expected.txt: Added.
  • fast/profiler/stop-profiling-after-setTimeout.html: Added.
  • fast/profiler/stop-then-function-call-expected.txt: Added.
  • fast/profiler/stop-then-function-call.html: Added.
  • fast/profiler/throw-exception-from-eval-expected.txt: Added.
  • fast/profiler/throw-exception-from-eval.html-disabled: Added.
  • fast/profiler/two-execution-contexts-expected.txt: Added.
  • fast/profiler/two-execution-contexts.html: Added.
  • fast/profiler/user-defined-function-calls-built-in-functions-expected.txt: Added.
  • fast/profiler/user-defined-function-calls-built-in-functions.html: Added.
  • fast/profiler/window-dot-eval-expected.txt: Added.
  • fast/profiler/window-dot-eval.html: Added.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
3:20 PM Changeset in webkit [200972] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Text selection is basically impossible on plain text pages.
https://bugs.webkit.org/show_bug.cgi?id=157681
rdar://problem/26065660

Reviewed by Darin Adler.

When dealing with a plain text file, the rules for deciding whether
a position is selectable should be different and we should never
switch to block selection.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::shouldSwitchToBlockModeForHandle):
(WebKit::rectIsTooBigForSelection): Added helper function.
(WebKit::WebPage::selectTextWithGranularityAtPoint):
(WebKit::WebPage::getPositionInformation):

3:00 PM Changeset in webkit [200971] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

RenderLayer::hitTestList could mutate the list of candidate layers.
https://bugs.webkit.org/show_bug.cgi?id=157718
<rdar://problem/22556046>

Reviewed by Simon Fraser.

This patch ensures that we always start hittesting a clean render tree at EventHandler::hitTestResultAtPoint.

Speculative fix.

  • page/EventHandler.cpp:

(WebCore::EventHandler::hitTestResultAtPoint):

2:53 PM Changeset in webkit [200970] by Konstantin Tokarev
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fixed typo in a comment.

2:42 PM Changeset in webkit [200969] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Remove unused initializer for WebEvent on iOS.
https://bugs.webkit.org/show_bug.cgi?id=157689

Reviewed by Anders Carlsson.

Removing use of characterSet property.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _handleEditingKeyEvent:]):

2:39 PM Changeset in webkit [200968] by enrica@apple.com
  • 5 edits in trunk

Remove unused initializer for WebEvent on iOS.
https://bugs.webkit.org/show_bug.cgi?id=157689

Reviewed by Anders Carlsson.

Source/WebCore:

This is no longer used and can be removed.
The logic tied to isPopupVariant has been incorporated
in keyboard flags. The characterSet property is no longer needed too.

  • platform/ios/WebEvent.h:
  • platform/ios/WebEvent.mm:

(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]):
(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:isPopupVariant:keyCode:isTabKey:characterSet:]): Deleted.
(-[WebEvent _characterSetDescription]): Deleted.
(-[WebEvent isPopupVariant]): Deleted.
(-[WebEvent characterSet]): Deleted.

Tools:

Adopting different initializer for WebEvent to fix the build.

  • DumpRenderTree/mac/EventSendingController.mm:

(-[EventSendingController keyDown:withModifiers:withLocation:]):

2:36 PM Changeset in webkit [200967] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Add a WebCore logging channel for images
https://bugs.webkit.org/show_bug.cgi?id=157752

Reviewed by Zalan Bujtas.

Create an Images log channel, and log various things related to decoding and drawing
images.

  • platform/Logging.h:
  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::destroyDecodedDataIfNecessary):
(WebCore::BitmapImage::cacheFrame):
(WebCore::BitmapImage::startAnimation):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawNativeImage):

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoder::createFrameImageAtIndex):

1:52 PM Changeset in webkit [200966] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS] Remove dispatch_after in -[WKFormInputSession setSuggestions:]
https://bugs.webkit.org/show_bug.cgi?id=157745

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

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKFormInputSession setSuggestions:]): Remove the dispatch_after since
there is no longer a chance of keyboard suggestions replacing the
suggestions set here.

1:46 PM Changeset in webkit [200965] by adachan@apple.com
  • 3 edits in trunk/Source/WebCore

Don't execute JavaScript within HTMLMediaElement::stop()
https://bugs.webkit.org/show_bug.cgi?id=157655

Reviewed by Chris Dumez.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
Move the setting of m_activeDOMObjectsAreSuspended to true earlier so we won't execute
any JS while suspending the objects.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
Bail early if the controls script hasn't been injected yet or the DOM object has been
stopped or suspended.

1:26 PM Changeset in webkit [200964] by rniwa@webkit.org
  • 9 edits
    4 adds in trunk

Focus ordering should respect slot elements
https://bugs.webkit.org/show_bug.cgi?id=151379

Reviewed by Antti Koivisto.

Source/WebCore:

Implemented the sequential focus navigation ordering as discussed on
https://github.com/w3c/webcomponents/issues/375

New behavior treats each shadow root and slot as a "focus scope". The focus navigation ordering
is defined within each "focus scope" using tabindex, treating any "focus scope owner"
(e.g. shadow host or a slot) as if it was having tabindex=0 if it wasn't itself focusable.

This patch modifies FocusNavigationScope to support a focus scope defined for a slot element in
addition to the one defined for a shadow tree and a document as previously supported.

Tests: fast/shadow-dom/focus-across-details-element.html

fast/shadow-dom/focus-navigation-across-slots.html

  • dom/Node.cpp:

(WebCore::parentShadowRoot): Extracted from assignedSlot.
(WebCore::Node::assignedSlot):
(WebCore::Node::assignedSlotForBindings): Added.

  • dom/Node.h:
  • dom/NonDocumentTypeChildNode.idl:
  • html/HTMLDetailsElement.h:

(HTMLDetailsElement::hasCustomFocusLogic): Added. Don't treat details element as a "focus scope".

  • html/HTMLSummaryElement.h:

(HTMLSummaryElement::hasCustomFocusLogic): Ditto for summary element.

  • page/FocusController.cpp:

(WebCore::hasCustomFocusLogic): Moved.
(WebCore::isFocusScopeOwner): Added. Returns true on a shadow host without a custom focus logic or
on a slot inside a shadow tree whose shadow host doesn't have a custom focus logic.
(WebCore::FocusNavigationScope::firstChildInScope): Now takes a reference. Call isFocusScopeOwner
to check for both slots and shadow roots instead of just the latter. This fixes a subtle bug that
focus may never get out of textarea in some cases due to its failure to check hasCustomFocusLogic.
(WebCore::FocusNavigationScope::lastChildInScope): Ditto.
(WebCore::FocusNavigationScope::parentInScope): Made this a member function since it needs to check
against m_slotElement inside the focus scope of a slot.
(WebCore::FocusNavigationScope::nextSiblingInScope): Added. Finds the next assigned node in a slot
in the focus scope defined for a slot. Just calls nextSibling() in the focus scope for shadow tree
and document.
(WebCore::FocusNavigationScope::previousSiblingInScope): Ditto for finding the previous sibling.
(WebCore::FocusNavigationScope::firstNodeInScope): Added. This function replaces rootNode() which
doesn't exist for the focus scope of a slot element.
(WebCore::FocusNavigationScope::lastNodeInScope): Ditto for the last node.
(WebCore::FocusNavigationScope::nextInScope):
(WebCore::FocusNavigationScope::previousInScope):
(WebCore::FocusNavigationScope::FocusNavigationScope): Added a variant that takes HTMLSlotElement.
(WebCore::FocusNavigationScope::owner): Added the support for slot elements.
(WebCore::FocusNavigationScope::scopeOf): Ditto.
(WebCore::FocusNavigationScope::scopeOwnedByScopeOwner): Ditto.
(WebCore::isFocusableElementOrScopeOwner): Added the support for slot elements and renamed from
isFocusableOrHasShadowTreeWithoutCustomFocusLogic.
(WebCore::isNonFocusableScopeOwner): Ditto. Renamed from isNonFocusableShadowHost.
(WebCore::isFocusableScopeOwner): Ditto. Renamed from isFocusableShadowHost.
(WebCore::shadowAdjustedTabIndex): Added the support for slot elements.
(WebCore::FocusController::findFocusableElementAcrossFocusScope):
(WebCore::FocusController::nextFocusableElementWithinScope):
(WebCore::FocusController::previousFocusableElementWithinScope):
(WebCore::FocusController::findElementWithExactTabIndex):
(WebCore::nextElementWithGreaterTabIndex): Call firstNodeInScope() instead of rootNode() here since
there is no root node for the focus scope defined for a slot element.
(WebCore::previousElementWithLowerTabIndex): Ditto for scope.lastNodeInScope().
(WebCore::FocusController::nextFocusableElementOrScopeOwner):
(WebCore::FocusController::previousFocusableElementOrScopeOwner):
(WebCore::parentInScope): Deleted.
(WebCore::FocusNavigationScope::rootNode): Deleted.
(WebCore::FocusNavigationScope::scopeOwnedByShadowHost): Deleted.
(WebCore::isNonFocusableShadowHost): Deleted.
(WebCore::isFocusableShadowHost): Deleted.
(WebCore::isFocusableOrHasShadowTreeWithoutCustomFocusLogic): Deleted.

LayoutTests:

Added regression tests for moving focus by tab and shift+tab across
user-defined shadow trees with slots and details element.

  • fast/shadow-dom/focus-across-details-element-expected.txt: Added.
  • fast/shadow-dom/focus-across-details-element.html: Added.
  • fast/shadow-dom/focus-navigation-across-slots-expected.txt: Added.
  • fast/shadow-dom/focus-navigation-across-slots.html: Added.
1:24 PM Changeset in webkit [200963] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Use WTF::Optional for ScrollView's m_deferredScrollDelta / m_deferredScrollOffsets
https://bugs.webkit.org/show_bug.cgi?id=157747

Reviewed by Zalan Bujtas.

Use WTF::Optional for ScrollView's m_deferredScrollDelta / m_deferredScrollOffsets
instead of std::unique_ptr as it is more suited for this purpose.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::scrollOffsetChangedViaPlatformWidget):
(WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange):
(WebCore::ScrollView::scrollTo):

  • platform/ScrollView.h:
1:19 PM Changeset in webkit [200962] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Contents of Duration column are covered by always on (legacy) scroll bars
https://bugs.webkit.org/show_bug.cgi?id=157590

Reviewed by Timothy Hatcher.

Set the right padding of the DataGrid header to match the scrollbar width.

  • UserInterface/Views/DataGrid.css:

(.data-grid .data-container):
(.data-grid.inline .data-container):
Don't show scrollbars for inline data grids.

(.data-grid > .header-wrapper):
(.data-grid.no-header > .header-wrapper > table.header):
(.data-grid.no-header > table.header): Deleted.
(.data-grid th): Deleted.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid):
We can't add padding-rigth to a table. Wrap the table in div.header-wrapper.

(WebInspector.DataGrid.prototype._updateScrollbarPadding):
(WebInspector.DataGrid.prototype.layout):

1:01 PM Changeset in webkit [200961] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Crash simulating keystrokes at WebKit::WebAutomationSession::platformSimulateKeyStroke
https://bugs.webkit.org/show_bug.cgi?id=157737
<rdar://problem/26292946>

Reviewed by Timothy Hatcher.

  • UIProcess/Cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::platformSimulateKeyStroke):
AppKit expects characters passed to [NSEvent keyEventWithType:...]
to be non-nil even if there are no characters. Initialize characters
to the empty string @"". It will be overwritten if the keystroke should
produce any unicode characters.

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

Rebaseline tests for ios-simulator

Unreviewed test gardening.

  • fast/events/touch/document-create-touch-list-ios-expected.txt:
  • platform/ios-simulator/ios/touch/construct-TouchList-expected.txt:
12:53 PM Changeset in webkit [200959] by BJ Burg
  • 6 edits in trunk/Source/WebKit2

Web Automation: Automation.inspectBrowsingContext should automatically start page profiling
https://bugs.webkit.org/show_bug.cgi?id=157739

Reviewed by Timothy Hatcher.

  • UIProcess/API/C/WKInspector.cpp:

(WKInspectorTogglePageProfiling):
Implicitly show the Web Inspector in the C API command to preserve existing behavior.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::inspectorFrontendLoaded):
If the frontend loaded, it was either because the user opened Web Inspector (and
turning on page profiling is harmless), or it was loaded but not shown by the
inspectBrowsingContext command. For the latter, we want to start page profiling
before processing any additional commands so subsequent execution is captured.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::togglePageProfiling):
Send the start/stop profiling messages directly to the WebInspectorUI process instead of
bouncing through the inspected page's process, which does an implicit show() we don't want.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::inspector): Make it const.

  • UIProcess/WebPageProxy.h:
12:41 PM Changeset in webkit [200958] by fpizlo@apple.com
  • 3 edits
    21 adds in trunk

FixupPhase should be more eager to demote bit math to untyped
https://bugs.webkit.org/show_bug.cgi?id=157746

Reviewed by Mark Lam.
Source/JavaScriptCore:


This just makes the logic for how we fixup bit math match the way we do it in other places.
This doesn't affect performance on any major benchmark but it's a big win on new
microbenchmarks added in this change.

Details:

object-and 11.1610+-0.7602 4.8105+-0.1690 definitely 2.3201x faster
object-or 11.0845+-0.2487 4.7146+-0.0374 definitely 2.3511x faster
object-xor 10.2946+-0.9946 4.7278+-0.0814 definitely 2.1775x faster
object-lshift 10.4896+-1.0867 4.7699+-0.0721 definitely 2.1991x faster
object-rshift 11.1239+-0.5010 4.7194+-0.0445 definitely 2.3570x faster
object-urshift 10.9745+-0.1315 4.7848+-0.0479 definitely 2.2936x faster

  • dfg/DFGFixupPhase.cpp:

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

LayoutTests:

  • js/regress/object-and-expected.txt: Added.
  • js/regress/object-and.html: Added.
  • js/regress/object-int-and-array-expected.txt: Added.
  • js/regress/object-int-and-array.html: Added.
  • js/regress/object-lshift-expected.txt: Added.
  • js/regress/object-lshift.html: Added.
  • js/regress/object-or-expected.txt: Added.
  • js/regress/object-or.html: Added.
  • js/regress/object-rshift-expected.txt: Added.
  • js/regress/object-rshift.html: Added.
  • js/regress/object-urshift-expected.txt: Added.
  • js/regress/object-urshift.html: Added.
  • js/regress/object-xor-expected.txt: Added.
  • js/regress/object-xor.html: Added.
  • js/regress/script-tests/object-and.js: Added.

(o.valueOf):

  • js/regress/script-tests/object-int-and-array.js: Added.

(i.o.valueOf):

  • js/regress/script-tests/object-lshift.js: Added.

(o.valueOf):

  • js/regress/script-tests/object-or.js: Added.

(o.valueOf):

  • js/regress/script-tests/object-rshift.js: Added.

(o.valueOf):

  • js/regress/script-tests/object-urshift.js: Added.

(o.valueOf):

  • js/regress/script-tests/object-xor.js: Added.

(o.valueOf):

12:20 PM Changeset in webkit [200957] by Conrad Shultz
  • 8 edits in trunk/Source/WebKit2

Fix some deprecation warnings.

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _drawPDFDocument:page:atPoint:]):

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:

(WebKit::PDFPlugin::setActiveAnnotation):
(WebKit::PDFPlugin::lookupTextAtLocation):

  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h:
  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:

(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):

  • WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h:
  • WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:

(WebKit::PDFPluginTextAnnotation::createAnnotationElement):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::drawPDFPage):

11:57 AM Changeset in webkit [200956] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Add machine-readable results for JSC API tests to the Buildbot json log
https://bugs.webkit.org/show_bug.cgi?id=157642

Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-05-16
Reviewed by Geoffrey Garen.

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

(RunJavaScriptCoreTests): Use --no-fail-fast option on run-javascriptcore-tests

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): Abstracted out writing JSON to file (new function below)
(writeJsonDataIfApplicable): Added

11:54 AM Changeset in webkit [200955] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Background stripes don't span the width of Network sidebar
https://bugs.webkit.org/show_bug.cgi?id=157744

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NetworkSidebarPanel.css:

(.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content):

11:47 AM Changeset in webkit [200954] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/JavaScriptCore

Merged r200693. rdar://problem/25682844

11:44 AM Changeset in webkit [200953] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

containingBlockFor*Position functions should take the renderer instead of the parent.
https://bugs.webkit.org/show_bug.cgi?id=157659

Reviewed by Simon Fraser.

containingBlockForFixedPosition, containingBlockForAbsolutePosition and containingBlockForObjectInFlow functions
expect the renderer's parent to be passed in (unless it is a RenderInline!). It is rather misleading and highly error-prone.
We should call them with the renderer itself instead.

  • dom/Element.cpp:

(WebCore::layoutOverflowRectContainsAllDescendants): This expects ancestor containing block.

  • rendering/LogicalSelectionOffsetCaches.h:

(WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches):

  • rendering/RenderElement.cpp:

(WebCore::containingBlockForFixedPosition):
(WebCore::containingBlockForAbsolutePosition):
(WebCore::containingBlockForObjectInFlow):

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

(WebCore::RenderInline::styleWillChange):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::collectSelectionRects): Not a behaviour change.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::containingBlock): RenderScrollbarPart renderer now returns
the containing block based on its owning renderer's style.

11:26 AM Changeset in webkit [200952] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Computed style shows both prefixed and unprefixed variants of properties
https://bugs.webkit.org/show_bug.cgi?id=157674
<rdar://problem/24339756>

Patch by Antoine Quint <Antoine Quint> on 2016-05-16
Reviewed by Timothy Hatcher.

We make the CSSProperty implicit property read-write, and in the case where a computed style
has a property marked as explicit, we also check that it's found in matching rules to consider
it non-implicit. This correctly filters out variants of properties set explicitly.

  • UserInterface/Models/CSSProperty.js:

(WebInspector.CSSProperty.prototype.set implicit):

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype.refresh.fetchedComputedStyle):
(WebInspector.DOMNodeStyles.prototype.refresh):
(WebInspector.DOMNodeStyles.prototype._isPropertyFoundInMatchingRules):
(WebInspector.DOMNodeStyles):

11:23 AM Changeset in webkit [200951] by jer.noble@apple.com
  • 10 edits in trunk

[WK2] Add API to WKWebViewConfiguration to control autoplay policy.
https://bugs.webkit.org/show_bug.cgi?id=156312

Reviewed by Dan Bernstein.

Source/WebKit2:

Add a new API to WKWebViewConfiguration to allow fine-grained control over when media is allowed
to play without a user gesture, and simultaneously deprecate the existing, all-or-nothing API,
and deprecated the equivalent SPIs.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _requiresUserActionForVideoPlayback]):
(-[WKWebViewConfiguration _setRequiresUserActionForVideoPlayback:]):
(-[WKWebViewConfiguration _requiresUserActionForAudioPlayback]):
(-[WKWebViewConfiguration _setRequiresUserActionForAudioPlayback:]):
(-[WKWebViewConfiguration requiresUserActionForMediaPlayback]):
(-[WKWebViewConfiguration setRequiresUserActionForMediaPlayback:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:

Tools:

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

  • TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:

(TEST_F):

11:09 AM Changeset in webkit [200950] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Automation: WebAutomationSessionProxy.js gets injected more than once sometimes
https://bugs.webkit.org/show_bug.cgi?id=157716
<rdar://problem/26287306>

Reviewed by Timothy Hatcher.

Whenever a script was injected into a non-normal world by a WebKit client,
the WebProcess's WebAutomationSessionProxy singleton would get a
notification that the window was cleared from the relevant frame.
This notification happens when creating the world's window shell for
the first time.

This code should ignore such notifications that originate from non-main world
contexts. Web Inspector's instrumentation already ignored this, but
the automation session notification comes in via a different WebKit2 layer.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):

11:04 AM Changeset in webkit [200949] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: DataGrid _updateVisibleRows dominates profiles of timeline recordings when data grid (Overview or TimelineDataGrids) is showing
https://bugs.webkit.org/show_bug.cgi?id=157664
rdar://problem/26262219

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid): Added new members.
(WebInspector.DataGrid.prototype.layout): Reset _cachedScrollTop and _cachedScrollHeight on resize.
(WebInspector.DataGrid.prototype._noteScrollPositionChanged): Added.
(WebInspector.DataGrid.prototype._updateVisibleRows): Cache sizes and positions when possible.
(WebInspector.DataGridNode.prototype.set hidden): Added call to _noteRowsChanged.
(WebInspector.DataGridNode.prototype.collapse): Call _noteRowsChanged instead of needsLayout.
(WebInspector.DataGridNode.prototype.expand): Call _noteRowsChanged instead of needsLayout.
(WebInspector.DataGrid.prototype._updateFilter): Removed direct call to _updateVisibleRows, this is
better handled by DataGridNode's hidden setter.

10:47 AM Changeset in webkit [200948] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.32-branch/Source/JavaScriptCore

Merged r200666. rdar://problem/26279421

10:41 AM Changeset in webkit [200947] by timothy@apple.com
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: Many DataGrid instances do not save/restore their scroll position
https://bugs.webkit.org/show_bug.cgi?id=157709
rdar://problem/26286090

Reviewed by Brian Burg.

  • UserInterface/Models/BackForwardEntry.js:

(WebInspector.BackForwardEntry.prototype.makeCopy): Added.

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer.prototype.showContentView): Copy the last entry for the view.

  • UserInterface/Views/DOMStorageContentView.js:

(WebInspector.DOMStorageContentView.prototype.get scrollableElements): Added.

  • UserInterface/Views/HeapSnapshotContentView.js:

(WebInspector.HeapSnapshotContentView.prototype.get scrollableElements): Added.

  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:

(WebInspector.IndexedDatabaseObjectStoreContentView.prototype.get scrollableElements): Added.

  • UserInterface/Views/MemoryTimelineView.js:

(WebInspector.MemoryTimelineView.prototype.get scrollableElements): Added.

  • UserInterface/Views/ProfileView.js:

(WebInspector.ProfileView.prototype.get scrollableElements): Added.
(WebInspector.ProfileView.prototype._repopulateDataGridFromTree): Removed unused skipRefresh argument.

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WebInspector.ScriptClusterTimelineView.prototype.get scrollableElements): Added.

  • UserInterface/Views/ScriptProfileTimelineView.js:

(WebInspector.ScriptProfileTimelineView.prototype.get scrollableElements): Added.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.get scrollableElements): Added.

10:40 AM Changeset in webkit [200946] by msaboff@apple.com
  • 5 edits in trunk

RegExp /y flag incorrect handling of mixed-length alternation
https://bugs.webkit.org/show_bug.cgi?id=157723

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Previously for sticky patterns, we were bailing out and exiting when backtracking
alternatives with dissimilar match lengths. Deleted that code. Instead, for
sticky patterns we need to process the backtracking except for advancing to the
next input index.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::backtrack):

LayoutTests:

Added tests for alternatives with shorter to longer lengths.

  • js/regexp-sticky-expected.txt:
  • js/script-tests/regexp-sticky.js:
10:35 AM Changeset in webkit [200945] by Brent Fulgham
  • 21 edits
    21 adds in trunk

REGRESSION (r192098): Content missing after copy and paste to Notes App on retina displays
https://bugs.webkit.org/show_bug.cgi?id=157630
<rdar://problem/25277577>

Reviewed by Simon Fraser.

Source/WebCore:

Tested by http/tests/images/hidpi-srcset-copy.html

The code to create a WebArchive (or other representation) of a webpage was using the 'src' attribute of
the image element, which might be changed to reflect the optimal image dimensions for a specific
display. Instead, we should use the 'imageSourceURL' method of the Element class so we get the correct
'original' image URL in our cached resources.

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::_processElement): Use 'imageSourceURL', rather than getting the raw 'src' attribute.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::addSubresourceAttributeURLs): Ditto.

Tools:

Update test infrastructure to support checking the number of images in the pasteboard.

  • DumpRenderTree/TestRunner.cpp:

(imageCountInGeneralPasteboardCallback): Added.
(TestRunner::staticFunctions):

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::imageCountInGeneralPasteboard): Added.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::imageCountInGeneralPasteboard): Added stub method.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::imageCountInGeneralPasteboard): Added.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::imageCountInGeneralPasteboard): Added.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::imageCountInGeneralPasteboard): Added stub implementation.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): Handle copy message.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::imageCountInGeneralPasteboard): Added.

LayoutTests:

  • http/tests/images/hidpi-srcset-copy-expected.txt: Added.
  • http/tests/images/hidpi-srcset-copy.html: Added.
  • http/tests/resources/img-srcset: Added.
  • http/tests/resources/img-srcset/image1-620x442.jpg: Added.
  • http/tests/resources/img-srcset/image2-1024x731.jpg: Added.
  • http/tests/resources/img-srcset/image2-1400x1000.jpg: Added.
  • http/tests/resources/img-srcset/image2-300x214.jpg: Added.
  • http/tests/resources/img-srcset/image2-620x442.jpg: Added.
  • http/tests/resources/img-srcset/image2-840x600.jpg: Added.
  • http/tests/resources/img-srcset/image3-250x178.jpg: Added.
  • http/tests/resources/img-srcset/image3-615x438.jpg: Added.
  • http/tests/resources/img-srcset/image3-620x440.jpg: Added.
  • http/tests/resources/img-srcset/image3-700x498.jpg: Added.
  • http/tests/resources/img-srcset/image3-840x598.jpg: Added.
  • http/tests/resources/img-srcset/image3.jpg: Added.
  • http/tests/resources/img-srcset/image4-1024x612.jpg: Added.
  • http/tests/resources/img-srcset/image4-300x179.jpg: Added.
  • http/tests/resources/img-srcset/image4-620x370.jpg: Added.
  • http/tests/resources/img-srcset/image4-768x459.jpg: Added.
  • http/tests/resources/img-srcset/image4-840x502.jpg: Added.
  • http/tests/resources/img-srcset/image4-940x560.jpg: Added.
  • platform/efl/TestExpectations: No pasteboard implementation. Skip.
  • platform/gtk/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
10:22 AM Changeset in webkit [200944] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Random CachedFont.cpp cleanup.
https://bugs.webkit.org/show_bug.cgi?id=157740

Reviewed by Myles C. Maxfield.

No new tests (Refactor/cleanup, no behavior change)

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::ensureCustomFontData): Remove unneeded local RefPtr<>
(WebCore::CachedFont::createCustomFontData): Refactor to not require unnecessary Ref-churn in the common case.

9:37 AM Changeset in webkit [200943] by Chris Dumez
  • 26 edits in trunk/Source/WebCore

Modernize Track classes' code
https://bugs.webkit.org/show_bug.cgi?id=157735

Reviewed by Eric Carlson.

Modernize Track classes' code a bit.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::removeSourceBuffer):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):

  • bindings/js/JSTrackCustom.cpp:

(WebCore::toTrack):
(WebCore::toJS):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::audioTrackEnabledChanged):
(WebCore::HTMLMediaElement::textTrackModeChanged):
(WebCore::HTMLMediaElement::videoTrackSelectedChanged):
(WebCore::HTMLMediaElement::textTrackRemoveCues):
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack):
(WebCore::HTMLMediaElement::addAudioTrack):
(WebCore::HTMLMediaElement::addTextTrack):
(WebCore::HTMLMediaElement::addVideoTrack):
(WebCore::HTMLMediaElement::removeAudioTrack):
(WebCore::HTMLMediaElement::removeTextTrack):
(WebCore::HTMLMediaElement::removeVideoTrack):
(WebCore::HTMLMediaElement::forgetResourceSpecificTracks):
(WebCore::HTMLMediaElement::audioTracks):
(WebCore::HTMLMediaElement::textTracks):
(WebCore::HTMLMediaElement::videoTracks):
(WebCore::HTMLMediaElement::didAddTextTrack):
(WebCore::HTMLMediaElement::didRemoveTextTrack):
(WebCore::HTMLMediaElement::setSelectedTextTrack):
(WebCore::HTMLMediaElement::textTrackAddCues): Deleted.
(WebCore::HTMLMediaElement::closeCaptionTracksChanged): Deleted.

  • html/HTMLMediaElement.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::~AudioTrack):
(WebCore::AudioTrack::setPrivate):
(WebCore::AudioTrack::isValidKind):
(WebCore::AudioTrack::willRemove):
(WebCore::AudioTrack::setEnabled): Deleted.
(WebCore::AudioTrack::updateKindFromPrivate): Deleted.

  • html/track/AudioTrack.h:

(isType):

  • html/track/AudioTrackList.cpp:

(AudioTrackList::append):
(AudioTrackList::item):
(AudioTrackList::getTrackById):
(AudioTrackList::eventTargetInterface): Deleted.

  • html/track/AudioTrackList.h:
  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::willRemove):

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::setKind):
(WebCore::TextTrack::trackIndex):
(WebCore::TextTrack::trackIndexRelativeToRenderedTracks):
(WebCore::TextTrack::setLanguage):

  • html/track/TextTrack.h:

(isType):

  • html/track/TextTrackList.cpp:

(TextTrackList::getTrackIndex):
(TextTrackList::getTrackIndexRelativeToRenderedTracks):
(TextTrackList::item):
(TextTrackList::getTrackById):
(TextTrackList::invalidateTrackIndexesAfterTrack):
(TextTrackList::append):
(TextTrackList::remove):
(TextTrackList::contains):

  • html/track/TextTrackList.h:
  • html/track/TrackBase.h:
  • html/track/TrackEvent.cpp:

(WebCore::TrackEvent::TrackEvent):

  • html/track/TrackEvent.h:
  • html/track/TrackListBase.cpp:

(TrackListBase::remove):
(TrackListBase::contains):
(TrackListBase::scheduleTrackEvent):
(TrackListBase::scheduleAddTrackEvent):
(TrackListBase::scheduleRemoveTrackEvent):

  • html/track/TrackListBase.h:
  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::willRemove):
(WebCore::VideoTrack::setKind):
(WebCore::VideoTrack::setLanguage):

  • html/track/VideoTrack.h:

(isType):

  • html/track/VideoTrackList.cpp:

(VideoTrackList::append):
(VideoTrackList::item):
(VideoTrackList::getTrackById):
(VideoTrackList::selectedIndex):

  • html/track/VideoTrackList.h:
9:04 AM WebKitGTK/2.12.x edited by Michael Catanzaro
Badly propose a couple merges (diff)
7:50 AM Changeset in webkit [200942] by jdiggs@igalia.com
  • 3 edits in trunk/LayoutTests

Unreviewed gardening

Re-mark a failing test as failing. Update the expectations file so
that it fails rather than passes unexpectedly.

  • accessibility/gtk/title-and-alt-expected.txt:
  • platform/gtk/TestExpectations:
7:40 AM Changeset in webkit [200941] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

CSSParser.cpp triggers -Wunused-parameter
https://bugs.webkit.org/show_bug.cgi?id=157734

Reviewed by Csaba Osztrogonác.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

3:28 AM Changeset in webkit [200940] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Cairo] GraphicsContext3D::ImageExtractor should use the correct size for copying non-image surfaces
https://bugs.webkit.org/show_bug.cgi?id=157580

Reviewed by Darin Adler.

GraphicsContext3D::ImageExtractor::extractImage() shouldn't use m_imageWidth
and m_imageHeight members when copying the non-image-backed Cairo surface into
the image-based replacement simply because these two are not initialized until
later in this method.

Instead, the size of the to-be-copied image should be queried via the
cairoSurfaceSize() utility function which properly handles Cairo surfaces of
different types.

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::ImageExtractor::extractImage):

1:05 AM Changeset in webkit [200939] by commit-queue@webkit.org
  • 10 edits
    1 move
    3 adds in trunk

REGRESSION (r199821): Large animated GIFs with slow network do not animate till the last frame
https://bugs.webkit.org/show_bug.cgi?id=157500
Source/WebCore:

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

r199821 relies on the assumption that the image frameCount can be retrieved
only once when the image size is available and it is not going to change. It
turned out this assumption is wrong for some animated GIFs. The frameCount
can change every time a new data block is decoded.

The fix is to invalidate the image cached metadata every time a new data
block is decoded.

Test: http/tests/misc/slow-loading-animated-image.html

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::BitmapImage): Move the "fromImage" BitmapImage constructor
to BitmapImage.cpp. The ImageSource needs to be initialized differently for
this case from the decoder image case. Also get rid of the template constructor.
Most of the flags of the BitmapImage will be deleted with the asynchronous image
decoding work.

(WebCore::BitmapImage::cacheFrame): Delete unused flag m_hasUniformFrameSize.
It was added in r35761 and was mainly used by BitmapImage::currentFrameSize().
But this function itself was deleted in r172348.

(WebCore::BitmapImage::dataChanged): Invalidate the image metadata cache.

  • platform/graphics/BitmapImage.h:

(WebCore::BitmapImage::BitmapImage): Deleted.
Delete unused flag m_hasUniformFrameSize. Also define new static functions in
FrameData to calculate platform dependent properties of an image.

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::ImageSource): Add a new constructor for the "fromImage"
BitmapImage case. The purpose of this constructor is to keep m_needsUpdateMetadata
and m_maximumSubsamplingLevel be initialized as they are in the class definition.
This constructor will be used with the asynchronous image decoding work where the
ImageSource needs to cache the FrameData.

(WebCore::ImageSource::updateMetadata): If needsUpdateMetaData() is true, cache new metadata.

(WebCore::ImageSource::subsamplingLevelForScale): Call updateMetadata() with its new name.
(WebCore::ImageSource::frameCount): Ditto
(WebCore::ImageSource::cacheMetadata): Deleted.

  • platform/graphics/ImageSource.h:

(WebCore::ImageSource::setNeedsUpdateMetadata): Invalidate the image cached metadata.

  • platform/graphics/cairo/BitmapImageCairo.cpp:

(WebCore::NativeImage::size):
(WebCore::NativeImage::hasAlpha):
(WebCore::BitmapImage::BitmapImage): Deleted.
Delete the "fromImage" BitmapImage constructor from this file since it is now platform
independent and has been moved to BitmapImage.cpp. Also add the new NativeImage platform
dependent functions which are used by the new "fromImage" BitmapImage constructor.

  • platform/graphics/cg/BitmapImageCG.cpp:

(WebCore::NativeImage::size):
(WebCore::NativeImage::hasAlpha):
(WebCore::BitmapImage::BitmapImage): Deleted.
Ditto.

LayoutTests:

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

Ensure the large animated gif will get the correct frameCount even if it
is loaded through a slow network.

  • http/tests/misc/resources/large-animated.gif: Added.

This is a large animated GIF with 48 frames. The frameCount keeps changing
every time a new data block is decoded. Each frame except the last one lasts
for 20 ms. The last one lasts for 10 seconds which is similar to setting no-
loop to true. I created all the images myself. All the images except the last
one are rectangles filled with gradient color so their sizes can be large and
get the bug to repro.

  • http/tests/misc/resources/slow-image-load.pl: Added.
  • http/tests/misc/resources/slow-png-load.pl: Removed.

I wanted to use the slow-png-load.pl but only changing the image mimetype.
So I changed its name and I added a new query paramater called 'mimetype'.

  • http/tests/misc/slow-loading-animated-image-expected.html: Added.
  • http/tests/misc/slow-loading-animated-image.html: Added.

This test loads the animated image in 1 second. It waits for another 1 second
to ensure that all the frames are displayed. All we need is to capture the
last frame which is distinctly filled with solid green color.

  • http/tests/misc/slow-loading-image-in-pattern.html:
  • http/tests/misc/slow-loading-mask.html:

Use slow-image-load.pl and pass the image mime type.

12:03 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)

May 15, 2016:

11:23 PM Changeset in webkit [200938] by fred.wang@free.fr
  • 3 edits in trunk/Source/WebCore

Small removal of useless code for MathML token elements
https://bugs.webkit.org/show_bug.cgi?id=157568

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

We remove two pieces of code for MathML token elements with unclear purposes and that do not
have any effect on math rendering.

No new tests, behavior is unchanged.

  • css/mathml.css:

(mtext): Deleted. This was probably a hack that is no longer needed with the latest math font
ascent/descent management.

  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::createElementRenderer): Deleted. Removing this does not break
the mentioned test.

5:48 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
5:47 PM Changeset in webkit [200937] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] Fix some bogus expectations broken by the previous commit

  • platform/gtk/TestExpectations:
5:45 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
5:41 PM Changeset in webkit [200936] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] More unreviewed test expectations gardening

  • platform/gtk/TestExpectations:
5:12 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
5:10 PM Changeset in webkit [200935] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] More Unreviewed test expectations gardening

  • platform/gtk/TestExpectations:
4:30 PM Changeset in webkit [200934] by Chris Dumez
  • 86 edits
    2 copies in trunk/Source

Use more references in JS wrappers related code
https://bugs.webkit.org/show_bug.cgi?id=157721

Reviewed by Darin Adler.

Source/WebCore:

  • Use more references in JS wrappers related code.
  • Avoid some refcounting churn when using toJSNewlyCreated() and in HTML/SVG elements factories by moving the Ref<> around.
  • Add toJS() / toJSNewlyCreated() implementations for Text, XMLDocument and HTMLDocument. Now that toJSNewlyCreated() takes a Ref<>&& / RefPtr<>&& in, the compiler is no longer able to implicitly use the toJSNewlyCreated() implementation of a parent class for a subclass type (complains about calls being ambiguous). I thought about updating the bindings generator to always generate a toJSNewlyCreated() for all wrapper types (that would call the one on the parent class if the subclass does not have a proper implementation). However this would add some complexity to the bindings generator and it did not seem worth it because [NewObject] and therefore toJSNewlyCreated() is only used for a very limited set of subtypes. I have therefore decided to add the toJS() / toJSNewlyCreated() implementations for the subtypes in question. This also has the benefit of avoiding calling the more complex implementations on Node / Document.
  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSAnimationTimelineCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSAudioContextCustom.cpp:

(WebCore::constructJSAudioContext):

  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSBlobCustom.cpp:

(WebCore::constructJSBlob):

  • bindings/js/JSCSSRuleCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSCSSValueCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSDOMBinding.h:

(WebCore::getCachedWrapper):
(WebCore::createWrapper):
(WebCore::wrap):
(WebCore::getExistingWrapper):
(WebCore::createNewWrapper):
(WebCore::toJS):
(WebCore::finiteInt32Value): Deleted.

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::createNewDocumentWrapper):
(WebCore::toJS):
(WebCore::cachedDocumentWrapper):
(WebCore::reportMemoryForFramelessDocument):
(WebCore::toJSNewlyCreated):

  • bindings/js/JSDocumentCustom.h:
  • bindings/js/JSDocumentFragmentCustom.cpp:

(WebCore::createNewDocumentFragmentWrapper):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/JSElementCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSElementCustom.h:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSEventCustom.cpp:

(WebCore::createNewEventWrapper):
(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/js/JSFileCustom.cpp:

(WebCore::constructJSFile):

  • bindings/js/JSHTMLCollectionCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSHTMLDocumentCustom.cpp:

(WebCore::createNewHTMLDocumentWrapper):
(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/js/JSHTMLTemplateElementCustom.cpp:

(WebCore::JSHTMLTemplateElement::content):

  • bindings/js/JSImageDataCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSNodeCustom.cpp:

(WebCore::createWrapperInline):
(WebCore::createWrapper):
(WebCore::toJSNewlyCreated):
(WebCore::getOutOfLineCachedWrapper):

  • bindings/js/JSNodeCustom.h:

(WebCore::toJS):

  • bindings/js/JSNodeListCustom.cpp:

(WebCore::createWrapper):
(WebCore::toJSNewlyCreated):

  • bindings/js/JSNodeListCustom.h:

(WebCore::toJS):

  • bindings/js/JSRTCPeerConnectionCustom.cpp:

(WebCore::constructJSRTCPeerConnection):

  • bindings/js/JSRTCSessionDescriptionCustom.cpp:

(WebCore::constructJSRTCSessionDescription):

  • bindings/js/JSSVGPathSegCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSStyleSheetCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSTextCustom.cpp: Copied from Source/WebCore/dom/XMLDocument.idl.

(WebCore::createNewTextWrapper):
(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/js/JSTextTrackCueCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSTrackCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSXMLDocumentCustom.cpp: Copied from Source/WebCore/bindings/js/JSDocumentFragmentCustom.cpp.

(WebCore::createNewXMLDocumentWrapper):
(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):

  • bindings/scripts/test/JS/*: Rebaseline bindings tests.
  • dom/Element.cpp:

(WebCore::Element::setInnerHTML):

  • dom/Text.idl:
  • dom/XMLDocument.idl:
  • dom/make_names.pl:

(printWrapperFunctions):
(printWrapperFactoryCppFile):
(printWrapperFactoryHeaderFile):

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):

  • html/HTMLDocument.idl:
  • html/HTMLTemplateElement.cpp:

(WebCore::HTMLTemplateElement::content):
(WebCore::HTMLTemplateElement::cloneNodeInternal):

  • html/HTMLTemplateElement.h:
  • html/parser/HTMLConstructionSite.cpp:

(WebCore::insert):
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::ownerDocumentForCurrentNode):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForNode):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::startElementNs):

Source/WTF:

Add new static_reference_cast() overload that takes a Ref<U>&& in
in order to downcast Ref<> types without causing ref-counting
churn.

  • wtf/Ref.h:

(WTF::static_reference_cast):

4:08 PM Changeset in webkit [200933] by fpizlo@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

DFG::Plan shouldn't read from its VM once it's been cancelled
https://bugs.webkit.org/show_bug.cgi?id=157726

Reviewed by Saam Barati.

Plan::vm was a reference, not a pointer, and so wasn't nulled by Plan::cancel(). So, a
cancelled plan may have a dangling pointer to a VM: we could delete the VM after cancelling
the plan.

Prior to http://trac.webkit.org/changeset/200705, this was probably fine because nobody
would read Plan::vm if the plan was cancelled. But r200705 changed that. It was a hard
regression to spot because usually a cancelled plan will still refer to a valid VM.

This change fixes the regression and makes it a lot easier to spot the regression in the
future. Plan::vm is now a pointer and we null it in Plan::cancel(). Now if you make this
mistake, you will get a crash anytime the Plan is cancelled, not just anytime the plan is
cancelled and the VM gets deleted. Also, it's now very clear what to do when you want to
use Plan::vm on the cancel path: you can null-check vm; if it's null, assume the worst.

Because we null the VM of a cancelled plan, we cannot have Safepoint::vm() return the
plan's VM anymore. That's because when we cancel a plan that is at a safepoint, we use the
safepoint's VM to determine whether this is one of our safepoints *after* the plan is
already cancelled. So, Safepoint now has its own copy of m_vm, and that copy gets nulled
when the Safepoint is cancelled. The Safepoint's m_vm will be nulled moments after Plan's
vm gets nulled (see Worklist::removeDeadPlans(), which has a cancel path for Plans in one
loop and a cancel path for Safepoints in the loop after it).

  • dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::finalizeCommon):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::computeCompileTimes):
(JSC::DFG::Plan::reportCompileTimes):
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::reallyAdd):
(JSC::DFG::Plan::notifyCompiling):
(JSC::DFG::Plan::finalizeWithoutNotifyingCallback):
(JSC::DFG::Plan::cancel):

  • dfg/DFGPlan.h:

(JSC::DFG::Plan::canTierUpAndOSREnter):

  • dfg/DFGSafepoint.cpp:

(JSC::DFG::Safepoint::cancel):
(JSC::DFG::Safepoint::vm):

  • dfg/DFGSafepoint.h:
  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::isActiveForVM):
(JSC::DFG::Worklist::waitUntilAllPlansForVMAreReady):
(JSC::DFG::Worklist::removeAllReadyPlansForVM):
(JSC::DFG::Worklist::rememberCodeBlocks):
(JSC::DFG::Worklist::visitWeakReferences):
(JSC::DFG::Worklist::removeDeadPlans):
(JSC::DFG::Worklist::runThread):

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeFunction):

3:13 PM Changeset in webkit [200932] by Darin Adler
  • 3 edits in trunk/Source/WebCore

Something tiny left out of the last patch.

  • WebCore.xcodeproj/project.pbxproj: Allow Xcode to update this file.
  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyInlineStyleChange): Removed unneeded null check; all
code paths already have null checks.

3:12 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
3:08 PM Changeset in webkit [200931] by Darin Adler
  • 26 edits in trunk/Source

More CTTE and other cleanups for HTML editing header
https://bugs.webkit.org/show_bug.cgi?id=157722

Reviewed by Chris Dumez.

Source/WebCore:

These changes are mostly things Chris asked for in his review of my last patch
or other related style and small efficiency improvements.

  • using nullptr instead of 0
  • using is<Text> instead of isTextNode and is<> instead of hasTagName
  • changing argument type of functions like editingIgnoresContent to a reference
  • using { } instead of constructor calls for classes like Position
  • using words like position intead of abbreviations like pos
  • using auto rather than explicit types
  • rename functions that return true for HTMLElement to express that in the function names
  • dom/Position.cpp:

(WebCore::nextRenderedEditable): nullptr
(WebCore::previousRenderedEditable): nullptr
(WebCore::Position::Position): is<>, reference
(WebCore::Position::moveToPosition): reference
(WebCore::Position::offsetForPositionAfterAnchor): Added a null assertion and
null check that replaces the one that used to be in lastOffsetForEditing.
(WebCore::Position::parentAnchoredEquivalent): { }, reference
(WebCore::Position::computeNodeBeforePosition): nullptr
(WebCore::Position::computeNodeAfterPosition): nullptr
(WebCore::Position::anchorTypeForLegacyEditingPosition): reference
(WebCore::Position::previous): reference
(WebCore::Position::next): reference
(WebCore::Position::parentEditingBoundary): nullptr
(WebCore::Position::previousCharacterPosition): { }, pos -> position
(WebCore::Position::nextCharacterPosition): { }, pos -> position
(WebCore::endsOfNodeAreVisuallyDistinctPositions): reference
(WebCore::Position::upstream): { }, pos -> position
(WebCore::Position::downstream): { }, pos -> position
(WebCore::Position::rootUserSelectAllForNode): nullptr
(WebCore::Position::isCandidate): auto, reference, is<>
(WebCore::Position::rendersInDifferentPosition): pos -> position, auto, is<>
(WebCore::Position::leadingWhitespacePosition): { }, is<>
(WebCore::Position::trailingWhitespacePosition): { }
(WebCore::Position::getInlineBoxAndOffset): reference
(WebCore::Position::equals): reference, is<>

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::operator Position): reference
(WebCore::PositionIterator::isCandidate): reference

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): is<>
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange): is<>, reference
(WebCore::ApplyStyleCommand::removeConflictingInlineStyleFromRun): reference
(WebCore::ApplyStyleCommand::removeInlineStyle): auto, is<>, reference
(WebCore::ApplyStyleCommand::nodeFullySelected): is<>
(WebCore::ApplyStyleCommand::nodeFullyUnselected): is<>
(WebCore::ApplyStyleCommand::splitTextAtStart): is<>
(WebCore::ApplyStyleCommand::splitTextElementAtStart): is<>
(WebCore::ApplyStyleCommand::splitTextElementAtEnd): is<>
(WebCore::ApplyStyleCommand::isValidCaretPositionInTextNode): is<>
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Removed unneeded
is<Element> calls before calling areIdenticalElements.
(WebCore::ApplyStyleCommand::positionToComputeInlineStyleChange): Tightened
up logic for the loop to avoid redundant checks.
(WebCore::ApplyStyleCommand::applyInlineStyleChange): auto

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::insertNodeAt): reference
(WebCore::CompositeEditCommand::appendNode): reference
(WebCore::CompositeEditCommand::moveParagraphs): isListHTMLElement

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::handleGeneralDelete): reference

  • editing/FormatBlockCommand.cpp: Fixed order of includes.

(WebCore::enclosingBlockToSplitTreeTo): isListHTMLElement

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply): reference

  • editing/ModifySelectionListLevel.cpp:

(WebCore::getStartEndListChildren): isListHTMLElement
(WebCore::IncreaseSelectionListLevelCommand::doApply):isListHTMLElement
(WebCore::canDecreaseListLevel):isListHTMLElement

  • editing/RemoveNodeCommand.cpp: Removed unneeded include.
  • editing/ReplaceNodeWithSpanCommand.cpp:

(WebCore::ReplaceNodeWithSpanCommand::doApply): Use HTMLSpanElement::create.

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::isInterchangeNewlineNode): is<>, downcast<>
(WebCore::isInterchangeConvertedSpaceSpan): is<>, downcast<>
(WebCore::positionAvoidingPrecedingNodes): pos -> position, reference
(WebCore::ReplaceSelectionCommand::doApply): isListHTMLElement
(WebCore::ReplaceSelectionCommand::insertAsListItems): isListHTMLElement

  • editing/SpellChecker.cpp: Removed unneeded include.
  • editing/TextIterator.cpp:

(WebCore::SimplifiedBackwardsTextIterator::advance): reference

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::selectionFromContentsOfNode): reference

  • editing/VisibleUnits.cpp:

(WebCore::previousLinePosition): reference
(WebCore::nextLinePosition): reference
(WebCore::findStartOfParagraph): reference
(WebCore::findEndOfParagraph): reference

  • editing/htmlediting.cpp:

(WebCore::canHaveChildrenForEditing): Moved here from header file so we don't
have to include "Text.h". Not critical to inline this.
(WebCore::isAtomicNode): reference
(WebCore::lastOffsetForEditing): reference
(WebCore::stringWithRebalancedWhitespace): Changed to use StringBuilder instead
of Vector<UChar> so this won't turn 8-bit strings into 16-bit strings. Changed
to not use the StringBuilder at all until we encounter a character that needs
to be changed.
(WebCore::isSpecialHTMLElement): Renamed to make it clear that it only can return
true for a Node that is an HTMLElement.
(WebCore::firstInSpecialElement): isSpecialHTMLElement
(WebCore::lastInSpecialElement): isSpecialHTMLElement
(WebCore::isListHTMLElement): Renamed to make it clear that it can only return
true for a Node that is an HTMLElement.
(WebCore::isListItem): isListHTMLElement, is<>
(WebCore::enclosingNodeOfType): p -> position, nullptr
(WebCore::highestEnclosingNodeOfType): p -> position
(WebCore::enclosingListChild): isListHTMLElement, is<>
(WebCore::embeddedSublist): isListHTMLElement
(WebCore::appendedSublist):isListHTMLElement
(WebCore::caretMaxOffset): is<>
(WebCore::caretRendersInsideNode): changed to take a reference
(WebCore::rendererForCaretPainting): reference

  • editing/htmlediting.h: Updated for name changes and type changes above.
  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): reference
(WebCore::highestAncestorToWrapMarkup): auto, reference, isListHTMLElement

  • html/HTMLSpanElement.cpp:

(WebCore::HTMLSpanElement::create): Added overload that does not require a tag name.

  • html/HTMLSpanElement.h: Ditto.
  • page/DOMSelection.cpp: Removed unneeded includes.
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::localCaretRect): reference

Source/WebKit/ios:

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame previousUnperturbedDictationResultBoundaryFromPosition:]): auto
(-[WebFrame nextUnperturbedDictationResultBoundaryFromPosition:]): auto

3:05 PM Changeset in webkit [200930] by Michael Catanzaro
  • 1 edit in trunk/LayoutTests/ChangeLog

[GTK] Unreviewed test expectations gardening

3:05 PM Changeset in webkit [200929] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

[GTK] Unreviewed test expectations gardening

2:11 PM Changeset in webkit [200928] by Yusuke Suzuki
  • 13 edits
    2 adds in trunk/Source/JavaScriptCore

Modernize Intl constructors; using InternalFunction::createSubclassStructure
https://bugs.webkit.org/show_bug.cgi?id=157082

Reviewed by Darin Adler.

Previously, Intl constructors retrieve "prototype" to inherit the "new.target".
At that time, this mis-assumed that getDirect() always returns meaningful JS value.
Actually, it returns an empty value if a property does not exist.

Instead of fixing this assertion, we now use InternalFunction::createSubclassStructure
in Intl constructors. It is modern and preferable way since it can cache the derived
structures in InternalFunction.

This patch also cleans up the workaround in Intl.NumberFormat and Intl.DateTimeFormat.
Those code are largely duplicate. This is now extracted into
constructIntlInstanceWithWorkaroundForLegacyIntlConstructor. This clean up does not
have any behavior changes. They are already tested in LayoutTests/js/intl-datetimeformat
and LayoutTests/js/intl-numberformat.

(JSC::IntlCollator::create):

  • runtime/IntlCollator.h:
  • runtime/IntlCollatorConstructor.cpp:

(JSC::constructIntlCollator):
(JSC::callIntlCollator):

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::create):

  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlDateTimeFormatConstructor.cpp:

(JSC::constructIntlDateTimeFormat):
(JSC::callIntlDateTimeFormat):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototypeGetterFormat):
(JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::create):

  • runtime/IntlNumberFormat.h:
  • runtime/IntlNumberFormatConstructor.cpp:

(JSC::constructIntlNumberFormat):
(JSC::callIntlNumberFormat):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototypeGetterFormat):
(JSC::IntlNumberFormatPrototypeFuncResolvedOptions):

  • runtime/IntlObjectInlines.h: Added.

(JSC::constructIntlInstanceWithWorkaroundForLegacyIntlConstructor):

  • tests/stress/intl-constructors-with-proxy.js: Added.

(shouldBe):
(throw.new.Error.Empty):
(throw.new.Error):
(shouldBe.Empty):

8:36 AM Changeset in webkit [200927] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

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

Does not build if MEDIA_SESSION is enabled (Requested by
cdumez_ on #webkit).

Reverted changeset:

"Use new Web IDL dictionary support for
MediaSession.setMetadata()"
https://bugs.webkit.org/show_bug.cgi?id=157711
http://trac.webkit.org/changeset/200925

3:34 AM Changeset in webkit [200926] by fred.wang@free.fr
  • 2 edits in trunk/Websites/planet.webkit.org

Remove Frédéric Wang's blog from the planet
https://bugs.webkit.org/show_bug.cgi?id=157724

Reviewed by Philippe Normand.

  • config.ini: Remove my feed url since my homepage changed and it is included twice after r169566.

May 14, 2016:

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

Use new Web IDL dictionary support for MediaSession.setMetadata()
https://bugs.webkit.org/show_bug.cgi?id=157711

Reviewed by Eric Carlson.

Use new Web IDL dictionary support for MediaSession.setMetadata().

No new tests, no intended Web-exposed behavior change.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::setMetadata):
(WebCore::MediaSession::deactivate): Deleted.

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSession.idl:
3:17 PM Changeset in webkit [200924] by commit-queue@webkit.org
  • 95 edits
    21 deletes in trunk

Remove LegacyProfiler
https://bugs.webkit.org/show_bug.cgi?id=153565

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-14
Reviewed by Mark Lam.

.:

  • ManualTests/inspector/profiler-test-call.html: Removed.
  • ManualTests/inspector/profiler-test-many-calls-in-the-same-scope.html: Removed.

Source/JavaScriptCore:

JavaScriptCore now provides a sampling profiler and it is enabled
by all ports. Web Inspector switched months ago to using the
sampling profiler and displaying its data. Remove the legacy
profiler, as it is no longer being used by anything other then
console.profile and tests. We will update console.profile's
behavior soon to have new behavior and use the sampling data.

  • API/JSProfilerPrivate.cpp: Removed.
  • API/JSProfilerPrivate.h: Removed.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset): Deleted.
(JSC::computeDefsForBytecodeOffset): Deleted.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode): Deleted.

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitCallVarargs):
(JSC::BytecodeGenerator::emitCallVarargsInTailPosition):
(JSC::BytecodeGenerator::emitConstructVarargs):
(JSC::BytecodeGenerator::emitConstruct):

  • bytecompiler/BytecodeGenerator.h:

(JSC::CallArguments::profileHookRegister): Deleted.
(JSC::BytecodeGenerator::shouldEmitProfileHooks): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::CallArguments::CallArguments): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock): Deleted.

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel): Deleted.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize): Deleted.

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC): Deleted.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Deleted.

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

(JSC::DFG::safeToExecute): Deleted.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile): Deleted.

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::callFunctionWithEvalEnabled):

  • inspector/protocol/Timeline.json:
  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::operator()): Deleted.
(JSC::Interpreter::execute): Deleted.
(JSC::Interpreter::executeCall): Deleted.
(JSC::Interpreter::executeConstruct): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass): Deleted.

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_profile_will_call): Deleted.
(JSC::JIT::emit_op_profile_did_call): Deleted.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_profile_will_call): Deleted.
(JSC::JIT::emit_op_profile_did_call): Deleted.

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

(JSC::LLInt::LLINT_SLOW_PATH_DECL): Deleted.

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • parser/ParserModes.h:
  • profiler/CallIdentifier.h: Removed.
  • profiler/LegacyProfiler.cpp: Removed.
  • profiler/LegacyProfiler.h: Removed.
  • profiler/Profile.cpp: Removed.
  • profiler/Profile.h: Removed.
  • profiler/ProfileGenerator.cpp: Removed.
  • profiler/ProfileGenerator.h: Removed.
  • profiler/ProfileNode.cpp: Removed.
  • profiler/ProfileNode.h: Removed.
  • profiler/ProfilerJettisonReason.cpp:

(WTF::printInternal): Deleted.

  • profiler/ProfilerJettisonReason.h:
  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):

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

(JSC::ScriptExecutable::newCodeBlockFor):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):
(JSC::JSGlobalObject::createModuleProgramCodeBlock):
(JSC::JSGlobalObject::~JSGlobalObject): Deleted.
(JSC::JSGlobalObject::hasLegacyProfiler): Deleted.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::supportsLegacyProfiling): Deleted.

  • runtime/Options.h:
  • runtime/VM.cpp:

(JSC::VM::VM): Deleted.
(JSC::SetEnabledProfilerFunctor::operator()): Deleted.
(JSC::VM::setEnabledProfiler): Deleted.

  • runtime/VM.h:

(JSC::VM::enabledProfiler): Deleted.
(JSC::VM::enabledProfilerAddress): Deleted.

Source/WebCore:

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • ForwardingHeaders/profiler/LegacyProfiler.h: Removed.
  • ForwardingHeaders/profiler/Profile.h: Removed.
  • ForwardingHeaders/profiler/ProfileNode.h: Removed.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCustomXPathNSResolver.cpp:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::supportsLegacyProfiling): Deleted.
(WebCore::JSDOMWindowBase::supportsRichSourceInfo): Deleted.

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

(WebCore::JSWorkerGlobalScopeBase::supportsLegacyProfiling): Deleted.

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • bindings/js/ScriptCachedFrameData.cpp:
  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::clearWindowShell): Deleted.

  • bindings/js/ScriptProfile.h: Removed.
  • bindings/js/ScriptProfileNode.h: Removed.
  • bindings/scripts/CodeGeneratorJS.pm:

(AddClassForwardIfNeeded): Deleted.

  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/TestObj.idl:
  • css/CSSParser.cpp:
  • dom/Document.cpp:
  • inspector/InspectorConsoleInstrumentation.h:

(WebCore::InspectorInstrumentation::stopProfiling):

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::legacyProfilerEnabled): Deleted.
(WebCore::InspectorController::setLegacyProfilerEnabled): Deleted.

  • inspector/InspectorController.h:
  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::stopProfilingImpl):

  • inspector/InspectorInstrumentation.h:
  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):

  • inspector/InspectorTimelineAgent.h:
  • inspector/PageDebuggerAgent.cpp:
  • inspector/PageRuntimeAgent.cpp:
  • inspector/ScriptProfile.idl: Removed.
  • inspector/ScriptProfileNode.idl: Removed.
  • inspector/TimelineRecordFactory.cpp:

(WebCore::buildAggregateCallInfoInspectorObject): Deleted.
(WebCore::buildInspectorObject): Deleted.
(WebCore::buildProfileInspectorObject): Deleted.
(WebCore::TimelineRecordFactory::appendProfile): Deleted.

  • page/DOMWindow.cpp:
  • page/Page.cpp:
  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::profileEnd):
(WebCore::PageConsoleClient::clearProfiles): Deleted.

  • page/PageConsoleClient.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState): Deleted.
(WebCore::Internals::consoleProfiles): Deleted.
(WebCore::Internals::setLegacyJavaScriptProfilingEnabled): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/js/WebCoreTestSupport.cpp:
  • xml/XSLStyleSheetLibxslt.cpp:
  • xml/XSLTProcessorLibxslt.cpp:

Source/WebKit/win:

  • Interfaces/IWebInspector.idl:
  • WebView.cpp:
  • WebInspector.cpp:

(WebInspector::isJavaScriptProfilingEnabled): Deleted.
(WebInspector::setJavaScriptProfilingEnabled): Deleted.

LayoutTests:

  • fast/profiler/anonymous-event-handler-expected.txt: Removed.
  • fast/profiler/anonymous-event-handler.html: Removed.
  • fast/profiler/anonymous-function-called-from-different-contexts-expected.txt: Removed.
  • fast/profiler/anonymous-function-called-from-different-contexts.html: Removed.
  • fast/profiler/anonymous-function-calls-built-in-functions-expected.txt: Removed.
  • fast/profiler/anonymous-function-calls-built-in-functions.html: Removed.
  • fast/profiler/anonymous-function-calls-eval-expected.txt: Removed.
  • fast/profiler/anonymous-function-calls-eval.html: Removed.
  • fast/profiler/anonymous-functions-with-display-names-expected.txt: Removed.
  • fast/profiler/anonymous-functions-with-display-names.html: Removed.
  • fast/profiler/apply-expected.txt: Removed.
  • fast/profiler/apply.html: Removed.
  • fast/profiler/built-in-function-calls-anonymous-expected.txt: Removed.
  • fast/profiler/built-in-function-calls-anonymous.html: Removed.
  • fast/profiler/built-in-function-calls-user-defined-function-expected.txt: Removed.
  • fast/profiler/built-in-function-calls-user-defined-function.html: Removed.
  • fast/profiler/call-expected.txt: Removed.
  • fast/profiler/call-register-leak-expected.txt: Removed.
  • fast/profiler/call-register-leak.html: Removed.
  • fast/profiler/call.html: Removed.
  • fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope-expected.txt: Removed.
  • fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope.html: Removed.
  • fast/profiler/compare-multiple-profiles-expected.txt: Removed.
  • fast/profiler/compare-multiple-profiles.html: Removed.
  • fast/profiler/constructor-expected.txt: Removed.
  • fast/profiler/constructor.html: Removed.
  • fast/profiler/dead-time-expected.txt: Removed.
  • fast/profiler/dead-time.html: Removed.
  • fast/profiler/document-dot-write-expected.txt: Removed.
  • fast/profiler/document-dot-write.html: Removed.
  • fast/profiler/event-handler-expected.txt: Removed.
  • fast/profiler/event-handler.html: Removed.
  • fast/profiler/execution-context-and-eval-on-same-line-expected.txt: Removed.
  • fast/profiler/execution-context-and-eval-on-same-line.html: Removed.
  • fast/profiler/inline-event-handler-expected.txt: Removed.
  • fast/profiler/inline-event-handler.html: Removed.
  • fast/profiler/many-calls-in-the-same-scope-expected.txt: Removed.
  • fast/profiler/many-calls-in-the-same-scope.html: Removed.
  • fast/profiler/multiple-and-different-scoped-anonymous-function-calls-expected.txt: Removed.
  • fast/profiler/multiple-and-different-scoped-anonymous-function-calls.html: Removed.
  • fast/profiler/multiple-and-different-scoped-function-calls-expected.txt: Removed.
  • fast/profiler/multiple-and-different-scoped-function-calls.html: Removed.
  • fast/profiler/multiple-anonymous-functions-called-from-the-same-function-expected.txt: Removed.
  • fast/profiler/multiple-anonymous-functions-called-from-the-same-function.html: Removed.
  • fast/profiler/multiple-frames-expected.txt: Removed.
  • fast/profiler/multiple-frames.html: Removed.
  • fast/profiler/named-functions-with-display-names-expected.txt: Removed.
  • fast/profiler/named-functions-with-display-names.html: Removed.
  • fast/profiler/nested-anonymous-functon-expected.txt: Removed.
  • fast/profiler/nested-anonymous-functon.html: Removed.
  • fast/profiler/nested-start-and-stop-profiler-expected.txt: Removed.
  • fast/profiler/nested-start-and-stop-profiler.html: Removed.
  • fast/profiler/no-execution-context-expected.txt: Removed.
  • fast/profiler/no-execution-context.html: Removed.
  • fast/profiler/one-execution-context-expected.txt: Removed.
  • fast/profiler/one-execution-context.html: Removed.
  • fast/profiler/profile-calls-in-included-file-expected.txt: Removed.
  • fast/profiler/profile-calls-in-included-file.html: Removed.
  • fast/profiler/profile-with-no-title-expected.txt: Removed.
  • fast/profiler/profile-with-no-title.html: Removed.
  • fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting-expected.txt: Removed.
  • fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html: Removed.
  • fast/profiler/profiling-from-a-nested-location-expected.txt: Removed.
  • fast/profiler/profiling-from-a-nested-location.html: Removed.
  • fast/profiler/resources/other-frame.html: Removed.
  • fast/profiler/resources/other-window.html: Removed.
  • fast/profiler/resources/profiler-test-JS-resources.js: Removed.
  • fast/profiler/simple-event-call-expected.txt: Removed.
  • fast/profiler/simple-event-call.html: Removed.
  • fast/profiler/simple-no-level-change-expected.txt: Removed.
  • fast/profiler/simple-no-level-change.html: Removed.
  • fast/profiler/start-and-stop-profiler-multiple-times-expected.txt: Removed.
  • fast/profiler/start-and-stop-profiler-multiple-times.html: Removed.
  • fast/profiler/start-and-stop-profiling-in-the-same-function-expected.txt: Removed.
  • fast/profiler/start-and-stop-profiling-in-the-same-function.html: Removed.
  • fast/profiler/start-but-dont-stop-profiling-expected.txt: Removed.
  • fast/profiler/start-but-dont-stop-profiling.html: Removed.
  • fast/profiler/stop-profiling-after-setTimeout-expected.txt: Removed.
  • fast/profiler/stop-profiling-after-setTimeout.html: Removed.
  • fast/profiler/stop-then-function-call-expected.txt: Removed.
  • fast/profiler/stop-then-function-call.html: Removed.
  • fast/profiler/throw-exception-from-eval-expected.txt: Removed.
  • fast/profiler/throw-exception-from-eval.html-disabled: Removed.
  • fast/profiler/two-execution-contexts-expected.txt: Removed.
  • fast/profiler/two-execution-contexts.html: Removed.
  • fast/profiler/user-defined-function-calls-built-in-functions-expected.txt: Removed.
  • fast/profiler/user-defined-function-calls-built-in-functions.html: Removed.
  • fast/profiler/window-dot-eval-expected.txt: Removed.
  • fast/profiler/window-dot-eval.html: Removed.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
2:07 PM Changeset in webkit [200923] by rniwa@webkit.org
  • 5 edits
    2 adds in trunk

ToT WebKit doesn't show tooltip on perf dashboard's summary page
https://bugs.webkit.org/show_bug.cgi?id=157705

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by WebKit doesn't look for the title attribute across shadow boundaries.
Fixed it by using a newly added Node::parentNodeInComposedTree in HitTestResult::title.

Test: fast/shadow-dom/tooltip-on-composed-tree.html

  • dom/Node.cpp:

(WebCore::Node::parentInComposedTree): Added.

  • dom/Node.h:
  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::title): Fixed the bug.
(WebCore::HitTestResult::innerTextIfTruncated): Fixed a related bug when ShowsToolTipOverTruncatedText
is enabled. Unfortunately, there is no machinery to test this feature yet.

LayoutTests:

Added a regression test for finding a tooltip across shadow boundaries.

  • fast/shadow-dom/tooltip-on-composed-tree-expected.txt: Added.
  • fast/shadow-dom/tooltip-on-composed-tree.html: Added.
1:09 PM Changeset in webkit [200922] by Darin Adler
  • 34 edits in trunk/Source

CTTE for the HTML editing header
https://bugs.webkit.org/show_bug.cgi?id=157676

Reviewed by Chris Dumez.

Source/WebCore:

  • accessibility/AXObjectCache.cpp:

(WebCore::AccessibilityReplacedText::postTextStateChangeNotification): Use auto so we have a
change to compile more efficient code using the more specific types returned, rather than
explicitly using a less specific type like Node.
(WebCore::AXObjectCache::startCharacterOffsetOfParagraph): Ditto.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp: Update for deprecatedIsEditingWhitespace name.
  • dom/Position.cpp:

(WebCore::Position::offsetForPositionAfterAnchor): Update to use a reference instead of a pointer.
(WebCore::Position::next): Ditto.
(WebCore::Position::atFirstEditingPositionForNode): Ditto.
(WebCore::Position::atLastEditingPositionForNode): Ditto.
(WebCore::Position::atStartOfTree): Ditto.
(WebCore::Position::atEndOfTree): Ditto.
(WebCore::Position::upstream): Ditto.
(WebCore::Position::downstream): Ditto.
(WebCore::Position::rendersInDifferentPosition): Ditto.

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::increment): Ditto.
(WebCore::PositionIterator::decrement): Ditto.
(WebCore::PositionIterator::atEnd): Ditto.
(WebCore::PositionIterator::atEndOfNode): Ditto.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::markPrecedingWhitespaceForDeletedAutocorrectionAfterCommand):
Use new name, deprecatedIsEditingWhitespace.

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::formatSelection): Use auto (see rationale above).

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyBlockStyle): More of the same.
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Ditto.
(WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle): Ditto.
(WebCore::ApplyStyleCommand::isValidCaretPositionInTextNode): Ditto.
(WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical): Ditto.
(WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical): Ditto.
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Ditto.

  • editing/BreakBlockquoteCommand.cpp:

(WebCore::BreakBlockquoteCommand::doApply): Ditto.

  • editing/CompositeEditCommand.cpp:

(WebCore::postTextStateChangeNotification): Ditto.
(WebCore::CompositeEditCommand::insertNodeAt): Ditto.
(WebCore::CompositeEditCommand::positionOutsideTabSpan): Ditto.
(WebCore::containsOnlyDeprecatedEditingWhitespace): Ditto.
(WebCore::CompositeEditCommand::shouldRebalanceLeadingWhitespaceFor): Ditto.
(WebCore::CompositeEditCommand::rebalanceWhitespaceAt): Ditto.
(WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring): Ditto.
(WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt): Ditto.
(WebCore::CompositeEditCommand::moveParagraphWithClones): Ditto.
(WebCore::CompositeEditCommand::moveParagraphs): Ditto.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::initializeStartEnd): Ditto.
(WebCore::DeleteSelectionCommand::handleGeneralDelete): Ditto.
(WebCore::DeleteSelectionCommand::mergeParagraphs): Ditto.
(WebCore::DeleteSelectionCommand::doApply): Ditto.

  • editing/EditCommand.cpp:

(WebCore::EditCommand::postTextStateChangeNotification): Ditto.

  • editing/EditingStyle.cpp: Ditto.
  • editing/Editor.cpp:

(WebCore::Editor::advanceToNextMisspelling): Ditto.

  • editing/FormatBlockCommand.cpp:

(WebCore::FormatBlockCommand::formatRange): Ditto.

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::outdentParagraph): Ditto.

  • editing/InsertLineBreakCommand.cpp:

(WebCore::InsertLineBreakCommand::doApply): Ditto.

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::fixOrphanedListChild): Ditto.
(WebCore::InsertListCommand::doApplyForSingleParagraph): Ditto.
(WebCore::InsertListCommand::unlistifyParagraph): Ditto.
(WebCore::InsertListCommand::listifyParagraph): Ditto.

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply): Ditto.

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::insertTab): Ditto.

  • editing/ModifySelectionListLevel.cpp:

(WebCore::IncreaseSelectionListLevelCommand::doApply): Ditto.

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplacementFragment::removeUnrenderedNodes): Ditto.
(WebCore::ReplaceSelectionCommand::shouldMerge): Ditto.
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline): Ditto.
(WebCore::ReplaceSelectionCommand::mergeEndIfNeeded): Ditto.
(WebCore::enclosingInline): Ditto.
(WebCore::ReplaceSelectionCommand::doApply): Ditto.

  • editing/TextIterator.cpp:

(WebCore::maxOffsetIncludingCollapsedSpaces): Ditto.

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::honorEditingBoundaryAtOrBefore): Ditto.
(WebCore::VisiblePosition::honorEditingBoundaryAtOrAfter): Ditto.

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity): Ditto.
(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Ditto.

  • editing/VisibleUnits.cpp:

(WebCore::previousRootInlineBoxCandidatePosition): Ditto.
(WebCore::nextRootInlineBoxCandidatePosition): Ditto.
(WebCore::startOfParagraph): Ditto.
(WebCore::endOfParagraph): Ditto.
(WebCore::startOfEditableContent): Ditto.
(WebCore::endOfEditableContent): Ditto.

  • editing/htmlediting.cpp:

(WebCore::highestEditableRoot): Changed return type to ContainerNode. Maybe later could
change it to Element.
(WebCore::lowestEditableAncestor): Changed return type to Element.
(WebCore::isEditableToAccessibility): Use auto.
(WebCore::isRichlyEditablePosition): Ditto.
(WebCore::editableRootForPosition): Ditto.
(WebCore::unsplittableElementForPosition):Ditto.
(WebCore::nextCandidate): Streamline.
(WebCore::nextVisuallyDistinctCandidate): Ditto.
(WebCore::previousCandidate): Ditto.
(WebCore::previousVisuallyDistinctCandidate): Ditto.
(WebCore::firstEditablePositionAfterPositionInRoot): Changed arugment type to
ContainerNode.
(WebCore::lastEditablePositionBeforePositionInRoot): Ditto.
(WebCore::lastOffsetForEditing): Changed argument type to reference.
(WebCore::stringWithRebalancedWhitespace): Optimized the case where the function does
not need to change the string, so it just returns the passed string rather than a copy.
(WebCore::isTableStructureNode): Use auto.
(WebCore::isSpecialElement): Made this function private to the file. Use auto.
(WebCore::firstInSpecialElement): Return an HTMLElement.
(WebCore::lastInSpecialElement): Ditto.
(WebCore::isFirstVisiblePositionInSpecialElement): Made this function private to the file.
(WebCore::positionBeforeContainingSpecialElement): Changed out argument to HTMLElement.
(WebCore::isLastVisiblePositionInSpecialElement): Ditto.
(WebCore::positionAfterContainingSpecialElement): Ditto.
(WebCore::positionOutsideContainingSpecialElement): Ditto.
(WebCore::isFirstPositionAfterTable): Changed return type to Element.
(WebCore::isLastPositionBeforeTable): Ditto.
(WebCore::visiblePositionBeforeNode): Changed argument type to reference.
(WebCore::visiblePositionAfterNode): Ditto.
(WebCore::enclosingElementWithTag): Use auto. Removed special case for null since the
algorithm already handles null correctly.
(WebCore::enclosingNodeOfType): Use auto.
(WebCore::highestEnclosingNodeOfType): Ditto.
(WebCore::highestNodeToRemoveInPruning): Ditto.
(WebCore::enclosingTableCell): Changed return type to Element.
(WebCore::enclosingAnchorElement): Removed special case for null since the algorithm
already handles null correctly.
(WebCore::enclosingList): Use auto.
(WebCore::enclosingListChild): Use auto.
(WebCore::enclosingEmptyListItem): Use auto.
(WebCore::outermostEnclosingList): Use auto.
(WebCore::canMergeLists): Use references and more specific type. Since both elements are
known to be HTMLElement, compare local names instead of using hasTagName.
(WebCore::isRenderedTable): Use auto.
(WebCore::isTableCell): Ditto.
(WebCore::isEmptyTableCell): Ditto.
(WebCore::createBreakElement): Deleted. Callers can use HTMLBRElement directly.
(WebCore::createOrderedListElement): Deleted. Callers can use HTMLOListElement directly.
(WebCore::createUnorderedListElement): Deleted. Callers can use HTMLUListElement directly.
(WebCore::createListItemElement): Deleted. Callers can use HTMLLIElement directly.
(WebCore::isTabSpanNode): Remove redundant checks and did more specific typecast.
(WebCore::isTabSpanTextNode): Removed redundant null checks.
(WebCore::tabSpanNode): Changed return type to HTMLSpanElement.
(WebCore::positionOutsideTabSpan): Deleted. Unused function.
(WebCore::createTabSpanElement): Made one of the overloads private to this file. Use auto.
Changed argument type since we don't need to support null. Moved createEditingTextNode code,
specific to the version without a string into that function rather than the helper function.
(WebCore::isNodeRendered): Changed argument type to a reference.
(WebCore::numEnclosingMailBlockquotes): Streamlined.
(WebCore::isMailBlockquote): Use downcast instead of static_cast.
(WebCore::caretMinOffset): Take a reference instead of a pointer.
(WebCore::caretMaxOffset): Ditto.
(WebCore::selectionForParagraphIteration): Use auto.
(WebCore::indexForVisiblePosition): Ditto.
(WebCore::visiblePositionForIndex): Ditto.
(WebCore::visiblePositionForIndexUsingCharacterIterator): Ditto.
(WebCore::isVisiblyAdjacent): Made this private to this file.
(WebCore::isNodeVisiblyContainedWithin): Changed argument type to a reference.
(WebCore::areIdenticalElements): Changed argument types to references.
(WebCore::adjustedSelectionStartForStyleComputation): Use auto.
(WebCore::isBlockFlowElement): Changed argument type to a reference. Use auto.
(WebCore::deprecatedEnclosingBlockFlowElement): Updated for reference changes.
(WebCore::rendererForCaretPainting): Use auto.

  • editing/htmlediting.h: Use pragma once. Removed unneeded includes and forward declarations.

Removed various non-helpful comments (the sections still don't make sense; not really good to
group functions by their return types). Moved inline functoin bodies to the bottom of the file.
Renamed isWhitespace to deprecatedIsEditingWhitespace.

  • editing/markup.cpp:

(WebCore::createFragmentFromText): Use HTMLBRElement.

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::extend): Updated since caretMaxOffset takes a reference.

Source/WebKit/ios:

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame previousUnperturbedDictationResultBoundaryFromPosition:]): Update since
lastOffsetForEditing takes a reference now. Seems like this code should be in WebCore.
(-[WebFrame nextUnperturbedDictationResultBoundaryFromPosition:]): Ditto.

12:18 PM Changeset in webkit [200921] by mmaxfield@apple.com
  • 9 edits
    2 adds in trunk

Support ArrayBufferViews in the CSS Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=157694
<rdar://problem/25554267>

Source/WebCore:

This patch adds a new mode to CSSFontFaceSource for immediate (ArrayBuffer) data.
Then, FontFace can simply be hooked up to this new mode.

Reviewed by Darin Adler.

Test: fast/text/css-font-loading-arraybuffer.html

  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::CSSFontFaceSource):
(WebCore::CSSFontFaceSource::font):

  • css/CSSFontFaceSource.h:
  • css/FontFace.cpp:

(WebCore::FontFace::create):

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::ensureCustomFontData):
(WebCore::CachedFont::createCustomFontData):
(WebCore::CachedFont::createFont):
(WebCore::CachedFont::platformDataFromCustomData):

  • loader/cache/CachedFont.h:

LayoutTests:

Reviewed by Darin Adler.

  • fast/text/css-font-loading-arraybuffer-expected.txt: Added.
  • fast/text/css-font-loading-arraybuffer.html: Added.
10:56 AM Changeset in webkit [200920] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

[WebIDL] Add support for dictionary members of integer types
https://bugs.webkit.org/show_bug.cgi?id=157703

Reviewed by Darin Adler.

Add support for dictionary members of integer types, including support
for the [Clamp] and [EnforceRange] IDL extended attributes on such
members.

  • bindings/js/JSDOMConvert.h:

(WebCore::convert):
(WebCore::convertOptional):

  • Add the needed template specializations so we can use convertOptional() with integral types.
  • Use std::enable_if so the template specializations meants to be used for floating point types or integral types can only be instantiated for such types.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConversionRuleWithLeadingComma):
(GetIntegerConversionConfiguration):
(JSValueToNative):
Generate the right IntegerConversionConfiguration parameter for convert()
and convertOptional() when converting dictionary members of integral
types

  • bindings/scripts/IDLParser.pm:

(parseDictionaryMember):
Fix bug in the IDL parser where we weren't initializing the extended
attributes for dictionary members.

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

Add bindings tests coverage.

9:54 AM Changeset in webkit [200919] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Allocate MacGlyphToPathTranslator / CairoGlyphToPathTranslator on the stack
https://bugs.webkit.org/show_bug.cgi?id=157690

Reviewed by Myles C. Maxfield.

Allocate MacGlyphToPathTranslator / CairoGlyphToPathTranslator on the
stack. We also now use the subclass type for the local variable so it
will bypass the vtable for various virtual function calls (if the compiler
was not already smart enough to figure this out).

  • platform/graphics/cairo/FontCairo.cpp:

(WebCore::FontCascade::dashesForIntersectionsWithRect):

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::dashesForIntersectionsWithRect):

7:59 AM Changeset in webkit [200918] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Empty line shows arrow when hovering over Animation Frame Requested in timeline recording
https://bugs.webkit.org/show_bug.cgi?id=157707

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DataGrid.css:

(.data-grid:not(.variable-height-rows) > .data-container > table.data > tbody > tr > td > div):

May 13, 2016:

11:31 PM Changeset in webkit [200917] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix the iOS build after the protector variables renaming.

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray):

10:51 PM Changeset in webkit [200916] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

jsc: samplingProfilerStackTraces() without starting sampling should not cause jsc to crash
https://bugs.webkit.org/show_bug.cgi?id=157704

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-13
Reviewed by Saam Barati.

  • jsc.cpp:

(functionStartSamplingProfiler):
(functionSamplingProfilerStackTraces):
Throw an exception instead of crashing if we haven't started sampling.

  • inspector/agents/InspectorScriptProfilerAgent.cpp:

(Inspector::InspectorScriptProfilerAgent::startTracking):

  • runtime/VM.h:
  • runtime/VM.cpp:

(JSC::VM::ensureSamplingProfiler):
Switch ensure to returning a reference, like most other ensures.

10:14 PM Changeset in webkit [200915] by Alan Bujtas
  • 17 edits in trunk

All scrolling height/width values should be integral rounded.
https://bugs.webkit.org/show_bug.cgi?id=157687

Reviewed by Simon Fraser.

Both clientHeight(Width) and scrollHeight(width) need to be explicitly integral
rounded in order to ensure that scrollable content is computed properly.
This will evolve into subpixel snapping once we apply subpixel arithmetics on scrolling.

Source/WebCore:

Not testable.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::scrollWidth):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::horizontalScrollbarStart):
(WebCore::RenderLayer::scrollWidth):
(WebCore::RenderLayer::scrollHeight):
(WebCore::RenderLayer::computeScrollDimensions):
(WebCore::RenderLayer::updateScrollbarsAfterLayout):

  • rendering/RenderLayer.h:

LayoutTests:

  • platform/mac/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/mac/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/mac/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt:
9:58 PM Changeset in webkit [200914] by Dewei Zhu
  • 3 edits in trunk/Tools

Fix JSBench which causes math domain error in run-benchmark script.
https://bugs.webkit.org/show_bug.cgi?id=157697
<rdar://problem/26279292>

Reviewed by Ryosuke Niwa.

Some tests of JSBench give time usage to be 0 ms which will causes error while calculating geometric mean.
Also fix a round-off error while calculating stdev.

  • Scripts/webkitpy/benchmark_runner/benchmark_results.py:

(BenchmarkResults._format_values):

  • Scripts/webkitpy/benchmark_runner/data/patches/JSBench.patch:
9:45 PM Changeset in webkit [200913] by beidson@apple.com
  • 5 edits in trunk

Extend protector naming code style guideline to cover operator= assignment.
https://bugs.webkit.org/show_bug.cgi?id=157693

Reviewed by Darin Adler.

Tools:

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

(check_identifier_name_in_declaration):

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

(WebKitStyleTest.test_names):

Websites/webkit.org:

  • code-style.md:
7:40 PM Changeset in webkit [200912] by dino@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix iOS Build.

  • Shared/AssistedNodeInformation.h:

(WebKit::OptionItem::OptionItem):

7:29 PM Changeset in webkit [200911] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r200463): Autofill Credit Card expected but got Autofill Contact
<rdar://problem/26251538>
https://bugs.webkit.org/show_bug.cgi?id=157701

Reviewed by Dan Bernstein.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame _certificateChain]):
We need to do a retain-autorelease here now because the CertificateInfo's that contain the
cached certificate chain, are being destroyed, and therefore destroying the chain, before this
function returns. This used to work when the chain wasn't just a cache, because there was still
a strong reference to it being held by the ResourceResponse's CertificateInfo copy, but now
there is none.

7:27 PM Changeset in webkit [200910] by dino@apple.com
  • 3 edits in trunk/Source/WebKit2

[iOS] <select> elements popover should render right-aligned when in RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157699
<rdar://problem/26282319>

Reviewed by Simon Fraser.

Some follow-up changes as suggested by Darin in review.

  • Shared/AssistedNodeInformation.h: Use initializers so we can

remove the constructors.
(WebKit::OptionItem::OptionItem): Deleted.
(WebKit::AssistedNodeInformation::AssistedNodeInformation): Deleted.

  • UIProcess/ios/forms/WKFormSelectPopover.mm: Add a comment to explain

why we are explicitly setting the language.
(-[WKSelectTableViewController initWithView:hasGroups:]):

7:26 PM Changeset in webkit [200909] by Chris Dumez
  • 8 edits in trunk/Source

[NetworkCache] Avoid having to re-parse URLs after deserializing them
https://bugs.webkit.org/show_bug.cgi?id=157660

Reviewed by Darin Adler.

Source/WebCore:

Avoid having to re-parse URLs after deserializing them in the WebKit2
network cache storage implementation.

We previously serialized URLs as Strings, which meant that we had the
re-parse them upon deserialization. We now serialize all of the URL
data members to avoid having to parse the String again.

  • platform/URL.h:

(WebCore::URL::encode):
(WebCore::URL::decode):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::encodeWithoutPlatformData):
(WebCore::ResourceRequestBase::decodeWithoutPlatformData):

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::encode):
(WebCore::ResourceResponseBase::decode):

Source/WebKit2:

  • NetworkProcess/cache/NetworkCacheCoders.cpp:

(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Deleted.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Deleted.

  • NetworkProcess/cache/NetworkCacheCoders.h:

Drop template specializations used by our network cache for encoding
/ decoding URLs as Strings. This causes us to now rely on
URL::encode() / URL::decode() instead.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<BlobPart>::decode):
Fix bug in BlobPart encoding / decoding. It was encoding the url member
as a URL but decoding it as a String.

7:17 PM Changeset in webkit [200908] by weinig@apple.com
  • 8 edits
    2 adds in trunk

ScriptController::processingUserGesture should propagate across postMessage boundaries
<rdar://problem/26273173>
https://bugs.webkit.org/show_bug.cgi?id=157686

Reviewed by Anders Carlsson.

Source/WebCore:

Test: fast/dom/Window/post-message-user-action.html

  • dom/UserGestureIndicator.h:

Export processingUserGesture() for testing.

  • page/DOMWindow.cpp:

(WebCore::PostMessageTimer::PostMessageTimer):
(WebCore::PostMessageTimer::event):
Maintain the processingUserGesture bit through postMessage.

  • testing/Internals.cpp:

(WebCore::Internals::setResourceTimingSupport):
(WebCore::Internals::isProcessingUserGesture):

  • testing/Internals.h:
  • testing/Internals.idl:

Add new internals function to get the current state of the UseGestureIndicator for testing.

LayoutTests:

  • fast/dom/Window/post-message-user-action-expected.txt: Added.
  • fast/dom/Window/post-message-user-action.html: Added.
7:10 PM Changeset in webkit [200907] by Chris Dumez
  • 13 edits in trunk

Align window.scroll() / scrollTo() / scrollBy() with the CSSOM specification
https://bugs.webkit.org/show_bug.cgi?id=157666

Reviewed by Darin Adler.

Source/WebCore:

Align window.scroll() / scrollTo() / scrollBy() with Firefox and the CSSOM
specification:
https://drafts.csswg.org/cssom-view/#extensions-to-the-window-interface

In particular, the following changes were made:

  1. Make parameters to scroll() / scrollTo() / scrollBy() mandatory.
  2. Add overloads for scroll() / scrollTo() / scrollBy() that take an optional ScrollToOptions dictionary.
  3. Update API to use "unrestricted double" typing for x/y instead of "long". This matches the specification but it does not really change our behavior at this point because the values are still casted to int in our implementation.

Web-Exposed behavior changes:

  1. JS can now pass a dictionary to scroll() / scrollTo() / scrollBy(). This a new feature that Firefox already supports (Chrome does not).
  2. Passing only 1 parameter to scroll() / scrollTo() / scrollBy() that is not a dictionary will now throw a TypeError. The compatibility risky should be low because Firefox and Chrome already throw in this case (Chrome has been throwing for 2 years and a half).
  3. Calling scrollTo() / scroll() without any parameter no longer scrolls to 0. Instead we use the current viewport's x/y which means we don't scroll at all. The new behavior matches Firefox, Chrome and IE 11. This fixes scrolling on the following Website: https://members.chosun.com/cms_subscribe/application/index.jsp

No new tests, extended existing testing.

  • bindings/js/JSDOMConvert.h:

(WebCore::convert):
(WebCore::convertOptional):

  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldAllowNonFiniteForFloatingPointType):
(GenerateConversionRuleWithLeadingComma):
(GenerateDictionaryImplementationContent):
(JSValueToNative):

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

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

  • bindings/scripts/test/TestObj.idl:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::scrollBy):
(WebCore::DOMWindow::scrollTo):

  • page/DOMWindow.h:
  • page/DOMWindow.idl:

LayoutTests:

Update / improve testing coverage for the API.

  • fast/dom/Window/window-scroll-arguments-expected.txt:
  • fast/dom/Window/window-scroll-arguments.html:
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
7:03 PM Changeset in webkit [200906] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

DFG/FTL have a few bugs in their reasoning about the scope
https://bugs.webkit.org/show_bug.cgi?id=157696

Reviewed by Benjamin Poulain.

  1. When the debugger is enabled, it is easier for the DFG to reason

about the scope register by simply claiming all nodes read the scope
register. This prevents us from ever entering the runtime where we
may take a stack trace but there isn't a scope on the stack.

  1. This patch fixes a bug where the FTL compilation wasn't properly

setting the CodeBlock register. It was only doing this when there
was inline data, but when the debugger is enabled, we never inline.
So this code just needed to be removed from that loop. It was never
right for it to be inside the loop.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

5:20 PM Changeset in webkit [200905] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

5:19 PM Changeset in webkit [200904] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

5:17 PM Changeset in webkit [200903] by matthew_hanson@apple.com
  • 5 edits in branches/safari-602.1.32-branch/Source

Versioning.

5:12 PM Changeset in webkit [200902] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-602.1.32.2.1/Source

Versioning.

5:03 PM Changeset in webkit [200901] by Ryan Haddad
  • 5 edits in trunk/Source

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

This change broke the iOS build (Requested by ryanhaddad on
#webkit).

Reverted changeset:

"Remove unused initializer for WebEvent on iOS."
https://bugs.webkit.org/show_bug.cgi?id=157689
http://trac.webkit.org/changeset/200894

Patch by Commit Queue <commit-queue@webkit.org> on 2016-05-13

5:01 PM Changeset in webkit [200900] by rniwa@webkit.org
  • 3 edits
    1 add in trunk/Websites/perf.webkit.org

v3 UI shows full git hash instead of the first 8 characters for a blame range
https://bugs.webkit.org/show_bug.cgi?id=157691

Reviewed by Stephanie Lewis.

Fixed the bug that v3 UI shows the full 40 character git hash instead of the first 8 character as done in v2 UI.

  • public/v3/models/commit-log.js:

(CommitLog.prototype.diff): Fixed the bug.

  • tools/run-tests.py:

(main): Add the support for running a subset of tests as mocha does.

  • unit-tests/commit-log-tests.js: Added.
4:53 PM Changeset in webkit [200899] by matthew_hanson@apple.com
  • 2 edits in tags/Safari-602.1.32.2.1/Source/JavaScriptCore

Merge r200666.

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

[JSC] SetLocal without exit do not need phantoms
https://bugs.webkit.org/show_bug.cgi?id=157653

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-05-13
Reviewed by Filip Pizlo.

I made a mistake in r200498.

If a SetLocal cannot possibly exit, we were not clearing
the source of the operand. As a result, we sometime kept
a value alive up to the end of the block.

That's uncommon because SetLocal typically appear
toward the end of blocks. That's probably why there was
no perf impact with that fix.

  • dfg/DFGPhantomInsertionPhase.cpp:
4:45 PM Changeset in webkit [200897] by benjamin@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Move the CheckTierUp function calls out of the main path
https://bugs.webkit.org/show_bug.cgi?id=157668

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

If you have a tiny tiny loop (for example, Sunspider's bits-in-byte),
the size of CheckTierUp is a problem.

On multi-issue CPUs, the node is so big that we do not
get to run anything from the loop in the instruction fetch.

On x86, having a bigger loop also pushes us out of the LSD.

This is a 6% improvement on bits-in-byte. Other Sunspider tests
only improves marginally.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::addSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::runSlowPathGenerators):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::silentSpill):
(JSC::DFG::SpeculativeJIT::silentFill):

  • dfg/DFGSpeculativeJIT64.cpp:

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

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

[JSC] Emit the loads of emitLoadWithStructureCheck() in the order they are used
https://bugs.webkit.org/show_bug.cgi?id=157671

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

This improves the chances of having a value
when issuing the TEST.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitLoadWithStructureCheck):

4:42 PM Changeset in webkit [200895] by beidson@apple.com
  • 92 edits in trunk/Source/WebCore

Rename all protector variables that should be called protectedThis
https://bugs.webkit.org/show_bug.cgi?id=157610

Reviewed by Alex Christensen.

No new tests (Renaming, no behavior change).

WebCore has so many instances of these protectors as well as so much variance in naming them,
that I think it deserved a new style pass.

  • Modules/fetch/FetchResponse.cpp:
  • Modules/geolocation/GeoNotifier.cpp:
  • Modules/geolocation/Geolocation.cpp:
  • Modules/indexeddb/IDBTransaction.cpp:
  • Modules/indexeddb/client/TransactionOperation.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:
  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
  • Modules/indexeddb/shared/InProcessIDBServer.cpp:
  • Modules/mediastream/UserMediaRequest.cpp:
  • Modules/notifications/NotificationCenter.cpp:
  • Modules/webaudio/AudioContext.cpp:
  • Modules/webdatabase/Database.cpp:
  • Modules/websockets/WebSocket.cpp:
  • Modules/websockets/WebSocketChannel.cpp:
  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
  • accessibility/AccessibilityObject.cpp:
  • accessibility/AccessibilityRenderObject.cpp:
  • bindings/gobject/GObjectEventListener.cpp:
  • bindings/js/JSCustomElementInterface.cpp:
  • bindings/js/JSCustomSQLStatementErrorCallback.cpp:
  • bindings/js/JSCustomXPathNSResolver.cpp:
  • bindings/js/JSDOMGlobalObjectTask.cpp:
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSErrorHandler.cpp:
  • bindings/js/JSEventListener.cpp:
  • bindings/js/JSMutationCallback.cpp:
  • bindings/js/JSNodeFilterCustom.cpp:
  • bindings/js/SerializedScriptValue.cpp:
  • bindings/scripts/CodeGeneratorJS.pm:
  • bindings/scripts/test/JS/JSTestCallback.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
  • bridge/runtime_root.cpp:
  • css/CSSFontSelector.cpp:
  • css/StyleSheetContents.cpp:
  • dom/CharacterData.cpp:
  • dom/ContainerNode.cpp:
  • dom/Document.cpp:
  • dom/EventTarget.cpp:
  • dom/Node.cpp:
  • dom/ScriptExecutionContext.cpp:
  • dom/ScriptedAnimationController.cpp:
  • dom/StringCallback.cpp:
  • html/HTMLEmbedElement.cpp:
  • html/HTMLFormControlElement.cpp:
  • html/HTMLFormElement.cpp:
  • html/HTMLInputElement.cpp:
  • html/HTMLLinkElement.cpp:
  • html/HTMLMediaElement.cpp:
  • html/HTMLObjectElement.cpp:
  • html/HTMLOptionElement.cpp:
  • html/HTMLScriptElement.cpp:
  • html/HTMLTableElement.cpp:
  • html/HTMLTextAreaElement.cpp:
  • html/HTMLTitleElement.cpp:
  • html/parser/HTMLDocumentParser.cpp:
  • html/shadow/SliderThumbElement.cpp:
  • html/shadow/SpinButtonElement.cpp:
  • inspector/InspectorFrontendClientLocal.cpp:
  • loader/DocumentLoader.cpp:
  • loader/DocumentThreadableLoader.cpp:
  • loader/MediaResourceLoader.cpp:
  • loader/NetscapePlugInStreamLoader.cpp:
  • loader/ResourceLoader.cpp:
  • loader/SubresourceLoader.cpp:
  • loader/cache/CachedRawResource.cpp:
  • loader/cf/SubresourceLoaderCF.cpp:
  • loader/mac/ResourceLoaderMac.mm:
  • page/DOMWindow.cpp:
  • page/DOMWindowExtension.cpp:
  • page/FrameView.cpp:
  • page/animation/AnimationBase.cpp:
  • page/scrolling/ThreadedScrollingTree.cpp:
  • platform/ScrollView.cpp:
  • platform/graphics/DisplayRefreshMonitor.cpp:
  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:
  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
  • platform/ios/WebVideoFullscreenControllerAVKit.mm:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
  • platform/mac/WidgetMac.mm:
  • platform/network/BlobResourceHandle.cpp:
  • platform/network/cf/ResourceHandleCFNet.cpp:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
  • platform/network/curl/CurlDownload.cpp:
  • platform/network/mac/ResourceHandleMac.mm:
  • platform/network/soup/SocketStreamHandleSoup.cpp:
  • platform/win/PopupMenuWin.cpp:
  • workers/WorkerScriptLoader.cpp:
  • xml/XMLHttpRequest.cpp:
  • xml/parser/XMLDocumentParser.cpp:
  • xml/parser/XMLDocumentParserLibxml2.cpp:
4:39 PM Changeset in webkit [200894] by enrica@apple.com
  • 5 edits in trunk/Source

Remove unused initializer for WebEvent on iOS.
https://bugs.webkit.org/show_bug.cgi?id=157689

Reviewed by Anders Carlsson.

Source/WebCore:

This is no longer used and can be removed.
The logic tied to isPopupVariant has been incorporated
in keyboard flags. The characterSet property is no longer needed too.

  • platform/ios/WebEvent.h:
  • platform/ios/WebEvent.mm:

(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]):
(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:isPopupVariant:keyCode:isTabKey:characterSet:]): Deleted.
(-[WebEvent _characterSetDescription]): Deleted.
(-[WebEvent isPopupVariant]): Deleted.
(-[WebEvent characterSet]): Deleted.

Source/WebKit/mac:

Removing use of characterSet property.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _handleEditingKeyEvent:]):

4:29 PM Changeset in webkit [200893] by Joseph Pecoraro
  • 3 edits in trunk/Source/JavaScriptCore

Web Inspector: Inform augmenting client when inspector controller is destroyed
https://bugs.webkit.org/show_bug.cgi?id=157688
<rdar://problem/25832724>

Reviewed by Timothy Hatcher.

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::~JSGlobalObjectInspectorController):

  • inspector/augmentable/AugmentableInspectorControllerClient.h:

There is a weak relationship between the InspectorController and the
AugmentingClient. Let the augmenting client know when the controller
is destroyed so it doesn't try to use us anymore.

4:28 PM Changeset in webkit [200892] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-602.1.32.2.1

New Tag.

4:26 PM Changeset in webkit [200891] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix some non-iOS builds.

  • mac/postprocess-framework-headers.sh:
4:15 PM Changeset in webkit [200890] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

Unreviewed. Added the missing executable bits.

  • tools/bundle-v3-scripts.py: Added property svn:executable.
  • tools/detect-changes.js: Added property svn:executable.
  • tools/process-maintenance-backlog.py: Added property svn:executable.
3:40 PM Changeset in webkit [200889] by Simon Fraser
  • 4 edits
    2 adds
    3 deletes in trunk

cross-fade() rendering doesn't match expectation
https://bugs.webkit.org/show_bug.cgi?id=157665
rdar://problem/17917708

Reviewed by Dean Jackson.

Source/WebCore:

Cross-fading two opaque images would result in a non-opaque result in between the endpoints,
probably because r157045 caused both images to be drawn with srcOver, since drawImage()
clobbers the composite operation in the context.

Fix by passing the composite operation to the drawImage() calls for the non-transparency layer
code path.

Converted css3/images/cross-fade-blending.html into a ref test to test this.

  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::drawCrossfadeSubimage):

LayoutTests:

Make css3/images/cross-fade-blending.html a ref test.

  • css3/images/cross-fade-blending-expected.html: Added.
  • css3/images/cross-fade-blending-expected.png: Removed.
  • css3/images/cross-fade-blending-expected.txt: Removed.
  • css3/images/cross-fade-blending.html:
  • platform/mac/css3/images/cross-fade-blending-expected.png: Removed.
3:40 PM Changeset in webkit [200888] by Simon Fraser
  • 18 edits in trunk

Unprefix -webkit-cross-fade()
https://bugs.webkit.org/show_bug.cgi?id=157632

Reviewed by Darin Adler.
Source/WebCore:

Support unprefixed cross-fade() in addition to the prefixed value when parsing,
and have computed style round-trip the correct one.

If computed style is queried during an image transition, return an unprefixed
cross-fade(). If blending cross-fade values, only return the prefixed function if
both inputs are prefixed.

Tested by modified and existing tests.

  • css/CSSCrossfadeValue.cpp:

(WebCore::CSSCrossfadeValue::customCSSText):
(WebCore::CSSCrossfadeValue::blend):

  • css/CSSCrossfadeValue.h:

(WebCore::CSSCrossfadeValue::create):
(WebCore::CSSCrossfadeValue::isPrefixed):
(WebCore::CSSCrossfadeValue::CSSCrossfadeValue):

  • css/CSSParser.cpp:

(WebCore::CSSParser::isGeneratedImageValue):
(WebCore::CSSParser::parseGeneratedImage):
(WebCore::CSSParser::parseCrossfade):

  • css/CSSParser.h:

Source/WebInspectorUI:

  • UserInterface/Models/CSSKeywordCompletions.js:

LayoutTests:

  • animations/cross-fade-background-image-expected.html:
  • animations/cross-fade-background-image.html:
  • animations/cross-fade-border-image-source.html:
  • animations/cross-fade-list-style-image.html:
  • animations/cross-fade-webkit-mask-box-image.html:
  • animations/cross-fade-webkit-mask-image.html:
  • animations/resources/animation-test-helpers.js:

(parseCSSImage):
(parseCrossFade):
(compareCSSImages):

  • fast/css/getComputedStyle/computed-style-cross-fade-expected.txt:
  • fast/css/getComputedStyle/computed-style-cross-fade.html:
  • transitions/resources/transition-test-helpers.js:

(parseCrossFade):

3:34 PM Changeset in webkit [200887] by yoav@yoav.ws
  • 8 edits
    4 adds in trunk

ResourceTiming entries for cached resources and XHR
https://bugs.webkit.org/show_bug.cgi?id=157669

Reviewed by Alex Christensen.

Source/WebCore:

  • Moves the ResourceTiming storage and addition logic into its own class, so that it can be accessed by both CachedResourceLoader and DocumentThreadableLoader.
  • Using the above, adds ResourceTiming collection into DocumentThreadableLoader, in order to support ResourceTiming entries for XHR based requests.
  • Adds ResourceTiming entries for resources that are reused from the memory cache.

Test: http/tests/performance/performance-resource-timing-cached-entries.html

  • CMakeLists.txt: Add ResourceTimingInformation.
  • WebCore.xcodeproj/project.pbxproj: Add ResourceTimingInformation.
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didFinishLoading): Add a call to addResourceTiming.
(WebCore::DocumentThreadableLoader::loadRequest): Store the initiator information.

  • loader/DocumentThreadableLoader.h:
  • loader/ResourceTimingInformation.cpp: Added.

(WebCore::ResourceTimingInformation::addResourceTiming): Moved addResourceTiming logic from CachedResourceLoader.
(WebCore::ResourceTimingInformation::storeResourceTimingInitiatorInformation): Moved addResourceTiming logic from
CachedResourceLoader. Removed reliance on the committingFirstRealLoad bool when storing initiator info, as I don't
see why it is required, and it made no sense in the context of DocumentThreadableLoader.

  • loader/ResourceTimingInformation.h: Added.
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource): Add a ResourceTiming entry when a resource is reused from MemoryCache.
(WebCore::CachedResourceLoader::revalidateResource): Use ResourceTimingInformation::storeResourceTimingInitiatorInformation.
(WebCore::CachedResourceLoader::loadResource): Use ResourceTimingInformation::storeResourceTimingInitiatorInformation.
(WebCore::CachedResourceLoader::loadDone): Use ResourceTimingInformation::addResourceTiming.
(WebCore::CachedResourceLoader::storeResourceTimingInitiatorInformation): Deleted.

  • loader/cache/CachedResourceLoader.h:

LayoutTests:

These tests make sure that cacheable resources as well as XHR based resources
have ResourceTiming entries.

  • http/tests/performance/performance-resource-timing-cached-entries-expected.txt: Added.
  • http/tests/performance/performance-resource-timing-cached-entries.html: Added.
3:22 PM Changeset in webkit [200886] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Typing "layout" in filter for Layout and Rendering Timeline matches everything
https://bugs.webkit.org/show_bug.cgi?id=157684
<rdar://problem/26276588>

Reviewed by Joseph Pecoraro.

Hidden columns should not participate in built-in grid filtering
using DataGrid.filterText. Hidden columns can still be custom filtered,
which is how TimelineDataGrid filters scopebar columns.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGridNode.prototype.get filterableData):
Skip hidden columns.

2:40 PM Changeset in webkit [200885] by Ryan Haddad
  • 2 edits in branches/safari-601-branch/LayoutTests

Merge r194403. rdar://problem/26274768

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

Runaway malloc memory usage in this simple JSC program
https://bugs.webkit.org/show_bug.cgi?id=157682

Reviewed by Mark Lam.

  • heap/WeakSet.cpp:

(JSC::WeakSet::sweep): Whenever we might add a block to
m_logicallyEmptyWeakBlocks, be sure also to sweep a block in
m_logicallyEmptyWeakBlocks. Otherwise, additions might outpace removals
even when all memory is freed.

We do this whenever we *might* add a block and not just whenever we *do*
add a block because we'd like to sweep the entries in
m_logicallyEmptyWeakBlocks promptly even when it's not growing, and this
is a reasonably rate-limited opportunity to do so.

2:22 PM Changeset in webkit [200883] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.7.2

New Tag.

2:21 PM Changeset in webkit [200882] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.46.141

New Tag.

1:47 PM Changeset in webkit [200881] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-602.1.32.2

New Tag.

1:35 PM Changeset in webkit [200880] by aakash_jain@apple.com
  • 9 edits in trunk/Tools

Dashboard code restructuring
https://bugs.webkit.org/show_bug.cgi?id=157680
<rdar://problem/14736888>

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueView.js:

(BubbleQueueView.prototype.addLinkToRow): Moved to base class.
(BubbleQueueView.prototype.addTextToRow): Moved to base class.
(BubbleQueueView.prototype._addDividerToPopover): Moved to base class.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotBuilderQueueView.js:

(BuildbotBuilderQueueView.prototype.update): Passing additional argument to _appendPendingRevisionCount.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:

(BuildbotCombinedQueueView.prototype.update): Passing additional argument to _appendPendingRevisionCount.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:

(BuildbotTesterQueueView.prototype.update): Passing additional argument to _appendPendingRevisionCount.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._appendPendingRevisionCount): Moved to base class and modified to take
additional argument.
(BuildbotQueueView.prototype._popoverLinesForCommitRange): Moved to base class.
(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Moved to base class.
(BuildbotQueueView.prototype._addDividerToPopover): Moved to base class.
(BuildbotQueueView.prototype._formatRevisionForDisplay): Moved to base class.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:

(documentReady): Display any customView if available.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/QueueView.js:

(QueueView.prototype.addLinkToRow): Moved from child class, no changes.
(QueueView.prototype.addTextToRow): Moved from child class, no changes.
(QueueView.prototype._addDividerToPopover): Moved from child class, no changes.
(QueueView.prototype._appendPendingRevisionCount): Moved from child class, made it more generic
by taking latestIterationGetter method as an argument.
(QueueView.prototype._popoverLinesForCommitRange): Moved from child class, no changes.
(QueueView.prototype._presentPopoverForPendingCommits): Moved from child class, no changes.
(QueueView.prototype._formatRevisionForDisplay): Moved from child class, no changes.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

(a:hover:link): Underline only when there is a link.

1:16 PM Changeset in webkit [200879] by mark.lam@apple.com
  • 29 edits in trunk

We should have one calleeSaveRegistersBuffer per VMEntryFrame, not one per VM.
https://bugs.webkit.org/show_bug.cgi?id=157537
<rdar://problem/24794845>

Reviewed by Michael Saboff.

Source/JavaScriptCore:

The pre-existing code behaves this way:

  1. When JS code throws an exception, it saves callee save registers in the VM calleeSaveRegistersBuffer. These values are meant to be restored to the callee save registers later either at the catch handler or at the uncaught exception handler.
  1. If the Inspector is enable, the VM will invoke inspector C++ code to inspect the exception. That C++ code can change the values of the callee save registers.

The inspector code in turn re-enters the VM to execute JS inspector code.

The JS inspector code can run hot enough that we do an enterOptimizationCheck
on it. The enterOptimizationCheck first saves all callee save registers
into the VM calleeSaveRegistersBuffer.

This effectively overwrites the values in the VM calleeSaveRegistersBuffer
from (1).

  1. Eventually, execution returns to the catch handler or the uncaught exception handler which restores the overwritten values in the VM calleeSaveRegistersBuffer to the callee save registers.

When execution returns to the C++ code that entered the VM before (1), the
values in the callee registers are not what that code expects, and badness
and/or crashes ensues.

This patch applies the following fix:

  1. Allocate space in the VMEntryFrame for the calleeSaveRegistersBuffer. This ensures that each VM entry session has its own buffer to use, and will not corrupt the one from the previous VM entry session.

Delete the VM calleeSaveRegistersBuffer.

  1. Change all locations that uses the VM calleeSaveRegistersBuffer to use the calleeSaveRegistersBuffer in the current VMEntryFrame.
  1. Renamed all uses of the term "VMCalleeSavesBuffer" to "VMEntryFrameCalleeSavesBuffer".

This fix has been tested on the following configurations:

  1. JSC and layout tests on a debug ASan build for 64-bit x86_64.
  2. JSC tests on a release ASan build for 32-bit x86.
  3. JSC tests on a release normal (non-ASan) build for ARM64.
  4. JSC tests on a release normal (non-ASan) build for ARMv7 and ARMv7s.
  5. JSC tests on a release ASan CLOOP build for x86_64.

These test runs did not produce any new crashes. The ASan CLOOP has some
pre-existing crashes which are not due to this patch.

This bug can be tested by running the inspector/debugger/regress-133182.html test
on an ASan build.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationState::emitExplicitExceptionHandler):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileExceptionHandlers):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSRExitCompiler.cpp:
  • dfg/DFGOSRExitCompiler32_64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGOSRExitCompiler64.cpp:

(JSC::DFG::OSRExitCompiler::compileExit):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrEntryThunkGenerator):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::operator()):
(JSC::UnwindFunctor::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer):
(JSC::UnwindFunctor::copyCalleeSavesToVMCalleeSavesBuffer): Deleted.

  • interpreter/Interpreter.h:

(JSC::NativeCallFrameTracer::NativeCallFrameTracer):

  • interpreter/VMEntryRecord.h:

(JSC::VMEntryRecord::calleeSaveRegistersBufferOffset):
(JSC::VMEntryRecord::prevTopCallFrame):
(JSC::VMEntryRecord::unsafePrevTopCallFrame):
(JSC::VMEntryFrame::vmEntryRecordOffset):
(JSC::VMEntryFrame::calleeSaveRegistersBufferOffset):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitRandomThunk):
(JSC::AssemblyHelpers::restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::restoreCalleeSavesFromVMCalleeSavesBuffer): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitRestoreSavedTagRegisters):
(JSC::AssemblyHelpers::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesFromFrameOrRegisterToVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesToVMCalleeSavesBuffer): Deleted.
(JSC::AssemblyHelpers::copyCalleeSavesFromFrameOrRegisterToVMCalleeSavesBuffer): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::emitEnterOptimizationCheck):
(JSC::JIT::privateCompileExceptionHandlers):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_throw):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emitSlow_op_loop_hint):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_throw):
(JSC::JIT::emit_op_catch):

  • jit/ThunkGenerators.cpp:

(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::nativeForGenerator):

  • llint/LLIntThunks.cpp:

(JSC::vmEntryRecord):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/VM.h:

(JSC::VM::getCTIStub):
(JSC::VM::calleeSaveRegistersBufferOffset): Deleted.

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::endFunction):

LayoutTests:

  • inspector/debugger/regress-133182-expected.txt:
  • Rebased test results to update line numbers.
  • platform/mac/TestExpectations:
  • Unskip the test.
12:42 PM Changeset in webkit [200878] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Summary page doesn't report some missing platforms
https://bugs.webkit.org/show_bug.cgi?id=157670

Reviewed by Darin Adler.

This patch improves the warning text for missing platforms and fixes the bug that platforms that don't have
any data reported for a given test would not be reported as missing.

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

(SummaryPage.prototype.render): Added instrumentations.
(SummaryPage.prototype._constructRatioGraph): Always create both the ratio bar graph and the spinner icon.
(SummaryPage.prototype._renderCell): Extracted from _constructRatioGraph. Toggle the displayed-ness of the
spinner and the ratio bar graph in the cell by CSS for better performance.
(SummaryPage.prototype._warningTextForGroup): Extracted from _constructRatioGraph. Rephrased warning text
for clarity and adopted new API of SummaryPageConfigurationGroup.
(SummaryPage.prototype._warningTextForGroup.mapAndSortByName): Added.
(SummaryPage.prototype._warningTextForGroup.pluralizeIfNeeded): Added.
(SummaryPage.cssTemplate): Added rules to toggle the visibility of spinner icons and bar graphs.
(SummaryPageConfigurationGroup): Replaced this._warnings by more explicitly named this._missingPlatforms
and this._platformsWithoutBaseline. Also add a platform to this._missingPlatforms if it didn't appear in
any metrics. Note that adding a platform whenever it doesn't in any one metric would be incorrect since
some tests uses a different test name on different platforms: e.g. PLT-Mac and PLT-iPhone.
(SummaryPageConfigurationGroup.prototype.missingPlatforms): Added.
(SummaryPageConfigurationGroup.prototype.platformsWithoutBaseline): Added.
(SummaryPageConfigurationGroup.prototype._fetchAndComputeRatio):

12:42 PM Changeset in webkit [200877] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit2

Attempt to fix the iOS build after r200874

Unreviewed build fix.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
12:34 PM Changeset in webkit [200876] by d_russell@apple.com
  • 13 edits in trunk

AX: Regressions in undo/redo accessibility from Bug 153361
https://bugs.webkit.org/show_bug.cgi?id=157652

Reviewed by Darin Adler.

Use indexForVisiblePosition & visiblePositionForIndex to store selection data
so that AccessibilityUndoReplacedText can build valid selection ranges and
retrieve strings for AT notifications.

Source/WebCore:

Tests: accessibility/mac/value-change/value-change-user-info-contenteditable-expected.txt:

accessibility/mac/value-change/value-change-user-info-contenteditable.html:
accessibility/mac/value-change/value-change-user-info-textarea-expected.txt:
accessibility/mac/value-change/value-change-user-info-textarea.html:
accessibility/mac/value-change/value-change-user-info-textfield-expected.txt:
accessibility/mac/value-change/value-change-user-info-textfield.html:

  • accessibility/AXObjectCache.cpp:

(WebCore::AccessibilityReplacedText::AccessibilityReplacedText):
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::postTextReplacementNotification):

  • editing/CompositeEditCommand.cpp:

(WebCore::AccessibilityUndoReplacedText::configureRangeDeletedByReapplyWithEndingSelection):
(WebCore::AccessibilityUndoReplacedText::configureRangeDeletedByReapplyWithStartingSelection):
(WebCore::AccessibilityUndoReplacedText::setRangeDeletedByUnapply):
(WebCore::AccessibilityUndoReplacedText::captureTextForUnapply):
(WebCore::AccessibilityUndoReplacedText::captureTextForReapply):
(WebCore::AccessibilityUndoReplacedText::textDeletedByUnapply):
(WebCore::AccessibilityUndoReplacedText::textDeletedByReapply):
(WebCore::AccessibilityUndoReplacedText::postTextStateChangeNotificationForUnapply):
(WebCore::AccessibilityUndoReplacedText::postTextStateChangeNotificationForReapply):
(WebCore::EditCommandComposition::EditCommandComposition):
(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):
(WebCore::EditCommandComposition::setStartingSelection):
(WebCore::EditCommandComposition::setEndingSelection):
(WebCore::EditCommandComposition::setRangeDeletedByUnapply):
(WebCore::AccessibilityUndoReplacedText::confgureTextToBeDeletedByUnapplyIndexesWithEditCommandEndingSelection): Deleted.
(WebCore::AccessibilityUndoReplacedText::confgureTextToBeDeletedByUnapplyStartIndexWithEditCommandStartingSelection): Deleted.
(WebCore::AccessibilityUndoReplacedText::setTextInsertedByUnapplyRange): Deleted.
(WebCore::AccessibilityUndoReplacedText::captureTextToBeDeletedByUnapply): Deleted.
(WebCore::AccessibilityUndoReplacedText::captureTextToBeDeletedByReapply): Deleted.
(WebCore::AccessibilityUndoReplacedText::textInsertedByUnapply): Deleted.
(WebCore::AccessibilityUndoReplacedText::textInsertedByReapply): Deleted.
(WebCore::EditCommandComposition::setTextInsertedByUnapplyRange): Deleted.

  • editing/CompositeEditCommand.h:
  • editing/Editor.cpp:

(WebCore::Editor::replaceSelectionWithFragment):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::postTextStateChangeNotificationForDeletion):
(WebCore::TypingCommand::insertTextAndNotifyAccessibility):
(WebCore::TypingCommand::insertLineBreakAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContentAndNotifyAccessibility):

LayoutTests:

  • accessibility/mac/value-change/value-change-user-info-contenteditable-expected.txt:
  • accessibility/mac/value-change/value-change-user-info-contenteditable.html:
  • accessibility/mac/value-change/value-change-user-info-textarea-expected.txt:
  • accessibility/mac/value-change/value-change-user-info-textarea.html:
  • accessibility/mac/value-change/value-change-user-info-textfield-expected.txt:
  • accessibility/mac/value-change/value-change-user-info-textfield.html:
12:19 PM Changeset in webkit [200875] by Chris Dumez
  • 22 edits in trunk/Source

Unreviewed, rolling out r200837.

Seems to have regressed Speedometer and JetStream on iOS

Reverted changeset:

"DOMPromise should only restrict the resolution type"
https://bugs.webkit.org/show_bug.cgi?id=157307
http://trac.webkit.org/changeset/200837

12:14 PM Changeset in webkit [200874] by weinig@apple.com
  • 9 edits in trunk/Source

Rename WKDataDetectorTypeSpotlightSuggestion to WKDataDetectorTypeLookupSuggestion
<rdar://problem/26269611>

Reviewed by Dan Bernstein and Enrica Casucci.

Source/WebCore:

  • editing/cocoa/DataDetection.h:
  • editing/cocoa/DataDetection.mm:

(WebCore::constructURLStringForResult):
(WebCore::DataDetection::detectContentInRange):

Source/WebKit2:

  • Shared/API/Cocoa/WKFoundation.h:
  • Shared/API/c/WKDeclarationSpecifiers.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(fromWKDataDetectorTypes):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • mac/postprocess-framework-headers.sh:
12:01 PM Changeset in webkit [200873] by Matt Baker
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Script ProfileViews should be searchable
https://bugs.webkit.org/show_bug.cgi?id=157581
<rdar://problem/26228530>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.get filterText):
Make filterText readable.

  • UserInterface/Views/ProfileDataGridNode.js:

(WebInspector.ProfileDataGridNode.prototype.get callingContextTreeNode):
(WebInspector.ProfileDataGridNode.prototype.filterableDataForColumn):
Add filterable data for the "function" column.
(WebInspector.ProfileDataGridNode.prototype._updateChildrenForModifiers):
(WebInspector.ProfileDataGridNode.prototype.get node): Deleted.
Renamed callingContextTreeNode to be less ambiguous.

  • UserInterface/Views/ProfileDataGridTree.js:

(WebInspector.ProfileDataGridTree.prototype._updateCurrentFocusDetails):

  • UserInterface/Views/ProfileView.js:

(WebInspector.ProfileView.prototype.get dataGrid):
Expose data grid for use in parent view.

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WebInspector.ScriptClusterTimelineView.prototype.selectRecord):
Drive-by fix: forward property to current child TimelineView.

  • UserInterface/Views/ScriptProfileTimelineView.js:

(WebInspector.ScriptProfileTimelineView):
(WebInspector.ScriptProfileTimelineView.prototype._scopeBarSelectionDidChange):
(WebInspector.ScriptProfileTimelineView.prototype._showProfileViewForOrientation):
Helper function to switch profile views. Persist filter text when
switching to the new profile view.

(WebInspector.ScriptProfileTimelineView.prototype.get showsFilterBar): Deleted.
Remove FIXME and show filter bar.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.setupDataGrid):
Support switching to a new data grid.
(WebInspector.TimelineView.prototype.dataGridMatchNodeAgainstCustomFilters):
Hooking up filtering causes data grid nodes to be filtered based on the
ruler selection. Although ScriptProfileTimelineView performs its own
time-based filtering, this is necessary to prevent an assert.

(WebInspector.TimelineView.prototype._timelineDataGridSelectedNodeChanged):
(WebInspector.TimelineView.prototype._timelineDataGridNodeWasFiltered):
Converted arrow functions to member functions to allow unregistering
event listeners on outgoing data grid when swapping grids.

11:57 AM Changeset in webkit [200872] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Wrong CharacterOffset from an upstream VisiblePosition
https://bugs.webkit.org/show_bug.cgi?id=157644

Reviewed by Chris Fleizach.

Source/WebCore:

We should adjust the text marker's CharacterOffset if its corresponding
VisiblePosition has upstream affinity.

Test: accessibility/mac/character-offset-from-upstream-position.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::characterOffsetForTextMarkerData):
(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::localCaretRectForCharacterOffset):

LayoutTests:

  • accessibility/mac/character-offset-from-upstream-position-expected.txt: Added.
  • accessibility/mac/character-offset-from-upstream-position.html: Added.
11:56 AM Changeset in webkit [200871] by matthew_hanson@apple.com
  • 3 edits
    1 add in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r196490. rdar://problem/26270871

11:56 AM Changeset in webkit [200870] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merge r196240. rdar://problem/26271188

11:45 AM Changeset in webkit [200869] by matthew_hanson@apple.com
  • 3 edits
    1 add in branches/safari-601-branch/Source/JavaScriptCore

Merge r196490. rdar://problem/26270811

11:45 AM Changeset in webkit [200868] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601-branch/Source/JavaScriptCore

Merge r196240. rdar://problem/26271108

11:45 AM Changeset in webkit [200867] by Beth Dakin
  • 2 edits in trunk/Source/WebKit/mac

Build fix.

  • WebView/WebView.mm:
11:29 AM Changeset in webkit [200866] by Beth Dakin
  • 15 edits
    1 add
    1 delete in trunk/Source

Source/JavaScriptCore:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

Import #import <wtf/spi/darwin/dyldSPI.h> which now declares all of the
needed dyld code.

  • API/JSWrapperMap.mm:

Source/WebCore:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

This patch removes DynamicLinkerSPI.h and replaces it with
wtf/spi/darwin/dyldSPI.h

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLObjectElement.cpp:
  • platform/graphics/ios/FontServicesIOS.mm:
  • platform/spi/cocoa/DynamicLinkerSPI.h: Removed.

Source/WebKit/ios:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

This patch removes DynamicLinkerSPI.h and replaces it with
wtf/spi/darwin/dyldSPI.h

  • Misc/WebUIKitSupport.mm:

Source/WebKit/mac:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

This patch removes DynamicLinkerSPI.h and replaces it with
wtf/spi/darwin/dyldSPI.h

  • WebView/WebView.mm:

Source/WebKit2:
Add dyldSPI.h for linked on or after checks, and add one for link preview
https://bugs.webkit.org/show_bug.cgi?id=157401

Reviewed by Darin Adler.

Set _allowsLinkPreview to YES for programs linked on or after
firstSDKVersionWithLinkPreviewEnabledByDefault.

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

Source/WTF:
Add dyldSPI.h
https://bugs.webkit.org/show_bug.cgi?id=157401
-and corresponding-
rdar://problem/26253396

Reviewed by Darin Adler.

New header for dyld spi.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/spi/darwin/dyldSPI.h: Added.
11:11 AM Changeset in webkit [200865] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

11:11 AM Changeset in webkit [200864] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

11:06 AM Changeset in webkit [200863] by yoav@yoav.ws
  • 6 edits in trunk

Turn on WEB_TIMING for all ports
https://bugs.webkit.org/show_bug.cgi?id=157673

Reviewed by Alex Christensen.

.:

Turn on WEB_TIMING by default on the cmake Mac port, to match it with all other ports,
and make sure that the flag will be on by default for all ports.

  • Source/cmake/OptionsGTK.cmake: Remove the specific private flag for WEB_TIMING.
  • Source/cmake/OptionsMac.cmake: Remove the specific private flag for WEB_TIMING.
  • Source/cmake/WebKitFeatures.cmake: Turn on WEB_TIMING for all ports by default.

Tools:

  • Scripts/webkitperl/FeatureList.pm: Make sure that WEB_TIMING is on by default.
10:42 AM Changeset in webkit [200862] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

Fullscreen view attempts to resize when in 2-up mode
https://bugs.webkit.org/show_bug.cgi?id=157558

Reviewed by Darin Adler.

No need to react to NSApplicationDidChangeScreenParametersNotification to resize the
fullscreen window when the screen parameters change; the NSWindow fullscreen machinery
will do that on our behalf.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController windowDidLoad]): Deleted.
(-[WKFullScreenWindowController applicationDidChangeScreenParameters:]): Deleted.

10:37 AM Changeset in webkit [200861] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Give CrossThreadCopier a default specialization for Vectors of objects.
https://bugs.webkit.org/show_bug.cgi?id=157675

Reviewed by Darin Adler.

No new tests (Refactor, no change in behavior).

  • platform/CrossThreadCopier.cpp:

(WebCore::Vector<String>>::copy): Deleted.

  • platform/CrossThreadCopier.h: Add a default specialization for Vector<T> where T is a type that is CrossThreadCopyable itself.
10:29 AM Changeset in webkit [200860] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/text-autosizing/ios/text-autosizing-after-back.html as a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=157589

Unreviewed test gardening.

9:16 AM Changeset in webkit [200859] by beidson@apple.com
  • 5 edits in trunk

Protector Ref/RefPtrs should have a specified naming style.
https://bugs.webkit.org/show_bug.cgi?id=157591

Reviewed by Darin Adler.

Tools:

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

(check_identifier_name_in_declaration):
(CppChecker):

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

(WebKitStyleTest.test_names):

Websites/webkit.org:

  • code-style.md:
9:06 AM Changeset in webkit [200858] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

[iOS] <select> elements popover should render right-aligned when in RTL mode
https://bugs.webkit.org/show_bug.cgi?id=157672
<rdar://problem/26193442>

Patch by Antoine Quint <Antoine Quint> on 2016-05-13
Reviewed by Darin Adler.

Add a new isRTL field to the AssistedNodeInformation as specified by the assisted
node's render style and account for it when displaying the table view shown in the
popover attached to the assisted node using the UIView semanticContentAttribute
property.

  • Shared/AssistedNodeInformation.cpp:

(WebKit::AssistedNodeInformation::encode):
(WebKit::AssistedNodeInformation::decode):

  • Shared/AssistedNodeInformation.h:

(WebKit::AssistedNodeInformation::AssistedNodeInformation):

  • UIProcess/ios/forms/WKFormSelectPopover.mm:

(-[WKSelectTableViewController initWithView:hasGroups:]):
(-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getAssistedNodeInformation):

7:58 AM Changeset in webkit [200857] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Have the WorkerGlobalScope API return more references
https://bugs.webkit.org/show_bug.cgi?id=157663

Reviewed by Alexey Proskuryakov.

Have the WorkerGlobalScope API return more references instead of
pointers.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::location):
(WebCore::WorkerGlobalScope::navigator):

  • workers/WorkerGlobalScope.h:

(WebCore::WorkerGlobalScope::self):

7:28 AM Changeset in webkit [200856] by Yusuke Suzuki
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

Assertion failure for direct eval in non-class method
https://bugs.webkit.org/show_bug.cgi?id=157138

Reviewed by Saam Barati.

This assertion was incorrect. In method definitions in object literals,
it can be sloppy mode, but its DerivedContextType may not be DerivedContextType::None.

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::CacheKey::CacheKey):
(JSC::EvalCodeCache::CacheKey::operator==):
(JSC::EvalCodeCache::CacheKey::Hash::equal):
(JSC::EvalCodeCache::tryGet):
(JSC::EvalCodeCache::getSlow):

  • interpreter/Interpreter.cpp:

(JSC::eval):

  • tests/stress/direct-eval-in-object-literal-methods.js: Added.

(shouldBe):
(throw.new.Error):
(shouldBe.Parent.prototype.l):
(shouldBe.Parent):
(shouldBe.Derived.prototype.m):
(shouldBe.Derived):

6:41 AM WebKitGTK/2.12.x edited by Carlos Garcia Campos
(diff)
6:41 AM Changeset in webkit [200855] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.12

Merge r200542 - REGRESSION(r196222): [AX][GTK] accessibility/gtk/caret-offsets.html failing
https://bugs.webkit.org/show_bug.cgi?id=153956

Reviewed by Chris Fleizach.

Source/WebCore:

The reason the test began failing is that it was checking the new caret offset
synchronously. For most of the test cases, this was not a problem. But when the
caret was moved out of a focused link, the focus change (and associated repainting)
delayed the caret-moved event long enough to cause the associated test case to fail.
The test now uses shouldBecomeEqualToString() instead of shouldBeEqualToString().

The test also had a supposedly-correct expectation which was wrong: When moving the
caret to a valid accessible offset, the caret-moved event should be for that offset.
This was not the case for the list item test case because emitTextSelectionChange()
was not adjusting the offset for the RenderListMarker, the text of which is exposed
as part of the ATK_ROLE_LIST_ITEM object. This bug was also fixed and the test case
updated accordingly.

No new tests are needed. The previously-failing test is now passing.

  • editing/atk/FrameSelectionAtk.cpp:

(WebCore::emitTextSelectionChange):

LayoutTests:

Change the test to run asynchronously and update the expectations.

  • accessibility/gtk/caret-offsets-expected.txt: Updated.
  • accessibility/gtk/caret-offsets.html: Updated.
  • platform/gtk/TestExpectations: Unskipped the previously-failing test.
6:35 AM Changeset in webkit [200854] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200486 - Do not attempt to compute min/max width.
https://bugs.webkit.org/show_bug.cgi?id=157320

Reviewed by David Hyatt.

Replaced elements with no intrinsic size (only with ratio) should not call the containing
block to compute the min/max width when the containing block's min/max width
depends on the children's intrinsic size. It could lead to infinite recursion.

Source/WebCore:

Test: fast/replaced/before-content-intrinsic-crash.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth): Unrelated code change.

  • rendering/RenderImage.cpp: Unrelated code change.

(WebCore::RenderImage::RenderImage): Deleted.

  • rendering/RenderImage.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computeReplacedLogicalWidth):

LayoutTests:

  • fast/replaced/before-content-intrinsic-crash-expected.txt: Added.
  • fast/replaced/before-content-intrinsic-crash.html: Added.
6:31 AM Changeset in webkit [200853] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r200455 - [GStreamer] Adaptive streaming issues
https://bugs.webkit.org/show_bug.cgi?id=144040

Reviewed by Philippe Normand.

In the case of adaptive streaming, the GST URI downloader object is creating the source object, in our case
WebKitWebSrc, without taking its ownership. This is breaking the lifetime of the WebKitWebSrc element. We are
using GRefPtr in WebKitWebSrc to ref/unref the object when sending notifications to the main thread, ensuring
that the object is not destroyed before the main thread dispatches the message. But our smart pointers are so
smart that in case of receiving a floating reference, it's converted to a full reference, so that the first time
we try to take a ref of a WebKitWebSrc having a floating reference we are actually taking the ownership
instead. When we try to release the reference, we are actuallty destroying the object, something that the actual
owner is not expecting and causing runtime critical warnings and very often web process crashes.

(WebKitWebProcess:6863): GStreamer-CRITICAL :
Trying to dispose element appsrc1, but it is in READY instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.

(WebKitWebProcess:6863): GStreamer-CRITICAL : gst_uri_handler_get_uri: assertion 'GST_IS_URI_HANDLER(handler)' failed

(WebKitWebProcess:6863): GStreamer-CRITICAL : gst_uri_get_protocol: assertion 'uri != NULL' failed

This should be fixed in GST, but we can workaround it in WebKit while it's fixed in GST or to prevent this from
happening if other users make the same mistake. The idea is to add a ensureGRef() only available for GRefPtr
when using WebKitWebSrc objects that consumes the floating reference if needed before taking the actual reference.

  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::ensureGRef): Consume the floating ref if needed.

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcChangeState): Use ensureGRef().

6:29 AM Changeset in webkit [200852] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12

Merge r200445 - CSP: Perform case sensitive match against path portion of source expression URL that ends in '/'
https://bugs.webkit.org/show_bug.cgi?id=157275

Reviewed by Darin Adler.

Source/WebCore:

Merged from Blink:
<https://chromium.googlesource.com/chromium/src/+/7bd0a75e3f71a10e71ded31ea5905d5ee3d992eb>

Perform a case-sensitive prefix match of the path portion a source expression that ends in '/'
against the path portion of a request URL as per step 8.5.4 of section Does url match expression
in origin with redirect count of the Content Security Policy Level 3 spec., <https://w3c.github.io/webappsec-csp>
(Editor's Draft, 27 April 2016).

  • page/csp/ContentSecurityPolicySource.cpp:

(WebCore::ContentSecurityPolicySource::pathMatches):

LayoutTests:

Add test to ensure that the path portion of a request URL is case-sensitively
matched against the path portion of a source expression that ends in '/'.

  • http/tests/security/contentSecurityPolicy/source-list-parsing-paths-01-expected.txt:
  • http/tests/security/contentSecurityPolicy/source-list-parsing-paths-01.html:
6:26 AM Changeset in webkit [200851] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200414 - Clicks inside button elements are sometimes discarded when the mouse moves
https://bugs.webkit.org/show_bug.cgi?id=39620

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/events/click-over-descendant-elements.html

  • dom/Node.cpp:

(WebCore::ancestor):
(WebCore::commonAncestor): Method inspired from
http://src.chromium.org/viewvc/blink?view=revision&revision=162081.
(WebCore::commonAncestorCrossingShadowBoundary): Helper routine
that handles the case of nodes into a shadow node.

  • dom/Node.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMouseReleaseEvent): Selecting click event
target node according commonAncestorOverShadowBoundary method.
(WebCore::EventHandler::targetNodeForClickEvent): Deleted.

LayoutTests:

Test coming from http://src.chromium.org/viewvc/blink?view=revision&revision=162081.
Modified to ensure click events do not end up being considered as double click events.

  • fast/events/click-over-descendant-elements-expected.txt: Added.
  • fast/events/click-over-descendant-elements.html: Added.
  • platform/ios-simulator/TestExpectations: Marked new test as failing.
6:07 AM Changeset in webkit [200850] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r200410 - CrashTracer: [USER] com.apple.WebKit.WebContent at …ple.WebCore: WebCore::EditCommandComposition::unapply + 105
https://bugs.webkit.org/show_bug.cgi?id=157282
<rdar://problem/25391441>

Reviewed by Darin Adler.

A frame could be destroyed in the middle of executing undo/redo command.
Therefore, add an early return.

  • editing/CompositeEditCommand.cpp:

(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):

5:59 AM Changeset in webkit [200849] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200326 - Do not reuse cache entries with conditional headers
https://bugs.webkit.org/show_bug.cgi?id=157205
rdar://problem/25856933

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/xmlhttprequest/if-modified-since-0.html

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::canReuse):
CachedResourceLoader::determineRevalidationPolicy asserts that the request is not conditional,
which means that it does not have any headers like If-Modified-Since. They are usually different,
because we put the timestamp in the If-Modified-Since header, so it fails the canReuse test because
time has passed since the last If-Modified-Since header was sent. When a user sets the If-Modified-Since
manually to something that is constant, we reuse cache entries when we should not.

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
Set the source so we can use it in Internals.

LayoutTests:

  • http/tests/xmlhttprequest/if-modified-since-0-expected.txt: Added.
  • http/tests/xmlhttprequest/if-modified-since-0.html: Added.
5:33 AM Changeset in webkit [200848] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200301 - Some content causes deep recursion.
https://bugs.webkit.org/show_bug.cgi?id=157230
<rdar://problem/7694756>

Reviewed by Antti Koivisto.

This patch sets a limit(512) on content nesting for the render tree. Elements injected over the limit
are still accessible through DOM APIs but

  1. we stop generating renderers for them -they behave like display: none.
  2. their layout related computed style values are set to default (e.g. window.computedStyle(document.elementById("over512").width -> auto)

Source/WebCore:

Test: fast/block/nested-renderers.html

  • page/Settings.h:
  • style/StyleTreeResolver.cpp: Skip renderer constructing and continue with the sibling node.

(WebCore::Style::TreeResolver::resolveComposedTree):

LayoutTests:

  • fast/block/nested-renderers-expected.html: Added.
  • fast/block/nested-renderers.html: Added.
5:26 AM Changeset in webkit [200847] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200282 - REGRESSION(194502): overflow: scroll; direction: rtl; divs jump horizontally when scrolled vertically
https://bugs.webkit.org/show_bug.cgi?id=157201

Reviewed by Simon Fraser.

Source/WebCore:

ScrollableArea::scrollToOffsetWithoutAnimation() was mistakenly conflating scroll offsets with
scroll positions.

Test: fast/scrolling/rtl-drag-vertical-scroller.html

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):

LayoutTests:

  • fast/scrolling/rtl-drag-vertical-scroller-expected.txt: Added.
  • fast/scrolling/rtl-drag-vertical-scroller.html: Added.
5:18 AM Changeset in webkit [200846] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200247 - Wheel Event Not Fired For body,html { height:100% }
https://bugs.webkit.org/show_bug.cgi?id=148450

Reviewed by Brent Fulgham.

Source/WebCore:

EventHandler::handleWheelEvent() didn't pass the Active flag in the HitTestRequest,
which causes code in RenderLayer::hitTest() to fail to fall back to returning the
root layer if no other element is hit. "Active" is in the default flags,
so just create the HitTestRequest with the default flags.

Test: fast/events/wheel-event-outside-body.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEvent):

LayoutTests:

Testcase, skipped on iOS which doesn't support wheel events.

  • fast/events/wheel-event-outside-body-expected.txt: Added.
  • fast/events/wheel-event-outside-body.html: Added.
  • platform/ios-simulator/TestExpectations:
5:14 AM Changeset in webkit [200845] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200220 - Content disappears on mouse over.
https://bugs.webkit.org/show_bug.cgi?id=157073
<rdar://problem/24389168>

Reviewed by Simon Fraser.

When a redundant inlinebox is found after constructing the line, we remove it from the tree.
The remove operation marks the ancestor tree dirty (and this newly constructed line is supposed to be clean).
This patch resets this dirty flag on the boxes all the way up to the rootlinebox.
Previously we only cleared the rootinlinebox and we ended up with dirty inlineflowboxes.

Source/WebCore:

Test: fast/text/text-node-remains-dirty-after-calling-surroundContents.html

  • rendering/BidiRun.h:

(WebCore::BidiRun::setBox):

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

(WebCore::RenderBlockFlow::constructLine):
(WebCore::RenderBlockFlow::removeLineBoxIfNeeded):
(WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::positionLineBox): Deleted.

  • rendering/RenderText.cpp:

(WebCore::RenderText::setText):
(WebCore::RenderText::positionLineBox): Deleted.

LayoutTests:

  • fast/text/text-node-remains-dirty-after-calling-surroundContents-expected.html: Added.
  • fast/text/text-node-remains-dirty-after-calling-surroundContents.html: Added.
4:52 AM WebKitGTK/2.12.x edited by Carlos Garcia Campos
(diff)
4:51 AM Changeset in webkit [200844] by Carlos Garcia Campos
  • 8 edits
    4 adds in releases/WebKitGTK/webkit-2.12

Merge r200188 - AX: [ATK] We need to be smarter about flattening and the accessible text implementation
https://bugs.webkit.org/show_bug.cgi?id=144639

Reviewed by Chris Fleizach.

Source/WebCore:

Defer to WebCore Accessibility more regarding when to include anonymous blocks in the
accessibility tree. Explicitly flatten menu items, headings, list items, and paragraphs
in order to preserve the expected platform behavior for backwards compatibility. Also
map anonymous table parts to DivRole rather than GroupRole for GTK and EFL because ATK
has separate roles for generic text block elements and other generic containers.

Tests: accessibility/gtk/nested-block-element-children.html

accessibility/gtk/spans-paragraphs-and-divs-tree.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/atk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

LayoutTests:

Added two new tests and updated three existing tests to reflect the new behavior
regarding inclusion of elements in the accessibility tree and the text value of
included elements.

  • accessibility/gtk/nested-block-element-children-expected.txt: Added.
  • accessibility/gtk/nested-block-element-children.html: Added.
  • accessibility/gtk/spans-paragraphs-and-divs-expected.txt: Updated for new behavior.
  • accessibility/gtk/spans-paragraphs-and-divs-tree-expected.txt: Added.
  • accessibility/gtk/spans-paragraphs-and-divs-tree.html: Added.
  • accessibility/gtk/spans-paragraphs-and-divs.html: Updated for new behavior.
  • platform/gtk/accessibility/generated-content-with-display-table-crash-expected.txt: Updated for new behavior.
  • platform/gtk/accessibility/gtk/replaced-objects-in-anonymous-blocks-expected.txt: Updated for new behavior.
4:49 AM Changeset in webkit [200843] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r200184 - REGRESSION(r199659): Web Process crash when RenderTheme::adjustMenuListStyle is called with a null element
https://bugs.webkit.org/show_bug.cgi?id=157127

Reviewed by Sergio Villar Senin.

This happens for example with tests fast/css/appearance-with-pseudo-elements-in-quirks-mode.html and
fast/css/appearance-with-pseudo-elements.html.

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::adjustMenuListStyle): Do not change the style color if the given element is nullptr.

4:45 AM Changeset in webkit [200842] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebKit2

Merge r200152 - Remove download message receiver when NetworkProcess crashes
https://bugs.webkit.org/show_bug.cgi?id=157102
<rdar://problem/25550106>

Reviewed by Anders Carlsson.

  • UIProcess/Downloads/DownloadProxyMap.cpp:

(WebKit::DownloadProxyMap::processDidClose):
When the NetworkProcess crashes during a download, we want to remove the message receiver from the map
so we don't get an assertion in ~MessageReceiver in the UIProcess so we do not have a freed
message receiver in the map.

4:43 AM Changeset in webkit [200841] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12

Merge r200126 - [EFL][GTK] Volume slider only changes volume when thumb is released, not while dragging
https://bugs.webkit.org/show_bug.cgi?id=156970

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Volume slider have to change the volume while dragging the thumb.

Test: media/video-volume-slider-drag.html

  • Modules/mediacontrols/mediaControlsBase.js:

(Controller.prototype.createControls): Use the 'input' event instead of the 'change' to
check the changed value correctly.
(Controller.prototype.handleMaxButtonClicked):
(Controller.prototype.handleVolumeSliderInput): Renamed from handleVolumeSliderChange.
(Controller.prototype.handleVolumeSliderChange): Deleted.

LayoutTests:

Removed the passed test.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
4:38 AM Changeset in webkit [200840] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r200091 - GuardMalloc crash in WebCore::HTMLFrameElementBase::marginHeight()
https://bugs.webkit.org/show_bug.cgi?id=157020
<rdar://problem/25148315>

Reviewed by Darin Adler.

Calls to setIntegralAttribute triggers event handling code, which can cause
the underlying m_frameOwnerElement member to be deleted. We could clone this
object, but since we only want the width and height we should just read them
while we know the object is in a good state, then execute the potentially
mutating methods.

Tested by imported/blink/fast/dom/HTMLBodyElement/body-inserting-iframe-crash.html.

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::insertedInto): Read margin width and height before
calling setIntegralAttribute.

4:36 AM Changeset in webkit [200839] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.12/Source

Merge r200068 - Heap corruption is detected when destructing JSGlobalObject
https://bugs.webkit.org/show_bug.cgi?id=156831

Patch by Fujii Hironori <Fujii Hironori> on 2016-04-25
Reviewed by Mark Lam.

WebKit uses CRT static library on Windows. Each copy of the CRT
library has its own heap manager, allocating memory in one CRT
library and passing the pointer across a DLL boundary to be freed
by a different copy of the CRT library is a potential cause for
heap corruption.

Potential Errors Passing CRT Objects Across DLL Boundaries
<https://msdn.microsoft.com/en-us/library/ms235460(v=vs.140).aspx>

JSGlobalObject::createRareDataIfNeeded is inlined but
JSGlobalObject::~JSGlobalObject is not. Then, the heap of
allocating JSGlobalObjectRareData is WebKit.dll, but deallocating
JavaScriptCore.dll. Adding WTF_MAKE_FAST_ALLOCATED to
JSGlobalObjectRareData ensures heap consistency of it. WTF::Lock
also needs WTF_MAKE_FAST_ALLOCATED because it is allocated from
the inlined constructor of JSGlobalObjectRareData.

Source/JavaScriptCore:

Test: fast/dom/insertedIntoDocument-iframe.html

  • runtime/JSGlobalObject.h:

Add WTF_MAKE_FAST_ALLOCATED to JSGlobalObjectRareData.

Source/WTF:

  • wtf/Lock.h: Add WTF_MAKE_FAST_ALLOCATED.
4:03 AM Changeset in webkit [200838] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.12

Merge r200056 - Add port 4190 (managesieve) to port blacklist
https://bugs.webkit.org/show_bug.cgi?id=156986
<rdar://problem/9119470>

Reviewed by Daniel Bates.

Source/WebCore:

Tested by security/block-test.html.

  • platform/URL.cpp:

(WebCore::portAllowed): Add 4190 to the port blacklist.

LayoutTests:

  • platform/mac/security/block-test-expected.txt
  • security/block-test-expected.txt:
  • security/block-test.html:
4:03 AM Changeset in webkit [200837] by youenn.fablet@crf.canon.fr
  • 22 edits in trunk/Source

DOMPromise should only restrict the resolution type
https://bugs.webkit.org/show_bug.cgi?id=157307

Reviewed by Darin Adler.

Source/WebCore:

Removing from DOMPromise the rejection template parameter.
Supported rejection types are integers (Exception codes) and DOM objects (DOMError typically).

Updated toJS and DeferredWrapper to accept Ref<>&& and RefPtr<>&&.
Previously Ref<>&& were not accepted and only "const RefPtr<>&" was accepted.
This in turn created an unecessary churn count when calling toJS.

Changes also allow in most cases to remove the need for explictly declaring the
rejection/resolution type.

Minor refactoring of FontFaceSet promise handling to use DOMPromise in lieu of DeferredWrapper.

Covered by existing tests.
Changes should not be visible from user scripts.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::consume):
(WebCore::FetchBody::consumeText):
(WebCore::blobFromArrayBuffer):
(WebCore::FetchBody::loadingFailed):

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::formData):

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::arrayBuffer):
(WebCore::FetchBodyOwner::blob):
(WebCore::FetchBodyOwner::formData):
(WebCore::FetchBodyOwner::json):
(WebCore::FetchBodyOwner::text):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didReceiveResponse):

  • Modules/fetch/FetchResponse.h:
  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::didCreateStream):

  • Modules/streams/ReadableStreamSource.h:
  • Modules/webaudio/AudioContext.h:
  • bindings/js/JSDOMBinding.h:

(WebCore::toJS):
(WebCore::jsPair):

  • bindings/js/JSDOMPromise.cpp:

(WebCore::fulfillPromiseWithJSON):

  • bindings/js/JSDOMPromise.h:

(WebCore::TypeInspector::decltype):
(WebCore::TypeInspector::testIsVector):
(WebCore::TypeInspector::testIsRefOrRefPtr):
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DOMPromise::resolve):
(WebCore::DOMPromise::reject):
(WebCore::DeferredWrapper::resolveWithValue):
(WebCore::DeferredWrapper::rejectWithValue):
(WebCore::callPromiseFunction):

  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::unwrapKey):

  • css/FontFace.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::PendingPromise::PendingPromise):
(WebCore::FontFaceSet::load):
(WebCore::FontFaceSet::registerReady):

  • css/FontFaceSet.h:
  • html/HTMLMediaElement.h:

Source/WTF:

  • wtf/Ref.h: Adding static constexpr to ease detection of Ref for templates.
  • wtf/RefPtr.h: Ditto.
4:02 AM Changeset in webkit [200836] by Carlos Garcia Campos
  • 9 edits
    4 adds in releases/WebKitGTK/webkit-2.12

Merge r200047 - Toggling animation-play-state can re-start a finished animation
https://bugs.webkit.org/show_bug.cgi?id=156731

Reviewed by Dean Jackson.

Source/WebCore:

After an animation completed, CompositeAnimation::updateKeyframeAnimations() cleared
all state that the animation had run on the element, so changing the value of some
animation property triggered the animation to run again. This is wrong, since animation-name
still applied to the element.

Fix by keeping state for keyframe animations in the Done state in the m_keyframeAnimations
map. This allows for the removal of the index property on KeyframeAnimation.

Tests: animations/change-completed-animation-transform.html

animations/change-completed-animation.html

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::timeToNextService):

  • page/animation/AnimationBase.h:

(WebCore::AnimationBase::isAnimatingProperty):

  • page/animation/CompositeAnimation.cpp: Add animations that should stick around to AnimationNameMap,

and swap with m_keyframeAnimations at the end.
(WebCore::CompositeAnimation::updateKeyframeAnimations):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::getAnimatedStyle):

  • page/animation/KeyframeAnimation.h:

LayoutTests:

  • animations/animation-direction-reverse-expected.txt:
  • animations/animation-direction-reverse.html: This is a progression. The test was detecting a

restarted animation.

  • animations/change-completed-animation-expected.txt: Added.
  • animations/change-completed-animation-transform-expected.html: Added.
  • animations/change-completed-animation-transform.html: Added. Ref test that ensures that the final

state for normal and accelerated animations is correct.

  • animations/change-completed-animation.html: Added. Tests that changing a property doesn't trigger

another animation, by detecting a second animationstart event.

4:01 AM Changeset in webkit [200835] by Carlos Garcia Campos
  • 8 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200043 - play-state not parsed as part of animation shorthand
https://bugs.webkit.org/show_bug.cgi?id=156959

Reviewed by Darin Adler.

Source/WebCore:

We failed to parse animation-play-state as part of the animation shorthand, contrary
to the spec and other browsers.

Fix for both the prefixed and unprefixed properties. There is some compat risk here,
but only changing unprefixed behavior will probably lead to more author confusion.

Test: animations/play-state-in-shorthand.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseAnimationShorthand):

  • css/CSSPropertyNames.in:
  • css/StylePropertyShorthand.cpp:

(WebCore::animationShorthandForParsing): Remove the long comment which is no longer relevant
now that the behavior has been written into the spec.

LayoutTests:

  • animations/animation-shorthand-expected.txt:
  • animations/animation-shorthand.html:
  • animations/play-state-in-shorthand-expected.txt: Added.
  • animations/play-state-in-shorthand.html: Added.
  • animations/resources/animation-test-helpers.js:

(getPropertyValue):
(comparePropertyValue):

3:41 AM Changeset in webkit [200834] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r200042 - Negative animation-delay is treated as 0s
https://bugs.webkit.org/show_bug.cgi?id=141008

Reviewed by Daniel Bates.

Source/WebCore:

Fix keyframe animations which start in the paused state.

Explicitly move such animations from the new to the paused state, and
set m_pauseTime to 0, rather than leaving it at -1. Fix getElapsedTime()
to compute a correct time elapsed time for such animations, which takes
negative delay into account correctly.

Fix assertions which need to account for the new transition of New -> PlayStatePaused.

Test: animations/play-state-start-paused.html

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::updateStateMachine):
(WebCore::AnimationBase::getElapsedTime):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::animate):

LayoutTests:

Ref test that has an initially-paused animation on 'left' and with a
3d transform.

  • animations/play-state-start-paused-expected.html: Added.
  • animations/play-state-start-paused.html: Added.
3:39 AM Changeset in webkit [200833] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r200039 - Stop listening for "media can start" notifications when media player is cleared
https://bugs.webkit.org/show_bug.cgi?id=156985
<rdar://problem/23158505>

Reviewed by Jer Noble.

No new tests, I have not been able to create a test that reliably reproduces this.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadInternal): Add logging.
(WebCore::HTMLMediaElement::selectMediaResource): Assert and return early if there is

no media player.

(WebCore::HTMLMediaElement::clearMediaPlayer): Stop listening for can start notifications.
(WebCore::HTMLMediaElement::visibilityStateChanged): Add logging.
(WebCore::HTMLMediaElement::mediaCanStart): Ditto.

3:37 AM Changeset in webkit [200832] by Carlos Garcia Campos
  • 4 edits
    4 adds in releases/WebKitGTK/webkit-2.12

Merge r200030 - REGRESSION (r196012): Subresource may be blocked by Content Security Policy if it only matches 'self'
https://bugs.webkit.org/show_bug.cgi?id=156935
<rdar://problem/25351286>

Reviewed by Darin Adler.

Source/WebCore:

Fixes an issue where subresource load may be blocked by the Content Security Policy (CSP) if its URL only
matched 'self'. In particular, the load would be blocked if initiated from a document that inherited the
origin of its owner document (e.g. the document contained in <iframe src="about:blank"></iframe>).

Following r196012 we compute and cache 'self' and its protocol on instantiation of a ContentSecurityPolicy
object for use when matching a URL against it. These cached values become out-of-date if the document
subsequently inherits the origin of its owner document. Therefore matches against 'self' will fail and
CSP will block a load if its not otherwise allowed by the policy. Previously we would compute 'self' when
parsing the definition of a source list and compute the protocol for 'self' each time we tried to match a
URL against 'self'. So, 'self' would always be up-to-date with respect to the origin of the document.

Tests: http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script.html

http/tests/security/contentSecurityPolicy/iframe-srcdoc-external-script.html

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::ContentSecurityPolicy): Extract out logic for computing and caching
'self' and its protocol into ContentSecurityPolicy::updateSourceSelf() and make use of this function.
(WebCore::ContentSecurityPolicy::updateSourceSelf): Computes and caches 'self' and its protocol with
respect to the specified SecurityOrigin.
(WebCore::ContentSecurityPolicy::applyPolicyToScriptExecutionContext): Call ContentSecurityPolicy::updateSourceSelf()
to ensure that we have an up-to-date representation for 'self' and the protocol of 'self' which can
become out-of-date if the document inherited the origin of its owner document.

  • page/csp/ContentSecurityPolicy.h:

LayoutTests:

Add tests to ensure that we match 'self' correctly in an iframe with an about:blank document.

  • http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script.html: Added.
  • http/tests/security/contentSecurityPolicy/iframe-srcdoc-external-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/iframe-srcdoc-external-script.html: Added.
3:32 AM Changeset in webkit [200831] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/gtk/po

Merge r199948 - 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:
3:25 AM Changeset in webkit [200830] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.12

Merge r199895 - 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.
3:22 AM Changeset in webkit [200829] by Carlos Garcia Campos
  • 10 edits
    3 adds in releases/WebKitGTK/webkit-2.12

Merge r199881 - 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.
3:02 AM Changeset in webkit [200828] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebKit2

Merge r199875 - 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.

3:01 AM Changeset in webkit [200827] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199856 - 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:
2:57 AM Changeset in webkit [200826] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.12/Source/WebCore

Merge r199851 - Fix crashes when loading SVG images.

  • loader/EmptyClients.cpp:

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

2:54 AM Changeset in webkit [200825] by Carlos Garcia Campos
  • 8 edits
    3 deletes in releases/WebKitGTK/webkit-2.12

Revert "Merge r197520 - DFG should be able to compile StringReplace"

This reverts commit 0c91f9b2c73ecc89dac9ece8b7fa6fd06330e451.

1:22 AM Changeset in webkit [200824] by gskachkov@gmail.com
  • 12 edits in trunk

Assertion failure for super() call in arrow function default parameters
https://bugs.webkit.org/show_bug.cgi?id=157079

Reviewed by Saam Barati.

Source/JavaScriptCore:

Root of the issue that in arrow function we load bounded variables this/super/new.target just after
input parameters were initialized, and did not covered case of default values for function parameters.
Current patch tried to fix issue and allow to load bounded variables earlier, before the input
parameters are assigned by default values.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • tests/stress/arrowfunction-lexical-bind-this-2.js:

LayoutTests:

  • js/arrowfunction-lexical-bind-arguments-non-strict-expected.txt:
  • js/arrowfunction-lexical-bind-this-expected.txt:
  • js/arrowfunction-supercall-expected.txt:
  • js/arrowfunction-superproperty-expected.txt:
  • js/script-tests/arrowfunction-lexical-bind-arguments-non-strict.js:
  • js/script-tests/arrowfunction-lexical-bind-this.js:
  • js/script-tests/arrowfunction-supercall.js:
  • js/script-tests/arrowfunction-superproperty.js:
1:11 AM Changeset in webkit [200823] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.32.1.1/Source

Versioning.

12:50 AM Changeset in webkit [200822] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.32.1.1

New tag.

12:41 AM Changeset in webkit [200821] by svillar@igalia.com
  • 4 edits in trunk

[css-grid] Show auto-repeat line names in ComputedStyle
https://bugs.webkit.org/show_bug.cgi?id=157622

Reviewed by Darin Adler.

Source/WebCore:

Add the necessary machinery to show the named lines from auto-repeat tracks in
getComputedStyle(). A new class OrderedNamedLinesCollector was added to abstract the
retrieval of line names no matter where they come from (explicit or auto-repeat tracks).

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::OrderedNamedLinesCollector::OrderedNamedLinesCollector):
(WebCore::OrderedNamedLinesCollector::isEmpty): TRUE if we don't have named lines neither on
explicit nor auto-repeat tracks.
(WebCore::OrderedNamedLinesCollector::appendLines): Add the named lines found for a given
index to the CSSGridLineNamesValue.
(WebCore::OrderedNamedLinesCollector::collectLineNamesForIndex): Collects named lines found
for a given index.
(WebCore::addValuesForNamedGridLinesAtIndex): Use the collector to gather named lines.
(WebCore::valueForGridTrackList): Ditto.

LayoutTests:

  • fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
12:33 AM Changeset in webkit [200820] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Always use v3 UI for dashboards and analysis task pages
https://bugs.webkit.org/show_bug.cgi?id=157647

Reviewed by Darin Adler.

Redirect dashboard pages from v1 and v2 to v3's summary page. Also redirect v1 UI's charts page and v2 UI's
analysis task pages to the corresponding v3 pages.

Keep v2's charts page accessible since some features such as segmentation is still only available on v2 UI.

  • public/index.html:

(init.showCharts): Redirect to v3 UI once the chart list has been parsed.
(init.redirectChartsToV3): Added.

  • public/v2/index.html:
12:31 AM Changeset in webkit [200819] by commit-queue@webkit.org
  • 17 edits in trunk/Source

Revert r199691.
https://bugs.webkit.org/show_bug.cgi?id=157645
<rdar://problem/26235373>

Patch by Tina Liu <iting_liu@apple.com> on 2016-05-13
Reviewed by Darin Adler.

Source/WebCore:

  • plugins/PluginStrategy.h:

Source/WebKit/mac:

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

(WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy): Deleted.

Source/WebKit2:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.mm:

(WKContextSetPrivateBrowsingPluginLoadClientPolicy): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setPluginLoadClientPolicy):
(WebKit::WebProcessPool::createNewWebProcess): Deleted.
(WebKit::WebProcessPool::setPluginLoadClientPolicyForPrivateBrowsing): Deleted.
(WebKit::WebProcessPool::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
(WebKit::WebProcessPool::clearPluginClientPolicies): Deleted.

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

(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy):
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost):
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost):
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost):
(WebKit::WebPlatformStrategies::populatePluginCache):
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicyForPrivateBrowsing): Deleted.
(WebKit::WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy): Deleted.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies): Deleted.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHostForPrivateBrowsing): Deleted.

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

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setPluginLoadClientPolicies): Deleted.
(WebKit::WebProcess::setPrivateBrowsingPluginLoadClientPolicy): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
12:31 AM Changeset in webkit [200818] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Show a spinner while fetching data on summary page
https://bugs.webkit.org/show_bug.cgi?id=157658

Reviewed by Darin Adler.

Show a spinner while fetching JSON files on the summary page.

  • public/v3/components/base.js:

(ComponentBase.prototype.renderReplace): Added a new implementation that simply calls the static version.
(ComponentBase.renderReplace): Made this static.

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

(SummaryPage.prototype._constructRatioGraph): Show a spinner icon when SummaryPageConfigurationGroup's
isFetching returns true.
(SummaryPage.cssTemplate): Force the height of each cell to be 2.5rem so that the height of cell doesn't
change when a spinner is replaced by a ratio bar graph.

(SummaryPageConfigurationGroup): Added this._isFetching as an instance variable.
(SummaryPageConfigurationGroup.prototype.isFetching): Added.
(SummaryPageConfigurationGroup.prototype.fetchAndComputeSummary): Set this._isFetching while waiting for
the promises to resolve after 50ms. We don't immediately set this._isFetching to avoid FOC when all JSON
files have been cached.

Note: See TracTimeline for information about the timeline view.