Timeline



May 3, 2015:

10:16 PM Changeset in webkit [183736] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

Crash in SandboxExtension::consume when uploading iWork -tef documents to iCloud
https://bugs.webkit.org/show_bug.cgi?id=144509
rdar://problem/18731910

Reviewed by Daniel Bates.

No test, because testRunner.beginDragWithFiles doesn't work in WKTR, and making
it work is hard.

  • Shared/BlobDataFileReferenceWithSandboxExtension.cpp:

(WebKit::BlobDataFileReferenceWithSandboxExtension::prepareForFileAccess):
(WebKit::BlobDataFileReferenceWithSandboxExtension::revokeFileAccess):

6:20 PM Changeset in webkit [183735] by Gyuyoung Kim
  • 42 edits in trunk/Source/WebCore

Purge PassRefPtr in WebCore/html
https://bugs.webkit.org/show_bug.cgi?id=144543

Reviewed by Andreas Kling.

Change PassRefPtr in create() factory functions with Ref. In some functions,
it returns RefPtr when it might have a chance to return nullptr.

No new tests, no behavior changes.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::sendError):

  • html/DOMFormData.h:

(WebCore::DOMFormData::create):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader):

  • html/HTMLMediaElement.h:
  • html/MediaError.h:

(WebCore::MediaError::create):

  • html/MediaKeyError.h:

(WebCore::MediaKeyError::create):

  • html/canvas/CanvasGradient.h:
  • html/canvas/CanvasProxy.cpp:

(WebCore::CanvasProxy::create):

  • html/canvas/CanvasProxy.h:
  • html/canvas/WebGLActiveInfo.h:

(WebCore::WebGLActiveInfo::create):

  • html/canvas/WebGLContextAttributes.h:
  • html/canvas/WebGLContextGroup.h:
  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLQuery.h:
  • html/canvas/WebGLRenderbuffer.h:
  • html/canvas/WebGLSampler.h:
  • html/canvas/WebGLShader.h:
  • html/canvas/WebGLShaderPrecisionFormat.h:
  • html/canvas/WebGLSync.h:
  • html/canvas/WebGLTexture.h:
  • html/canvas/WebGLTransformFeedback.h:
  • html/canvas/WebGLUniformLocation.h:
  • html/canvas/WebGLVertexArrayObjectOES.h:
  • html/shadow/ImageControlsRootElement.cpp:

(WebCore::ImageControlsRootElement::maybeCreate):

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

(WebCore::MediaControlPanelElement::create):
(WebCore::MediaControlPanelEnclosureElement::create):
(WebCore::MediaControlOverlayEnclosureElement::create):
(WebCore::MediaControlTimelineContainerElement::create):
(WebCore::MediaControlVolumeSliderContainerElement::create):
(WebCore::MediaControlStatusDisplayElement::create):
(WebCore::MediaControlPanelMuteButtonElement::create):
(WebCore::MediaControlVolumeSliderMuteButtonElement::create):
(WebCore::MediaControlPlayButtonElement::create):
(WebCore::MediaControlOverlayPlayButtonElement::create):
(WebCore::MediaControlSeekForwardButtonElement::create):
(WebCore::MediaControlSeekBackButtonElement::create):
(WebCore::MediaControlRewindButtonElement::create):
(WebCore::MediaControlReturnToRealtimeButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlClosedCaptionsTrackListElement::create):
(WebCore::MediaControlTimelineElement::create):
(WebCore::MediaControlPanelVolumeSliderElement::create):
(WebCore::MediaControlFullscreenVolumeSliderElement::create):
(WebCore::MediaControlFullscreenButtonElement::create):
(WebCore::MediaControlFullscreenVolumeMinButtonElement::create):
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::create):
(WebCore::MediaControlTimeRemainingDisplayElement::create):
(WebCore::MediaControlCurrentTimeDisplayElement::create):

  • html/shadow/MediaControlElements.h:
  • html/shadow/MediaControlsApple.h:

(WebCore::MediaControlsAppleEventListener::create):

  • html/shadow/MeterShadowElement.h:

(WebCore::MeterInnerElement::create):
(WebCore::MeterBarElement::create):
(WebCore::MeterValueElement::create):

  • html/shadow/ProgressShadowElement.h:

(WebCore::ProgressInnerElement::create):
(WebCore::ProgressBarElement::create):
(WebCore::ProgressValueElement::create):

  • html/shadow/mac/ImageControlsRootElementMac.cpp:

(WebCore::ImageControlsRootElement::maybeCreate):

  • html/track/TextTrackCueList.h:

(WebCore::TextTrackCueList::create):

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::create):

  • html/track/VTTCue.h:

(WebCore::VTTCue::create):

  • html/track/VTTRegion.h:
  • html/track/VideoTrack.h:
  • html/track/VideoTrackList.h:
  • html/track/WebVTTElement.cpp:

(WebCore::WebVTTElement::create):

  • html/track/WebVTTElement.h:
  • html/track/WebVTTParser.h:
  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerCreateResourceLoader):

4:58 PM Changeset in webkit [183734] by Simon Fraser
  • 5 edits in trunk/Source

Make some static data const
https://bugs.webkit.org/show_bug.cgi?id=144552

Reviewed by Andreas Kling.
Source/JavaScriptCore:

Turn characterSetInfo into const data.

  • yarr/YarrCanonicalizeUCS2.cpp:
  • yarr/YarrCanonicalizeUCS2.h:

Source/WebCore:

Turn baseTable and shiftTable into const data.

  • platform/graphics/FormatConverter.cpp:
3:55 PM Changeset in webkit [183733] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Exception under ContentViewContainer _disassociateFromContentView
https://bugs.webkit.org/show_bug.cgi?id=144546

Reviewed by Brian Burg.

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer.prototype.showContentView):
Make sure to pass the ContentView to _disassociateFromContentView. Also negate the result
of the _backForwardList.some(), since we don't want to dissociate if the content view is
still in the back-forward list.

9:10 AM Changeset in webkit [183732] by Simon Fraser
  • 5 edits
    3 adds in trunk

Assertion failure (!needsLayout()) loading inkedmag.com
https://bugs.webkit.org/show_bug.cgi?id=144528
rdar://problem/20788681

Reviewed by Darin Adler.

Source/WebCore:

When animated GIFs get into catch-up mode, which is common on inkedmag.com,
BitmapImage::advanceAnimation() can synchronously call it's observer's
animationAdvanced(). This could cause RenderImage::repaintOrMarkForLayout()
to repaint or mark itself as needing layout in the middle of painting.
If painting multiple tiles, this could occur when painting the first tile,
and then painting the second tile would assert in RenderView::paint().

It's always wrong to synchronously call the observer when advancing
the animation, since this happens when painting, and you can't repaint
when painting. The long comment and call to startAnimation(DoNotCatchUp)
was required to explain and work around this, but it's simpler to just
advance the animation on a zero-delay timer.

Special handling is required for the case where internalAdvanceAnimation()
is catching up, and reaches the end of a non-repeating image; there, we
have to set a flag and do the notify on a zero-delay timer.

Lots of comment cleanup.

Test: fast/images/set-needs-layout-in-painting.html

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::startTimer): Utility to create and start the timer.
(WebCore::BitmapImage::repetitionCount):
(WebCore::BitmapImage::startAnimation): Early return in the DoNotCatchUp clause.
If skipping, and internalAdvanceAnimation() returns false (meaning it must have
reached the end), then queue up a notify. Change the normal behavior to just
start the timer.
(WebCore::BitmapImage::stopAnimation):
(WebCore::BitmapImage::internalAdvanceAnimation): Notify if the flag is set.

  • platform/graphics/BitmapImage.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint): Add a SetLayoutNeededForbiddenScope to
detect setNeedsLayouts when painting replaced elements, including images.

LayoutTests:

Test that sleeps for a while to force an image into catchup mode.

  • fast/images/resources/spinner.gif: Added.
  • fast/images/set-needs-layout-in-painting-expected.txt: Added.
  • fast/images/set-needs-layout-in-painting.html: Added.
8:20 AM Changeset in webkit [183731] by Carlos Garcia Campos
  • 14 edits
    2 moves
    5 adds in trunk/Source

[GTK][EFL] Unify platform display handling
https://bugs.webkit.org/show_bug.cgi?id=144517

Reviewed by Martin Robinson.

Source/WebCore:

There are several places were we are handling the X display
connection:

  • GLContext::sharedX11Display() creates a new connection.
  • X11Helper::nativeDisplay() creates a new connection.
  • BackingStoreBackendCairoX11 uses the GTK+ shared connection.
  • NetscapePlugin::x11HostDisplay() uses the GTK+/ecore shared connection
  • The rest of the GTK+ code uses the shared GTK+ connection

And then we also have WaylandDisplay and the code to check if the
current display is wayland or X11.
We could unify all these to share the same connection to reduce
the amount of ifdefs and ensure a single connection. That will
also allow us to use "smart pointers" for the X resources that
need a Display* to be freed.

  • PlatformEfl.cmake: Add new files to compilation.
  • PlatformGTK.cmake: Move some files to WebCore_SOURCES sinc ethey

don't use GTK+ anymore, and add new files to compilation.

  • platform/graphics/GLContext.cpp:

(WebCore::GLContext::cleanupActiveContextsAtExit): Remove the
custom X11 connection.
(WebCore::GLContext::createContextForWindow): Check if the shared
display is Wayland to create a EGL context in such case.

  • platform/graphics/PlatformDisplay.cpp: Added.

(WebCore::PlatformDisplay::createPlatformDisplay): Creates the
shared display, using the GTK+/ecore shared connection.
(WebCore::PlatformDisplay::sharedDisplay): Return the shared display.

  • platform/graphics/PlatformDisplay.h: Added.
  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::sharedEGLDisplay): Use PlatformDisplay::sharedDisplay()
to get the native display.
(WebCore::GLContextEGL::createPixmapContext): Ditto.

  • platform/graphics/glx/GLContextGLX.cpp:

(WebCore::GLContextGLX::createWindowContext): Ditto.
(WebCore::GLContextGLX::createPbufferContext): Ditto.
(WebCore::GLContextGLX::createPixmapContext): Ditto.
(WebCore::GLContextGLX::createContext): Ditto.
(WebCore::GLContextGLX::~GLContextGLX): Ditto.
(WebCore::GLContextGLX::defaultFrameBufferSize): Ditto.
(WebCore::GLContextGLX::makeContextCurrent): Ditto.
(WebCore::GLContextGLX::swapBuffers): Ditto.
(WebCore::GLContextGLX::cairoDevice): Ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::ensureGstGLContext): Ditto.

  • platform/graphics/surfaces/glx/X11Helper.cpp:

(WebCore::X11Helper::nativeDisplay): Ditto.

  • platform/graphics/wayland/PlatformDisplayWayland.cpp: Renamed from Source/WebCore/platform/graphics/wayland/WaylandDisplay.cpp.

(WebCore::PlatformDisplayWayland::globalCallback):
(WebCore::PlatformDisplayWayland::globalRemoveCallback):
(WebCore::PlatformDisplayWayland::create): Renamed instance() as
create() since the single instance is now handled by PlatformDisplay.
(WebCore::PlatformDisplayWayland::PlatformDisplayWayland):
(WebCore::PlatformDisplayWayland::createSurface):
(WebCore::PlatformDisplayWayland::createSharingGLContext):

  • platform/graphics/wayland/PlatformDisplayWayland.h: Renamed from Source/WebCore/platform/graphics/wayland/WaylandDisplay.h.
  • platform/graphics/x11/PlatformDisplayX11.cpp: Added.

(WebCore::PlatformDisplayX11::PlatformDisplayX11):
(WebCore::PlatformDisplayX11::~PlatformDisplayX11):

  • platform/graphics/x11/PlatformDisplayX11.h: Added.
  • platform/gtk/GtkUtilities.cpp:

(WebCore::getDisplaySystemType): Deleted.

  • platform/gtk/GtkUtilities.h:

Source/WebKit2:

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseRealize): Use PlatformDisplay::sharedDisplay()
to checkt the display type.
(webkitWebViewBaseCreateWebPage): Ditto.

  • UIProcess/cairo/BackingStoreCairo.cpp:

(WebKit::BackingStore::createBackend): Pass the native X11 shared
display to BackingStoreBackendCairoX11.

  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:

(WebKit::NetscapePlugin::x11HostDisplay): Return the native X11
shared display.

3:14 AM Changeset in webkit [183730] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix Debug build with NETWORK_CACHE enabled and CACHE_PARTITIONING disabled.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::store):

2:54 AM Changeset in webkit [183729] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] API tests crashing on debug builds due to extra unref
https://bugs.webkit.org/show_bug.cgi?id=144508

Reviewed by Mario Sanchez Prada.

The problem is that we were assuming that when a new DOMWindow is
created, the DOM object cache was notified about the previous
DOMWindow being destroyed before objects for the new DOMWindow are
added to the cache. However, that's not always the case and we
only create a DOMWindowObserver for the first DOMWindow. We need
to keep a pointer to the DOMWindow being observed to clear() the
cache and create a new DOMWindowObserver when it changes in the
Frame.

Fixes crashes in several unit tests in debug builds.

  • bindings/gobject/DOMObjectCache.cpp:
12:48 AM Changeset in webkit [183728] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Skip fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html
https://bugs.webkit.org/show_bug.cgi?id=144540

12:13 AM Changeset in webkit [183727] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

Remove timer alignment logging that I added earler today.

  • page/Settings.cpp: (WebCore::Settings::setDOMTimerAlignmentInterval):

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:
Note: See TracTimeline for information about the timeline view.