Timeline



May 11, 2015:

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

Clean up redundant resources in case of failure in GLContextEGL context creation methods
https://bugs.webkit.org/show_bug.cgi?id=144878

Reviewed by Martin Robinson.

GLContextEGL::createWindowContext() and GLContextEGL::createPixmapContext() methods
should clean up the freshly-created resources when prematurely returning due to a
failure.

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::createWindowContext):
(WebCore::GLContextEGL::createPixmapContext):

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

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

Caused crashes on inspector tests (Requested by ap on
#webkit).

Reverted changeset:

"MapDataImpl::add() shouldn't do the same hash lookup twice."
https://bugs.webkit.org/show_bug.cgi?id=144759
http://trac.webkit.org/changeset/184009

10:48 PM Changeset in webkit [184152] by commit-queue@webkit.org
  • 13 edits
    1 delete in trunk/Source/JavaScriptCore

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

Seems to have introduced flaky crashes in many JS tests
(Requested by rniwa on #webkit).

Reverted changeset:

"REGRESSION(r180595): same-callee profiling no longer works"
https://bugs.webkit.org/show_bug.cgi?id=144787
http://trac.webkit.org/changeset/184123

10:38 PM Changeset in webkit [184151] by mitz@apple.com
  • 12 edits
    1 add in trunk

Source/WebCore:
WebCore part of <rdar://problem/20878075> Trying to navigate to an invalid URL loads about:blank, but -[WKWebView URL] returns the invalid URL

Reviewed by Alexey Proskuryakov.

Test: TestWebKitAPI/Tests/WebKit2Cocoa/ProvisionalURLChange.mm

In some cases, trying to navigate to an invalid URL results in navigation to about:blank.
When the about:blank load is committed, the UI process still thinks that the provisional
URL is the original, invalid URL, and updates its state to reflect that that’s the URL that
has been committed.

The provisional URL changes (1) when a provisional load begins, (2) when a server redirect
happens, (3) when the client changes the request in willSendRequest, and (4) in this
about:blank case. For (1) and (2), there are frame loader client callbacks. (3) is client-
initiated. So this patch addresses (4).

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::maybeLoadEmpty): If our request URL is changing to about:blank and
while loading the main resource, call FrameLoaderClient::dispatchDidChangeProvisionalURL.

  • loader/FrameLoaderClient.h: Added dispatchDidChangeProvisionalURL with an empty

implementation.

Source/WebKit2:
WebKit2 part of <rdar://problem/20878075> Trying to navigate to an invalid URL loads about:blank, but -[WKWebView URL] returns the invalid URL

Reviewed by Alexey Proskuryakov.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChangeProvisionalURLForFrame): Added. Update internal state the
same way we update it for server redirects, but don’t make client callbacks. Clients
observing the URL property will see it change.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in: Added DidChangeProvisionalURLForFrame.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidChangeProvisionalURL): Override this new
FrameLoaderClient function to send a DidChangeProvisionalURLForFrame message to the UI
process.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Tools:
Test for <rdar://problem/20878075> Trying to navigate to an invalid URL loads about:blank, but -[WKWebView URL] returns the invalid URL

Reviewed by Alexey Proskuryakov.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/LoadAlternateHTMLString.mm: Fixed copyright header.
  • TestWebKitAPI/Tests/WebKit2Cocoa/ProvisionalURLChange.mm: Added.

(-[ProvisionalURLChangeController webView:didFinishNavigation:]):

9:01 PM Changeset in webkit [184150] by Alan Bujtas
  • 10 edits
    2 adds in trunk

Text is misplaced when custom font does not have space glyph.
https://bugs.webkit.org/show_bug.cgi?id=144879

Reviewed by Myles C. Maxfield

This patch ensures that we use fallback font for the missing space glyph only when the rendered text has space in it.

If a font does not provide all the glyphs required to render the associated text, we initiate fallback fonts. It is done while
measuring the text at layout time. However due to the fact that we always pre-measure space, a font with no space glyph in it is never sufficient.
(even when the text does not require space at all)
Fallback fonts impact line positions through ascent/descent calculation.

Source/WebCore:

Test: fast/text/font-with-no-space-glyph.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

  • rendering/line/BreakingContext.h:

(WebCore::WordTrailingSpace::WordTrailingSpace):
(WebCore::WordTrailingSpace::width):
(WebCore::BreakingContext::handleText):

LayoutTests:

  • fast/ruby/ruby-expansion-cjk-2-expected.html: progression
  • fast/ruby/ruby-expansion-cjk-3-expected.html: progression
  • fast/ruby/ruby-expansion-cjk-4-expected.html: progression
  • fast/ruby/ruby-expansion-cjk-5-expected.html: progression
  • fast/ruby/ruby-expansion-cjk-expected.html: progression
  • fast/text/font-with-no-space-glyph-expected.html: Added.
  • fast/text/font-with-no-space-glyph.html: Added.
  • platform/mac/svg/fonts/svg-font-general-expected.html: progression
7:45 PM Changeset in webkit [184149] by mitz@apple.com
  • 5 edits in trunk/Source/WebKit2

<rdar://problem/19773721> [iOS] Find on page feels like it zooms in too much
https://bugs.webkit.org/show_bug.cgi?id=144891

Reviewed by Darin Adler.

Sometimes, Find on Page’s constant 1.6 scale factor is too much. Smart magnification is
designed to choose a scale factor that is just right.

  • UIProcess/ios/SmartMagnificationController.h:
  • UIProcess/ios/SmartMagnificationController.messages.in: Added Magnify message.
  • UIProcess/ios/SmartMagnificationController.mm:

(WebKit::SmartMagnificationController::magnify): Added. Handle the new message using
-[WKContentView _soomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:].

  • WebProcess/WebPage/ios/FindControllerIOS.mm:

(WebKit::FindController::updateFindIndicator): Instead of zooming to the selection rect,
get the surrounding render rect (the area we would target for a double-tap at the beginning
of the selection), and tell the magnification controller to target it. Use the center of the
start of the selection as the origin.

7:39 PM Changeset in webkit [184148] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Small tidyup in animations code
https://bugs.webkit.org/show_bug.cgi?id=144893

Reviewed by Eric Carlson.

Reading progress(1, 0, 0) in callers of AnimationBase::progress() was confusing,
particularly as the last parameter is a TimingFunction*. Put default values
in the header (with nullptr) and fix the callers. Also fix variable names in
the implementation.

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::progress):

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

(WebCore::ImplicitAnimation::animate):
(WebCore::ImplicitAnimation::getAnimatedStyle):
(WebCore::ImplicitAnimation::blendPropertyValueInStyle):

7:17 PM ApplicationsGtk edited by hendry@iki.fi
kiosk product (diff)
7:11 PM ApplicationsGtk edited by hendry@iki.fi
suckless surf (diff)
7:06 PM Changeset in webkit [184147] by Gyuyoung Kim
  • 20 edits in trunk/Source/WebCore

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

Patch by Gyuyoung Kim <Gyuyoung Kim> on 2015-05-11
Reviewed by Darin Adler.

As a step to remove PassRefPtr, this patch replaces PassRefPtr with Ref in WebCore/rendering.

No new tests, no behavior changes.

  • rendering/HitTestingTransformState.h:

(WebCore::HitTestingTransformState::create):

  • rendering/RenderLayer.cpp:

(WebCore::ClipRects::create):

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::create):
(WebCore::RenderTheme::themeForPage):

  • rendering/RenderThemeGtk.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderTheme::themeForPage):
(WebCore::RenderThemeIOS::create):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderTheme::themeForPage):
(WebCore::RenderThemeMac::create):

  • rendering/RenderThemeSafari.cpp:

(WebCore::RenderThemeSafari::create):
(WebCore::RenderTheme::themeForPage):

  • rendering/RenderThemeSafari.h:
  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::create):
(WebCore::RenderTheme::themeForPage):

  • rendering/RenderThemeWin.h:
  • rendering/TextAutoSizing.h:

(WebCore::TextAutoSizingValue::create):

  • rendering/style/ShapeValue.h:

(WebCore::ShapeValue::createShapeValue):
(WebCore::ShapeValue::createBoxShapeValue):
(WebCore::ShapeValue::createImageValue):

  • rendering/style/StyleCachedImage.h:
  • rendering/style/StyleCachedImageSet.h:
  • rendering/style/StyleGeneratedImage.h:
  • rendering/style/StylePendingImage.h:
  • rendering/style/StyleReflection.h:

(WebCore::StyleReflection::create):

6:54 PM Changeset in webkit [184146] by jacob_nielsen@apple.com
  • 8 edits in trunk/Tools

Fix internal build configuration issues
https://bugs.webkit.org/show_bug.cgi?id=144762

Reviewed by Darin Adler.

Modifies TestWebKitAPI and WebKitTestRunner's xcconfig files to use SDK selectors.

  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/InjectedBundle.xcconfig:
  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/InjectedBundle.xcconfig:
  • WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
6:43 PM Changeset in webkit [184145] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.16-branch/Source

Versioning.

6:43 PM Changeset in webkit [184144] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

6:40 PM Changeset in webkit [184143] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32-branch/Source

Versioning.

6:29 PM Changeset in webkit [184142] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32.1

New tag.

6:17 PM Changeset in webkit [184141] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.7

New tag.

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

[Mac] Update device picker icon when video tracks change
https://bugs.webkit.org/show_bug.cgi?id=144889
<rdar://problem/20907253>

Reviewed by Brent Fulgham.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateHasVideo):

6:12 PM Changeset in webkit [184139] by Brent Fulgham
  • 21 edits in trunk/Source

Scroll snap logic should be triggered when resizing the WebView
https://bugs.webkit.org/show_bug.cgi?id=142590
<rdar://problem/20125088>

Reviewed by Simon Fraser.

Source/WebCore:

Tests coming in a second patch.

Resizing of the main frame or overflow regions was properly recalculating the scroll snap points,
but there was no code to honor these values when window resizing was occurring. The correction was
handled in two ways:

  1. Scrolling thread operations that moved to new snap points needed to notify the main thread that it had shifted to a new snap point, so that the resize code (which happens on the main thread) could ensure that we stayed clamped to the correct 'tile' in the snap region.
  2. Main thread (overflow) resizes were likewise missing code to honor the current snap position after resizing calculations were complete.

This change also required the addition of two indices to the scrollable area to track which scroll
snap point was currently being used. We don't bother with a 'none' case because you cannot have a
'none' state when you have an active set of scroll snap points, and we do not execute this code
if the scroll snap points are null.

The FrameView code was computing updated snap offsets after it had dispatched frame view layout
information to the scrolling thread, which was wrong. This was also corrected.

I think it might be possible to track all of this state inside the ScrollController, but the current
scroll snap architecture destroys and recreates the state each time a new set of interactions starts.
This should be fixed in the future, which would allow us to remove some of this local state.

  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks): Make sure 'updateSnapOffsets' is called prior to
calling 'frameViewLayoutUpdated' so the scrolling thread gets correct updated points. Add a new
call to 'scrollToNearestActiveSnapPoint', which will keep us on our current snap point during
resize (if appropriate).

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::updateScrollSnapOffsetIndices): Added. This finds and notifies
the correct scroll region when a new snap position (index) has been selected by user interaction on
the scrolling thread.
(WebCore::AsyncScrollingCoordinator::deferTestsForReason): Added an assertion for 'isMainThread'.
(WebCore::AsyncScrollingCoordinator::removeTestDeferralForReason): Ditto.

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/AxisScrollSnapOffsets.h:

(WebCore::closestSnapOffset): Modified to also return the selected snap point index so we can track
it to handle resize operations.

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::updateScrollSnapOffsetIndices):

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::updateScrollSnapOffsetIndices): Added method to dispatch the active
horizontal and vertical scroll snap indices back to the main thread.

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

(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent): After the scroll controller processes
the current event, notify the main thread of any change in the active scroll snap index.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::activeScrollSnapOffsetIndexDidChange): Added method to allow ScrollAnimator
clients to find out about the current scroll snap state, which is only known by the ScrollController.
(WebCore::ScrollAnimator::activeScrollSnapOffsetIndexForAxis): Ditto.

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

(WebCore::ScrollView::scrollToNearestActiveSnapPoint): Added method that allows us to set scroll position
to one of our active scroll snap offsets.

  • platform/ScrollView.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::handleWheelEvent): If the active scroll snap offset has changed, make sure we
keep track of the new values for potential resize operations.
(WebCore::ScrollableArea::clearHorizontalSnapOffsets): Make sure to also clear out the current snap index.
(WebCore::ScrollableArea::clearVerticalSnapOffsets): Ditto.
(WebCore::ScrollableArea::nearestActiveSnapPoint): New method that returns an updated IntPoint reflecting
the proper scroll position based on the active scroll snap offset.

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::currentHorizontalSnapPointIndex): Added.
(WebCore::ScrollableArea::setCurrentHorizontalSnapPointIndex): Added.
(WebCore::ScrollableArea::currentVerticalSnapPointIndex): Added.
(WebCore::ScrollableArea::setCurrentVerticalSnapPointIndex): Added.
(WebCore::ScrollableArea::scrollToNearestActiveSnapPoint): Added.

  • platform/cocoa/ScrollController.h:

(WebCore::ScrollControllerClient::activeScrollOffsetIndex): Added new method for clients to implement.
(WebCore::ScrollController::activeScrollSnapOffsetIndexDidChange): Added.
(WebCore::ScrollController::setScrollSnapOffsetIndexDidChange): Added.

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::activeScrollSnapOffsetIndexForAxis): Helper method to return current active
index (if applicable).
(WebCore::ScrollController::setActiveScrollSnapOffsetIndexForAxis): Helper function to safely set
the current active index.
(WebCore::ScrollController::beginScrollSnapAnimation): Updated to keep track of the new active scroll snap
index, as well as whether the current animation actually changed the active snap point offset.

  • platform/cocoa/ScrollSnapAnimatorState.h: Revise to use modern C++ initializers, and to track a new index

that represents the current scroll snap offset.

  • platform/cocoa/ScrollSnapAnimatorState.mm:

(WebCore::ScrollSnapAnimatorState::ScrollSnapAnimatorState): Update for modern C++ syntax.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollToNearestActiveSnapPoint): New method to set scroll position to be one of our
active scroll snap points.
(WebCore::RenderLayer::updateScrollInfoAfterLayout): Add a new call to 'scrollToNearestActiveSnapPoint' so that
we stay on the current scroll snap offset during resizing.

  • rendering/RenderLayer.h:

Source/WebKit2:

  • UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling): Modify use of 'closestSnapOffset' to satisfy the additional
argument I added. This is currently not used for anything on iOS.

  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: Ditto.
6:06 PM Changeset in webkit [184138] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Addressing post-review comments after r184037.

Unreviewed.

No new tests because there is no behavior change.

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::runWidth):

5:58 PM Changeset in webkit [184137] by Brent Fulgham
  • 54 edits in trunk

[Win] Move Windows build target to Windows 7 (or newer)
https://bugs.webkit.org/show_bug.cgi?id=144890
<rdar://problem/20707307>

Reviewed by Anders Carlsson.

Update linked SDK and minimal Windows level to be compatible with
Windows 7 or newer.

Source/JavaScriptCore:

Source/ThirdParty:

  • gtest/msvc/gtest-md.vcxproj:

Source/ThirdParty/ANGLE:

  • ANGLE.vcxproj/libEGL.vcxproj:
  • ANGLE.vcxproj/libGLESv2.vcxproj:
  • ANGLE.vcxproj/preprocessor.vcxproj:
  • ANGLE.vcxproj/translator_common.vcxproj:
  • ANGLE.vcxproj/translator_glsl.vcxproj:
  • ANGLE.vcxproj/translator_hlsl.vcxproj:

Source/WebCore:

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCoreGenerated.vcxproj:
  • WebCore.vcxproj/WebCoreTestSupport.vcxproj:
  • WebCorePrefix.h:
  • config.h:
  • testing/js/WebCoreTestSupportPrefix.h:

Source/WebInspectorUI:

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:

Source/WebKit:

  • WebKit.vcxproj/Interfaces/Interfaces.vcxproj:
  • WebKit.vcxproj/WebKit/WebKit.vcxproj:
  • WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj:

Source/WebKit/win:

  • WebKitPrefix.h:

Source/WTF:

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTFGenerated.vcxproj:
  • config.h:

Tools:

  • DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTree.vcxproj:
  • DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTreeLauncher.vcxproj:
  • DumpRenderTree/DumpRenderTree.vcxproj/ImageDiff/ImageDiff.vcxproj:
  • DumpRenderTree/DumpRenderTree.vcxproj/ImageDiff/ImageDiffLauncher.vcxproj:
  • DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.vcxproj:
  • DumpRenderTree/config.h:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj:
  • WinLauncher/WinLauncher.vcxproj/WinLauncher.vcxproj:
  • WinLauncher/WinLauncher.vcxproj/WinLauncherLib.vcxproj:
  • WinLauncher/stdafx.h:
5:15 PM Changeset in webkit [184136] by akling@apple.com
  • 2 edits in branches/safari-600.7-branch/LayoutTests

commit-log-editor -p ChangeLog

5:09 PM Changeset in webkit [184135] by jdiggs@igalia.com
  • 12 edits in trunk

AX: [ATK] Always include rows in the tree of accessible tables
https://bugs.webkit.org/show_bug.cgi?id=144885

Reviewed by Chris Fleizach.

Source/WebCore:

Remove the code that excluded rows from the tree of accessible tables for
Gtk and Efl, the latter of which inherited the exclusion from the former.

No new tests. We already have several tests which cover table hierarchy.
The associated expectations have been updated as part of this fix.

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::addChildrenFromSection):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetParent):

LayoutTests:

Update the expectations to reflect the rows which are now included in the tree.

  • platform/efl/accessibility/table-attributes-expected.txt: Updated.
  • platform/efl/accessibility/table-cell-spans-expected.txt: Updated.
  • platform/efl/accessibility/table-cells-expected.txt: Updated.
  • platform/efl/accessibility/table-sections-expected.txt: Updated.
  • platform/gtk/accessibility/table-attributes-expected.txt: Updated.
  • platform/gtk/accessibility/table-cell-spans-expected.txt: Updated.
  • platform/gtk/accessibility/table-cells-expected.txt: Updated.
  • platform/gtk/accessibility/table-sections-expected.txt: Updated.
5:06 PM Changeset in webkit [184134] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.16.3

New tag.

4:41 PM Changeset in webkit [184133] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

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

broke JSC tests on Apple Windows bots (Requested by kling on
#webkit).

Reverted changeset:

"Fix run-javascriptcore-tests step on the WinCairo bot"
https://bugs.webkit.org/show_bug.cgi?id=144866
http://trac.webkit.org/changeset/184119

4:27 PM Changeset in webkit [184132] by akling@apple.com
  • 2 edits in trunk/Source/WebKit2

Force a rebuild of JSNPObject.cpp on bots.

  • WebProcess/Plugins/Netscape/JSNPObject.cpp:

(WebKit::JSNPObject::callMethod):

4:21 PM Changeset in webkit [184131] by rniwa@webkit.org
  • 1 edit
    4 adds in trunk/Tools

run-benchmark should support Dromaeo
https://bugs.webkit.org/show_bug.cgi?id=144849

Reviewed by Chris Dumez.

Added the benchmark plans for Dromaeo DOM tests. We only run these tests once since
they can take as much as 15 minutes to run each.

  • Scripts/webkitpy/benchmark_runner/data/patches/Dromaeo.patch: Added.
  • Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-cssquery.plan: Added.
  • Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-dom.plan: Added.
  • Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-jslib.plan: Added.
4:18 PM Changeset in webkit [184130] by timothy@apple.com
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (Tabs): Issues reloading a resource with breakpoints
https://bugs.webkit.org/show_bug.cgi?id=144650

Fix a number of issues with Debugger tab and navigation/reloading:

  • Close old content views in the Debugger tab when main frame navigates.
  • Prune old resource tree elements before attempting to restore a cookie that might match an old resource.
  • Allow breakpoint selections to be restored from a saved cookie.
  • Fix an assert when closing a content view that isn't the current index, but is the current view.
  • Avoid calling closed() multiple times when a ContentView is in the back/forward list more than once.
  • Make restoreStateFromCookie properly set and use the causedByNavigation argument for a longer restore delay.
  • Create a new cookie object per tab instead of it being cumulative from the previous cookie.

Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WebInspector._mainResourceDidChange): Delay calling _restoreCookieForOpenTabs to give time for sidebars
and tabs to respond to the main resource change.
(WebInspector._restoreCookieForOpenTabs): Rename causedByReload to causedByNavigation. Nothing special about
reload since we restore on all navigation.

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView): Support Breakpoint as a represented object, which happens during a cookie restore.
(WebInspector.ContentView.isViewable): Ditto.

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer.prototype.closeAllContentViews): Disassociate if the view is current and not just
the current entry index. This matches other close functions. This fixes an assert in _disassociateFromContentView.
(WebInspector.ContentViewContainer.prototype._disassociateFromContentView): Don't disassociate multiple times. This
avoids calling the closed() function on a view more than once.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype.saveStateToCookie):
(WebInspector.DebuggerSidebarPanel.prototype._mainResourceDidChange): Renamed from _mainResourceChanged.
Close all content views if this is the main frame. Also prune all old resources. Doing this now avoids a flash
of having old and new resources in the tree caused by the default delay in NavigationSidebarPanel's _checkForOldResources.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel): Set _autoPruneOldTopLevelResourceTreeElements for later.
(WebInspector.NavigationSidebarPanel.prototype.get contentTreeOutlineToAutoPrune): Deleted.
(WebInspector.NavigationSidebarPanel.prototype.showDefaultContentView): Fix typo.
(WebInspector.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement): Fix whitespace.
(WebInspector.NavigationSidebarPanel.prototype.pruneOldResourceTreeElements): Added. Broken out from
_checkForOldResources.delayedWork so it can be called manually. Also check all visible tree outlines.
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged): Pass treeElement in an array.
(WebInspector.NavigationSidebarPanel.prototype._checkForOldResourcesIfNeeded): Added.
(WebInspector.NavigationSidebarPanel.prototype._checkForOldResources): Call pruneOldResourceTreeElements on a delay.
(WebInspector.NavigationSidebarPanel.prototype._checkForOldResources.delayedWork): Deleted.
(WebInspector.NavigationSidebarPanel.prototype._checkOutlinesForPendingViewStateCookie): Call _checkForOldResourcesIfNeeded.
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie): Remove array folding code.

  • UserInterface/Views/TabContentView.js:

(WebInspector.TabContentView.prototype.restoreStateFromCookie): Rename causedByReload to causedByNavigation.
(WebInspector.TabContentView.prototype.saveStateToCookie): Don't allow the cookie to build on the old cookie.

3:51 PM Changeset in webkit [184129] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Unreviewed build fix. Add "Duration" as a time metric.

  • public/js/helper-classes.js:
  • public/v2/data.js:

(RunsData.unitFromMetricName):

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

CPS rethreading phase's flush detector flushes way too many SetLocals
https://bugs.webkit.org/show_bug.cgi?id=144819

Reviewed by Geoffrey Garen.

After probably unrelated changes, this eventually caused some arguments elimination to stop
working because it would cause more SetLocals to turn into PutStacks. But it was a bug for
a long time. Basically, we don't want the children of a SetLocal to be flushed. Flushing is
meant to only affect the SetLocal itself.

This is a speed-up on Octane/earley.

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::computeIsFlushed):

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

gmail and google maps fail to load with eager compilation: Failed to insert inline cache for varargs call (specifically, CallForwardVarargs) because we thought the size would be 250 but it ended up being 262 prior to compaction.
https://bugs.webkit.org/show_bug.cgi?id=144854

Reviewed by Oliver Hunt.

This is easy: just lift the threshold. Also remove the need for some duplicate thresholds.
It used to be that Construct required less code, but that's not the case for now.

  • ftl/FTLInlineCacheSize.cpp:

(JSC::FTL::sizeOfCallForwardVarargs):
(JSC::FTL::sizeOfConstructVarargs):
(JSC::FTL::sizeOfConstructForwardVarargs):

3:36 PM Changeset in webkit [184126] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Build fix. jetstream has a local copy, not remote archive.

  • Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan:
3:31 PM Changeset in webkit [184125] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Simplify shim path computation
https://bugs.webkit.org/show_bug.cgi?id=144884
Part of rdar://problem/19708579.

Reviewed by Sam Weinig.

Factor the code that computes the shim path out into a separate function. Also make this mac only
since we don't have any shims on iOS.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::computeProcessShimPath):
(WebKit::addDYLDEnvironmentAdditions):

2:40 PM Changeset in webkit [184124] by rniwa@webkit.org
  • 10 edits
    6 adds
    1 delete in trunk/Tools

run-benchmark should support SunSpider, Kraken and Octane
https://bugs.webkit.org/show_bug.cgi?id=144840

Reviewed by Darin Adler.

Added the support for SunSpider, Kraken, and Octane. Because of the licensing issues, we can't commit the
Kraken source code into the WebKit repository as done for other benchmarks. Instead, we'll dynamically
download it from the remote server using newly added RemoteZipBenchmarkBuilder. We do the same for Octane
for simplicity. Use newly added --local-copy option to specify the location of a local copy if there is any.

Renamed "original_benchmark in the plan file to "local_copy" and added a new optional "remote_archive" to
specify the URL to a remote ZIP file. This optional field is used by Kraken and Octane benchmark plans.

In addition, generalized the ability to run a "create script" in JetStreamBenchmarkBuilder since it's also
needed for SunSpider and Kraken. This feature has now been folded into GenericBenchmarkBuilder.

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/benchmark_builders.json: Added

RemoteZipBenchmarkBuilder for Kraken and removed JetStreamBenchmarkBuilder since GenericBenchmarkBuilder
now has the ability to run an arbitrary "create script".

  • Scripts/run-benchmark:

(main): Added an optional argument, --local-copy, to override the location of the benchmark's local copy.
This also overrides the remote archive URL specified in the plan.

  • Scripts/webkitpy/benchmark_runner/README.md: Updated the description.
  • Scripts/webkitpy/benchmark_runner/benchmark_builder/benchmark_builders.json: Deleted the entry for

JetStreamBenchmarkBuilder.

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:

(GenericBenchmarkBuilder.prepare): Call _fetchRemoteArchive if local_copy is not specified in the plan or
by --local-copy option but remote_archive is specified. Also call self.clean() here instead of relying on
_runCreateScript and _applyPatch to clean after themselves.
(GenericBenchmarkBuilder._runCreateScript): Moved from JetStreamBenchmarkBuilder._runCreateScript since
JetStream, SunSpider, Kraken all use this feature.
(GenericBenchmarkBuilder._copyBenchmarkToTempDir): Use self.name as the destination location instead of
the leaf directory name since the latter is not available when a remote ZIP file is used.
(GenericBenchmarkBuilder._fetchRemoteArchive): Added.
(GenericBenchmarkBuilder._applyPatch): Apply the patch inside destination directory to avoid hard coding
the benchmark name in the patches.

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/jetstream_benchmark_builder.py: Removed.
  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.init): Set self.planName. Also override 'local_copy' when --local-copy option is used.
(BenchmarkRunner.execute): Exit early if neither local_copy nor remote_archive is specified. Prefix the URL
the browser opens by planName as the plan file no longer contains that.

  • Scripts/webkitpy/benchmark_runner/data/patches/JetStream.patch: Changed the path to be relative against

the top directory of JetStream instead of its parent.

  • Scripts/webkitpy/benchmark_runner/data/patches/Kraken.patch: Added.
  • Scripts/webkitpy/benchmark_runner/data/patches/Octane.patch: Added.
  • Scripts/webkitpy/benchmark_runner/data/patches/Speedometer.patch: Changed the path to be relative against

the top directory of JetStream instead of its parent.

  • Scripts/webkitpy/benchmark_runner/data/patches/SunSpider.patch: Added.
  • Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan: Uses GenericBenchmarkBuilder and specifies

the script to run. The entry point was changed to the relative path from the top directory of JetStream as
done in JetStream.patch.

  • Scripts/webkitpy/benchmark_runner/data/plans/kraken.plan: Added.
  • Scripts/webkitpy/benchmark_runner/data/plans/octane.plan: Added.
  • Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan: The entry point was changed to the relative

path from the top directory of JetStream as done in JetStream.patch.

  • Scripts/webkitpy/benchmark_runner/data/plans/sunspider.plan: Added.
2:21 PM Changeset in webkit [184123] by rniwa@webkit.org
  • 13 edits
    1 add in trunk/Source/JavaScriptCore

REGRESSION(r180595): same-callee profiling no longer works
https://bugs.webkit.org/show_bug.cgi?id=144787

Reviewed by Michael Saboff.

This patch introduces a DFG optimization to use NewObject node when the callee of op_create_this is
always the same JSFunction. This condition doesn't hold when the byte code creates multiple
JSFunction objects at runtime as in: function y() { return function () {} }; new y(); new y();

To enable this optimization, LLint and baseline JIT now store the last callee we saw in the newly
added fourth operand of op_create_this. We use this JSFunction's structure in DFG after verifying
our speculation that the callee is the same. To avoid recompiling the same code for different callee
objects in the polymorphic case, the special value of seenMultipleCalleeObjects() is set in
LLint and baseline JIT when multiple callees are observed.

Tests: stress/create-this-with-callee-variants.js

  • bytecode/BytecodeList.json: Increased the number of operands to 5.
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset): op_create_this uses 2nd (constructor) and 4th (callee cache)
operands.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode): Dump the newly added callee cache.
(JSC::CodeBlock::finalizeUnconditionally): Clear the callee cache if the callee is no longer alive.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitCreateThis): Add the instruction to propertyAccessInstructions so that
we can clear the callee cache in CodeBlock::finalizeUnconditionally. Also initialize the newly added
operand.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock): Implement the optimization. Speculate the actual callee to
match the cache. Use the cached callee's structure if the speculation succeeds. Otherwise, OSR exit.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_create_this): Go to the slow path to update the cache unless it's already marked
as seenMultipleCalleeObjects() to indicate the polymorphic behavior.
(JSC::JIT::emitSlow_op_create_this):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_create_this): Ditto.
(JSC::JIT::emitSlow_op_create_this):

  • llint/LowLevelInterpreter32_64.asm:

(_llint_op_create_this): Ditto.

  • llint/LowLevelInterpreter64.asm:

(_llint_op_create_this): Ditto.

  • runtime/CommonSlowPaths.cpp:

(slow_path_create_this): Set the callee cache to the actual callee if it's not set. If the cache has
been set to a JSFunction* different from the actual callee, set it to seenMultipleCalleeObjects().

  • runtime/JSCell.h:

(JSC::JSCell::seenMultipleCalleeObjects): Added.

  • runtime/WriteBarrier.h:

(JSC::WriteBarrierBase::unvalidatedGet): Removed the compile guard around it.

  • tests/stress/create-this-with-callee-variants.js: Added.
2:20 PM Changeset in webkit [184122] by jdiggs@igalia.com
  • 1 edit
    2 adds in trunk/LayoutTests

AX: [ATK] Need expectation files for menu-list-crash2.html for Gtk and Efl
https://bugs.webkit.org/show_bug.cgi?id=144881

Unreviewed GTK+ and EFL gardening.

  • platform/efl/accessibility/menu-list-crash2-expected.txt: Added.
  • platform/gtk/accessibility/menu-list-crash2-expected.txt: Added.
2:14 PM Changeset in webkit [184121] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix

Unreviewed.

  • UIProcess/API/APIUserContentExtensionStore.cpp:

(API::compiledToFile):

2:13 PM Changeset in webkit [184120] by akling@apple.com
  • 6 edits
    1 delete in trunk/Source/JavaScriptCore

PropertyNameArray should use a Vector when there are few entries.
<https://webkit.org/b/144874>

Reviewed by Geoffrey Garen.

Bring back an optimization that was lost in the for-in refactoring.
PropertyNameArray now holds a Vector<AtomicStringImpl*> until there are
enough (20) entries to justify converting to a HashSet for contains().

Also inlined the code while we're here, since it has so few clients and
the call overhead adds up.

~5% progression on Kraken/json-stringify-tinderbox.

  • runtime/PropertyNameArray.cpp: Removed.
  • runtime/PropertyNameArray.h:

(JSC::PropertyNameArray::canAddKnownUniqueForStructure):
(JSC::PropertyNameArray::add):
(JSC::PropertyNameArray::addKnownUnique):

1:42 PM Changeset in webkit [184119] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Fix run-javascriptcore-tests step on the WinCairo bot
https://bugs.webkit.org/show_bug.cgi?id=144866

Reviewed by Darin Adler.

  • Scripts/run-jsc-stress-tests:
1:28 PM Changeset in webkit [184118] by akling@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

Add a Windows-specific result for the new accessibility/menu-list-crash2.html test.

  • platform/win/accessibility/menu-list-crash2-expected.txt: Added.
1:09 PM Changeset in webkit [184117] by Matt Baker
  • 7 edits in trunk/Source

Web Inspector: REGRESSION (r175203): No profile information is shown in Inspector
https://bugs.webkit.org/show_bug.cgi?id=144808

Reviewed by Darin Adler.

Source/JavaScriptCore:

Since a profile can be started after a timeline recording has already begun, we can't assume a zero start time.
The start time for the root node's call entry should be based on the stopwatch used by the ProfileGenerator.

  • profiler/Profile.cpp:

(JSC::Profile::create):
(JSC::Profile::Profile):

  • profiler/Profile.h:
  • profiler/ProfileGenerator.cpp:

(JSC::ProfileGenerator::ProfileGenerator):
(JSC::AddParentForConsoleStartFunctor::operator()):

Source/WebCore:

Profiles started from the console should always use the Inspector environment's shared stopwatch.

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::startFromConsole):

12:54 PM Changeset in webkit [184116] by commit-queue@webkit.org
  • 27 edits
    3 adds in trunk

[Content Extensions] Support domain-specific rules and exceptions.
https://bugs.webkit.org/show_bug.cgi?id=144833

Patch by Alex Christensen <achristensen@webkit.org> on 2015-05-11
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/contentextensions/domain-rules.html
(And lots of API tests)

This patch adds if-domain and unless-domain to the trigger in the JSON format.
if-domain makes the rule apply only to domains in the list.
unless-domain makes the rule apply to domains that are not in the list.

All rules without if-domain or unless-domain are compiled into a set of DFAs. This behavior is unchanged.
All rules with if-domain or unless-domain are compiled into a separate set of DFAs.
The domains are also compiled into another set of DFAs. This makes 3 arrays of DFA bytecode instead of 1.

If there are no domain specific rules, there is no change in behavior.
If there are domain specific rules, the URL will be checked for matches in both
filtersWithoutDomainsBytecode and filtersWithDomainsBytecode. If there are matches from
filtersWithDomainsBytecode then the domain of the main document will be checked with
domainFiltersBytecode to see which of the matches applies to this domain.

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::CombinedURLFilters::isEmpty):
(WebCore::ContentExtensions::CombinedURLFilters::addDomain):

  • contentextensions/CombinedURLFilters.h:

Added addDomain, which adds characters from a domain to the prefix tree directly without using YARR.

  • contentextensions/CompiledContentExtension.cpp:

(WebCore::ContentExtensions::CompiledContentExtension::globalDisplayNoneSelectors):

  • contentextensions/CompiledContentExtension.h:
  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::serializeActions):
(WebCore::ContentExtensions::compileRuleList):
Separate the rules into rules with domains and rules without domains and compile to bytecode.

  • contentextensions/ContentExtensionCompiler.h:

Updated compiler interface to reflect the slightly more complicated structure.

  • contentextensions/ContentExtensionError.cpp:

(WebCore::ContentExtensions::contentExtensionErrorCategory):

  • contentextensions/ContentExtensionError.h:

Added new parsing errors.

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::getDomainList):
(WebCore::ContentExtensions::loadTrigger):
(WebCore::ContentExtensions::loadEncodedRules):

  • contentextensions/ContentExtensionRule.h:

(WebCore::ContentExtensions::Trigger::operator==):
Parse the new domain structures from JSON into the Trigger structure.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
Interpret as much bytecode as necessary to determine which rules apply to this URL and domain.

  • contentextensions/DFABytecode.h:

(WebCore::ContentExtensions::instructionSizeWithArguments):

  • contentextensions/DFABytecodeCompiler.cpp:

(WebCore::ContentExtensions::DFABytecodeCompiler::emitAppendAction):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitTestFlagsAndAppendAction):
(WebCore::ContentExtensions::DFABytecodeCompiler::compileNode):

  • contentextensions/DFABytecodeCompiler.h:
  • contentextensions/DFABytecodeInterpreter.cpp:

(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::actionsFromDFARoot):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):

  • contentextensions/DFABytecodeInterpreter.h:
  • loader/ResourceLoadInfo.h:

Keep track of which actions have an if-domain trigger. If an action is in the
filtersWithDomainsBytecode, then it either has an if-domain or an unless-domain in its trigger.
This requires additional information in the bytecode, so there are two new bytecode types.

Source/WebKit2:

  • Shared/WebCompiledContentExtension.cpp:

(WebKit::WebCompiledContentExtension::filtersWithoutDomainsBytecode):
(WebKit::WebCompiledContentExtension::filtersWithoutDomainsBytecodeLength):
(WebKit::WebCompiledContentExtension::filtersWithDomainsBytecode):
(WebKit::WebCompiledContentExtension::filtersWithDomainsBytecodeLength):
(WebKit::WebCompiledContentExtension::domainFiltersBytecode):
(WebKit::WebCompiledContentExtension::domainFiltersBytecodeLength):
(WebKit::WebCompiledContentExtension::bytecode): Deleted.
(WebKit::WebCompiledContentExtension::bytecodeLength): Deleted.

  • Shared/WebCompiledContentExtension.h:
  • Shared/WebCompiledContentExtensionData.cpp:

(WebKit::WebCompiledContentExtensionData::encode):
(WebKit::WebCompiledContentExtensionData::decode):

  • Shared/WebCompiledContentExtensionData.h:

(WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData):

  • UIProcess/API/APIUserContentExtensionStore.cpp:

(API::ContentExtensionMetaData::fileSize):
(API::encodeContentExtensionMetaData):
(API::decodeContentExtensionMetaData):
(API::compiledToFile):
(API::createExtension):
Keep track of 3 different types of bytecode to be able to handle domain-specific rules.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter):
(TestWebKitAPI::InMemoryCompiledContentExtension::create):
(TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension):
Moved CompiledContentExtensionData from ContentExtensionCompiler.h because it is only used for testing.
(TestWebKitAPI::mainDocumentRequest):
(TestWebKitAPI::subResourceRequest):
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::checkCompilerError):
Added tests for parsing and functionality of if-domain and unless-domain.

LayoutTests:

  • http/tests/contentextensions/domain-rules-expected.txt: Added.
  • http/tests/contentextensions/domain-rules.html: Added.
  • http/tests/contentextensions/domain-rules.html.json: Added.
12:32 PM Changeset in webkit [184115] by yoav@yoav.ws
  • 2 edits in trunk/Source/WebCore

Add srcset, sizes and picture to the features json
https://bugs.webkit.org/show_bug.cgi?id=144862

Reviewed by Benjamin Poulain.

Add the srcset w descriptor and sizes attribute as a new feature in the JSON file,
as well as adding the picture element and srcset's x descriptor as seperate features.

No new tests, since no new functionality added.

  • features.json:
12:01 PM Changeset in webkit [184114] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Fix checkingLogicalHeight initialization in Document::updateLayoutIfDimensionsOutOfDate()
https://bugs.webkit.org/show_bug.cgi?id=144873

Reviewed by Simon Fraser.

Fix checkingLogicalHeight initialization in Document::updateLayoutIfDimensionsOutOfDate().
checkingLogicalHeight should only be initialized to true when
"dimensionsCheck & WidthDimensionsCheck" if isVertical is true.

  • dom/Document.cpp:

(WebCore::Document::updateLayoutIfDimensionsOutOfDate):

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

Merged r184004. rdar://problem/20593291

11:41 AM Changeset in webkit [184112] by basile_clement@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, remove unintended change.

  • dfg/DFGAbstractInterpreterInlines.h:

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

11:30 AM Changeset in webkit [184111] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Make it easy to enable eager/non-concurrent JIT compilation
https://bugs.webkit.org/show_bug.cgi?id=144877

Reviewed by Michael Saboff.

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

  • runtime/Options.h:
11:18 AM Changeset in webkit [184110] by fpizlo@apple.com
  • 3 edits
    7 adds in trunk

We shouldn't promote LoadVarargs to a sequence of GetStacks and PutStacks if doing so would exceed the LoadVarargs' limit
https://bugs.webkit.org/show_bug.cgi?id=144851

Reviewed by Michael Saboff.
Source/JavaScriptCore:


LoadVarargs loads arguments from some object and puts them on the stack. The region of
stack is controlled by a bunch of meta-data, including InlineCallFrame. InlineCallFrame
shouldn't really be edited after ByteCodeParser, so we cannot convert LoadVarargs to
something that uses more stack than the LoadVarargs wanted to.

This check was missing in the ArgumentsEliminationPhase's LoadVarargs->GetStack+PutStack
promoter. This is an important promotion rule for performance, and in cases where we are
compiling truly hot code, the LoadVarargs limit will be at least as big as the length of
the phantom arguments array that this phase sees. The LoadVarargs limit is based on
profiling and the phantom arguments array is a proof; in most cases the profiling is more
conservative.

But, you could write some crazy code where the statically obvious arguments array value is
bigger than what the profiling would have told you. When this happens, this promotion
effectively removes a bounds check. This either results in us clobbering a bunch of stack,
or it means that we never initialize a region of the stack that a later operation will read
(the uninitialization happens because PutStackSinkingPhase removes PutStacks that appear
unnecessary, and a GetMyArgumentByVal will claim not to use the region of the stack outside
the original LoadVarargs limit).

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • tests/stress/load-varargs-elimination-bounds-check-barely.js: Added.

(foo):
(bar):
(baz):

  • tests/stress/load-varargs-elimination-bounds-check.js: Added.

(foo):
(bar):
(baz):

LayoutTests:

  • js/regress/load-varargs-elimination-expected.txt: Added.
  • js/regress/load-varargs-elimination.html: Added.
  • js/regress/script-tests/load-varargs-elimination.js: Added.

(foo):
(bar):
(baz):

  • js/regress/sink-huge-activation-expected.txt: Added.
  • js/regress/sink-huge-activation.html: Added.
11:02 AM Changeset in webkit [184109] by rniwa@webkit.org
  • 4 edits
    2 adds in trunk/Tools

run-benchmark should support Chrome Canary and Firefox Nightly
https://bugs.webkit.org/show_bug.cgi?id=144850

Reviewed by Darin Adler.

Added the support for Chrome Canary, Firefox (release), and Firefox Nightly.

This patch also extracts OSXBrowserDriver to launch and terminate processes on OS X.

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_drivers.json:
  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py: Added.

(OSXBrowserDriver):
(OSXBrowserDriver.prepareEnv): Extracted from ChromeBrowserDriver.prepareEnv.
(OSXBrowserDriver.closeBrowsers): Ditto.
(OSXBrowserDriver.launchProcess): Ditto.
(OSXBrowserDriver.terminateProcesses): Ditto.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:

(OSXChromeDriver): Removed the unused self.chromePreferences.
(OSXChromeDriver.prepareEnv): Moved to OSXBrowserDriver.
(OSXChromeDriver.closeBrowsers): Ditto.
(OSXChromeDriver.launchUrl):
(OSXChromeCanaryDriver): Added.
(OSXChromeCanaryDriver.launchUrl):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py: Added.

(OSXFirefoxDriver): Added.
(OSXFirefoxDriver.launchUrl):
(OSXFirefoxNightlyDriver): Added.
(OSXFirefoxNightlyDriver.launchUrl):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver):
(OSXSafariDriver.closeBrowsers):

10:50 AM Changeset in webkit [184108] by timothy@apple.com
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: NavigationSidebarPanel leaks some event listeners
https://bugs.webkit.org/show_bug.cgi?id=144523

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype.closed):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype.closed):

  • UserInterface/Views/SearchSidebarPanel.js:

(WebInspector.SearchSidebarPanel.prototype.closed):

  • UserInterface/Views/StorageSidebarPanel.js:

(WebInspector.StorageSidebarPanel.prototype.closed):

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel.prototype.closed):

10:47 AM Changeset in webkit [184107] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSON.stringify shouldn't use generic get() to access Array.length
<https://webkit.org/b/144847>

Reviewed by Geoffrey Garen.

If the value being serialized is a JSArray object, we can downcast and call its
length() directly instead of doing a generic property lookup.

0.5% progression on Kraken/json-stringify-tinderbox.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Holder::appendNextProperty):

10:38 AM Changeset in webkit [184106] by timothy_horton@apple.com
  • 8 edits in trunk

Page overlay action context override should indicate the source of the request
https://bugs.webkit.org/show_bug.cgi?id=144832
<rdar://problem/20562594>

Reviewed by Darin Adler.

  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
  • WebProcess/WebPage/WebPageOverlay.cpp:

(WebKit::WebPageOverlay::actionContextForResultAtPoint):

  • WebProcess/WebPage/WebPageOverlay.h:

(WebKit::WebPageOverlay::Client::actionContextForResultAtPoint):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performActionMenuHitTestAtLocation):
Add a parameter to WKBundlePageOverlayActionContextForResultAtPoint so that
clients can tell whether the requested action context should be targetted
at an action menu or immediate action.

  • TestWebKitAPI/Tests/WebKit2ObjC/ActionMenusBundle.mm:

(TestWebKitAPI::ActionMenuTest::actionContextForResultAtPoint):

10:27 AM Changeset in webkit [184105] by dbates@webkit.org
  • 30 edits in trunk/Source

[iOS] Close all open databases in expiration handler of process assertion
https://bugs.webkit.org/show_bug.cgi?id=144661
<rdar://problem/20845052>

Reviewed by Darin Adler.

Source/WebCore:

Expose functionality in WebCore to close all open databases. Closing a SQLite database
will interrupt any in-progress database transactions.

  • Modules/webdatabase/AbstractDatabaseServer.h:
  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::closeAllDatabases): Added; turns around and calls DatabaseServer::closeAllDatabases().

  • Modules/webdatabase/DatabaseManager.h: Export DatabaseManager::closeAllDatabases() so that

we can call in from WebKit2.

  • Modules/webdatabase/DatabaseServer.cpp:

(WebCore::DatabaseServer::closeAllDatabases): Added; turns around and calls DatabaseTracker::closeAllDatabases().

  • Modules/webdatabase/DatabaseServer.h:
  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::closeAllDatabases): Added; closes all open databases.

  • Modules/webdatabase/DatabaseTracker.h: Export DatabaseTracker::closeAllDatabases() so that

we can call in from Legacy WebKit.

Source/WebKit/mac:

For Legacy WebKit, close all open databases when the process assertion expiration
handler is called.

  • Storage/WebDatabaseManager.mm:

(+[WebDatabaseManager startBackgroundTask]): Call DatabaseTracker::tracker().closeAllDatabases()
in the expiration handler to close all open databases. As a side effect of closing
a database all in-progress database transactions are interrupted.

Source/WebKit2:

For WebKit2, close all open databases when the process assertion expiration
handler is called.

When the process assertion expiration handler is called we dispatch a synchronous
message called ProcessWillSuspendImminently to the {Web, Network} processes to inform
them that they will be suspended imminently. The {Web, Network} process will always
service this message regardless if they were waiting for another message. In the
WebProcess, we will close all open databases among other tasks upon receiving this
message. In the NetworkProcess, we will purge some data from memory.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didReceiveSyncMessage): Modified to call NetworkProcess::didReceiveSyncNetworkProcessMessage()
to process the synchronous ProcessWillSuspendImminently message.
(WebKit::NetworkProcess::processWillSuspendImminently): Added; free some memory.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in: Added synchronous message ProcessWillSuspendImminently.
  • Shared/ChildProcessProxy.h:

(WebKit::ChildProcessProxy::sendSync): Added parameter sendSyncFlags so that we can send
a sync message with flag IPC::InterruptWaitingIfSyncMessageArrives to cause the {Web, Network}Process
to process the message regardless of whether it is waiting for another message.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendProcessWillSuspendImminently): Added. Sends the message
ProcessWillSuspendImminently to the NetworkProcess.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/ProcessAssertion.cpp:

(WebKit::ProcessAndUIAssertion::setClient): Added.

  • UIProcess/ProcessAssertion.h: Added abstract class ProcessAssertionClient.

(WebKit::ProcessAssertionClient::~ProcessAssertionClient): Added.
(WebKit::ProcessAssertion::setClient): Added.
(WebKit::ProcessAssertion::client): Added.

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::didConnectToProcess):
(WebKit::ProcessThrottler::assertionWillExpireImminently): Added; implements the ProcessAssertionClient
interface. Notify the process throttler clients that the assertion is near expiration.

  • UIProcess/ProcessThrottler.h:
  • UIProcess/ProcessThrottlerClient.h: Added
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::sendProcessWillSuspendImminently): Added. Sends the message
ProcessWillSuspendImminently to the WebProcess.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager addClient:]): Added.
(-[WKProcessAssertionBackgroundTaskManager removeClient:]): Added.
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]): Modified expiration handler
to notify ProcessAssertionClient clients that the assertion is near expiration.
(WebKit::ProcessAssertion::~ProcessAssertion): Remove the client on destruction.
(WebKit::ProcessAndUIAssertion::setClient): Added.

  • WebProcess/WebCoreSupport/WebDatabaseManager.cpp:

(WebKit::WebDatabaseManager::closeAllDatabases): Added; turns around and calls DatabaseManager::closeAllDatabases().

  • WebProcess/WebCoreSupport/WebDatabaseManager.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didReceiveSyncMessage): Call WebProcess::didReceiveSyncWebProcessMessage() to process
the synchronous ProcessWillSuspendImminently message. Removed logging for an unhandled synchronous message
since WebProcess::didReceiveSyncWebProcessMessage() will ASSERT_NOT_REACHED() for such a message.
(WebKit::WebProcess::prepareToSuspend): Extracted code from WebProcess::processWillSuspend() so that it can
be used from both WebProcess::processWillSuspend() and WebProcess::processWillSuspendImminently(). And modified
it to conditionally dispatch a ProcessReadyToSuspend message to the WebProcessProxy. We only want to dispatch
such a message as part of a coordinated suspension by the ProcessThrottler. That is, we do not want to dispatch
the ProcessReadyToSuspend message when the background assertion is near expiration (i.e. WebProcess::processWillSuspendImminently()
is called).
(WebKit::WebProcess::processWillSuspendImminently): Added. Suspend all open databases among other tasks.
(WebKit::WebProcess::processWillSuspend): Implemented in terms of WebProcess::prepareToSuspend().
(WebKit::WebProcess::processSuspensionCleanupTimerFired): Modified to conditionally dispatch a ProcessReadyToSuspend
message to the WebProcessProxy.
(WebKit::WebProcess::processDidResume): Stop the suspension cleanup timer, which may be active if the WebProcess
did not mark all its graphics layers as volatile before process suspension.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in: Added synchronous message ProcessWillSuspendImminently.
9:26 AM Changeset in webkit [184104] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

WebContent crash under com.apple.WebCore: WebCore::WebKitCSSResourceValue::isCSSValueNone const + 6
https://bugs.webkit.org/show_bug.cgi?id=144870
rdar://problem/20727702

Reviewed by Simon Fraser.

No repro but we are seeing null pointer crashes like this:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 com.apple.WebCore 0x00007fff92da5706 WebCore::WebKitCSSResourceValue::isCSSValueNone() const + 6
1 com.apple.WebCore 0x00007fff93382b48 WebCore::MaskImageOperation::isCSSValueNone() const + 24
2 com.apple.WebCore 0x00007fff92e0475e WebCore::FillLayer::hasNonEmptyMaskImage() const + 30

  • platform/graphics/MaskImageOperation.cpp:

(WebCore::MaskImageOperation::MaskImageOperation):
(WebCore::MaskImageOperation::isCSSValueNone):

This would crash like this if both m_styleImage and m_cssMaskImageValue are null.
There are no obvious guarantees that this doesn't happen. Two of the constructor variants allow it
and there is setImage which may turn m_styleImage null later too.

Fix by making null m_cssMaskImageValue always signify CSSValueNone.

(WebCore::MaskImageOperation::cssValue):

8:47 AM Changeset in webkit [184103] by Carlos Garcia Campos
  • 6 edits
    4 adds in releases/WebKitGTK/webkit-2.8

Merge r183436 - Form control may be associated with the wrong HTML Form element after form id change
https://bugs.webkit.org/show_bug.cgi?id=133456
<rdar://problem/17095055>

Reviewed by Andy Estes.

Source/WebCore:

Fixes an issue where a form control may be associated with the wrong HTML Form element
after the id of the HTML Form element associated with the form control is changed when
there is more than one HTML Form element with the same id in the document. Specifically,
a form control that has an HTML form attribute value X will always be associated with
some HTML Form element f where f.id = X regardless of whether f.id is subsequently
changed.

Tests: fast/forms/change-form-id-to-be-unique-then-submit-form.html

fast/forms/change-form-id-to-be-unique.html

  • dom/Element.cpp:

(WebCore::Element::attributeChanged): Notify observers when the id of an element changed.
(WebCore::Element::updateId): Added parameter NotifyObservers (defaults to NotifyObservers::Yes),
as to whether we should notify observers of the id change.
(WebCore::Element::updateIdForTreeScope): Ditto.
(WebCore::Element::willModifyAttribute): Do not notify observers of the id change immediately. As
indicated by the name of this method, we plan to modify the DOM attribute id of the element, but
we have not actually modified it when this method is called. Instead we will notify observers
in Element::attributeChanged(), which is called after the DOM attribute id is modified.
(WebCore::Element::cloneAttributesFromElement): Ditto.

  • dom/Element.h: Defined enum class NotifyObservers.
  • dom/TreeScope.cpp:

(WebCore::TreeScope::addElementById): Added boolean parameter notifyObservers (defaults to true)
as to whether we should dispatch a notification to all observers.
(WebCore::TreeScope::removeElementById): Ditto.

  • dom/TreeScope.h:

LayoutTests:

Add tests to ensure that we associate the correct HTML Form element with a
<select> after changing the id of its associated HTML form element.

  • fast/forms/change-form-id-to-be-unique-expected.txt: Added.
  • fast/forms/change-form-id-to-be-unique-then-submit-form-expected.txt: Added.
  • fast/forms/change-form-id-to-be-unique-then-submit-form.html: Added.
  • fast/forms/change-form-id-to-be-unique.html: Added.
8:43 AM WebKitGTK/2.8.x edited by Michael Catanzaro
Propose r184072 and split out OS X merges (diff)
8:40 AM Changeset in webkit [184102] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Gardening 11th May.
https://bugs.webkit.org/show_bug.cgi?id=144863

Unreviewed.

Patch by Marcos Chavarría Teijeiro <chavarria1991@gmail.com> on 2015-05-11

  • platform/gtk/TestExpectations:
8:30 AM Changeset in webkit [184101] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r183404 - Fix viewport units in Media Queries
https://bugs.webkit.org/show_bug.cgi?id=144260

Reviewed by Darin Adler.

Source/WebCore:

This patch makes sure that viewport units are considered "length units"
in the context of Media Queries, by having MediaQueryExp use the unit logic
that is in CSSPrimitiveValue.
It does that by turning the relevant methods in CSSPrimitiveValue into static.

It also makes sure that the logic for "resolution units" is not maintained separately
in MediaQueryExp, to avoid similiar issues in the future with resolution units.

Test: fast/media/mq-viewport-units.html

  • css/CSSPrimitiveValue.h:

(WebCore::CSSPrimitiveValue::isViewportPercentageLength): Added a static variant.
(WebCore::CSSPrimitiveValue::isLength): Added a static variant.
(WebCore::CSSPrimitiveValue::isResolution): Added a static variant.

  • css/MediaQueryExp.cpp:

(WebCore::featureWithValidPositiveLenghtOrNumber): Call CSSPrimitiveValue's length unit logic.
(WebCore::featureWithValidDensity): Call CSSPrimitiveValue's resolution unit logic.

LayoutTests:

These tests make sure that viewport units are working as expected inside of Media Queries.

  • fast/media/mq-viewport-units-expected.txt: Added.
  • fast/media/mq-viewport-units.html: Added.
8:18 AM Changeset in webkit [184100] by Carlos Garcia Campos
  • 2 edits
    1 add in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r183291 - [JSC] When inserting a NaN into a Int32 array, we convert it to DoubleArray then to ContiguousArray
https://bugs.webkit.org/show_bug.cgi?id=144169

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

  • runtime/JSObject.cpp:

(JSC::JSObject::convertInt32ForValue):
DoubleArray do not store NaN, they are used for holes.
What happened was:
1) We fail to insert the NaN in the Int32 array because it is a double.
2) We were converting the array to DoubleArray.
3) We were trying to insert the value again. We would fail again because

DoubleArray does not store NaN.

4) We would convert the DoubleArrayt to Contiguous Array, converting the values

to boxed values.

  • tests/stress/int32array-transition-on-nan.js: Added.

The behavior is not really observable. This only test nothing crashes in those
cases.

(insertNaNWhileFilling):
(testInsertNaNWhileFilling):
(insertNaNAfterFilling):
(testInsertNaNAfterFilling):
(pushNaNWhileFilling):
(testPushNaNWhileFilling):

8:15 AM Changeset in webkit [184099] by Carlos Garcia Campos
  • 5 edits
    9 adds in releases/WebKitGTK/webkit-2.8

Merge r183280,r183672 - Origin header is preserved on cross-origin redirects.
https://bugs.webkit.org/show_bug.cgi?id=144157.

Reviewed by Sam Weinig.

Source/WebCore:

Tests: http/tests/security/cors-post-redirect-301.html

http/tests/security/cors-post-redirect-302.html
http/tests/security/cors-post-redirect-307.html
http/tests/security/cors-post-redirect-308.html

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::willSendRequest): Always clear any origin header for cross-origin redirects.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::willSendRequest): Ditto.

LayoutTests:

  • http/tests/security/cors-post-redirect-301-expected.txt: Added.
  • http/tests/security/cors-post-redirect-301.html: Added.
  • http/tests/security/cors-post-redirect-302-expected.txt: Added.
  • http/tests/security/cors-post-redirect-302.html: Added.
  • http/tests/security/cors-post-redirect-307-expected.txt: Added.
  • http/tests/security/cors-post-redirect-307.html: Added.
  • http/tests/security/cors-post-redirect-308-expected.txt: Added.
  • http/tests/security/cors-post-redirect-308.html: Added.
  • http/tests/security/resources/cors-post-redirect-target.php: Added.

[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.

8:08 AM Changeset in webkit [184098] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.8

Merge r183275 - Made Object.prototype.proto native getter and setter check that this object not null or undefined
https://bugs.webkit.org/show_bug.cgi?id=141865
rdar://problem/19927273

Reviewed by Filip Pizlo.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncProtoGetter):
(JSC::globalFuncProtoSetter):

LayoutTests:
Added tests to ensure that Object.prototype.proto native getter and setter do not coerce undefined to this
https://bugs.webkit.org/show_bug.cgi?id=141865
rdar://problem/19927273

Reviewed by Filip Pizlo.

  • js/script-tests/sloppy-getter-setter-global-object.js: Added.
  • js/sloppy-getter-setter-global-object-expected.txt: Added.
  • js/sloppy-getter-setter-global-object.html: Added.
8:08 AM Changeset in webkit [184097] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: Crash at WebCore::AccessibilityMenuList::addChildren()
https://bugs.webkit.org/show_bug.cgi?id=144860

Reviewed by Mario Sanchez Prada.

Source/WebCore:

There were some unsafe pointer accesses in AccessibilityMenuList code that needed to be cleaned up.

Test: accessibility/menu-list-crash2.html

  • accessibility/AccessibilityMenuList.cpp:

(WebCore::AccessibilityMenuList::addChildren):

LayoutTests:

  • accessibility/menu-list-crash2-expected.txt: Added.
  • accessibility/menu-list-crash2.html: Added.
7:00 AM Changeset in webkit [184096] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.8/Source

Merge r183255 - [SOUP] Use a webkit subdirectory for the disk cache
https://bugs.webkit.org/show_bug.cgi?id=144048

Reviewed by Martin Robinson.

Source/WebCore:

Add a static method to SoupNetworkSession to clear a soup cache
given its directory.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::strIsNumeric):
(WebCore::SoupNetworkSession::clearCache):

  • platform/network/soup/SoupNetworkSession.h:

Source/WebKit2:

Recent versions of libsoup remove any file in cache dir not
referenced by the index when the cache is loaded to workaround
leaked resources when load/dump is unbalanced for whatever reason,
like a crash. We currently use $XDG_CACHE_HOME/app-name as default
disk cache directory, but that directory could be used by apps to
cache other things, and the soup cache might end up deleting other
stuff. The soup cache assumes the given directory is only for the
disk cache, so we should ensure that.

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformInitializeNetworkProcess): Append
webkit to the given disk cache and clear the previous soup cache if it exists.

  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformInitializeWebProcess): Ditto.

6:43 AM Changeset in webkit [184095] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.8/Source

Merge r183179 - [WK2] WebDiagnosticLoggingClient is leaking
https://bugs.webkit.org/show_bug.cgi?id=144089
<rdar://problem/19706214>

Reviewed by Darin Adler.

WebDiagnosticLoggingClient is leaking. It is constructed inside WebPage
constructor but there is no code destroying it.

This patch adds a new xxxDestroyed() virtual function to
DiagnosticLoggingClient and that is overriden in
WebDiagnosticLoggingClient to call "delete this". This is the same
pattern as for other WK2 clients (e.g. WebFrameLoaderClient,
WebProgressTrackerClient).

Source/WebCore:

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

(WebCore::MainFrame::~MainFrame):

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::mainFrameDestroyed):

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
6:41 AM Changeset in webkit [184094] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r183178 - CrashTracer: WebProcess at com.apple.WebCore: WebCore::toScriptElementIfPossible + 4
https://bugs.webkit.org/show_bug.cgi?id=144050
rdar://problem/15534973

Reviewed by Chris Dumez.

We are seeing null Element pointer crashes with this stack:

47 com.apple.WebCore: WebCore::toScriptElementIfPossible + 4 <==
47 com.apple.WebCore: WebCore::ScriptRunner::timerFired + 452
47 com.apple.WebCore: WebCore::ThreadTimers::sharedTimerFiredInternal + 175

The most likely cause seems to be that this code

ASSERT(m_pendingAsyncScripts.contains(scriptElement));
m_scriptsToExecuteSoon.append(m_pendingAsyncScripts.take(scriptElement));

in ScriptRunner::notifyScriptReady fails to find scriptElement and we are left with a null entry in
m_scriptsToExecuteSoon. However I haven't managed to repro this or find the exact path how this
could happen. The related code is fragile with lot of state (in ScriptElement class)
and involves many opportunities for re-entry via scripts.

No repro, no test case.

  • dom/ScriptRunner.cpp:

(WebCore::ScriptRunner::timerFired):

Paper this over by adding a null check. We could check m_pendingAsyncScripts.take() above
but this also covers possibility this is caused by something else.

6:38 AM Changeset in webkit [184093] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8

Merge r183088 - [Cairo] Implement Path::addPath
https://bugs.webkit.org/show_bug.cgi?id=130580

Reviewed by Dirk Schulze.

Source/WebCore:

Add support for addPath method for ports using cairo.
This patch is originally authored by Jae Hyun Park <jaepark@webkit.org>.

Test: fast/canvas/canvas-path-addPath.html

  • platform/graphics/cairo/PathCairo.cpp:

(WebCore::Path::addPath): Implement addPath for cairo.

LayoutTests:

Enable addPath testcase in EFL port.

  • platform/efl/TestExpectations:
6:32 AM Changeset in webkit [184092] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r183064 - Use ASSERT_WITH_SECURITY_IMPLICATION() for NoEventDispatchAssertion
https://bugs.webkit.org/show_bug.cgi?id=143971

Reviewed by Darin Adler.

Use ASSERT_WITH_SECURITY_IMPLICATION() for NoEventDispatchAssertion as
firing JS events can cause arbitrary JS execution which often leads to
security bugs when event firing is forbidden. For e.g. firing events
from ActiveDOMObject::suspend() means JS can construct or destroy
ActiveDOMObjects while we are iterating over them.

  • dom/ContainerNode.cpp:

(WebCore::dispatchChildInsertionEvents):
(WebCore::dispatchChildRemovalEvents):

  • dom/ContainerNodeAlgorithms.h:

(WebCore::ChildNodeInsertionNotifier::notify):

  • dom/Document.cpp:

(WebCore::Document::dispatchWindowEvent):
(WebCore::Document::dispatchWindowLoadEvent):

  • dom/Element.cpp:

(WebCore::Element::dispatchFocusInEvent):
(WebCore::Element::dispatchFocusOutEvent):

  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchEvent):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::fireEventListeners):

  • dom/Node.cpp:

(WebCore::Node::dispatchSubtreeModifiedEvent):
(WebCore::Node::dispatchDOMActivateEvent):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForPageCache):
(WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
(WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
(WebCore::ScriptExecutionContext::stopActiveDOMObjects):
(WebCore::ScriptExecutionContext::willDestroyActiveDOMObject):

  • dom/WebKitNamedFlow.cpp:

(WebCore::WebKitNamedFlow::dispatchRegionOversetChangeEvent):

6:31 AM Changeset in webkit [184091] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r183053 - REGRESSION (r177494): -webkit-mask-image: with data URI fails on non-local files
https://bugs.webkit.org/show_bug.cgi?id=141857

Reviewed by Dirk Schulze.

Source/WebCore:

r177494 regressed loading of data URIs in masks with remote content, triggering
a cross-domain error which occurs because the mask loading happened via a separate
SVGDocument.

Fix by checking for data URIs at parsing time, which is what we used to do.

Test: http/tests/css/data-uri-mask.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseMaskImage):

  • svg/SVGURIReference.h:

(WebCore::SVGURIReference::isExternalURIReference):

LayoutTests:

Ref test with a masked green square. Has to be an http test to trigger the
origin checking.

  • http/tests/css/data-uri-mask-expected.html: Added.
  • http/tests/css/data-uri-mask.html: Added.
6:12 AM Changeset in webkit [184090] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r182980 - Clients sometimes block for 500ms in waitForPossibleGeometryUpdates
https://bugs.webkit.org/show_bug.cgi?id=143901
<rdar://problem/20488655>

Reviewed by Anders Carlsson.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::waitForMessage):
InterruptWaitingIfSyncMessageArrives already cancels waitForMessage if
a sync message arrives while waiting, but it should also avoid waiting
if there's a sync message already in the queue when the waiting starts,
as that will have the same nasty effect.

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):
If a synchronous message comes in from the Web process while we're waiting,
cancel our synchronous wait for DidUpdateGeometry. This will cause the size
change to not synchronize with the Web process' painting, but that is better
than pointlessly blocking for 500ms.

6:10 AM Changeset in webkit [184089] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r182979 - Possible null pointer dereference in WebDiagnosticLoggingClient::logDiagnosticMessageWithValue()
https://bugs.webkit.org/show_bug.cgi?id=143899
<rdar://problem/20584215>

Reviewed by Anders Carlsson.

WebDiagnosticLoggingClient::logDiagnosticMessage*() methods failed to
check that m_page.corePage() was non-null before dereferencing, thus
causing crashes when it is null.

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):

6:08 AM Changeset in webkit [184088] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r182974 - Large values for line-height cause integer overflow in RenderStyle::computedLineHeight
https://bugs.webkit.org/show_bug.cgi?id=143863

Reviewed by Rob Buis.

Source/WebCore:

When we compute huge values for line-height through percentage or CSS
calc, we'll overflow the integer and later on
ShapeOutsideInfo::computeDeltasForContainingBlockLine will ASSERT
because it expects non-negative line height. So for the computed
line-height, clamp to an integer range to avoid overflow. Note that
the code path for percentages here is safe because LayoutUnit clamps
to an int on conversion.

This is based on a Blink patch by Rob Buis.

Test: fast/shapes/shape-outside-floats/shape-outside-negative-line-height-crash.html

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::computedLineHeight): Clamp line-height to an

int to avoid overflow.

LayoutTests:

Simplified test from a fuzzer.

  • fast/shapes/shape-outside-floats/shape-outside-negative-line-height-crash-expected.txt: Added.
  • fast/shapes/shape-outside-floats/shape-outside-negative-line-height-crash.html: Added.
6:05 AM Changeset in webkit [184087] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182962 - RenderTableCell::computeCollapsed*Border() should check if the cell is still attached to the render tree.
https://bugs.webkit.org/show_bug.cgi?id=143887
rdar://problem/20568989

Reviewed by Simon Fraser.

Detached table cell has no access to its parent table. This is a speculative fix to
avoid dereferencing the invalid table pointer.

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computeCollapsedStartBorder):
(WebCore::RenderTableCell::computeCollapsedEndBorder):
(WebCore::RenderTableCell::computeCollapsedBeforeBorder):
(WebCore::RenderTableCell::computeCollapsedAfterBorder):

6:04 AM Changeset in webkit [184086] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8

Merge r182943 - [SOUP] Redirect to non HTTP destination is broken
https://bugs.webkit.org/show_bug.cgi?id=143866

Reviewed by Sergio Villar Senin.

Source/WebCore:

This is because we are passing true unconditionally as
isHTTPFamilyRequest parameter of
createSoupRequestAndMessageForHandle in continueAfterWillSendRequest.
We don't actually need to pass isHTTPFamilyRequest parameter to
createSoupRequestAndMessageForHandle, since it can simply check
that from the given request.

Covered by unit tets and also cache/disk-cache/disk-cache-redirect-to-data.html.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::continueAfterWillSendRequest):
(WebCore::createSoupRequestAndMessageForHandle):
(WebCore::ResourceHandle::start):

Tools:

Add a unit test to check that redirect to a data URI works.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp:

(testRedirectToDataURI):
(serverCallback):
(beforeAll):

6:01 AM Changeset in webkit [184085] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182918 - Media element can manipulate DOM during Document destruction.
rdar://problem/20553898 and https://bugs.webkit.org/show_bug.cgi?id=143780

Patch by Brady Eidson <beidson@apple.com> on 2015-04-16
Reviewed by Jer Noble.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::configureMediaControls): Bail if the element has no active document.

5:59 AM Changeset in webkit [184084] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182880 - We should dump GraphicsLayer's anchorPoint z component
https://bugs.webkit.org/show_bug.cgi?id=143815

Reviewed by Tim Horton.

We didn't include the z component of a layer's anchor point when dumping.
Dump if it's non-zero (to avoid having to change lots of test output).
No test with non-zero z appears to dump layers.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::dumpProperties):

  • rendering/style/RenderStyle.cpp:

(WebCore::requireTransformOrigin): Remove a FIXME which, on further consideration,
is wrong.

5:10 AM Changeset in webkit [184083] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.8

Merge r182872 - String.prototype.startsWith/endsWith/includes have wrong length in r182673
https://bugs.webkit.org/show_bug.cgi?id=143659

Patch by Jordan Harband <ljharb@gmail.com> on 2015-04-15
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Fix lengths of String.prototype.{includes,startsWith,endsWith} per spec
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::StringPrototype::finishCreation):

LayoutTests:

  • js/script-tests/string-includes.js:
  • js/string-includes-expected.txt:
5:05 AM Changeset in webkit [184082] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.8

Merge r182868 - Math.imul has wrong length in Safari 8.0.4
https://bugs.webkit.org/show_bug.cgi?id=143658

Patch by Jordan Harband <ljharb@gmail.com> on 2015-04-15
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Correcting function length from 1, to 2, to match spec
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.imul

  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

LayoutTests:

  • js/script-tests/math.js:
5:01 AM Changeset in webkit [184081] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182866 - No thread safety when passing ThreadableLoaderOptions from a worker thread
https://bugs.webkit.org/show_bug.cgi?id=143790

Reviewed by Geoffrey Garen.

  • loader/ThreadableLoader.h:
  • loader/ThreadableLoader.cpp: (WebCore::ThreadableLoaderOptions::isolatedCopy): Added.
  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): Don't just send
a structure with strings to a different thread, that's bad.

  • platform/CrossThreadCopier.h: I think that this is dead code, but for this bug,

just removing a clearly wrong specialization.

5:00 AM Changeset in webkit [184080] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182707 - Use std::unique_ptr instead of PassOwnPtr|OwnPtr for ResourceResponse
https://bugs.webkit.org/show_bug.cgi?id=143056

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-04-13
Reviewed by Gyuyoung Kim.

No new tests, no behavior changes.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):

  • platform/CrossThreadCopier.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::adopt):
(WebCore::ResourceResponseBase::copyData):

  • platform/network/ResourceResponseBase.h:
  • platform/network/cf/ResourceResponse.h:

(WebCore::ResourceResponse::doPlatformCopyData):
(WebCore::ResourceResponse::doPlatformAdopt):

  • platform/network/curl/ResourceResponse.h:

(WebCore::ResourceResponse::doPlatformCopyData):
(WebCore::ResourceResponse::doPlatformAdopt):

  • platform/network/soup/ResourceResponse.h:

(WebCore::ResourceResponse::doPlatformCopyData):
(WebCore::ResourceResponse::doPlatformAdopt):

4:49 AM Changeset in webkit [184079] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r181136 - Use std::unique_ptr instead of PassOwnPtr|OwnPtr for ResourceRequest
https://bugs.webkit.org/show_bug.cgi?id=142349

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-03-05
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::removeRequestFromSessionCaches):

  • platform/CrossThreadCopier.h:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::adopt):
(WebCore::ResourceRequestBase::copyData):

  • platform/network/ResourceRequestBase.h:
  • platform/network/cf/ResourceRequest.h:
  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doPlatformCopyData):
(WebCore::ResourceRequest::doPlatformAdopt):

  • platform/network/curl/ResourceRequest.h:

(WebCore::ResourceRequest::doPlatformCopyData):
(WebCore::ResourceRequest::doPlatformAdopt):

  • platform/network/soup/ResourceRequest.h:

(WebCore::ResourceRequest::doPlatformCopyData):
(WebCore::ResourceRequest::doPlatformAdopt):

4:32 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
4:14 AM Changeset in webkit [184078] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.8

Merge r182863 - Number.parseInt in nightly r182673 has wrong length
https://bugs.webkit.org/show_bug.cgi?id=143657

Patch by Jordan Harband <ljharb@gmail.com> on 2015-04-15
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Correcting funciton length from 1, to 2, to match spec
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.parseint

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):

LayoutTests:

  • js/number-constructor-expected.txt:
  • js/script-tests/number-constructor.js:
4:06 AM Changeset in webkit [184077] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r182835 - Make inline continuation style change logic consistent.
https://bugs.webkit.org/show_bug.cgi?id=143737
rdar://problem/20486596

Reviewed by Simon Fraser.

Do not force RenderBlock type-casting on the first sibling of the continuation's container.
The first sibling of the container of a continuation should be handled as the rest of the siblings.

Source/WebCore:

Test: fast/inline/inline-with-column-span-and-remove-block-child-crash.html

  • rendering/RenderInline.cpp:

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

LayoutTests:

  • fast/inline/inline-with-column-span-and-remove-block-child-crash-expected.txt: Added.
  • fast/inline/inline-with-column-span-and-remove-block-child-crash.html: Added.
4:04 AM Changeset in webkit [184076] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r182827 - DFG register fillSpeculate*() functions should validate incoming spill format is compatible with requested fill format
https://bugs.webkit.org/show_bug.cgi?id=143727

Reviewed by Geoffrey Garen.

Used the result of AbstractInterpreter<>::filter() to check that the current spill format is compatible
with the requested fill format. If filter() reports a contradiction, then we force an OSR exit.
Removed individual checks made redundant by the new check.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt52):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):

4:04 AM Changeset in webkit [184075] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/LayoutTests

[GTK] Gardening 7th May.
https://bugs.webkit.org/show_bug.cgi?id=144735

Unreviewed.

Patch by Marcos Chavarría Teijeiro <chavarria1991@gmail.com> on 2015-05-11

  • platform/gtk/TestExpectations:
  • platform/gtk/media/video-controls-no-scripting-expected.txt: Added.
3:53 AM Changeset in webkit [184074] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182810 - Media elements not in a page shouldn't load.
https://bugs.webkit.org/show_bug.cgi?id=143720

Reviewed by Jer Noble.

No new tests (Theoretical problem noticed in code review).

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource): Make sure the frame is in a page.

3:41 AM Changeset in webkit [184073] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WebGL] Unnecessary condition check in the while loop
https://bugs.webkit.org/show_bug.cgi?id=125001

Patch by Przemyslaw Szymanski <p.szymanski3@samsung.com> on 2015-05-11
Reviewed by Csaba Osztrogonác.

While loop in this case needs to be optimized a little.
For now a conditional statement in while will execute two
times at begin. do-while loop avoids to check first statement.

No new tests. No behaviour changed.

  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):

3:21 AM Changeset in webkit [184072] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WTF

[GTK] WorkQueue objects are not released
https://bugs.webkit.org/show_bug.cgi?id=144824

Reviewed by Žan Doberšek.

Do not keep a reference of the WorkQueue for the entire life of
its worker thread, since every task scheduled on the WorkQueue
already takes a reference. Instead, take a reference of the main
loop to make sure that when the worker thread starts, the main
loop hasn't been released to avoid runtime warnings (see
webkit.org/b/140998). Also removed the g_main_context_pop_thread_default()
from the thread body, since the thread-specific context queue will
be freed anyway when the thread exits.
If the WorkQueue is released early, before the thread has started,
schedule a main loop quit in the context, to make sure it will
be the first thing run by the main loop and the thread will exit.

  • wtf/WorkQueue.h: Remove unused event loop mutex.
  • wtf/gtk/WorkQueueGtk.cpp:

(WTF::WorkQueue::platformInitialize):
(WTF::WorkQueue::platformInvalidate):

2:38 AM Changeset in webkit [184071] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Reorder Performance class's member initialization sequence
https://bugs.webkit.org/show_bug.cgi?id=144858

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-05-11
Reviewed by Csaba Osztrogonác.

No new tests, no new behaviors.

  • page/Performance.cpp:

(WebCore::Performance::Performance):

1:52 AM Changeset in webkit [184070] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Reduce TransformationMatrix copies in WebKitCSSMatrix operations
https://bugs.webkit.org/show_bug.cgi?id=144795

Reviewed by Darin Adler.

Instead of copying the TransformationMatrix member, performing
the operation on it and then copying it again when creating
the new WebKitCSSMatrix object, copy it just once by first
creating the new WebKitCSSMatrix object and then performing
the operation on that object's TransformationMatrix directly.

  • css/WebKitCSSMatrix.cpp:

(WebCore::WebKitCSSMatrix::multiply):
(WebCore::WebKitCSSMatrix::translate):
(WebCore::WebKitCSSMatrix::scale):
(WebCore::WebKitCSSMatrix::rotate):
(WebCore::WebKitCSSMatrix::rotateAxisAngle):
(WebCore::WebKitCSSMatrix::skewX):
(WebCore::WebKitCSSMatrix::skewY):

1:40 AM Changeset in webkit [184069] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

Add missing vtable override specifiers under Source/WebCore/loader, Source/WebCore/xml
https://bugs.webkit.org/show_bug.cgi?id=144793

Reviewed by Darin Adler.

Update virtual method overrides under Source/WebCore/loader
and Source/WebCore/dom which are missing the override specifier.

  • loader/DocumentThreadableLoader.h:

(WebCore::DocumentThreadableLoader::refThreadableLoader):
(WebCore::DocumentThreadableLoader::derefThreadableLoader):

  • loader/cache/CachedRawResource.h:
  • xml/parser/XMLDocumentParser.h:
1:39 AM Changeset in webkit [184068] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebCore

Add missing vtable override specifiers under Source/WebCore/accessibility, Source/WebCore/dom
https://bugs.webkit.org/show_bug.cgi?id=144792

Reviewed by Darin Adler.

Update virtual method overrides under Source/WebCore/accessibility
and Source/WebCore/dom which are missing the override specifier.

  • accessibility/AccessibilityMockObject.h:

(WebCore::AccessibilityMockObject::isDetachedFromParent): Deleted.

  • accessibility/AccessibilityRenderObject.h:
  • dom/DecodedDataDocumentParser.h:
  • dom/TouchEvent.h:

May 10, 2015:

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

Have MediaStream::getAudioTracks(), MediaStream::getVideoTracks() return const references
https://bugs.webkit.org/show_bug.cgi?id=144794

Reviewed by Philippe Normand.

  • Modules/mediastream/MediaStream.h: getAudioTracks() and getVideoTracks()

should return a const reference to the member variables, instead of
copying the objects on every call.

10:53 PM Changeset in webkit [184066] by Gyuyoung Kim
  • 66 edits in trunk/Source

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

Reviewed by Darin Adler.

To kill PassRefPtr, this patch replaces PassRefPtr with Ref or RefPtr
in WebCore/page.

Source/WebCore:

No new tests, no behavior changes.

  • page/DebugPageOverlays.cpp:
  • page/EventSource.cpp:

(WebCore::EventSource::create):

  • page/EventSource.h:
  • page/History.h:

(WebCore::History::create):

  • page/Location.h:

(WebCore::Location::create):

  • page/MainFrame.cpp:

(WebCore::MainFrame::create):

  • page/MainFrame.h:
  • page/Navigator.h:

(WebCore::Navigator::create):

  • page/PageOverlay.cpp:

(WebCore::PageOverlay::create):

  • page/PageOverlay.h:
  • page/Performance.h:
  • page/PerformanceEntryList.h:

(WebCore::PerformanceEntryList::create):

  • page/PerformanceMark.h:

(WebCore::PerformanceMark::create):

  • page/PerformanceMeasure.h:

(WebCore::PerformanceMeasure::create):

  • page/PerformanceNavigation.h:

(WebCore::PerformanceNavigation::create):

  • page/PerformanceResourceTiming.h:

(WebCore::PerformanceResourceTiming::create):

  • page/PerformanceTiming.h:

(WebCore::PerformanceTiming::create):

  • page/PerformanceUserTiming.h:

(WebCore::UserTiming::create):

  • page/Screen.h:
  • page/Settings.cpp:

(WebCore::Settings::create):

  • page/Settings.h:
  • page/TextIndicator.cpp:

(WebCore::TextIndicator::create):

  • page/TextIndicator.h:
  • page/UserContentController.cpp:

(WebCore::UserContentController::create):

  • page/UserContentController.h:
  • page/UserMessageHandlerDescriptor.h:

(WebCore::UserMessageHandlerDescriptor::create):

  • page/UserMessageHandlersNamespace.h:
  • page/VisitedLinkStore.h:
  • page/WebKitNamespace.h:

(WebCore::WebKitNamespace::create):

  • page/WebKitPoint.h:

(WebCore::WebKitPoint::create):

  • page/WorkerNavigator.h:

(WebCore::WorkerNavigator::create):

  • page/animation/ImplicitAnimation.h:

(WebCore::ImplicitAnimation::create):

  • page/animation/KeyframeAnimation.h:
  • page/mac/ServicesOverlayController.h:
  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::Highlight::createForSelection):
(WebCore::ServicesOverlayController::Highlight::createForTelephoneNumber):

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::create):

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

(WebCore::ScrollingStateFixedNode::create):
(WebCore::ScrollingStateFixedNode::clone):

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

(WebCore::ScrollingStateFrameScrollingNode::create):
(WebCore::ScrollingStateFrameScrollingNode::clone):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingStateNode.h:
  • page/scrolling/ScrollingStateOverflowScrollingNode.cpp:

(WebCore::ScrollingStateOverflowScrollingNode::create):
(WebCore::ScrollingStateOverflowScrollingNode::clone):

  • page/scrolling/ScrollingStateOverflowScrollingNode.h:
  • page/scrolling/ScrollingStateStickyNode.cpp:

(WebCore::ScrollingStateStickyNode::create):
(WebCore::ScrollingStateStickyNode::clone):

  • page/scrolling/ScrollingStateStickyNode.h:
  • page/scrolling/ios/ScrollingCoordinatorIOS.mm:

(WebCore::ScrollingCoordinator::create):

  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:

(WebCore::ScrollingTreeFrameScrollingNodeIOS::create):

  • page/scrolling/ios/ScrollingTreeIOS.cpp:

(WebCore::ScrollingTreeIOS::create):

  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinator::create):

  • page/scrolling/mac/ScrollingTreeFixedNode.h:
  • page/scrolling/mac/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::create):

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

(WebCore::ScrollingTreeFrameScrollingNodeMac::create):

  • page/scrolling/mac/ScrollingTreeMac.cpp:

(ScrollingTreeMac::create):

  • page/scrolling/mac/ScrollingTreeMac.h:
  • page/scrolling/mac/ScrollingTreeStickyNode.h:
  • page/scrolling/mac/ScrollingTreeStickyNode.mm:

(WebCore::ScrollingTreeStickyNode::create):

Source/WebKit2:

(WebKit::WebUserContentController::WebUserContentController):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setTextIndicator):

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::didPerformDictionaryLookup):

  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::WebUserContentController):

8:56 PM Changeset in webkit [184065] by Simon Fraser
  • 5 edits
    1 copy
    8 adds in trunk

background-position sometimes doesn't work properly with background-attachment: fixed
https://bugs.webkit.org/show_bug.cgi?id=103757
rdar://problem/18749925

Reviewed by Darin Adler.

Source/WebCore:

Fix sizing issues with fixed backgrounds when top content inset (blurred toolbar) is in
effect.

The primary issue was that positioningAreaSize was including the top content inset
height, and should not have been, but there were also issues with the "fixedBackgroundPaintsInLocalCoordinates"
code path, which kicks in when the root background is fixed.

Tests: platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-cover-local.html

platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-cover.html
platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-local.html
platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-positioned.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):

LayoutTests:

Tests various configurations for painting the fixed backgrounds. The existing test was
actually wrong, so fixed to use a gradient (so you can see where the edges of the image are),
and be valid. Testing is complicated by the fact that setting top content inset actually
causes the snapshot to be inset at the top.

  • platform/mac-wk2/tiled-drawing/resources/bordered-image.png: Added.
  • platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-cover-expected.html: Added.
  • platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-cover-local-expected.html: Added.
  • platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-cover-local.html: Copied from LayoutTests/platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment.html.
  • platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-cover.html: Added.
  • platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-expected.html:
  • platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-local-expected.html: Added.
  • platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-local.html: Added.
  • platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-positioned-expected.html: Added.
  • platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment-positioned.html: Added.
  • platform/mac-wk2/tiled-drawing/top-content-inset-fixed-attachment.html:
8:09 PM Changeset in webkit [184064] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[GTK][SOUP] Web and Network processes don't know how to get memory size on OSX
https://bugs.webkit.org/show_bug.cgi?id=144554

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-05-10
Reviewed by Darin Adler.

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformSetCacheModel): Use WTF::ramSize()
instead of local function. Also use WTF::MB instead of dividing by
1024 * 1024.
(WebKit::getMemorySize): Deleted.

  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformSetCacheModel): Ditto.
(WebKit::getMemorySize): Deleted.

8:07 PM Changeset in webkit [184063] by commit-queue@webkit.org
  • 3 edits in trunk

CMake defines CAIROGL_FOUND, not CAIRO_GL_FOUND
https://bugs.webkit.org/show_bug.cgi?id=144846

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-05-10
Reviewed by Martin Robinson.

  • Source/cmake/FindCairoGL.cmake: Use CAIROGL_* instead of

CAIRO_GL_* throughout, because find_package will define
CAIROGL_FOUND.

  • Source/cmake/OptionsGTK.cmake: Ditto.
8:03 PM Changeset in webkit [184062] by commit-queue@webkit.org
  • 2 edits in trunk

[CMake] Some macros need to be defined/undefined, rather than ON/OFF
https://bugs.webkit.org/show_bug.cgi?id=144845

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-05-10
Reviewed by Martin Robinson.

  • Source/cmake/OptionsGTK.cmake: Only define MOZ_X11 and XP_UNIX

if their corresponding WTF options are ON. The code in npapi.h
relies on these being undefined if they are to be switched off.

6:41 PM Changeset in webkit [184061] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit2

Use preview view controller from WebKitSystemInterface.
https://bugs.webkit.org/show_bug.cgi?id=144836

Add a property _allowsLinkPreview to WKWebView so that we can turn on/off preview at runtime. Also,
for client that doesn't provide preview view controller, use the default view controller prepared
by WebKitSystemInterface.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-05-10
Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView _allowsLinkPreview]):
(-[WKWebView _setAllowsLinkPreview:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Add _allowsLinkPreview property
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView willMoveToWindow:]):

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

(-[WKContentView _registerPreviewInWindow:]):
(-[WKContentView _unregisterPreviewInWindow:]):
(-[WKContentView previewViewControllerForPosition:inSourceView:]): : For client that doesn't provide

preview delegate, use preview view controller in WebKitSystemInterface.

(-[WKContentView commitPreviewViewController:]):

5:57 PM Changeset in webkit [184060] by Martin Robinson
  • 4 edits in trunk

[GTK] fast/events/page-visibility-transition-test.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=114789

Reviewed by Darin Adler.

Tools:

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::setHidden): Map and unmap the WebView when the harness
requests visibility changes.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip failing tests.
4:28 PM Changeset in webkit [184059] by Darin Adler
  • 2 edits in trunk/Source/WebKit2

Fix internal Apple builds on Mavericks.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _dismissContentRelativeChildWindows]): Added missing conditionals around
some code that is for OS X 10.10 or newer only. There were similar conditionals around
other nearby code in this file, and around other uses of the same method in other files,
so matched the style.

3:49 PM Changeset in webkit [184058] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

iOS internal build fix.

  • Platform/mac/MenuUtilities.mm:
3:15 PM Changeset in webkit [184057] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Fix install-dependencies on Ubuntu 14.10/15.04
https://bugs.webkit.org/show_bug.cgi?id=144798

Reviewed by Darin Adler.

  • efl/install-dependencies:
2:45 PM Changeset in webkit [184056] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Get rid of the public item accessors in BackForwardClient
https://bugs.webkit.org/show_bug.cgi?id=144827

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-05-10
Reviewed by Darin Adler.

Remove backItem(), currentItem(), and forwardItem() from BackForwardClient.
We can still use these functionalities through BackForwardController.

No new tests, no behavior change.

Source/WebCore:

  • history/BackForwardClient.h:

(WebCore::BackForwardClient::backItem): Deleted.
(WebCore::BackForwardClient::currentItem): Deleted.
(WebCore::BackForwardClient::forwardItem): Deleted.

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView _loadBackForwardListFromOtherView:]):

2:43 PM Changeset in webkit [184055] by commit-queue@webkit.org
  • 33 edits in trunk/Source/WebCore

Rename Length::isPercent() and Length::isPercentNotCalculated().
https://bugs.webkit.org/show_bug.cgi?id=144791

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-05-10
Reviewed by Darin Adler.

  1. Rename these methods as below for consistency and clarity.

Length::isPercentNotCalculated() => Length::isPercent()
Length::isPercent() => Length::isPercentOrCalculated()

  1. Simplify the condition check of length type in SVGLengthContext::valueForLength().

"length.isPercent() && !length.isCalculated()" => "length.isPercent()"

No new tests, no behavior change.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForImageSliceSide):
(WebCore::valueForReflection):
(WebCore::percentageOrZoomAdjustedValue):
(WebCore::lineHeightFromStyle):
(WebCore::ComputedStyleExtractor::propertyValue):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::is100Percent):

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::computeTransformedExtentViaTransformList):

  • platform/Length.h:

(WebCore::Length::percent):
(WebCore::Length::isPercent):
(WebCore::Length::isPercentOrCalculated):
(WebCore::Length::isSpecified):
(WebCore::Length::isPercentNotCalculated): Deleted.

  • platform/graphics/transforms/TranslateTransformOperation.h:
  • rendering/AutoTableLayout.cpp:

(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::fullRecalc):
(WebCore::shouldScaleColumns):
(WebCore::AutoTableLayout::computeIntrinsicLogicalWidths):
(WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
(WebCore::AutoTableLayout::layout):

  • rendering/FixedTableLayout.cpp:

(WebCore::FixedTableLayout::calcWidthArray):
(WebCore::FixedTableLayout::applyPreferredLogicalWidthQuirks):
(WebCore::FixedTableLayout::layout):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::isSelfCollapsingBlock):
(WebCore::RenderBlock::textIndentOffset):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::needsPreferredWidthsRecalculation):
(WebCore::RenderBox::computeLogicalHeight):
(WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
(WebCore::RenderBox::computePercentageLogicalHeight):
(WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth):
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
(WebCore::RenderBox::availableLogicalHeightUsing):
(WebCore::logicalWidthIsResolvable):
(WebCore::RenderBox::percentageLogicalHeightIsResolvableFromBlock):
(WebCore::RenderBox::hasUnsplittableScrollingOverflow):
(WebCore::RenderBox::layoutOverflowRectForPropagation):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
(WebCore::RenderBoxModelObject::relativePositionOffset):
(WebCore::RenderBoxModelObject::computedCSSPadding):
(WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
(WebCore::RenderBoxModelObject::calculateFillTileSize):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):

  • rendering/RenderElement.cpp:

(WebCore::mustRepaintFillLayers):

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::computeIntrinsicLogicalWidths):

  • rendering/RenderFrameSet.cpp:

(WebCore::RenderFrameSet::layOutAxis):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::repaintOrMarkForLayout):

  • rendering/RenderInline.cpp:

(WebCore::computeMargin):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::computeIntrinsicLogicalWidths):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::computeIntrinsicLogicalWidths):

  • rendering/RenderObject.cpp:

(WebCore::objectIsRelayoutBoundary):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computePreferredLogicalWidths):

  • rendering/RenderSlider.cpp:

(WebCore::RenderSlider::computeIntrinsicLogicalWidths):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layoutRows):

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::computeIntrinsicLogicalWidths):

  • rendering/RenderView.cpp:

(WebCore::RenderView::layout):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::verticalPositionForBox):

  • rendering/style/GridLength.h:

(WebCore::GridLength::isPercentage):

  • rendering/style/GridTrackSize.h:

(WebCore::GridTrackSize::isPercentage):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::computedLineHeight):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::hasRelativeDimensions):

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::valueForLength):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::hasRelativeWidth):
(WebCore::SVGImage::hasRelativeHeight):

2:26 PM Changeset in webkit [184054] by commit-queue@webkit.org
  • 11 edits in trunk/Source

Remove unnecessary semicolons.
https://bugs.webkit.org/show_bug.cgi?id=144844

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-05-10
Reviewed by Darin Adler.

No new tests, no behavior change.

Source/WebCore:

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::readString):

  • platform/mediastream/RealtimeMediaSourceCapabilities.h:

(WebCore::RealtimeMediaSourceCapabilities::setHasVideoSource):

  • platform/network/mac/ResourceErrorMac.mm:

(WebCore::ResourceError::nsError):

  • rendering/RenderThemeIOS.mm:

(WebCore::getSharedFunctionRef):

Source/WebKit2:

  • Shared/Downloads/mac/DownloadMac.mm:

(-[WKDownloadAsDelegate download:shouldDecodeSourceDataOfMIMEType:]):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::transformHandlesToObjects):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):

  • WebProcess/WebPage/WebBackForwardListProxy.cpp:

(WebKit::idToHistoryItemMap):

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

Remove unnecessary forward declarations in StyleProperties.h
https://bugs.webkit.org/show_bug.cgi?id=144843

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-05-10
Reviewed by Darin Adler.

No new tests, no behavior change.

  • css/StyleProperties.h:
2:10 PM WebKitGTK/2.4.x edited by Michael Catanzaro
Add bug #126433 (diff)
1:28 PM Changeset in webkit [184052] by Darin Adler
  • 2 edits in trunk/Source/WebKit2

Fix build.

  • Platform/mac/MenuUtilities.mm: Added includes that were somehow omitted in what

I committed before.

1:19 PM Changeset in webkit [184051] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove unnecessary AtomicStringImpl* hash specification in PropertyNameArray.

Follow up to r184050 suggested by Darin.

  • runtime/PropertyNameArray.h:
1:03 PM Changeset in webkit [184050] by akling@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Remove unused things from PropertyNameArray.
<https://webkit.org/b/144834>

Reviewed by Filip Pizlo.

PropertyNameArray had a bunch of bells and whistles added to it when for-in iteration
was refactored and optimized last year. Then more refactoring happened and this class
doesn't need to ring and toot anymore.

The RefCountedIdentifierSet class disappears since the JSPropertyNameEnumerator wasn't
actually using it for anything and we were just wasting time creating these.

Also made the member functions take AtomicStringImpl* instead of plain StringImpl*.

  • runtime/JSObject.cpp:

(JSC::JSObject::getPropertyNames):

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::create):
(JSC::JSPropertyNameEnumerator::JSPropertyNameEnumerator):

  • runtime/JSPropertyNameEnumerator.h:
  • runtime/PropertyNameArray.cpp:

(JSC::PropertyNameArray::add):
(JSC::PropertyNameArray::setPreviouslyEnumeratedProperties): Deleted.

  • runtime/PropertyNameArray.h:

(JSC::PropertyNameArray::PropertyNameArray):
(JSC::PropertyNameArray::add):
(JSC::PropertyNameArray::addKnownUnique):
(JSC::PropertyNameArray::canAddKnownUniqueForStructure):
(JSC::RefCountedIdentifierSet::contains): Deleted.
(JSC::RefCountedIdentifierSet::size): Deleted.
(JSC::RefCountedIdentifierSet::add): Deleted.
(JSC::PropertyNameArray::identifierSet): Deleted.
(JSC::PropertyNameArray::numCacheableSlots): Deleted.
(JSC::PropertyNameArray::setNumCacheableSlotsForObject): Deleted.
(JSC::PropertyNameArray::setBaseObject): Deleted.
(JSC::PropertyNameArray::setPreviouslyEnumeratedLength): Deleted.

12:28 PM Changeset in webkit [184049] by Darin Adler
  • 2 edits in trunk/Source/WebCore

[Cocoa] Fix paths and resort WebCore project file
https://bugs.webkit.org/show_bug.cgi?id=144838

Reviewed by Dan Bernstein.

  • WebCore.xcodeproj/project.pbxproj: Re-sorted this file with the

sort-Xcode-project-file script and fixed the paths in the platform/ios directory.

11:33 AM Changeset in webkit [184048] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/Source/WebCore

[Streams API] Refactor ReadableStreamReader close promise callback cleaning
https://bugs.webkit.org/show_bug.cgi?id=144799

Reviewed by Darin Adler.

Moved close callback cleaning to releaseStream, which is now releaseStreamAndClean.
Moved that method to private as it is no longer needed by subclasses.

No behavior changes.

  • Modules/streams/ReadableStreamReader.cpp:

(WebCore::ReadableStreamReader::releaseStreamAndClean):
(WebCore::ReadableStreamReader::changeStateToClosed):
(WebCore::ReadableStreamReader::changeStateToErrored):

  • Modules/streams/ReadableStreamReader.h:
11:29 AM Changeset in webkit [184047] by Darin Adler
  • 10 edits
    1 add in trunk/Source

[Cocoa] Don't soft link DataDetectorsCore
https://bugs.webkit.org/show_bug.cgi?id=144837

Reviewed by Dan Bernstein.

Source/WebCore:

Linking this in the normal way should slightly speed up the web process
startup time. We don't need to soft link it: It's present in the
OS X base system and there is no reference cycle with WebKit.

  • Configurations/WebCore.xcconfig: Added PrivateFrameworks to

FRAMEWORK_SEARCH_PATHS for Mac and added DataDetectorsCore to
OTHER_LDFLAGS_PLATFORM for Mac. We may want to do this later for iOS too.

  • WebCore.xcodeproj/project.pbxproj: Added DataDetectorsCoreSPI.h.
  • editing/mac/DataDetection.mm:

(WebCore::DataDetection::detectItemAroundHitTestResult): Removed check to see
if DataDetectorsCore is available.

  • page/mac/ServicesOverlayController.h: Simplified a forward declaration to

only declare what we actually use.

  • page/mac/ServicesOverlayController.mm: Moved SOFT_LINK from here to the

DataDetectorsSPI.h header.

  • platform/spi/cocoa/DataDetectorsCoreSPI.h: Added. This is the low level

DataDetectorsCore framework, which has no reference cycle with WebKit, and
which we can link to normally. Moved the content here from DataDetectorsSPI.h,
added a USE(APPLE_INTERNAL_SDK) path that uses the system headers, and fixed
the incorrect return type on DDScannerScanQuery, which was detected when
using the system headers in conjunction with this file.

  • platform/spi/mac/DataDetectorsSPI.h: Removed the content of this file that

was actually about DataDetectorsCore. Also added a USE(APPLE_INTERNAL_SDK)
path that uses the system headers and moved a few stray DataDetectors SPI
definitions from elsewhere into this header.

Source/WebKit2:

  • Platform/mac/MenuUtilities.mm: Use DataDetectorsSPI.h instead of doing it here.
  • WebProcess/WebPage/mac/WebPageMac.mm: Removed unneeded include of unused header,

DataDetectorsSPI.h.

7:52 AM Changeset in webkit [184046] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: Don't expose elements as data tables just because they use display: table
https://bugs.webkit.org/show_bug.cgi?id=144804

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Elements will create RenderTable objects if they have display:table. We shouldn't assume these are accessibility tables.

Test: accessibility/css-table-ignored.html

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::isDataTable):

LayoutTests:

  • accessibility/css-table-ignored-expected.txt: Added.
  • accessibility/css-table-ignored.html: Added.
5:23 AM Changeset in webkit [184045] by Nikita Vasilyev
  • 12 edits
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: In the console, show function name next to the source link
https://bugs.webkit.org/show_bug.cgi?id=144372

Introduce CallFrameView to display counsole message source links. It looks like this:

[f] functionName - filename.js:42

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector.createSourceCodeLocationLink):
(WebInspector.linkifyLocation):
(.showSourceCodeLocation):
(WebInspector.linkifyElement):
Abstract this out as it's used in WebInspector.CallFrameView and WebInspector.createSourceCodeLocationLink.

(WebInspector.sourceCodeForURL):
Move this code from Timeline to Main.js as it's used by Console too.

(WebInspector.linkifyURLAsNode):
Remove tooltipText argument as it is never used.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype._callFramesFromPayload):

  • UserInterface/Main.html:
  • UserInterface/Models/CallFrame.js:

(WebInspector.CallFrame.fromPayload):
Abstract this out as it's used in WebInspector.TimelineManager.prototype._callFramesFromPayload and
WebInspector.ConsoleMessageView._appendLocationLink.

(WebInspector.CallFrame):

  • UserInterface/Views/CallFrameTreeElement.js:

(WebInspector.CallFrameTreeElement):
Move it to WebInspector.CallFrameView.iconForCallFrame.

  • UserInterface/Views/CallFrameView.css: Added.

(.call-frame):
(.call-frame .icon):
(.call-frame .titles):
(.call-frame .title):
(.call-frame .source-link):
(.call-frame .title + .subtitle > .source-link):
(.call-frame .subtitle .source-link):
(.call-frame:focus .subtitle .source-link):
(.call-frame .subtitle:empty):
(.call-frame .subtitle):
(.call-frame .colon):
(.call-frame .title + .subtitle::before):

  • UserInterface/Views/CallFrameView.js: Added.

(WebInspector.CallFrameView):
(WebInspector.CallFrameView.iconClassNameForCallFrame):

  • UserInterface/Views/ConsoleMessageView.css:

(.console-message .console-message-location):
(.console-message .call-frame):
(.console-message .go-to-link):
(.console-message .go-to-link:focus):
(.console-message .console-message-url::before):
(.console-saved-variable): Deleted.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._appendLocationLink):

  • UserInterface/Views/DebuggerDashboardView.js:
  • UserInterface/Views/Main.css:

(.hidden): Deleted.

  • UserInterface/Views/ProfileNodeTreeElement.js:

(WebInspector.ProfileNodeTreeElement):

  • UserInterface/Views/TimelineDataGridNode.js:

(WebInspector.TimelineDataGridNode.prototype.createCellContent):

May 9, 2015:

11:46 PM Changeset in webkit [184044] by rniwa@webkit.org
  • 6 edits in trunk/Tools

Make arguments of run-benchmark more user friendly
https://bugs.webkit.org/show_bug.cgi?id=144835

Reviewed by Darin Adler.

Made --build-directory optional since I don't expect a typical WebKit developer to have a local build
of Chrome and Firefox. Also made --plan accept just a filename so that we can just say "speedometer"
instead of "Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan". Finally, removed
default values from --platform and --browser as they are required arguments.

  • Scripts/run-benchmark:

(main): Made --build-directory optional, and removed default values from --platform and --browser.
Also added help text for --build-directory and --plan. In addition, the list of platforms and browsers
are not dynamically obtained via BrowserDriverFactory.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.init): Raise when we can't find the plan file or the plan file is not a valid JSON
file instead of suppressing the error here and blowing up later mysteriously since we won't be able to
run any benchmark in that case.
(BenchmarkRunner._findPlanFile): Added. Look for the plan in webkitpy/benchmark_runner/data/plans if
the specified file isn't a valid relative or an absolute path.

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver_factory.py:

(BrowserDriverFactory.available_platforms): Added. Used in main to provide the list of valid platforms
and browsers.
(BrowserDriverFactory.available_browsers): Ditto.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:

(OSXChromeDriver.launchUrl): browserBuildPath is never optional since BenchmarkRunner.execute always
calls launchUrl with this argument so removed the default value. Also added a fallback path for when
browserBuildPath was None.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.launchUrl): Ditto. We also fallback when the build directory doesn't contain Safari
so that we can use locally built WebKit to launch Safari.

8:58 PM Changeset in webkit [184043] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

Deployment-target NSi_ and NSd_ definitions in WKFoundation.h are redundant
https://bugs.webkit.org/show_bug.cgi?id=144831

Reviewed by Sam Weinig.

Reverted r182846 and r182904.

  • Shared/API/Cocoa/WKFoundation.h:
  • WebKit2.xcodeproj/project.pbxproj:
8:22 PM Changeset in webkit [184042] by Chris Dumez
  • 10 edits
    2 adds in trunk

Introduce ParentNode.idl / NonDocumentTypeChildNode.idl
https://bugs.webkit.org/show_bug.cgi?id=144825

Reviewed by Sam Weinig.

Source/WebCore:

Introduce ParentNode.idl / NonDocumentTypeChildNode.idl as per DOM
specification and to avoid IDL code duplication:

No Web-Exposed behavior change.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/CharacterData.idl:
  • dom/Document.idl:
  • dom/DocumentFragment.idl:
  • dom/Element.idl:
  • dom/NonDocumentTypeChildNode.idl: Copied from Source/WebCore/dom/DocumentFragment.idl.
  • dom/ParentNode.idl: Copied from Source/WebCore/dom/DocumentFragment.idl.

LayoutTests:

Rebaseline test as the order of the methods changed when iterating.

  • js/dom/dom-static-property-for-in-iteration-expected.txt:
10:37 AM Changeset in webkit [184041] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Invalidate the FontCache on WebProcess suspension / critical memory pressure
https://bugs.webkit.org/show_bug.cgi?id=144821

Reviewed by Antti Koivisto.

Invalidate the FontCache on WebProcess suspension / critical memory
pressure to free a bit more memory (an extra 4-16Kb per WebProcess on
the pages I tested). We already purge inactive font data on
non-critical memory warning but invalidating the whole FontCache takes
care of clearing the FontCascade cache and the fontPlatformData cache
as well.

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

1:39 AM Changeset in webkit [184040] by yoav@yoav.ws
  • 30 edits in trunk

Remove the PICTURE_SIZES build flag
https://bugs.webkit.org/show_bug.cgi?id=144679

Reviewed by Benjamin Poulain.

Removed the PICTURE_SIZES build time flag.

.:

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsWindows.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

No new tests, since there's no functionality change.

  • Configurations/FeatureDefines.xcconfig:
  • css/CSSGrammar.y.in:
  • css/CSSParser.cpp:

(WebCore::CSSParser::detectAtToken):

  • css/CSSParser.h:
  • css/SourceSizeList.cpp:

(WebCore::parseSizesAttribute): Deleted.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):

  • html/HTMLImageElement.idl:
  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • html/parser/HTMLSrcsetParser.cpp:

(WebCore::parseDescriptors):
(WebCore::pickBestImageCandidate):

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

WebKitLibraries:

  • win/tools/vsprops/FeatureDefines.props:
  • win/tools/vsprops/FeatureDefinesCairo.props:
1:20 AM Changeset in webkit [184039] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

Layout tests broke due to unexpected simctl output

  • Scripts/webkitpy/xcode/simulator.py:

(Simulator._parse_devices): Handle new Device Pairs header.

  • Scripts/webkitpy/xcode/simulator_unittest.py:

(test_device_pairs): Add unit test for Device Pairs header.

May 8, 2015:

11:40 PM Changeset in webkit [184038] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/LayoutTests

streams/reference-implementation/readable-stream-reader.html and streams/reference-implementation/bad-underlying-sources.html are flaky
https://bugs.webkit.org/show_bug.cgi?id=144813

Reviewed by Alexey Proskuryakov.

Removed small timeouts for tests that went from TIMEOUT to PASS thanks to other patches.

  • streams/reference-implementation/bad-underlying-sources.html:
  • streams/reference-implementation/readable-stream-reader.html:
11:33 PM Changeset in webkit [184037] by mmaxfield@apple.com
  • 14 edits in trunk

Remove convenience constructors for TextRun
https://bugs.webkit.org/show_bug.cgi?id=144752

Source/WebCore:

These convenience constructors are unnecessary. Moving the code that makes the StringView
back to the call site will also help us make things more elegant in future refactoring.

Reviewed by Darin Adler.

No new tests because there is no behavior change.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText): Remove ambiguous call.

  • platform/graphics/StringTruncator.cpp:

(WebCore::stringWidth):

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):

  • platform/mac/DragImageMac.mm:

(WebCore::widthWithFont):
(WebCore::drawAtPoint):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseFor):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style):
(WebCore::SimpleLineLayout::TextFragmentIterator::runWidth):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintText):

Source/WebKit/mac:

These convenience constructors are unnecessary. Moving the code that makes the StringView
back to the call site will also help us make things more elegant in future refactoring.

Reviewed by Darin Adler.

No new tests because there is no behavior change.

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _web_drawAtPoint:font:textColor:allowingFontSmoothing:]):
(-[NSString _web_widthWithFont:]):

Source/WTF:

Reviewed by Anders Carlsson.

No reason why StringView shouldn't have a StringImpl* constructor.

Test: StringView8Bit in TestWebKitAPI

  • wtf/text/StringView.h: Add the constructor.

Tools:

Reviewed by Anders Carlsson.

Test the StringView which takes a StringImpl*.

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(StringView8Bit): Testing is8Bit() on StringView

10:35 PM Changeset in webkit [184036] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Update results after Sam's patch, the order of properties changed.

  • js/dom/dom-static-property-for-in-iteration-expected.txt:
8:26 PM Changeset in webkit [184035] by Michael Catanzaro
  • 2 edits in trunk

[GTK] [CMake] Check for required X libraries
https://bugs.webkit.org/show_bug.cgi?id=144823

Reviewed by Martin Robinson.

Error out if missing libXcomposite, libXdamage, libXrender, or libXt.

  • Source/cmake/OptionsGTK.cmake:
6:14 PM Changeset in webkit [184034] by weinig@apple.com
  • 12 edits
    6 adds in trunk

Element Traversal is not just Elements anymore
https://bugs.webkit.org/show_bug.cgi?id=144822

Reviewed by Simon Fraser.

Source/WebCore:

Match other browsers and the new DOM spec at https://dom.spec.whatwg.org by
exposing the element traversal methods on non-Elements.

  • Makes firstElementChild, lastElementChild and childElementCount available on Document and DocumentFragment in addition to Element.
  • Makes nextElementSibling and previousElementSibling available on CharacterData in addition to Element.

Tests: fast/dom/element-traversal-on-character-data.html

fast/dom/element-traversal-on-document-fragment.html
fast/dom/element-traversal-on-document.html

  • dom/CharacterData.idl:

Expose nextElementSibling and previousElementSibling.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::firstElementChild):
(WebCore::ContainerNode::lastElementChild):
(WebCore::ContainerNode::childElementCount):

  • dom/ContainerNode.h:

Move implementations of firstElementChild, lastElementChild and childElementCount here
from Element to make them shareable.

  • dom/Document.idl:
  • dom/DocumentFragment.idl:

Expose firstElementChild, lastElementChild and childElementCount.

  • dom/Element.cpp:

(WebCore::Element::firstElementChild): Deleted.
(WebCore::Element::lastElementChild): Deleted.
(WebCore::Element::previousElementSibling): Deleted.
(WebCore::Element::nextElementSibling): Deleted.
(WebCore::Element::childElementCount): Deleted.

  • dom/Element.h:

Move element traversal functions down to Node and ContainerNode.

  • dom/Element.idl:

Update comments to indicate where these functions are defined now.

  • dom/Node.cpp:

(WebCore::Node::previousElementSibling):
(WebCore::Node::nextElementSibling):

  • dom/Node.h:

Move implementations of nextElementSibling and previousElementSibling here
from Element to make them shareable.

LayoutTests:

Add new tests for element traversal functions on Document, DocumentFragment and CharacterData.

  • fast/dom/element-traversal-on-character-data-expected.txt: Added.
  • fast/dom/element-traversal-on-character-data.html: Added.
  • fast/dom/element-traversal-on-document-expected.txt: Added.
  • fast/dom/element-traversal-on-document-fragment-expected.txt: Added.
  • fast/dom/element-traversal-on-document-fragment.html: Added.
  • fast/dom/element-traversal-on-document.html: Added.
5:33 PM Changeset in webkit [184033] by weinig@apple.com
  • 1 edit
    5 copies
    5 adds in trunk/Tools

[Content Extensions] Add simple tester that takes an extension and compiles it
https://bugs.webkit.org/show_bug.cgi?id=144781

Reviewed by Dan Bates.

  • ContentExtensionTester: Added.
  • ContentExtensionTester/Configurations: Added.
  • ContentExtensionTester/Configurations/Base.xcconfig: Copied from Source/bmalloc/Configurations/Base.xcconfig.
  • ContentExtensionTester/Configurations/ContentExtensionTester.xcconfig: Copied from Source/bmalloc/Configurations/bmalloc.xcconfig.
  • ContentExtensionTester/Configurations/DebugRelease.xcconfig: Copied from Source/bmalloc/Configurations/DebugRelease.xcconfig.
  • ContentExtensionTester/ContentExtensionTester.xcodeproj: Added.
  • ContentExtensionTester/ContentExtensionTester.xcodeproj/project.pbxproj: Added.
  • ContentExtensionTester/Makefile: Copied from Tools/TestWebKitAPI/Makefile.
  • ContentExtensionTester/main.m: Added.
  • Scripts/run-content-extension-tester: Copied from Tools/Scripts/run-webkit-tests.
5:18 PM Changeset in webkit [184032] by fpizlo@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

Extend the SaneChain optimization to Contiguous arrays
https://bugs.webkit.org/show_bug.cgi?id=144664

Reviewed by Mark Lam.

Previously if you loaded from a hole, you'd either have to take slow path for the array
load (which means C++ calls and prototype chain walks) or you'd exit (if you hadn't
gathered the necessary profiling yet). But that's unnecessary if we know that the
prototype chain is sane - i.e. has no indexed properties. Then we can just return
Undefined for the hole.

Making this change requires setting more watchpoints on the array prototype chain. But
that hit a horrible bug: ArrayPrototype still uses the static lookup tables and builds
itself up lazily. This means that this increased the number of recompilations we'd get
due to the array prototype chain being built up.

So, this change also removes the laziness and static tables from ArrayPrototype.

But to make that change, I also had to add a helper for eagerly building up a prototype
that has builtin functions.

  • CMakeLists.txt:
  • DerivedSources.make:
  • dfg/DFGArrayMode.h:
  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileGetByVal):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):
(JSC::ArrayPrototype::getOwnPropertySlot): Deleted.

  • runtime/ArrayPrototype.h:
  • runtime/JSObject.h:
5:13 PM Changeset in webkit [184031] by Martin Robinson
  • 2 edits
    1 add in trunk/LayoutTests

Unreviewed GTK+ gardening

  • platform/gtk/TestExpectations: Unskip a test that was failing only because the shared

baseline had a failure in it.

  • platform/gtk/fast/events/event-attribute-expected.txt: Added.
5:01 PM Changeset in webkit [184030] by Martin Robinson
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening

  • platform/gtk/TestExpectations: Un-expectation some tests that are now passing.
4:55 PM Changeset in webkit [184029] by Martin Robinson
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening

Remove expectations for tests that are also skipped for all WebKit2
ports. This will more easily allow us to handle them when they are
eventually (if at all) unskipped for WebKit2.

  • platform/gtk/TestExpectations:
4:18 PM Changeset in webkit [184028] by Beth Dakin
  • 6 edits in trunk/Source/WebKit2

Shuffle touch-related code to keep the internal builds working
https://bugs.webkit.org/show_bug.cgi?id=144812

Reviewed by Benjamin Poulain.

  • Shared/NativeWebTouchEvent.h:
  • Shared/WebEvent.h:
  • Shared/WebEventConversion.cpp:
  • Shared/ios/NativeWebTouchEventIOS.mm:

(WebKit::NativeWebTouchEvent::extractWebTouchPoint):
(WebKit::extractWebTouchPoint): Deleted.

  • Shared/ios/WebPlatformTouchPointIOS.cpp:
4:15 PM Changeset in webkit [184027] by bshafiei@apple.com
  • 2 edits in branches/safari-600.7-branch/Source/WebCore

Merged r183649. rdar://problem/20840113

4:13 PM Changeset in webkit [184026] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

<rdar://problem/20757196> NSInternalInconsistencyException raised in -[NSString encodeWithCoder:] beneath createEncodedObject when using WKRemoteObjectEncoder for Safari AutoFill
https://bugs.webkit.org/show_bug.cgi?id=144818

Reviewed by Anders Carlsson.

Allow NSString instances that contain unpaired surrogates to be encoded by
WKRemoteObjectCoder by encoding them directly rather than using
-[NSString encodeWithCoder:].

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeString): Added. Sets an API::String as the object to encode.
(encodeObject): Changed to use encodeString for NSString instances.
(decodeString): Added. Gets an API::String from the dictionary and returns it as an
NSString.
(decodeObject): Changed to use decodeString for NSString instances.

4:13 PM Changeset in webkit [184025] by bshafiei@apple.com
  • 5 edits
    3 copies in branches/safari-600.7-branch

Merged r183646. rdar://problem/20840113

4:11 PM Changeset in webkit [184024] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the build.

  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createFencePort):

4:10 PM Changeset in webkit [184023] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

4:04 PM Changeset in webkit [184022] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Periodically repaint during resize while using the DynamicSizeWithMinimumViewSize layout strategy
https://bugs.webkit.org/show_bug.cgi?id=144816

Reviewed by Simon Fraser.

  • UIProcess/mac/WKViewLayoutStrategy.mm:

(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy initWithPage:view:mode:]):
(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy _updateTransientScale:]):
(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):
Factor out _updateTransientScale from updateLayout.
Keep track of the last viewScaleFactor that we know is being displayed
(_lastCommittedViewScale) and use that for computing the transient scale,
so that we can recompute the transient scale while the UI process's notion
of the actual view scale might have moved ahead of what the Web process has
painted.

3:59 PM Changeset in webkit [184021] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.16-branch/Source/WebCore

Merged r183649. rdar://problem/20840031

3:56 PM Changeset in webkit [184020] by bshafiei@apple.com
  • 5 edits
    3 copies in branches/safari-600.1.4.16-branch

Merged r183646. rdar://problem/20840031

3:54 PM Changeset in webkit [184019] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Creating a large MarkedBlock sometimes results in more than one cell in the block
https://bugs.webkit.org/show_bug.cgi?id=144815

Reviewed by Mark Lam.

Large MarkedBlocks should have one and only one cell. Changed the calculation of
m_endAtom for large blocks to use the location of the first cell + 1. This
assures that large blocks only have one cell.

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::MarkedBlock):

3:11 PM Changeset in webkit [184018] by ap@apple.com
  • 5 edits in trunk/Tools

Build fix.

Reviewed by Dan Bernstein.

  • DumpRenderTree/mac/DumpRenderTreeDraggingInfo.h:
  • DumpRenderTree/mac/DumpRenderTreeDraggingInfo.mm:

(-[DumpRenderTreeDraggingInfo springLoadingHighlight]):
(-[DumpRenderTreeDraggingInfo resetSpringLoading]):

  • WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.h:
  • WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.mm:

(-[WebKitTestRunnerDraggingInfo springLoadingHighlight]):
(-[WebKitTestRunnerDraggingInfo resetSpringLoading]):

3:06 PM Changeset in webkit [184017] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.16-branch/Source

Versioning.

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

Fix the build.

  • UIProcess/WebPageProxy.cpp:
2:21 PM Changeset in webkit [184015] by Martin Robinson
  • 14 edits
    4 adds in trunk

[GTK] Some tests fail because they do not assume the popup menu captures click events
https://bugs.webkit.org/show_bug.cgi?id=40601

Reviewed by Carlos Garcia Campos.

Tools:

Popdown all attached menus when moving between tests and between each new
event sent to the WebView. This prevents context and popup menus from eating
events.

  • WebKitTestRunner/PlatformWebView.h: Added a helper method to do menu popdown.
  • WebKitTestRunner/TestController.cpp: Add a specialization of these methods for GTK+.
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::dispatchEvent): Popdown all menus between dispatching events.
(WTR::EventSenderProxy::replaySavedEvents): Pass the view when dispatching events.
(WTR::EventSenderProxy::sendOrQueueEvent): Pass the view when dispatching events.

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::hideAllPopupMenus): Added this helper.

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::platformConfigureViewForTest): Added this stub, which is no
longer in the platform-independent file.
(WTR::TestController::platformResetPreferencesToConsistentValues): Popdown menus.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip tests that are passing now

and classify remaining failures.

  • platform/gtk/editing/selection/5354455-2-expected.txt: Rebaselined.
  • platform/gtk/editing/selection/doubleclick-crash-expected.png: Rebaseline.
  • platform/gtk/editing/selection/doubleclick-crash-expected.txt: Rebaseline.
  • platform/gtk/editing/selection/user-select-all-image-with-single-click-expected.txt: Rebaselined.
  • platform/gtk/editing/selection/user-select-all-with-single-click-expected.txt: Rebaselined.
  • platform/gtk/fast/events/mouseup-from-button2-expected.txt: Rebaseline.
  • platform/gtk/fast/events/shadow-event-path-2-expected.txt: Rebaseline.
  • platform/gtk/fast/events/shadow-event-path-expected.txt: Rebaseline.
  • platform/gtk/fast/events/updateLayoutForHitTest-expected.txt: Rebaselined.
1:57 PM Changeset in webkit [184014] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the build.

  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createFencePort):

1:50 PM Changeset in webkit [184013] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[WK2] Scroll-snap tests timeout intermittently for overflow scroll cases
https://bugs.webkit.org/show_bug.cgi?id=144811

  • platform/mac-wk2/TestExpectations: Mark tests as flaky.
1:43 PM Changeset in webkit [184012] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the build.

  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createFencePort):

1:40 PM Changeset in webkit [184011] by timothy_horton@apple.com
  • 13 edits in trunk/Source/WebKit2

Flip the direction of the fence in scaleViewAndUpdateGeometryFenced
https://bugs.webkit.org/show_bug.cgi?id=144810

Reviewed by Simon Fraser.

Send the fence from the Web process to the UI process, instead of vice versa.
This means that we won't keep the UI process CAContext blocked for the whole
time that the Web process is doing layout/painting/etc. Instead, we'll start
blocking the Web process CAContext immediately after flushing and before committing,
and send the fence to the UI process to be applied immediately. This minimizes
the amount of time in both processes spent blocked on the fence.

  • Platform/mac/LayerHostingContext.h:
  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createFencePort):
Add createFencePort, which creates a MachSendRight wrapping a CA fence port.
Note that you must setFencePort() with this port if you want the LayerHostingContext's
CAContext to block on it!

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::scaleViewAndUpdateGeometryFenced):
(WebKit::WebPageProxy::machSendRightCallback):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:

Create a callback and send it to the Web process along with scaleViewAndUpdateGeometryFenced.

  • UIProcess/mac/WKViewLayoutStrategy.mm:

(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):
When called back, install the fence port in our CAContext; when the commit goes through,
remove the transient scale as we did previously.

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::replyWithFenceAfterNextFlush):
(WebKit::DrawingArea::updateGeometry): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::scaleViewAndUpdateGeometryFenced):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Instead of installing a fence created in the UI process, tell the DrawingArea
to create one and reply to the UI process with it after the next flush.

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

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::replyWithFenceAfterNextFlush):
After flushing, before committing, create a fence and reply to any
callbacks that requested fences, and install it in our context.

1:29 PM Changeset in webkit [184010] by Martin Robinson
  • 12 edits in trunk

.:
015-05-08 Michael Catanzaro <Michael Catanzaro>, Martin Robinson <mrobinson@igalia.com>

[GTK] Checks for DEVELOPMENT_BUILD are all wrong
https://bugs.webkit.org/show_bug.cgi?id=144746

Reviewed by Carlos Garcia Campos.

Don't set DEVELOPMENT_BUILD. We check whether it is defined for conditional compilation, not
what it is defined to, so defining it to 0 effectively turned it on always. Instead set
ENABLE_DEVELOPER_MODE so that we can use the ENABLE macro inside WebKit source code.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:
[GTK] Checks for DEVELOPMENT_BUILD are all wrong
https://bugs.webkit.org/show_bug.cgi?id=144746

Reviewed by Carlos Garcia Campos.

Use ENABLE(DEVELOPER_MODE) rather than DEVELOPMENT_BUILD.

  • platform/gtk/GtkUtilities.cpp:
  • platform/gtk/GtkUtilities.h:
  • platform/text/gtk/HyphenationLibHyphen.cpp:

(WebCore::availableLocales):

Source/WebKit2:
[GTK] Checks for DEVELOPMENT_BUILD are all wrong
https://bugs.webkit.org/show_bug.cgi?id=144746

Reviewed by Carlos Garcia Campos.

Use ENABLE(DEVELOPER_MODE) rather than DEVELOPMENT_BUILD.

  • Shared/gtk/ProcessExecutablePathGtk.cpp:

(WebKit::findWebKitProcess):

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(injectedBundleDirectory):

  • UIProcess/gtk/TextCheckerGtk.cpp:

(WebKit::enchantTextChecker):

Tools:
015-05-08 Michael Catanzaro <Michael Catanzaro>, Martin Robinson <mrobinson@igalia.com>

[GTK] Checks for DEVELOPMENT_BUILD are all wrong
https://bugs.webkit.org/show_bug.cgi?id=144746

Reviewed by Carlos Garcia Campos.

Use ENABLE_DEVELOPER_MODE rather than DEVELOPMENT_BUILD.

  • MiniBrowser/gtk/main.c:

(main):

1:07 PM Changeset in webkit [184009] by oliver@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

MapDataImpl::add() shouldn't do the same hash lookup twice.
https://bugs.webkit.org/show_bug.cgi?id=144759

Reviewed by Gavin Barraclough.

We don't actually need to do a double lookup here, all we need to
do is update the index to point to the correct m_size.

  • runtime/MapDataInlines.h:

(JSC::JSIterator>::add):

12:43 PM Changeset in webkit [184008] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.32-branch/Source

Versioning.

12:41 PM Changeset in webkit [184007] by bshafiei@apple.com
  • 1 copy in branches/safari-601.1.32-branch

New Branch.

12:23 PM Changeset in webkit [184006] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Micro-optimize JSON serialization of string primitives.
<https://webkit.org/b/144800>

Reviewed by Sam Weinig.

Don't use the out-of-line JSValue::getString() to grab at string primitives
in serialization. Just check if it's a JSString and then downcast to grab at
the WTF::String inside.

2% progression on Kraken/json-stringify-tinderbox.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue):

12:14 PM Changeset in webkit [184005] by ap@apple.com
  • 3 edits in trunk/Source/WebCore

Crashes in SocketStreamHandleBase::close
https://bugs.webkit.org/show_bug.cgi?id=144767
rdar://problem/20486538

Reviewed by Brady Eidson.

This is a speculative fix, I could not reproduce the crash.

  • Modules/websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::processFrame):

Normally, processOutgoingFrameQueue() closes the handle in the end when called in
OutgoingFrameQueueClosing state. But there is no definitive protection against
processing two CLOSE frames, in which case we'd try to close the handle twice.

  • platform/network/cf/SocketStreamHandleCFNet.cpp:

(WebCore::SocketStreamHandle::readStreamCallback): Passing empty data to the client
results in the socket being closed, which makes no sense here.

12:07 PM Changeset in webkit [184004] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix ProcessLauncher port leak
https://bugs.webkit.org/show_bug.cgi?id=144807
rdar://problem/20593291

Reviewed by Sam Weinig.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToService):
xpc_dictionary_set_mach_send increments the send right count so make sure to
balance it with a call to mach_port_deallocate.

12:01 PM Changeset in webkit [184003] by commit-queue@webkit.org
  • 13 edits in trunk

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

ASan detected use-after free (Requested by ap on #webkit).

Reverted changeset:

"Remove convenience constructors for TextRun"
https://bugs.webkit.org/show_bug.cgi?id=144752
http://trac.webkit.org/changeset/183996

11:59 AM Changeset in webkit [184002] by dbates@webkit.org
  • 1 edit
    1 add in trunk

[iOS] WebSQL operations are not performed after device is locked
https://bugs.webkit.org/show_bug.cgi?id=137503
<rdar://problem/20844952>

Rubber-stamped by Alexey Proskuryakov.

Add a manual test to help verify that we do not regress this issue.

  • ManualTests/ios/execute-sql-transaction-callback-after-locking-unlocking-device-in-earlier-transaction.html: Added.
11:45 AM Changeset in webkit [184001] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[Mac] Playback target clients do not unregister on page reload
https://bugs.webkit.org/show_bug.cgi?id=144761

Reviewed by Brady Eidson.

  • dom/Document.cpp:

(WebCore::Document::prepareForDestruction): Unregister all target picker clients.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::registerWithDocument): Register for page cache callback.
(WebCore::HTMLMediaElement::unregisterWithDocument): Unregister for page cache callback.
(WebCore::HTMLMediaElement::documentWillSuspendForPageCache): New.
(WebCore::HTMLMediaElement::documentDidResumeFromPageCache): New.

11:37 AM Changeset in webkit [184000] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles sidebar editing with incomplete property looks poor in UI
https://bugs.webkit.org/show_bug.cgi?id=141692

Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-05-08
Reviewed by Timothy Hatcher.

Add "css-rule" Formatter that breaks CSS declarations into multiple lines,
keeps comments and invalid styles and adds whitespace.

  • Tools/PrettyPrinting/css-rule-tests/*.css: Added.

Add test cases.

  • Tools/PrettyPrinting/index.html:

Enable Test setup to be able to run "css-rule" Formatter tests.

  • UserInterface/Controllers/Formatter.js:

(Formatter.prototype._handleToken):

  • UserInterface/Controllers/FormatterContentBuilder.js:

(FormatterContentBuilder.prototype.removeLastNewline):
(FormatterContentBuilder.prototype.removeLastWhitespace):
(FormatterContentBuilder.prototype._popFormattedContent):
(FormatterContentBuilder.prototype._popNewLine): Deleted.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContentFromEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.set this):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.get this):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.countNewLineCharacters): Deleted.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.else): Deleted.

  • UserInterface/Views/CodeMirrorFormatters.js:
11:20 AM Changeset in webkit [183999] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Fix performance tests after r183954
https://bugs.webkit.org/show_bug.cgi?id=144805

Reviewed by Alexey Proskuryakov.

Web* is traditionally a WK1 prefix, so use the WK2 prefix instead in WK2 so that
we don’t have two classes with the same name in the two projects.

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _defaultAnimationController]):

11:15 AM Changeset in webkit [183998] by Chris Dumez
  • 12 edits
    7 adds in trunk

Throttle RequestAnimationFrame in subframes that are outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=144718
<rdar://problem/20688782>

Reviewed by Simon Fraser.

Source/WebCore:

Throttle RequestAnimationFrame in subframes that are outside the
viewport or have "display: none" for performance and power.

Tests: fast/animation/request-animation-frame-throttle-subframe-display-none.html

fast/animation/request-animation-frame-throttle-subframe.html

  • dom/Document.h:

(WebCore::Document::scriptedAnimationController):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::setThrottled):
(WebCore::ScriptedAnimationController::isThrottled):

  • dom/ScriptedAnimationController.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::open):
Call FrameView::setFrameRect() only *after* the view has been
set on the Frame. Otherwise, setFrameRect() ends up calling
viewportContentsChanged() and we hit the
ASSERT(frame().view() == this) assertion in windowClipRect()
because the Frame still has its old FrameView. This is covered
by loader/go-back-to-different-window-size.html layout test.

  • page/FrameView.cpp:

(WebCore::FrameView::viewportContentsChanged):
(WebCore::FrameView::applyRecursivelyWithVisibleRect):
(WebCore::FrameView::resumeVisibleImageAnimations):
(WebCore::FrameView::updateScriptedAnimationsThrottlingState):
(WebCore::FrameView::resumeVisibleImageAnimationsIncludingSubframes):
(WebCore::FrameView::updateThrottledDOMTimersState):
(WebCore::FrameView::scrollPositionChanged): Deleted.
(WebCore::FrameView::sendResizeEventIfNeeded): Deleted.

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

(WebCore::Internals::isRequestAnimationFrameThrottled):
(WebCore::Internals::isTimerThrottled): Deleted.

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

LayoutTests:

  • fast/animation/request-animation-frame-throttle-subframe-display-none-expected.txt: Added.
  • fast/animation/request-animation-frame-throttle-subframe-display-none.html: Added.

Add layout test to test that RequestAnimationFrame is properly throttled
in "display: none" subframes.

  • fast/animation/request-animation-frame-throttle-subframe-expected.txt: Added.
  • fast/animation/request-animation-frame-throttle-subframe.html: Added.

Add layout test to test that RequestAnimationFrame is properly throttled
in frames that are outside the viewport.

  • fast/animation/resources/requestAnimationFrame-frame-2.html: Added.
  • fast/animation/resources/requestAnimationFrame-frame.html: Added.
  • platform/win/TestExpectations:

Skip the 2 new tests on Windows as requestAnimationFrame throttling is
only supported on Cocoa.

10:56 AM Changeset in webkit [183997] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix the iOS Simulator external SDK build following <http://trac.webkit.org/changeset/181918>

Remove unused iOS Simulator-variant of CARenderServerRenderLayerWithTransform(). Also guard
IOSurfaceRef-variant of CARenderServerRenderLayerWithTransform() with USE(IOSURFACE)
since it is only applicable on platforms that use IOSurface.

  • platform/spi/cocoa/QuartzCoreSPI.h:
10:18 AM Changeset in webkit [183996] by mmaxfield@apple.com
  • 13 edits in trunk

Remove convenience constructors for TextRun
https://bugs.webkit.org/show_bug.cgi?id=144752

Source/WebCore:

These convenience constructors are unnecessary. Moving the code that makes the StringView
back to the call site will also help us make things more elegant in future refactoring.

Reviewed by Darin Adler.

No new tests because there is no behavior change.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText): Remove ambiguous call.

  • platform/graphics/StringTruncator.cpp:

(WebCore::stringWidth):

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):

  • platform/mac/DragImageMac.mm:

(WebCore::widthWithFont):
(WebCore::drawAtPoint):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseFor):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style):
(WebCore::SimpleLineLayout::TextFragmentIterator::runWidth):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintText):

Source/WebKit/mac:

These convenience constructors are unnecessary. Moving the code that makes the StringView
back to the call site will also help us make things more elegant in future refactoring.

Reviewed by Darin Adler.

No new tests because there is no behavior change.

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _web_drawAtPoint:font:textColor:allowingFontSmoothing:]):
(-[NSString _web_widthWithFont:]):

Source/WTF:

Reviewed by Anders Carlsson.

No reason why StringView shouldn't have a StringImpl* constructor.

Test: StringView8Bit in TestWebKitAPI

  • wtf/text/StringView.h: Add the constructor.

Tools:

Reviewed by Anders Carlsson.

Test the StringView which takes a StringImpl*.

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(StringView8Bit): Testing is8Bit() on StringView

9:09 AM Changeset in webkit [183995] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] WTR doesn't correctly handle the Escape key
https://bugs.webkit.org/show_bug.cgi?id=144788

Reviewed by Martin Robinson.

Tools:

Correctly handle 0x001B character code in GTK+ event sender to be
recognized as Escape key, because gdk_unicode_to_keyval() doesn't
handle it. This fixes layout tests using keyDown(String.fromCharCode(0x001B), null);
to dismiss popup menus.

Fixes editing/selection/5354455-1.html.

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::getGDKKeySymForKeyRef):

LayoutTests:

Unskip editing/selection/5354455-1.html.

  • platform/gtk/TestExpectations:
8:12 AM Changeset in webkit [183994] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[Win] Unskip passing test case after r183981
https://bugs.webkit.org/show_bug.cgi?id=140517

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-05-08
Reviewed by Brent Fulgham.

  • platform/win/TestExpectations:
8:00 AM Changeset in webkit [183993] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening on 8th May.

Mark flaky tests and timeout tests after using xorgdriver on EFL port.

  • platform/efl/TestExpectations:
4:53 AM Changeset in webkit [183992] by Carlos Garcia Campos
  • 8 edits in trunk

[GTK] Expose allowFileAccessFromFileURLs setting to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=144748

Reviewed by Sergio Villar Senin.

Source/WebKit2:

This is needed by local applications loaded as a file URI that do XMLHttpRequests.

  • UIProcess/API/gtk/WebKitSettings.cpp:

(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_allow_file_access_from_file_urls):
(webkit_settings_set_allow_file_access_from_file_urls):

  • UIProcess/API/gtk/WebKitSettings.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:

Tools:

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSettings.cpp:

(testWebKitSettings): Check the new setting is correctly
initialized and updated.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:

(testWebContextSecurityFileXHR): Check XHR to local files is
allowed from file URLs after changing the setting.
(beforeAll): Add new test.

3:44 AM Changeset in webkit [183991] by youenn.fablet@crf.canon.fr
  • 13 edits
    2 adds in trunk

[Streams API] ReadableStream constructor start function should be able to error the stream
https://bugs.webkit.org/show_bug.cgi?id=141162

Reviewed by Darin Adler.

Source/WebCore:

This patch implements the functionality of the ReadableStreamController error function.
It basically changes the state of the stream to errored, resolves the ready promise and rejects the closed promise.
Adding support to reject promise with any JSValue.

Support for storing the error is added to both reader and stream.

Test: streams/readable-stream-controller-error.html and rebased tests

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::changeStateToErrored):

  • Modules/streams/ReadableStream.h:
  • Modules/streams/ReadableStreamReader.cpp:

(WebCore::ReadableStreamReader::initialize):
(WebCore::ReadableStreamReader::closed):
(WebCore::ReadableStreamReader::changeStateToClosed):
(WebCore::ReadableStreamReader::changeStateToErrored):

  • Modules/streams/ReadableStreamReader.h:
  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::reject):

  • bindings/js/JSReadableStreamControllerCustom.cpp:

(WebCore::JSReadableStreamController::error):

  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::closed):

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::createReader):
(WebCore::ReadableJSStream::storeError):
(WebCore::ReadableJSStream::Reader::storeError):
(WebCore::ReadableJSStream::jsController): Deleted.

  • bindings/js/ReadableJSStream.h:

LayoutTests:

  • streams/readable-stream-controller-error-expected.txt: Added.
  • streams/readable-stream-controller-error.html: Added.
  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/readable-stream-templated-expected.txt:
2:44 AM Changeset in webkit [183990] by commit-queue@webkit.org
  • 10 edits
    5 deletes in trunk

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

broke loader/go-back-to-different-window-size.html (Requested
by kling on #webkit).

Reverted changeset:

"Throttle RequestAnimationFrame in subframes that are outside
the viewport"
https://bugs.webkit.org/show_bug.cgi?id=144718
http://trac.webkit.org/changeset/183985

2:37 AM Changeset in webkit [183989] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

REGRESSION(r183072): dfg-put-by-id-prototype-check.js.layout-dfg-eager-no-cjit fails on AArch64 Linux
https://bugs.webkit.org/show_bug.cgi?id=144256

Unreviewed gardening, skip the failing test on AArch64 Linux.

  • js/script-tests/dfg-put-by-val-direct-to-generic-array.js:
1:44 AM Changeset in webkit [183988] by akling@apple.com
  • 9 edits in trunk/Source

Optimize serialization of quoted JSON strings.
<https://webkit.org/b/144754>

Reviewed by Darin Adler.

Source/JavaScriptCore:

Optimized the serialization of quoted strings into JSON by moving the logic into
StringBuilder so it can make smarter decisions about buffering.

12% progression on Kraken/json-stringify-tinderbox (on my Mac Pro.)

  • bytecompiler/NodesCodegen.cpp:

(JSC::ObjectPatternNode::toString): Use the new StringBuilder API.

  • runtime/JSONObject.h:
  • runtime/JSONObject.cpp:

(JSC::Stringifier::Holder::appendNextProperty):
(JSC::appendStringToStringBuilder): Deleted.
(JSC::appendQuotedJSONStringToBuilder): Deleted.
(JSC::Stringifier::appendQuotedString): Deleted.
(JSC::Stringifier::appendStringifiedValue): Moved the bulk of this logic
to StringBuilder and call that from here.

Source/WebKit2:

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::asJSON): Use the new StringBuilder API.

Source/WTF:

Add a StringBuilder API for appending a quoted JSON string. This is used by
JSON.stringify() to implement efficient appending of strings while escaping
quotes, control characters and \uNNNN-style characters.

The main benefit comes from only doing a single buffer expansion up front,
instead of doing it every time we append something. The fudge factor is pretty
large, since the maximum number of output characters per input character is 6.

The first landing of this patch had two bugs in it:

  • Made \uNNNN escapes uppercase hexadecimal instead of lowercase.
  • Didn't preallocate enough space for 8-bit input strings.

Both were caught by existing tests on our bots, and both were due to last-minute
changes before landing. :/

  • wtf/text/StringBuilder.cpp:

(WTF::appendQuotedJSONStringInternal):
(WTF::StringBuilder::appendQuotedJSONString):

  • wtf/text/StringBuilder.h:
1:04 AM Changeset in webkit [183987] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk/Source/WebCore

SharedBuffer::m_size should be initialized to 0 when defining it
https://bugs.webkit.org/show_bug.cgi?id=144740

Reviewed by Darin Adler.

Setting m_size to 0 when declaring it and updating constructor definitions.

No change in behaviour.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::SharedBuffer):

  • platform/SharedBuffer.h:
  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::SharedBuffer):

  • platform/soup/SharedBufferSoup.cpp:

(WebCore::SharedBuffer::SharedBuffer):

12:56 AM Changeset in webkit [183986] by commit-queue@webkit.org
  • 12 edits in trunk

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

"It broke all the GTK+ tests" (Requested by KaL on #webkit).

Reverted changeset:

"[GTK] Checks for DEVELOPMENT_BUILD are all wrong"
https://bugs.webkit.org/show_bug.cgi?id=144746
http://trac.webkit.org/changeset/183945

12:18 AM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
12:01 AM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)

May 7, 2015:

11:51 PM Changeset in webkit [183985] by Chris Dumez
  • 10 edits
    7 adds in trunk

Throttle RequestAnimationFrame in subframes that are outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=144718
<rdar://problem/20688782>

Reviewed by Simon Fraser.

Source/WebCore:

Throttle RequestAnimationFrame in subframes that are outside the
viewport or have "display: none" for performance and power.

Tests: fast/animation/request-animation-frame-throttle-subframe-display-none.html

fast/animation/request-animation-frame-throttle-subframe.html

  • dom/Document.h:

(WebCore::Document::scriptedAnimationController):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::setThrottled):
(WebCore::ScriptedAnimationController::isThrottled):

  • dom/ScriptedAnimationController.h:
  • page/FrameView.cpp:

(WebCore::FrameView::viewportContentsChanged):
(WebCore::FrameView::applyRecursivelyWithVisibleRect):
(WebCore::FrameView::resumeVisibleImageAnimations):
(WebCore::FrameView::updateScriptedAnimationsThrottlingState):
(WebCore::FrameView::resumeVisibleImageAnimationsIncludingSubframes):
(WebCore::FrameView::updateThrottledDOMTimersState):
(WebCore::FrameView::scrollPositionChanged): Deleted.
(WebCore::FrameView::sendResizeEventIfNeeded): Deleted.

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

(WebCore::Internals::isRequestAnimationFrameThrottled):
(WebCore::Internals::isTimerThrottled): Deleted.

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

LayoutTests:

  • fast/animation/request-animation-frame-throttle-subframe-display-none-expected.txt: Added.
  • fast/animation/request-animation-frame-throttle-subframe-display-none.html: Added.

Add layout test to test that RequestAnimationFrame is properly throttled
in "display: none" subframes.

  • fast/animation/request-animation-frame-throttle-subframe-expected.txt: Added.
  • fast/animation/request-animation-frame-throttle-subframe.html: Added.

Add layout test to test that RequestAnimationFrame is properly throttled
in frames that are outside the viewport.

  • fast/animation/resources/requestAnimationFrame-frame-2.html: Added.
  • fast/animation/resources/requestAnimationFrame-frame.html: Added.
11:50 PM Changeset in webkit [183984] by yoav@yoav.ws
  • 12 edits in trunk

Calculate source-size length as a float
https://bugs.webkit.org/show_bug.cgi?id=144766

Reviewed by Dean Jackson.

Source/WebCore:

Make sure that the source-size length is calculated as a float,
to align with the spec.

Test: fast/dom/HTMLImageElement/sizes/image-sizes-1x.html

fast/dom/HTMLImageElement/sizes/image-sizes-2x.html

  • css/SourceSizeList.cpp:

(WebCore::parseSizesAttribute):
(WebCore::defaultLength):
(WebCore::computeLength):

  • css/SourceSizeList.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::parseAttribute):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):

  • html/parser/HTMLSrcsetParser.cpp:

(WebCore::pickBestImageCandidate):
(WebCore::bestFitSourceForImageAttributes):

  • html/parser/HTMLSrcsetParser.h:

LayoutTests:

Add tests that make sure fractional source-size lengths are supported
and are calculated as floats.

  • fast/dom/HTMLImageElement/sizes/image-sizes-1x-expected.txt:
  • fast/dom/HTMLImageElement/sizes/image-sizes-1x.html:
  • fast/dom/HTMLImageElement/sizes/image-sizes-2x-expected.txt:
  • fast/dom/HTMLImageElement/sizes/image-sizes-2x.html:
11:39 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
11:32 PM Changeset in webkit [183983] by commit-queue@webkit.org
  • 6 edits in trunk

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

Many tests became flaky (Requested by ap on #webkit).

Reverted changeset:

"Expose more font weights for -apple-system"
https://bugs.webkit.org/show_bug.cgi?id=144707
http://trac.webkit.org/changeset/183895

11:30 PM Changeset in webkit [183982] by Martin Robinson
  • 7 edits
    1 delete in trunk/LayoutTests

Remove touchadjustment tests
https://bugs.webkit.org/show_bug.cgi?id=144780

Reviewed by Daniel Bates.

These tests test a feature that has been removed from WebKit entirely and all
ports skip the tests. This code was removed in http://trac.webkit.org/changeset/162231.

  • platform/efl/TestExpectations: Remove expectations.
  • platform/gtk/TestExpectations: Ditto.
  • platform/ios-simulator/TestExpectations: Ditto.
  • platform/mac/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
  • platform/wincairo/TestExpectations:
  • touchadjustment: Removed all files in this directory.
11:23 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
11:19 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
11:13 PM Changeset in webkit [183981] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add first-letter assert exception in RenderButton::setupInnerStyle().
https://bugs.webkit.org/show_bug.cgi?id=140517OB

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-05-07
Reviewed by Darin Adler.

StyleResolver references inner block's render style temporary in
RenderBlock::styleDidChange() when we have first-letter css pseudo
element.

  • rendering/RenderButton.cpp:

(WebCore::RenderButton::setupInnerStyle):

11:11 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
11:01 PM Changeset in webkit [183980] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix build after r183970.

WEBCORE_EXPORT should not be used on inlined functions.

  • platform/graphics/ca/GraphicsLayerCA.h:
10:47 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
10:28 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
9:58 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
9:57 PM Changeset in webkit [183979] by Simon Fraser
  • 2 edits in trunk/LayoutTests

New results after r183970. Fixed elements are now always considered to intersect
the coverage rect.

  • platform/mac-wk2/tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
9:23 PM Changeset in webkit [183978] by Conrad Shultz
  • 5 edits in trunk/Source/WebKit2

Don't register for Lookup notifications until needed
https://bugs.webkit.org/show_bug.cgi?id=144783

Reviewed by Tim Horton.

  • UIProcess/API/mac/WKView.mm:

Add a WKViewData ivar to track whether we've already registered for popover notifications.
(-[WKView _prepareForDictionaryLookup]):
Added; moved notification registration from -[WKView initWithFrame:processPool:configuration:webView:.
(-[WKView initWithFrame:processPool:configuration:webView:]):
Move notification registration to -_prepareForDictionaryLookup.

  • UIProcess/API/mac/WKViewInternal.h:

Expose -_prepareForDictionaryLookup.

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::didPerformDictionaryLookup):
Send -[WKView _prepareForDictionaryLookup].

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _animationControllerForText]):
Ditto.

8:27 PM Changeset in webkit [183977] by commit-queue@webkit.org
  • 9 edits in trunk/Source

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

Broke js/dom/JSON-stringify.html (Requested by kling on
#webkit).

Reverted changeset:

"Optimize serialization of quoted JSON strings."
https://bugs.webkit.org/show_bug.cgi?id=144754
http://trac.webkit.org/changeset/183961

7:59 PM Changeset in webkit [183976] by andersca@apple.com
  • 18 edits in trunk

Build fixes.

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper doAXRTFForRange:]):

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::_addMarkersToList):

  • platform/mac/PasteboardMac.mm:

(WebCore::writeFileWrapperAsRTFDAttachment):

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::setTypes):
Pass empty arrays and dictionaries instead of nil.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSliderThumb):
Pass the document view to the AppKit paint method.

Source/WebKit/mac:

  • Misc/WebNSPasteboardExtras.mm:

(-[NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]):
(-[WebHTMLView _selectionStartFontAttributesAsRTF]):

  • WebView/WebPDFView.mm:

(-[WebPDFView writeSelectionWithPasteboardTypes:toPasteboard:]):
Pass empty arrays and dictionaries instead of nil.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
Use the regular init method.

Source/WebKit2:

  • UIProcess/API/mac/WKView.mm:

(-[WKView initWithFrame:processPool:configuration:webView:]):
Use the regular init method.

  • UIProcess/mac/WKSharingServicePickerDelegate.mm:

(-[WKSharingServicePickerDelegate sharingService:didShareItems:]):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::handleSelectionServiceClick):
Pass empty dictionaries instead of nil.

Tools:

  • TestWebKitAPI/Tests/mac/HTMLCollectionNamedItem.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/HTMLFormCollectionNamedItem.mm:

(TestWebKitAPI::TEST):
Add casts.

7:18 PM Changeset in webkit [183975] by commit-queue@webkit.org
  • 29 edits in trunk

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

Patch by Gyuyoung Kim <gyuyoung.kim@samsung.com> on 2015-05-07
Reviewed by Andreas Kling.

Replace PassRefPtr with Ref in create() factory functions, because
it doesn't have to change to be null.

No new tests, no behavior changes.

  • html/FTPDirectoryDocument.h:
  • html/HTMLDetailsElement.cpp:

(WebCore::DetailsContentElement::create):

  • html/HTMLKeygenElement.cpp:
  • html/HTMLSummaryElement.cpp:

(WebCore::SummaryContentElement::create):

  • html/TimeRanges.cpp:

(WebCore::TimeRanges::create):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderContainerElement::create):

  • html/shadow/SliderThumbElement.h:

(WebCore::SliderThumbElement::create):

  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::create):

  • html/shadow/SpinButtonElement.h:
  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerContainer::create):
(WebCore::TextControlInnerElement::create):
(WebCore::TextControlInnerTextElement::create):
(WebCore::SearchFieldResultsButtonElement::create):
(WebCore::SearchFieldCancelButtonElement::create):

  • html/shadow/TextControlInnerElements.h:
  • html/shadow/YouTubeEmbedShadowElement.cpp:

(WebCore::YouTubeEmbedShadowElement::create):

  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::create):

  • html/track/InbandDataTextTrack.h:
  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::create):

  • html/track/InbandGenericTextTrack.h:
  • html/track/InbandWebVTTTextTrack.cpp:

(WebCore::InbandWebVTTTextTrack::create):

  • html/track/InbandWebVTTTextTrack.h:
  • html/track/LoadableTextTrack.h:
  • html/track/TextTrack.h:

(WebCore::TextTrack::create):

  • html/track/TextTrackCueGeneric.cpp:
  • html/track/TextTrackCueGeneric.h:
  • html/track/TextTrackList.h:
  • html/track/VTTRegionList.h:

(WebCore::VTTRegionList::create):

7:12 PM Changeset in webkit [183974] by fpizlo@apple.com
  • 11 edits
    1 add in trunk

GC has trouble with pathologically large array allocations
https://bugs.webkit.org/show_bug.cgi?id=144609

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:

The bug was that SlotVisitor::copyLater() would return early for oversize blocks (right
after pinning them), and would skip the accounting. The GC calculates the size of the heap
in tandem with the scan to save time, and that accounting was part of how the GC would
know how big the heap was. The GC would then think that oversize copied blocks use no
memory, and would then mess up its scheduling of the next GC.

Fixing this bug is harder than it seems. When running an eden GC, we figure out the heap
size by summing the size from the last collection and the size by walking the eden heap.
But this breaks when we eagerly delete objects that the last collection touched. We can do
that in one corner case: copied block reallocation. The old block will be deleted from old
space during the realloc and a new block will be allocated in new space. In order for the
GC to know that the size of old space actually shrank, we need a field to tell us how much
such shrinkage could occur. Since this is a very dirty corner case and it only works for
very particular reasons arising from the special properties of copied space (single owner,
and the realloc is used in places where the compiler already knows that it cannot register
allocate a pointer to the old block), I opted for an equally dirty shrinkage counter
devoted just to this case. It's called bytesRemovedFromOldSpaceDueToReallocation.

To test this, I needed to add an Option to force a particular RAM size in the GC. This
allows us to write tests that assert that the GC heap size is some value X, without
worrying about machine-to-machine variations due to GC heuristics changing based on RAM
size.

  • heap/CopiedSpace.cpp:

(JSC::CopiedSpace::CopiedSpace): Initialize the dirty shrinkage counter.
(JSC::CopiedSpace::tryReallocateOversize): Bump the dirty shrinkage counter.

  • heap/CopiedSpace.h:

(JSC::CopiedSpace::takeBytesRemovedFromOldSpaceDueToReallocation): Swap out the counter. Used by the GC when it does its accounting.

  • heap/Heap.cpp:

(JSC::Heap::Heap): Allow the user to force the RAM size.
(JSC::Heap::updateObjectCounts): Use the dirty shrinkage counter to good effect. Also, make this code less confusing.

  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::copyLater): The early return for isOversize() was the bug. We still need to report these bytes as live. Otherwise the GC doesn't know that it owns this memory.

  • jsc.cpp: Add size measuring hooks to write the largeish test.

(GlobalObject::finishCreation):
(functionGCAndSweep):
(functionFullGC):
(functionEdenGC):
(functionHeapSize):

  • runtime/Options.h:
  • tests/stress/new-array-storage-array-with-size.js: Fix this so that it actually allocates ArrayStorage arrays and tests the thing it was supposed to test.
  • tests/stress/new-largeish-contiguous-array-with-size.js: Added. This tests what the other test accidentally started testing, but does so without running your system out of memory.

(foo):
(test):

Tools:


Add a --filter option that restricts the set of tests we run. I needed it to fix this bug
and it's a frequently requested feature.

Also add the ability to run a test pretending that your system has a particular RAM size.
This is useful for GC tests, and the new GC test that I added uses this.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

  • Scripts/run-jsc-stress-tests:
7:05 PM Changeset in webkit [183973] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Bump EFL version to 1.14.0
https://bugs.webkit.org/show_bug.cgi?id=144743

Reviewed by Darin Adler.

Bump EFL and elementary version to 1.14.0 and removed
md5sum, because it isn't used at all if hash is present.

  • efl/jhbuild.modules:
6:59 PM Changeset in webkit [183972] by saambarati1@gmail.com
  • 8 edits in trunk/Source/JavaScriptCore

Global functions should be initialized as JSFunctions in byte code
https://bugs.webkit.org/show_bug.cgi?id=144178

Reviewed by Geoffrey Garen.

This patch makes the initialization of global functions more explicit by
moving initialization into bytecode. It also prepares JSC for having ES6
style lexical scoping because initializing global functions in bytecode
easily allows global functions to be initialized with the proper scope that
will have access to global lexical variables. Global lexical variables
should be visible to global functions but don't live on the global object.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedProgramCodeBlock::visitChildren):

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

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):

  • bytecompiler/BytecodeGenerator.h:
  • runtime/Executable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::addGlobalVar):
(JSC::JSGlobalObject::addFunction):

  • runtime/JSGlobalObject.h:
6:55 PM Changeset in webkit [183971] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] MediaControls: disappear while scrubbing
https://bugs.webkit.org/show_bug.cgi?id=144777
<rdar://problem/20065572>

Reviewed by Eric Carlson.

If we are scrubbing we shouldn't hide the controls.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.hideControls): Return early if we are scrubbing.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype): Add initial value for _potentiallyScrubbing and
rename from non-underscored value throughout the file.
(ControllerIOS.prototype.handleTimelineTouchEnd): When we finish scrubbing, reset
the timer to hide the controls.

6:46 PM Changeset in webkit [183970] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

REGRESSION (r183300): Fixed elements flash when scrolling
https://bugs.webkit.org/show_bug.cgi?id=144778
rdar://problem/20769741

Reviewed by Dean Jackson.

After r183300 we can detached layer backing store when outside the coverage region.
However, position:fixed layers are moved around by the ScrollingCoordinator behind
GraphicsLayer's back, so we can do layer flushes with stale information about layer
geometry.

To avoid dropping backing store for layers in this situation, prevent backing
store detachment on layers registered with the ScrollingCoordinator as viewport-constrained
layers. Preventing detachment on a layer also prevents detachment on all descendant
layers.

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setAllowsBackingStoreDetachment):
(WebCore::GraphicsLayer::allowsBackingStoreDetachment):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): Set m_intersectsCoverageRect to true
if backing store detachment is prevented.
(WebCore::GraphicsLayerCA::recursiveCommitChanges): Set a bit in the CommitState to
communicate to descendants that detachment is prevented.

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::CommitState::CommitState): Deleted.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::setIsScrollCoordinatedWithViewportConstrainedRole):

  • rendering/RenderLayerBacking.h:

(WebCore::RenderLayerBacking::setScrollingNodeIDForRole): If registering with a non-zero
nodeID for the ViewportConstrained role, turn off backing store detachment.

6:23 PM Changeset in webkit [183969] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

ASSERTION when pasting text into the WebInspector console
https://bugs.webkit.org/show_bug.cgi?id=144774

Reviewed by Ryosuke Niwa.

Fix assertion in didChangeSelection() meant to check that calling
editorState() does not cause a synchronous layout. The assertion
was not correct as it was relying on FrameView::needsLayout() and
we would hit it if calling editorState() would schedule a layout.
Instead, the new assertion relies on FrameView::layoutCount(),
which is more accurate.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didChangeSelection):

6:08 PM Changeset in webkit [183968] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebKit/mac

Fix iPhone 6 iOS simulator Build.
following http://trac.webkit.org/changeset/183954.

Reviewed by Daniel Bates.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView pressureChangeWithEvent:]):

5:59 PM Changeset in webkit [183967] by weinig@apple.com
  • 5 edits
    4 adds in trunk

Consider implementing Document.scrollingElement
<rdar://problem/20845213>
https://bugs.webkit.org/show_bug.cgi?id=143609

Reviewed by Simon Fraser.

Source/WebCore:

Add the non-compliant implementation of Document.scrollingElement that the spec,
found at http://dev.w3.org/csswg/cssom-view/#dom-document-scrollingelement,
says we should have while we have non-compliant implementations of Element.scrollTop
and Element.scrollLeft (fixing that is tracked by https://bugs.webkit.org/show_bug.cgi?id=106133).

Tests: fast/dom/Document/scrollingElement-quirks-mode.html

fast/dom/Document/scrollingElement-standards-mode.html

  • dom/Document.cpp:

(WebCore::Document::scrollingElement):

  • dom/Document.h:
  • dom/Document.idl:

LayoutTests:

  • fast/dom/Document/scrollingElement-quirks-mode-expected.txt: Added.
  • fast/dom/Document/scrollingElement-quirks-mode.html: Added.
  • fast/dom/Document/scrollingElement-standards-mode-expected.txt: Added.
  • fast/dom/Document/scrollingElement-standards-mode.html: Added.
5:54 PM Changeset in webkit [183966] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix the x86 32bits build

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-05-07

  • assembler/X86Assembler.h:
5:45 PM Changeset in webkit [183965] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] While scrubbing and holding down, video continues to play
https://bugs.webkit.org/show_bug.cgi?id=144776
<rdar://problem/20863757>

Reviewed by Simon Fraser.

When we are scrubbing a video, we should pause playback. As we
let go of the scrubber playback can resume (but only if it was
playing originally).

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.createControls): Listen for touchstart on the scrubber.
(ControllerIOS.prototype.handleTimelineInput): Call the prototype, but pause if necessary.
(ControllerIOS.prototype.handleTimelineChange): Just moved this to be with the other timeline functions.
(ControllerIOS.prototype.handleTimelineTouchStart): Add the listeners for end and cancel. Remember that we are
potentially about to scrub.
(ControllerIOS.prototype.handleTimelineTouchEnd): Remove the listeners.

5:38 PM Changeset in webkit [183964] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.6

New tag.

5:23 PM Changeset in webkit [183963] by benjamin@webkit.org
  • 28 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Add basic DFG/FTL support for Math.round
https://bugs.webkit.org/show_bug.cgi?id=144725

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

This patch adds two optimizations targeting Math.round():
-Add a DFGNode ArithRound corresponding to the intrinsic RoundIntrinsic.
-Change the MacroAssembler to be stricter on how we fail to convert a double

to ingeter. Previously, any number valued zero would fail, now we only
fail for -0.

Since ArithRound speculate it produces int32, the MacroAssembler assembler
part became necessary because zero is a pretty common output of Math.round()
and we would OSR exit a lot (and eventually recompile for doubles).

The implementation itself of the inline Math.round() is exactly the same
as the C function that exists for Math.round(). We can very likely do better
but it is a good start known to be valid and inlining alone alread provides
significant speedups.

  • assembler/X86Assembler.h:

(JSC::X86Assembler::movmskpd_rr):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::branchConvertDoubleToInt32):
When we have a zero, get the sign bit out of the double and check if is one.

I'll look into doing the same improvement for ARM.

  • bytecode/SpeculatedType.cpp:

(JSC::typeOfDoubleRounding):
(JSC::typeOfDoubleFRound): Deleted.

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

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsic):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::roundShouldSpeculateInt32):
(JSC::DFG::Graph::negateShouldSpeculateMachineInt): Deleted.

  • dfg/DFGNode.h:

(JSC::DFG::Node::arithNodeFlags):
(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::hasArithMode):

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithRound):

  • dfg/DFGSpeculativeJIT.h:
  • 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::convertDoubleToInt32):
(JSC::FTL::LowerDFGToLLVM::compileDoubleAsInt32):
(JSC::FTL::LowerDFGToLLVM::compileArithRound):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::ceil64):

  • jit/ThunkGenerators.cpp:
  • runtime/MathCommon.cpp:
  • runtime/MathCommon.h:
  • runtime/MathObject.cpp:

(JSC::mathProtoFuncRound):

  • tests/stress/math-round-basics.js: Added.

(mathRoundOnIntegers):
(mathRoundOnDoubles):
(mathRoundOnBooleans):
(uselessMathRound):
(mathRoundWithOverflow):
(mathRoundConsumedAsDouble):
(mathRoundDoesNotCareAboutMinusZero):
(mathRoundNoArguments):
(mathRoundTooManyArguments):
(testMathRoundOnConstants):
(mathRoundStructTransition):
(Math.round):

5:20 PM Changeset in webkit [183962] by saambarati1@gmail.com
  • 7 edits in trunk

exceptionFuzz tests should explicitly initialize the exceptionFuzz boolean in JavaScript code through a function in jsc.cpp
https://bugs.webkit.org/show_bug.cgi?id=144753

Reviewed by Mark Lam.

Source/JavaScriptCore:

This allows the BytecodeGenerator to freely emit startup code that "may"
throw exceptions without worrying that this startup code will trigger
the exceptionFuzz exception. The exceptionFuzz counter will only begin
ticking when the 'enableExceptionFuzz' function is explicitly called in
the exceptionFuzz tests.

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionEnableExceptionFuzz):

  • tests/exceptionFuzz/3d-cube.js:
  • tests/exceptionFuzz/date-format-xparb.js:
  • tests/exceptionFuzz/earley-boyer.js:

Tools:

  • Scripts/jsc-stress-test-helpers/js-exception-fuzz:
5:17 PM Changeset in webkit [183961] by akling@apple.com
  • 9 edits in trunk/Source

Optimize serialization of quoted JSON strings.
<https://webkit.org/b/144754>

Reviewed by Darin Adler.

Source/JavaScriptCore:

Optimized the serialization of quoted strings into JSON by moving the logic into
StringBuilder so it can make smarter decisions about buffering.

12% progression on Kraken/json-stringify-tinderbox (on my Mac Pro.)

  • bytecompiler/NodesCodegen.cpp:

(JSC::ObjectPatternNode::toString): Use the new StringBuilder API.

  • runtime/JSONObject.h:
  • runtime/JSONObject.cpp:

(JSC::Stringifier::Holder::appendNextProperty):
(JSC::appendStringToStringBuilder): Deleted.
(JSC::appendQuotedJSONStringToBuilder): Deleted.
(JSC::Stringifier::appendQuotedString): Deleted.
(JSC::Stringifier::appendStringifiedValue): Moved the bulk of this logic
to StringBuilder and call that from here.

Source/WebKit2:

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::asJSON): Use the new StringBuilder API.

Source/WTF:

Add a StringBuilder API for appending a quoted JSON string. This is used by
JSON.stringify() to implement efficient appending of strings while escaping
quotes, control characters and \uNNNN-style characters.

The main benefit comes from only doing a single buffer expansion up front,
instead of doing it every time we append something. The fudge factor is pretty
large for 16-bit strings, since the maximum number of output characters per
input character is 6.

  • wtf/text/StringBuilder.cpp:

(WTF::appendQuotedJSONStringInternal):
(WTF::StringBuilder::appendQuotedJSONString):

  • wtf/text/StringBuilder.h:
4:32 PM Changeset in webkit [183960] by Said Abou-Hallawa
  • 6 edits in trunk/Source/WebCore

Applying a filter on an SVG element, which is larger than 4096 pixels, causes this element to be rendered shifted to the left
https://bugs.webkit.org/show_bug.cgi?id=144335

Reviewed by Daniel Bates.

Address comments raised by Darin Adler in review.

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::sizeNeedsClamping):
(WebCore::ImageBuffer::clampedSize):
(WebCore::ImageBuffer::isSizeClamped): Deleted.

  • platform/graphics/ImageBuffer.h:

The condition for the negative width/height in isSizeClamped() was wrong. Use
FloatSize::isEmpty() instead and rename the function to sizeNeedsClamping().
The new function should return the opposite of the old function return value.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::asUnmultipliedImage):
(WebCore::FilterEffect::asPremultipliedImage):
(WebCore::FilterEffect::copyUnmultipliedImage):
(WebCore::FilterEffect::copyPremultipliedImage):
(WebCore::FilterEffect::createUnmultipliedImageResult):
(WebCore::FilterEffect::createPremultipliedImageResult):

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::updateBackingStoreRect):
(WebCore::FilterEffectRendererHelper::beginFilterEffect):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):
Call the new function and negate the condition for the return value.

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

Release assert in com.apple.WebKit.WebContent under JavaScriptCore: JSC::JSONProtoFuncStringify
https://bugs.webkit.org/show_bug.cgi?id=144758

Reviewed by Andreas Kling.

This was an out-of-memory error when trying to shrink a string builder.
bmalloc was missing the optimization that allowed realloc() to shrink
without copying. So, let's add it.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::reallocate): Added Large and XLarge cases for
shrinking without copying. This isn't possible for small and medium
objects, and probably not very profitable, either.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::findXLarge):
(bmalloc::Heap::deallocateXLarge):

  • bmalloc/Heap.h: Refactored this code to return a reference to an

XLarge range. This makes the code reusable, and also makes it easier
for realloc() to update metadata.

  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::split): Allow allocated objects to split because
that's what realloc() wants to do, and there's nothing intrinsically
wrong with it.

4:08 PM Changeset in webkit [183958] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • editing/mac/EditorMac.mm:

(WebCore::dataInRTFDFormat):
(WebCore::dataInRTFFormat):

4:08 PM Changeset in webkit [183957] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Occasional null deref in WebImmediateActionController
https://bugs.webkit.org/show_bug.cgi?id=144772
<rdar://problem/20811128>

Reviewed by Beth Dakin.

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]):
(-[WebImmediateActionController _animationControllerForDataDetectedText]):
(-[WebImmediateActionController _animationControllerForDataDetectedLink]):
Null-check TextIndicators before dereferencing.

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

Applying a filter on an SVG element, which is larger than 4096 pixels, causes this element to be rendered shifted to the left
https://bugs.webkit.org/show_bug.cgi?id=144335

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

Source/WebCore:

When the SVG element is larger than 4096x4096 pixels and it has a filter,
a clipper or a masker, the ImageBuffer which is created for drawing the
sourceGraphicBuffer has to be clamped to this size. The reason for this
clamping is the FilterEffect simply ignores processing any ImageBuffer
larger than this size.

The bug was happening because we did not propagate the clamping logic to
the FilterEffect. The FilterEffect result ImageBuffer was not clamped as
what we do for drawing the sourceGraphicBuffer. If only the destination
point is specified, the GraphicsContext::drawImageBuffer() assumes the
source and the destination images have the same size which is not true
with the clamping.

The fix is to add the clamping logic to the FilterEffect. Two places we
need to change. (1) FilterEffect::createImageBufferResult() has to apply
the same clamping we do in SVGRenderingContext::createImageBuffer(). (2)
FilterEffect::drawingRegionOfInputImage() has to consider the clamping
when mapping from absolute coordinates to the ImageBuffer coordinates.

Tests: svg/filters/big-sized-off-viewport-filter.svg

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::isSizeClamped):
(WebCore::ImageBuffer::clampedSize):
(WebCore::ImageBuffer::clampedRect):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::setSpaceSize): Move all the clamping helper methods
from SVGRenderingContext and RenderSVGResourceFilter to the ImageBuffer.

  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::platformApplySoftware): Use logicalSize() of the
result image instead of using absolutePaintRect(). The later returns the
rectangle of the element without clamping.

  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::fitsInMaximumImageSize): Deleted.

  • rendering/svg/RenderSVGResourceFilter.h:
  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applySVGMask):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::buildPattern):
(WebCore::RenderSVGResourcePattern::createTileImage): Make the modifications
which are needed because of moving the clamping helper methods to ImageBuffer
and because of changing the prototype of SVGRenderingContext methods.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::drawingRegionOfInputImage): Consider the clamping
when mapping from absolute coordinates to the ImageBuffer coordinates.

(WebCore::FilterEffect::createImageBufferResult): Apply the same clamping
we do in SVGRenderingContext::createImageBuffer() when creating the
FilterEffect result ImageBuffer.

(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::asUnmultipliedImage):
(WebCore::FilterEffect::asPremultipliedImage):
(WebCore::FilterEffect::copyUnmultipliedImage):
(WebCore::FilterEffect::copyPremultipliedImage):
(WebCore::FilterEffect::createUnmultipliedImageResult):
(WebCore::FilterEffect::createPremultipliedImageResult):
(WebCore::FilterEffect::maxFilterArea): Deleted.
(WebCore::FilterEffect::isFilterSizeValid): Deleted.

  • platform/graphics/filters/FilterEffect.h: Use the new ImageBuffer clamping

helper methods and delete the local ones.

  • platform/graphics/transforms/AffineTransform.cpp:

(WebCore::AffineTransform::scaleNonUniform):
(WebCore::AffineTransform::scale):
(WebCore::AffineTransform::translate):

  • platform/graphics/transforms/AffineTransform.h: Add new scale and translate

overloads to AffineTransform.

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::updateBackingStoreRect):
(WebCore::FilterEffectRendererHelper::beginFilterEffect): Code clean up.

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::calculateScreenFontSizeScalingFactor):
(WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):
Return the AffineTransform instead of passing it through the reference of
an argument.

(WebCore::SVGRenderingContext::createImageBuffer):
(WebCore::SVGRenderingContext::createImageBufferForPattern): Deleted.
Code clean up and method rename.

(WebCore::SVGRenderingContext::clampedAbsoluteTargetRect): Deleted.
(WebCore::SVGRenderingContext::clampedAbsoluteSize): Deleted.

  • rendering/svg/SVGRenderingContext.h: Move the clamping helper methods to

the ImageBuffer class.

LayoutTests:

  • svg/filters/big-sized-off-viewport-filter-expected.svg: Added.
  • svg/filters/big-sized-off-viewport-filter.svg: Added.

Ensure when applying a filter on a large SVG element, the viewport of the
SVG includes the correct drawing part of this element.

3:35 PM Changeset in webkit [183955] by Yusuke Suzuki
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

FunctionCallBracketNode should store the base value to the temporary when subscript has assignment
https://bugs.webkit.org/show_bug.cgi?id=144678

Reviewed by Geoffrey Garen.

Currently, FunctionCallBracketNode directly use the RegisterID returned by emitNode.
But if the base part is the local register and the subscript part has assignment to it, the base result is accidentally rewritten.

function t() { var ok = {null: function () { } }; ok[ok = null](); }
t(); Should not throw error.

This patch takes care about subscriptHasAssignment.
By using emitNodeForLeftHandSide, when there's assignment to local variables in RHS,
it correctly moves the LHS value to a temporary register.

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionCallBracketNode::emitBytecode):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeFunctionCallNode):

  • parser/NodeConstructors.h:

(JSC::FunctionCallBracketNode::FunctionCallBracketNode):

  • parser/Nodes.h:
  • tests/stress/assignment-in-function-call-bracket-node.js: Added.

(shouldBe):
(shouldBe.):

3:32 PM Changeset in webkit [183954] by Beth Dakin
  • 15 edits in trunk

New force-related DOM events should fire in WK1 views
https://bugs.webkit.org/show_bug.cgi?id=144663
-and corresponding-
rdar://problem/20281886

Reviewed by Sam Weinig.

Source/WebCore:

All of the WK1 mouse events need to take the correspondingPressureEvent.

  • page/EventHandler.h:

Make correspondingPressureEvent a part of CurrentEventScope. This is needed to
have accurate pressure information for all of the mouse events in subframes.

  • page/mac/EventHandlerMac.mm:

(WebCore::correspondingPressureEventSlot):
(WebCore::EventHandler::correspondingPressureEvent):
(WebCore::CurrentEventScope::CurrentEventScope):
(WebCore::CurrentEventScope::~CurrentEventScope):

These events don’t have an associated pressure, so send nil for the
correspondingPressureEvent.
(WebCore::EventHandler::wheelEvent):
(WebCore::EventHandler::keyEvent):

Pipe through correspondingPressureEvent.
(WebCore::EventHandler::mouseDown):
(WebCore::EventHandler::mouseDragged):
(WebCore::EventHandler::mouseUp):
(WebCore::EventHandler::mouseMoved):

New function to handle pressure change events.
(WebCore::EventHandler::pressureChange):

Pipe through correspondingPressureEvent.
(WebCore::EventHandler::passMouseMovedEventToScrollbars):
(WebCore::EventHandler::currentPlatformMouseEvent):

Take the correspondingPressureEvent in order to build a PlatformMouseEvent with
the correct pressure information.

  • platform/mac/PlatformEventFactoryMac.h:
  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::globalPointForEvent):
(WebCore::pointForEvent):
(WebCore::mouseButtonForEvent):
(WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder):
(WebCore::PlatformEventFactory::createPlatformMouseEvent):

Source/WebKit:

Pass the lastPressureEvent to WebCore.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _updateMouseoverWithEvent:]):
(-[WebHTMLView rightMouseUp:]):
(-[WebHTMLView menuForEvent:]):
(-[WebHTMLView acceptsFirstMouse:]):
(-[WebHTMLView shouldDelayWindowOrderingForEvent:]):
(-[WebHTMLView mouseDown:mouseDown:]):
(-[WebHTMLView mouseDragged:]):
(-[WebHTMLView mouseUp:mouseUp:]):

New NSRespnder method for pressure changes.
(-[WebHTMLView pressureChangeWithEvent:]):

New BOOL _contentPreventsDefault tracks whether the HitTestResult prevented the
default action. Get rid of willHandleMouseDown; now that the gesture recognizer
sets delaysPrimaryMouseButtonEvents to NO, we don’t need this.

  • WebView/WebImmediateActionController.h:
  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _clearImmediateActionState]):

Set all of the immediateActionStages on EventHandler. This is critical to keep
link navigation happening at the right time now that
delaysPrimaryMouseButtonEvents is set to NO.
(-[WebImmediateActionController performHitTestAtPoint:]):
(-[WebImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
(-[WebImmediateActionController immediateActionRecognizerDidCancelAnimation:]):
(-[WebImmediateActionController immediateActionRecognizerDidCompleteAnimation:]):

Use a dummy animation controller if the content prevents default.
(-[WebImmediateActionController _defaultAnimationController]):
(-[WebImmediateActionController _updateImmediateActionItem]):
(-[WebImmediateActionController webView:willHandleMouseDown:]): Deleted.

Set delaysPrimaryMouseButtonEvents to NO so that we get existing mouse events when
we expect to.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Cache the most recent pressure event so that we can send it to WebCore for all of
the mouse events.
(-[WebView _pressureEvent]):
(-[WebView _setPressureEvent:]):

  • WebView/WebViewData.h:
  • WebView/WebViewData.mm:

(-[WebViewPrivate dealloc]):

  • WebView/WebViewInternal.h:

Source/WebKit/mac:

Pass the lastPressureEvent to WebCore.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _updateMouseoverWithEvent:]):
(-[WebHTMLView rightMouseUp:]):
(-[WebHTMLView menuForEvent:]):
(-[WebHTMLView acceptsFirstMouse:]):
(-[WebHTMLView shouldDelayWindowOrderingForEvent:]):
(-[WebHTMLView mouseDown:mouseDown:]):
(-[WebHTMLView mouseDragged:]):
(-[WebHTMLView mouseUp:mouseUp:]):

New NSRespnder method for pressure changes.
(-[WebHTMLView pressureChangeWithEvent:]):

New BOOL _contentPreventsDefault tracks whether the HitTestResult prevented the
default action. Get rid of willHandleMouseDown; now that the gesture recognizer
sets delaysPrimaryMouseButtonEvents to NO, we don’t need this.

  • WebView/WebImmediateActionController.h:
  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _clearImmediateActionState]):

Set all of the immediateActionStages on EventHandler. This is critical to keep
link navigation happening at the right time now that
delaysPrimaryMouseButtonEvents is set to NO.
(-[WebImmediateActionController performHitTestAtPoint:]):
(-[WebImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
(-[WebImmediateActionController immediateActionRecognizerDidCancelAnimation:]):
(-[WebImmediateActionController immediateActionRecognizerDidCompleteAnimation:]):

Use a dummy animation controller if the content prevents default.
(-[WebImmediateActionController _defaultAnimationController]):
(-[WebImmediateActionController _updateImmediateActionItem]):
(-[WebImmediateActionController webView:willHandleMouseDown:]): Deleted.

Set delaysPrimaryMouseButtonEvents to NO so that we get existing mouse events when
we expect to.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Cache the most recent pressure event so that we can send it to WebCore for all of
the mouse events.
(-[WebView _pressureEvent]):
(-[WebView _setPressureEvent:]):

  • WebView/WebViewData.h:
  • WebView/WebViewData.mm:

(-[WebViewPrivate dealloc]):

  • WebView/WebViewInternal.h:

Tools:

PlatformEventFactory::createPlatformMouseEvent() takes the last pressure event
now. Just send nil.

  • TestWebKitAPI/Tests/mac/MenuTypesForMouseEvents.mm:

(TestWebKitAPI::buildAndPerformTest):

3:25 PM Changeset in webkit [183953] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Media Controls: Scrubber should be independent of actual video time, causes scrubber to be jumpy.
https://bugs.webkit.org/show_bug.cgi?id=144700.
<rdar://problem/19997548>

Reviewed by Jer Noble.

Update time and timeline during the timeline input event instead of the wrapper's mousemove.
(Controller.prototype.handleWrapperMouseMove):
(Controller.prototype.handleTimelineMouseMove):
(Controller.prototype.drawTimelineBackground):

(Controller.prototype.updateControlsWhileScrubbing):
Updates time and scrubber to reflect timeline user input.

3:23 PM Changeset in webkit [183952] by mmaxfield@apple.com
  • 1 edit
    1 delete in trunk

Cleanup after r183940
https://bugs.webkit.org/show_bug.cgi?id=144768

Unreviewed.

Looks like the empty directories were not deleted.

  • Source/PAL: Removed.
  • Source/PAL/Configurations: Removed.
  • Source/PAL/PAL.xcodeproj: Removed.
  • Source/PAL/graphics: Removed.
3:16 PM Changeset in webkit [183951] by yoav@yoav.ws
  • 7 edits
    2 adds in trunk

Handle meta viewport in HTMLPreloadScanner
https://bugs.webkit.org/show_bug.cgi?id=144640

Reviewed by Dean Jackson.

Source/WebCore:

Add support for the <meta> tag to the HTMLPreloadScanner
and when the meta tag's name is viewport, get the document
to process the tag's attribute value, and set its ViewportArgument.

Tests: fast/dom/HTMLMetaElement/meta-preloader.html

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::tagIdFor): Added meta.
(WebCore::TokenPreloadScanner::initiatorFor): Added meta.
(WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner): Call document.processViewport is meta viewport encountered.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Keep track of meta viewport tags.
(WebCore::testPreloadScannerViewportSupport): Testing function that makes sure this functionality is working.

  • html/parser/HTMLPreloadScanner.h:
  • testing/Internals.cpp:

(WebCore::Internals::testPreloaderSettingViewport): Calls the testing function.

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

LayoutTests:

Added a layout test that is simply calling an internals method
that tests the HTMLPreloadScanner.

  • fast/dom/HTMLMetaElement/meta-preloader-expected.txt: Added.
  • fast/dom/HTMLMetaElement/meta-preloader.html: Added.
3:03 PM Changeset in webkit [183950] by Alan Bujtas
  • 4 edits
    2 adds in trunk

REGRESSION (r164449): Subpixel rendering: http://www.apple.com/iphone-6/ "Faster wireless." image displays vertical black line on 1x displays at specific window width.
https://bugs.webkit.org/show_bug.cgi?id=144723
rdar://problem/18307094

Reviewed by Simon Fraser.

This patch ensures that the backing store's graphics layer is always positioned on a device pixel boundary.

While calculating the backing store's graphics layer location, its ancestor layer's compositing bounds is taken into account.
However the compositing bounds is an unsnapped value, so in order to place the graphics layer properly,
we need to pixel align the ancestor compositing bounds before using it to adjust the child's graphics layer position.

Source/WebCore:

Test: compositing/ancestor-compositing-layer-is-on-subpixel-position.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

LayoutTests:

  • compositing/ancestor-compositing-layer-is-on-subpixel-position-expected.html: Added.
  • compositing/ancestor-compositing-layer-is-on-subpixel-position.html: Added.
  • platform/mac/compositing/layer-creation/overlap-animation-container-expected.txt: progression.
2:45 PM Changeset in webkit [183949] by Martin Robinson
  • 2 edits in trunk/Source/WebKit2

Followup fixes to r183936

I neglected to include a few review comments when I landed the patch.

  • UIProcess/gtk/TextCheckerGtk.cpp:

(WebKit::checkerState): Remove double semicolons.
(WebKit::updateStateForAllProcessPools): Use range-based-for loop here and
give the function a better name.
(WebKit::TextChecker::setContinuousSpellCheckingEnabled): Use new function name
(WebKit::TextChecker::setGrammarCheckingEnabled):Use new function name
(WebKit::TextChecker::ignoreWord): Fix unused parameter warning.
(WebKit::updateStateForAllContexts): Deleted.

2:22 PM Changeset in webkit [183948] by yoav@yoav.ws
  • 3 edits
    2 adds in trunk

Fix sizes crash and add invalid value tests.
https://bugs.webkit.org/show_bug.cgi?id=144739

Reviewed by Darin Adler.

Source/WebCore:

Make sure that only CSS length are allowed when the sizes parser is calling computeLength.
Also make sure that for invalid lengths, the 100vw default is used instead.

Test: fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html

  • css/SourceSizeList.cpp:

(WebCore::computeLength):
(WebCore::defaultLength):
(WebCore::parseSizesAttribute):

LayoutTests:

Add tests that make sure that invalid values are properly handled, and a 100vw
source-size length is being used for srcset and for intrinsic dimension calculation.

  • fast/dom/HTMLImageElement/sizes/image-sizes-invalids-expected.txt: Added.
  • fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html: Added.
2:16 PM Changeset in webkit [183947] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Expanding Object with only proto looks poor should have a label
https://bugs.webkit.org/show_bug.cgi?id=144755

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-07
Reviewed by Timothy Hatcher.

Better handle cases where expanding an object has only a proto
and no other properties.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.mode.prototype.this.children.length):
(WebInspector.ObjectTreePropertyTreeElement):

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree-outline li .empty-message):

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView.createEmptyMessageElement):
(WebInspector.ObjectTreeView.comparePropertyDescriptors):
(WebInspector.ObjectTreeView.prototype._updateProperties):

2:15 PM Changeset in webkit [183946] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Fix querySelector in ResourceContentView.js, caught by assertion
https://bugs.webkit.org/show_bug.cgi?id=144756

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-07
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ResourceContentView.js:

(WebInspector.ResourceContentView.prototype._hasContent):
Ensure querySelector call is using the class name correctly.

2:09 PM Changeset in webkit [183945] by Michael Catanzaro
  • 12 edits in trunk

[GTK] Checks for DEVELOPMENT_BUILD are all wrong
https://bugs.webkit.org/show_bug.cgi?id=144746

Reviewed by Martin Robinson.

.:

Don't set DEVELOPMENT_BUILD. We check whether it is defined for conditional compilation, not
what it is defined to, so defining it to 0 effectively turned it on always.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Use DEVELOPER_MODE rather than DEVELOPMENT_BUILD.

  • platform/gtk/GtkUtilities.cpp:
  • platform/gtk/GtkUtilities.h:
  • platform/text/gtk/HyphenationLibHyphen.cpp:

(WebCore::availableLocales):

Source/WebKit2:

Use DEVELOPER_MODE rather than DEVELOPMENT_BUILD.

  • Shared/gtk/ProcessExecutablePathGtk.cpp:

(WebKit::findWebKitProcess):

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(injectedBundleDirectory):

  • UIProcess/gtk/TextCheckerGtk.cpp:

(WebKit::enchantTextChecker):

Tools:

Use DEVELOPER_MODE rather than DEVELOPMENT_BUILD.

  • MiniBrowser/gtk/main.c:

(main):

1:59 PM Changeset in webkit [183944] by basile_clement@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add missing braces on a single-line if that got expanded in r183939

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::buildExitArguments):

1:45 PM Changeset in webkit [183943] by Simon Fraser
  • 7 edits
    2 adds in trunk

Remove the WK1-only code path for independently composited iframes
https://bugs.webkit.org/show_bug.cgi?id=144722

Reviewed by Dean Jackson.
Source/WebCore:

In WebKit1 on Mac, we allowed iframes to be composited independently of their
parent document, relying on the fact that the frame's platform view can host
a layer-backed view. However, this ran into bugs (rdar://problem/18862298),
and triggers the assertion at the end of FrameView::updateLayoutAndStyleIfNeededRecursive(),
because the compositing update after a layout can dirty style in notifyIFramesOfCompositingChange().

Removing the WK1-only code path solves these problems. It also eliminates the need
to do compositing-specific frame overlap testing.

  • page/FrameView.cpp:

(WebCore::FrameView::setIsOverlapped): No need to do compositing-related things here.
Any iframe that gets composited will participate in the normal compositing overlap
testing in its parent frame.
(WebCore::FrameView::hasCompositedContentIncludingDescendants): Deleted.
(WebCore::FrameView::hasCompositingAncestor): Deleted.

  • page/FrameView.h:
  • rendering/RenderLayerCompositor.cpp: Replace ownerElement() checks in this file

with an isMainFrameCompositor() for readability. Some 0->nullptr.
(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
(WebCore::RenderLayerCompositor::chromeClient):
(WebCore::RenderLayerCompositor::enclosingCompositorFlushingLayers):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::layerTreeAsText):
(WebCore::RenderLayerCompositor::frameContentsCompositor):
(WebCore::RenderLayerCompositor::setIsInWindow):
(WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):
(WebCore::RenderLayerCompositor::requiresCompositingForFrame): frameRenderer.requiresAcceleratedCompositing()
already bails on no content RenderView, so the shouldPropagateCompositingToEnclosingFrame() check does
nothing and is removed.
(WebCore::RenderLayerCompositor::isAsyncScrollableStickyLayer):
(WebCore::RenderLayerCompositor::requiresScrollLayer):
(WebCore::RenderLayerCompositor::documentUsesTiledBacking):
(WebCore::RenderLayerCompositor::isMainFrameCompositor):
(WebCore::RenderLayerCompositor::shouldCompositeOverflowControls):
(WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):
(WebCore::RenderLayerCompositor::requiresContentShadowLayer):
(WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForHeader):
(WebCore::RenderLayerCompositor::updateLayerForFooter):
(WebCore::RenderLayerCompositor::ensureRootLayer): Main frame attaches via ChromeClient,
all other frames attach via parent frame.
(WebCore::RenderLayerCompositor::notifyIFramesOfCompositingChange): This call to
scheduleSetNeedsStyleRecalc(SyntheticStyleChange) was the source of dirtying style after
layout, but is no longer needed so remove it.
(WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
(WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
(WebCore::RenderLayerCompositor::scrollingCoordinator):
(WebCore::RenderLayerCompositor::graphicsLayerFactory):
(WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames): Deleted.
(WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Deleted.
(WebCore::RenderLayerCompositor::mainFrameBackingIsTiled): Deleted. This was mis-named;
it really asks whether the document uses tiled backing, but does not check for main frame.

  • rendering/RenderLayerCompositor.h:
  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paintContents): No need to do frame overlap testing for
compositing now.

LayoutTests:

Results different from WK2, because WK1 does not make layers for scrollbars.

  • platform/mac-wk1/compositing/visible-rect/iframe-no-layers-expected.txt: Added.
1:13 PM Changeset in webkit [183942] by dino@apple.com
  • 6 edits
    2 adds in trunk

Handle backdrop views that have to tile
https://bugs.webkit.org/show_bug.cgi?id=142317
<rdar://problem/20049088>

Reviewed by Simon Fraser.

Take 2 - this was rolled out because Mavericks was crashing.

Source/WebCore:

Make sure backdrop layers don't tile. If they are big
enough, we'll leave it to the platform compositor to handle.

This also fixes a bug where if a layer changed from a backdrop
type to a tiled type, it would still retain its custom appearance
and we'd try to add children to the wrong layer.

Test: compositing/media-controls-bar-appearance-big.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Check if
a layer needs a backdrop before checking if it needs to tile.

Source/WebKit2:

Add some better logging for custom appearance.

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTextStream::operator<<):

LayoutTests:

A test that creates some backdrop views, then makes them
big enough that it would trigger tiling (which we don't want
to happen).

  • compositing/media-controls-bar-appearance-big-expected.txt: Added.
  • compositing/media-controls-bar-appearance-big.html: Added.
1:06 PM Changeset in webkit [183941] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Add PLUGIN_ARCHITECTURE(X11) around m_frameRectInWindowCoordinates in NetscapePlugin.
https://bugs.webkit.org/show_bug.cgi?id=144490

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-05-07
Reviewed by Darin Adler.

m_frameRectInWindowCoordinates in NetscapePlugin is currently being used only for
the windowed plugins, and the windowed plugins are only supported on X11. So we can
guard it with PLUGIN_ARCHITECTURE(X11).

No new tests, no behavior change.

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::geometryDidChange):

  • WebProcess/Plugins/Netscape/NetscapePlugin.h:
11:52 AM Changeset in webkit [183940] by mmaxfield@apple.com
  • 13 edits
    11 deletes in trunk

Revert "Introducing the Platform Abstraction Layer (PAL)"
https://bugs.webkit.org/show_bug.cgi?id=144751

Unreviewed.

PAL should be a new target inside WebCore, rather than a top-level folder.

.:

  • WebKit.xcworkspace/contents.xcworkspacedata: Add it to the workspace.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Updated

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig: Updated

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig: Updated

Tools:

  • Scripts/build-webkit: Add it to build-webkit.
11:39 AM Changeset in webkit [183939] by basile_clement@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Dumping OSR ExitValue should expand materializations only once
https://bugs.webkit.org/show_bug.cgi?id=144694

Reviewed by Filip Pizlo.

Currently, dumping OSR exit values will print the full materialization
information each time it is encountered. We change it to print only a
brief description (only the materialization's address), and print the
whole set of materializations later on.

This makes the dump less confusing (less likely to think that two
instances of the same materialization are different), and will be a
necessary change if/when we support materialization cycles.

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLExitValue.cpp:

(JSC::FTL::ExitValue::dumpInContext):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::buildExitArguments):

11:32 AM Changeset in webkit [183938] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Worker threads leak WeakBlocks (as seen on leaks bot)
<https://webkit.org/b/144721>
<rdar://problem/20848288>

Reviewed by Darin Adler.

Nuke any remaining empty WeakBlocks when the Heap is being torn down.
Trying to peek into these blocks after the VM is dead would be a bug anyway.

This fixes a ~750 KB leak seen on the leaks bot.

  • heap/Heap.cpp:

(JSC::Heap::~Heap):

11:26 AM Changeset in webkit [183937] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

[WK2][Fullscreen] Fullscreen video does not enter low-power mode.
https://bugs.webkit.org/show_bug.cgi?id=144744

Reviewed by Darin Adler.

One of the requirements of entering low-power compositing mode is that no masking layers
are present in any of the ancestors of the fullscreen video layer. So once our fullscreen
transition animation completes, remove the mask layer entirely from our clipping layer.
This means it needs to be re-created and added when entering fullscreen, rather than just
at initialization time.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController initWithWindow:webView:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):

11:24 AM Changeset in webkit [183936] by Martin Robinson
  • 10 edits
    3 deletes in trunk

[GTK] All spell checking layout tests fail
https://bugs.webkit.org/show_bug.cgi?id=144648

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

Simplify and complete the GTK+ spell-checking implementation. Instead of using
the EFL/GTK+ only WKTextChecker interface, directly implement Enchant spell-checking
in TextCheckerGtk. The per-context spell checking API is an illusion, since all
WKTextChecker implementations will adjust the same singleton. This can be a first step
toward removing it entirely.

Also complete the implementation of the TextChecker interface by duplicating the EFL code,
which reuses other methods in the same class. Eventually this duplication will collapse,
once GTK+ and EFL can share an Enchant implementation.

  • PlatformGTK.cmake:
  • UIProcess/API/gtk/WebKitPrivate.h:
  • UIProcess/API/gtk/WebKitTextChecker.cpp: Removed.
  • UIProcess/API/gtk/WebKitTextChecker.h: Removed.
  • UIProcess/API/gtk/WebKitWebContext.cpp: Remove WebTextChecker usage and

replace it with calls directly to the TextChecker singleton via static methods.

  • UIProcess/TextChecker.h:
  • UIProcess/gtk/TextCheckerGtk.cpp: Move the WebTextChecker enchant implementation

here and reuse the EFL version of WebKit::TextChecker::requestCheckingOfString.
Also initialize languages properly when building for developer builds. This
allows WebKitTestRunner to work even when it doesn't explicitly set the languages.

Source/WTF:

  • wtf/Platform.h: Activate UNIFIED_TEXT_CHECKING for GTK+.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip and reclassify previously failing tests.
  • platform/gtk/editing/spelling/spellcheck-paste-expected.txt: Removed.
11:01 AM Changeset in webkit [183935] by ggaren@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Don't branch when accessing the callee
https://bugs.webkit.org/show_bug.cgi?id=144645

Reviewed by Michael Saboff.

The branch was added in <http://trac.webkit.org/changeset/81040> without
explanation.

kling found it to be a performance problem. See <https://webkit.org/b/144586>.

Our theory of access to Registers is that it's up to the client to access
them in the right way. So, let's do that.

  • interpreter/CallFrame.h:

(JSC::ExecState::callee):
(JSC::ExecState::setCallee): Call the field object instead of function
because nothing guarantees that it's a function.

  • interpreter/ProtoCallFrame.h:

(JSC::ProtoCallFrame::callee):
(JSC::ProtoCallFrame::setCallee):

  • interpreter/Register.h:
  • runtime/JSObject.h:

(JSC::Register::object): Just do a cast like our other accessors do.
(JSC::Register::operator=):
(JSC::Register::function): Deleted.
(JSC::Register::withCallee): Deleted.

10:59 AM Changeset in webkit [183934] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Tried to fix the build.

  • Configurations/WebCoreTestSupport.xcconfig:
10:45 AM Changeset in webkit [183933] by adachan@apple.com
  • 4 edits
    1 add in trunk

Source/WebKit2:
Fix a couple of cases where the backForwardListState's currentIndex is not set correctly in WebBackForwardList::backForwardListState().
https://bugs.webkit.org/show_bug.cgi?id=144666

Reviewed by Darin Adler.

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::backForwardListState):
If the first item is filtered out and the currentIndex is 0, don't decrement currentIndex.
If all the items are filtered out, set currentIndex to the uninitialized value.

Tools:
Add a test for WKPageCopySessionState() with filtering.
https://bugs.webkit.org/show_bug.cgi?id=144666

Reviewed by Darin Adler.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/WKPageCopySessionStateWithFiltering.cpp: Added.

(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::filterFirstItemCallback):
(TestWebKitAPI::filterAllItemsCallback):
(TestWebKitAPI::createSessionStates):
(TestWebKitAPI::TEST):

10:30 AM Changeset in webkit [183932] by jdiggs@igalia.com
  • 11 edits in trunk

AX: [ATK] The pre element should be mapped to ATK_ROLE_SECTION; not ATK_ROLE_PANEL
https://bugs.webkit.org/show_bug.cgi?id=144702

Reviewed by Chris Fleizach.

Source/WebCore:

Add a new PreRole AccessibilityRole so that per-platform mapping is possible.
Map PreRole to ATK_ROLE_SECTION for Efl and Gtk; to NSAccessibilityGroupRole
for the Mac. Add PreRole to the list of "text type" ATK roles.

No new tests. Existing tests were updated to reflect the corrected mapping.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/atk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::allowsTextRanges):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):
(roleIsTextType):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):

LayoutTests:

In addition to updating the platform expectations for Efl and Gtk, the computed
roles test needed to be updated because there is not a one-to-one mapping between
the HTML pre element and any ARIA role type.

  • accessibility/roles-computedRoleString-expected.txt: Updated.
  • accessibility/roles-computedRoleString.html: Updated.
  • platform/efl/accessibility/roles-exposed-expected.txt: Updated.
  • platform/gtk/accessibility/roles-exposed-expected.txt: Updated.
10:18 AM Changeset in webkit [183931] by Csaba Osztrogonác
  • 4 edits in trunk/Source/WebKit2

[WK2] Remove Windows cruft
https://bugs.webkit.org/show_bug.cgi?id=144745

Reviewed by Darin Adler.

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::getMemorySize):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:

(IPC::ArgumentCoder<WebCore::GraphicsSurfaceToken>::encode):
(IPC::ArgumentCoder<WebCore::GraphicsSurfaceToken>::decode):

  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::getMemorySize):

9:46 AM Changeset in webkit [183930] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

REGRESSION(r182032): [GTK] Production build is broken after r182032
https://bugs.webkit.org/show_bug.cgi?id=144736

Reviewed by Martin Robinson.

The problem is that r182032 moved the NetworkProcess sources from
WebKit2 sources to NetworkProcess sources. That's not a problem
for developer builds where all internal symbols are exported, but
doesn't work for production builds because all those internal
symbols are private.

  • CMakeLists.txt: Use a different name for common network process

sources variable.

  • PlatformMac.cmake: Append common network process sources to the

network process source list for Mac.

9:26 AM Changeset in webkit [183929] by mitz@apple.com
  • 22 edits in trunk/Source

<rdar://problem/19317140> [Xcode] Remove usage of AspenFamily.xcconfig in Source/
https://bugs.webkit.org/show_bug.cgi?id=144727

Reviewed by Darin Adler.

Source/bmalloc:

  • Configurations/Base.xcconfig: Dont’s include AspenFamily.xcconfig, and define

INSTALL_PATH_PREFIX for the iOS 8.x Simulator.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define

INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator.

Source/PAL:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define

INSTALL_PATH_PREFIX for the iOS 8.x Simulator.

Source/ThirdParty:

  • gtest/xcode/Config/General.xcconfig: Don’t include AspenFamily.xcconfig.

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define

INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator.

Source/WebCore:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig.
  • Configurations/WebCore.xcconfig: For iOS, define INSTALL_PATH in terms of

INSTALL_PATH_PREFIX, and set INSTALL_PATH_PREFIX for the iOS 8.x Simulator.

  • Configurations/WebCoreTestSupport.xcconfig: Define INSTALL_PATH in terms of

INSTALL_PATH_PREFIX and INSTALL_PATH_ACTUAL, and define INSTALL_PATH_PREFIX for the iOS 8.x
Simulator.

Source/WebKit/mac:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig.
  • Configurations/WebKitLegacy.xcconfig: Define INSTALL_PATH in terms of

INSTALL_PATH_PREFIX and INSTALL_PATH_ACTUAL, and define INSTALL_PATH_PREFIX for the iOS 8.x
Simulator.

Source/WebKit2:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define

INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator.

  • Configurations/WebKit2.xcconfig: Define INSTALL_PATH_ACTUAL and let INSTALL_PATH be

derived from it and INSTALL_PATH_PREFIX. Don’t override DYLIB_INSTALL_NAME_BASE for iOS,
because we define LD_DYLIB_INSTALL_NAME directly where needed.

Source/WTF:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define

INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator.

8:56 AM Changeset in webkit [183928] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Special-case Int32 values in JSON.stringify().
<https://webkit.org/b/144731>

Reviewed by Michael Saboff.

Add a fast path for serializing Int32 values to JSON. This is far faster than dragging
simple integers through the full-blown dtoa() machinery.

~50% speedup on Kraken/json-stringify-tinderbox.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue):

8:31 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
7:12 AM Changeset in webkit [183927] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac] Playback target isn't set on new element
https://bugs.webkit.org/show_bug.cgi?id=144724

Reviewed by Jer Noble.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Call setShouldPlayToPlaybackTarget
if necessary.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget): Remember
the setting in case we don't have an AVPlayer yet.

7:03 AM Changeset in webkit [183926] by Csaba Osztrogonác
  • 2 edits
    6 deletes in trunk/LayoutTests

[EFL] Unreviewed gardening.

Removed stale expected files, because these tests are reftests now. (as RWT suggested)
Commented old expectations after r183925 to avoid having ambiguous expectations.

  • platform/efl/TestExpectations:
  • platform/efl/animations/cross-fade-background-image-expected.png: Removed.
  • platform/efl/animations/cross-fade-background-image-expected.txt: Removed.
  • platform/efl/css3/masking/clip-path-circle-relative-overflow-expected.png: Removed.
  • platform/efl/css3/masking/clip-path-polygon-evenodd-expected.png: Removed.
  • platform/efl/css3/masking/clip-path-polygon-expected.png: Removed.
  • platform/efl/css3/masking/clip-path-polygon-nonzero-expected.png: Removed.
6:48 AM Changeset in webkit [183925] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[EFL] Mouseevent/hover tests fail with XorgDriver
https://bugs.webkit.org/show_bug.cgi?id=144741

Unreviewed gardening, mark failing tests, skip timeouting tests.

  • platform/efl/TestExpectations:
3:39 AM Changeset in webkit [183924] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.9.1

WebKitGTK+ 2.9.1

3:14 AM Changeset in webkit [183923] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[EFL] REGRESSION(r183907): It made all inspector-protocol test crash
https://bugs.webkit.org/show_bug.cgi?id=144737

Unreviewed gardening, skip crashing tests.

  • platform/efl/TestExpectations:
3:05 AM Changeset in webkit [183922] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.1 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.9.1.
2:49 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
1:26 AM Changeset in webkit [183921] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WTF

[GTK] Clean up RunLoop implementation
https://bugs.webkit.org/show_bug.cgi?id=144729

Reviewed by Carlos Garcia Campos.

Clean up the RunLoop implementation for the GTK port,
removing unnecessary methods and using simpler variable names.

Nested GMainLoops in RunLoop::run() are now created for the
RunLoop's GMainContext, and not for the default context (enforced
through the null argument to g_main_loop_new()).

  • wtf/RunLoop.h:
  • wtf/gtk/RunLoopGtk.cpp:

(WTF::RunLoop::RunLoop):
(WTF::RunLoop::~RunLoop):
(WTF::RunLoop::run):
(WTF::RunLoop::stop):
(WTF::RunLoop::wakeUp):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::innermostLoop): Deleted.
(WTF::RunLoop::pushNestedMainLoop): Deleted.
(WTF::RunLoop::popNestedMainLoop): Deleted.

1:09 AM Changeset in webkit [183920] by yoav@yoav.ws
  • 3 edits
    4 adds in trunk

Fix <script srcset> being loaded by the preloader.
https://bugs.webkit.org/show_bug.cgi?id=144675

Reviewed by Darin Adler.

Source/WebCore:

Fix HTMLPreloadScanner to make sure that srcset is only loaded
when it is present on an <img>.

Tests: http/tests/loading/preload-script-src.html

http/tests/loading/preload-script-srcset-ignored.html

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):

LayoutTests:

Add preloader tests to make sure that <script src> is preloaded,
and <script srcset> is not.

  • http/tests/loading/preload-script-src-expected.txt: Added.
  • http/tests/loading/preload-script-src.html: Added.
  • http/tests/loading/preload-script-srcset-ignored-expected.txt: Added.
  • http/tests/loading/preload-script-srcset-ignored.html: Added.
1:02 AM Changeset in webkit [183919] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[GTK] Remove dock button from Web Inspector window
https://bugs.webkit.org/show_bug.cgi?id=144728

Reviewed by Sergio Villar Senin.

We added the dock buttons to the headerbar, because they were
removed from the inspector toolbar, but with the new tabbed
design, the dock buttons are back in the toolbar and look redundant.

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):
(WebKit::WebInspectorProxy::dockButtonClicked): Deleted.

12:09 AM Changeset in webkit [183918] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Add missing type traits specialization for PlatformDisplayWayland
https://bugs.webkit.org/show_bug.cgi?id=144671

Reviewed by Carlos Garcia Campos.

  • platform/graphics/wayland/PlatformDisplayWayland.h:

Add missing type traits specialization for the PlatformDisplayWayland
class via the SPECIALIZE_TYPE_TRAITS_PLATFORM_DISPLAY macro.

Note: See TracTimeline for information about the timeline view.