Timeline



May 2, 2015:

7:20 PM Changeset in webkit [183726] by commit-queue@webkit.org
  • 36 edits in trunk/Source/WebCore

Purge PassRefPtr create() factory functions in html
https://bugs.webkit.org/show_bug.cgi?id=144522

Patch by Gyuyoung Kim <gyuyoung.kim@samsung.com> on 2015-05-02
Reviewed by Darin Adler.

Return Ref instead of PassRefPtr in create() factory functions in html, because the factory
can't return null. This patch is a first step to purge in html. Following patch is going to
be uploaded.

No new tests, no behavior changes.

  • html/FileInputType.cpp:

(WebCore::UploadButtonElement::create):
(WebCore::UploadButtonElement::createForMultiple):

  • html/MediaController.cpp:

(MediaController::create):

  • html/MediaController.h:
  • html/canvas/WebGLBuffer.cpp:

(WebCore::WebGLBuffer::create):

  • html/canvas/WebGLBuffer.h:
  • html/canvas/WebGLContextAttributes.cpp:

(WebCore::WebGLContextAttributes::create):

  • html/canvas/WebGLContextAttributes.h:
  • html/canvas/WebGLContextGroup.cpp:

(WebCore::WebGLContextGroup::create):

  • html/canvas/WebGLContextGroup.h:
  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::create):

  • html/canvas/WebGLFramebuffer.h:
  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::create):

  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLQuery.cpp:

(WebCore::WebGLQuery::create):

  • html/canvas/WebGLQuery.h:
  • html/canvas/WebGLRenderbuffer.cpp:

(WebCore::WebGLRenderbuffer::create):

  • html/canvas/WebGLRenderbuffer.h:
  • html/canvas/WebGLSampler.cpp:

(WebCore::WebGLSampler::create):

  • html/canvas/WebGLSampler.h:
  • html/canvas/WebGLShader.cpp:

(WebCore::WebGLShader::create):

  • html/canvas/WebGLShader.h:
  • html/canvas/WebGLShaderPrecisionFormat.cpp:

(WebCore::WebGLShaderPrecisionFormat::create):

  • html/canvas/WebGLShaderPrecisionFormat.h:
  • html/canvas/WebGLSync.cpp:

(WebCore::WebGLSync::create):

  • html/canvas/WebGLSync.h:
  • html/canvas/WebGLTexture.cpp:

(WebCore::WebGLTexture::create):

  • html/canvas/WebGLTexture.h:
  • html/canvas/WebGLTransformFeedback.cpp:

(WebCore::WebGLTransformFeedback::create):

  • html/canvas/WebGLTransformFeedback.h:
  • html/canvas/WebGLUniformLocation.cpp:

(WebCore::WebGLUniformLocation::create):

  • html/canvas/WebGLUniformLocation.h:
  • html/canvas/WebGLVertexArrayObject.cpp:

(WebCore::WebGLVertexArrayObject::create):

  • html/canvas/WebGLVertexArrayObject.h:
  • html/canvas/WebGLVertexArrayObjectOES.cpp:

(WebCore::WebGLVertexArrayObjectOES::create):

  • html/canvas/WebGLVertexArrayObjectOES.h:
5:53 PM Changeset in webkit [183725] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Style recalc always causes detach from shared StyleRareNonInheritedData.
<https://webkit.org/b/144530>

Reviewed by Darin Adler.

StyleResolver::adjustStyleForMaskImages() was always calling RenderStyle::ensureMaskLayers()
when we were in style recalc. This caused the RenderStyle to COW off from the previously
shared StyleRareNonInheritedData even if nothing actually changes.

This patch adds an early return to adjustStyleForMaskImages() when the previous style had
no mask images. Further refinements could be made, but this covers the most common case where
we don't have any mask images at all.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustStyleForMaskImages):

5:15 PM Changeset in webkit [183724] by fpizlo@apple.com
  • 22 edits
    2 adds in trunk/Source/JavaScriptCore

TypeOf should be fast
https://bugs.webkit.org/show_bug.cgi?id=144396

Reviewed by Geoffrey Garen.

Adds comprehensive support for fast typeof to the optimizing JITs. Calls into the runtime
are only used for very exotic objects - they must have either the MasqueradesAsUndefined or
TypeOfShouldCallGetCallData type flags set. All other cases are handled inline.

This means optimizing IsObjectOrNull, IsFunction, and TypeOf - all node types that used to
rely heavily on C++ calls to fulfill their function.

Because TypeOf is now so fast, we no longer need to do any speculations on this node.

In the FTL, we take this further by querying AI for each branch in the TypeOf decision tree.
This means that if the TypeOf is dominated by any type checks, we will automatically prune
out cases that are redundant.

This patch anticipates the addition of SwitchTypeOf or something like that. So, the TypeOf
code generation is designed to be reusable.

This is a speed-up on most typeof benchmarks. But, it is a slow-down on benchmarks that take
the exotic call trap hook. That hook is now in a deeper slow path than before.

(JSC::DFG::clobberize): TypeOf was pure all along, but we failed to realize this.

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

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

(JSC::DFG::SpeculativeJIT::compileIsObjectOrNull):
(JSC::DFG::SpeculativeJIT::compileIsFunction):
(JSC::DFG::SpeculativeJIT::compileTypeOf):

  • dfg/DFGSpeculativeJIT.h:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

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

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileIsObjectOrNull):
(JSC::FTL::LowerDFGToLLVM::compileIsFunction):
(JSC::FTL::LowerDFGToLLVM::compileTypeOf):
(JSC::FTL::LowerDFGToLLVM::buildTypeOf): Reusable TypeOf building for the FTL.
(JSC::FTL::LowerDFGToLLVM::isExoticForTypeof):

  • ftl/FTLSwitchCase.h:

(JSC::FTL::SwitchCase::SwitchCase):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfNotEqual):
(JSC::AssemblyHelpers::branchIfEqual):
(JSC::AssemblyHelpers::branchIfNumber):
(JSC::AssemblyHelpers::branchIfNotNumber):
(JSC::AssemblyHelpers::branchIfBoolean):
(JSC::AssemblyHelpers::branchIfNotBoolean):
(JSC::AssemblyHelpers::boxBooleanPayload):
(JSC::AssemblyHelpers::boxBoolean):
(JSC::AssemblyHelpers::emitTypeOf): Reusable TypeOf building for assembly JITs.

  • jit/JITOperations.h:
  • runtime/SmallStrings.h:

(JSC::SmallStrings::typeString):

  • runtime/TypeofType.cpp: Added.

(WTF::printInternal):

  • runtime/TypeofType.h: Added.
  • tests/stress/type-of-functions-and-objects.js: Modified this test to give more comprehensive feedback.
4:06 PM Changeset in webkit [183723] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

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

Made all the tests assert (Requested by ap on #webkit).

Reverted changeset:

"Generated static StringImpls should have static flag set."
https://bugs.webkit.org/show_bug.cgi?id=144516
http://trac.webkit.org/changeset/183722

1:55 PM Changeset in webkit [183722] by akling@apple.com
  • 2 edits in trunk/Source/WTF

Generated static StringImpls should have static flag set.
<https://webkit.org/b/144516>

Reviewed by Darin Adler.

Discovered this while tracking down a string ref leak. Turns out that the strings
generated by StaticString.pm were not getting the static flag set on them.

The only practical difference from this AFAICT is that now the garbage collector
will correctly see that these strings have no extra memory cost to worry about.

  • wtf/text/StringImpl.h:
12:55 PM WebKitGTK/2.8.x edited by Michael Catanzaro
Propose r183692 (diff)
12:26 PM Changeset in webkit [183721] by commit-queue@webkit.org
  • 15 edits
    2 deletes in trunk/Source/WebInspectorUI

Web Inspector: Relocate the selected range details in the Rendering Frames timeline UI
https://bugs.webkit.org/show_bug.cgi?id=144346

This patch removes the details sidebar used by the rendering frames view, and relocates the frame selection
chart the Timelines navigation sidebar.

Patch by Matt Baker <Matt Baker> on 2015-05-02
Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
RenderingFramesDetailsSidebar is no longer used.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype._loadNewRecording):
Reordered timelines.

  • UserInterface/Main.html:

Removed references to deleted files.

  • UserInterface/Views/ChartDetailsSectionLegendRow.js: Removed.

No longer used. The legend is now a child element of the chart.

  • UserInterface/Views/ChartDetailsSectionRow.css:

(.details-section > .content > .group > .row.chart > .title):
(.details-section > .content > .group > .row.chart > .chart-content):
(.details-section > .content > .group > .row.chart > .chart-content > .legend):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label > .color-swatch):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .value):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > *):
New chart and legend styles.

  • UserInterface/Views/ChartDetailsSectionRow.js:

(WebInspector.ChartDetailsSectionRow):
(WebInspector.ChartDetailsSectionRow.prototype.set title):
(WebInspector.ChartDetailsSectionRow.prototype.set innerLabel):
(WebInspector.ChartDetailsSectionRow.prototype.set innerRadius):
(WebInspector.ChartDetailsSectionRow.prototype.get total):
(WebInspector.ChartDetailsSectionRow.set data):
(WebInspector.ChartDetailsSectionRow.prototype.set data):
(WebInspector.ChartDetailsSectionRow.prototype._createLegendItem):
(WebInspector.ChartDetailsSectionRow.prototype._refresh):

A few changes have been made to the appearance and behavior of the chart. A chart title can now be set,
and the legend appears to the right of the chart rather than in a separate details group.

The chart now has better support for adding empty data points, ensuring that a meaningful legend is shown even
when no rendering frames are selected in the timeline overview graph. This ensures that the task associated
with each colored frame segment is apparent, without having to make a selection or record a timeline.

  • UserInterface/Views/RenderingFrameDetailsSidebarPanel.js: Removed.

No longer used.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

Reduced maximum timeline height to increase the height of short frames.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype.shown):
(WebInspector.RenderingFrameTimelineView.prototype.hidden):
RenderingFramesDetailsSidebar is no longer used.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):
Improved logic for updating the frame selection.

  • UserInterface/Views/TimelineSidebarPanel.css:

(.sidebar > .panel.navigation.timeline > .timelines-content > .details-section > div.header):
(.sidebar > .panel.navigation.timeline > .timelines-content > .details-section > .content > .group > .row.chart):
(.sidebar > .panel.navigation.timeline > .timelines-content > .details-section > .content > .group > .row.chart > .chart-content > .chart):
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content): Deleted.
New chart styles.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.shown):
(WebInspector.TimelineSidebarPanel._timelineAdded.set this):
(WebInspector.TimelineSidebarPanel.this._timelineTreeElementMap.get select):
(WebInspector.TimelineSidebarPanel.get else):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.getSelectedRecords.get var):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.getSelectedRecords):
(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline.this._timelineTreeElementMap.get select):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if.get if):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.durationForRecordType):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.TimelineSidebarPanel.set contentTreeOutlineLabel): Deleted.
(WebInspector.TimelineSidebarPanel._recordingCreated.set this): Deleted.
(WebInspector.TimelineSidebarPanel.get this): Deleted.
Moved the selected frames chart to the navigation sidebar.

  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineTabContentView):
RenderingFramesDetailsSidebar is no longer used.

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

Removed references to deleted files.

12:19 PM Changeset in webkit [183720] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=144155

Unreviewed, will roll out soon.

Added some temporary logging to better see if alignment is indeed the culprit.

  • page/Settings.cpp: (WebCore::Settings::setDOMTimerAlignmentInterval):
11:36 AM Changeset in webkit [183719] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add a FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=144527.

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

10:33 AM Changeset in webkit [183718] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, add FIXMEs referencing https://bugs.webkit.org/show_bug.cgi?id=144524 and
https://bugs.webkit.org/show_bug.cgi?id=144525.

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGPhantomInsertionPhase.cpp:
8:41 AM Changeset in webkit [183717] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Use Ref instead of PassRefPtr in WebCore/svg
https://bugs.webkit.org/show_bug.cgi?id=144479

Patch by Gyuyoung Kim <gyuyoung.kim@samsung.com> on 2015-05-02
Reviewed by Darin Adler.

Remove remained PassRefPtr in svg.

No new tests, no behavior changes.

  • svg/SVGFontFaceSrcElement.cpp:

(WebCore::SVGFontFaceSrcElement::srcValue):

  • svg/SVGFontFaceSrcElement.h:
  • svg/properties/SVGPropertyInfo.h:
8:32 AM Changeset in webkit [183716] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Small cleanup in BitmapImage
https://bugs.webkit.org/show_bug.cgi?id=144515

Reviewed by Darin Adler.

Use an enum for the internalAdvanceAnimation() argument, with a default.

Wrap the clearing of the timer in a clearTimer() function, called from
stopAnimation(). This fixes the jarring reading of BitmapImage::internalAdvanceAnimation(),
which used to start by calling stopAnimation().

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::clearTimer):
(WebCore::BitmapImage::startAnimation):
(WebCore::BitmapImage::stopAnimation):
(WebCore::BitmapImage::advanceAnimation):
(WebCore::BitmapImage::internalAdvanceAnimation):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:
8:28 AM Changeset in webkit [183715] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Static property hashtable should only lookup with non-symbol key
https://bugs.webkit.org/show_bug.cgi?id=144438

Reviewed by Darin Adler.

Static property hashtable compares the Identifier's uid
with the normal C string without interning it.
So this comparison is performed in their contents.
As the result, in this comparison, symbol-ness is not considered.

So if accidentally the hash collision occur with the symbol and the string
and they have the same contents, the hash table entry is looked up incorrectly.

  • runtime/Lookup.h:

(JSC::HashTable::entry):

2:41 AM Changeset in webkit [183714] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Allow closing and reopening the Resources tab
https://bugs.webkit.org/show_bug.cgi?id=144513

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector._updateNewTabButtonState):

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.closed):

  • UserInterface/Views/ResourcesTabContentView.js:

(WebInspector.ResourcesTabContentView):

2:36 AM Changeset in webkit [183713] by timothy@apple.com
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION: Resources section doesn't update after changes are made to a local file
https://bugs.webkit.org/show_bug.cgi?id=144512

The content view was being associated with the wrong represented object. This caused the code to use
the old main resource when showing the frame again.

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector._frameWasAdded.delayedWork):
(WebInspector._frameWasAdded):
With the changes in ResourceSidebarPanel, we need to delay showing the frame.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WebInspector.ContentBrowserTabContentView.prototype.showRepresentedObject):
Avoid restoring state by calling cancelRestoringState(). Not fully related to this bug,
but it was preventing testing the cases.

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer.prototype.contentViewForRepresentedObject):
This fixes the bug. Don't associate the content view with the Frame, associate it with
the Resource that we actually show.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.cancelRestoringState): Added.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel): Remove unused _waitingForInitialMainFrame.
(WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.ResourceSidebarPanel.prototype._mainResourceDidChange):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameDidChange):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
Clean up how we show the main frame in the sidebar. This was a two step mess before.

May 1, 2015:

11:09 PM Changeset in webkit [183712] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.5

New tag.

11:06 PM Changeset in webkit [183711] by bshafiei@apple.com
  • 2 edits in branches/safari-600.7-branch/Source/WebCore

Merged r183524. rdar://problem/20779683

7:32 PM Changeset in webkit [183710] by Simon Fraser
  • 10 edits
    3 adds in trunk

Avoid compositing updates after style recalcs which have no compositing implications
https://bugs.webkit.org/show_bug.cgi?id=144502

Reviewed by Darin Adler.

Source/WebCore:

After r183461, we have reliable information about whether a style change with zero
diff can be reliably ignored. Use that information to track whether a given
recalcStyle() does anything which should force a compositing update.

This eliminates up to 40% of the post-recalcStyle compositing updates on some pages.

Add Internals API to test.

Test: compositing/updates/no-style-change-updates.html

  • dom/Document.cpp:

(WebCore::Document::recalcStyle): Tell the FrameView we're going to recalc style.

  • page/FrameView.cpp:

(WebCore::FrameView::willRecalcStyle): Pass it on to the compositor.
(WebCore::FrameView::updateCompositingLayersAfterStyleChange): Move the code
that was here into RenderLayerCompositor::didRecalcStyleWithNoPendingLayout().

  • page/FrameView.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::willRecalcStyle): Reset the m_layerNeedsCompositingUpdate flag.
(WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout): Bail on the update if
no layers changed.
(WebCore::RenderLayerCompositor::updateCompositingLayers): Logging. Increment m_compositingUpdateCount,
which is used for testing.
(WebCore::RenderLayerCompositor::layerStyleChanged): Set the m_layerNeedsCompositingUpdate flag.
(WebCore::RenderLayerCompositor::startTrackingCompositingUpdates): Reset the counter.
(WebCore::RenderLayerCompositor::compositingUpdateCount):

  • rendering/RenderLayerCompositor.h:
  • testing/Internals.cpp:

(WebCore::Internals::startTrackingCompositingUpdates):
(WebCore::Internals::compositingUpdateCount):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Use internals.compositingUpdateCount() to see if various document mutations
cause a compositing update. Doesn't actually detect any behavior change
from this patch, but seems useful in general.

  • compositing/updates/no-style-change-updates-expected.txt: Added.
  • compositing/updates/no-style-change-updates.html: Added.
7:23 PM Changeset in webkit [183709] by rniwa@webkit.org
  • 10 edits
    3 adds in trunk

Class syntax should allow string and numeric identifiers for method names
https://bugs.webkit.org/show_bug.cgi?id=144254

Reviewed by Darin Adler.

Source/JavaScriptCore:

Added the support for string and numeric identifiers in class syntax.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseFunctionInfo): Instead of using ConstructorKind to indicate whether we're
inside a class or not, use the newly added SuperBinding argument instead. ConstructorKind is now None
outside a class constructor as it should be.
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass): No longer expects an identifier at the beginning of every class
element to allow numeric and string method names. For both of those method names, parse it here instead
of parseFunctionInfo since it doesn't support either type. Also pass in SuperBinding::Needed.
(JSC::Parser<LexerType>::parsePropertyMethod): Call parseFunctionInfo with SuperBinding::NotNeeded since
this function is never used to parse a class method.
(JSC::Parser<LexerType>::parseGetterSetter): Pass in superBinding argument to parseFunctionInfo.
(JSC::Parser<LexerType>::parsePrimaryExpression): Call parseFunctionInfo with SuperBinding::NotNeeded.

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

(JSC::SyntaxChecker::createProperty):

LayoutTests:

Added a test and rebaselined other tests per syntax error message change.

  • js/class-syntax-declaration-expected.txt:
  • js/class-syntax-expression-expected.txt:
  • js/class-syntax-string-and-numeric-names-expected.txt: Added.
  • js/class-syntax-string-and-numeric-names.html: Added.
  • js/class-syntax-super-expected.txt:
  • js/script-tests/class-syntax-declaration.js:
  • js/script-tests/class-syntax-expression.js:
  • js/script-tests/class-syntax-string-and-numeric-names.js: Added.
  • js/script-tests/class-syntax-super.js:
6:59 PM Changeset in webkit [183708] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

FTL should use AI more
https://bugs.webkit.org/show_bug.cgi?id=144500

Reviewed by Oliver Hunt.

This makes our type check folding even more comprehensive by ensuring that even if the FTL
decides to emit some checks, it will still do another query to the abstract interpreter to
see if the check is necessary. This helps with cases where we decided early on to speculate
one way, but later proved a more specific type of the value in question, and the constant
folder didn't catch it.

This also makes it more natural to query the abstract interpreter. For example, if you just
want the proven type, you can now say provenType(node) or provenType(edge).

  • dfg/DFGArrayMode.cpp:

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

  • dfg/DFGArrayMode.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileBooleanToNumber):
(JSC::FTL::LowerDFGToLLVM::compileToThis):
(JSC::FTL::LowerDFGToLLVM::compileValueAdd):
(JSC::FTL::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::LowerDFGToLLVM::compileArithPow):
(JSC::FTL::LowerDFGToLLVM::compileArithNegate):
(JSC::FTL::LowerDFGToLLVM::compileGetById):
(JSC::FTL::LowerDFGToLLVM::compileCheckArray):
(JSC::FTL::LowerDFGToLLVM::compilePutByVal):
(JSC::FTL::LowerDFGToLLVM::compileToStringOrCallStringConstructor):
(JSC::FTL::LowerDFGToLLVM::compileToPrimitive):
(JSC::FTL::LowerDFGToLLVM::compileStringCharAt):
(JSC::FTL::LowerDFGToLLVM::compileStringCharCodeAt):
(JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
(JSC::FTL::LowerDFGToLLVM::compileSwitch):
(JSC::FTL::LowerDFGToLLVM::compileIsBoolean):
(JSC::FTL::LowerDFGToLLVM::compileIsNumber):
(JSC::FTL::LowerDFGToLLVM::compileIsString):
(JSC::FTL::LowerDFGToLLVM::compileIsObject):
(JSC::FTL::LowerDFGToLLVM::compileInstanceOf):
(JSC::FTL::LowerDFGToLLVM::numberOrNotCellToInt32):
(JSC::FTL::LowerDFGToLLVM::baseIndex):
(JSC::FTL::LowerDFGToLLVM::compareEqObjectOrOtherToObject):
(JSC::FTL::LowerDFGToLLVM::typedArrayLength):
(JSC::FTL::LowerDFGToLLVM::boolify):
(JSC::FTL::LowerDFGToLLVM::equalNullOrUndefined):
(JSC::FTL::LowerDFGToLLVM::lowInt32):
(JSC::FTL::LowerDFGToLLVM::lowInt52):
(JSC::FTL::LowerDFGToLLVM::lowCell):
(JSC::FTL::LowerDFGToLLVM::lowBoolean):
(JSC::FTL::LowerDFGToLLVM::lowDouble):
(JSC::FTL::LowerDFGToLLVM::isCellOrMisc):
(JSC::FTL::LowerDFGToLLVM::isNotCellOrMisc):
(JSC::FTL::LowerDFGToLLVM::isNumber):
(JSC::FTL::LowerDFGToLLVM::isNotNumber):
(JSC::FTL::LowerDFGToLLVM::isNotCell):
(JSC::FTL::LowerDFGToLLVM::isCell):
(JSC::FTL::LowerDFGToLLVM::isNotMisc):
(JSC::FTL::LowerDFGToLLVM::isMisc):
(JSC::FTL::LowerDFGToLLVM::isNotBoolean):
(JSC::FTL::LowerDFGToLLVM::isBoolean):
(JSC::FTL::LowerDFGToLLVM::isNotOther):
(JSC::FTL::LowerDFGToLLVM::isOther):
(JSC::FTL::LowerDFGToLLVM::isProvenValue):
(JSC::FTL::LowerDFGToLLVM::isObject):
(JSC::FTL::LowerDFGToLLVM::isNotObject):
(JSC::FTL::LowerDFGToLLVM::isNotString):
(JSC::FTL::LowerDFGToLLVM::isString):
(JSC::FTL::LowerDFGToLLVM::isFunction):
(JSC::FTL::LowerDFGToLLVM::isNotFunction):
(JSC::FTL::LowerDFGToLLVM::speculateObjectOrOther):
(JSC::FTL::LowerDFGToLLVM::speculateStringObjectForStructureID):
(JSC::FTL::LowerDFGToLLVM::speculateNotStringVar):
(JSC::FTL::LowerDFGToLLVM::abstractValue):
(JSC::FTL::LowerDFGToLLVM::provenType):
(JSC::FTL::LowerDFGToLLVM::provenValue):
(JSC::FTL::LowerDFGToLLVM::abstractStructure):

6:44 PM Changeset in webkit [183707] by Brent Fulgham
  • 1 edit
    9 adds in trunk/LayoutTests

Create a set of initial scroll snap point tests
https://bugs.webkit.org/show_bug.cgi?id=142358

Reviewed by Simon Fraser.

  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html: Added.
6:29 PM Changeset in webkit [183706] by akling@apple.com
  • 3 edits
    2 adds in trunk

Reproducible crash removing name attribute from <img> node
<https://webkit.org/b/144371>
<rdar://problem/17198583>

Reviewed by Darin Adler.

Source/WebCore:

The problem here was with HTMLImageElement::getNameAttribute(), which relies
on Element::hasName() to avoid slow attribute lookups when the attribute
is already known not to be present. Unfortunately hasName() uses an ElementData
flag that wasn't getting updated until after the call to parseAttribute().

This patch fixes the issue by moving the code that updates the hasName() flag
before the parseAttribute() virtual dispatch.

Test: fast/dom/HTMLImageElement/remove-name-id-attribute-from-image.html

  • dom/Element.cpp:

(WebCore::Element::attributeChanged):

LayoutTests:

  • fast/dom/HTMLImageElement/remove-name-id-attribute-from-image-expected.txt: Added.
  • fast/dom/HTMLImageElement/remove-name-id-attribute-from-image.html: Added.
6:11 PM Changeset in webkit [183705] by eric.carlson@apple.com
  • 5 edits
    2 adds in trunk

Postpone caption style sheet creation
https://bugs.webkit.org/show_bug.cgi?id=144499

Reviewed by Simon Fraser.
Source/WebCore:


Generating and inserting the caption user style sheet is expensive so don't do it until
we see a text track, and only do it for the first video element in a PageGroup.

Test: media/track/track-user-stylesheet.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::registerWithDocument): Only register for caption preferences
changes if we have done so before.
(WebCore::HTMLMediaElement::unregisterWithDocument): Only unregister for caption preferences
changes if we registered for them.
(WebCore::HTMLMediaElement::addTextTrack): Register for caption preference changes.

  • html/HTMLMediaElement.h:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges): Only
generate the style sheet when called for the first time.

LayoutTests:

  • media/track/track-user-stylesheet-expected.txt: Added.
  • media/track/track-user-stylesheet.html: Added.
5:55 PM Changeset in webkit [183704] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Scrubber display is broken if the buffered range is empty
https://bugs.webkit.org/show_bug.cgi?id=144511

Reviewed by Eric Carlson.

Make sure that if video.buffered returns an empty list, we
still draw the scrubber background correctly.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.drawTimelineBackground): Ensure that buffered
is always at least as big as the current time.

5:47 PM Changeset in webkit [183703] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Media control volume slider should be vertical to avoid flickering issues.
https://bugs.webkit.org/show_bug.cgi?id=144496.
<rdar://problem/20451328>

Reviewed by Darin Adler.

  • Modules/mediacontrols/mediaControlsApple.css:

Resize and reposition the volume box so that it does not have to rotated via a transform.
(audio::-webkit-media-controls-panel):
(audio::-webkit-media-controls-panel .volume-box): Also set overflow: hidden so we can't interact

with the volume slider while the volume box is hidden.

(audio::-webkit-media-controls-panel .volume-box:active):
Rotate and position the volume slider via transforms. Make sure it's not transformed in the fullscreen controls.
(video::-webkit-media-controls-volume-slider):
(video:-webkit-full-screen::-webkit-media-controls-volume-slider):

5:39 PM Changeset in webkit [183702] by Brent Fulgham
  • 16 edits in trunk/Source/WebCore

Expand test infrastructure to support scrolling tests (Part 4): Scroll Snap Support
https://bugs.webkit.org/show_bug.cgi?id=144482

Reviewed by Simon Fraser.

New tests will be landed in a second patch.

The new WheelEventTestTriggers do not work properly with scroll snap points, because some test deferral notifications
need to be triggered for state changes on the scrolling thread. This required the following changes:

  1. A flag indicating that we want to know about WheelEvent state changes needed to be propagated to the scrolling thread, so that tests could be deferred until Scrolling thread rubberband or scroll-snap animations had completed.
  2. The ScrollingNodeID needed to be used for registering and clearing deferrals.
  3. The scrolling thread needed a way to dispatch messages to the main thread indicating that we should (or should not) defer tests due to scrolling actions.

Note that a future patch will extend this support to include the RemoteScrollingTree.

  • page/WheelEventTestTrigger.cpp:

(WebCore::WheelEventTestTrigger::deferTestsForReason): Added some logging features.
(WebCore::WheelEventTestTrigger::removeTestDeferralForReason): Ditto.
(WebCore::dumpState): Helper function for logging test deferral state.
(WebCore::WheelEventTestTrigger::triggerTestTimerFired): Added some logging features.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): Make sure that the scrolling thread is
told that it needs to send scrolling state back to the main thread. Only do this if we are in testing mode.
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll): The scrollingNodeID should be
used as the identifier for this operation, not the page address.
(WebCore::AsyncScrollingCoordinator::deferTestsForReason): Added. receives messages from the scrolling thread
and notifies the testing infrastructure.
(WebCore::AsyncScrollingCoordinator::removeTestDeferralForReason): Ditto.

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): When cloning the ScrollingStateScrollingNode,
include the testing mode state.
(WebCore::ScrollingStateScrollingNode::setExpectsWheelEventTestTrigger): Added.

  • page/scrolling/ScrollingStateScrollingNode.h:

(WebCore::ScrollingStateScrollingNode::expectsWheelEventTestTrigger): Added.

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::deferTestsForReason): Added stub.
(WebCore::ScrollingTree::removeTestDeferralForReason): Ditto.

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::deferTestsForReason): Added. Dispatches messages from the scrolling thread to the
main thread.
(WebCore::ThreadedScrollingTree::removeTestDeferralForReason): Ditto.

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac): Initialize testing state flag.
(WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren): If the 'ExpectsWheelEventTestTrigger' flag is
set, update local state.
(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent): If we are testing, and the wheel event should be handled
asynchronously, tell the testing infrastructure we need to wait for the thread state to sync.
(WebCore::ScrollingTreeFrameScrollingNodeMac::deferTestsForReason): Added. Notifies test system we need to defer tests
until we notify them. Also used by the ScrollController during animations.
(WebCore::ScrollingTreeFrameScrollingNodeMac::removeTestDeferralForReason): Ditto.

  • platform/Logging.h:
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::deferTestsForReason): Added. Used by ScrollController during animation. This updates the
testing infrastructure directly, since it is running in the same process and main thread.
(WebCore::ScrollAnimator::removeTestDeferralForReason): Ditto.

  • platform/ScrollAnimator.h:
  • platform/cocoa/ScrollController.h:

(WebCore::ScrollControllerClient::deferTestsForReason): Change client API.
(WebCore::ScrollControllerClient::removeTestDeferralForReason): Ditto.
(WebCore::ScrollControllerClient::testTrigger): Deleted.

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::startSnapRubberbandTimer): Use new client API.
(WebCore::ScrollController::stopSnapRubberbandTimer): Ditto.
(WebCore::ScrollController::startScrollSnapTimer): Ditto.
(WebCore::ScrollController::stopScrollSnapTimer): Ditto.

5:23 PM Changeset in webkit [183701] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

check-webkit-style fails due to system pylint
https://bugs.webkit.org/show_bug.cgi?id=144360

Patch by Mario Sanchez Prada <mario@endlessm.com> on 2015-05-01
Reviewed by Darin Adler.

Make sure that the directory containing third party autoinstalled modules
is at the beginning of the search path, to avoid conflicts with other
versions of the same modules installed in the system (e.g. pylint).

  • Scripts/webkitpy/thirdparty/init.py: Prepend the autoinstalled

modules directory to sys.path, instead of appending it.

4:59 PM Changeset in webkit [183700] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Inline some small methods instead of them being EXPORT'd and out of line
https://bugs.webkit.org/show_bug.cgi?id=144498

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-01
Reviewed by Darin Adler.

  • page/Page.cpp:

(WebCore::Page::testTrigger): Deleted.
(WebCore::Page::clearTrigger): Deleted.
(WebCore::Page::expectsWheelEventTriggers): Deleted.

  • page/Page.h:

(WebCore::Page::testTrigger):
(WebCore::Page::clearTrigger):
(WebCore::Page::expectsWheelEventTriggers):

4:52 PM Changeset in webkit [183699] by mario@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, updated my list of email addresses.

  • Scripts/webkitpy/common/config/contributors.json: Updated.
4:47 PM Changeset in webkit [183698] by mitz@apple.com
  • 12 edits
    1 add in trunk

Source/WebCore:
WebCore part of <rdar://problem/8636045> Back/forward navigation to an error page in Safari breaks the back-forward list
https://bugs.webkit.org/show_bug.cgi?id=144501

Reviewed by Darin Adler.

Test: TestWebKitAPI/Tests/WebKit2Cocoa/LoadAlternateHTMLString.mm

Normally, loading substitute data (such as an error page) creates a new back-forward list
item. FrameLoader has a mechanism that detects when a substitute data load occurs during
handling of a provisional load error and prevents the creation of a new back-forwards list
item in that case if the unreachable URL is the same as the failing provisional URL. This
mechanism was broken in WebKit2, where handling the provisional load error is asynchronous.

The fix is to capture some state (namely, the failing provisional URL) when dispatching the
load error and allow it to be restored when loading the substitute data.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::FrameLoader): Removed initialization of
m_delegateIsHandlingProvisionalLoadError.
(WebCore::FrameLoader::shouldReloadToHandleUnreachableURL): Instead of checking
m_delegateIsHandlingProvisionalLoadError and if true using the provisional document loader’s
URL, check m_provisionalLoadErrorBeingHandledURL.
(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Instead of checking and setting
m_delegateIsHandlingProvisionalLoadError, use m_provisionalLoadErrorBeingHandledURL.

  • loader/FrameLoader.h:

(WebCore::FrameLoader::provisionalLoadErrorBeingHandledURL): Added this getter. The client
can call this from its override of dispatchDidFailProvisionalLoad and store the result.
(WebCore::FrameLoader::setProvisionalLoadErrorBeingHandledURL): Added this setter. The
client can call this prior to loading substitute data if it’s done as part of handling a
previously-dispatched didFailProvisionalLoad.

Source/WebKit2:
WebKit2 part of <rdar://problem/8636045> Back/forward navigation to an error page in Safari breaks the back-forward list
https://bugs.webkit.org/show_bug.cgi?id=144501

Reviewed by Darin Adler.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTMLString): If this is called during
didFailProvisionalLoadForFrame, send back the provisional URL captured at the time of
failure.
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame): Get the provisioinal URL and keep
it in new member variable m_failingProvisionalLoadURL for the duration of the client’s
handling of this message.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in: Added provisionalURL parameter to

DidFailProvisionalLoadForFrame.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad): Send the URL for this error
to the UI process.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadAlternateHTMLString): Temporarily restore the loader’s state to
reflect the provisional load error being handled.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Added provisionalLoadErrorURL parameter to

LoadAlternateHTMLString.

4:38 PM Changeset in webkit [183697] by Martin Robinson
  • 37 edits in trunk

USE(...) macro should expect unprefixed variables
https://bugs.webkit.org/show_bug.cgi?id=144454

Reviewed by Daniel Bates.

.:

  • Source/cmake/OptionsAppleWin.cmake: Replace all occurrences WTF_USE with USE.
  • Source/cmake/OptionsEfl.cmake: Ditto.
  • Source/cmake/OptionsGTK.cmake: Ditto.
  • Source/cmake/OptionsMac.cmake: Ditto.
  • Source/cmake/OptionsWinCairo.cmake: Ditto.
  • Source/cmake/WebKitFeatures.cmake: No longer expose WTF_USE when encountering

USE variables.

Source/JavaScriptCore:

  • CMakeLists.txt: Replace all occurrences WTF_USE with USE.

Source/WebCore:

  • DerivedSources.make: Replace all occurrences WTF_USE with USE.
  • PlatformEfl.cmake: Ditto.
  • PlatformGTK.cmake: Ditto.
  • bindings/objc/PublicDOMInterfaces.h: Ditto.
  • config.h: Ditto.
  • crypto/mac/SerializedCryptoKeyWrapMac.mm: Ditto.
  • page/AlternativeTextClient.h: Ditto.
  • platform/efl/FileSystemEfl.cpp: Ditto.

(WebCore::fileSystemRepresentation): Ditto.

  • platform/graphics/cg/ImageBufferDataCG.h: Ditto.
  • platform/graphics/cg/PDFDocumentImage.h: Ditto.
  • platform/ios/wak/WAKAppKitStubs.h: Ditto.
  • rendering/RenderLayerCompositor.cpp: Ditto.

Source/WebKit/cf:

  • WebCoreSupport/WebInspectorClientCF.cpp: Replace all occurrences WTF_USE with USE.

Source/WebKit/mac:

  • Misc/WebDownload.h: Replace all occurrences WTF_USE with USE.

Source/WebKit2:

  • Shared/API/c/WKBase.h: Replace all occurrences WTF_USE with USE.
  • WebKit2.xcodeproj/project.pbxproj: Ditto.

Source/WTF:

  • wtf/Assertions.cpp: Replace all occurrences WTF_USE with USE.
  • wtf/Platform.h: Replace all occurrences WTF_USE with USE. Modify the USE

macro to look for unprefixed variables.

  • wtf/WTFThreadData.h: Replace all occurrences WTF_USE with USE.

Tools:

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Replace all occurrences WTF_USE with USE.
  • DumpRenderTree/config.h: Ditto.
  • TestWebKitAPI/config.h: Ditto.
4:25 PM Changeset in webkit [183696] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

[OS X] Text dilation parameters are not restored after being set
https://bugs.webkit.org/show_bug.cgi?id=144507
<rdar://problem/19446938>

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-05-01
Reviewed by Simon Fraser and Ned Holbrook.

Source/WebCore:

Create a RAII class who is in charge of saving, applying, and restoring dilation parameters. Use this class
around our text drawing routines.

Note that this migrates our use of CTFontSetRenderingParameters() to CTFontSetRenderingStyle().

Test: fast/text/dilation-save-restore.html

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::RenderingStyleSaver::RenderingStyleSaver):
(WebCore::RenderingStyleSaver::~RenderingStyleSaver):
(WebCore::showGlyphsWithAdvances):

  • platform/spi/cg/CoreGraphicsSPI.h:
  • platform/spi/cocoa/CoreTextSPI.h:

LayoutTests:

See below.

  • fast/text/dilation-save-restore-expected.html: Added. Never sets dilation parameters, draws two strings.
  • fast/text/dilation-save-restore.html: Added. Draws one string without dilation, sets the dilation, then draws a

second string. If saving and restoring doesn't work correctly, these two lines will appear different.

3:53 PM Changeset in webkit [183695] by commit-queue@webkit.org
  • 2 edits in trunk/PerformanceTests

Fix typo bug in Speedometer/resources/main.js
https://bugs.webkit.org/show_bug.cgi?id=144504

Patch by Dewei Zhu <Dewei Zhu> on 2015-05-01
Reviewed by Ryosuke Niwa.

  • Speedometer/resources/main.js: Fix typo.

(window.benchmarkClient.totalTimeInDisplayUnit):

3:44 PM Changeset in webkit [183694] by commit-queue@webkit.org
  • 5 edits in trunk

String#startsWith/endsWith/includes don't handle Infinity position/endPosition args correctly
https://bugs.webkit.org/show_bug.cgi?id=144314

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-01
Reviewed by Darin Adler.

Source/JavaScriptCore:

Fixing handling of Infinity position args, per
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.includes
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.startswith
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.endswith

  • runtime/StringPrototype.cpp:

(JSC::clampInt32):
(JSC::stringProtoFuncStartsWith):
(JSC::stringProtoFuncEndsWith):
(JSC::stringProtoFuncIncludes):

LayoutTests:

  • js/script-tests/string-includes.js:
  • js/string-includes-expected.txt:
3:38 PM Changeset in webkit [183693] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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

Appears to have caused assertions (Requested by ap on
#webkit).

Reverted changeset:

"Media control volume slider is opaque."
https://bugs.webkit.org/show_bug.cgi?id=144470
http://trac.webkit.org/changeset/183687

3:35 PM Changeset in webkit [183692] by basile_clement@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Math.abs() returns negative
https://bugs.webkit.org/show_bug.cgi?id=137827

Reviewed by Michael Saboff.

Math.abs() on doubles was mistakenly assumed by the DFG AI to be the
identity function.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • tests/stress/math-abs-positive.js: Added, was previously failing.

(foo):

3:33 PM Changeset in webkit [183691] by basile_clement@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Function allocation sinking shouldn't be performed on singleton functions
https://bugs.webkit.org/show_bug.cgi?id=144166

Reviewed by Geoffrey Garen.

Function allocations usually are free of any other side effects, but
this is not the case for allocations performed while the underlying
FunctionExecutable is still a singleton (as this allogation will fire
watchpoints invalidating code that depends on it being a singleton).
As the object allocation sinking phase assumes object allocation is
free of side-effects, sinking these allocations is not correct.

This also means that when materializing a function allocation on OSR
exit, that function's executable will never be a singleton, and we don't have
to worry about its watchpoint, allowing us to use
JSFunction::createWithInvalidatedRellocationWatchpoint instead of
JSFunction::create.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

2:18 PM Changeset in webkit [183690] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Stop using deprecated AVKit SPI for enter and exit fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=144493

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-05-01
Reviewed by Jer Noble.

Replace

-enterFullScreenWithCompletionHandler:
-exitFullScreenWithCompletionHandler:

with

-enterFullScreenAnimated:completionHandler:
-exitFullScreenAnimated:completionHandler:

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard):
(WebVideoFullscreenInterfaceAVKit::exitFullscreenInternal):

  • platform/spi/cocoa/AVKitSPI.h:
2:07 PM Changeset in webkit [183689] by basile_clement@apple.com
  • 2 edits in trunk/Tools

Unreviewed. Add myself as a commiter in contributors.json.

  • Scripts/webkitpy/common/config/contributors.json:
1:54 PM Changeset in webkit [183688] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Enable ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX by default on all ports (Windows was missed)
https://bugs.webkit.org/show_bug.cgi?id=144495

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-01
Reviewed by Csaba Osztrogonác.

  • wtf/FeatureDefines.h:

This covers all ports that haven't defined the flag otherwise.

1:11 PM Changeset in webkit [183687] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Media control volume slider is opaque.
https://bugs.webkit.org/show_bug.cgi?id=144470.
<rdar://problem/20770350>

Rubberstamped by Simon Fraser.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-panel):
Don't create a stacking context just for the controls.
Doing so causes the mix-blend-mode on the volume box to fail.

12:50 PM Changeset in webkit [183686] by Martin Robinson
  • 2 edits in trunk/LayoutTests

Unreviewed gardening for GTK+.

  • platform/gtk/TestExpectations: Remove some inaccurate missing results

and unskip a passing test.

12:42 PM Changeset in webkit [183685] by commit-queue@webkit.org
  • 4 edits in trunk

Update speedometer patch to provide better UI, fix merge result bug and add "Score" metric to speedometer benchmark.
https://bugs.webkit.org/show_bug.cgi?id=144487

Patch by Dewei Zhu <Dewei Zhu> on 2015-05-01
Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.merge): Fix bug.

  • Scripts/webkitpy/benchmark_runner/data/patches/Speedometer.patch: Update appearance and add "Score" metric.
12:39 PM Changeset in webkit [183684] by jdiggs@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK] accessibility/secure-textfield-title-ui.html is failing
https://bugs.webkit.org/show_bug.cgi?id=98375

Reviewed by Chris Fleizach.

Modify the test to check the childrenCount of the titleUIElement in order
to determine where the element text is exposed. On the Mac, it's exposed
in StaticText children; in ATK, in the element itself. The test was failing
because it assumed the text was in the first child of the element.

  • accessibility/secure-textfield-title-ui.html: Modified.
  • platform/gtk/TestExpectations: Unskipped the failing test.
12:37 PM Changeset in webkit [183683] by jdiggs@igalia.com
  • 12 edits in trunk/Source/WebCore

[GTK] REGRESSION(183368): It made editing tests assert
https://bugs.webkit.org/show_bug.cgi?id=144447

Reviewed by Chris Fleizach.

Don't notify platforms of editing actions of type EditActionUnspecified.
If we don't know what the action is, platform accessibility APIs certainly
won't.

Add AXTextEditTypeAttributesChange and AXTextAttributesChanged as catch-alls
for formatting changes. ATK lacks finely-grained signals through which to
specify which text attributes have changed. If other platforms have such
signals, new types can always be added.

Don't post an accessible replacement notification for AXTextEditTypeCut.
The notification is handled by DeleteSelectionCommand. It is possible for
white space to be inserted in preparation for a cut which was triggering
a not-reached assert, but insertion of whitespace in preparation for a
cut does not seem notification-worthy.

Treat AXTextEditTypeDictation the same as other insertion types (insert,
paste, typing) with respect to replacement notifications.

No new tests. The hundreds of editing tests that had been crashing seem sufficient.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::showIntent):
(WebCore::AXObjectCache::textChangeForEditType):

  • accessibility/AXObjectCache.h:
  • accessibility/AXTextStateChangeIntent.h:
  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::nodeTextChangePlatformNotification):

  • editing/AppendNodeCommand.cpp:

(WebCore::AppendNodeCommand::doApply):
(WebCore::AppendNodeCommand::doUnapply):

  • editing/DeleteFromTextNodeCommand.cpp:

(WebCore::DeleteFromTextNodeCommand::doApply):
(WebCore::DeleteFromTextNodeCommand::doUnapply):

  • editing/EditCommand.cpp:

(WebCore::EditCommand::applyEditType):
(WebCore::EditCommand::unapplyEditType):

  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::doApply):
(WebCore::InsertIntoTextNodeCommand::doUnapply):

  • editing/InsertNodeBeforeCommand.cpp:

(WebCore::InsertNodeBeforeCommand::doApply):
(WebCore::InsertNodeBeforeCommand::doUnapply):

  • editing/ReplaceInsertIntoTextNodeCommand.cpp:

(WebCore::ReplaceInsertIntoTextNodeCommand::notifyAccessibilityForTextChange):

11:19 AM Changeset in webkit [183682] by beidson@apple.com
  • 18 edits
    3 adds in trunk

Add API to disable meta refreshes.
<rdar://problem/20333198> and https://bugs.webkit.org/show_bug.cgi?id=144269

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test: loader/meta-refresh-disabled.html

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Bail early if Settings have meta refreshes disabled.

  • page/Settings.in:

Source/WebKit/mac:

Add a preference to enable/disable meta refreshes, enabled by default.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences setMetaRefreshEnabled:]):
(-[WebPreferences metaRefreshEnabled]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add a preference to enable/disable meta refreshes, enabled by default.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetMetaRefreshEnabled):
(WKPreferencesGetMetaRefreshEnabled):
(WKPreferencesGetIgnoreViewportScalingConstraints): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues): Reset the meta refresh pref between tests.

LayoutTests:

  • loader/meta-refresh-disabled-expected.txt: Added.
  • loader/meta-refresh-disabled.html: Added.
  • loader/resources/notify-done.html: Added.
  • platform/win/TestExpectations:
10:55 AM Changeset in webkit [183681] by Martin Robinson
  • 5 edits
    62 adds in trunk/LayoutTests

Unreviewed gardening for WebKitGTK+

Unskip some passing tests. Add new baselines. Properly organize some
failures in the TestExpectations file.

  • platform/gtk/TestExpectations:
  • platform/gtk/editing/execCommand/print-expected.png: Added.
  • platform/gtk/editing/execCommand/print-expected.txt: Added.
  • platform/gtk/fast/attachment/attachment-progress-expected.txt: Added.
  • platform/gtk/fast/attachment/attachment-select-on-click-expected.txt: Added.
  • platform/gtk/fast/attachment/attachment-select-on-click-inside-user-select-all-expected.txt: Added.
  • platform/gtk/fast/attachment/attachment-subtitle-expected.txt: Added.
  • platform/gtk/fast/attachment/attachment-title-expected.txt: Added.
  • platform/gtk/fast/box-shadow/hidpi-webkit-box-shadow-subpixel-position-expected.txt: Added.
  • platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.png: Added.
  • platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.txt: Added.
  • platform/gtk/fast/multicol/scrolling-column-rules-expected.png: Added.
  • platform/gtk/fast/multicol/scrolling-column-rules-expected.txt: Added.
  • platform/gtk/printing/allowed-page-breaks-expected.txt: Added.
  • platform/gtk/printing/compositing-layer-printing-expected.png: Added.
  • platform/gtk/printing/compositing-layer-printing-expected.txt:
  • platform/gtk/printing/css2.1/page-break-after-000-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-after-001-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-after-002-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-after-003-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-after-004-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-before-000-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-before-001-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-before-002-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-inside-000-expected.txt: Added.
  • platform/gtk/printing/iframe-print-expected.png: Added.
  • platform/gtk/printing/iframe-print-expected.txt: Added.
  • platform/gtk/printing/media-queries-print-expected.png: Added.
  • platform/gtk/printing/media-queries-print-expected.txt:
  • platform/gtk/printing/no-content-empty-pages-expected.txt: Added.
  • platform/gtk/printing/numberOfPages-expected.txt: Added.
  • platform/gtk/printing/page-break-after-avoid-expected.txt: Added.
  • platform/gtk/printing/page-break-always-expected.txt: Added.
  • platform/gtk/printing/page-break-avoid-expected.txt: Added.
  • platform/gtk/printing/page-break-before-avoid-expected.txt: Added.
  • platform/gtk/printing/page-break-display-none-expected.txt: Added.
  • platform/gtk/printing/page-break-inside-avoid-expected.txt: Added.
  • platform/gtk/printing/page-break-margin-collapsed-expected.txt: Added.
  • platform/gtk/printing/page-break-orphans-and-widows-expected.txt: Added.
  • platform/gtk/printing/page-break-orphans-expected.txt: Added.
  • platform/gtk/printing/page-break-widows-expected.txt: Added.
  • platform/gtk/printing/page-count-layout-overflow-expected.txt: Added.
  • platform/gtk/printing/page-count-percentage-height-expected.txt: Added.
  • platform/gtk/printing/page-count-relayout-shrink-expected.txt: Added.
  • platform/gtk/printing/page-count-with-one-word-expected.txt: Added.
  • platform/gtk/printing/page-format-data-display-none-expected.txt: Added.
  • platform/gtk/printing/page-format-data-expected.txt: Added.
  • platform/gtk/printing/page-rule-css-text-expected.txt: Added.
  • platform/gtk/printing/page-rule-in-media-query-expected.png: Added.
  • platform/gtk/printing/page-rule-in-media-query-expected.txt: Added.
  • platform/gtk/printing/pageNumerForElementById-expected.txt: Added.
  • platform/gtk/printing/print-close-crash-expected.txt: Added.
  • platform/gtk/printing/pseudo-class-outside-page-expected.txt: Added.
  • platform/gtk/printing/return-from-printing-mode-expected.png: Added.
  • platform/gtk/printing/return-from-printing-mode-expected.txt:
  • platform/gtk/printing/setPrinting-expected.png: Added.
  • platform/gtk/printing/setPrinting-expected.txt: Added.
  • platform/gtk/printing/simultaneous-position-float-change-expected.png: Added.
  • platform/gtk/printing/simultaneous-position-float-change-expected.txt: Added.
  • platform/gtk/printing/single-line-must-not-be-split-into-two-pages-expected.txt: Added.
  • platform/gtk/printing/stretch-to-view-height-expected.txt: Added.
  • platform/gtk/printing/width-overflow-expected.png: Added.
  • platform/gtk/printing/width-overflow-expected.txt: Added.
  • platform/gtk/printing/zoomed-document-expected.txt: Added.
10:50 AM Changeset in webkit [183680] by Martin Robinson
  • 4 edits
    2 adds in trunk

[Freetype] Properly support synthetic oblique in vertical text
https://bugs.webkit.org/show_bug.cgi?id=144492

Reviewed by Sergio Villar Senin.

Source/WebCore:

No new tests. Covered by existing tests.

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::initializeWithFontFace): Skew vertical when using synthetic
oblique for vertical text.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip passing tests.
  • platform/gtk/fast/text/international/synthesized-italic-vertical-latin-expected.png: Added.
  • platform/gtk/fast/text/international/synthesized-italic-vertical-latin-expected.txt: Added.
10:14 AM Changeset in webkit [183679] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

10:05 AM Changeset in webkit [183678] by jdiggs@igalia.com
  • 2 edits in trunk/Source/WebCore

AX: [ATK] REGRESSION: accessibility/canvas-fallback-content.html now crashes
https://bugs.webkit.org/show_bug.cgi?id=144481

Reviewed by Chris Fleizach.

Canvas fallback content is allowed to be focusable if the canvas is displayed
and visible. Update the style when creating an accessible object for a node in
a canvas subtree and before Element::isFocusable() gets called.

No new tests. The existing, crashing test no longer crashes.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::getOrCreate):

10:03 AM Changeset in webkit [183677] by achristensen@apple.com
  • 6 edits in trunk/Source/WebCore

[Content Extensions] Add CombinedURLFilters debugging code.
https://bugs.webkit.org/show_bug.cgi?id=144491

Reviewed by Daniel Bates.

No change in behavior.

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::recursiveMemoryUsed):
(WebCore::ContentExtensions::CombinedURLFilters::memoryUsed):
(WebCore::ContentExtensions::prefixTreeVertexToString):
(WebCore::ContentExtensions::recursivePrint):
(WebCore::ContentExtensions::CombinedURLFilters::print):
(WebCore::ContentExtensions::CombinedURLFilters::addPattern):
(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):

  • contentextensions/CombinedURLFilters.h:
  • contentextensions/NFA.cpp:

(WebCore::ContentExtensions::NFA::memoryUsed):

  • contentextensions/NFA.h:
  • contentextensions/Term.h:

(WebCore::ContentExtensions::quantifierToString):
(WebCore::ContentExtensions::Term::toString):

9:57 AM Changeset in webkit [183676] by eric.carlson@apple.com
  • 10 edits in trunk

Fix text track language selection logic
https://bugs.webkit.org/show_bug.cgi?id=144467

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests, media/track/track-language-preference.html was updated.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::configureTextTrackGroup): Correct a minor style typo.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Update logging.

  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::textTrackSelectionScore): Minor cleanup.
(WebCore::CaptionUserPreferences::textTrackLanguageSelectionScore): Give exact matches a
higher score.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::textTrackSelectionScore): Update for
indexOfBestMatchingLanguageInList change.

  • platform/Language.cpp:

(WebCore::indexOfBestMatchingLanguageInList): Add parameter for exact match. Convert the
passed language to lower case as we do with the preferred languages.

  • platform/Language.h:

LayoutTests:

  • media/track/track-language-preference-expected.txt:
  • media/track/track-language-preference.html: Updated, add new tests.
  • platform/mac/TestExpectations:
9:23 AM Changeset in webkit [183675] by Brent Fulgham
  • 2 edits in trunk/Tools

Provide a runtime flag to run-webkit-tests that shows the test view
https://bugs.webkit.org/show_bug.cgi?id=144079.

Unreviewed correction to r183651.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize): Make sure the state of the '--show-webview'
flag is included in the options dictionary passed to the PlatformWebView.

9:04 AM Changeset in webkit [183674] by Martin Robinson
  • 2 edits
    1 delete in trunk/LayoutTests

Unreviewed gardening. Rebaseline some tests for WebKitGTK+.

  • platform/gtk/editing/execCommand/nsresponder-outdent-expected.txt: Rebaseline.
  • platform/gtk/inspector-protocol/debugger/regress-133182-expected.txt: Removed. The

platform-independent baseline should be good enough.

9:00 AM Changeset in webkit [183673] by Martin Robinson
  • 2 edits in trunk/Source/WebCore

[Freetype] Add support for the font-synthesis property
https://bugs.webkit.org/show_bug.cgi?id=144472

Reviewed by Sergio Villar Senin.

No new tests. This causes fast/css3-text/font-synthesis.html to pass
for WebKitGTK+.

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::FontPlatformData): Only use synthetic bold when the font description allows it.
(WebCore::FontPlatformData::initializeWithFontFace): Ditto for synthetic oblique.

7:58 AM Changeset in webkit [183672] by Martin Robinson
  • 2 edits in trunk/Source/WebCore

[GTK] New CORS tests from r183280 fail on WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=144469

Reviewed by Sergio Villar Senin.

No new tests. This causes failing tests to pass.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::doRedirect): Clear the origin header on cross-origin redirects.

7:24 AM Changeset in webkit [183671] by timothy@apple.com
  • 4 edits
    5 deletes in trunk/Source/WebInspectorUI

Web Inspector: Remove FrameContentView.js
https://bugs.webkit.org/show_bug.cgi?id=144415

Reviewed by Joseph Pecoraro.

  • UserInterface/Images/DOMTree.svg: Removed.
  • UserInterface/Images/SourceCode.svg: Removed.
  • UserInterface/Main.html: Removed FrameContentView.js.
  • UserInterface/Views/FrameContentView.js: Removed.
  • UserInterface/Views/PathComponentIcons.css:

(.source-code-icon .icon): Deleted.
(.dom-tree-icon .icon): Deleted.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
Simplify the code here. We don't need these checks now with tabs and the Storage tab.

4:40 AM Changeset in webkit [183670] by Antti Koivisto
  • 15 edits in trunk

Remove network process load serialization code
https://bugs.webkit.org/show_bug.cgi?id=144448

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

TestRunner.setSerializeHTTPLoads is used by a few tests but it is unnecessary
with network process. We don't reorder loads anyway so test results are consistent.
There or no other clients for this code.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::setSerialLoadingEnabled): Deleted.

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::isSerialLoadingEnabled): Deleted.

  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::getNetworkProcessStatistics):

  • NetworkProcess/NetworkResourceLoadScheduler.cpp:

(WebKit::NetworkResourceLoadScheduler::scheduleLoader):
(WebKit::NetworkResourceLoadScheduler::removeLoader):
(WebKit::NetworkResourceLoadScheduler::loadsPendingCount): Deleted.

  • NetworkProcess/NetworkResourceLoadScheduler.h:
  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleSetTabKeyCyclesThroughElements):
(WKBundleSetSerialLoadingEnabled): Deleted.
(WKBundleDispatchPendingLoadRequests): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setSerialLoadingEnabled): Deleted.
(WebKit::InjectedBundle::dispatchPendingLoadRequests): Deleted.

Remove also this as it does nothing.

  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::WebResourceLoadScheduler):
(WebKit::WebResourceLoadScheduler::suspendPendingRequests):
(WebKit::WebResourceLoadScheduler::resumePendingRequests):

Remove implementation, it does nothing.

(WebKit::WebResourceLoadScheduler::setSerialLoadingEnabled):

  • WebProcess/Network/WebResourceLoadScheduler.h:

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setSerializeHTTPLoads):
(WTR::TestRunner::dispatchPendingLoadRequests):

2:04 AM Changeset in webkit [183669] by calvaris@igalia.com
  • 2 edits in trunk/Tools

[GTK] Add libhyphen-dev to the build dependencies
https://bugs.webkit.org/show_bug.cgi?id=144452

Reviewed by Martin Robinson.

  • gtk/install-dependencies: Added hyphen as Fedora and Arch

dependencies.

Apr 30, 2015:

10:57 PM Changeset in webkit [183668] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION: Web Inspector: Console message repeat count overlapped by icon
https://bugs.webkit.org/show_bug.cgi?id=144344

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsoleMessageView.css:

(.console-message .repeat-count):

10:01 PM Changeset in webkit [183667] by achristensen@apple.com
  • 6 edits in trunk/Source/WebCore

Compile fix when using content extensions debugging code.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionsDebugging.h:
  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::printTransitions):
(WebCore::ContentExtensions::DFA::debugPrintDot):

  • contentextensions/DFANode.h:
  • contentextensions/NFA.cpp:

(WebCore::ContentExtensions::NFA::memoryUsed):
(WebCore::ContentExtensions::NFA::debugPrintDot):

9:24 PM Changeset in webkit [183666] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Fixed the build for <rdar://problem/20758514>

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::destroyMix): Don’t pass nil to
-[AVMutableAudioMix setInputParameters:].

8:42 PM Changeset in webkit [183665] by Joseph Pecoraro
  • 8 edits in trunk/LayoutTests

Unreviewed gardening. Update results of inspector tests.

  • inspector-protocol/debugger/breakpoint-eval-with-exception-expected.txt:
  • inspector-protocol/debugger/regress-133182-expected.txt:
  • inspector-protocol/debugger/regress-133182.html:
  • inspector-protocol/debugger/setBreakpoint-actions-expected.txt:
  • inspector-protocol/debugger/terminate-dedicated-worker-while-paused-expected.txt:
  • inspector-protocol/page/deny-X-FrameOption-expected.txt:
  • inspector/debugger/search-scripts-expected.txt:
8:42 PM Changeset in webkit [183664] by Joseph Pecoraro
  • 6 edits
    1 delete in trunk/LayoutTests

Unreviewed gardening. Remove skipped and broken inspector test.

This is the last test relying on the old model interface.

(InspectorTest.initializeInspectorModels.console.error.window.onerror): Deleted.
(InspectorTest.initializeInspectorModels.console.assert): Deleted.
(InspectorTest.initializeInspectorModels): Deleted.

  • inspector-protocol/indexeddb/basics-expected.txt: Removed.
  • inspector-protocol/indexeddb/basics.html: Removed.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
7:40 PM Changeset in webkit [183663] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Clean up: Remove unnecessary runtime computation of string length
https://bugs.webkit.org/show_bug.cgi?id=144483

Reviewed by Joseph Pecoraro.

Following <http://trac.webkit.org/changeset/183649>, WebCore::fullyQualifiedInfoTableName()
computes strlen() of the first string literal as part of concatenating two string literals.
It is sufficient to use sizeof() - 1 instead of strlen() to compute the length of the first
string literal because the size of the string literal is known at compile time.

  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::fullyQualifiedInfoTableName):

6:56 PM Changeset in webkit [183662] by dino@apple.com
  • 17 edits
    1 copy
    1 add in trunk

Expose -apple-system as a font family
https://bugs.webkit.org/show_bug.cgi?id=144484
<rdar://problem/20767330>

Reviewed by Tim Horton.

Source/WebCore:

Accept "-apple-system" for the font-family property, and
rename "-apple-system-font-monospaced-numbers" to
"-apple-system-monospaced-numbers".

Also change the media controls to use the new name.

Covered by existing tests and this new one:

fast/text/system-font-legacy-name.html

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-time-remaining-display):

  • Modules/mediacontrols/mediaControlsiOS.css:

(::-webkit-media-controls):
(audio::-webkit-media-controls-time-remaining-display):
(audio::-webkit-media-controls-status-display):

  • platform/graphics/ios/FontCacheIOS.mm: Add support for the new name.

(WebCore::createCTFontWithFamilyNameAndWeight):

  • platform/graphics/mac/FontCacheMac.mm: Ditto.

(WebCore::fontWithFamily):

LayoutTests:

Change a bunch of tests to use "-apple-system" instead
of "-apple-system-font" for font-family.

Add a test to make sure the old name still works.

  • fast/text/system-font-legacy-name.html
  • platform/ios-simulator/fast/text/system-monospaced-numbers.html:
  • platform/ios-simulator/ios/fast/text/apple-logo-expected.txt:
  • platform/ios-simulator/ios/fast/text/apple-logo.html:
  • platform/ios-simulator/ios/fast/text/opticalFont-expected.txt:
  • platform/ios-simulator/ios/fast/text/opticalFont.html:
  • platform/ios-simulator/ios/fast/text/opticalFontWithWeight-expected.txt:
  • platform/ios-simulator/ios/fast/text/opticalFontWithWeight.html:
  • platform/ios-simulator/ios/fast/text/underline-scaling-expected.txt:
  • platform/ios-simulator/ios/fast/text/underline-scaling.html:
  • platform/mac/fast/text/systemFont-expected.txt:
  • platform/mac/fast/text/systemFont.html:
6:38 PM Changeset in webkit [183661] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Decrease minimum Vector size.
https://bugs.webkit.org/show_bug.cgi?id=144453

Patch by Alex Christensen <achristensen@webkit.org> on 2015-04-30
Reviewed by Andreas Kling.

  • wtf/Vector.h:

Make the default min size 4 to save memory on small Vectors.

6:14 PM Changeset in webkit [183660] by jfernandez@igalia.com
  • 5 edits
    2 adds in trunk

[CSS Grid Layout] overflow-position keyword for align and justify properties.
https://bugs.webkit.org/show_bug.cgi?id=144235

Reviewed by Sergio Villar Senin.

Source/WebCore:

When the alignment subject is larger than the alignment container,
it will overflow. Some alignment modes, if honored in this
situation, may cause data loss; an overflow alignment mode can be
explicitly specified to avoid this.

This patch implements overflow-keyword handling for Grid Layout on
align-self and justify-self properties.

Test: fast/css-grid-layout/grid-align-justify-overflow.html

  • rendering/RenderGrid.cpp:

(WebCore::computeOverflowAlignmentOffset):
(WebCore::RenderGrid::rowPositionForChild):
(WebCore::RenderGrid::columnPositionForChild):
(WebCore::RenderGrid::rowAxisPositionForChild): Deleted.

  • rendering/style/RenderStyle.cpp:

(WebCore::resolveAlignmentData):
(WebCore::resolveJustificationData):
(WebCore::RenderStyle::resolveAlignment):
(WebCore::RenderStyle::resolveAlignmentOverflow):
(WebCore::RenderStyle::resolveJustification):
(WebCore::RenderStyle::resolveJustificationOverflow):

  • rendering/style/RenderStyle.h:

LayoutTests:

Implementation of overflow-keyword handling for Grid Layout on
align-self and justify-self properties.

  • fast/css-grid-layout/grid-align-justify-overflow-expected.txt: Added.
  • fast/css-grid-layout/grid-align-justify-overflow.html: Added.
6:10 PM Changeset in webkit [183659] by Jon Davis
  • 18 edits
    3 adds in trunk

Web Inspector: console should show an icon for console.info() messages
https://bugs.webkit.org/show_bug.cgi?id=18530

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/ConsoleMessage.cpp:

(Inspector::messageLevelValue):

  • inspector/protocol/Console.json:
  • runtime/ConsoleClient.cpp:

(JSC::appendMessagePrefix):

  • runtime/ConsolePrototype.cpp:

(JSC::ConsolePrototype::finishCreation):
(JSC::consoleProtoFuncInfo):

  • runtime/ConsoleTypes.h:

Source/WebInspectorUI:

Added icons for console.log, console.info and console.debug messages.

Separated console.info from console.log.

  • UserInterface/Images/Debug.svg: Added.
  • UserInterface/Images/Info.svg: Added.
  • UserInterface/Images/Log.svg: Added.

New icon files.

  • UserInterface/Models/ConsoleMessage.js:
  • UserInterface/Views/ConsoleMessageView.css:

(.console-log-level::before):
(.console-info-level::before):
(.console-debug-level::before):
(:matches(.console-warning-level, .console-error-level, .console-log-level, .console-info-level, .console-debug-level).console-message):
(:matches(.console-warning-level, .console-error-level, .console-log-level, .console-info-level, .console-debug-level)::before):
(:matches(.console-warning-level, .console-error-level, .console-log-level).console-message): Deleted.
(:matches(.console-warning-level, .console-error-level, .console-log-level)::before): Deleted.
Include console.info messages in layout adjustments.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype._levelString):

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.mm:

(stringForMessageLevel):

  • WebView/WebUIDelegatePrivate.h:

LayoutTests:

  • inspector/console/console-api-expected.txt:
6:04 PM Changeset in webkit [183658] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Remove long-deprecated unused WKView minimumLayoutWidth properties
https://bugs.webkit.org/show_bug.cgi?id=144480

Reviewed by Alexey Proskuryakov.

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView minimumLayoutWidth]): Deleted.
(-[WKView setMinimumLayoutWidth:]): Deleted.
(-[WKView minimumWidthForAutoLayout]): Deleted.
(-[WKView setMinimumWidthForAutoLayout:]): Deleted.
These were replaced with minimumSizeForAutoLayout long ago.

5:34 PM Changeset in webkit [183657] by jhoneycutt@apple.com
  • 9 edits in trunk/Source/WebCore

Rebaseline bindings tests results after r183648.

Unreviewed.

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

(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):

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

(WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):

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

(WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
(WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
(WebCore::setJSTestInterfaceImplementsStr2):
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):

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

(WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):

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

(WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
(WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):

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

(WebCore::setJSTestObjConstructorStaticStringAttr):
(WebCore::setJSTestObjStringAttr):
(WebCore::setJSTestObjReflectedStringAttr):
(WebCore::setJSTestObjReflectedURLAttr):
(WebCore::setJSTestObjReflectedCustomURLAttr):
(WebCore::setJSTestObjStringAttrWithGetterException):
(WebCore::setJSTestObjStringAttrWithSetterException):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):

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

(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):

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

(WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
(WebCore::setJSTestTypedefsStringAttrWithGetterException):
(WebCore::setJSTestTypedefsStringAttrWithSetterException):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):

5:06 PM Changeset in webkit [183656] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Move all of the branchIs<type> helpers from SpeculativeJIT into AssemblyHelpers
https://bugs.webkit.org/show_bug.cgi?id=144462

Reviewed by Geoffrey Garen and Mark Lam.

At some point we started adding representation-agnostic helpers for doing common type tests.
We added some in SpeculativeJIT, and then some in AssemblyHelpers. Prior to this change,
they had overlapping powers, though SpeculativeJIT was a bit better.

This removes SpeculativeJIT's helpers and strengthens AssemblyHelpers' helpers. This is
better because now all of these helpers can be used in all of the assembly-based JITs, not
just the DFG. It also settles on what I find to be a slightly better naming convention.
For example where we previously would have said branchIsString, now we say
branchIfString. Similarly, branchNotString becomes branchIfNotString.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
(JSC::DFG::SpeculativeJIT::compileInstanceOf):
(JSC::DFG::SpeculativeJIT::compileStringToUntypedEquality):
(JSC::DFG::SpeculativeJIT::compileStringIdentToNotStringVarEquality):
(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOnCell):
(JSC::DFG::SpeculativeJIT::speculateObject):
(JSC::DFG::SpeculativeJIT::speculateObjectOrOther):
(JSC::DFG::SpeculativeJIT::speculateString):
(JSC::DFG::SpeculativeJIT::speculateNotStringVar):
(JSC::DFG::SpeculativeJIT::speculateNotCell):
(JSC::DFG::SpeculativeJIT::speculateOther):
(JSC::DFG::SpeculativeJIT::emitSwitchChar):
(JSC::DFG::SpeculativeJIT::emitSwitchString):
(JSC::DFG::SpeculativeJIT::branchIsObject): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotObject): Deleted.
(JSC::DFG::SpeculativeJIT::branchIsString): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotString): Deleted.

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

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::branchIsCell): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotCell): Deleted.
(JSC::DFG::SpeculativeJIT::branchIsOther): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotOther): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::writeBarrier):
(JSC::DFG::SpeculativeJIT::branchIsCell): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotCell): Deleted.
(JSC::DFG::SpeculativeJIT::branchIsOther): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotOther): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfCell):
(JSC::AssemblyHelpers::branchIfOther):
(JSC::AssemblyHelpers::branchIfNotOther):
(JSC::AssemblyHelpers::branchIfObject):
(JSC::AssemblyHelpers::branchIfNotObject):
(JSC::AssemblyHelpers::branchIfType):
(JSC::AssemblyHelpers::branchIfNotType):
(JSC::AssemblyHelpers::branchIfString):
(JSC::AssemblyHelpers::branchIfNotString):
(JSC::AssemblyHelpers::branchIfSymbol):
(JSC::AssemblyHelpers::branchIfNotSymbol):
(JSC::AssemblyHelpers::branchIfFunction):
(JSC::AssemblyHelpers::branchIfNotFunction):
(JSC::AssemblyHelpers::branchIfEmpty):
(JSC::AssemblyHelpers::branchIsEmpty): Deleted.
(JSC::AssemblyHelpers::branchIfCellNotObject): Deleted.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitScopedArgumentsGetByVal):

4:44 PM Changeset in webkit [183655] by Simon Fraser
  • 11 edits in trunk/Source

Fixed elements end up in the middle of the view with pageScale < 1
https://bugs.webkit.org/show_bug.cgi?id=144428
rdar://problem/20404982

Reviewed by Tim Horton.

Source/WebCore:

When pageScale is < 1, we used fixed layout mode, and FrameView::fixedElementsLayoutRelativeToFrame()
returns true. However, the scrolling thread was calling the static scrollOffsetForFixedPosition()
hardcoding 'false' for this parameter.

Fix by sending the value of fixedElementsLayoutRelativeToFrame over to the scrolling thread,
so we can use it when doing scrolling-thread fixed position stuff.

Not testable.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setFixedElementsLayoutRelativeToFrame):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::ScrollingTreeFrameScrollingNode):
(WebCore::ScrollingTreeFrameScrollingNode::updateBeforeChildren):

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:

(WebCore::ScrollingTreeFrameScrollingNode::fixedElementsLayoutRelativeToFrame):
(WebCore::ScrollingTreeFrameScrollingNode::shouldUpdateScrollLayerPositionSynchronously): Deleted.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):

Source/WebKit2:

Encode/decode fixedElementsLayoutRelativeToFrame.

  • Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):

4:35 PM Changeset in webkit [183654] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Remove invalid assertion from MouseEvent::create()
https://bugs.webkit.org/show_bug.cgi?id=144477

Reviewed by Tim Horton.

mouseforcechanged events and mouseforcewillbegin trigger this assertion. The
assertion does not seem valuable, so rather than changing it, just remove it.

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):

4:26 PM Changeset in webkit [183653] by dino@apple.com
  • 3 edits
    2 adds in trunk

-apple-system-font-monospaced-numbers doesn't work on iOS
https://bugs.webkit.org/show_bug.cgi?id=144478
<rdar://problem/20544940>

Reviewed by Brent Fulgham.

Source/WebCore:

Make sure to start from the system font descriptor when
asking for a monospaced numeric alternate.

Test: platform/ios-simulator/fast/text/system-monospaced-numbers.html

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::createCTFontWithFamilyNameAndWeight):

LayoutTests:

A test that draws two lines of different numbers and checks
they are the same width.

  • platform/ios-simulator/fast/text/system-monospaced-numbers-expected.txt: Added.
  • platform/ios-simulator/fast/text/system-monospaced-numbers.html: Added.
4:16 PM Changeset in webkit [183652] by Joseph Pecoraro
  • 4 edits in trunk/LayoutTests

Unreviewed, ios-simulator gardening

  • Address linter warnings.
  • Unskip some tests that pass.
  • More generically skip unsupported iOS features.
  • Address FIXMEs.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
4:13 PM Changeset in webkit [183651] by Brent Fulgham
  • 7 edits in trunk/Tools

Provide a runtime flag to run-webkit-tests that shows the test view
https://bugs.webkit.org/show_bug.cgi?id=144079.

Reviewed by Dean Jackson.

Add a new flag (--show-webview) that causes DumpRenderTree and WebKitTestRunner to display
their WebViews on-screen. This can be used when running tests via the "--additional-drt-flag"
option:

--additional-drt-flag="--show-webview"

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow): Use an on-screen window rect if the user passed the
'--show-webview' flag.
(initializeGlobalsFromCommandLineOptions): Recognize the "--show-webview" option.

  • WebKitTestRunner/Options.cpp:

(WTR::Options::Options):
(WTR::handleOptionShowWebView):
(WTR::OptionsHandler::OptionsHandler): Recognize the new "--show-webview" option.

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

(WTR::TestController::TestController):
(WTR::TestController::initialize): Use value of 'shouldShowWebView' from the Options bundle.

  • WebKitTestRunner/TestController.h:

(WTR::TestController::shouldShowWebView):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::PlatformWebView): Retrieve the value of the 'ShouldShowWebView' key from the
options dictionary. If it is true, display the web view while running the test.

4:02 PM Changeset in webkit [183650] by fpizlo@apple.com
  • 6 edits in trunk

js/regress/is-string-fold-tricky.html and js/regress/is-string-fold.html are crashing
https://bugs.webkit.org/show_bug.cgi?id=144463

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Fixup phase was super cleverly folding an IsString(@x) when @x is predicted SpecString
into a Check(String:@x) followed by JSConstant(true). Then in these tests the
ValueAdd(IsString(@x), @stuff) would try to turn this into an integer add by cleverly
converting the boolean into an integer. But as part of doing that, it would try to
short-circuit any profiling by leveraging the fact that the IsString is now a constant,
and it would try to figure out if the addition might overflow. Part of that logic
involved checking if the immediate is either a boolean or a sufficiently small integer.
But: it would check if it's a sufficiently small integer before checking if it was a
boolean, so it would try to call asNumber() on the boolean.

All of this cleverness was very deliberate, but apparently the @stuff + booleanConstant
case was previously never hit until I wrote these tests, and so we never knew that
calling asNumber() on a boolean was wrong.

The fix is super simple: the expression should just check for boolean first.

This bug was benign in release builds. JSValue::asNumber() on a boolean would return
garbage, and that's OK, since we'd take the boolean case anyway.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addImmediateShouldSpeculateInt32):

LayoutTests:

Unskip now that the bug is fixed.

  • TestExpectations:
  • js/regress/script-tests/is-string-fold-tricky.js:
  • js/regress/script-tests/is-string-fold.js:
3:57 PM Changeset in webkit [183649] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix after r183646 for less enlightened platforms.

Unreviewed.

  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::fullyQualifiedInfoTableName): Windows doesn’t have stpcpy :(

3:40 PM Changeset in webkit [183648] by oliver@apple.com
  • 2 edits in trunk/Source/WebCore

DOM bindings should not be using a reference type to point to a temporary object
https://bugs.webkit.org/show_bug.cgi?id=144474

Reviewed by Beth Dakin.

The DOM bindings will currently try and use a local reference to point
to a temporary object. This currently works as a by product of the compiler's
stack layout. This patch removes the dependency on undefined behaviour
by ensuring that we use a value rather than reference type.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(GetNativeTypeForCallbacks):

3:16 PM Changeset in webkit [183647] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Asynchronous (or timed-out synchronous) resize flashes white instead of page background color
https://bugs.webkit.org/show_bug.cgi?id=144468

Reviewed by Simon Fraser and Dan Bernstein.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _viewBackgroundColor]):
(-[WKView updateLayer]):
Use the pageExtendedBackgroundColor for the background color of the WKView,
if we have one (and aren't using a transparent background). This means
during asynchronous resize or other cases where the Web process isn't keeping
up with the UI process during a resize, we'll see background color instead of white.

3:15 PM Changeset in webkit [183646] by beidson@apple.com
  • 5 edits
    3 adds in trunk

Javascript using WebSQL can create their own WebKit info table.
<rdar://problem/20688792> and https://bugs.webkit.org/show_bug.cgi?id=144466

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/websql/alter-to-info-table.html

  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::DatabaseBackendBase::databaseInfoTableName): Return the info table name.
(WebCore::fullyQualifiedInfoTableName): Append "main." to the info table name.
(WebCore::DatabaseBackendBase::DatabaseBackendBase): Use the fully qualified name.
(WebCore::DatabaseBackendBase::performOpenAndVerify): Ditto.
(WebCore::DatabaseBackendBase::getVersionFromDatabase): Ditto.
(WebCore::DatabaseBackendBase::setVersionInDatabase): Ditto.

LayoutTests:

  • storage/websql/alter-to-info-table-expected.txt: Added.
  • storage/websql/alter-to-info-table.html: Added.
  • storage/websql/alter-to-info-table.js: Added.
3:00 PM Changeset in webkit [183645] by Beth Dakin
  • 4 edits in trunk/Source

Should choose UIScrollView indicatorStyle based on the document background color
https://bugs.webkit.org/show_bug.cgi?id=144473
-and corresponding-
rdar://problem/19897699

Reviewed by Simon Fraser.

Source/WebCore:

Export this function.

  • platform/graphics/Color.h:

Source/WebKit2:

Update the indicator style whenever the background color changes.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateScrollViewBackground]):

2:26 PM Changeset in webkit [183644] by Martin Robinson
  • 2 edits in trunk/LayoutTests

Unskip isolated words tests on WebKitGTK+

  • platform/gtk/TestExpectations: Unskip tests. We've been able to run these

since the switch to WebKitTestRunner.

1:55 PM Changeset in webkit [183643] by fpizlo@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed, skip new tests js/regress/is-string-fold.html and js/regress/is-string-fold-tricky.html because they are crashing in RJST as well.

  • js/regress/script-tests/is-string-fold-tricky.js:
  • js/regress/script-tests/is-string-fold.js:
1:03 PM Changeset in webkit [183642] by timothy@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Scope Chain sidebar should be selected immediately when paused
https://bugs.webkit.org/show_bug.cgi?id=144352

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.showDebuggerTab): Added showScopeChainDetailsSidebarPanel argument.
(WebInspector._debuggerDidPause): Pass true for showScopeChainDetailsSidebarPanel.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WebInspector.ContentBrowserTabContentView): Wire the event to showDetailsSidebarPanels instead of
_contentBrowserRepresentedObjectsDidChange, allowing subclasses to do work during the event.
(WebInspector.ContentBrowserTabContentView.prototype.showDetailsSidebarPanels): Moved content of
_contentBrowserRepresentedObjectsDidChange here.
(WebInspector.ContentBrowserTabContentView.prototype._contentBrowserRepresentedObjectsDidChange): Deleted.

  • UserInterface/Views/DebuggerTabContentView.js:

(WebInspector.DebuggerTabContentView.prototype.showDetailsSidebarPanels): Added. Show the scope sidebar panel
if it is available and it was requested by showScopeChainDetailsSidebarPanel().
(WebInspector.DebuggerTabContentView.prototype.showScopeChainDetailsSidebarPanel): Added.

1:01 PM Changeset in webkit [183641] by ap@apple.com
  • 3 edits in trunk/Tools

r183355 didn't trigger Mac tests
https://bugs.webkit.org/show_bug.cgi?id=144464

Reviewed by Simon Fraser.

Update badly neglected filters and unit tests.

  • BuildSlaveSupport/build.webkit.org-config/wkbuild.py:

(_should_file_trigger_build):

  • BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:

(ShouldBuildTest):
(ShouldBuildTest.test_should_build):

12:51 PM Changeset in webkit [183640] by Martin Robinson
  • 5 edits
    2 adds in trunk/LayoutTests

Rebaseline some editing tests for WebKitGTK+

Also add some missing baselines.

  • fast/hidpi/broken-image-icon-very-hidpi-expected.png: Added.
  • fast/hidpi/broken-image-icon-very-hidpi-expected.txt: Added.
  • platform/gtk/editing/execCommand/5142012-1-expected.png:
  • platform/gtk/editing/execCommand/5142012-1-expected.txt:
  • platform/gtk/editing/inserting/insert-at-end-02-expected.txt:
  • platform/gtk/editing/pasteboard/4989774-expected.txt:
12:04 PM Changeset in webkit [183639] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Allow WebKit to build without ANGLE support
https://bugs.webkit.org/show_bug.cgi?id=144459
<rdar://problem/20707307>

Reviewed by Dean Jackson.

  • platform/graphics/GLContext.cpp: Use the ENABLE(GRAPHICS_CONTEXT_3D)

macro to avoid compiling this code if not using WEBGL/3D contexts.

11:54 AM Changeset in webkit [183638] by fpizlo@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, skip new tests js/regress/is-string-fold.html and js/regress/is-string-fold-tricky.html because they are crashing.

11:50 AM Changeset in webkit [183637] by jhoneycutt@apple.com
  • 2 edits in trunk/LayoutTests

Add image failure expectation for
svg/filters/sourceAlpha-input-filter-effect.html on Windows

Unreviewed.

  • platform/win/TestExpectations:
11:36 AM Changeset in webkit [183636] by hyatt@apple.com
  • 7 edits in trunk/Source/WebCore

Avoid containingBlock() calls when no writing mode flipping is needed.
https://bugs.webkit.org/show_bug.cgi?id=144407

Reviewed by Simon Fraser.

Add a bool to RenderView that indicates whether or not any flipped blocks have been
added to the view. Once tainted, the view just stays dirty forever. If no flipped
blocks are ever seen, we can then optimize away calls to containingBlock().

The motivation for this patch is to improve layer position updating, which makes many
calls to topLeftLocationOffset(), one of the functions that can be optimized by this
change.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layoutOverflowRectForPropagation):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::updateFromStyle):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::rangeIntersectsRect):

  • rendering/RenderView.cpp:

(WebCore::RenderView::RenderView):

  • rendering/RenderView.h:
11:21 AM Changeset in webkit [183635] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] tapping in the middle of a word in editable content should not select the word.
https://bugs.webkit.org/show_bug.cgi?id=144421
rdar://problem/20710948

Reviewed by Tim Horton.

Reverting to the original behavior.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectWithGesture):

11:20 AM Changeset in webkit [183634] by calvaris@igalia.com
  • 2 edits in trunk/Tools

[GTK] Add libhyphen-dev to the build dependencies
https://bugs.webkit.org/show_bug.cgi?id=144452

Reviewed by Martin Robinson.

  • gtk/install-dependencies: Added libhyphen-dev to the WebKitGTK+

build dependencies.

11:00 AM Changeset in webkit [183633] by Andres Gomez
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

[GTK] Web Inspector: New Images for ObjectTreeView - Setter
https://bugs.webkit.org/show_bug.cgi?id=143173

Reviewed by Martin Robinson.

  • UserInterface/Images/gtk/Pencil.svg: Added.
10:50 AM Changeset in webkit [183632] by Martin Robinson
  • 2 edits in trunk/Tools

[GTK] Testing dictionaries are not installed automatically
https://bugs.webkit.org/show_bug.cgi?id=144460

Reviewed by Carlos Garcia Campos.

  • gtk/jhbuild.modules: Add the testing dictionaries to the main moduleset.
10:44 AM Changeset in webkit [183631] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add a FIXME comment referencing https://bugs.webkit.org/show_bug.cgi?id=144458.

  • jit/JITOperations.cpp:
10:40 AM Changeset in webkit [183630] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a comment clarifying the behavior and semantics of getCallData/getConstructData, in
particular that they cannot change their minds and may be called from compiler threads.

Rubber stamped by Geoffrey Garen.

  • runtime/JSCell.h:
10:36 AM Changeset in webkit [183629] by fpizlo@apple.com
  • 3 edits
    59 adds in trunk

DFG Is<Blah> versions of TypeOf should fold based on proven input type
https://bugs.webkit.org/show_bug.cgi?id=144409

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


We were missing some obvious folding opportunities here. I don't know how this affects real
code, but in general, we like to ensure that our constant folding is comprehensive. So this
is more about placating my static analysis OCD than anything else.

I added a bunch of speed/correctness tests for this in LayoutTests/js/regress.

  • dfg/DFGAbstractInterpreterInlines.h:

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

LayoutTests:

  • js/regress/is-boolean-fold-expected.txt: Added.
  • js/regress/is-boolean-fold-tricky-expected.txt: Added.
  • js/regress/is-boolean-fold-tricky.html: Added.
  • js/regress/is-boolean-fold.html: Added.
  • js/regress/is-function-fold-expected.txt: Added.
  • js/regress/is-function-fold-tricky-expected.txt: Added.
  • js/regress/is-function-fold-tricky-internal-function-expected.txt: Added.
  • js/regress/is-function-fold-tricky-internal-function.html: Added.
  • js/regress/is-function-fold-tricky.html: Added.
  • js/regress/is-function-fold.html: Added.
  • js/regress/is-number-fold-expected.txt: Added.
  • js/regress/is-number-fold-tricky-expected.txt: Added.
  • js/regress/is-number-fold-tricky.html: Added.
  • js/regress/is-number-fold.html: Added.
  • js/regress/is-object-or-null-fold-expected.txt: Added.
  • js/regress/is-object-or-null-fold-functions-expected.txt: Added.
  • js/regress/is-object-or-null-fold-functions.html: Added.
  • js/regress/is-object-or-null-fold-less-tricky-expected.txt: Added.
  • js/regress/is-object-or-null-fold-less-tricky.html: Added.
  • js/regress/is-object-or-null-fold-tricky-expected.txt: Added.
  • js/regress/is-object-or-null-fold-tricky.html: Added.
  • js/regress/is-object-or-null-fold.html: Added.
  • js/regress/is-object-or-null-trickier-function-expected.txt: Added.
  • js/regress/is-object-or-null-trickier-function.html: Added.
  • js/regress/is-object-or-null-trickier-internal-function-expected.txt: Added.
  • js/regress/is-object-or-null-trickier-internal-function.html: Added.
  • js/regress/is-object-or-null-tricky-function-expected.txt: Added.
  • js/regress/is-object-or-null-tricky-function.html: Added.
  • js/regress/is-object-or-null-tricky-internal-function-expected.txt: Added.
  • js/regress/is-object-or-null-tricky-internal-function.html: Added.
  • js/regress/is-string-fold-expected.txt: Added.
  • js/regress/is-string-fold-tricky-expected.txt: Added.
  • js/regress/is-string-fold-tricky.html: Added.
  • js/regress/is-string-fold.html: Added.
  • js/regress/is-undefined-fold-expected.txt: Added.
  • js/regress/is-undefined-fold-tricky-expected.txt: Added.
  • js/regress/is-undefined-fold-tricky.html: Added.
  • js/regress/is-undefined-fold.html: Added.
  • js/regress/script-tests/is-boolean-fold-tricky.js: Added.
  • js/regress/script-tests/is-boolean-fold.js: Added.
  • js/regress/script-tests/is-function-fold-tricky-internal-function.js: Added.
  • js/regress/script-tests/is-function-fold-tricky.js: Added.

(func):
(func2):

  • js/regress/script-tests/is-function-fold.js: Added.

(value1):

  • js/regress/script-tests/is-number-fold-tricky.js: Added.
  • js/regress/script-tests/is-number-fold.js: Added.
  • js/regress/script-tests/is-object-or-null-fold-functions.js: Added.

(value2):

  • js/regress/script-tests/is-object-or-null-fold-less-tricky.js: Added.
  • js/regress/script-tests/is-object-or-null-fold-tricky.js: Added.
  • js/regress/script-tests/is-object-or-null-fold.js: Added.
  • js/regress/script-tests/is-object-or-null-trickier-function.js: Added.

(func):
(func2):

  • js/regress/script-tests/is-object-or-null-trickier-internal-function.js: Added.
  • js/regress/script-tests/is-object-or-null-tricky-function.js: Added.

(func):

  • js/regress/script-tests/is-object-or-null-tricky-internal-function.js: Added.
  • js/regress/script-tests/is-string-fold-tricky.js: Added.
  • js/regress/script-tests/is-string-fold.js: Added.
  • js/regress/script-tests/is-undefined-fold-tricky.js: Added.
  • js/regress/script-tests/is-undefined-fold.js: Added.
  • js/regress/sink-function-expected.txt: Added.
  • js/regress/sink-function.html: Added.
10:21 AM Changeset in webkit [183628] by Brent Fulgham
  • 27 edits in trunk/LayoutTests

[Mac] Expand test infrastructure to support scrolling tests (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=144131

Reviewed by Eric Carlson.

Update the WK2 scrolling tests to use the new scroll trigger infrastructure to reduce the use of
timeouts.

  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select.html:
  • platform/mac-wk2/tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html:
  • platform/mac-wk2/tiled-drawing/scrolling/root-overflow-with-mousewheel.html:
10:17 AM Changeset in webkit [183627] by Andres Gomez
  • 1 edit
    18 deletes in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Remove some unused Images
https://bugs.webkit.org/show_bug.cgi?id=144445

Reviewed by Carlos Garcia Campos.

  • UserInterface/Images/gtk/BottomUpTree.svg: Removed.
  • UserInterface/Images/gtk/Log.png: Removed.
  • UserInterface/Images/gtk/Log@2x.png: Removed.
  • UserInterface/Images/gtk/NavigationItemAngleBrackets.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemBug.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemFile.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemLayers.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemLog.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemProbes.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemStopwatch.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemStorage.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemVariable.svg: Removed.
  • UserInterface/Images/gtk/Percent.svg: Removed.
  • UserInterface/Images/gtk/Reload.svg: Removed.
  • UserInterface/Images/gtk/SplitToggleDown.svg: Removed.
  • UserInterface/Images/gtk/Time.svg: Removed.
  • UserInterface/Images/gtk/Weight.svg: Removed.
9:17 AM Changeset in webkit [183626] by Martin Robinson
  • 3 edits in trunk

[CMake] Automatically expose WTF_USE_FOO to the build when USE_FOO is exposed
https://bugs.webkit.org/show_bug.cgi?id=144394

Reviewed by Carlos Garcia Campos.

Automatically expose WTF_USE_FOO when USE_FOO is exposed. A side-effect of this change
is that it fixes the redirected XComposite window for GTK+, which was accidentally
disabled in previous reworking of the CMake configuration.

  • Source/cmake/OptionsGTK.cmake: We no longer need to expose the WTF_ prefixed

version of USE variables.

  • Source/cmake/WebKitFeatures.cmake: Automatically expose WTF_USE_FOO when USE_FOO

is exposed to the build.

2:19 AM EFLWebKit edited by Gyuyoung Kim
(diff)
2:09 AM EFLWebKit edited by Gyuyoung Kim
(diff)
2:06 AM EFLWebKit edited by Gyuyoung Kim
(diff)
2:02 AM EFLWebKit edited by Gyuyoung Kim
(diff)
1:54 AM Changeset in webkit [183625] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Copy not working in Console
https://bugs.webkit.org/show_bug.cgi?id=144354

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-30
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector._focusedContentView):
Select the inner most content view to check if handleCopyEvent exists.
Previously we were stopping at the top level TabContentView.

1:37 AM Changeset in webkit [183624] by Yusuke Suzuki
  • 9 edits in trunk/Source

Use the default hash value for Symbolized StringImpl
https://bugs.webkit.org/show_bug.cgi?id=144347

Reviewed by Darin Adler.

Source/JavaScriptCore:

Before this patch, symbolized StringImpl* has a special hash value
to avoid the hash collision with the other normal StringImpl*.
I guess that it is introduced when private symbols are introduced.
However, it prevents using symbolized StringImpl* in the other place
For example, using it as WTFString cause a problem because of its special hash value.

When only using private symbols, they are not exposed to the outside of JSC,
so we can handle it carefully. But now, it's extended to symbols.
So I think storing a special hash value in StringImpl* causes an error.

To avoid this, I propose using the usual hash value in symbolized StringImpl*.
And to provide significantly different hash value when using it as symbol,
store the additional hash value in symbolized StringImpl*. It is used when
the hash value is required by IdentifierRepHash.

  • runtime/Identifier.h:

(JSC::IdentifierRepHash::hash):

  • runtime/Lookup.h:

(JSC::HashTable::entry):

  • runtime/PropertyMapHashTable.h:

(JSC::PropertyTable::find):
(JSC::PropertyTable::get):

  • runtime/Structure.cpp:

(JSC::PropertyTable::checkConsistency):

Source/WTF:

Use a default hash value calculation for symbolized StringImpl.

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::createSymbol):

  • wtf/text/StringImpl.h:

(WTF::StringImpl::StringImpl):
(WTF::StringImpl::symbolAwareHash):
(WTF::StringImpl::existingSymbolAwareHash):
(WTF::StringImpl::hashForSymbol):

  • wtf/text/StringStatics.cpp:

(WTF::StringImpl::nextHashForSymbol):
(WTF::StringImpl::hashAndFlagsForSymbol): Deleted.

12:39 AM Changeset in webkit [183623] by Antti Koivisto
  • 3 edits in trunk/LayoutTests

These should be saying HTTP/1.1 not HTTP/1.0

  • http/tests/cache/resources/iframe304.php:
  • http/tests/cache/resources/iframe304body.php:
12:30 AM WebKitEFLLayoutTest edited by Gyuyoung Kim
(diff)
12:30 AM WebKitEFLLayoutTest edited by Gyuyoung Kim
(diff)
12:29 AM WebKitEFLLayoutTest edited by Gyuyoung Kim
(diff)
12:25 AM WebKitEFLLayoutTest edited by Gyuyoung Kim
(diff)
12:13 AM Changeset in webkit [183622] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. Bump GTK+ version numbers.

  • Source/cmake/OptionsGTK.cmake:
12:08 AM Changeset in webkit [183621] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Fix return code issue, check return code of safari process and dump results to log
https://bugs.webkit.org/show_bug.cgi?id=144436

Patch by Dewei Zhu <Dewei Zhu> on 2015-04-30
Reviewed by Ryosuke Niwa.

  • Scripts/run-benchmark:
  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.dump): Correct typo.
(BenchmarkRunner.wrap): Add results to console.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: Check return code to detect Safari crashes.

(OSXSafariDriver.prepareEnv):
(OSXSafariDriver.launchUrl):
(OSXSafariDriver.closeBrowsers):

Apr 29, 2015:

11:43 PM Changeset in webkit [183620] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Should no longer need to worry about very old versions of Xcode
https://bugs.webkit.org/show_bug.cgi?id=144437

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-29
Reviewed by Dan Bernstein.

  • Scripts/check-for-exit-time-destructors:
  • Scripts/check-for-global-initializers:
  • Scripts/check-for-weak-vtables-and-externals:
11:37 PM Changeset in webkit [183619] by ryuan.choi@navercorp.com
  • 2 edits in trunk

[EFL] CMake should be failed if openwebrtc package does not exist but ENABLE_MEDIA_STREAM is ON
https://bugs.webkit.org/show_bug.cgi?id=144435

Reviewed by Gyuyoung Kim.

This patch adds REQUIRED option for OpenWebRTC when ENABLE_MEDIA_STREAM is ON.
In addition, this adds DEFAULT_PORT_VALUE for ENABLE_MEDIA_STREAM to match with FeatureList.pm

  • Source/cmake/OptionsEfl.cmake:
11:29 PM Changeset in webkit [183618] by jer.noble@apple.com
  • 6 edits
    1 move
    1 delete in trunk/Source/WebCore

Make GenericTaskQueue even more generic (and usable inside platform/)
https://bugs.webkit.org/show_bug.cgi?id=144414

Reviewed by Eric Carlson.

Templatize GenericTaskQueue so that it can be used from within platform/.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/GenericTaskQueue.cpp: Removed.
  • html/HTMLMediaElement.h:
  • platform/GenericTaskQueue.h: Renamed from Source/WebCore/dom/GenericTaskQueue.h.

(WebCore::TaskDispatcher::TaskDispatcher): Added default templatized class which just calls the parameter's postTask().
(WebCore::TaskDispatcher::postTask): Call context's postTask().
(WebCore::TaskDispatcher<Timer>::TaskDispatcher): Add a timer version which does not require a context.
(WebCore::TaskDispatcher<Timer>::postTask): Set the timer.
(WebCore::TaskDispatcher<Timer>::timerFired): Call the task.
(WebCore::GenericTaskQueue::GenericTaskQueue): Moved from .cpp.
(WebCore::GenericTaskQueue::enqueueTask): Ditto.
(WebCore::GenericTaskQueue::close): Ditto.
(WebCore::GenericTaskQueue::cancelAllTasks): Ditto.
(WebCore::GenericTaskQueue::hasPendingTasks): Ditto.

10:53 PM Changeset in webkit [183617] by Joseph Pecoraro
  • 1 edit
    1 add in trunk/LayoutTests

[Win] Update baselines after r183610.

Unreviewed Gardening.

  • platform/win/fast/css/apple-system-colors-expected.txt: Added.
9:43 PM Changeset in webkit [183616] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix. WebCore has a weak symbol.

WebCore has a weak external symbol in it. A common cause of weak external
symbols is when an inline function is listed in the linker export file.
ERROR: symbol ZNK7WebCore4Page25expectsWheelEventTriggersEv

  • page/Page.cpp:

(WebCore::Page::expectsWheelEventTriggers):

  • page/Page.h:

(WebCore::Page::expectsWheelEventTriggers): Deleted.

9:40 PM Changeset in webkit [183615] by benjamin@webkit.org
  • 13 edits in trunk/Source/JavaScriptCore

[JSC] Remove RageConvert array conversion
https://bugs.webkit.org/show_bug.cgi?id=144433

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-04-29
Reviewed by Filip Pizlo.

RageConvert was causing a subtle bug that was hitting the Kraken crypto tests
pretty hard:
-The indexing types shows that the array access varies between Int32 and DoubleArray.
-ArrayMode::fromObserved() decided to use the most generic type: DoubleArray.

An Arrayify node would convert the Int32 to that type.

-Somewhere, a GetByVal or PutByVal would have the flag NodeBytecodeUsesAsInt. That

node would use RageConvert instead of Convert.

-The Arrayify for that GetByVal with RageConvert would not convert the array to

Contiguous.

-All the following array access that do not have the flag NodeBytecodeUsesAsInt would

now expect a DoubleArray and always get a Contiguous Array. The CheckStructure
fail systematically and we never get to run the later code.

Getting rid of RageConvert fixes the problem and does not seems to have any
negative side effect on other benchmarks.

The improvments on Kraken are:

-stanford-crypto-aes: definitely 1.0915x faster.
-stanford-crypto-pbkdf2: definitely 1.2446x faster.
-stanford-crypto-sha256-iterative: definitely 1.0544x faster.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGArrayMode.cpp:

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

  • dfg/DFGArrayMode.h:
  • dfg/DFGArrayifySlowPathGenerator.h:
  • dfg/DFGFixupPhase.cpp:

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

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

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

  • dfg/DFGTypeCheckHoistingPhase.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileArrayifyToStructure):

  • runtime/JSObject.cpp:

(JSC::JSObject::convertDoubleToContiguous):
(JSC::JSObject::ensureContiguousSlow):
(JSC::JSObject::genericConvertDoubleToContiguous): Deleted.
(JSC::JSObject::rageConvertDoubleToContiguous): Deleted.
(JSC::JSObject::rageEnsureContiguousSlow): Deleted.

  • runtime/JSObject.h:

(JSC::JSObject::rageEnsureContiguous): Deleted.

9:15 PM Changeset in webkit [183614] by Simon Fraser
  • 3 edits
    5 adds in trunk

Crash at WebCore::Document::absoluteRegionForEventTargets
https://bugs.webkit.org/show_bug.cgi?id=144426
rdar://problem/20502166

Reviewed by Tim Horton.

Source/WebCore:

When a frame had wheel event handlers, we would register the document itself
as a handler in its parent document. This is problematic, because there's not
code path that removes it when the frame is destroyed.

It turns out we don't need to do this at all; the non-fast scrollable region
already takes handlers in subframes into account.

Tests: fast/events/wheelevent-in-frame.html

fast/events/wheelevent-in-reattached-frame.html

  • dom/Document.cpp:

(WebCore::Document::didAddWheelEventHandler):
(WebCore::Document::didRemoveWheelEventHandler):

LayoutTests:

Test that disconnects a frame with a wheel event handler then GCs, and one that
disconnects are reconnects. In both case, the parent document should have zero
wheel event handlers registered on it.

  • fast/events/wheelevent-in-frame-expected.txt: Added.
  • fast/events/wheelevent-in-frame.html: Added.
  • fast/events/wheelevent-in-reattached-frame-expected.txt: Added.
  • fast/events/wheelevent-in-reattached-frame.html: Added.
8:40 PM Changeset in webkit [183613] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

Not all videos should automatically play to playback target
https://bugs.webkit.org/show_bug.cgi?id=144430
<rdar://problem/20718523>

Reviewed by Darin Adler.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::clientStateDidChange): Consider ExternalDeviceAutoPlayCandidate.
Minor cleanup.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaState): Set ExternalDeviceAutoPlayCandidate when a <video>
has a file with an audio track that does not loop.

  • page/MediaProducer.h: Add ExternalDeviceAutoPlayCandidate.
8:27 PM Changeset in webkit [183612] by Joseph Pecoraro
  • 5 edits in trunk

LiveNodeList may unexpectedly return an element for empty string
https://bugs.webkit.org/show_bug.cgi?id=144429

Reviewed by Darin Adler.

Source/WebCore:

  • dom/LiveNodeList.cpp:

(WebCore::LiveNodeList::namedItem):
Never return a result for an empty string.

LayoutTests:

  • fast/dom/named-items-with-empty-name-expected.txt:
  • fast/dom/named-items-with-empty-name.html:
8:21 PM Changeset in webkit [183611] by Gyuyoung Kim
  • 15 edits in trunk/Source/WebCore

Remove PassRefPtr in SVGFEFooElement classes
https://bugs.webkit.org/show_bug.cgi?id=144425

Reviewed by Darin Adler.

As a step to use Ref instead of PassRefPtr, this patch purges PassRefPtr
in SVGFEFooElement.

No new tests, no behavior changes.

  • css/RGBColor.cpp:

(WebCore::RGBColor::create):

  • css/RGBColor.h:
  • platform/graphics/filters/PointLightSource.h:

(WebCore::PointLightSource::create):

  • platform/graphics/filters/SpotLightSource.h:

(WebCore::SpotLightSource::create):

  • svg/SVGColor.cpp:

(WebCore::SVGColor::rgbColor):

  • svg/SVGColor.h:
  • svg/SVGFEDistantLightElement.cpp:

(WebCore::SVGFEDistantLightElement::lightSource):

  • svg/SVGFEDistantLightElement.h:
  • svg/SVGFELightElement.cpp:

(WebCore::SVGFELightElement::findLightSource):

  • svg/SVGFELightElement.h:
  • svg/SVGFEPointLightElement.cpp:

(WebCore::SVGFEPointLightElement::lightSource):

  • svg/SVGFEPointLightElement.h:
  • svg/SVGFESpotLightElement.cpp:

(WebCore::SVGFESpotLightElement::lightSource):

  • svg/SVGFESpotLightElement.h:
8:15 PM Changeset in webkit [183610] by dino@apple.com
  • 10 edits
    7 adds in trunk

Create a named CSS property for system colors
https://bugs.webkit.org/show_bug.cgi?id=144423
<rdar://problem/20491011>

Reviewed by Tim Horton.

Source/WebCore:

Test: fast/css/apple-system-colors.html

Expose the following values to CSS color properties:

-apple-system-blue
-apple-system-brown
-apple-system-gray
-apple-system-green
-apple-system-orange
-apple-system-pink
-apple-system-purple
-apple-system-red
-apple-system-yellow

On platforms other than OS X Yosemite and iOS, the
actual color values are undefined and become transparent
black. (In fact, not all are defined on iOS either.)

  • WebCore.xcodeproj/project.pbxproj: Two new SPI header files.
  • css/CSSParser.cpp:

(WebCore::CSSParser::validSystemColorValue): New helper function that
checks if a CSSValueID is between the two system color values. This
was being tested everywhere, which meant adding a new system color was
at risk of being ignored. It's a static method so it can be used
from the SVG CSS parser too.
(WebCore::validPrimitiveValueColor): Use the new helper.
(WebCore::CSSParser::parseValue): Ditto.
(WebCore::CSSParser::parseBackgroundColor): Ditto.
(WebCore::CSSParser::parseShadow): Ditto.
(WebCore::parseDeprecatedGradientColorStop): Ditto.
(WebCore::parseGradientColorOrKeyword): Ditto.

  • css/CSSParser.h: New static helper function.
  • css/CSSValueKeywords.in: Add the new CSS value keywords.
  • css/SVGCSSParser.cpp:

(WebCore::validSystemControlColorValue): SVG has a restricted
set of system colors, so use the helper from CSSParser but with
an extra condition.
(WebCore::CSSParser::parseSVGValue): Use the helper.

  • platform/spi/ios/UIColorSPI.h: Added.
  • platform/spi/cocoa/NSColorSPI.h: Added.
  • rendering/RenderThemeIOS.h: New systemColor override. Also add a cache for system colors.
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::systemColor): Ask UIColor to provide the color values for the new CSS values.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor): Ditto.

LayoutTests:

Expose the following values to CSS color properties:

-apple-system-blue
-apple-system-brown
-apple-system-gray
-apple-system-green
-apple-system-orange
-apple-system-pink
-apple-system-purple
-apple-system-red
-apple-system-yellow

The new test shows the computed value for each of these colors. It
includes generic results (no special value) and platform results for
Mac (other than Mavericks) and iOS.

  • fast/css/apple-system-colors-expected.txt: Generic results.
  • fast/css/apple-system-colors.html: Added - the new test.
  • platform/mac/fast/css/apple-system-colors-expected.txt: Added OS X results.
  • platform/ios-simulator/fast/css/apple-system-colors-expected.txt: Added iOS results.
  • platform/mac-mavericks/fast/css/apple-system-colors-expected.txt: Generic results for Mavericks.
8:08 PM Changeset in webkit [183609] by commit-queue@webkit.org
  • 3 edits
    4 deletes in trunk

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

New tests time out everywhere (Requested by ap on #webkit).

Reverted changeset:

"Crash at WebCore::Document::absoluteRegionForEventTargets"
https://bugs.webkit.org/show_bug.cgi?id=144426
http://trac.webkit.org/changeset/183600

8:05 PM Changeset in webkit [183608] by ap@apple.com
  • 2 edits in trunk/Source/WTF

LazyNeverDestroyed is not thread safe in debug builds, causing assertions
https://bugs.webkit.org/show_bug.cgi?id=144378

Reviewed by Darin Adler.

  • wtf/NeverDestroyed.h:
8:03 PM Changeset in webkit [183607] by ap@apple.com
  • 2 edits in trunk/LayoutTests

fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=144155

  • fast/frames/flattening/resources/iframe-to-resize.html: Added more logging to the test.
7:46 PM Changeset in webkit [183606] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebCore

Unreviewed iOS build fix. Unused parameter no longer exists.

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame):

7:44 PM Changeset in webkit [183605] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

Fix the EFL build after r183595
https://bugs.webkit.org/show_bug.cgi?id=144427

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-04-29
Reviewed by Gyuyoung Kim.

updateWheelEventTestTriggersIfNeeded() is guarded by #if ENABLE(CSS_SCROLL_SNAP)
ENABLE(RUBBER_BANDING).
  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::updateWheelEventTestTriggersIfNeeded):

7:39 PM Changeset in webkit [183604] by Joseph Pecoraro
  • 5 edits in trunk

REGRESSION(183583): [Mac] make without SDKROOT has issues
https://bugs.webkit.org/show_bug.cgi?id=144431

Reviewed by Dan Bernstein.

.:

  • Source/Makefile:

Assume an empty SDKROOT means an macosx variant, so only
enable settings if the SDKROOT is not empty and does not
contain "macosx".

Tools:

  • Makefile:
  • WebKitTestRunner/Makefile:

Assume an empty SDKROOT means an macosx variant, so only
enable settings if the SDKROOT is not empty and does not
contain "macosx".

7:10 PM Changeset in webkit [183603] by Martin Robinson
  • 2 edits
    16 adds in trunk/LayoutTests

Unskip 3D transformation tests for WebKitGTK+

Unreviewed. This is gardening.

These tests should run reasonably well on the testing bots, now that
they use llvmpipe to run OpenGL.

  • platform/gtk/TestExpectations:
  • platform/gtk/transforms/3d/general/background-visibility-layers-expected.png: Added.
  • platform/gtk/transforms/3d/general/cssmatrix-3d-zoom-expected.png: Added.
  • platform/gtk/transforms/3d/general/matrix-with-zoom-3d-expected.png: Added.
  • platform/gtk/transforms/3d/general/perspective-non-layer-expected.png: Added.
  • platform/gtk/transforms/3d/general/perspective-units-expected.png: Added.
  • platform/gtk/transforms/3d/general/transform-origin-z-change-expected.png: Added.
  • platform/gtk/transforms/3d/hit-testing/backface-hit-test-expected.png: Added.
  • platform/gtk/transforms/3d/hit-testing/backface-no-transform-hit-test-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-2-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-3-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-coplanar-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-deep-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.png: Added.
  • platform/gtk/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png: Added.
6:42 PM Changeset in webkit [183602] by Martin Robinson
  • 2 edits in trunk

Fix the GTK+ build after r183584

  • Source/cmake/OptionsGTK.cmake: Properly use the USE_LIBHYPHEN and HYPHEN_FOUND variables.
6:41 PM Changeset in webkit [183601] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Rebaseline after r183597.

  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/handlers-in-iframes-expected.txt:
6:38 PM Changeset in webkit [183600] by Simon Fraser
  • 3 edits
    4 adds in trunk

Crash at WebCore::Document::absoluteRegionForEventTargets
https://bugs.webkit.org/show_bug.cgi?id=144426
rdar://problem/20502166

Reviewed by Tim Horton.

Source/WebCore:

When a frame had wheel event handlers, we would register the document itself
as a handler in its parent document. This is problematic, because there's not
code path that removes it when the frame is destroyed.

It turns out we don't need to do this at all; the non-fast scrollable region
already takes handlers in subframes into account.

Tests: fast/events/wheelevent-in-frame.html

fast/events/wheelevent-in-reattached-frame.html

  • dom/Document.cpp:

(WebCore::Document::didAddWheelEventHandler):
(WebCore::Document::didRemoveWheelEventHandler):

LayoutTests:

Test that disconnects a frame with a wheel event handler then GCs, and one that
disconnects are reconnects. In both case, the parent document should have zero
wheel event handlers registered on it.

  • fast/events/wheelevent-in-frame-expected.txt: Added.
  • fast/events/wheelevent-in-frame.html: Added.
  • fast/events/wheelevent-in-reattached-frame-expected.txt: Added.
  • fast/events/wheelevent-in-reattached-frame.html: Added.
6:21 PM Changeset in webkit [183599] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.16.2

New tag.

6:18 PM Changeset in webkit [183598] by ddkilzer@apple.com
  • 6 edits
    2 adds in trunk/Source/WebCore

Attempt #2: Switch QuickLook soft-linking to use QuickLookSoftLink.{h,mm}
<http://webkit.org/b/144362>

Reviewed by Andy Estes.

This patch switches soft-linking of QuickLook.framework to
QuickLookSoftLink.{h,mm} so that we stop exporting unintended
symbols.

No new tests since no change in behavior.

  • WebCore.xcodeproj/project.pbxproj:
  • Add QuickLookSoftLinking.{h,mm} to the project.
  • platform/ios/QuickLookSoftLink.h: Added.
  • platform/ios/QuickLookSoftLink.mm: Added.
  • platform/mac/SoftLinking.h:

(SOFT_LINK_CLASS_FOR_HEADER): Add macro.
(SOFT_LINK_CLASS_FOR_SOURCE): Add macro.
(SOFT_LINK_POINTER_FOR_HEADER): Add macro.
(SOFT_LINK_POINTER_FOR_SOURCE): Add macro.

  • platform/network/ios/QuickLook.h:
  • Remove unused declarations.
  • platform/network/ios/QuickLook.mm:

(WebCore::QLPreviewConverterClass): Deleted.
(WebCore::QLTypeCopyBestMimeTypeForFileNameAndMimeType): Deleted.
(WebCore::QLTypeCopyBestMimeTypeForURLAndMimeType): Deleted.
(WebCore::QLTypeCopyUTIForURLAndMimeType): Deleted.

  • Remove SOFT_LINK macros and unused methods after switching to new QuickLookSoftLink.{h,mm}.

(WebCore::QLPreviewGetSupportedMIMETypesSet):

  • Switch to use NeverDestroyed<>.

(WebCore::registerQLPreviewConverterIfNeeded):
(createQLPreviewProtocol):
(WebCore::QLPreviewProtocol):
(WebCore::QuickLookHandle::QuickLookHandle):
(WebCore::QuickLookHandle::create):
(WebCore::QuickLookHandle::shouldCreateForMIMEType):

  • Simplify code when using QuickLookSoftLink.h.
  • platform/network/ios/WebCoreURLResponseIOS.mm:
  • Include QuickLookSoftLink.h header.
5:46 PM Changeset in webkit [183597] by Simon Fraser
  • 17 edits in trunk

Compute the non-fast-scrollable region in main-document coordinates
https://bugs.webkit.org/show_bug.cgi?id=144420

Reviewed by Tim Horton.

Source/WebCore:

Compute the non-fast-scrollable region in document coordinates, to make it easier
to reason about. Previously, it was document coordinates offset by top content inset.

  • page/DebugPageOverlays.cpp:

(WebCore::MouseWheelRegionOverlay::updateRegion): Traverse all frames to compute the wheel
event handler region, mapping each to root view coords, and then mapping back into document
coords at the end.
(WebCore::NonFastScrollableRegionOverlay::updateRegion): No offset needed here; the
overlay and region are both document coordinates.

  • page/FrameView.h: Make some mapping function overrides public, and expose widgetsInRenderTree().
  • page/Page.cpp:

(WebCore::Page::nonFastScrollableRects): Remove frame argument.

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

(WebCore::PageOverlay::bounds):
(WebCore::PageOverlay::viewToOverlayOffset): Convenience function to map between
view and overlay coordinates.

  • page/PageOverlay.h:
  • page/scrolling/AsyncScrollingCoordinator.cpp: New computeNonFastScrollableRegion() signature.

(WebCore::AsyncScrollingCoordinator::updateNonFastScrollableRegion):
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText):

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame): This function
recurses on frames, computing an absolute (document-relative) region per frame. This
removes the confusing offsetting through top content inset.
Change how we get to plugins that want wheel events; we can't get from PluginViewBase
to renderers, so use FrameView's list of Widgets, and their RenderWidgets. This fixes
regions for transformed plugin-ins.
For subframes, we get a region in the subframe's document coords. Map to that sub-frame,
then to our frame, then to our document.
(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegion): Wrapper that hides
the recursive function.
(WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Deleted.

  • page/scrolling/ScrollingCoordinator.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Map the event point
from view coordinates to document coordinates for testing against the non-fast region.
We previously assert that the root note is a FrameScrolling node.

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::viewToContentsOffset): Similar to ScrollView::viewToContents()
for the scrolling tree.

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • testing/Internals.cpp:

(WebCore::Internals::nonFastScrollableRects): No need for frame arg.

LayoutTests:

We now report the non-fast region in document coordinates, so these two results change.

  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/top-content-inset-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/top-content-inset-header-expected.txt:
5:40 PM Changeset in webkit [183596] by aestes@apple.com
  • 23 edits
    6 copies
    67 adds in branches/safari-600.7-branch

Merged r183106, r183108, r183135, r183137, r183171, r183437, r183444, r183445, r183464, r183470, r183471, r183474, r183484, and r183549.

5:29 PM Changeset in webkit [183595] by Brent Fulgham
  • 33 edits in trunk

Expand test infrastructure to support scrolling tests
https://bugs.webkit.org/show_bug.cgi?id=143684
<rdar://problem/20375516>

Reviewed by Simon Fraser.

Source/WebCore:

Tested by various fast/scrolling and platform/mac-wk2/tiled-drawing/scrolling tests.

This series of changes adds a new singleton class, 'WheelEventTestTrigger', which encapsulates a
function object to be fired when scroll events are finished. The object also keeps track of reasons
why the test should not yet fire (e.g., 'rubberbanding' is active) so that tests do not incorrectly
check rendering state in the middle of an animation.

Switch from the original WeakPtr design to ThreadSafeRefPtr, because WeakPtr cannot be shared
across multiple threads.

  • page/FrameView.cpp:

(WebCore::FrameView::layout): Make sure ScrollAnimator knows about any active test trigger.
(WebCore::FrameView::setScrollPosition): Ditto.
(WebCore::FrameView::didAddScrollbar): Ditto.

  • page/MainFrame.cpp:

(WebCore::MainFrame::testTrigger): Moved to Page.
(WebCore::MainFrame::ensureTestTrigger): Ditto.

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

(WebCore::Page::testTrigger): Moved from MainFrame, and converted to use RefPtr.
(WebCore::Page::ensureTestTrigger): Ditto.

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

(WebCore::WheelEventTestTrigger::WheelEventTestTrigger): Remove WeakPtr code.
(WebCore::WheelEventTestTrigger::createWeakPtr): Deleted.

  • page/WheelEventTestTrigger.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::platformPrepareForWheelEvents): Make sure the scroll animator knows about
any active test trigger object.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll): Notify WheelEventTestTrigger
that the scrolling thread is synced with the main thread.

  • platform/ScrollAnimator.h: Hold a RefPtr to the WheelEventTestTrigger.

(WebCore::ScrollAnimator::ScrollAnimator::setWheelEventTestTrigger):

  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::startSnapRubberbandTimer): Notify test trigger to hold tests until rubber band
snapping is complete.
(WebCore::ScrollController::stopSnapRubberbandTimer): Notify test trigger that rubber band snapping is done.
(WebCore::ScrollController::startScrollSnapTimer): Notify test trigger to hold tests until scroll snapping
is complete.
(WebCore::ScrollController::stopScrollSnapTimer): Notify test trigger that scroll snapping is done.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::didBeginScrollGesture): Notify test trigger that a content scroll is in progress.
(WebCore::ScrollAnimatorMac::didEndScrollGesture): Notify test trigger that a content scroll is finished.
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon): Notify test trigger to hold tests until the content
scrolling is complete.
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired): Notify test trigger that content scrolling is done.

  • rendering/RenderBox.cpp:

(WebCore::connectScrollAnimatorToTestTrigger): Helper function.
(WebCore::RenderBox::setScrollLeft): Call 'connectScrollAnimatorToTestTrigger' to connect the ScrollAnimator
to the WheelEventTestTrigger so that future scroll operations can notify the test infrastructure.
(WebCore::RenderBox::setScrollTop): Ditto.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::createScrollbar): Make sure the ScrollAnimator knows about any active test triggers.

  • rendering/RenderListBox.cpp:

(WebCore::connectScrollAnimatorToTestTrigger): Helper function.
(WebCore::RenderListBox::setScrollLeft): Call 'connectScrollAnimatorToTestTrigger' to connect the ScrollAnimator
to the WheelEventTestTrigger so that future scroll operations can notify the test infrastructure.
(WebCore::RenderListBox::setScrollTop): Ditto.
(WebCore::RenderListBox::createScrollbar): Ditto.

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::monitorWheelEvents): Look for WheelEventTestTrigger in Page, rather than MainFrame.
(WebCoreTestSupport::setTestCallbackAndStartNotificationTimer): Ditto.

Source/WebKit2:

Update test programs to activate (and deactivate) the new WheelEventTestTrigger logic.

  • UIProcess/API/C/WKPage.cpp:

(WKPageClearWheelEventTestTriggers): Added.

  • UIProcess/API/C/WKPage.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::clearWheelEventTestTrigger): Added.

  • UIProcess/WebPageProxy.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageStartMonitoringScrollOperations): Interact with WheelEventTestTrigger through
the Page, rather than MainFrame.
(WKBundlePageRegisterScrollOperationCompletionCallback): Ditto.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::createScrollbar): Make sure scroll animator knows about any
active test triggers.

  • WebPage/EventDispatcher.mm:

(WebKit::EventDispatcher::wheelEvent): If the wheel event was passed to the scrolling thread,
defer tests until a Scrolling Thread Sync has occurred.

  • WebPage/WebPage.cpp:

(WebKit::WebPage::clearWheelEventTestTrigger): Added.

  • WebPage/WebPage.h:
  • WebPage/WebPage.message.in: Added ClearWheelEventTestTrigger message.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentStateBeforeTesting): Make sure the WheelEventTestTrigger state is
reset before the next test run.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues): Ditto."

5:28 PM Changeset in webkit [183594] by timothy@apple.com
  • 1 edit
    23 deletes in trunk/Source/WebInspectorUI

Web Inspector: Remove some unused Images
https://bugs.webkit.org/show_bug.cgi?id=144412

Reviewed by Joseph Pecoraro.

  • UserInterface/Images/BottomUpTree.svg: Removed.
  • UserInterface/Images/Log.png: Removed.
  • UserInterface/Images/Log@2x.png: Removed.
  • UserInterface/Images/NavigationItemAngleBrackets.svg: Removed.
  • UserInterface/Images/NavigationItemBrushAndRuler.svg: Removed.
  • UserInterface/Images/NavigationItemBug.svg: Removed.
  • UserInterface/Images/NavigationItemDoughnutChart.svg: Removed.
  • UserInterface/Images/NavigationItemFile.svg: Removed.
  • UserInterface/Images/NavigationItemLayers.svg: Removed.
  • UserInterface/Images/NavigationItemLog.svg: Removed.
  • UserInterface/Images/NavigationItemProbes.svg: Removed.
  • UserInterface/Images/NavigationItemStopwatch.svg: Removed.
  • UserInterface/Images/NavigationItemStorage.svg: Removed.
  • UserInterface/Images/NavigationItemVariable.svg: Removed.
  • UserInterface/Images/NetworkBarLabelCalloutLeft.svg: Removed.
  • UserInterface/Images/NetworkBarLabelCalloutRight.svg: Removed.
  • UserInterface/Images/NetworkBarLabelCalloutWhiteLeft.svg: Removed.
  • UserInterface/Images/NetworkBarLabelCalloutWhiteRight.svg: Removed.
  • UserInterface/Images/Percent.svg: Removed.
  • UserInterface/Images/Reload.svg: Removed.
  • UserInterface/Images/SplitToggleDown.svg: Removed.
  • UserInterface/Images/Time.svg: Removed.
  • UserInterface/Images/Weight.svg: Removed.
5:23 PM Changeset in webkit [183593] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Run javascriptcore tests on Windows without cygwin
https://bugs.webkit.org/show_bug.cgi?id=144419

Patch by Alex Christensen <achristensen@webkit.org> on 2015-04-29
Reviewed by Brent Fulgham.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):
Just call ruby, not /usr/bin/env ruby.

5:21 PM Changeset in webkit [183592] by enrica@apple.com
  • 7 edits in trunk/Source/WebKit2

Adding the ability to move selection by granularity on iOS.
https://bugs.webkit.org/show_bug.cgi?id=144410
rdar://problem/19213337

Reviewed by Benjamin Poulain.

This patch also correctly sets _usingGestureForSelection for all
the functions that change the selection with a gesture.
This way we make sure that the selection drawing is not delayed
until the next time we paint.

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

(-[WKContentView moveSelectionAtBoundary:inDirection:completionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::moveSelectionAtBoundaryWithDirection):

5:12 PM Changeset in webkit [183591] by jfernandez@igalia.com
  • 17 edits
    1 add in trunk/Source/WebCore

[CSS Box Alignment] Unifying alignment data in a single class
https://bugs.webkit.org/show_bug.cgi?id=144384

Reviewed by David Hyatt.

The new CSS Box Alignment specification introduces more complex
values and syntax for defining alignment properties. Most of the
alignment values were just keyword identifiers, but the new syntax
allows different combinations of identifiers to determine the
alignment behavior (eg. overflow-alignment keyword).

This patch wll help to implement later overflow handling and
specially Content Dstribution alignment, the most complex case by
far. It will be more consistent against style changes and repaint,
snce we will have just one field to monitoring for value
modfications.

No new tests, because no new functionality was added; it's just a
code refactoring which is just expected to pass current tests.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::resolveSelfAlignmentAuto):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSPropertyNames.in:
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData):
(WebCore::StyleBuilderConverter::convertSVGColor): Deleted.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): Deleted.
(WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::applyValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::getValue): Deleted.
(WebCore::ApplyPropertyBorderImageModifier::setValue): Deleted.
(WebCore::StyleBuilderCustom::applyInheritLineHeight): Deleted.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyle):

  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::createElementRenderer):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::styleDidChange):

  • rendering/RenderFullScreen.cpp:

(WebCore::createFullScreenStyle):

  • rendering/RenderMenuList.cpp:

(WebCore::RenderMenuList::adjustInnerStyle):

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::updateStyle):

  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair):
(WebCore::RenderMathMLScripts::fixAnonymousStyles):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::resolveAlignment):
(WebCore::RenderStyle::resolveJustification):

  • rendering/style/RenderStyle.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

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

  • rendering/style/StyleRareNonInheritedData.h:
  • rendering/style/StyleSelfAlignmentData.h: Added.

(WebCore::StyleSelfAlignmentData::StyleSelfAlignmentData):
(WebCore::StyleSelfAlignmentData::setPosition):
(WebCore::StyleSelfAlignmentData::setPositionType):
(WebCore::StyleSelfAlignmentData::setOverflow):
(WebCore::StyleSelfAlignmentData::position):
(WebCore::StyleSelfAlignmentData::positionType):
(WebCore::StyleSelfAlignmentData::overflow):
(WebCore::StyleSelfAlignmentData::operator==):
(WebCore::StyleSelfAlignmentData::operator!=):

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

Gracefully handle missing auto pause key on remote inspector setup
https://bugs.webkit.org/show_bug.cgi?id=144411

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-29
Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::receivedSetupMessage):

4:22 PM Changeset in webkit [183589] by Joseph Pecoraro
  • 9 edits
    10 adds in trunk

NodeList has issues with Symbol and empty string
https://bugs.webkit.org/show_bug.cgi?id=144310

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • runtime/PropertyName.h:

(JSC::PropertyName::isSymbol):
Helper to check if the PropertyName is a string or symbol property.

Source/WebCore:

Tests: fast/dom/StyleSheet/stylesheet-symbol-names.html

fast/dom/dataset-name-getter-symbols.html
fast/dom/named-items-with-empty-name.html
fast/dom/named-items-with-symbol-name.html
storage/domstorage/localstorage/named-items.html

Test different bindings objects with custom named setter
and getter handlers. Ensure that they handle Symbol properties
gracefully. Often times avoiding the string path.

  • dom/StaticNodeList.cpp:

(WebCore::StaticNodeList::namedItem):
(WebCore::StaticElementList::namedItem):
Better handle the empty string. It should not match an item.

  • bindings/js/JSDOMBinding.h:

(WebCore::propertyNameToString):
In cases where we would use this, we should have handled
Symbol properties.

(WebCore::propertyNameToAtomicString):
For Symbols, use the unique string. This should result
in no matches for a Symbol property.

  • bindings/js/JSDOMStringMapCustom.cpp:

(WebCore::JSDOMStringMap::getOwnPropertySlotDelegate):
(WebCore::JSDOMStringMap::deleteProperty):
(WebCore::JSDOMStringMap::putDelegate):

  • bindings/js/JSStorageCustom.cpp:

(WebCore::JSStorage::canGetItemsForName):
(WebCore::JSStorage::nameGetter):
(WebCore::JSStorage::deleteProperty):
(WebCore::JSStorage::putDelegate):

  • bindings/js/JSStyleSheetListCustom.cpp:

(WebCore::JSStyleSheetList::canGetItemsForName):
Treat Symbol properties as private properties. They just
go directly through to the Object, and avoid the string
getter/setter property path.

LayoutTests:

  • fast/dom/StyleSheet/stylesheet-symbol-names-expected.txt: Added.
  • fast/dom/StyleSheet/stylesheet-symbol-names.html: Added.
  • fast/dom/dataset-name-getter-symbols-expected.txt: Added.
  • fast/dom/dataset-name-getter-symbols.html: Added.
  • fast/dom/named-items-with-empty-name-expected.txt: Added.
  • fast/dom/named-items-with-empty-name.html: Added.
  • fast/dom/named-items-with-symbol-name-expected.txt: Added.
  • fast/dom/named-items-with-symbol-name.html: Added.
  • storage/domstorage/localstorage/named-items-expected.txt: Added.
  • storage/domstorage/localstorage/named-items.html: Added.
4:19 PM Changeset in webkit [183588] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

UI process sometimes crashes under _takeViewSnapshot when the window is off-screen
https://bugs.webkit.org/show_bug.cgi?id=144418
<rdar://problem/20740278>

Reviewed by Alexey Proskuryakov.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _takeViewSnapshot]):
Null-check the array before checking if it has any items.
If the window is off-screen, we can't snapshot it.

4:03 PM Changeset in webkit [183587] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac] Register with device picker whenever a page has <video>
https://bugs.webkit.org/show_bug.cgi?id=144408

Reviewed by Jer Noble.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::setPlaybackTarget): Drive-by fix: don't tell a client to play
to the target when it has not routes.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaState): Set RequiresPlaybackTargetMonitoring whenever the
element is <video> with a video track that does not block wireless playback.

4:02 PM Changeset in webkit [183586] by Simon Fraser
  • 3 edits
    6 adds in trunk

Allow testing of plug-ins that handle wheel events.
https://bugs.webkit.org/show_bug.cgi?id=144413

Reviewed by Tim Horton.

Source/WebKit2:

Allow the Test Netscape Plug-in to pretend to handle wheel events,
so layout tests can use it.

  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::NetscapePluginModule::determineQuirks):

LayoutTests:

Test the non-fast scrollable region with top content inset and header height, and with a plug-in.

  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/top-content-inset-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/top-content-inset-header-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/top-content-inset-header.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/top-content-inset.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/wheel-event-plugin-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/non-fast-region/wheel-event-plugin.html: Added.
3:56 PM Changeset in webkit [183585] by Yusuke Suzuki
  • 2 edits in trunk/Tools

[GTK] Add --enable-shared option to LLVM to build mesa
https://bugs.webkit.org/show_bug.cgi?id=144393

Reviewed by Martin Robinson.

The updated mesa requires the shared LLVM libraries.
To build mesa with LLVM in FTL build, this patch added --enable-shared option
to LLVM configure script. It will provide shared libraries in addition to static libraries.

  • gtk/jhbuild-optional.modules:
3:46 PM Changeset in webkit [183584] by Martin Robinson
  • 20 edits
    6 adds in trunk

[GTK] Add support for automatic hyphenation
https://bugs.webkit.org/show_bug.cgi?id=44478

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/FindHyphen.cmake: Added. A CMake module for finding libhyphen.
  • Source/cmake/OptionsGTK.cmake: Look for libhyphen and enable hyphenation if found.
  • Source/cmakeconfig.h.cmake: Pass through the whether libhyphen is enabled.

Source/WebCore:

No new tests. This patch unskips and updates results for existing hyphenation tests.

  • PlatformGTK.cmake: Add the libhypen implementation to the source list.
  • platform/gtk/GtkUtilities.cpp:

(WebCore::topLevelPath): Add this helper function taken from the test harness.
(WebCore::getWebKitBuildDirectory): Ditto.

  • platform/gtk/GtkUtilities.h: Add function declarations for the helper functions.
  • platform/text/Hyphenation.cpp: Surround this implementation with !USE(LIBHYPHEN), so that it can still be shared.
  • platform/text/gtk/HyphenationLibHyphen.cpp: Added.

(WebCore::extractLocaleFromDictionaryFilePath): Take in a dictionary filename and
determine the locale that it covers.
(WebCore::scanDirectoryForDicionaries): Look for all installed dictionaries as well
as ones in the JHBuild root for testing.
(WebCore::scanTestDictionariesDirectoryIfNecessary): Try to scan the dictionaries installed
in the JHBuild root.
(WebCore::availableLocales): Getter for global hash of installed dictionaries.
(WebCore::canHyphenate): Added libhyphen implementation.
(WebCore::HyphenationDictionary): Helper class that properly manages the memory of
an open libhyphen dictionary. This is useful so that they can be stored in an MRU
cache. This is a similar approach to the CoreFoundation implementation.
(WebCore::AtomicStringKeyedMRUCache<RefPtr<HyphenationDictionary>>::createValueForNullKey): MRU cache
helper.
(WebCore::AtomicStringKeyedMRUCache<RefPtr<HyphenationDictionary>>::createValueForKey): Ditto.
(WebCore::hyphenDictionaryCache): A cache for opened hyphenation dictionaries.
(WebCore::countLeadingSpaces): Count leading spaces, since WebCore often passes words with them.
(WebCore::lastHyphenLocation): Added libhyphen implementation.

Tools:

  • gtk/jhbuild.modules: Add a module for testing dictionaries, so that

all systems will use the same dictionaries for testing purposes.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip most hyphenation tests.
  • platform/gtk/fast/text/hyphenate-character-expected.png: Added.
  • platform/gtk/fast/text/hyphenate-character-expected.txt:
  • platform/gtk/fast/text/hyphenate-first-word-expected.png: Added.
  • platform/gtk/fast/text/hyphenate-first-word-expected.txt:
  • platform/gtk/fast/text/hyphenate-limit-before-after-expected.png:
  • platform/gtk/fast/text/hyphenate-limit-before-after-expected.txt:
  • platform/gtk/fast/text/hyphenate-limit-lines-expected.png:
  • platform/gtk/fast/text/hyphenate-limit-lines-expected.txt:
  • platform/gtk/fast/text/hyphenate-locale-expected.png: Added.
  • platform/gtk/fast/text/hyphenate-locale-expected.txt:
  • platform/gtk/fast/text/hyphens-expected.png: Added.
  • platform/gtk/fast/text/hyphens-expected.txt:
  • platform/gtk/fast/text/word-break-soft-hyphen-expected.png:
3:41 PM Changeset in webkit [183583] by jacob_nielsen@apple.com
  • 5 edits in trunk

Failure when building WebKit for appletvsimulator.
https://bugs.webkit.org/show_bug.cgi?id=144356

Reviewed by Alexey Proskuryakov.

Changes Makefile logic to check for "not OS X" rather than "is iOS" to
make TVOS and WatchOS behave correctly.

.:

  • Source/Makefile:

Tools:

  • Makefile:
  • WebKitTestRunner/Makefile:
3:32 PM Changeset in webkit [183582] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::fontWithFamily):

3:12 PM Changeset in webkit [183581] by achristensen@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix non-cygwin incremental builds on Windows.
https://bugs.webkit.org/show_bug.cgi?id=143264

Reviewed by Brent Fulgham.

  • generate-js-builtins:

Remove stale headers before calling os.rename to replace them.

3:00 PM Changeset in webkit [183580] by timothy@apple.com
  • 10 edits
    1 copy
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: Split Storage from Resources tab
https://bugs.webkit.org/show_bug.cgi?id=144404

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WebInspector.loaded):
(WebInspector.isTabTypeAllowed):
(WebInspector._tabContentViewForType):
(WebInspector._updateNewTabButtonState):
(WebInspector.showStorageTab):
(WebInspector._storageWasInspected):

  • UserInterface/Controllers/ApplicationCacheManager.js:

(WebInspector.ApplicationCacheManager.prototype.initialize):
(WebInspector.ApplicationCacheManager.prototype.get applicationCacheObjects):

  • UserInterface/Controllers/StorageManager.js:

(WebInspector.StorageManager.prototype.get domStorageObjects):
(WebInspector.StorageManager.prototype.get databases):
(WebInspector.StorageManager.prototype.get indexedDatabases):
(WebInspector.StorageManager.prototype.get cookieStorageObjects):

  • UserInterface/Images/Storage.svg: Added.
  • UserInterface/Main.html:
  • UserInterface/Views/DatabaseTableContentView.js:

(WebInspector.DatabaseTableContentView.prototype._queryFinished): Clear _dataGrid,
since it might have been allocated but still be empty. This avoids an exception in
updateLayout next time layout is updated.

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
(WebInspector.ResourceSidebarPanel.prototype._domStorageObjectWasAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._domStorageObjectWasInspected): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._databaseWasAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._databaseWasInspected): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._indexedDatabaseWasAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._cookieStorageObjectWasAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._frameManifestAdded): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._frameManifestRemoved): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._addStorageChild): Deleted.
(WebInspector.ResourceSidebarPanel.prototype._storageCleared): Deleted.

  • UserInterface/Views/ResourcesTabContentView.js:

(WebInspector.ResourcesTabContentView):
(WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):

  • UserInterface/Views/StorageSidebarPanel.js: Added.

(WebInspector.StorageSidebarPanel):
(WebInspector.StorageSidebarPanel.prototype.showDefaultContentView):
(WebInspector.StorageSidebarPanel.prototype.closed):
(WebInspector.StorageSidebarPanel.prototype._treeElementSelected):
(WebInspector.StorageSidebarPanel.prototype._domStorageObjectWasAdded):
(WebInspector.StorageSidebarPanel.prototype._addDOMStorageObject):
(WebInspector.StorageSidebarPanel.prototype._domStorageObjectWasInspected):
(WebInspector.StorageSidebarPanel.prototype._databaseWasAdded):
(WebInspector.StorageSidebarPanel.prototype._addDatabase):
(WebInspector.StorageSidebarPanel.prototype._databaseWasInspected):
(WebInspector.StorageSidebarPanel.prototype._indexedDatabaseWasAdded):
(WebInspector.StorageSidebarPanel.prototype._addIndexedDatabase):
(WebInspector.StorageSidebarPanel.prototype._cookieStorageObjectWasAdded):
(WebInspector.StorageSidebarPanel.prototype._addCookieStorageObject):
(WebInspector.StorageSidebarPanel.prototype._frameManifestAdded):
(WebInspector.StorageSidebarPanel.prototype._addFrameManifest):
(WebInspector.StorageSidebarPanel.prototype._frameManifestRemoved):
(WebInspector.StorageSidebarPanel.prototype._compareTreeElements):
(WebInspector.StorageSidebarPanel.prototype._addStorageChild):
(WebInspector.StorageSidebarPanel.prototype._storageCleared):

  • UserInterface/Views/StorageTabContentView.js: Copied from Source/WebInspectorUI/UserInterface/Views/ResourcesTabContentView.js.

(WebInspector.StorageTabContentView):
(WebInspector.StorageTabContentView.prototype.get type):
(WebInspector.StorageTabContentView.prototype.canShowRepresentedObject):

2:59 PM Changeset in webkit [183579] by timothy@apple.com
  • 60 edits
    50 deletes in trunk/Source/WebInspectorUI

Web Inspector: Remove Legacy images and styles
https://bugs.webkit.org/show_bug.cgi?id=144390

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/ImageUtilities.js:

(.generateImage):
(.generateImage.generateLegacyImage): Deleted.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector._updateToolbarHeight):

  • UserInterface/Base/Platform.js:
  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype._loadNewRecording):

  • UserInterface/Images/Legacy/BackArrow.svg: Removed.
  • UserInterface/Images/Legacy/Breakpoints.svg: Removed.
  • UserInterface/Images/Legacy/Close.svg: Removed.
  • UserInterface/Images/Legacy/CloseLarge.svg: Removed.
  • UserInterface/Images/Legacy/Colors.png: Removed.
  • UserInterface/Images/Legacy/Colors@2x.png: Removed.
  • UserInterface/Images/Legacy/ColorsLarge.png: Removed.
  • UserInterface/Images/Legacy/ColorsLarge@2x.png: Removed.
  • UserInterface/Images/Legacy/DockBottom.svg: Removed.
  • UserInterface/Images/Legacy/DockRight.svg: Removed.
  • UserInterface/Images/Legacy/DownloadArrow.svg: Removed.
  • UserInterface/Images/Legacy/Errors.svg: Removed.
  • UserInterface/Images/Legacy/ErrorsEnabled.svg: Removed.
  • UserInterface/Images/Legacy/FilterFieldGlyph.svg: Removed.
  • UserInterface/Images/Legacy/FolderGeneric.png: Removed.
  • UserInterface/Images/Legacy/FolderGeneric@2x.png: Removed.
  • UserInterface/Images/Legacy/ForwardArrow.svg: Removed.
  • UserInterface/Images/Legacy/Issues.svg: Removed.
  • UserInterface/Images/Legacy/IssuesEnabled.svg: Removed.
  • UserInterface/Images/Legacy/LayerBorders.svg: Removed.
  • UserInterface/Images/Legacy/Logs.svg: Removed.
  • UserInterface/Images/Legacy/NavigationItemCurleyBraces.svg: Removed.
  • UserInterface/Images/Legacy/NavigationItemTrash.svg: Removed.
  • UserInterface/Images/Legacy/Network.png: Removed.
  • UserInterface/Images/Legacy/Network@2x.png: Removed.
  • UserInterface/Images/Legacy/NetworkLarge.png: Removed.
  • UserInterface/Images/Legacy/NetworkLarge@2x.png: Removed.
  • UserInterface/Images/Legacy/Pause.svg: Removed.
  • UserInterface/Images/Legacy/Plus.svg: Removed.
  • UserInterface/Images/Legacy/Recording.png: Removed.
  • UserInterface/Images/Legacy/Recording@2x.png: Removed.
  • UserInterface/Images/Legacy/RecordingHovered.png: Removed.
  • UserInterface/Images/Legacy/RecordingHovered@2x.png: Removed.
  • UserInterface/Images/Legacy/RecordingStopped.png: Removed.
  • UserInterface/Images/Legacy/RecordingStopped@2x.png: Removed.
  • UserInterface/Images/Legacy/Reload.svg: Removed.
  • UserInterface/Images/Legacy/Resources.svg: Removed.
  • UserInterface/Images/Legacy/Resume.svg: Removed.
  • UserInterface/Images/Legacy/ShadowDOM.svg: Removed.
  • UserInterface/Images/Legacy/SortIndicatorDownArrow.svg: Removed.
  • UserInterface/Images/Legacy/SortIndicatorUpArrow.svg: Removed.
  • UserInterface/Images/Legacy/SplitToggleDown.svg: Removed.
  • UserInterface/Images/Legacy/SplitToggleUp.svg: Removed.
  • UserInterface/Images/Legacy/StepInto.svg: Removed.
  • UserInterface/Images/Legacy/StepOut.svg: Removed.
  • UserInterface/Images/Legacy/StepOver.svg: Removed.
  • UserInterface/Images/Legacy/Time.svg: Removed.
  • UserInterface/Images/Legacy/Undock.svg: Removed.
  • UserInterface/Images/Legacy/UpDownArrows.svg: Removed.
  • UserInterface/Images/Legacy/Weight.svg: Removed.
  • UserInterface/Views/ButtonNavigationItem.css:

(body.mac-platform.legacy .navigation-bar .item.button.text-only): Deleted.

  • UserInterface/Views/ButtonToolbarItem.css:

(body.mac-platform.legacy .toolbar .item.button > .label): Deleted.

  • UserInterface/Views/CSSStyleDeclarationSection.css:

(body.mac-platform.legacy .style-declaration-section): Deleted.
(body.mac-platform.legacy .style-declaration-section + .style-declaration-section): Deleted.
(body.mac-platform.legacy .style-declaration-section.last-in-group): Deleted.
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section): Deleted.
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:matches(.last-in-group, :last-child)): Deleted.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.css:

(body.mac-platform.legacy .sidebar > .panel.details.css-style > .content): Deleted.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser):

  • UserInterface/Views/ControlToolbarItem.css:

(body.mac-platform.legacy .toolbar .item.control): Deleted.
(body.mac-platform.legacy .toolbar .item.control:hover): Deleted.

  • UserInterface/Views/DOMTreeContentView.js:

(WebInspector.DOMTreeContentView):

  • UserInterface/Views/DOMTreeOutline.css:

(body.mac-platform.legacy .dom-tree-outline li.hovered:not(.selected) .selection): Deleted.
(body.mac-platform.legacy .dom-tree-outline li.elements-drag-over .selection): Deleted.
(body.mac-platform.legacy .dom-tree-outline:focus li.selected .selection): Deleted.

  • UserInterface/Views/DashboardContainerView.css:

(body.mac-platform.legacy .toolbar .dashboard-container): Deleted.
(body.mac-platform.legacy.window-inactive .toolbar .dashboard-container): Deleted.
(body.mac-platform.legacy.window-inactive .toolbar .dashboard): Deleted.
(body.mac-platform.legacy .dashboard-container .advance-arrow): Deleted.

  • UserInterface/Views/DataGrid.css:

(body.mac-platform.legacy .data-grid:focus tr.selected td:not(:last-child)): Deleted.
(body.mac-platform.legacy .data-grid:focus tr.selected): Deleted.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.get _generateSortIndicatorImagesIfNeeded):

  • UserInterface/Views/DatabaseTableContentView.js:

(WebInspector.DatabaseTableContentView):

  • UserInterface/Views/DebuggerDashboardView.js:

(WebInspector.DebuggerDashboardView):

  • UserInterface/Views/DebuggerSidebarPanel.css:

(body.mac-platform.legacy .sidebar > .panel.navigation.debugger > .content): Deleted.

  • UserInterface/Views/DebuggerSidebarPanel.js:
  • UserInterface/Views/DefaultDashboardView.css:

(body.mac-platform.legacy .toolbar .dashboard.default > .item): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .resourcesCount > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .logs > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .errors > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .errors.enabled > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .issues > img): Deleted.
(body.mac-platform.legacy .toolbar .dashboard.default > .issues.enabled > img): Deleted.

  • UserInterface/Views/DetailsSection.css:

(body.mac-platform.legacy .details-section): Deleted.
(body.mac-platform.legacy .details-section .details-section): Deleted.
(body.mac-platform.legacy .details-section .details-section:first-child): Deleted.
(body.mac-platform.legacy .details-section > .header): Deleted.
(body.mac-platform.legacy .details-section .details-section > .header): Deleted.
(body.mac-platform.legacy .details-section .details-section.collapsed > .header): Deleted.
(body.mac-platform.legacy .details-section:not(.collapsed) .data-grid.inline): Deleted.
(body.mac-platform.legacy .details-section.computed-style-properties:not(.collapsed) > .header): Deleted.
(body.mac-platform.legacy .details-section > .content > .group): Deleted.
(body.mac-platform.legacy .details-section > .content > .group:nth-child(even)): Deleted.
(body.mac-platform.legacy .details-section > .content > .group:matches(:nth-child(even), :last-child) > .row.simple:last-child > *): Deleted.
(body.mac-platform.legacy .details-section > .content > .group > .row:matches(.empty, .text)): Deleted.

  • UserInterface/Views/DividerNavigationItem.css:

(.navigation-bar .item.divider):
(body.mac-platform.legacy .navigation-bar .item.divider): Deleted.

  • UserInterface/Views/FilterBar.css:

(.filter-bar > input[type="search"]::-webkit-search-decoration):
(body.mac-platform.legacy .filter-bar): Deleted.
(body.mac-platform.legacy .filter-bar > input[type="search"]): Deleted.
(body.mac-platform.legacy .filter-bar > input[type="search"]::-webkit-search-decoration): Deleted.

  • UserInterface/Views/FindBanner.css:

(body.mac-platform.legacy .find-banner > input[type="search"]): Deleted.
(body.mac-platform.legacy .find-banner > button > .glyph): Deleted.
(body.mac-platform.legacy .find-banner > button.segmented.left > .glyph): Deleted.
(body.mac-platform.legacy .find-banner > button.segmented.right > .glyph): Deleted.
(body.mac-platform.legacy .find-banner > button.segmented): Deleted.

  • UserInterface/Views/FindBanner.js:

(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
(WebInspector.FindBanner):

  • UserInterface/Views/FolderIcon.css:

(.folder-icon .icon):
(body.mac-platform.legacy .folder-icon .icon): Deleted.

  • UserInterface/Views/HierarchicalPathComponent.css:

(body.mac-platform.legacy .hierarchical-path-component > .selector-arrows): Deleted.

  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:

(WebInspector.IndexedDatabaseObjectStoreContentView):

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.css:

(body.mac-platform.legacy .sidebar > .panel.details.layer-tree > .content): Deleted.
(body.mac-platform.legacy .panel.details.layer-tree .bottom-bar): Deleted.
(body.mac-platform.legacy .panel.details.layer-tree .bottom-bar > div): Deleted.
(body.mac-platform.legacy .layer-tree-popover): Deleted.

  • UserInterface/Views/LogContentView.css:

(body.mac-platform.legacy .search-bar.log-search-bar > input[type="search"]): Deleted.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView):

  • UserInterface/Views/Main.css:

(body.mac-platform.legacy:not(.docked)): Deleted.
(body.docked.bottom.mac-platform.legacy): Deleted.
(body.docked.right.mac-platform.legacy): Deleted.
(body.mac-platform.legacy #split-content-browser > .navigation-bar): Deleted.

  • UserInterface/Views/NavigationBar.css:

(.navigation-bar .item):
(body.mac-platform.legacy .navigation-bar): Deleted.
(body.mac-platform.legacy .navigation-bar .item): Deleted.

  • UserInterface/Views/NavigationSidebarPanel.css:

(body.mac-platform.legacy .sidebar > .panel.navigation > .content): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow.top): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation > .empty-content-placeholder): Deleted.
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline .item.selected): Deleted.
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline:focus .item.selected): Deleted.
(body.mac-platform.legacy.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected): Deleted.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
(WebInspector.NavigationSidebarPanel.prototype._generateDisclosureTrianglesIfNeeded):

  • UserInterface/Views/Popover.js:
  • UserInterface/Views/ProbeDetailsSidebarPanel.css:

(body.mac-platform.legacy .details-section.probe-set .options > .probe-clear-samples): Deleted.
(body.mac-platform.legacy .details-section.probe-set .options > .probe-remove): Deleted.
(body.mac-platform.legacy .details-section.probe-set .options > .probe-add): Deleted.

  • UserInterface/Views/QuickConsole.css:

(body.mac-platform.legacy .quick-console): Deleted.

  • UserInterface/Views/RadioButtonNavigationItem.css:

(.navigation-bar .item.radio.button.text-only.selected:active):
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only:hover): Deleted.
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected): Deleted.
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected:active): Deleted.

  • UserInterface/Views/RulesStyleDetailsPanel.css:

(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .label + .style-declaration-section): Deleted.
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule): Deleted.
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section): Deleted.
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule img): Deleted.

  • UserInterface/Views/ScopeBar.css:

(.scope-bar > li.selected:active):
(body.mac-platform.legacy .scope-bar > li): Deleted.
(body.mac-platform.legacy .scope-bar > li:hover): Deleted.
(body.mac-platform.legacy .scope-bar > li.selected): Deleted.
(body.mac-platform.legacy .scope-bar > li:active): Deleted.
(body.mac-platform.legacy .scope-bar > li.selected:active): Deleted.

  • UserInterface/Views/ScriptContentView.js:

(WebInspector.ScriptContentView):

  • UserInterface/Views/SearchBar.css:

(body.mac-platform.legacy .search-bar > input[type="search"]): Deleted.

  • UserInterface/Views/SearchSidebarPanel.css:

(.sidebar > .panel.navigation.search > .search-bar > input[type="search"]):
(body.mac-platform.legacy .sidebar > .panel.navigation.search > :matches(.content, .empty-content-placeholder)): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.search > .search-bar): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.search > .search-bar > input[type="search"]): Deleted.

  • UserInterface/Views/Sidebar.css:

(body.window-inactive .sidebar.right):
(body.mac-platform.legacy .sidebar): Deleted.
(body.mac-platform.legacy.window-inactive .sidebar): Deleted.
(body.mac-platform.legacy .sidebar.right): Deleted.

  • UserInterface/Views/TextContentView.js:

(WebInspector.TextContentView):

  • UserInterface/Views/TextResourceContentView.js:

(WebInspector.TextResourceContentView):

  • UserInterface/Views/TimelineDataGrid.css:

(body.mac-platform.legacy .data-grid.timeline > .navigation-bar-container > .navigation-bar): Deleted.

  • UserInterface/Views/TimelineIcons.css:

(body.mac-platform.legacy .network-icon .icon): Deleted.
(body.mac-platform.legacy .network-icon.large .icon): Deleted.
(body.mac-platform.legacy .colors-icon .icon): Deleted.
(body.mac-platform.legacy .colors-icon.large .icon): Deleted.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):

  • UserInterface/Views/TimelineRuler.css:

(body.mac-platform.legacy .timeline-ruler > .header): Deleted.
(body.mac-platform.legacy .timeline-ruler > .selection-drag): Deleted.
(body.mac-platform.legacy .timeline-ruler > .selection-handle): Deleted.

  • UserInterface/Views/TimelineSidebarPanel.css:

(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording:hover): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.forced): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording.forced): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-status): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timelines): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timeline-events): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content .close-button): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > :matches(.content, .empty-content-placeholder)): Deleted.
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .content .item > .status > .status-button): Deleted.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):

  • UserInterface/Views/Toolbar.css:

(body.mac-platform:not(.docked) .toolbar):
(body.mac-platform:not(.legacy, .docked) .toolbar): Deleted.
(body.mac-platform.legacy .toolbar): Deleted.
(body.mac-platform.legacy.docked .toolbar): Deleted.
(body.mac-platform.legacy:not(.docked) .toolbar .item.button > .label): Deleted.
(body.mac-platform.legacy.window-inactive .toolbar): Deleted.

  • UserInterface/Views/TreeElementStatusButton.css:

(body.mac-platform.legacy .item > .status > .status-button > svg .filled): Deleted.
(body.mac-platform.legacy .item > .status > .status-button > svg .stroked): Deleted.

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

Some media tests assert after r183096
https://bugs.webkit.org/show_bug.cgi?id=144098

Reviewed by Brent Fulgham.

Never assert when a MediaPlaybackTargetClient client calls one of the methods on Document
after it has been unregistered. A media element unregisters itself when it is removed from the
document, but scripts can still run and modify state that results in a call to
playbackTargetPickerClientStateDidChange. Remove the asserts instead of adding checks to
the various call sites.

  • dom/Document.cpp:

(WebCore::Document::showPlaybackTargetPicker): Don't assert if the client has already
been unregistered.
(WebCore::Document::playbackTargetPickerClientStateDidChange): Ditto.

2:43 PM Changeset in webkit [183577] by Andres Gomez
  • 133 edits in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Optimize SVG images
https://bugs.webkit.org/show_bug.cgi?id=143476

SVG images optimized with a combination of sed replacements and
the usage of the scour tool (http://www.codedread.com/scour/).

Also, modified the spelling of the license word to use the US one
in the copyright files.

Reviewed by Martin Robinson.

  • UserInterface/Images/gtk/BackArrow.svg:
  • UserInterface/Images/gtk/BottomUpTree.svg:
  • UserInterface/Images/gtk/BreakpointActionAdd.svg:
  • UserInterface/Images/gtk/BreakpointActionRemove.svg:
  • UserInterface/Images/gtk/BreakpointButton.svg:
  • UserInterface/Images/gtk/BreakpointInactiveButton.svg:
  • UserInterface/Images/gtk/Breakpoints.svg:
  • UserInterface/Images/gtk/COPYING:
  • UserInterface/Images/gtk/COPYING_CCBYSA3:
  • UserInterface/Images/gtk/Checkers.svg:
  • UserInterface/Images/gtk/Circle.svg:
  • UserInterface/Images/gtk/Close.svg:
  • UserInterface/Images/gtk/CloseLarge.svg:
  • UserInterface/Images/gtk/CloseWhite.svg:
  • UserInterface/Images/gtk/ContentFlow.svg:
  • UserInterface/Images/gtk/Crosshair.svg:
  • UserInterface/Images/gtk/DOMCharacterData.svg:
  • UserInterface/Images/gtk/DOMComment.svg:
  • UserInterface/Images/gtk/DOMDocument.svg:
  • UserInterface/Images/gtk/DOMDocumentType.svg:
  • UserInterface/Images/gtk/DOMElement.svg:
  • UserInterface/Images/gtk/DOMNode.svg:
  • UserInterface/Images/gtk/DOMTextNode.svg:
  • UserInterface/Images/gtk/DOMTree.svg:
  • UserInterface/Images/gtk/DisclosureTriangleSmallClosed.svg:
  • UserInterface/Images/gtk/DisclosureTriangleSmallOpen.svg:
  • UserInterface/Images/gtk/DisclosureTriangleTinyClosed.svg:
  • UserInterface/Images/gtk/DisclosureTriangleTinyOpen.svg:
  • UserInterface/Images/gtk/DockBottom.svg:
  • UserInterface/Images/gtk/DockRight.svg:
  • UserInterface/Images/gtk/DownloadArrow.svg:
  • UserInterface/Images/gtk/Error.svg:
  • UserInterface/Images/gtk/Errors.svg:
  • UserInterface/Images/gtk/ErrorsEnabled.svg:
  • UserInterface/Images/gtk/EventListener.svg:
  • UserInterface/Images/gtk/Exception.svg:
  • UserInterface/Images/gtk/Eye.svg:
  • UserInterface/Images/gtk/FilterFieldGlyph.svg:
  • UserInterface/Images/gtk/ForwardArrow.svg:
  • UserInterface/Images/gtk/Function.svg:
  • UserInterface/Images/gtk/GoToArrow.svg:
  • UserInterface/Images/gtk/HierarchicalNavigationItemChevron.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner1.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner10.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner11.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner12.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner2.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner3.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner4.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner5.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner6.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner7.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner8.svg:
  • UserInterface/Images/gtk/IndeterminateProgressSpinner9.svg:
  • UserInterface/Images/gtk/Issues.svg:
  • UserInterface/Images/gtk/IssuesEnabled.svg:
  • UserInterface/Images/gtk/LayerBorders.svg:
  • UserInterface/Images/gtk/Locked.svg:
  • UserInterface/Images/gtk/Logs.svg:
  • UserInterface/Images/gtk/Native.svg:
  • UserInterface/Images/gtk/NavigationItemAngleBrackets.svg:
  • UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg:
  • UserInterface/Images/gtk/NavigationItemBug.svg:
  • UserInterface/Images/gtk/NavigationItemCurleyBraces.svg:
  • UserInterface/Images/gtk/NavigationItemFile.svg:
  • UserInterface/Images/gtk/NavigationItemLayers.svg:
  • UserInterface/Images/gtk/NavigationItemLog.svg:
  • UserInterface/Images/gtk/NavigationItemProbes.svg:
  • UserInterface/Images/gtk/NavigationItemStopwatch.svg:
  • UserInterface/Images/gtk/NavigationItemStorage.svg:
  • UserInterface/Images/gtk/NavigationItemTrash.svg:
  • UserInterface/Images/gtk/NavigationItemTypes.svg:
  • UserInterface/Images/gtk/NavigationItemVariable.svg:
  • UserInterface/Images/gtk/PaintFlashing.svg:
  • UserInterface/Images/gtk/Pause.svg:
  • UserInterface/Images/gtk/PausedBreakpoint.svg:
  • UserInterface/Images/gtk/Percent.svg:
  • UserInterface/Images/gtk/Plus.svg:
  • UserInterface/Images/gtk/PseudoElement.svg:
  • UserInterface/Images/gtk/Record.svg:
  • UserInterface/Images/gtk/Reflection.svg:
  • UserInterface/Images/gtk/Reload.svg:
  • UserInterface/Images/gtk/ReloadFull.svg:
  • UserInterface/Images/gtk/ReplayPauseButton.svg:
  • UserInterface/Images/gtk/ReplayPlayButton.svg:
  • UserInterface/Images/gtk/ReplayRecordingButton.svg:
  • UserInterface/Images/gtk/Request.svg:
  • UserInterface/Images/gtk/Resources.svg:
  • UserInterface/Images/gtk/Response.svg:
  • UserInterface/Images/gtk/ResultLine.svg:
  • UserInterface/Images/gtk/Resume.svg:
  • UserInterface/Images/gtk/ShadowDOM.svg:
  • UserInterface/Images/gtk/SortIndicatorDownArrow.svg:
  • UserInterface/Images/gtk/SortIndicatorUpArrow.svg:
  • UserInterface/Images/gtk/SourceCode.svg:
  • UserInterface/Images/gtk/SplitToggleDown.svg:
  • UserInterface/Images/gtk/SplitToggleUp.svg:
  • UserInterface/Images/gtk/StepInto.svg:
  • UserInterface/Images/gtk/StepOut.svg:
  • UserInterface/Images/gtk/StepOver.svg:
  • UserInterface/Images/gtk/Stop.svg:
  • UserInterface/Images/gtk/StyleRuleAuthor.svg:
  • UserInterface/Images/gtk/StyleRuleInherited.svg:
  • UserInterface/Images/gtk/StyleRuleInheritedElement.svg:
  • UserInterface/Images/gtk/StyleRuleInspector.svg:
  • UserInterface/Images/gtk/StyleRuleUser.svg:
  • UserInterface/Images/gtk/StyleRuleUserAgent.svg:
  • UserInterface/Images/gtk/Time.svg:
  • UserInterface/Images/gtk/TimelineRecordAnimation.svg:
  • UserInterface/Images/gtk/TimelineRecordConsoleProfile.svg:
  • UserInterface/Images/gtk/TimelineRecordEvent.svg:
  • UserInterface/Images/gtk/TimelineRecordLayout.svg:
  • UserInterface/Images/gtk/TimelineRecordPaint.svg:
  • UserInterface/Images/gtk/TimelineRecordProbeSampled.svg:
  • UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg:
  • UserInterface/Images/gtk/TimelineRecordStyle.svg:
  • UserInterface/Images/gtk/TimelineRecordTimer.svg:
  • UserInterface/Images/gtk/TypeBoolean.svg:
  • UserInterface/Images/gtk/TypeNull.svg:
  • UserInterface/Images/gtk/TypeNumber.svg:
  • UserInterface/Images/gtk/TypeObject.svg:
  • UserInterface/Images/gtk/TypeRegex.svg:
  • UserInterface/Images/gtk/TypeString.svg:
  • UserInterface/Images/gtk/TypeSymbol.svg:
  • UserInterface/Images/gtk/TypeUndefined.svg:
  • UserInterface/Images/gtk/Undock.svg:
  • UserInterface/Images/gtk/UpDownArrows.svg:
  • UserInterface/Images/gtk/UserInputPrompt.svg:
  • UserInterface/Images/gtk/UserInputPromptPrevious.svg:
  • UserInterface/Images/gtk/UserInputResult.svg:
  • UserInterface/Images/gtk/Warning.svg:
  • UserInterface/Images/gtk/Weight.svg:
2:32 PM Changeset in webkit [183576] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Simple line layout: Web process spins endlessly below layoutSimpleLines.
https://bugs.webkit.org/show_bug.cgi?id=144403
rdar://problem/20742783

Reviewed by Antti Koivisto.

When a text fragment overlaps multiple renderes and it does not fit the current line,
we revert the text fragment iterator position so that the overlapping content
gets processed again for the next line.
However, TextFragmentIterator::revertToFragment() was reverting too much and
we started processing old content all over again -> infinite loop.

This patch ensures that text fragment iterator is reverted to the right position.

Source/WebCore:

Test: fast/text/simple-line-layout-wrapping-multiple-renderers-hang.html

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::createLineRuns):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::revertToEndOfFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::revertToFragment): Deleted.

  • rendering/SimpleLineLayoutTextFragmentIterator.h:

LayoutTests:

  • fast/text/simple-line-layout-wrapping-multiple-renderers-hang-expected.html: Added.
  • fast/text/simple-line-layout-wrapping-multiple-renderers-hang.html: Added.
2:27 PM Changeset in webkit [183575] by fpizlo@apple.com
  • 12 edits
    1 add in trunk/Source

Source/JavaScriptCore:
JSTypeInfo should have an inline type flag to indicate of getCallData() has been overridden
https://bugs.webkit.org/show_bug.cgi?id=144397

Reviewed by Andreas Kling.

Add the flag to JSTypeInfo. It's an inline flag so that it's fast to query. Slap the flag on
callback objects and internal functions. Modify the TypeOf operation to use this flag to avoid
making a getCallData() call if it isn't necessary.

  • API/JSCallbackObject.h:
  • runtime/InternalFunction.h:
  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::typeOfShouldCallGetCallData):

  • runtime/Operations.cpp:

(JSC::jsTypeStringForValue):

  • tests/stress/type-of-functions-and-objects.js: Added.

(foo):
(bar):
(baz):
(fuzz):
(expect):
(test):

Source/WebCore:
JSTypeInfo should have an inline type flag to indicate of getCallData() has been overridden
https://bugs.webkit.org/show_bug.cgi?id=144397

Reviewed by Andreas Kling.

If you override getCallData() and you want to be called a "function", then you need to use the
new TypeOfShouldCallGetCallData flag.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bridge/objc/objc_runtime.h:
  • bridge/runtime_method.h:
  • bridge/runtime_object.h:

Source/WebKit2:
JSTypeInfo should have an inline type flag to indicate if getCallData() has been overridden
https://bugs.webkit.org/show_bug.cgi?id=144397

Reviewed by Andreas Kling.

If you override getCallData() and you want to be called a "function", then you need to use the
new TypeOfShouldCallGetCallData flag.

  • WebProcess/Plugins/Netscape/JSNPObject.h:
1:50 PM Changeset in webkit [183574] by bshafiei@apple.com
  • 6 edits
    2 deletes in tags/Safari-601.1.31/Source/WebCore

Merged r183568.

1:27 PM Changeset in webkit [183573] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

Mark newly added http/tests/cache/main-resource-304-reload.html failing on Windows.

  • platform/win/TestExpectations:
12:55 PM Changeset in webkit [183572] by ap@apple.com
  • 3 edits in trunk/Tools

Use-after-free when invalidating WKPageForceRepaint callback
https://bugs.webkit.org/show_bug.cgi?id=144401
rdar://problem/20741111

Reviewed by Tim Horton.

  • WebKitTestRunner/TestController.h: (WTR::TestController::isCurrentInvocation): Added.
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::forceRepaintDoneCallback):

Don't do anything on error, because the context may be a stale pointer now.

12:53 PM Changeset in webkit [183571] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.31/Source/WebCore

Merged r183561.

12:48 PM Changeset in webkit [183570] by ggaren@apple.com
  • 31 edits
    1 delete in trunk

It shouldn't take 1846 lines of code and 5 FIXMEs to sort an array.
https://bugs.webkit.org/show_bug.cgi?id=144013

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch implements Array.prototype.sort in JavaScript, removing the
C++ implementations. It is simpler and less error-prone to express our
operations in JavaScript, which provides memory safety, exception safety,
and recursion safety.

The performance result is mixed, but net positive in my opinion. It's
difficult to enumerate all the results, since we used to have so many
different sorting modes, and there are lots of different data patterns
across which you might want to measure sorting. Suffice it to say:

(*) The benchmarks we track are faster or unchanged.

(*) Sorting random input using a comparator -- which we think is
common -- is 3X faster.

(*) Sorting random input in a non-array object -- which jQuery does
-- is 4X faster.

(*) Sorting random input in a compact array of integers using a
trivial pattern-matchable comparator is 2X *slower*.

  • builtins/Array.prototype.js:

(sort.min):
(sort.stringComparator):
(sort.compactSparse): Special case compaction for sparse arrays because
we don't want to hang when sorting new Array(BIG).

(sort.compact):
(sort.merge):
(sort.mergeSort): Use merge sort because it's a reasonably efficient
stable sort. We have evidence that some sites depend on stable sort,
even though the ES6 spec does not mandate it. (See
<http://trac.webkit.org/changeset/33967>.)

This is a textbook implementation of merge sort with three optimizations:

(1) Use iteration instead of recursion;

(2) Use array subscripting instead of array copying in order to
create logical sub-lists without creating physical sub-lists;

(3) Swap src and dst at each iteration instead of copying src into
dst, and only copy src into the subject array at the end if src is
not the subject array.

(sort.inflate):
(sort.comparatorSort):
(sort): Sort in JavaScript for the win.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createExecutableInternal): Allow non-private
names so we can use helper functions.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::isNumericCompareFunction): Deleted.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::setIsNumericCompareFunction): Deleted.
(JSC::UnlinkedCodeBlock::isNumericCompareFunction): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::setIsNumericCompareFunction): Deleted.

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionNode::emitBytecode): We don't do this special casing based
on pattern matching anymore. This was mainly an optimization to avoid
the overhead of calling from C++ to JS, which we now avoid by
sorting in JS.

  • heap/Heap.cpp:

(JSC::Heap::markRoots):
(JSC::Heap::pushTempSortVector): Deleted.
(JSC::Heap::popTempSortVector): Deleted.
(JSC::Heap::visitTempSortVectors): Deleted.

  • heap/Heap.h: We don't have temp sort vectors anymore because we sort

in JavaScript using a normal JavaScript array for our temporary storage.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner): Allow capturing so we can use
helper functions.

  • runtime/ArrayPrototype.cpp:

(JSC::isNumericCompareFunction): Deleted.
(JSC::attemptFastSort): Deleted.
(JSC::performSlowSort): Deleted.
(JSC::arrayProtoFuncSort): Deleted.

  • runtime/CommonIdentifiers.h: New strings used by sort.
  • runtime/JSArray.cpp:

(JSC::compareNumbersForQSortWithInt32): Deleted.
(JSC::compareNumbersForQSortWithDouble): Deleted.
(JSC::compareNumbersForQSort): Deleted.
(JSC::compareByStringPairForQSort): Deleted.
(JSC::JSArray::sortNumericVector): Deleted.
(JSC::JSArray::sortNumeric): Deleted.
(JSC::ContiguousTypeAccessor::getAsValue): Deleted.
(JSC::ContiguousTypeAccessor::setWithValue): Deleted.
(JSC::ContiguousTypeAccessor::replaceDataReference): Deleted.
(JSC::ContiguousTypeAccessor<ArrayWithDouble>::getAsValue): Deleted.
(JSC::ContiguousTypeAccessor<ArrayWithDouble>::setWithValue): Deleted.
(JSC::ContiguousTypeAccessor<ArrayWithDouble>::replaceDataReference): Deleted.
(JSC::JSArray::sortCompactedVector): Deleted.
(JSC::JSArray::sort): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::get_less): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::set_less): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::get_greater): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::set_greater): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::get_balance_factor): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::set_balance_factor): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::compare_key_key): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::compare_key_node): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::compare_node_node): Deleted.
(JSC::AVLTreeAbstractorForArrayCompare::null): Deleted.
(JSC::JSArray::sortVector): Deleted.
(JSC::JSArray::compactForSorting): Deleted.

  • runtime/JSArray.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation): Provide some builtins used
by sort.

Source/WTF:

Remove this custom tree implementation because it is unused. (It was
previously used to achieve a stable array sort in certain cases.)

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/AVLTree.h: Removed.
  • wtf/CMakeLists.txt:

LayoutTests:

  • js/script-tests/array-holes.js:
  • js/array-holes-expected.txt: This result now matches Firefox. We see

'peekaboo', which is a prototype property, rather than a hole, because
sorting uses Get?, which sees prototype properties.

The ES6 spec says that sorting should use Get?, so this new result
matches the spec a little better -- although the spec also says that the
result of sorting is undefined in this case because of the presence of
an indexed property in the prototype chain.

  • js/dom/array-prototype-properties-expected.txt: Updated error message

to match other array prototype error messages.

  • js/comparefn-sort-stability-expected.txt:
  • js/script-tests/comparefn-sort-stability.js: Made this test bigger in

order to demonstrate that Firefox and Safari use a stable sort, and
Chrome does not.

  • js/script-tests/array-sort-sparse.js:
  • js/array-sort-sparse-expected.txt: Added some tests for things I got

wrong in this patch.

  • script-tests/sort-with-side-effecting-comparisons.js: Made this test

shorter so that it wouldn't hang debug builds. This test is O(N2). It
used to terminate sooner because our sort implementation would (sometimes)
terminate sooner if you shrank the array. Our new sort does not accept
intermediate updates to the array's length, matching Firefox. I spoke
to Gavin and Alexey about this, and we think that going out of our way
to honor length changes mid-sort doesn't make much sense because it's
not possible to honor the general case of value changes in a predictable
way.

12:45 PM Changeset in webkit [183569] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.31/Source/JavaScriptCore

Merged r183526. rdar://problem/20717863

12:42 PM Changeset in webkit [183568] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk/Source/WebCore

Unreviewed, rolling out r183553 and r183561.
https://bugs.webkit.org/show_bug.cgi?id=144406

broke the iOS build (Requested by thorton on #webkit).

Reverted changesets:

"Switch QuickLook soft-linking to use
QuickLookSoftLink.{h,mm}"
https://bugs.webkit.org/show_bug.cgi?id=144362
http://trac.webkit.org/changeset/183553

"Unreviewed iOS build fix after r183553: fix declaration of
QLPreviewScheme"
http://trac.webkit.org/changeset/183561

12:32 PM Changeset in webkit [183567] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style: Don't complain about returning value from Objective-C method call in header
<http://webkit.org/b/144395>

Reviewed by Andy Estes.

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

(check_spacing): Update regex so 'return' is ignored if it
precedes the whitespace and bracket. Change category name to
'whitespace/brackets'. Add period to error message.
(CppChecker): Add 'whitespace/brackets' as a category.

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

(ErrorCollector.call): Replace 'STYLE_CATEGORIES' with
'CppChecker.categories' since that's where the list lives now.
(CppStyleTest.test_spacing_before_brackets): Add tests for
'whitespace/brackets' issues and non-issues.

12:23 PM Changeset in webkit [183566] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix WinCairo bot.

  • Scripts/webkitdirs.pm:

(determinePassedConfiguration):
WinCairo bot doesn't use cygwin, but it needs Release_WinCairo for its configuration.

12:19 PM Changeset in webkit [183565] by timothy@apple.com
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Navigation bar often looses last button when full
https://bugs.webkit.org/show_bug.cgi?id=144385

Added helpers to get the subpixel width and height of an element.
Adopt them in the NavigationBar layout methods to get precise widths
that don't accumulate rounding errors which lead to items overflowing.

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Utilities.js:

(Element.prototype.realOffsetWidth): Added.
(Element.prototype.realOffsetHeight): Added.

  • UserInterface/Views/HierarchicalPathNavigationItem.js:

(WebInspector.HierarchicalPathNavigationItem.prototype.updateLayout):

  • UserInterface/Views/NavigationBar.js:

(WebInspector.NavigationBar.prototype.updateLayout):
(WebInspector.NavigationBar.prototype._calculateMinimumWidth):

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar.prototype._handleMouseMoved):

  • UserInterface/Views/Toolbar.js:

(WebInspector.Toolbar.prototype.customUpdateLayout.isOverflowingToolbar):
(WebInspector.Toolbar.prototype.customUpdateLayout):

12:00 PM Changeset in webkit [183564] by mark.lam@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Safari WebKit crash when loading Google Spreadsheet.
https://bugs.webkit.org/show_bug.cgi?id=144020

Reviewed by Filip Pizlo.

The bug is that the object allocation sinking phase did not account for a case
where a property of a sunken object is only initialized on one path and not
another. As a result, on the path where the property is not initialized, we'll
encounter an Upsilon with a BottomValue (which is not allowed by definition).

The fix is to use a JSConstant(undefined) as the bottom value instead (of
BottomValue). If the property is uninitialized, it should still be accessible
and have the value undefined.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::promoteSunkenFields):

  • tests/stress/object-allocation-sinking-with-uninitialized-property-on-one-path.js: Added.

(foo):
(foo2):

11:51 AM Changeset in webkit [183563] by Antti Koivisto
  • 26 edits in trunk/Source

ResourceLoadPriority should be enum class
https://bugs.webkit.org/show_bug.cgi?id=144326

Reviewed by Darin Adler.

Source/WebCore:

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLink):

  • loader/ResourceLoadScheduler.cpp:

(WebCore::ResourceLoadScheduler::scheduleLoad):
(WebCore::ResourceLoadScheduler::servePendingRequests):
(WebCore::ResourceLoadScheduler::HostInformation::~HostInformation):
(WebCore::ResourceLoadScheduler::HostInformation::priorityToIndex):
(WebCore::ResourceLoadScheduler::HostInformation::schedule):
(WebCore::ResourceLoadScheduler::HostInformation::remove):
(WebCore::ResourceLoadScheduler::HostInformation::hasRequests):
(WebCore::ResourceLoadScheduler::HostInformation::limitRequests):

  • loader/ResourceLoadScheduler.h:

(WebCore::ResourceLoadScheduler::HostInformation::requestsPending):

Modernize ResourceLoadScheduler code a bit while switching to enum class.

  • loader/cache/CachedResource.cpp:

(WebCore::defaultPriorityForResourceType):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::startLoading):

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

(WebCore::WebCoreAVFResourceLoader::startLoading):

  • platform/network/ResourceLoadPriority.h:

(WebCore::operator++):
(WebCore::operator--):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::adopt):
(WebCore::ResourceRequestBase::copyData):
(WebCore::ResourceRequestBase::cachePolicy):
(WebCore::ResourceRequestBase::priority):
(WebCore::ResourceRequestBase::setPriority):

  • platform/network/ResourceRequestBase.h:

Remove bitfields. ResourceRequests are not present in large enough numbers to require this kind of optimization.
Use modern initialization syntax.

(WebCore::ResourceRequestBase::ResourceRequestBase):
(WebCore::CrossThreadResourceRequestDataBase::CrossThreadResourceRequestDataBase): Deleted.

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::initializeMaximumHTTPConnectionCountPerHost):
(WebCore::initializeHTTPConnectionSettingsOnStartup):

  • platform/network/cf/ResourceRequestCFNet.h:

(WebCore::toResourceLoadPriority):
(WebCore::toPlatformRequestPriority):

  • platform/network/soup/ResourceRequest.h:

(WebCore::toSoupMessagePriority):

  • testing/Internals.cpp:

(WebCore::stringToResourceLoadPriority):

Source/WebKit2:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::servePendingRequests): Deleted.

Remove this unused message.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeStoreDecision):
(WebKit::NetworkCache::Cache::retrieve):

  • NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm:

(WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings):

  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::servePendingRequests):

  • WebProcess/Network/WebResourceLoadScheduler.h:
11:31 AM Changeset in webkit [183562] by mmaxfield@apple.com
  • 22 edits in trunk

[OS X] Use CTFontCreateForCSS instead of doing font search ourselves
https://bugs.webkit.org/show_bug.cgi?id=132159

Reviewed by Darin Adler.

Source/WebCore:

On platforms that support it, delegate font selection logic to the platform. Currently, this is
only supported on Mac, using CTFontCreateForCSS().

This also changes the mechanism that enforces our font whitelist in our tests. We used to
swizzle the implementations of NSFontManager methods. This patch migrates to using a whitelist of
font family names instead.

Note that this patch is a work in progress, because it makes the following tests fail:
fast/css/font-weight-1.html
fast/forms/validation-message-appearance.html
fast/forms/select/optgroup-rendering.html

No new tests, because there is no behavior change.

  • platform/graphics/FontCache.h: Add a function to set the whitlist.
  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::fontWhitelist):
(WebCore::FontCache::setFontWhitelist):
(WebCore::toAppKitFontWeight):
(WebCore::toCoreTextFontWeight):
(WebCore::fontWithFamily): If ENABLE(PLATFORM_FONT_LOOKUP), use CTFontCreateForCSS().
(WebCore::FontCache::createFontPlatformData):

  • platform/spi/cocoa/CoreTextSPI.h: Add signature for CTFontCreateForCSS().

Source/WebKit/mac:

Add SPI to set the font whitelist.

  • WebView/WebView.mm:

(+[WebView _setFontWhitelist:]):

  • WebView/WebViewPrivate.h:

Source/WebKit2:

Add SPI to set the font whitelist.

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetFontWhitelist):

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setFontWhitelist):

  • UIProcess/WebProcessPool.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

  • wtf/Platform.h:

Opt-in using ENABLE(PLATFORM_FONT_LOOKUP)

Tools:

Make DumpRenderTree and WebKitTestRunner use the new font whitelist instead of
swizzling NSFontManager methods. This is predicated on ENABLE(PLATFORM_FONT_LOOKUP).

  • DumpRenderTree/mac/DumpRenderTree.mm:

(fontWhitelist):
(adjustFonts):
(createWebViewAndOffscreenWindow):

  • WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:

(WTR::activateFonts):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::allowedFontFamilySet):
(WTR::systemHiddenFontFamilySet):
(WTR::generateWhitelist):
(WTR::TestController::platformInitializeContext):

11:13 AM Changeset in webkit [183561] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed iOS build fix after r183553: fix declaration of QLPreviewScheme

  • platform/ios/QuickLookSoftLink.mm:
11:05 AM Changeset in webkit [183560] by eric.carlson@apple.com
  • 6 edits in trunk/Source/WebCore

[Mac] Use new device picker menu API
https://bugs.webkit.org/show_bug.cgi?id=144392

Reviewed by Jer Noble.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::showPlaybackTargetPicker): Pass the route state to the picker.

  • platform/graphics/MediaPlaybackTargetPicker.h:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::MediaPlaybackTargetPickerMac): m_deviceChangeTimer -> m_pendingActionTimer.
(WebCore::MediaPlaybackTargetPickerMac::~MediaPlaybackTargetPickerMac): Ditto.
(WebCore::MediaPlaybackTargetPickerMac::pendingActionTimerFired): Renamed from
outputeDeviceAvailabilityChangedTimerFired.
(WebCore::MediaPlaybackTargetPickerMac::availableDevicesDidChange): Use addPendingAction.
(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker): Call new picker API if it is
available. New API returns true if a target is chosen, so call currentDeviceDidChange in that case.
(WebCore::MediaPlaybackTargetPickerMac::addPendingAction): New.
(WebCore::MediaPlaybackTargetPickerMac::currentDeviceDidChange): Make asynchronous because it
can now be called from showPlaybackTargetPicker.
(WebCore::MediaPlaybackTargetPickerMac::outputeDeviceAvailabilityChangedTimerFired): Renamed
pendingActionTimerFired.

  • platform/spi/cocoa/AVKitSPI.h: Add new SPI.
10:44 AM Changeset in webkit [183559] by Yusuke Suzuki
  • 6 edits
    1 add in trunk/Source

REGRESSION (r183373): ASSERT failed in wtf/SHA1.h
https://bugs.webkit.org/show_bug.cgi?id=144257

Reviewed by Darin Adler.

Source/JavaScriptCore:

SHA1 is used to calculate CodeBlockHash.
To calculate hash value, we pass the source code UTF-8 CString to SHA1::addBytes.
However, the source code can contain null character.
So when performing strlen on the source code's CString, it returns the incorrect length.
In SHA1::addBytes, there's assertion input.length() == strlen(string) and it fails.

In the template-literal-syntax.js, we perform eval with the script contains "\0".
As the result, strlen(string) accidentally shortened by the contained "\0", and assertion fails.

CString will be changed not to contain a null-character[1]. However, inserting the assertion here
is not correct. Because

  1. If CString should not contain a null character, this should be asserted in CString side instead of SHA1::addBytes.
  2. If CString can contain a null character, this assertion becomes incorrect.

So this patch just drops the assertion.

In the current implementation, we once convert the entire source code to the newly allocated
UTF-8 string and pass it to the SHA1 processing. However, this is memory consuming.
Ideally, we should stream the decoded bytes into the SHA1 processing iteratively.
We'll implement it in the separate patch[2].

[1]: https://bugs.webkit.org/show_bug.cgi?id=144339
[2]: https://bugs.webkit.org/show_bug.cgi?id=144263

  • tests/stress/eval-script-contains-null-character.js: Added.

(shouldBe):
(test):

  • tests/stress/template-literal-line-terminators.js:
  • tests/stress/template-literal-syntax.js:
  • tests/stress/template-literal.js:

Source/WTF:

  • wtf/SHA1.h:

(WTF::SHA1::addBytes):

10:42 AM Changeset in webkit [183558] by ap@apple.com
  • 2 edits in trunk/Tools

fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=144155

Reviewed by Andreas Kling.

  • WebKitTestRunner/TestController.cpp: (WTR::TestController::resetStateToConsistentValues):

Make sure that test window is "visible" before each test. While there is no concrete
evidence that this is the problem indeed, the behavior is consistent with what would
happen for an invisible window. Also, WKTR obviously needs to do this to protect
against potential buggy tests that hide the window and don't show it.

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

Evict IsEnvironmentRecord from inline type flags
https://bugs.webkit.org/show_bug.cgi?id=144398

Reviewed by Mark Lam and Michael Saboff.

In https://bugs.webkit.org/show_bug.cgi?id=144397, we'll need an extra bit in the inline
type flags. This change picks the least important inline type flag - IsEnvironmentRecord -
and evicts it into the out-of-line type flags. This change has no performance implications
because we never even accessed IsEnvironmentRecord via the StructureIDBlob. The only place
where we access it at all is in String.prototype.repeat, and there we already load the
structure anyway.

  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::implementsHasInstance):
(JSC::TypeInfo::structureIsImmortal):
(JSC::TypeInfo::isEnvironmentRecord):

10:31 AM Changeset in webkit [183556] by bshafiei@apple.com
  • 6 edits
    2 copies in tags/Safari-601.1.31/Source/WebCore

Merged r183553. rdar://problem/20625299

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

Main resource loaded via 304 response becomes empty if reloaded by user
https://bugs.webkit.org/show_bug.cgi?id=144386

Reviewed by Darin Adler.

Source/WebCore:

Memory cache layer may make a main resource request conditional (add If-modified-since/If-none-match header).
DocumentLoader stores the final ResourceRequest associated with document. If user triggered reload for
conditionally loaded document DocumentLoader would include the same conditionals to the new request as well.
Since these were not added by the memory cache it would pass any 304 response back to the DocumentLoader.
However DocumentLoader has no code to handle 304 so we would end up with an empty document.

Test: http/tests/cache/main-resource-304-reload.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

Ensure DocumentLoader doesn't issue conditional requests.

LayoutTests:

  • http/tests/cache/main-resource-304-reload-expected.txt: Added.
  • http/tests/cache/main-resource-304-reload.html: Added.
  • http/tests/cache/resources/iframe304body.php: Added.
9:50 AM Changeset in webkit [183554] by jer.noble@apple.com
  • 7 edits
    2 adds in trunk/Source/WebCore

Replace HTMLMediaElement's seek timer with a task queue.
https://bugs.webkit.org/show_bug.cgi?id=144353

Reviewed by Eric Carlson.

No change in functionality, so no new tests added.

Replace a zero-length timer with an explicit task queue, backed by Document's postTask(). To
make enqueued tasks cancellable, add a new GenericTaskQueue class modelled on
GenericEventQueue which can cancel enqueued but not-yet-executed tasks.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/GenericTaskQueue.cpp: Added.

(WebCore::GenericTaskQueue::GenericTaskQueue): Initialize ivars.
(WebCore::GenericTaskQueue::enqueueTask): Wrap the task and pass it to the ScriptExecutionContext.
(WebCore::GenericTaskQueue::close): Assert that the task queue will not accept any additional tasks.
(WebCore::GenericTaskQueue::cancelAllTasks): Revoke outstanding weak pointers, thereby cancelling tasks.

  • dom/GenericTaskQueue.h: Added.

(WebCore::GenericTaskQueue::hasPendingTasks):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize the task queue.
(WebCore::HTMLMediaElement::~HTMLMediaElement): Close the task queue.
(WebCore::HTMLMediaElement::seekWithTolerance): Post a task, rather than start a timer.
(WebCore::HTMLMediaElement::seekTask): Renamed from seekTimerFired().
(WebCore::HTMLMediaElement::seekTimerFired): Deleted.

  • html/HTMLMediaElement.h:
9:39 AM Changeset in webkit [183553] by ddkilzer@apple.com
  • 6 edits
    2 adds in trunk/Source/WebCore

Switch QuickLook soft-linking to use QuickLookSoftLink.{h,mm}
<http://webkit.org/b/144362>

Reviewed by Andy Estes.

This patch switches soft-linking of QuickLook.framework to
QuickLookSoftLink.{h,mm} so that we stop exporting unintended
symbols.

No new tests since no change in behavior.

  • WebCore.xcodeproj/project.pbxproj:
  • Add QuickLookSoftLinking.{h,mm} to the project.
  • platform/ios/QuickLookSoftLink.h: Added.
  • platform/ios/QuickLookSoftLink.mm: Added.
  • platform/mac/SoftLinking.h:

(SOFT_LINK_CLASS_FOR_HEADER): Add macro.
(SOFT_LINK_CLASS_FOR_SOURCE): Add macro.

  • platform/network/ios/QuickLook.h:
  • Remove unused declarations.
  • platform/network/ios/QuickLook.mm:

(WebCore::QLPreviewConverterClass): Deleted.
(WebCore::QLTypeCopyBestMimeTypeForFileNameAndMimeType): Deleted.
(WebCore::QLTypeCopyBestMimeTypeForURLAndMimeType): Deleted.
(WebCore::QLTypeCopyUTIForURLAndMimeType): Deleted.

  • Remove SOFT_LINK macros and unused methods after switching to new QuickLookSoftLink.{h,mm}.

(WebCore::QLPreviewGetSupportedMIMETypesSet):

  • Switch to use NeverDestroyed<>.

(WebCore::registerQLPreviewConverterIfNeeded):
(createQLPreviewProtocol):
(WebCore::QLPreviewProtocol):
(WebCore::QuickLookHandle::QuickLookHandle):
(WebCore::QuickLookHandle::create):
(WebCore::QuickLookHandle::shouldCreateForMIMEType):

  • Simplify code when using QuickLookSoftLink.h.
  • platform/network/ios/WebCoreURLResponseIOS.mm:
  • Include QuickLookSoftLink.h header.
9:33 AM Changeset in webkit [183552] by Darin Adler
  • 10 edits
    3 adds in trunk

[ES6] Implement Unicode code point escapes
https://bugs.webkit.org/show_bug.cgi?id=144377

Reviewed by Antti Koivisto.

Source/JavaScriptCore:

  • parser/Lexer.cpp: Moved the UnicodeHexValue class in here from

the header. Made it a non-member class so it doesn't need to be part
of a template. Made it use UChar32 instead of int for the value to
make it clearer what goes into this class.
(JSC::ParsedUnicodeEscapeValue::isIncomplete): Added. Replaces the
old type() function.
(JSC::Lexer<CharacterType>::parseUnicodeEscape): Renamed from
parseFourDigitUnicodeHex and added support for code point escapes.
(JSC::isLatin1): Added an overload for UChar32.
(JSC::isIdentStart): Changed this to take UChar32; no caller tries
to call it with a UChar, so no need to overload for that type for now.
(JSC::isNonLatin1IdentPart): Changed argument type to UChar32 for clarity.
Also added FIXME about a subtle ES6 change that we might want to make later.
(JSC::isIdentPart): Changed this to take UChar32; no caller tries
to call it with a UChar, so no need to overload for that type for now.
(JSC::isIdentPartIncludingEscapeTemplate): Made this a template so that we
don't need to repeat the code twice. Added code to handle code point escapes.
(JSC::isIdentPartIncludingEscape): Call the template instead of having the
code in line.
(JSC::Lexer<CharacterType>::recordUnicodeCodePoint): Added.
(JSC::Lexer<CharacterType>::parseIdentifierSlowCase): Made small tweaks and
updated to call parseUnicodeEscape instead of parseFourDigitUnicodeHex.
(JSC::Lexer<CharacterType>::parseComplexEscape): Call parseUnicodeEscape
instead of parseFourDigitUnicodeHex. Move the code to handle "\u" before
the code that handles the escapes, since the code point escape code now
consumes characters while parsing rather than peeking ahead. Test case
covers this: Symptom would be that "\u{" would evaluate to "u" instead of
giving a syntax error.

  • parser/Lexer.h: Updated for above changes.
  • runtime/StringConstructor.cpp:

(JSC::stringFromCodePoint): Use ICU's UCHAR_MAX_VALUE instead of writing
out 0x10FFFF; clearer this way.

Source/WebCore:

Test: js/unicode-escape-sequences.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseEscape): Use ICU's UCHAR_MAX_VALUE instead of writing
out 0x10FFFF; clearer this way. Also use our replacementCharacter instead of
writing out 0xFFFD.

  • html/parser/HTMLEntityParser.cpp:

(WebCore::isAlphaNumeric): Deleted.
(WebCore::HTMLEntityParser::legalEntityFor): Use ICU's UCHAR_MAX_VALUE and
U_IS_SURROGATE instead of writing the code out. Didn't use U_IS_UNICODE_CHAR
because that also includes U_IS_UNICODE_NONCHAR and thus would change behavior,
but maye it's something we want to do in the future.
(WebCore::HTMLEntityParser::consumeNamedEntity): Use isASCIIAlphanumeric instead
of a the function in this file that does the same thing less efficiently.

  • html/parser/InputStreamPreprocessor.h:

(WebCore::InputStreamPreprocessor::processNextInputCharacter): Use
replacementCharacter from CharacterNames.h instead of writing out 0xFFFd.

  • xml/parser/CharacterReferenceParserInlines.h:

(WebCore::consumeCharacterReference): Use ICU's UCHAR_MAX_VALUE instead of
defining our own local highestValidCharacter constant.

LayoutTests:

  • js/script-tests/unicode-escape-sequences.js: Added.
  • js/unicode-escape-sequences-expected.txt: Added.
  • js/unicode-escape-sequences.html: Added. Generated with make-script-test-wrappers.
9:32 AM Changeset in webkit [183551] by peavo@outlook.com
  • 2 edits in trunk/WebKitLibraries

[WinCairo] Turn on WebGL.
https://bugs.webkit.org/show_bug.cgi?id=144389

Reviewed by Brent Fulgham.

  • win/tools/vsprops/FeatureDefinesCairo.props:
9:20 AM Changeset in webkit [183550] by Martin Robinson
  • 12 edits in trunk

[CMake] [GTK] Organize and clean up unused CMake variables
https://bugs.webkit.org/show_bug.cgi?id=144364

Reviewed by Gyuyoung Kim.

.:

  • Source/cmake/OptionsGTK.cmake: Remove unused variables and move variables

specific to certain projects into their PlatformGTK.cmake files.

Source/JavaScriptCore:

  • PlatformGTK.cmake: Add variables specific to this project.

Source/WebCore:

  • PlatformGTK.cmake: Add variables specific to this project.

Source/WebKit2:

  • PlatformGTK.cmake: Add variables specific to this project.
  • webkit2gtk-web-extension.pc.in: Hardcode the GTK+ API version. It rarely changes.
  • webkit2gtk.pc.in: Ditto.

Source/WTF:

  • wtf/PlatformGTK.cmake: Add variables specific to this project.
9:15 AM Changeset in webkit [183549] by mmaxfield@apple.com
  • 3 edits in branches/safari-600.6-branch/LayoutTests

fast/text/ruby-justification-flush.html fails on safari-600.6-branch
https://bugs.webkit.org/show_bug.cgi?id=144294

Reviewed by Andy Estes.

Simply adjust the numbers to make floating point math divide easier.

  • fast/text/ruby-justification-flush-expected.html:
  • fast/text/ruby-justification-flush.html:
8:55 AM Changeset in webkit [183548] by fpizlo@apple.com
  • 7 edits
    3 adds in trunk/Source/JavaScriptCore

TypeOf should return SpecStringIdent and the DFG should know this
https://bugs.webkit.org/show_bug.cgi?id=144376

Reviewed by Andreas Kling.

Make TypeOf return atomic strings. That's a simple change in SmallStrings.

Make the DFG know this and use it for optimization. This makes Switch(TypeOf) a bit less
bad.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::setType):

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::setType):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::initialize):

  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • runtime/SmallStrings.cpp:

(JSC::SmallStrings::initialize):

  • tests/stress/switch-typeof-indirect.js: Added.

(bar):
(foo):
(test):

  • tests/stress/switch-typeof-slightly-indirect.js: Added.

(foo):
(test):

  • tests/stress/switch-typeof.js: Added.

(foo):
(test):

8:49 AM Changeset in webkit [183547] by Carlos Garcia Campos
  • 7 edits in trunk/Source

REGRESSION(r182573): [GTK] The default context menu contains an empty item since r182573
https://bugs.webkit.org/show_bug.cgi?id=144388

Reviewed by Brady Eidson.

Source/WebCore:

There used to be a method in ContextMenuItem to check if share
menu item was supported or not, but since r182573, there's a
method to get the share menu item. If the returned menu item is
null, it's not added to the menu, but we are not returning a null
ContextMenu item even though we don't support share menu item.

  • platform/gtk/ContextMenuItemGtk.cpp:

(WebCore::ContextMenuItem::shareMenuItem): Return a null ContextMenuItem.

Source/WebKit2:

Move the WebContextMenuClient::shareMenuItem() implementation to
platform files, since platforms not supporting share menu item
should return a null ContextMenuIem instead.

  • WebProcess/WebCoreSupport/WebContextMenuClient.cpp:

(WebKit::WebContextMenuClient::shareMenuItem): Deleted.

  • WebProcess/WebCoreSupport/efl/WebContextMenuClientEfl.cpp:

(WebKit::WebContextMenuClient::shareMenuItem):

  • WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp:

(WebKit::WebContextMenuClient::shareMenuItem):

  • WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:

(WebKit::WebContextMenuClient::shareMenuItem):

8:47 AM Changeset in webkit [183546] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r183467): [SOUP] isMainResource is no longer passed as resource load parameters to the network process
https://bugs.webkit.org/show_bug.cgi?id=144381

Reviewed by Darin Adler.

A requester enum value is passed now as part of the
ResourceRequest, but it's not encoded/decoded for soup.

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData): Encode requester.
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData): Decode requester.

7:34 AM Changeset in webkit [183545] by ryuan.choi@navercorp.com
  • 2 edits in trunk

[EFL] Build failure to find gio-unix
https://bugs.webkit.org/show_bug.cgi?id=144083

Reviewed by Gyuyoung Kim.

Original patch by Doug Newgard <scimma22@outlook.com>

  • Source/cmake/OptionsEfl.cmake: Moved geoclue block before find_package(GLIB...)
6:13 AM Changeset in webkit [183544] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

Switch to std::function<>, std::bind() in MediaPlayerPrivateAVFoundationObjC
https://bugs.webkit.org/show_bug.cgi?id=144232

Reviewed by Darin Adler.

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

(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
Replace uses of WTF::Function<> and WTF::bind() with the STL alternatives.

5:43 AM Changeset in webkit [183543] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix /webkit2/WebKitWebInspectorServer/test-open-debugging-session.

Latest changes in the inspector UI made this test fail. We were
relying that the sidebar was always visible and the first 'li'
element of the inspector was the one containing the title. This is
no longer true, so better use document title that is not likely
to change.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestInspectorServer.cpp:

(openRemoteDebuggingSession):

5:10 AM Changeset in webkit [183542] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Re-sorted my contributor's mails to help bugzilla on showing the proper one.

Patch by Andres Gomez <Andres Gomez> on 2015-04-29

  • Scripts/webkitpy/common/config/contributors.json:
5:05 AM Changeset in webkit [183541] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Created a new watchlist for changes in WebInspectorUI images and added myself to it.

Patch by Andres Gomez <Andres Gomez> on 2015-04-29

  • Scripts/webkitpy/common/config/watchlist:
4:14 AM Changeset in webkit [183540] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Allow to run the tests on the native X display
https://bugs.webkit.org/show_bug.cgi?id=144247

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-04-29
Reviewed by Gyuyoung Kim.

Added the USE_NATIVE_XDISPLAY option for the WTR.
We can select the Xorg driver if environment variable is set up before running the tests.

  • Scripts/webkitpy/port/efl.py:

(EflPort._driver_class):

2:58 AM Changeset in webkit [183539] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Add libnotify-dev in gtk install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=144379

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-04-29
Reviewed by Žan Doberšek.

  • gtk/install-dependencies:
1:23 AM Changeset in webkit [183538] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Fix crash in WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::setBlock().
https://bugs.webkit.org/show_bug.cgi?id=140261

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-04-29
Reviewed by Darin Adler.

Source/WebCore:

We need to check whether RenderObject is valid in RenderView::fooSubtreeSelection functions
because invalid object has caused a crash. This patch adds isValidObjectForNewSelection(), and use it.

  • rendering/RenderView.cpp:

(WebCore::isValidObjectForNewSelection):
(WebCore::RenderView::clearSubtreeSelection):
(WebCore::RenderView::applySubtreeSelection):

LayoutTests:

  • editing/execCommand/crash-140261-expected.txt: Added.
  • editing/execCommand/crash-140261.html: Added.
1:18 AM Changeset in webkit [183537] by youenn.fablet@crf.canon.fr
  • 10 edits
    4 adds in trunk

Synchronous XMLHttpRequest should get access to AppCache resources stored as flat files
https://bugs.webkit.org/show_bug.cgi?id=143711

Reviewed by Darin Adler.

Source/WebCore:

This patch checks whether a substitute resource data is stored in memory or in file for synchronous loads.
If data is stored in file, it reads the data through SharedBuffer::createWithContentsOfFile.
This patch refactors some routines to replace Vector<char> by SharedBuffer to transmit response data.

Test: http/tests/appcache/simple-video-sync.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously):

  • loader/FrameLoader.h:
  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::maybeLoadResource):
(WebCore::ApplicationCacheHost::createFileURL):
(WebCore::ApplicationCacheHost::maybeLoadSynchronously):
(WebCore::ApplicationCacheHost::maybeLoadFallbackSynchronously):

  • loader/appcache/ApplicationCacheHost.h:
  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::docLoaderFunc):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::openFunc):

LayoutTests:

  • http/tests/appcache/resources/fake-video.mp4: Added.
  • http/tests/appcache/resources/simple-video-sync.manifest: Added.
  • http/tests/appcache/simple-video-sync-expected.txt: Added.
  • http/tests/appcache/simple-video-sync.html: Added.
1:17 AM Changeset in webkit [183536] by Gyuyoung Kim
  • 34 edits in trunk/Source/WebCore

Purge PassRefPtr from createSVGPathSegFoo factory functions
https://bugs.webkit.org/show_bug.cgi?id=144374

Reviewed by Darin Adler.

Use Ref instead of PassRefPtr in createSVGPathSegFoo functions because
those factory functions can't return null. Additionally let's remove unnecessary
#include<PassRefPtr.h> there.

No new tests, no behavior changes.

  • svg/SVGColor.cpp:

(WebCore::SVGColor::cloneForCSSOM):

  • svg/SVGColor.h:
  • svg/SVGGlyphMap.h:

(WebCore::GlyphMapNode::create):

  • svg/SVGPaint.cpp:

(WebCore::SVGPaint::cloneForCSSOM):

  • svg/SVGPaint.h:
  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::createSVGPathSegClosePath):
(WebCore::SVGPathElement::createSVGPathSegMovetoAbs):
(WebCore::SVGPathElement::createSVGPathSegMovetoRel):
(WebCore::SVGPathElement::createSVGPathSegLinetoAbs):
(WebCore::SVGPathElement::createSVGPathSegLinetoRel):
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicAbs):
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicRel):
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticAbs):
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticRel):
(WebCore::SVGPathElement::createSVGPathSegArcAbs):
(WebCore::SVGPathElement::createSVGPathSegArcRel):
(WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalAbs):
(WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalRel):
(WebCore::SVGPathElement::createSVGPathSegLinetoVerticalAbs):
(WebCore::SVGPathElement::createSVGPathSegLinetoVerticalRel):
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs):
(WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel):
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs):
(WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel):

  • svg/SVGPathElement.h:
  • svg/SVGPathSegArcAbs.h:

(WebCore::SVGPathSegArcAbs::create):

  • svg/SVGPathSegArcRel.h:

(WebCore::SVGPathSegArcRel::create):

  • svg/SVGPathSegClosePath.h:

(WebCore::SVGPathSegClosePath::create):

  • svg/SVGPathSegCurvetoCubicAbs.h:

(WebCore::SVGPathSegCurvetoCubicAbs::create):

  • svg/SVGPathSegCurvetoCubicRel.h:

(WebCore::SVGPathSegCurvetoCubicRel::create):

  • svg/SVGPathSegCurvetoCubicSmoothAbs.h:

(WebCore::SVGPathSegCurvetoCubicSmoothAbs::create):

  • svg/SVGPathSegCurvetoCubicSmoothRel.h:

(WebCore::SVGPathSegCurvetoCubicSmoothRel::create):

  • svg/SVGPathSegCurvetoQuadraticAbs.h:

(WebCore::SVGPathSegCurvetoQuadraticAbs::create):

  • svg/SVGPathSegCurvetoQuadraticRel.h:

(WebCore::SVGPathSegCurvetoQuadraticRel::create):

  • svg/SVGPathSegCurvetoQuadraticSmoothAbs.h:

(WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::create):

  • svg/SVGPathSegCurvetoQuadraticSmoothRel.h:

(WebCore::SVGPathSegCurvetoQuadraticSmoothRel::create):

  • svg/SVGPathSegLinetoAbs.h:

(WebCore::SVGPathSegLinetoAbs::create):

  • svg/SVGPathSegLinetoHorizontalAbs.h:

(WebCore::SVGPathSegLinetoHorizontalAbs::create):

  • svg/SVGPathSegLinetoHorizontalRel.h:

(WebCore::SVGPathSegLinetoHorizontalRel::create):

  • svg/SVGPathSegLinetoRel.h:

(WebCore::SVGPathSegLinetoRel::create):

  • svg/SVGPathSegLinetoVerticalAbs.h:

(WebCore::SVGPathSegLinetoVerticalAbs::create):

  • svg/SVGPathSegLinetoVerticalRel.h:

(WebCore::SVGPathSegLinetoVerticalRel::create):

  • svg/SVGPathSegMovetoAbs.h:

(WebCore::SVGPathSegMovetoAbs::create):

  • svg/SVGPathSegMovetoRel.h:

(WebCore::SVGPathSegMovetoRel::create):

  • svg/SVGViewSpec.h:

(WebCore::SVGViewSpec::create):

  • svg/animation/SMILTimeContainer.h:

(WebCore::SMILTimeContainer::create):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::ConditionEventListener::create):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.h:
  • svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::create):

  • svg/graphics/filters/SVGFilter.h:
12:53 AM Changeset in webkit [183535] by commit-queue@webkit.org
  • 5 edits in trunk

REGRESSION(181868): Windows Live SkyDrive cannot open an excel file
https://bugs.webkit.org/show_bug.cgi?id=144373

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-29
Reviewed by Darin Adler.

Source/JavaScriptCore:

Revert r181868 as it caused a failure on live.com. We can try
re-enabling this exception after we make idl attributes configurable,
which may have prevented this particular failure.

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncDefineGetter):
(JSC::objectProtoFuncDefineSetter):

LayoutTests:

  • js/property-getters-and-setters-expected.txt:
  • js/script-tests/property-getters-and-setters.js:

Apr 28, 2015:

11:20 PM Changeset in webkit [183534] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:18 PM Changeset in webkit [183533] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.31

New tag.

11:18 PM Changeset in webkit [183532] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[SOUP] Use xattrs to get/set the creation time of disk cache files
https://bugs.webkit.org/show_bug.cgi?id=144251

Reviewed by Martin Robinson.

The network process disk cache uses the creation time to compute a
worth value used to determine the order in which cached resources
are deleted when the cache is shrunk. In some operating systems
like Linux there's no st_birthtime in struct stat, but since cache
files are always created and deleted by us, we could use a custom
xattr to store and retrieve the creation time of cached resources.

  • NetworkProcess/cache/NetworkCacheFileSystemPosix.h:

(WebKit::NetworkCache::fileTimes):

  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::IOChannel::IOChannel):

11:14 PM Changeset in webkit [183531] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

Network Cache: Do not create a SharedBuffer for mapped resources unless explicitly requested
https://bugs.webkit.org/show_bug.cgi?id=144337

Reviewed by Antti Koivisto.

We send a buffer or a memory mapped handler to the web process
depending on whether the resource body is mapped or not, but we
are always creating a shared buffer even for mapped resources.
Split initializeBufferFromStorageRecord() moving the mapped memory
handler initialization to its own method.

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):
Initialize the mapped memory handler if the body data is mapped.
(WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord):
Initialize the buffer by wrapping the mapped memory if the body
data is mapped, or using the body data directly otherwise.
(WebKit::NetworkCache::Entry::shareableResourceHandle): Call
initializeShareableResourceHandleFromStorageRecord() if the
handler is null.

  • NetworkProcess/cache/NetworkCacheEntry.h:
10:51 PM Changeset in webkit [183530] by Simon Fraser
  • 6 edits in trunk/Source

Make a non-static version of FrameView::yPositionForRootContentLayer()
https://bugs.webkit.org/show_bug.cgi?id=144375

Reviewed by Andy Estes.

There were two calls to the static FrameView::yPositionForRootContentLayer()
which passed in all the arguments for the same FrameView. Make a member
function for convenience.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::yPositionForRootContentLayer):

  • page/FrameView.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateRootLayerPosition):

Source/WebKit2:

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::shadowLayerPositionForFrame):

10:05 PM Changeset in webkit [183529] by ryuan.choi@navercorp.com
  • 31 edits
    5 moves
    1 delete in trunk

[CoordinatedGraphics] Merge TILED_BACKING_STORE guard with COORDINATED_GRAPHICS
https://bugs.webkit.org/show_bug.cgi?id=143001

Reviewed by Gyuyoung Kim.

.:

  • Source/cmake/OptionsEfl.cmake: Removed TILED_BACKING_STORE definition.
  • Source/cmake/OptionsGTK.cmake: Ditto.

Source/WebCore:

TiledBackingStore has only been used by Coordinated Graphics since Qt and WebKit1/Efl were dropped.
So, this patch replaces USE(TILED_BACKING_STORE) with USE(COORDINATED_GRAPHICS) to merge the features.

In addition, this moves TiledBackingStore and related files from platform to platform/texmap/coordinated
where other coordinated graphics files are located.

  • CMakeLists.txt: Move TiledBackingStore.cpp because this is not common file.
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • WebCore.vcxproj/WebCore.vcxproj: Follow new location of TiledBackingStore* files.
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • loader/EmptyClients.h:
  • page/Chrome.cpp:
  • page/Chrome.h:
  • page/ChromeClient.h:
  • page/Frame.cpp:

(WebCore::Frame::createView):

  • page/FrameView.cpp:

(WebCore::FrameView::requestScrollPositionUpdate):

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

(WebCore::Page::setPageScaleFactor):

  • platform/HostWindow.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):
(WebCore::ScrollView::unscaledUnobscuredVisibleContentSize):
(WebCore::ScrollView::visibleContentRectInternal):
(WebCore::ScrollView::scrollTo):

  • platform/ScrollView.h:
  • platform/graphics/cairo/TileCairo.h: Removed because it is dead code since r169328
  • platform/graphics/texmap/coordinated/Tile.h: Renamed from Source/WebCore/platform/graphics/Tile.h.
  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp: Renamed from Source/WebCore/platform/graphics/TiledBackingStore.cpp.
  • platform/graphics/texmap/coordinated/TiledBackingStore.h: Renamed from Source/WebCore/platform/graphics/TiledBackingStore.h.
  • platform/graphics/texmap/coordinated/TiledBackingStoreBackend.h: Renamed from Source/WebCore/platform/graphics/TiledBackingStoreBackend.h.
  • platform/graphics/texmap/coordinated/TiledBackingStoreClient.h: Renamed from Source/WebCore/platform/graphics/TiledBackingStoreClient.h.

Source/WebKit/win:

  • WebCoreSupport/WebChromeClient.h:

(WebChromeClient::delegatedScrollRequested):
Deleted because WIN does not use Coordinated Graphics.

Source/WebKit2:

  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:

(WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::dispatchViewportPropertiesDidChange):

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

(WebKit::WebFrameLoaderClient::dispatchDidLayout):
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setSize):
(WebKit::WebPage::setUseFixedLayout):
(WebKit::WebPage::canHandleUserEvents):

  • WebProcess/WebPage/WebPage.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::shouldUseFixedLayout):

9:39 PM Changeset in webkit [183528] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.30.2.1/Source

Versioning.

9:37 PM Changeset in webkit [183527] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.30.2.1

New tag.

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

Deadlock on applications using JSContext on non-main thread
https://bugs.webkit.org/show_bug.cgi?id=144370

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-28
Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::singleton):
Prevent a possible deadlock by assuming we can synchronously
run something on the main queue at this time.

8:34 PM Changeset in webkit [183525] by fpizlo@apple.com
  • 14 edits in trunk/Source/JavaScriptCore

FTL should fully support Switch (it currently lacks the SwitchString variant)
https://bugs.webkit.org/show_bug.cgi?id=144348

Reviewed by Benjamin Poulain.

This adds SwitchString support to the FTL. This is already tested by switch microbenchmarks
in LayoutTests/js/regress.

  • dfg/DFGCommon.cpp:

(JSC::DFG::stringLessThan):

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

(JSC::DFG::SpeculativeJIT::StringSwitchCase::operator<): Deleted.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::StringSwitchCase::operator<):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

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

(JSC::FTL::LowerDFGToLLVM::compileSwitch):
(JSC::FTL::LowerDFGToLLVM::switchString):
(JSC::FTL::LowerDFGToLLVM::StringSwitchCase::StringSwitchCase):
(JSC::FTL::LowerDFGToLLVM::StringSwitchCase::operator<):
(JSC::FTL::LowerDFGToLLVM::CharacterCase::CharacterCase):
(JSC::FTL::LowerDFGToLLVM::CharacterCase::operator<):
(JSC::FTL::LowerDFGToLLVM::switchStringRecurse):
(JSC::FTL::LowerDFGToLLVM::switchStringSlow):
(JSC::FTL::LowerDFGToLLVM::appendOSRExit):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::check):

  • ftl/FTLOutput.h:
  • ftl/FTLWeight.h:

(JSC::FTL::Weight::inverse):

  • jit/JITOperations.h:
7:26 PM Changeset in webkit [183524] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

REGRESSION(180076): [Mac, iOS] Correct possible null dereference in printing code
https://bugs.webkit.org/show_bug.cgi?id=144366
<rdar://problem/20533513>

Reviewed by Dean Jackson.

  • rendering/RenderBlockFlow.cpp:

(WebCore::needsAppleMailPaginationQuirk): Check if the document settings is a nullptr
before attempting to dereference it.

7:12 PM Changeset in webkit [183523] by akling@apple.com
  • 35 edits in trunk/Source/WebCore

Simplify DOM wrapper destruction, don't deref() in finalizers.
<https://webkit.org/b/144183>

Reviewed by Darin Adler.

DOM JS bindings had two mechanisms to call deref() on the WebCore object,
once through a weak finalizer, and once through the JSCell's regular destructor.

That was once believed to be an optimization, but these days the finalizer will
run just moments before the destructor anyway, all in the same call stack.
And more importantly, the finalizer is not guaranteed to run, for instance in the
case where a Weak is assigned to after going dead, but before the WeakBlock
has been swept by the incremental sweeper.

Simplify this by just removing the deref() from the generated finalizers.
This makes it easier to reason about DOM wrapper destruction, and eliminates
the awkward time window where a DOM wrapper could have a null impl().

We could spend more time on figuring out a way to have finalizers manage the
destruction of these wrappers, but that would require fundamental changes to
our implementation of JSC::Weak pointers. It would allow us to make JSDOMWrapper
destructor-less, and shrink each wrapper object by 1 pointer (the ClassInfo*.)
However the risk:reward ratio does not seem justified at this point in time.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):

  • bindings/js/JSCSSValueCustom.cpp:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::JSTestActiveDOMObject::~JSTestActiveDOMObject):
(WebCore::JSTestActiveDOMObjectOwner::finalize):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::JSTestCustomNamedGetter::~JSTestCustomNamedGetter):
(WebCore::JSTestCustomNamedGetterOwner::finalize):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructor::~JSTestEventConstructor):
(WebCore::JSTestEventConstructorOwner::finalize):

  • bindings/scripts/test/JS/JSTestEventConstructor.h:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTarget::~JSTestEventTarget):
(WebCore::JSTestEventTargetOwner::finalize):

  • bindings/scripts/test/JS/JSTestEventTarget.h:
  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestException::~JSTestException):
(WebCore::JSTestExceptionOwner::finalize):

  • bindings/scripts/test/JS/JSTestException.h:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachable::~JSTestGenerateIsReachable):
(WebCore::JSTestGenerateIsReachableOwner::finalize):

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

(WebCore::JSTestInterface::~JSTestInterface):
(WebCore::JSTestInterfaceOwner::finalize):

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

(WebCore::JSTestMediaQueryListListener::~JSTestMediaQueryListListener):
(WebCore::JSTestMediaQueryListListenerOwner::finalize):

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

(WebCore::JSTestNamedConstructor::~JSTestNamedConstructor):
(WebCore::JSTestNamedConstructorOwner::finalize):

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

(WebCore::JSTestNondeterministic::~JSTestNondeterministic):
(WebCore::JSTestNondeterministicOwner::finalize):

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

(WebCore::JSTestObj::~JSTestObj):
(WebCore::JSTestObjOwner::finalize):

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

(WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
(WebCore::JSTestOverloadedConstructorsOwner::finalize):

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

(WebCore::JSTestSerializedScriptValueInterface::~JSTestSerializedScriptValueInterface):
(WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):

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

(WebCore::JSTestTypedefs::~JSTestTypedefs):
(WebCore::JSTestTypedefsOwner::finalize):

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

(WebCore::JSattribute::~JSattribute):
(WebCore::JSattributeOwner::finalize):

  • bindings/scripts/test/JS/JSattribute.h:
  • bindings/scripts/test/JS/JSreadonly.cpp:

(WebCore::JSreadonly::~JSreadonly):
(WebCore::JSreadonlyOwner::finalize):

  • bindings/scripts/test/JS/JSreadonly.h:
6:24 PM Changeset in webkit [183522] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.4

New tag.

5:57 PM Changeset in webkit [183521] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Build WinCairo without cygwin.
https://bugs.webkit.org/show_bug.cgi?id=144365

Reviewed by Myles Maxfield.

  • WebCore.vcxproj/WebCoreGeneratedWinCairo.make:

Pass the CC executable to build-generated-files.pl like r182164.

  • WebCore.vcxproj/build-generated-files.pl:

Default to 8 CPUs unless otherwise specified.

5:51 PM Changeset in webkit [183520] by commit-queue@webkit.org
  • 13 edits in trunk/Tools

Increase stablility of run-benchmark script
https://bugs.webkit.org/show_bug.cgi?id=144361

Patch by Dewei Zhu <Dewei Zhu> on 2015-04-28
Reviewed by Ryosuke Niwa.

  • Scripts/run-benchmark:

(main):

  • Scripts/webkitpy/benchmark_runner/README.md: Update readme due to changes.
  • Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:

(GenericBenchmarkBuilder.clean):

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py: Improve error handling and remove an unnecessary loop.

(BenchmarkRunner.init):
(BenchmarkRunner.execute):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.prepareEnv): Remove saved sessions of Safari.

  • Scripts/webkitpy/benchmark_runner/data/patches/JetStream.patch: Upload 'results' rather than 'time'.
  • Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan: Update formate.
  • Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan: Update formate.
  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:

(ServerControl.render_POST): Flush the buffer to make sure we can pass the result to stdout.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:

(HTTPServerDriver.fetchResult):
(HTTPServerDriver):
(HTTPServerDriver.killServer): Add kill server interface.
(HTTPServerDriver.getReturnCode): Add get return code interface.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: Adjust to support new interfaces.

(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver.fetchResult):
(SimpleHTTPServerDriver):
(SimpleHTTPServerDriver.killServer):
(SimpleHTTPServerDriver.getReturnCode):

  • Scripts/webkitpy/benchmark_runner/utils.py:

(forceRemove): Provide python version of 'rm -rf'.

5:32 PM Changeset in webkit [183519] by bshafiei@apple.com
  • 4 edits
    9 copies in branches/safari-600.1.4.16-branch

Merged r183280. rdar://problem/20700030

5:22 PM Changeset in webkit [183518] by weinig@apple.com
  • 7 edits in trunk

[Content Extensions] Process NFAs individually to avoid having all NFAs live at the same time
https://bugs.webkit.org/show_bug.cgi?id=144363

Reviewed by Alex Christensen.

Source/WebCore:

This brings dirty memory use when compiling our test content extension down from ~300MB to ~100MB.

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):
(WebCore::ContentExtensions::CombinedURLFilters::createNFAs): Deleted.

  • contentextensions/CombinedURLFilters.h:

Replace function that creates a Vector of all the NFAs with one that allows incremental processing
as they are created.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::addUniversalActionsToDFA):
Extract code to add universal actions into a helper, since we need to call it in two places now.

(WebCore::ContentExtensions::compileRuleList):
Adopt CombinedURLFilters::processNFAs. Now that we don't have a Vector of NFAs, we need to keep track
of whether or not any NFAs were processed and if we are currently processing the first NFA so we can
ensure that we have some bytecode generated event for empty rule sets, and that universal actions are
placed on the first DFA.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::createNFAs):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:

(TestWebKitAPI::countLiveNodes):
(TestWebKitAPI::createNFAs):
(TestWebKitAPI::buildDFAFromPatterns):
Update tests to use a hand rolled createNFAs function on top of CombinedURLFilters::processNFAs.

4:27 PM Changeset in webkit [183517] by timothy_horton@apple.com
  • 29 edits in trunk/Source

[TextIndicator] Yellow highlight takes too long to fade out on scroll
https://bugs.webkit.org/show_bug.cgi?id=144358
<rdar://problem/19451011>

Reviewed by Beth Dakin.

  • page/TextIndicator.h:

Add Lifetime and DismissalAnimation enums.

(WebCore::TextIndicator::contentImageWithHighlight):
(WebCore::TextIndicator::contentImage):
Fix style.

  • page/mac/TextIndicatorWindow.h:
  • page/mac/TextIndicatorWindow.mm:

(WebCore::TextIndicatorWindow::TextIndicatorWindow):
(WebCore::TextIndicatorWindow::~TextIndicatorWindow):
(WebCore::TextIndicatorWindow::clearTextIndicator):
(WebCore::TextIndicatorWindow::setTextIndicator):
(WebCore::TextIndicatorWindow::closeWindow):
(WebCore::TextIndicatorWindow::startFadeOut):
Rename m_startFadeOutTimer to m_temporaryTextIndicatorTimer (and related).
This is just about temporary-lifetime TextIndicators, like the ones
you get when the find-in-page UI is hidden but you hit Cmd-G.

Add clearTextIndicator, which takes a DismissalAnimation, providing
clients an opportunity to avoid the normal fade-out animation, if it
was going to happen.

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController _showTextIndicator]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView quickLookWithEvent:]):

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]):
(-[WebImmediateActionController _animationControllerForDataDetectedText]):
(-[WebImmediateActionController _animationControllerForDataDetectedLink]):
Pull _clearTextIndicatorWithAnimation out, make it avoid using a dismissal animation
if we're called from didHandleScrollWheel.

  • WebView/WebView.mm:

(-[WebView _animationControllerForDictionaryLookupPopupInfo:]):
(-[WebView _setTextIndicator:]):
(-[WebView _setTextIndicator:withLifetime:]):
(-[WebView _clearTextIndicator]):
(-[WebView _showDictionaryLookupPopup:]):
(-[WebView _dictionaryLookupPopoverWillClose:]):
(-[WebView _setTextIndicator:fadeOut:]): Deleted.

  • WebView/WebViewInternal.h:

Make _setTextIndicator take a reference.
Add a variant of _setTextIndicator that takes a Lifetime.
Make _clearTextIndicatorWithAnimation take a DismissalAnimation.

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView renewGState]):
(-[WKView viewDidMoveToWindow]):
(-[WKView _dictionaryLookupPopoverWillClose:]):
(-[WKView _setTextIndicator:]):
(-[WKView _setTextIndicator:withLifetime:]):
(-[WKView _clearTextIndicatorWithAnimation:]):
(-[WKView magnifyWithEvent:]):
(-[WKView smartMagnifyWithEvent:]):
(-[WKView setMagnification:centeredAtPoint:]):
(-[WKView setMagnification:]):
(-[WKView _dismissContentRelativeChildWindows]):
(-[WKView _dismissContentRelativeChildWindowsWithAnimation:]):
(-[WKView _setTextIndicator:fadeOut:]): Deleted.

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::pageDidScroll):
(WebKit::WebPageProxy::setTextIndicator):
(WebKit::WebPageProxy::clearTextIndicator):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::setTextIndicator):
(WebKit::PageClientImpl::clearTextIndicator):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::setTextIndicator):
(WebKit::PageClientImpl::clearTextIndicator):
(WebKit::PageClientImpl::didPerformDictionaryLookup):
(WebKit::PageClientImpl::dismissContentRelativeChildWindows):

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):
(-[WKImmediateActionController _animationControllerForText]):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindIndicator):
Make _setTextIndicator take a reference.
Add a variant of _setTextIndicator that takes a Lifetime.
Make _clearTextIndicatorWithAnimation take a DismissalAnimation.
Make dismissContentRelativeChildWindows take a parameter indicating
whether the dismissal should include animation or not (currently
only applies to TextIndicator).
Don't animate when dismissal occurs because of scrolling, zooming,
or other things in which the content will have changed significantly
underneath the indicator and shouldn't have a slowly-fading-out yellow highlight.

4:16 PM Changeset in webkit [183516] by Michael Catanzaro
  • 14 edits in trunk

Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
https://bugs.webkit.org/show_bug.cgi?id=144304

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Define ENABLE_JIT, enabled by default, instead of

ENABLE_LLINT_C_LOOP, disabled by default.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL): Check ENABLE_JIT instead of ENABLE_LLINT_C_LOOP.

Source/WebCore:

Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

No longer check ENABLE_LLINT_C_LOOP to determine the value of ENABLE_JIT.

  • wtf/Platform.h:

Tools:

  • Scripts/build-jsc: Use ENABLE_JIT instead of ENABLE_LLINT_C_LOOP on Mac. Always explicitly

set the value of ENABLE_JIT and ENABLE_FTL_JIT to avoid assumptions about the default value.

  • Scripts/webkitperl/FeatureList.pm: Add --jit option to build-webkit.
4:04 PM Changeset in webkit [183515] by commit-queue@webkit.org
  • 14 edits in trunk

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

It broke cloop test bots (Requested by mcatanzaro on #webkit).

Reverted changeset:

"Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT"
https://bugs.webkit.org/show_bug.cgi?id=144304
http://trac.webkit.org/changeset/183514

3:50 PM Changeset in webkit [183514] by Michael Catanzaro
  • 14 edits in trunk

Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
https://bugs.webkit.org/show_bug.cgi?id=144304

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Define ENABLE_JIT, enabled by default, instead of

ENABLE_LLINT_C_LOOP, disabled by default.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL): Check ENABLE_JIT instead of ENABLE_LLINT_C_LOOP.

Source/WebCore:

Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

No longer check ENABLE_LLINT_C_LOOP to determine the value of ENABLE_JIT.

  • wtf/Platform.h:

Tools:

  • Scripts/build-jsc: Use ENABLE_JIT instead of ENABLE_LLINT_C_LOOP on Mac. Perform sanity-

checking to ensure --cloop and --ftl-jit cannot be combined. Always explicitly set the value
of ENABLE_JIT and ENABLE_FTL_JIT to avoid assumptions about the default value.

  • Scripts/webkitperl/FeatureList.pm: Add --jit option to build-webkit.
3:38 PM Changeset in webkit [183513] by ap@apple.com
  • 2 edits in trunk/LayoutTests

[WK2] fast/forms/input-search-press-escape-key.html crashes
https://bugs.webkit.org/show_bug.cgi?id=87168
rdar://problem/11508829

  • platform/wk2/TestExpectations: This doesn't crash for me any more, unskipping.
3:35 PM Changeset in webkit [183512] by Gyuyoung Kim
  • 3 edits in trunk/Tools

[CMake] Remove unnecessary include paths in TestWebKitAPI cmake files
https://bugs.webkit.org/show_bug.cgi?id=144319

Reviewed by Csaba Osztrogonác.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformEfl.cmake:
3:21 PM Changeset in webkit [183511] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Checkboxes on bugs.webkit.org are painted with stripes at some zoom levels.
https://bugs.webkit.org/show_bug.cgi?id=144351

Reviewed by Simon Fraser.

This patch ensures that CG context is properly restored after painting dashed/dotted lines.

Source/WebCore:

Test: fast/forms/checkbox-painting-with-hr.html

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawLine):

LayoutTests:

  • fast/forms/checkbox-painting-with-hr-expected.html: Added.
  • fast/forms/checkbox-painting-with-hr.html: Added.
2:51 PM Changeset in webkit [183510] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Provide contentsToView() and viewToContents() functions on ScrollView, and use them
https://bugs.webkit.org/show_bug.cgi?id=144357

Reviewed by Tim Horton.

Too much code was consulting topContentInset() and headerHeight() directly. Replace
with calls to new contentsToView() and viewToContents() functions, which wrap the
exisiting documentScrollOffsetRelativeToViewOrigin().

Use the new functions in FrameView and ScrollView coordinate mapping functions.

No behavior change.

  • page/FrameView.cpp:

(WebCore::FrameView::convertFromRendererToContainingView):
(WebCore::FrameView::convertFromContainingViewToRenderer):

  • platform/ScrollView.cpp:

(WebCore::ScrollView::viewToContents):
(WebCore::ScrollView::contentsToView):
(WebCore::ScrollView::rootViewToContents):
(WebCore::ScrollView::contentsToRootView):
(WebCore::ScrollView::rootViewToTotalContents):
(WebCore::ScrollView::windowToContents):
(WebCore::ScrollView::contentsToWindow):

  • platform/ScrollView.h:
2:40 PM Changeset in webkit [183509] by eric.carlson@apple.com
  • 15 edits in trunk/Source/WebCore

[Mac] Simplify code to support media engines which do not support target playback
https://bugs.webkit.org/show_bug.cgi?id=144332

Reviewed by Jer Noble.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::externalOutputDeviceAvailableDidChange): Always make client
callback, let them decide if it is significant or not.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): m_loadTimer -> m_pendingActionTimer.
(WebCore::HTMLMediaElement::scheduleDelayedAction): Handle CheckPlaybackTargetCompatablity.
(WebCore::HTMLMediaElement::scheduleNextSourceChild): m_loadTimer -> m_pendingActionTimer.
(WebCore::HTMLMediaElement::loadTimerFired): Renamed pendingActionTimerFired.
(WebCore::HTMLMediaElement::prepareForLoad): m_loadTimer -> m_pendingActionTimer.
(WebCore::HTMLMediaElement::setDefaultPlaybackRate): Add logging.
(WebCore::HTMLMediaElement::clearMediaPlayer): m_loadTimer -> m_pendingActionTimer.
(WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsSupported): Removed.
(WebCore::HTMLMediaElement::dispatchEvent): If a 'webkitcurrentplaybacktargetiswirelesschanged'
event is dispatched when the current target is wireless but the media engine does not support
wireless playback, tell the media engine not to play to the target.

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::showPlaybackTargetPicker): Drive-by fix to disallow audio-only files.
(WebCore::HTMLMediaSession::currentPlaybackTargetIsSupported): Deleted.

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

(WebCore::MediaPlayer::isCurrentPlaybackTargetSupported): Deleted.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget): Use a RetainPtr
to explicitly manage the lifetime of the temporary object.
(WebCore::MediaPlayerPrivateAVFoundationObjC::isPlayingToWirelessPlaybackTarget): Ditto.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setShouldPlayToPlaybackTarget):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isCurrentPlaybackTargetWireless):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isCurrentPlaybackTargetSupported): Deleted.

  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::setShouldPlayToPlaybackTarget):
(WebCore::MediaPlayerPrivateQTKit::isCurrentPlaybackTargetWireless):
(WebCore::MediaPlayerPrivateQTKit::isCurrentPlaybackTargetSupported): Deleted.

2:19 PM Changeset in webkit [183508] by matthew_hanson@apple.com
  • 4 edits
    9 adds in branches/safari-600.7-branch

Merge r183280. rdar://problem/20694404

1:45 PM Changeset in webkit [183507] by Michael Catanzaro
  • 2 edits in trunk

Unreviewed, fix typo in previous commit

libsecretr -> libsecret in the error message.

  • Source/cmake/OptionsGTK.cmake:
1:45 PM Changeset in webkit [183506] by commit-queue@webkit.org
  • 10 edits in trunk

Fix common typo "targetting" => "targeting"
https://bugs.webkit.org/show_bug.cgi?id=144349

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-28
Reviewed by Daniel Bates.

Source/JavaScriptCore:

  • bytecode/ExecutionCounter.h:

Source/WebKit/mac:

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::loadRequest):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]):

  • WebView/WebPolicyDelegate.h:

Source/WebKit/win:

  • Interfaces/IWebPolicyDelegate.idl:

Tools:

  • Scripts/webkitdirs.pm:

(execMacWebKitAppForDebugging):

1:39 PM Changeset in webkit [183505] by Michael Catanzaro
  • 2 edits in trunk

[GTK] Clean up feature detection and make it hard to accidentally build without optional features
https://bugs.webkit.org/show_bug.cgi?id=143546

Reviewed by Martin Robinson.

Add USE_GSTREAMER_MPEGTS option and turn it off by default. Turn off ENABLE_SUBTLE_CRYPTO
by default. Turn on ENABLE_GEOLOCATION by default. Add USE_LIBNOTIFY and turn it on by
default. Fail the build with an informative error message if an optional dependency required
for an enabled feature is not present. Perform find_package commands only when necessary.
Make ENABLE_API_TESTS private. Alphabetize the feature checks (yes, this is actually
possible now!).

  • Source/cmake/OptionsGTK.cmake:
1:23 PM Changeset in webkit [183504] by achristensen@apple.com
  • 2 edits in trunk/Source/WTF

Properly reset deleted count when clearing HashTables.
https://bugs.webkit.org/show_bug.cgi?id=144343

Reviewed by Andreas Kling.

  • wtf/HashTable.h:

(WTF::KeyTraits>::clear):
Reset m_deletedCount, which appears to have been forgotten.

1:18 PM Changeset in webkit [183503] by enrica@apple.com
  • 7 edits in trunk/Source/WebKit2

Add support for lookup on iOS.
https://bugs.webkit.org/show_bug.cgi?id=144342
rdar://problem/19994090

Reviewed by Tim Horton.

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

(-[WKContentView _lookup:]):
(-[WKContentView canPerformAction:withSender:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::getLookupContextAtPoint):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getLookupContextAtPoint):

1:01 PM Changeset in webkit [183502] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.30.2/Source

Versioning.

12:59 PM Changeset in webkit [183501] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.30.2

New tag.

12:58 PM Changeset in webkit [183500] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Update the features.json for WeakSet, WeakMap, Template literals, Tagged templates
https://bugs.webkit.org/show_bug.cgi?id=144328

Reviewed by Andreas Kling.

Update the status of ES6 features.

  • features.json:
12:40 PM Changeset in webkit [183499] by commit-queue@webkit.org
  • 9 edits in trunk/Source

[Content Extensions] Use less memory for CombinedURLFilters.
https://bugs.webkit.org/show_bug.cgi?id=144290

Patch by Alex Christensen <achristensen@webkit.org> on 2015-04-28
Reviewed by Andreas Kling.

Source/WebCore:

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::recursiveMemoryUsed):
(WebCore::ContentExtensions::CombinedURLFilters::addPattern):
(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::createNFAs):

  • contentextensions/NFA.cpp:

(WebCore::ContentExtensions::NFA::memoryUsed):
(WebCore::ContentExtensions::NFA::setActions):

  • contentextensions/NFA.h:
  • contentextensions/NFANode.h:
  • contentextensions/Term.h:

(WebCore::ContentExtensions::Term::Term::generateGraph):
(WebCore::ContentExtensions::Term::generateSubgraphForAtom):
Use Vectors instead of HashTables in PrefixTreeVertex because the sets stay small and need to be more memory efficient.

Source/WTF:

  • wtf/Forward.h:
  • wtf/Vector.h:

Added a minCapacity template parameter to allow changing the minimum size of an
allocated buffer. The default minCapacity is kept at 16 unless otherwise specified
to have no change on existing code, but this could be changed later. A smaller
default minCapacity would use less memory with small Vectors but spend more time
copying when expanding to large Vectors.

12:38 PM Changeset in webkit [183498] by beidson@apple.com
  • 20 edits in trunk/Source

Consolidate most "frame load" arguments into FrameLoadRequest.
https://bugs.webkit.org/show_bug.cgi?id=144276

Reviewed by Alexey Proskuryakov.

Source/WebCore:

No new tests (No change in behavior).

This patch starts the long overdue process of wrangling the insane load methods in FrameLoader.

Humble beginnings of this long process:

  • Put most of the various "frame load" arguments that are passed around within FrameLoader on FrameLoadRequest.
  • Get rid of the "easy" constructors of FrameLoadRequest, forcing users to actually think about what they're doing.
  • Change a private FrameLoader load method (urlSelected) to take a FrameLoadRequest instead of argument gobbledygook.
  • Change a public FrameLoader load methods (changeLocation) to take a FrameLoadRequest instead of gobbledygook.

These cover the straightforward changes where it was easy to figure out what the values of the FrameLoadRequest
arguments were from these various call sites.

Further refactoring can be done in much smaller patches, handling fewer cases at a time. Little by little we will be
able to reduce the number of "load" methods on FrameLoader and make sure that they mainly only take a FrameLoadRequest
as an argument.

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):

  • loader/FrameLoadRequest.cpp:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest):
(WebCore::FrameLoadRequest::lockHistory):
(WebCore::FrameLoadRequest::lockBackForwardList):
(WebCore::FrameLoadRequest::shouldSendReferrer):
(WebCore::FrameLoadRequest::allowNavigationToInvalidURL):
(WebCore::FrameLoadRequest::newFrameOpenerPolicy):
(WebCore::FrameLoadRequest::shouldReplaceDocumentIfJavaScriptURL):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::loadFrameRequest):

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

(WebCore::NavigationScheduler::scheduleLocationChange):

  • page/ContextMenuController.cpp:

(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

Source/WebKit/ios:

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::start):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::loadURL):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchCreatePage):

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab):

12:27 PM Changeset in webkit [183497] by fpizlo@apple.com
  • 34 edits
    2 adds
    6 deletes in trunk/Source/JavaScriptCore

DFG should not use or preserve Phantoms during transformations
https://bugs.webkit.org/show_bug.cgi?id=143736

Reviewed by Geoffrey Garen.

Since http://trac.webkit.org/changeset/183207 and http://trac.webkit.org/changeset/183406, it is
no longer necessary to preserve Phantoms during transformations. They are still useful just
before FixupPhase to support backwards propagation analyses. They are still inserted late in the
game in the DFG backend. But transformations don't need to worry about them. Inside a basic
block, we can be sure that so long as the IR pinpoints the place where the value becomes
available in a bytecode register (using MovHint) and so long as there is a SetLocal anytime some
other block would need the value (either for OSR or for DFG execution), then we don't need any
liveness markers.

So, this removes any places where we inserted Phantoms just for liveness during transformation
and it replaces convertToPhantom() with remove(), which just converts the node to a Check. A
Check node only keeps its children so long as those children have checks.

The fact that we no longer convertToPhantom() means that we have to be more careful when
constant-folding GetLocal. Previously we would convertToPhantom() and use the fact that
Phantom(Phi) was a valid construct. It's not valid anymore. So, when constant folding encounters
a GetLocal it needs to insert a PhantomLocal directly. This allows us to simplify
Graph::convertToConstant() a bit. Luckily, none of the other users of this method would see
GetLocals.

The only Phantom-like cruft left over after this patch is:

  • Phantoms before FixupPhase. I kind of like these. It means that before FixupPhase, we can do backwards analyses and rely on the fact that the users of a node in DFG IR are a superset of the users of the original local's live range in bytecode. This is essential for supporting our BackwardsPropagationPhase, which is an important optimization for things like asm.js.


  • PhantomLocals and GetLocals being NodeMustGenerate. See discussion in https://bugs.webkit.org/show_bug.cgi?id=144086. It appears that this is not as evil as the alternatives. The best long-term plan is to simply ditch the ThreadedCPS IR entirely and have the DFG use SSA. For now, so long as any new DFG optimizations we add are block-local and treat GetLocal/SetLocal conservatively, this should all be sound.


This change should be perf-neutral although it does reduce the total work that the compiler
does.

(JSC::DFG::AdjacencyList::justChecks):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGBasicBlock.cpp:

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

  • dfg/DFGBasicBlock.h:

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

  • dfg/DFGCFGSimplificationPhase.cpp:

(JSC::DFG::CFGSimplificationPhase::keepOperandAlive):
(JSC::DFG::CFGSimplificationPhase::mergeBlocks):

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::CPSRethreadingPhase):
(JSC::DFG::CPSRethreadingPhase::clearVariables):
(JSC::DFG::CPSRethreadingPhase::canonicalizeFlushOrPhantomLocalFor):
(JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlock):

  • dfg/DFGCSEPhase.cpp:
  • dfg/DFGCleanUpPhase.cpp: Copied from Source/JavaScriptCore/dfg/DFGPhantomRemovalPhase.cpp.

(JSC::DFG::CleanUpPhase::CleanUpPhase):
(JSC::DFG::CleanUpPhase::run):
(JSC::DFG::performCleanUp):
(JSC::DFG::PhantomRemovalPhase::PhantomRemovalPhase): Deleted.
(JSC::DFG::PhantomRemovalPhase::run): Deleted.
(JSC::DFG::performPhantomRemoval): Deleted.

  • dfg/DFGCleanUpPhase.h: Copied from Source/JavaScriptCore/dfg/DFGPhantomRemovalPhase.h.
  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::addBaseCheck):
(JSC::DFG::ConstantFoldingPhase::fixUpsilons):

  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::run):
(JSC::DFG::DCEPhase::fixupBlock):
(JSC::DFG::DCEPhase::cleanVariables):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupBlock):
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::convertStringAddUse):
(JSC::DFG::FixupPhase::attemptToMakeFastStringAdd):
(JSC::DFG::FixupPhase::checkArray):
(JSC::DFG::FixupPhase::fixIntConvertingEdge):
(JSC::DFG::FixupPhase::fixIntOrBooleanEdge):
(JSC::DFG::FixupPhase::fixDoubleOrBooleanEdge):
(JSC::DFG::FixupPhase::injectTypeConversionsInBlock):
(JSC::DFG::FixupPhase::tryToRelaxRepresentation):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):
(JSC::DFG::FixupPhase::addRequiredPhantom): Deleted.
(JSC::DFG::FixupPhase::addPhantomsIfNecessary): Deleted.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::convertToConstant):
(JSC::DFG::Graph::mergeRelevantToOSR): Deleted.

  • dfg/DFGGraph.h:
  • dfg/DFGInsertionSet.h:

(JSC::DFG::InsertionSet::insertCheck):

  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGNode.cpp:

(JSC::DFG::Node::remove):

  • dfg/DFGNode.h:

(JSC::DFG::Node::replaceWith):
(JSC::DFG::Node::convertToPhantom): Deleted.
(JSC::DFG::Node::convertToCheck): Deleted.
(JSC::DFG::Node::willHaveCodeGenOrOSR): Deleted.

  • dfg/DFGNodeFlags.h:
  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::lowerNonReadingOperationsOnPhantomAllocations):
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):

  • dfg/DFGPhantomCanonicalizationPhase.cpp: Removed.
  • dfg/DFGPhantomCanonicalizationPhase.h: Removed.
  • dfg/DFGPhantomRemovalPhase.cpp: Removed.
  • dfg/DFGPhantomRemovalPhase.h: Removed.
  • dfg/DFGPlan.cpp:

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

  • dfg/DFGPutStackSinkingPhase.cpp:
  • dfg/DFGResurrectionForValidationPhase.cpp: Removed.
  • dfg/DFGResurrectionForValidationPhase.h: Removed.
  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):

  • dfg/DFGStoreBarrierElisionPhase.cpp:

(JSC::DFG::StoreBarrierElisionPhase::elideBarrier):

  • dfg/DFGStrengthReductionPhase.cpp:

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

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):
(JSC::DFG::Validate::validateCPS):
(JSC::DFG::Validate::validateSSA):

  • dfg/DFGVarargsForwardingPhase.cpp:
  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileNoOp):
(JSC::FTL::LowerDFGToLLVM::compilePhantom): Deleted.

11:56 AM Changeset in webkit [183496] by jdiggs@igalia.com
  • 2 edits in trunk/Tools

[GTK][jhbuild] Mesa build failure with llvm 3.6
https://bugs.webkit.org/show_bug.cgi?id=144250

Reviewed by Žan Doberšek.

Bump the version of Mesa to 10.5.4

  • gtk/jhbuild.modules:
11:54 AM Changeset in webkit [183495] by akling@apple.com
  • 7 edits
    3 adds in trunk

Source/JavaScriptCore:
DFG+FTL should generate efficient code for branching on a string's boolean value.
<https://webkit.org/b/144317>

Reviewed by Geoff Garen & Filip Pizlo

Teach Branch nodes about StringUse and have them generate an efficient zero-length string check
instead of dropping out to C++ whenever we branch on a string.

The FTL JIT already handled Branch nodes with StringUse through its use of boolify(), so only
the DFG JIT gets some new codegen logic in this patch.

Test: js/regress/branch-on-string-as-boolean.js (~4.5x speedup)

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitStringBranch):

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

(JSC::DFG::SpeculativeJIT::emitBranch):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitBranch):

LayoutTests:
DFG should generate efficient code for branching on a string's boolean value.
<https://webkit.org/b/144317>

Reviewed by Geoff Garen & Filip Pizlo.

  • js/regress/branch-on-string-as-boolean-expected.txt: Added.
  • js/regress/branch-on-string-as-boolean.html: Added.
  • js/regress/script-tests/branch-on-string-as-boolean.js: Added.
11:36 AM Changeset in webkit [183494] by mmaxfield@apple.com
  • 18 edits
    2 adds in trunk

Source/WebCore:
[Mac] [iOS] Implement font-synthesis CSS property
https://bugs.webkit.org/show_bug.cgi?id=144305

Reviewed by Andreas Kling.

This patch is fairly straightforward, though there are some particular pieces to the patch listed below.

The implementation of this font-synthesis CSS property lives inside FontCacheIOS and FontCacheMac. We already
determine if we should synthesize bold and italics, this CSS property simply guards that decision.

Because FontCache interacts with FontDescriptions and not RenderStyles, this patch moves the source of truth
regarding font-synthesis into FontDescription (from RenderStyle).

Test: fast/css3-text/font-synthesis.html

  • css/CSSPropertyNames.in: Mark font-synthesis as a FontProperty, which means that the relevant state is kept

inside FontDescription. This also means that the property must be marked as a "high priority" property, which
is enforced by it existing at the top of CSSPropertyNames.in. The move to FontDescription must be done so that
FontCacheIOS and FontCacheMac have access to the saved state.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::fontSynthesisFromStyle): Update to look for state in FontDescription instead of RenderStyle.

  • css/CSSSegmentedFontFace.cpp:

(WebCore::CSSSegmentedFontFace::fontRanges): Guard the synthetic bold and synthic italic decision on the new
FontSynthesis state inside FontDescription.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertFontSynthesis): Moved from
StyleBuilderCustom::applyValueFontSynthesis(). This is because of the updated options inside of
CSSPropertyNames.in

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueFontSynthesis): Deleted.

  • platform/graphics/FontDescription.h:

(WebCore::FontDescription::FontDescription): Moved from RenderStyle.
(WebCore::FontDescription::fontSynthesis): Ditto.
(WebCore::FontDescription::setFontSynthesis): Ditto.
(WebCore::FontDescription::initialFontSynthesis): Ditto.
(WebCore::FontDescription::operator==): Update to include new state.

  • platform/graphics/FontCache.h:

(WebCore::FontDescriptionFontDataCacheKey::makeFlagKey): Make FontDescription hashes sensitive to the new
state inside FontDescription.

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::createFontPlatformData): Guard the synthetic bold and synthetic italic decision on the
new FontSynthesis state inside FontDescription.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::FontCache::createFontPlatformData): Ditto.

  • platform/text/TextFlags.h: Move FontSynthesis type from RenderStyleConstants.
  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::fontSynthesis): Moved to FontDescription.
(WebCore::RenderStyle::setFontSynthesis): Ditto.
(WebCore::RenderStyle::initialFontSynthesis): Ditto.

  • rendering/style/RenderStyleConstants.h: Moved FontSynthesis type to TextFlags.
  • rendering/style/StyleRareInheritedData.h: Remove state regarding font synthesis (moved to FontDescription)

LayoutTests:
Implement font-synthesis CSS property
https://bugs.webkit.org/show_bug.cgi?id=144305

Reviewed by Andreas Kling.

Test all combinations of font-weight, font-style, and font-synthesis.

  • fast/css3-text/font-synthesis-expected.html: Added.
  • fast/css3-text/font-synthesis.html: Added.
11:04 AM Changeset in webkit [183493] by Brent Fulgham
  • 3 edits
    1 add in trunk/LayoutTests

[Win] Temporarily disable WebGL support
https://bugs.webkit.org/show_bug.cgi?id=144291

  • platform/win/TestExpectations:
  • platform/win/js/dom/constructor-length-expected.txt: Added.
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
11:04 AM Changeset in webkit [183492] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

VarargsForwardingPhase should only consider MovHints that have the candidate as a child
https://bugs.webkit.org/show_bug.cgi?id=144340

Reviewed by Michael Saboff and Mark Lam.

Since we were considering all MovHints, we'd assume that the CreateDirectArguments or
CreateClosedArguments node was live so long as any MovHinted bytecode variable was alive.
Basically, we'd keep it alive until the end of the block. This maximized the chances of
there being an interfering operation, which would prevent elimination.

The fix is to only consider MovHints that have the arguments candidate as a child. We only
care to track the liveness of those bytecode locals that would need an arguments object
recovery on OSR exit.

This is a speed-up on V8Spider/raytrace and Octane/raytrace because it undoes the regression
introduced in http://trac.webkit.org/changeset/183406.

  • dfg/DFGVarargsForwardingPhase.cpp:
11:04 AM WebKitGTK/StartHacking edited by Andres Gomez
Added link to icecc usage instructions (diff)
11:01 AM Changeset in webkit [183491] by Michael Catanzaro
  • 2 edits in trunk

[GTK] Make all options actually options
https://bugs.webkit.org/show_bug.cgi?id=144106

Reviewed by Martin Robinson.

Use WEBKIT_OPTION_DEFINE to set ENABLE_GTKDOC, ENABLE_INTROSPECTION, ENABLE_X11_TARGET, and
ENABLE_WAYLAND_TARGET.

  • Source/cmake/OptionsGTK.cmake:
10:57 AM Changeset in webkit [183490] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

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

SharedBuffer::copy is not computing the buffer size correctly when having m_dataArray
https://bugs.webkit.org/show_bug.cgi?id=144321

Reviewed by Darin Adler.

Patch correctness covered by existing tests.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::copy): Direct appending to m_dataArray and not using append method as this method updates the SharedBuffer size.

10:44 AM Changeset in webkit [183488] by ap@apple.com
  • 2 edits in trunk/Tools

Disable App Nap in WebKitTestRunner UI process
https://bugs.webkit.org/show_bug.cgi?id=144308

Reviewed by Daniel Bates.

  • WebKitTestRunner/mac/main.mm:

(disableAppNapInUIProcess):
(main):

10:38 AM Changeset in webkit [183487] by jer.noble@apple.com
  • 1 edit in trunk/LayoutTests/ChangeLog

Unreviewed gardening; add results for new tests.

  • media/audio-playback-restriction-autoplay-expected.txt: Added.
  • media/audio-playback-restriction-play-expected.txt: Added.
10:36 AM Changeset in webkit [183486] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Update JHBuild Mesa download directory
https://bugs.webkit.org/show_bug.cgi?id=144318

Update the download directory of Mesa module since the previous one
doesn't exist any more.

Patch by Marcos Chavarría Teijeiro <chavarria1991@gmail.com> on 2015-04-28
Reviewed by Žan Doberšek.

  • gtk/jhbuild.modules:
10:28 AM Changeset in webkit [183485] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[Curl] Memory leak.
https://bugs.webkit.org/show_bug.cgi?id=144327

Reviewed by Brent Fulgham.

When a data url is loaded, the ResourceHandle is not released.

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::ResourceHandleManager::startJob):

10:14 AM Changeset in webkit [183484] by aestes@apple.com
  • 1 edit
    5 adds in branches/safari-600.6-branch/LayoutTests

Unreviewed Mac gardening for safari-600.6-branch.

  • platform/mac-mavericks/media/controls-after-reload-expected.png: Added.
  • platform/mac-mavericks/media/controls-after-reload-expected.txt: Added.
  • platform/mac-wk2/media/controls-after-reload-expected.png: Added.
  • platform/mac-wk2/media/controls-after-reload-expected.txt: Added.
10:05 AM Changeset in webkit [183483] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] PHP scripts fail if HTTP_ORIGIN is not set.
https://bugs.webkit.org/show_bug.cgi?id=144333

Rubberstamped by Brady Eidson.

  • http/tests/security/resources/cors-post-redirect-target.php: Check

that HTTP_ORIGIN key exists before using it to avoid PHP error.

10:05 AM Changeset in webkit [183482] by Yusuke Suzuki
  • 2 edits in trunk/Websites/webkit.org

Fix the link noted 'contribute to features' in status.html
https://bugs.webkit.org/show_bug.cgi?id=144331

Reviewed by Csaba Osztrogonác.

Fix the href of the link to http://www.webkit.org/coding/contributing.html.

  • status.html:
9:41 AM Changeset in webkit [183481] by zandobersek@gmail.com
  • 2 edits in trunk/Tools

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

Roll back the Mesa dependency bump in fear of uncaught
regressions while the testing bots are no-op. (Requested by
zdobersek on #webkit).

Reverted changeset:

"[GTK][jhbuild] Mesa build failure with llvm 3.6"
https://bugs.webkit.org/show_bug.cgi?id=144250
http://trac.webkit.org/changeset/183477

Patch by Commit Queue <commit-queue@webkit.org> on 2015-04-28

9:39 AM Changeset in webkit [183480] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][Mac] Update WebContent process' sandbox profile for AWD
https://bugs.webkit.org/show_bug.cgi?id=144315
<rdar://problem/20719293>

Reviewed by Alexey Proskuryakov.

Update sandbox profile for AWD similarly to what was done for iOS in
r182278.

  • WebProcess/com.apple.WebProcess.sb.in:
8:56 AM Changeset in webkit [183479] by Brent Fulgham
  • 8 edits
    1 add in trunk

[Win] Deactivate WebGL until Windows tests work properly
https://bugs.webkit.org/show_bug.cgi?id=144291
<rdar://problem/20707307>

Reviewed by Zalan Bujtas.

Source/WebKit:

  • WebKit.vcxproj/WebKit/WebKitANGLE.props: Added.
  • WebKit.vcxproj/WebKit/WebKitCommon.props: Remove ANGLE link

libraries from common property sheet.

  • WebKit.vcxproj/WebKit/WebKitDebugWinCairo.props: Reference

the WebKitANGLE property sheet.

  • WebKit.vcxproj/WebKit/WebKitReleaseWinCairo.props: Ditto.

Source/WTF:

  • wtf/FeatureDefines.h: Force WebGL off for Windows builds.

WebKitLibraries:

  • win/tools/vsprops/FeatureDefines.props: Turn off the WEB_GL

feature for the Apple Windows port.

8:52 AM Changeset in webkit [183478] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the Mavericks Debug build after r183467.

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::requester): Removed WEBCORE_EXPORT.
(WebCore::ResourceRequestBase::setRequester): Ditto.

8:47 AM Changeset in webkit [183477] by jdiggs@igalia.com
  • 2 edits in trunk/Tools

[GTK][jhbuild] Mesa build failure with llvm 3.6
https://bugs.webkit.org/show_bug.cgi?id=144250

Reviewed by Žan Doberšek.

Bump the version of Mesa to 10.5.4

  • gtk/jhbuild.modules:
8:19 AM Changeset in webkit [183476] by Csaba Osztrogonác
  • 2 edits
    1 delete in trunk/Source/JavaScriptCore

Remove WinCE cruft from cmake build system
https://bugs.webkit.org/show_bug.cgi?id=144325

Reviewed by Gyuyoung Kim.

  • CMakeLists.txt:
  • create_jit_stubs: Removed.
8:11 AM Changeset in webkit [183475] by Csaba Osztrogonác
  • 1 edit
    1 delete in trunk/Source/WebCore

Remove make-file-arrays.py
https://bugs.webkit.org/show_bug.cgi?id=144324

Reviewed by Gyuyoung Kim.

  • make-file-arrays.py: Removed.
8:03 AM Changeset in webkit [183474] by aestes@apple.com
  • 3 edits in branches/safari-600.6-branch/Tools

Fix webkitpy tests after r183471.

  • Scripts/webkitpy/port/mac_unittest.py:

(test_baseline_search_path): Taught about mac-mavericks.

  • Scripts/webkitpy/tool/commands/rebaseline_unittest.py:

(TestRebaselineTest.test_baseline_directory): Ditto.

7:37 AM Changeset in webkit [183473] by aestes@apple.com
  • 1 edit
    3 adds in trunk/LayoutTests

Add expectations for tests added in r183428 and r183450.

  • js/regress/typed-array-get-set-by-val-profiling-expected.txt: Added.
  • media/audio-playback-restriction-autoplay-expected.txt: Added.
  • media/audio-playback-restriction-play-expected.txt: Added.
7:19 AM Changeset in webkit [183472] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Build fix.

  • platform/network/ios/ResourceRequestIOS.mm:

(WebCore::ResourceRequest::ResourceRequest):

7:19 AM Changeset in webkit [183471] by aestes@apple.com
  • 2 edits in branches/safari-600.6-branch/Tools

Tell mac.py about 'mac-yosemite' so that fallback to 'mac-mavericks' works properly.

  • Scripts/webkitpy/port/mac.py:

(MacPort):

6:35 AM Changeset in webkit [183470] by aestes@apple.com
  • 1 edit
    53 adds in branches/safari-600.6-branch/LayoutTests

Add results to platform/mac-mavericks/ that were previously in a separate repository.

  • platform/mac-mavericks/TestExpectations: Added.
  • platform/mac-mavericks/accessibility/aria-readonly-expected.txt: Added.
  • platform/mac-mavericks/canvas/philip/tests/2d.line.join.parallel-expected.txt: Added.
  • platform/mac-mavericks/css2.1/t0905-c5525-flthw-00-c-g-expected.txt: Added.
  • platform/mac-mavericks/css2.1/t0905-c5526-flthw-00-c-g-expected.txt: Added.
  • platform/mac-mavericks/fast/js/global-constructors-attributes-expected.txt: Added.
  • platform/mac-mavericks/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.txt: Added.
  • platform/mac-mavericks/fast/text/hyphenate-locale-expected.txt: Added.
  • platform/mac-mavericks/fast/text/international/bold-bengali-expected.txt: Added.
  • platform/mac-mavericks/fast/text/international/cjk-segmentation-expected.txt: Added.
  • platform/mac-mavericks/fast/text/international/hindi-spacing-expected.txt: Added.
  • platform/mac-mavericks/fast/text/international/khmer-selection-expected.txt: Added.
  • platform/mac-mavericks/fast/writing-mode/text-orientation-basic-expected.txt: Added.
  • platform/mac-mavericks/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt: Added.
  • platform/mac-mavericks/fonts/cursive-expected.txt: Added.
  • platform/mac-mavericks/http/tests/cache/partitioned-cache-expected.txt: Added.
  • platform/mac-mavericks/http/tests/cache/partitioned-cache-iframe-expected.txt: Added.
  • platform/mac-mavericks/http/tests/xmlhttprequest/head-redirection-expected.txt: Added.
  • platform/mac-mavericks/media/video-controls-captions-trackmenu-includes-enabled-track-expected.txt: Added.
  • platform/mac-mavericks/platform/mac-wk2/TestExpectations: Added.
  • platform/mac-mavericks/platform/mac/accessibility/form-control-value-settable-expected.txt: Added.
  • platform/mac-mavericks/platform/mac/accessibility/press-action-is-first-expected.txt: Added.
  • platform/mac-mavericks/platform/mac/editing/spelling/removing-underline-after-accepting-autocorrection-using-punctuation-expected.txt: Added.
  • platform/mac-mavericks/platform/mac/fast/loader/file-url-mimetypes-expected.txt: Added.
  • platform/mac-mavericks/platform/mac/fast/text/systemFont-expected.png: Added.
  • platform/mac-mavericks/svg/W3C-SVG-1.1/paths-data-03-f-expected.txt: Added.
  • platform/mac-mavericks/svg/custom/use-on-symbol-inside-pattern-expected.txt: Added.
  • platform/mac-mavericks/svg/hixie/intrinsic/003-expected.txt: Added.
  • platform/mac-mavericks/transitions/default-timing-function-expected.txt: Added.
6:30 AM Changeset in webkit [183469] by commit-queue@webkit.org
  • 20 edits
    2 copies in trunk/Source/WebInspectorUI

Web Inspector: add a separate overview for the Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=144245

Patch by Matt Baker <Matt Baker> on 2015-04-28
Reviewed by Timothy Hatcher.

The Timelines tab now supports two view modes, labeled "Timelines" and "Rendering Frames", with each mode
having a seperate timeline overview and selected range. The Timelines mode displays the original time-based
graphs (Network, Layout, and Script), and switching to the Rendering Frames mode displays a frames graph
with a timeline ruler which shows frame indices.

If the rendering frames timeline is supported by the backend, a navigation bar is added to the timelines
sidebar with controls for switching between view modes. In addition to user-triggered view mode changes, the
timelines sidebar will automatically change the current view mode in response to content view changes that
are triggered elsewhere in the UI (for example, when a timeline that does not belong to the current view
mode is selected via the navigation path).

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.get activeRecording): Deleted.
(WebInspector.TimelineManager.prototype.get recordings): Deleted.
Removed unused code.

  • UserInterface/Main.html:

New files.

  • UserInterface/Models/RenderingFrameTimelineRecord.js:

(WebInspector.RenderingFrameTimelineRecord):
(WebInspector.RenderingFrameTimelineRecord.resetFrameIndex):
(WebInspector.RenderingFrameTimelineRecord.prototype.get frameIndex):
(WebInspector.RenderingFrameTimelineRecord.prototype.get frameNumber):

  • UserInterface/Models/TimelineRecording.js:

(WebInspector.TimelineRecording.prototype.reset):
Frame number is now derived from frame index.

  • UserInterface/Views/LinearTimelineOverview.js:

(WebInspector.LinearTimelineOverview):
(WebInspector.LinearTimelineOverview.prototype.canShowTimeline):
New overview class for time-based timeline graphs.

  • UserInterface/Views/RenderingFrameDetailsSidebarPanel.js:

(WebInspector.RenderingFrameDetailsSidebarPanel):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.updateRangeSelection):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._getSelectedRecords):
Changed type of selected range from time to frame indices.

  • UserInterface/Views/RenderingFrameTimelineOverview.js:

(WebInspector.RenderingFrameTimelineOverview.this.timelineRuler.formatLabelCallback):
(WebInspector.RenderingFrameTimelineOverview):
(WebInspector.RenderingFrameTimelineOverview.prototype.canShowTimeline):
New overview class for frame-based timeline graphs.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:

(.timeline-overview > .graphs-container > .timeline-overview-graph.rendering-frame):

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

(WebInspector.RenderingFrameTimelineOverviewGraph):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition.get if):
Updated to use frame index ruler and removed frame combining logic.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView):
Increased column widths.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview > .graphs-container):
(body.mac-platform.legacy .timeline-overview > .graphs-container):
Updated for new ruler height.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype.get secondsPerPixel):
(WebInspector.TimelineOverview.prototype.set secondsPerPixel):
(WebInspector.TimelineOverview.prototype.get visibleDuration):
(WebInspector.TimelineOverview.prototype.set selectionDuration):
(WebInspector.TimelineOverview.prototype.updateLayout):
(WebInspector.TimelineOverview.prototype.get timelineRuler):
(WebInspector.TimelineOverview.prototype.canShowTimeline):
(WebInspector.TimelineOverview.prototype._handleScrollEvent):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview.prototype._timelineRemoved):
(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineOverview.prototype.set currentTime): Deleted.
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded): Deleted.
(WebInspector.TimelineOverview.prototype._needsLayout): Deleted.
Converted to base class. Derived classes provide settings and permitted timeline types.

  • UserInterface/Views/TimelineRecordFrame.css:

(.timeline-record-frame):
(.timeline-record-frame > .frame):
(.timeline-record-frame > .frame > .duration):
(.timeline-record-frame > .frame > .duration.timeline-record-type-network):
(.timeline-record-frame > .frame > .duration.timeline-record-type-layout):
(.timeline-record-frame > .frame > .duration.timeline-record-type-script):
(.timeline-record-frame > .frame > .duration:last-child): Deleted.
New graph frames styles.

  • UserInterface/Views/TimelineRecordFrame.js:

(WebInspector.TimelineRecordFrame):
(WebInspector.TimelineRecordFrame.prototype.get record):
(WebInspector.TimelineRecordFrame.prototype.set record):
(WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement):
(WebInspector.TimelineRecordFrame.prototype.get element): Deleted.
Updated to use frame index ruler.
Removed dropped frames and frame combining logic.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype.shown):
(WebInspector.TimelineRecordingContentView.prototype.hidden):
(WebInspector.TimelineRecordingContentView.prototype.updateLayout):
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype._getRenderingFrameTimeline):
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
(WebInspector.TimelineRecordingContentView.prototype._recordingReset):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView): Deleted.
(WebInspector.TimelineRecordingContentView.prototype.goForward): Deleted.
(WebInspector.TimelineRecordingContentView.prototype.matchTreeElementAgainstCustomFilters): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._contentViewSupplementalRepresentedObjectsDidChange): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._update): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._debuggerPaused): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._debuggerResumed): Deleted.
(WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated): Deleted.
Maintains two timeline overviews, switching between them based on the current content view.
Updated tree element filtering to support both overview rulers.

  • UserInterface/Views/TimelineRuler.css:

(.timeline-ruler > .header):
(body.mac-platform.legacy .timeline-ruler > .header):
(.timeline-ruler > .header > .divider > .label):
(.timeline-ruler > .selection-drag):
(body.mac-platform.legacy .timeline-ruler > .selection-drag):
(.timeline-ruler > .selection-handle):
(body.mac-platform.legacy .timeline-ruler > .selection-handle):
(.timeline-ruler > .header > .divider): Deleted.
(.timeline-ruler > .selection-drag:active): Deleted.
Updated for new ruler height.

  • UserInterface/Views/TimelineRuler.js:

(WebInspector.TimelineRuler):
(WebInspector.TimelineRuler.prototype.set formatLabelCallback):
(WebInspector.TimelineRuler.prototype.updateLayout):
(WebInspector.TimelineRuler.prototype._formatDividerLabelText):
(WebInspector.TimelineRuler.prototype.set allowsClippedLabels): Deleted.
(WebInspector.TimelineRuler.prototype._updateSelection): Deleted.
Added ability to customize label formatting.

  • UserInterface/Views/TimelineSidebarPanel.css:

(.panel.timeline .navigation-bar.timelines-view):
(.sidebar > .panel.navigation.timeline > .title-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timelines):
(.sidebar > .panel.navigation.timeline > .navigation-bar-container):
(.sidebar > .panel.navigation.timeline > .navigation-bar-container > .navigation-bar):
(.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
(.sidebar > .panel.navigation.timeline > .timelines-content):
(.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.
(body.window-inactive .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item): Deleted.
Updated for new navigation bar and ruler height.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.get viewMode):
(WebInspector.TimelineSidebarPanel.prototype.canShowTimeline):
(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline.this._timelineTreeElementMap.get select):
(WebInspector.TimelineSidebarPanel.get this):
(WebInspector.TimelineSidebarPanel._timelineAdded.set this):
Added support for two view modes: Timelines and Rendering Frames.

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

New files.

6:04 AM Changeset in webkit [183468] by timothy@apple.com
  • 9 edits
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Add new tab button to make it easy to bring a closed tab back
https://bugs.webkit.org/show_bug.cgi?id=144297

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector.isTabTypeAllowed):
(WebInspector._tabContentViewForType):
(WebInspector._rememberOpenTabs):
(WebInspector._updateNewTabButtonState):
(WebInspector._newTabItemClicked):
(WebInspector.isNewTabWithTypeAllowed):
(WebInspector.createNewTab):
(WebInspector.activateExtraDomains):
(WebInspector._restoreCookieForOpenTabs):
(WebInspector._saveCookieForOpenTabs):
(WebInspector._isTabTypeAllowed): Deleted.

  • UserInterface/Images/NewTab.svg: Added.
  • UserInterface/Images/NewTabPlus.svg:
  • UserInterface/Main.html:
  • UserInterface/Views/NewTabContentView.css: Added.

(.new-tab.tab.content-view):
(.new-tab.tab.content-view > .tab-item):
(.new-tab.tab.content-view > .tab-item.disabled):
(.new-tab.tab.content-view > .tab-item > .box):
(.new-tab.tab.content-view > .tab-item:not(.disabled):active > .box):
(.new-tab.tab.content-view > .tab-item > .box > img):
(.new-tab.tab.content-view > .tab-item > label):

  • UserInterface/Views/NewTabContentView.js: Added.

(WebInspector.NewTabContentView):
(WebInspector.NewTabContentView.prototype.get type):
(WebInspector.NewTabContentView.prototype._createNewTab):

  • UserInterface/Views/TabBar.css:

(.tab-bar > .item:not(.disabled).selected):
(.tab-bar > .item.new-tab-button:not(.disabled):hover):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover + .item):
(.tab-bar > .item.disabled > .icon):
(.tab-bar > .item.new-tab-button:not(.disabled):hover > .icon):
(.tab-bar > .item.selected): Deleted.
(.tab-bar > .item.new-tab-button:hover): Deleted.
(.tab-bar:not(.animating) > .item:not(.selected):hover + .item): Deleted.
(.tab-bar > .item.new-tab-button:hover > .icon): Deleted.

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar.prototype.set selectedTabBarItem):
(WebInspector.TabBar.prototype._handleMouseDown):

  • UserInterface/Views/TabBarItem.js:

(WebInspector.TabBarItem.prototype.get disabled):
(WebInspector.TabBarItem.prototype.set disabled):

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.addTabForContentView):
(WebInspector.TabBrowser.prototype.showTabForContentView):
(WebInspector.TabBrowser.prototype.closeTabForContentView):

5:49 AM Changeset in webkit [183467] by Antti Koivisto
  • 22 edits
    2 adds in trunk

Network Cache: Disk cache getting filled by YouTube video data
https://bugs.webkit.org/show_bug.cgi?id=144259

Reviewed by Darin Adler.

Source/WebCore:

MSE media is loaded via XHR and tends to eventually fill the cache.

YouTube serves the media chunks cacheable, however they are rarely (if ever) reused.
We can reduce disk writes and keep more useful resources around by not caching them

Test: http/tests/cache/disk-cache/disk-cache-media.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

Set the requester.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::CachedRawResource):

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::streamingMedia):

  • page/DiagnosticLoggingKeys.h:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::adopt):
(WebCore::ResourceRequestBase::copyData):
(WebCore::equalIgnoringHeaderFields):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::requester):
(WebCore::ResourceRequestBase::setRequester):

Add requester type to the request object. Currently this is main resource, xhr or unspecified.

(WebCore::ResourceRequestBase::encodeWithoutPlatformData):
(WebCore::ResourceRequestBase::decodeWithoutPlatformData):

  • platform/network/cf/ResourceRequest.h:

(WebCore::ResourceRequest::deprecatedSetMainResourceRequest): Deleted.
(WebCore::ResourceRequest::deprecatedIsMainResourceRequest): Deleted.

Replace this iOS only field with shared mechanism.

  • platform/network/ios/QuickLook.mm:

(WebCore::QuickLookHandle::create):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

Set the requester.

Source/WebKit2:

MSE media is loaded via XHR and tends to eventually fill the cache.

YouTube serves the media chunks cacheable, however they are rarely (if ever) reused.
We can reduce disk writes and keep more useful resources around by not caching them

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeStoreDecision):

Don't store if the requester is XHR and response has video or audio content type.

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStatistics.cpp:

(WebKit::NetworkCache::storeDecisionToDiagnosticKey):

  • Shared/Network/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
(WebKit::NetworkResourceLoadParameters::encode):
(WebKit::NetworkResourceLoadParameters::decode):

  • Shared/Network/NetworkResourceLoadParameters.h:

The requester type is now part of the ResourceRequest, no need for separate parameter.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):

  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::scheduleLoad):

LayoutTests:

  • http/tests/cache/disk-cache/disk-cache-media-expected.txt: Added.
  • http/tests/cache/disk-cache/disk-cache-media.html: Added.
  • http/tests/cache/disk-cache/resources/cache-test.js:

(generateTestURL):

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

Fix windows build error in WebCore related to bulk build.
https://bugs.webkit.org/show_bug.cgi?id=144313

Patch by Namhoon Kim <nakim@ea.com> on 2015-04-28
Reviewed by Csaba Osztrogonác.

No new tests because there is no behavior change.

  • css/CSSAllInOne.cpp:
  • dom/DOMAllInOne.cpp:
3:45 AM Changeset in webkit [183465] by peavo@outlook.com
  • 3 edits in trunk/WebKitLibraries

[Win] Enable ES6 template literals
https://bugs.webkit.org/show_bug.cgi?id=144316

Reviewed by Csaba Osztrogonác.

  • win/tools/vsprops/FeatureDefines.props:
  • win/tools/vsprops/FeatureDefinesCairo.props:
1:27 AM Changeset in webkit [183464] by aestes@apple.com
  • 1 edit
    15 adds in branches/safari-600.6-branch/LayoutTests

Unreviewed Mac gardening for safari-600.6-branch.

  • platform/mac-mavericks/media/audio-controls-rendering-expected.txt: Added.
  • platform/mac-mavericks/media/controls-strict-expected.txt: Added.
  • platform/mac-mavericks/media/video-no-audio-expected.txt: Added.
  • platform/mac-mavericks/platform/mac/fast/text/systemFont-expected.txt: Added.
  • platform/mac-mavericks/platform/mac/fast/text/vertical-no-sideways-expected.txt: Added.
  • platform/mac-mountainlion/media/video-colorspace-yuv420-expected.png: Added.
  • platform/mac-mountainlion/media/video-colorspace-yuv420-expected.txt: Added.
  • platform/mac-mountainlion/media/video-colorspace-yuv422-expected.png: Added.
  • platform/mac-mountainlion/media/video-colorspace-yuv422-expected.txt: Added.
1:09 AM Changeset in webkit [183463] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

[WK2] API::UserContentURLPattern creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144225

Reviewed by Darin Adler.

Have API::UserContentURLPattern creation functions return Ref<>.
Call-sites are also updated, using and operating on the returned Ref<>
object where possible.

  • Shared/API/APIUserContentURLPattern.h:

(API::UserContentURLPattern::create):

  • Shared/API/c/WKUserContentURLPattern.cpp:

(WKUserContentURLPatternCreate):

1:06 AM Changeset in webkit [183462] by zandobersek@gmail.com
  • 14 edits in trunk/Source/WebKit2

[WK2] API::URLRequest, API::URLResponse creation functions should return Ref<>
https://bugs.webkit.org/show_bug.cgi?id=144224

Reviewed by Darin Adler.

Have API::URLRequest and API::URLResponse creation functions return Ref<>.
The call-sites are also updated, using and operating on the returned Ref<> object
where possible.

  • Shared/API/APIURLRequest.h:

(API::URLRequest::create):

  • Shared/API/APIURLResponse.h:

(API::URLResponse::create):

  • Shared/API/c/WKURLRequest.cpp:

(WKURLRequestCreateWithWKURL):

  • Shared/API/c/mac/WKURLRequestNS.mm:

(WKURLRequestCreateWithNSURLRequest):

  • Shared/API/c/mac/WKURLResponseNS.mm:

(WKURLResponseCreateWithNSURLResponse):

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetDownloadClient):

  • UIProcess/API/C/WKDownload.cpp:

(WKDownloadCopyRequest):

  • UIProcess/API/C/WKNavigationDataRef.cpp:

(WKNavigationDataCopyOriginalRequest):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPagePolicyClient):
(WKPageSetPageUIClient):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

  • UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp:

(WebKit::WebSoupCustomProtocolRequestManagerClient::startLoading):

  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:

(willSendRequestForFrame):

  • WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:

(WebKit::InjectedBundlePagePolicyClient::decidePolicyForNavigationAction):
(WebKit::InjectedBundlePagePolicyClient::decidePolicyForNewWindowAction):
(WebKit::InjectedBundlePagePolicyClient::decidePolicyForResponse):

Note: See TracTimeline for information about the timeline view.