Timeline



Apr 13, 2015:

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

Use modern for-loops in Document
https://bugs.webkit.org/show_bug.cgi?id=143600

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

No new tests, no behavior changes.

  • dom/Document.cpp:

(WebCore::Document::visibilityStateChanged):
(WebCore::Document::processBaseElement):
(WebCore::Document::moveNodeIteratorsToNewDocument):
(WebCore::Document::updateRangesAfterChildrenChanged):
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):
(WebCore::Document::textInserted):
(WebCore::Document::textRemoved):
(WebCore::Document::textNodesMerged):
(WebCore::Document::textNodeSplit):
(WebCore::Document::documentWillSuspendForPageCache):
(WebCore::Document::documentDidResumeFromPageCache):
(WebCore::Document::mediaVolumeDidChange):
(WebCore::Document::privateBrowsingStateDidChange):
(WebCore::Document::captionPreferencesChanged):
(WebCore::Document::validateAutoSizingNodes):
(WebCore::Document::resetAutoSizingNodes):
(WebCore::Document::webkitExitFullscreen):
(WebCore::Document::absoluteRegionForEventTargets):

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

Build fixes after r182772.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _updateAutomaticallyComputedFixedLayoutSize]): Make a CGSize, not an NSSize.
(-[WKView _setAutomaticallyComputesFixedLayoutSizeFromViewScale:]): Moved implementation
to the correct place.
(-[WKView _automaticallyComputesFixedLayoutSizeFromViewScale]): Ditto.
(-[WKView _layoutMode]): Use a memeber from _data directly, not via a method.

9:59 PM Changeset in webkit [182780] by Manuel Rego Casasnovas
  • 8 edits
    4 adds in trunk

[CSS Grid Layout] Columns set in percentages collapse to auto width
https://bugs.webkit.org/show_bug.cgi?id=141435

Reviewed by David Hyatt.

Source/WebCore:

Based on a patch by Sergio Villar Senin <svillar@igalia.com>.

This patch adds 2 new new methods in RenderBox to determine if the grid
has a definite size or not.

RenderGrid::gridTrackSize() was not checking properly if the grid has or
not an indefinite size.
The condition was including auto which is not indefinite per se. For
example, auto is definite if the containing block is definite.
As the new method is more expensive, we just call it when it's really
needed to avoid performance regressions.

Finally we were setting the override logical width/height to -1 (no
possible resolution) for all the items regardless if they've a relative
width/height or a fixed one.
Added the condition, including not only items with percentage logical
width/height but also relative, to avoid overriding the value for items
with fixed width/height as it's not needed.

Tests: fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html

fast/css-grid-layout/percent-intrinsic-track-breadth.html
fast/css-grid-layout/percent-track-breadths-regarding-container-size.html

  • rendering/RenderBox.cpp:

(WebCore::logicalWidthIsResolvable):
(WebCore::RenderBox::hasDefiniteLogicalWidth):
(WebCore::RenderBox::percentageLogicalHeightIsResolvableFromBlock):
(WebCore::RenderBox::hasRelativeLogicalWidth):

  • rendering/RenderBox.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::hasDefiniteLogicalSize):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::logicalContentHeightForChild):
(WebCore::RenderGrid::minContentForChild):
(WebCore::RenderGrid::maxContentForChild):

  • rendering/RenderGrid.h:

LayoutTests:

Added new tests to check that percentage track breadths are properly
calculated under different sizing conditions.
Modified one test to include relative sizes too.

  • fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution-expected.txt:
  • fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html:
  • fast/css-grid-layout/percent-intrinsic-track-breadth-expected.txt: Added.
  • fast/css-grid-layout/percent-intrinsic-track-breadth.html: Added.
  • fast/css-grid-layout/percent-track-breadths-regarding-container-size-expected.txt: Added.
  • fast/css-grid-layout/percent-track-breadths-regarding-container-size.html: Added.
8:24 PM Changeset in webkit [182779] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

More build fix.

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::setDragImage):

8:02 PM Changeset in webkit [182778] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Expanding window.navigator.mimeTypes in ObjectTree shows no native properties
https://bugs.webkit.org/show_bug.cgi?id=143690

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

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement):
Fix a typo that resulted in hiding properties of native objects
in the Properties section of an Object Tree.

8:00 PM Changeset in webkit [182777] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove unnecessary 3 second delay when archiving page
https://bugs.webkit.org/show_bug.cgi?id=143688

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

  • UserInterface/Base/Main.js:

(WebInspector.archiveMainFrame):
The delay is unnecessary and was probably just debugging code.

7:44 PM Changeset in webkit [182776] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[EFL][GTK] Fix build break after r182753
https://bugs.webkit.org/show_bug.cgi?id=143689

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-04-13
Reviewed by Anders Carlsson.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage):
(IPC::Connection::sendOutgoingMessage):

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::allocate):
(WebKit::accessModeMMap):
(WebKit::SharedMemory::map):
(WebKit::SharedMemory::create): Deleted.

6:36 PM Changeset in webkit [182775] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix.

  • UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::setDragImage):
6:33 PM Changeset in webkit [182774] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Keep track of each shared memory object's protection when deciding whether to return our existing port
https://bugs.webkit.org/show_bug.cgi?id=143687

Reviewed by Tim Horton.

  • Platform/SharedMemory.h:
  • Platform/mac/SharedMemoryMac.cpp:

(WebKit::machProtection):
(WebKit::SharedMemory::create):
(WebKit::SharedMemory::map):
(WebKit::SharedMemory::createHandle):

5:45 PM Changeset in webkit [182773] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Regression: Scrolling on popsci.com spends too much time in FrameView::viewportsContentsChanged()
https://bugs.webkit.org/show_bug.cgi?id=143675

Reviewed by Simon Fraser.

Optimize resumeVisibleImageAnimationsIncludingSubframes() so that the FrameViews'
windowClipRect gets computed less often:

  • Cache the FrameView's windowClipRect before resuming image animations in subframes as calling windowClipRect() on those subframes' view is going to call windowClipRect() on their ancestors. This avoids a lot of unnecessary windowClipRect recomputations in deep frame trees.
  • Stop traversing the Frame tree if the current frame does not have a content renderer, as this means the subframes won't have one either.
  • Stop traversing the Frame tree if the current frame's view has an empty windowClipRect() as this means the windowClipRect will be empty for those subframes as well.

On popsci.com, this cuts down the number of uncached windowClipRect() calls by
approximately half. I see viewportsContentsChanged() at ~0.4% when scrolling
on popsci.com after this change.

  • page/FrameView.cpp:

(WebCore::FrameView::resumeVisibleImageAnimationsIncludingSubframes):
(WebCore::FrameView::windowClipRect):

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

(WebCore::RenderView::resumePausedImageAnimationsIfNeeded):

  • rendering/RenderView.h:
5:27 PM Changeset in webkit [182772] by timothy_horton@apple.com
  • 21 edits in trunk

Add a persistent, fixed scale factor to make it easy to scale down WK(Web)Views
https://bugs.webkit.org/show_bug.cgi?id=143560
<rdar://problem/16302047>

Reviewed by Darin Adler.

Add a new "view" scale factor to WKView and WKWebView.

Unlike page scale (or "magnification" in the API), view scale:

  • persists between page loads
  • persists between Web process crashes
  • is not user adjustable
  • can reliably be < 1

The page scale and view scale are multiplied together whenever we push
a new page scale down into WebCore, so the implementation of view scale
is transparent to WebCore, and acts effectively as a constant multiplier
for the (user-adjustable) page scale factor.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::scaleView):
Add scaleView, which updates our cached viewScaleFactor and pushes it to the Web process.

(WebKit::WebPageProxy::creationParameters):
Plumb viewScaleFactor through the page creation parameters.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::viewScaleFactor): Added.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
If the viewScaleFactor is not 1 at creation time, call scalePage with a page scale of 1.
Internally, scalePage will multiply in the viewScaleFactor and push it all to the Web process.

(WebKit::WebPage::scalePage):
Multiply the page scale factor by the view scale factor before passing it to WebCore.

(WebKit::WebPage::scalePageInViewCoordinates):
Early returns need to check the total scale, not just the new page scale.

(WebKit::WebPage::totalScaleFactor):
The scale that we get back from WebCore::Page::pageScaleFactor is the product
of WebKit2's view and page scales. So, here we'll call that the totalScaleFactor.
(Might need a different name because it seems like "total" should include deviceScale too).

(WebKit::WebPage::pageScaleFactor):
WebKit2's notion of the pageScaleFactor does not include the view scale, so
divide it out of WebCore's page scale.

(WebKit::WebPage::scaleView):
Apply a new view scale, maintaining the current scroll position.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::viewScaleFactor):

  • WebProcess/WebPage/WebPage.messages.in:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:

Plumb viewScaleFactor through the page creation parameters.

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _viewScale]):
(-[WKWebView _setViewScale:]):

  • UIProcess/API/mac/WKView.mm:

(-[WKView _viewScale]):
(-[WKView _setViewScale:]):
Push the new view scale to WebPage.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setAutomaticallyComputesFixedLayoutSizeFromViewScale:]):
(-[WKWebView _automaticallyComputesFixedLayoutSizeFromViewScale]):

  • UIProcess/API/mac/WKView.mm:

(-[WKView setFrameSize:]):
(-[WKView _updateAutomaticallyComputedFixedLayoutSize]):
(-[WKView _setAutomaticallyComputesFixedLayoutSizeFromViewScale:]):
(-[WKView _automaticallyComputesFixedLayoutSizeFromViewScale]):

  • UIProcess/API/mac/WKViewInternal.h:

Add a new layout mode, "DynamicSizeComputedFromViewScale",
which turns on fixed layout size mode, and sets the fixed layout size
based on the view's frame and view scale. The fixed layout size is maintained
as the frame of the view scaled by the inverse of the view scale. This
makes it very easy to maintain a WK(Web)View that is scaled down by
a constant amount, but is laid out as if it were not.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
Because the transient zoom mechanism touches layers that WebCore owns,
it mostly need to operate with totalScaleFactor, because that is what WebCore sees.

  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController setScale:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(viewScaleForMenuItemTag):
(-[WK2BrowserWindowController setScale:]):
(-[WK2BrowserWindowController validateMenuItem:]):
Add a submenu with four view scale options: 100%, 75%, 50%, and 25%.
When in use, we resize the window so that the view fits correctly, and
use automaticallyComputesFixedlayoutSizeFromViewScale so that the page's
layout size will not change when scaling down (but will update appropriately
when the view is resized).

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

Unreviewed. Set the title text of the placard added in r182631.
https://bugs.webkit.org/show_bug.cgi?id=143585.
<rdar://problem/12067439>

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateWirelessPlaybackStatus):

5:08 PM Changeset in webkit [182770] by ap@apple.com
  • 2 edits in trunk/Tools

build.webkit.org/dashboard shows obsolete results when builds are substantially out of order
https://bugs.webkit.org/show_bug.cgi?id=138630

Reviewed by Tim Horton.

Make sure that we always load at least one in order productive iteration.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:

(BuildbotQueue): Added _hasLoadedIterationForInOrderResult to track whether the queue
is done loading at least one iteration that wasn't an out of order build.
(BuildbotQueue.prototype.loadMoreHistoricalIterations): Listen for iteration load
when that's needed to check for out of order builds.
(BuildbotQueue.prototype.update): Ditto.
(BuildbotQueue.prototype._checkForInOrderResult): Check if the queue has an in order
result, and if it does not, load more iterations.
(BuildbotQueue.prototype.loadAll): We have everything loaded, so we certainly have
an in order iteration loaded too.
(BuildbotQueue.prototype.compareIterations): Extracted from sortIterations(), and
corrected to always sort loaded iterations before unloaded ones.

5:07 PM Changeset in webkit [182769] by ap@apple.com
  • 3 edits
    2 adds in trunk/LayoutTests/imported/w3c

imported/w3c/canvas/2d.text.measure.width.empty.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=143671

Reviewed by Tim Horton.

  • canvas/2d.text.measure.width.empty.html:
  • canvas/2d.text.measure.width.empty-expected.txt:

Updated the test to trunk, where it uses testharness, which knows about waitUntilDone.

  • fonts: Added.
  • fonts/CanvasTest.ttf: Added.

While at it, added a font that this test includes (probably for no good reason).
This avoids hitting a sandbox violation.

5:05 PM Changeset in webkit [182768] by Brent Fulgham
  • 21 edits
    4 adds in trunk

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

Reviewed by Simon Fraser.

Source/WebCore:

No new functionality.

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

This code is not yet hooked up to the rendering system, and so does not have any effect on behavior.

  • CMakeLists.txt: Add new WheelEventTestTrigger files.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • page/MainFrame.cpp:

(WebCore::MainFrame::MainFrame): Add new member to constructor.
(WebCore::MainFrame::testTrigger): Added.
(WebCore::MainFrame::ensureTestTrigger): Added.
(WebCore::MainFrame::clearTrigger): Added.

  • page/MainFrame.h:
  • page/WheelEventTestTrigger.cpp: Added.

(WebCore::WheelEventTestTrigger::WheelEventTestTrigger):
(WebCore::WheelEventTestTrigger::createWeakPtr):
(WebCore::WheelEventTestTrigger::clearAllTestDeferrals):
(WebCore::WheelEventTestTrigger::setTestNotificationCallback):
(WebCore::WheelEventTestTrigger::deferTestsForReason):
(WebCore::WheelEventTestTrigger::removeTestDeferralForReason):
(WebCore::WheelEventTestTrigger::triggerTestTimerFired):

  • page/WheelEventTestTrigger.h: Added.

Source/WebKit2:

Extend the WK2 testing API to include a method for setting a JSC callback function to be triggered
by the new WebCore::WheelEventTestTrigger singleton.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageStartMonitoringScrollOperations): WK2 method that causes the testing system to begin tracking wheel events.
(WKBundlePageRegisterScrollOperationCompletionCallback): WK2 method to set the callback function for testing.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.h:

Tools:

Extend the WK1 and WK2 test programs to support two new EventSender commands:
(1) monitorWheelEvents: Tells DRT and WKTR to track the wheel event and animation state, so that we can
block executing tests until WebKit has completed any rubberband, scroll, or scroll-snap animations.
(2) callAfterScrollingCompletes: Provide a callback method to be executed when WebKit determines that
relevant rubberband, scroll, and scroll-snap animations are finished.

  • DumpRenderTree/mac/EventSendingController.mm:

(+[EventSendingController isSelectorExcludedFromWebScript:]): Update to recognize 'callAfterScrollingCompletes:'
and 'monitorWheelEvents'.
(+[EventSendingController webScriptNameForSelector:]): Ditto.
(-[EventSendingController mouseScrollByX:andY:continuously:]): Add some stderr logging to help when
debugging test failures.
(-[EventSendingController mouseScrollByX:andY:withWheel:andMomentumPhases:]): Ditto.
(-[EventSendingController callAfterScrollingCompletes:]): Added. Protects the JSObject representing the callback
function, then passes it to WebCore to be called once the test deferrals have been cleared.
(-[EventSendingController monitorWheelEvents:]): Added. Activates the wheel event tracking used by the
'callAfterScrollingCompletes' method.

  • WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl: Added signatures for 'callAfterScrollingCompletes'

and 'monitorWheelEvents'.

  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

(WTR::EventSendingController::callAfterScrollingCompletes): Added. Protects the JSObject representing the
callback function, then passes it to WebCore to be called once the test deferrals have been cleared
(WTR::EventSendingController::monitorWheelEvents): Added. Activates the wheel event tracking used by the
'callAfterScrollingComplates' method.

  • WebKitTestRunner/InjectedBundle/EventSendingController.h:

LayoutTests:

Correct a scrolling test that had not been issuing wheel events to a valid
view. This was found by some new logging in this patch.

  • platform/mac/fast/scrolling/scroll-div-latched-div-expected.txt:
  • platform/mac/fast/scrolling/scroll-div-latched-div.html:
  • platform/mac-wk1/scrollbars/scrollevent-iframe-no-scrolling-wheel-expected.txt: Added.*
4:51 PM Changeset in webkit [182767] by Said Abou-Hallawa
  • 3 edits in trunk/LayoutTests

Fix LayoutTests/http/tests/canvas/canvas-tainted-after-draw-image.html on all bots
following http://trac.webkit.org/changeset/182750.

Reviewed by Daniel Bates.

  • http/tests/canvas/canvas-tainted-after-draw-image-expected.txt:
  • http/tests/canvas/canvas-tainted-after-draw-image.html:

Set window.jsTestIsAsync true and call finishJSTest() to make the test
asynchronous, so the "TEST COMPLETE" message will be output after all the
test messages. Also delete the synchronous tests for data url image and
same-domain image since they can't be reliably tested.

4:41 PM Changeset in webkit [182766] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] When entering optimized fullscreen, standard fullscreen view should exit.
https://bugs.webkit.org/show_bug.cgi?id=143615

Reviewed by Simon Fraser.

When entering optimized fullscreen from standard fullscreen, the original fullscreen
view should animate out.

The original method for entering optimized fullscreen is deprecated, so replace it with
the new method (which doesn't take completion blocks) and use delegate methods to detect
when the animation transition completes.

  • platform/Logging.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(boolString): Added; use for logging boolean parameters.
(-[WebAVPlayerController playerViewControllerWillStartOptimizedFullscreen:]): Pass to WebVideoFullscreenInterfaceAVKit.
(-[WebAVPlayerController playerViewControllerDidStartOptimizedFullscreen:]): Ditto.
(-[WebAVPlayerController playerViewControllerWillStopOptimizedFullscreen:]): Ditto.
(-[WebAVPlayerController playerViewControllerDidStopOptimizedFullscreen:]): Ditto.
(-[WebAVPlayerController playerViewControllerWillCancelOptimizedFullscreen:]): Ditto.
(-[WebAVPlayerController playerViewControllerDidCancelOptimizedFullscreen:]): Ditto.
(-[WebAVPlayerController playerViewController:restoreUserInterfaceForOptimizedFullscreenStopWithCompletionHandler:]): Ditto.
(-[WebAVVideoLayer setPlayerViewController:]): Remove the KVO registration; now handled by above delegate methods.
(WebVideoFullscreenInterfaceAVKit::setupFullscreenInternal): Add logging.
(WebVideoFullscreenInterfaceAVKit::enterFullscreen): Ditto.
(WebVideoFullscreenInterfaceAVKit::enterFullscreenOptimized): Use new -startOptimizedFullscreen method.
(WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard): Add logging.
(WebVideoFullscreenInterfaceAVKit::exitFullscreenInternal): Ditto.
(WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal): Use hasMode() & isMode() rather than checking m_mode directly.
(WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): Ditto.
(WebVideoFullscreenInterfaceAVKit::preparedToReturnToInline): Callback now stored on this object rather than the WebAVPlayerController.
(WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoOptimized): Moved.
(WebVideoFullscreenInterfaceAVKit::fullscreenMayReturnToInline): Added; store the passed callback.
(WebVideoFullscreenInterfaceAVKit::willStartOptimizedFullscreen): Exit out of standard fullscreen mode if necessary.
(WebVideoFullscreenInterfaceAVKit::didStartOptimizedFullscreen): Moved from the start lambda in enterFullscreenOptimized().
(WebVideoFullscreenInterfaceAVKit::willStopOptimizedFullscreen): Call the model's requestExitFullscreen() method.
(WebVideoFullscreenInterfaceAVKit::didStopOptimizedFullscreen): Moved from the stop lambda in enterFullscreenOptimized().
(WebVideoFullscreenInterfaceAVKit::willCancelOptimizedFullscreen): Call the model's requestExitFullscreen() method.
(WebVideoFullscreenInterfaceAVKit::didCancelOptimizedFullscreen): Moved from the stop lambda in enterFullscreenOptimized().
(WebVideoFullscreenInterfaceAVKit::prepareForOptimizedFullscreenStopWithCompletionHandler): Moved from -playerViewController:shouldExitFullScreenWithReason:.
(WebVideoFullscreenInterfaceAVKit::setMode): Added; Call fullscreenModeChanged() if necessary.
(WebVideoFullscreenInterfaceAVKit::clearMode): Ditto.
(-[WebAVVideoLayer observeValueForKeyPath:ofObject:change:context:]): Deleted.
(WebVideoFullscreenInterfaceAVKit::setIsOptimized): Deleted.

4:23 PM Changeset in webkit [182765] by enrica@apple.com
  • 5 edits in trunk/Source/WebKit2

Clients of WKWebView should be able to override drag functions.
https://bugs.webkit.org/show_bug.cgi?id=143618

Reviewed by Darin Adler.

WKWebView now implements the drag protocol functions and
forwards the calls to the inner WKView.
In the page client, when we receive a request to start drag
from the WebProcess, we call _dragImageForView in WKView with
the target view. The function calls dragImage on the given view,
so that its clients can override the dragImage function.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView draggingEntered:]):
(-[WKWebView draggingUpdated:]):
(-[WKWebView draggingExited:]):
(-[WKWebView prepareForDragOperation:]):
(-[WKWebView performDragOperation:]):

  • UIProcess/API/mac/WKView.mm:

(-[WKView _dragImageForView:withImage:at:linkDrag:]):
(-[WKView _setDragImage:at:linkDrag:]): Deleted.

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::setDragImage):

4:20 PM Changeset in webkit [182764] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Unreviewed build fix after r182760.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeSharedBuffer):
(IPC::decodeSharedBuffer):
Update SharedMemory function names.

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

Unreviewed, fix Windows build. Windows doesn't take kindly to private classes that use FAST_ALLOCATED.

  • runtime/InferredValue.h:
3:33 PM Changeset in webkit [182762] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix build. I introduced a new cell type at the same time as kling changed how new cell types are written.

  • runtime/InferredValue.h:
3:31 PM Changeset in webkit [182761] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Fix compositing/geometry/fixed-transformed.html on Mavericks.

To get consistent results on Mavericks, call
internals.settings.setAcceleratedCompositingForFixedPositionEnabled(true);

  • compositing/geometry/fixed-transformed.html:
3:26 PM Changeset in webkit [182760] by andersca@apple.com
  • 19 edits in trunk/Source/WebKit2

Rename SharedMemory::create overloads
https://bugs.webkit.org/show_bug.cgi?id=143679

Reviewed by Beth Dakin.

Rename the SharedMemory::create overload that allocates memory to SharedMemory::allocate,
and the SharedMemory::create overload that maps in a handle to SharedMemory::map.

  • Platform/SharedMemory.h:
  • Platform/mac/SharedMemoryMac.cpp:

(WebKit::SharedMemory::allocate):
(WebKit::SharedMemory::map):
(WebKit::SharedMemory::create): Deleted.

  • Shared/ShareableBitmap.cpp:

(WebKit::ShareableBitmap::createShareable):
(WebKit::ShareableBitmap::create):

  • Shared/ShareableResource.cpp:

(WebKit::ShareableResource::create):

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

(WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData):

  • Shared/WebCompiledContentExtensionData.cpp:

(WebKit::WebCompiledContentExtensionData::decode):

  • Shared/WebHitTestResult.cpp:

(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::decode):

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):

  • UIProcess/VisitedLinkProvider.cpp:

(WebKit::VisitedLinkProvider::resizeTable):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::dataSelectionForPasteboard):
(WebKit::WebPageProxy::setPromisedDataForImage):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::writeItemsToPasteboard):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::bufferForType):
(WebKit::WebPlatformStrategies::setBufferForType):

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::WebDragClient::declareAndWriteDragImage):

  • WebProcess/WebPage/VisitedLinkTableController.cpp:

(WebKit::VisitedLinkTableController::setVisitedLinkTable):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getDataSelectionForPasteboard):

3:13 PM Changeset in webkit [182759] by fpizlo@apple.com
  • 65 edits
    17 adds
    3 deletes in trunk

JSC should detect singleton functions
https://bugs.webkit.org/show_bug.cgi?id=143232

Source/JavaScriptCore:

Reviewed by Geoffrey Garen.

This started out as an attempt to make constructors faster by detecting when a constructor is a
singleton. The idea is that each FunctionExecutable has a VariableWatchpointSet - a watchpoint
along with an inferred value - that detects if only one JSFunction has been allocated for that
executable, and if so, what that JSFunction is. Then, inside the code for the FunctionExecutable,
if the watchpoint set has an inferred value (i.e. it's been initialized and it is still valid),
we can constant-fold GetCallee.

Unfortunately, constructors don't use GetCallee anymore, so that didn't pan out. But in the
process I realized a bunch of things:

  • This allows us to completely eliminate the GetCallee/GetScope sequence that we still sometimes had even in code where our singleton-closure detection worked. That's because singleton-closure inference worked at the op_resolve_scope, and that op_resolve_scope still needed to keep alive the incoming scope in case we OSR exit. But by constant-folding GetCallee, that sequence disappears. OSR exit can rematerialize the callee or the scope by just knowing their constant values.


  • Singleton detection should be a reusable thing. So, I got rid of VariableWatchpointSet and created InferredValue. InferredValue is a cell, so it can handle its own GC magic. FunctionExecutable uses an InferredValue to tell you about singleton JSFunctions.


  • The old singleton-scope detection in op_resolve_scope is better abstracted as a SymbolTable detecting a singleton JSSymbolTableObject. So, SymbolTable uses an InferredValue to tell you about singleton JSSymbolTableObjects. It's curious that we want to have singleton detection in SymbolTable if we already have it in FunctionExecutable. This comes into play in two ways. First, it means that the DFG can realize sooner that a resolve_scope resolves to a constant scope. Ths saves compile times and it allows prediction propagation to benefit from the constant folding. Second, it means that we will detect a singleton scope even if it is referenced from a non-singleton scope that is nearer to us in the scope chain. This refactoring allows us to eliminate the function reentry watchpoint.


  • This allows us to use a normal WatchpointSet, instead of a VariableWatchpointSet, for inferring constant values in scopes. Previously when the DFG inferred that a closure variable was constant, it wouldn't know which closure that variable was in and so it couldn't just load that value. But now we are first inferring that the function is a singleton, which means that we know exactly what scope it points to, and we can load the value from the scope. Using a WatchpointSet instead of a VariableWatchpointSet saves some memory and simplifies a bunch of code. This also means that now, the only user of VariableWatchpointSet is FunctionExecutable. I've tweaked the code of VariableWatchpointSet to reduce its power to just be what FunctionExecutable wants.


This also has the effect of simplifying the implementation of block scoping. Prior to this
change, block scoping would have needed to have some story for the function reentry watchpoint on
any nested symbol table. That's totally weird to think about; it's not really a function reentry
but a scope reentry. Now we don't have to think about this. Constant inference on nested scopes
will "just work": if we prove that we know the constant value of the scope then the machinery
kicks in, otherwise it doesn't.

This is a small Octane and AsmBench speed-up. AsmBench sees 1% while Octane sees sub-1%.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

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

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::valueProfileForBytecodeOffset):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::valueProfileForBytecodeOffset): Deleted.

  • bytecode/CodeOrigin.cpp:

(JSC::InlineCallFrame::calleeConstant):
(JSC::InlineCallFrame::visitAggregate):

  • bytecode/CodeOrigin.h:

(JSC::InlineCallFrame::calleeConstant): Deleted.
(JSC::InlineCallFrame::visitAggregate): Deleted.

  • bytecode/Instruction.h:
  • bytecode/VariableWatchpointSet.cpp: Removed.
  • bytecode/VariableWatchpointSet.h: Removed.
  • bytecode/VariableWatchpointSetInlines.h: Removed.
  • bytecode/VariableWriteFireDetail.cpp: Added.

(JSC::VariableWriteFireDetail::dump):
(JSC::VariableWriteFireDetail::touch):

  • bytecode/VariableWriteFireDetail.h: Added.

(JSC::VariableWriteFireDetail::VariableWriteFireDetail):

  • bytecode/Watchpoint.h:

(JSC::WatchpointSet::stateOnJSThread):
(JSC::WatchpointSet::startWatching):
(JSC::WatchpointSet::fireAll):
(JSC::WatchpointSet::touch):
(JSC::WatchpointSet::invalidate):
(JSC::InlineWatchpointSet::stateOnJSThread):
(JSC::InlineWatchpointSet::state):
(JSC::InlineWatchpointSet::hasBeenInvalidated):
(JSC::InlineWatchpointSet::invalidate):
(JSC::InlineWatchpointSet::touch):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDesiredWatchpoints.cpp:

(JSC::DFG::InferredValueAdaptor::add):
(JSC::DFG::DesiredWatchpoints::addLazily):
(JSC::DFG::DesiredWatchpoints::reallyAdd):
(JSC::DFG::DesiredWatchpoints::areStillValid):

  • dfg/DFGDesiredWatchpoints.h:

(JSC::DFG::InferredValueAdaptor::hasBeenInvalidated):
(JSC::DFG::DesiredWatchpoints::isWatched):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::tryGetConstantClosureVar):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasWatchpointSet):
(JSC::DFG::Node::watchpointSet):
(JSC::DFG::Node::hasVariableWatchpointSet): Deleted.
(JSC::DFG::Node::variableWatchpointSet): Deleted.

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

(JSC::DFG::SpeculativeJIT::compileNewFunction):
(JSC::DFG::SpeculativeJIT::compileCreateActivation):
(JSC::DFG::SpeculativeJIT::compileNotifyWrite):

  • dfg/DFGSpeculativeJIT.h:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

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

(JSC::FTL::LowerDFGToLLVM::compileCreateActivation):
(JSC::FTL::LowerDFGToLLVM::compileNewFunction):
(JSC::FTL::LowerDFGToLLVM::compileNotifyWrite):

  • interpreter/Interpreter.cpp:

(JSC::StackFrame::friendlySourceURL):
(JSC::StackFrame::friendlyFunctionName):

  • interpreter/Interpreter.h:

(JSC::StackFrame::friendlySourceURL): Deleted.
(JSC::StackFrame::friendlyFunctionName): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::emitNotifyWrite):
(JSC::JIT::privateCompileMainPass):

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

(JSC::JIT::emit_op_touch_entry): Deleted.

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

(JSC::JIT::emitPutGlobalVar):
(JSC::JIT::emitPutClosureVar):
(JSC::JIT::emitNotifyWrite): Deleted.

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitPutGlobalVar):
(JSC::JIT::emitPutClosureVar):
(JSC::JIT::emitNotifyWrite): Deleted.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

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

(JSC::SLOW_PATH_DECL): Deleted.

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

(JSC::FunctionExecutable::finishCreation):
(JSC::FunctionExecutable::visitChildren):

  • runtime/Executable.h:

(JSC::FunctionExecutable::singletonFunction):

  • runtime/InferredValue.cpp: Added.

(JSC::InferredValue::create):
(JSC::InferredValue::destroy):
(JSC::InferredValue::createStructure):
(JSC::InferredValue::visitChildren):
(JSC::InferredValue::InferredValue):
(JSC::InferredValue::~InferredValue):
(JSC::InferredValue::notifyWriteSlow):
(JSC::InferredValue::ValueCleanup::ValueCleanup):
(JSC::InferredValue::ValueCleanup::~ValueCleanup):
(JSC::InferredValue::ValueCleanup::finalizeUnconditionally):

  • runtime/InferredValue.h: Added.

(JSC::InferredValue::inferredValue):
(JSC::InferredValue::state):
(JSC::InferredValue::isStillValid):
(JSC::InferredValue::hasBeenInvalidated):
(JSC::InferredValue::add):
(JSC::InferredValue::notifyWrite):
(JSC::InferredValue::invalidate):

  • runtime/JSEnvironmentRecord.cpp:

(JSC::JSEnvironmentRecord::visitChildren):

  • runtime/JSEnvironmentRecord.h:

(JSC::JSEnvironmentRecord::isValid):
(JSC::JSEnvironmentRecord::finishCreation):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::create):

  • runtime/JSFunction.h:

(JSC::JSFunction::createWithInvalidatedReallocationWatchpoint):
(JSC::JSFunction::createImpl):
(JSC::JSFunction::create): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::addGlobalVar):
(JSC::JSGlobalObject::addFunction):

  • runtime/JSGlobalObject.h:
  • runtime/JSLexicalEnvironment.cpp:

(JSC::JSLexicalEnvironment::symbolTablePut):

  • runtime/JSScope.h:

(JSC::ResolveOp::ResolveOp):

  • runtime/JSSegmentedVariableObject.h:

(JSC::JSSegmentedVariableObject::finishCreation):

  • runtime/JSSymbolTableObject.h:

(JSC::JSSymbolTableObject::JSSymbolTableObject):
(JSC::JSSymbolTableObject::setSymbolTable):
(JSC::symbolTablePut):
(JSC::symbolTablePutWithAttributes):

  • runtime/PutPropertySlot.h:
  • runtime/SymbolTable.cpp:

(JSC::SymbolTableEntry::prepareToWatch):
(JSC::SymbolTable::SymbolTable):
(JSC::SymbolTable::finishCreation):
(JSC::SymbolTable::visitChildren):
(JSC::SymbolTableEntry::inferredValue): Deleted.
(JSC::SymbolTableEntry::notifyWriteSlow): Deleted.
(JSC::SymbolTable::WatchpointCleanup::WatchpointCleanup): Deleted.
(JSC::SymbolTable::WatchpointCleanup::~WatchpointCleanup): Deleted.
(JSC::SymbolTable::WatchpointCleanup::finalizeUnconditionally): Deleted.

  • runtime/SymbolTable.h:

(JSC::SymbolTableEntry::disableWatching):
(JSC::SymbolTableEntry::watchpointSet):
(JSC::SymbolTable::singletonScope):
(JSC::SymbolTableEntry::notifyWrite): Deleted.

  • runtime/TypeProfiler.cpp:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • tests/stress/infer-uninitialized-closure-var.js: Added.

(foo.f):
(foo):

  • tests/stress/singleton-scope-then-overwrite.js: Added.

(foo.f):
(foo):

  • tests/stress/singleton-scope-then-realloc-and-overwrite.js: Added.

(foo):

  • tests/stress/singleton-scope-then-realloc.js: Added.

(foo):

LayoutTests:

Reviewed by Geoffrey Garen and Michael Saboff.

  • js/regress/create-lots-of-functions-expected.txt: Added.
  • js/regress/create-lots-of-functions.html: Added.
  • js/regress/no-inline-constructor-expected.txt: Added.
  • js/regress/no-inline-constructor.html: Added.
  • js/regress/script-tests/create-lots-of-functions.js: Added.
  • js/regress/script-tests/no-inline-constructor.js: Added.
  • js/regress/script-tests/singleton-scope.js: Added.
  • js/regress/singleton-scope-expected.txt: Added.
  • js/regress/singleton-scope.html: Added.
2:42 PM Changeset in webkit [182758] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed fix after r182757.

  • platform/win/FileSystemWin.cpp:

(WebCore::renameFile): Checked in wrong version.

2:37 PM Changeset in webkit [182757] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

[Win] Unreviewed fix after r182161.

The change caused Windows to lose Media UI, since the new 'getFileSize'
signature was being improperly used for a 'UInt8'-based string.

Fix was to provide implementations for the two new methods, and to make
sure RenderThemeWin was using the proper signature.

This should actually be a little more efficient, since we have the file
handle when we call this new method. Previously, a Windows 'find file' was
being done with the requested path, which was unnecessary work.

  • platform/win/FileSystemWin.cpp:

(WebCore::getFileSizeFromByHandleFileInformationStructure): Added helper function.
(WebCore::getFileSize): Provide implementation.
(WebCore::renameFile):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::stringWithContentsOfFile): Use the file handle to
get the file size, rather than using the path-based size lookup (which involves
performing an unnecessary file search.

2:23 PM Changeset in webkit [182756] by beidson@apple.com
  • 17 edits
    2 adds in trunk/Source

Share sheets from Share menus appear outside the browser window.
<rdar://problem/20455592> and https://bugs.webkit.org/show_bug.cgi?id=143620

Reviewed by Darin Adler.

Source/WebCore:

  • page/ContextMenuController.h:

(WebCore::ContextMenuController::client):

Source/WebKit/mac:

Refactor existing Sharing Service Picker code to also be used for the Share menu NSMenuItem.

  • Misc/WebSharingServicePickerController.h:

(WebSharingServicePickerClient::webView):

  • Misc/WebSharingServicePickerController.mm:

(WebSharingServicePickerClient::WebSharingServicePickerClient):
(WebSharingServicePickerClient::sharingServicePickerWillBeDestroyed):
(WebSharingServicePickerClient::pageForSharingServicePicker):
(WebSharingServicePickerClient::windowForSharingServicePicker):
(WebSharingServicePickerClient::screenRectForCurrentSharingServicePickerItem):
(WebSharingServicePickerClient::imageForCurrentSharingServicePickerItem):
(-[WebSharingServicePickerController initWithItems:includeEditorServices:client:style:]):
(-[WebSharingServicePickerController initWithSharingServicePicker:client:]):
(-[WebSharingServicePickerController sharingService:didShareItems:]):

  • WebCoreSupport/WebContextMenuClient.h:

(WebContextMenuClient::webView): Deleted.

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::WebContextMenuClient):
(WebContextMenuClient::pageForSharingServicePicker): Deleted.
(WebContextMenuClient::windowForSharingServicePicker): Deleted.

  • WebCoreSupport/WebSelectionServiceController.h:
  • WebCoreSupport/WebSelectionServiceController.mm:

(WebSelectionServiceController::WebSelectionServiceController):
(WebSelectionServiceController::handleSelectionServiceClick):
(WebSelectionServiceController::pageForSharingServicePicker): Deleted.
(WebSelectionServiceController::windowForSharingServicePicker): Deleted.
(WebSelectionServiceController::screenRectForCurrentSharingServicePickerItem): Deleted.
(WebSelectionServiceController::imageForCurrentSharingServicePickerItem): Deleted.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView menuForEvent:]):

  • WebView/WebViewData.h:

Source/WebKit2:

Refactor existing Sharing Service Picker code to also be used for the Share menu NSMenuItem.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::internalShowContextMenu):
(WebKit::WebPageProxy::platformInitializeShareMenuItem):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/WKSharingServicePickerDelegate.h: Added.
  • UIProcess/mac/WKSharingServicePickerDelegate.mm: Added.

(+[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate]):
(-[WKSharingServicePickerDelegate menuProxy]):
(-[WKSharingServicePickerDelegate setMenuProxy:]):
(-[WKSharingServicePickerDelegate setPicker:]):
(-[WKSharingServicePickerDelegate setFiltersEditingServices:]):
(-[WKSharingServicePickerDelegate setHandlesEditingReplacement:]):
(-[WKSharingServicePickerDelegate sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]):
(-[WKSharingServicePickerDelegate sharingServicePicker:delegateForSharingService:]):
(-[WKSharingServicePickerDelegate sharingService:willShareItems:]):
(-[WKSharingServicePickerDelegate sharingService:didShareItems:]):
(-[WKSharingServicePickerDelegate sharingService:sourceWindowForShareItems:sharingContentScope:]):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):
(+[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate]): Deleted.
(-[WKSharingServicePickerDelegate menuProxy]): Deleted.
(-[WKSharingServicePickerDelegate setMenuProxy:]): Deleted.
(-[WKSharingServicePickerDelegate setPicker:]): Deleted.
(-[WKSharingServicePickerDelegate setIncludeEditorServices:]): Deleted.
(-[WKSharingServicePickerDelegate sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]): Deleted.
(-[WKSharingServicePickerDelegate sharingServicePicker:delegateForSharingService:]): Deleted.
(-[WKSharingServicePickerDelegate sharingService:willShareItems:]): Deleted.
(-[WKSharingServicePickerDelegate sharingService:didShareItems:]): Deleted.
(-[WKSharingServicePickerDelegate sharingService:sourceWindowForShareItems:sharingContentScope:]): Deleted.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::platformInitializeShareMenuItem):

  • WebKit2.xcodeproj/project.pbxproj:
2:18 PM Changeset in webkit [182755] by Simon Fraser
  • 1 edit
    1 add in trunk/LayoutTests

Add missing layout test result.

  • compositing/geometry/fixed-transformed-expected.txt: Added.
1:53 PM Changeset in webkit [182754] by akling@apple.com
  • 8 edits in trunk/Source/WebCore

Rebaseline bindings tests.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
  • bindings/scripts/test/JS/JSTestEventTarget.h:
  • bindings/scripts/test/JS/JSTestException.h:
  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestTypedefs.h:
1:26 PM Changeset in webkit [182753] by andersca@apple.com
  • 28 edits in trunk/Source/WebKit2

Begin cleaning up the shared memory interface
https://bugs.webkit.org/show_bug.cgi?id=143677

Reviewed by Andreas Kling.

Rename createFromVMBuffer to create and add a protection parameter (which is currently unused).
Also, turn SharedMemory::Protection into a proper enum class.

  • NetworkProcess/cache/NetworkCache.cpp:

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

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord):

  • NetworkProcess/mac/NetworkResourceLoaderMac.mm:

(WebKit::tryGetShareableHandleFromCFData):

  • Platform/SharedMemory.h:
  • Platform/mac/SharedMemoryMac.cpp:

(WebKit::SharedMemory::create):
(WebKit::machProtection):
(WebKit::SharedMemory::createHandle):
(WebKit::SharedMemory::createFromVMBuffer): Deleted.

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):

  • Shared/ShareableBitmap.h:
  • Shared/ShareableResource.cpp:

(WebKit::ShareableResource::create):
(WebKit::ShareableResource::createHandle):

  • Shared/WebCompiledContentExtensionData.cpp:

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

  • Shared/WebHitTestResult.cpp:

(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):

  • UIProcess/API/APIUserContentExtensionStore.cpp:

(API::createExtension):

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):

  • UIProcess/VisitedLinkProvider.cpp:

(WebKit::VisitedLinkProvider::sendTable):

  • UIProcess/mac/WKPrintingView.mm:

(pageDidDrawToImage):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::dataSelectionForPasteboard):
(WebKit::WebPageProxy::setPromisedDataForImage):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::writeItemsToPasteboard):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::bufferForType):
(WebKit::WebPlatformStrategies::setBufferForType):
(WebKit::WebPlatformStrategies::readBufferFromPasteboard):

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::WebDragClient::declareAndWriteDragImage):

  • WebProcess/WebPage/VisitedLinkTableController.cpp:

(WebKit::VisitedLinkTableController::setVisitedLinkTable):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::takeSnapshot):
(WebKit::WebPage::drawRectToImage):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getDataSelectionForPasteboard):

1:16 PM Changeset in webkit [182752] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Treat a 'not found' media option index as the 'off' track.
https://bugs.webkit.org/show_bug.cgi?id=143672

Reviewed by Eric Carlson.

The UIProcess will pass in UINT64_MAX for the index of the legible option to select. Treat this
as if the captionOffMenuItem() had been selected to avoid a null dereference.

  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::selectLegibleMediaOption):

1:02 PM Changeset in webkit [182751] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

list-style-image with SVG image renders at incorrect size.
https://bugs.webkit.org/show_bug.cgi?id=141367.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-04-13
Reviewed by Darin Adler.
Source/WebCore:

This patch imports https://codereview.chromium.org/197203003.

When using an SVG as list marker image, don't unconditionally set the
dimensions to a square with the dimensions of ascent / 2, but rather
determine a suitable size using intrinsic dimensions (and ratio).

Test: svg/as-list-image/svg-list-image-intrinsic-size-1.html

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::updateContent):

LayoutTests:

Ensure the SVG image gets the correct size when used as an image list.

  • svg/as-list-image: Added.
  • svg/as-list-image/svg-list-image-intrinsic-size-1-expected.html: Added.
  • svg/as-list-image/svg-list-image-intrinsic-size-1.html: Added.
12:53 PM Changeset in webkit [182750] by Said Abou-Hallawa
  • 3 edits
    4 adds in trunk

Canvas drawImage() has a security hole when the image isn't yet fully loaded.
https://bugs.webkit.org/show_bug.cgi?id=58681.

Reviewed by Darin Adler.

Source/WebCore:

There is a race condition which may happen if an image from a different
origin is drawn on a canvas before it finishes loading. The check to taint
the canvas comes before drawing it. This check returns false if the image
is not completely loaded because we check the URL of the resource response.
If after this check and before the drawing, the image finishes loading, the
canvas will not be tainted but the image will be drawn.

The fix is to move the check to taint the canvas after drawing the image.
The only problem with this solution is basically the opposite of this bug:
we will become stricter than before with images which are from a different
origin and before they finish loading. The image has not finished loading,
so we do not draw it. Before we check for tainting, the image finishes
loading. So we decide to taint the canvas even the image is not drawn.

But this should not be a security issue anymore. I personally do not know
if it is even a correctness issue or not.

Test: http/tests/canvas/canvas-tainted-after-draw-image.html

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::drawImage):

LayoutTests:

This test confirms when we load an image from a different origin and try
drawing it on a canvas, the canvas is tainted if the image is completely
loaded and drawn. Otherwise the image is not drawn.

  • http/tests/canvas/canvas-tainted-after-draw-image-expected.txt: Added.
  • http/tests/canvas/canvas-tainted-after-draw-image.html: Added.
  • http/tests/canvas/resources: Added.
  • http/tests/canvas/resources/100x100-lime-rect.svg: Added.
12:52 PM Changeset in webkit [182749] by jhoneycutt@apple.com
  • 3 edits
    1 add in trunk

Cannot click "Next" button on Google two-factor auth setup page

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

.:

Reviewed by Darin Adler.

  • ManualTests/button-that-focuses-itself-on-click.html: Added.

Source/WebKit2:

This issue occurs when this site focuses the submit button. When it
receives focus, we try to assist it. While we consider ourselves to be
assisting it, we ignore further gesture inputs for that node, including
the tap gesture.

To fix this, only assist input types that we know are assistable,
including text fields, select and date elements, etc.

Reviewed by Darin Adler.

  • UIProcess/ios/WKContentViewInteraction.mm:

(isAssistableInputType):
If the type is a known-assistable type, return true.
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]):
Call isAssistableInputType() to determine whether we should do any kind
of assistance for this node.

12:17 PM Changeset in webkit [182748] by Beth Dakin
  • 46 edits
    3 deletes in trunk

Add force property to MouseEvents
https://bugs.webkit.org/show_bug.cgi?id=143569
-and corresponding-
rdar://problem/20472954

Reviewed by Darin Adler.

Source/WebCore:

This patch removes WebKitMouseForceEvent and uses a MouseEvent everywhere that it
was used. That’s possible because this patch also adds a force property to all
MouseEvents and to PlatformMouseEvent.

Remove WebKitMouseForceEvent.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/DOMAllInOne.cpp:

Create MouseEvents with the appropriate force instead of WebKitMouseForceEvents.
This patch also gets rid of the PlatformMouseEvent parameter for these events.
They were re-using the cached mousedown event before, which they never should have
done. Instead, we create PlatformMouseEvents inside these functions and then use
that to make MouseEvents.

  • dom/Element.cpp:

(WebCore::Element::dispatchMouseForceWillBegin):
(WebCore::Element::dispatchMouseForceChanged):
(WebCore::Element::dispatchMouseForceDown):
(WebCore::Element::dispatchMouseForceUp):
(WebCore::Element::dispatchMouseForceClick):
(WebCore::Element::dispatchMouseForceCancelled):

  • dom/Element.h:

No More WebKitMouseForceEvent.

  • dom/EventNames.in:

Add force to MouseEvent.

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
(WebCore::MouseEvent::cloneFor):
(WebCore::SimulatedMouseEvent::SimulatedMouseEvent):

  • dom/MouseEvent.h:

(WebCore::MouseEvent::force):
(WebCore::MouseEvent::setForce):

  • dom/MouseEvent.idl:

No More WebKitMouseForceEvent.

  • dom/WebKitMouseForceEvent.cpp: Removed.
  • dom/WebKitMouseForceEvent.h: Removed.
  • dom/WebKitMouseForceEvent.idl: Removed.

PlatformMouseEvent now takes a force parameter.

  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::showContextMenuAt):

  • page/DragController.cpp:

(WebCore::createMouseEvent):

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchDragEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::fakeMouseMoveEventTimerFired):

We don’t need lastMouseDownEvent() anymore. We were using it to avoid creating new
PlatformMouseEvents for the force events, but we fix that in this patch.
(WebCore::EventHandler::lastMouseDownEvent): Deleted.

  • page/EventHandler.h:

At force to PlatformMouseEvent.

  • platform/PlatformMouseEvent.h:

(WebCore::PlatformMouseEvent::PlatformMouseEvent):
(WebCore::PlatformMouseEvent::force):

  • replay/SerializationMethods.cpp:

(JSC::EncodingTraits<PlatformMouseEvent>::encodeValue):
(JSC::EncodingTraits<PlatformMouseEvent>::decodeValue):

Source/WebKit/ios:

Send the appropriate force with this simulated click event.

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

PlatformMouseEvent and MouseEvent now take force parameters.

  • WebView/WebFrame.mm:

(-[WebFrame _dragSourceEndedAt:operation:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

PlatformMouseEvent takes a force parameter.

  • WebDropSource.cpp:

(generateMouseEvent):

Source/WebKit2:

In order to accommodate adding force to all PlatformMouseEvents, we have to add it
to pass a caches pressure event to NativeWebMouseEvent and add force to
WebMouseEvent.

NativeWebMouseEvent now requires a second NSEvent for the pressureEvent.

  • Shared/NativeWebMouseEvent.h:

WebMouseEvent takes a force parameter.

  • Shared/WebEvent.h:

(WebKit::WebMouseEvent::force):

  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):

  • Shared/WebMouseEvent.cpp:

(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::encode):
(WebKit::WebMouseEvent::decode):

  • Shared/mac/NativeWebMouseEventMac.mm:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):

  • Shared/mac/WebEventFactory.h:
  • Shared/mac/WebEventFactory.mm:

(WebKit::WebEventFactory::createWebMouseEvent):

Cache the most recent pressureEvent in _data so that it can be sent along to the
NativeWebMouseEvent constructor.

  • UIProcess/API/mac/WKView.mm:

(-[WKView pressureChangeWithEvent:]):
(-[WKView acceptsFirstMouse:]):
(-[WKView shouldDelayWindowOrderingForEvent:]):
(-[WKView _postFakeMouseMovedEventForFlagsChangedEvent:]):
(-[WKView initWithFrame:processPool:configuration:webView:]):

WebMouseEvent takes a force parameter.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::showContextMenuAtPoint):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::createWebEvent):

MouseEvent and PlatformMouseEvent both take force parameters too.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::navigateToURLWithSimulatedClick):
(WebKit::WebPage::contextMenuAtPointInWindow):
(WebKit::WebPage::dragEnded):
(WebKit::WebPage::simulateMouseDown):
(WebKit::WebPage::simulateMouseUp):
(WebKit::WebPage::simulateMouseMotion):

The functions that dispatch the force events no longer take a PlatformMouseEvent
as a parameter.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::inputDeviceForceDidChange):
(WebKit::WebPage::immediateActionDidCancel):

LayoutTests:

  • platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
12:12 PM Changeset in webkit [182747] by akling@apple.com
  • 96 edits in trunk/Source

Don't segregate heap objects based on Structure immortality.
<https://webkit.org/b/143638>

Reviewed by Darin Adler.

Source/JavaScriptCore:

Put all objects that need a destructor call into the same MarkedBlock.
This reduces memory consumption in many situations, while improving locality,
since much more of the MarkedBlock space can be shared.

Instead of branching on the MarkedBlock type, we now check a bit in the
JSCell's inline type flags (StructureIsImmortal) to see whether it's safe
to access the cell's Structure during destruction or not.

Performance benchmarks look mostly neutral. Maybe a small regression on
SunSpider's date objects.

On the amazon.com landing page, this saves us 50 MarkedBlocks (3200kB) along
with a bunch of WeakBlocks that were hanging off of them. That's on the higher
end of savings we can get from this, but still a very real improvement.

Most of this patch is removing the "hasImmortalStructure" constant from JSCell
derived classes and passing that responsibility to the StructureIsImmortal flag.
StructureFlags is made public so that it's accessible from non-member functions.
I made sure to declare it everywhere and make classes final to try to make it
explicit what each class is doing to its inherited flags.

  • API/JSCallbackConstructor.h:
  • API/JSCallbackObject.h:
  • bytecode/UnlinkedCodeBlock.h:
  • debugger/DebuggerScope.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileMakeRope):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileMakeRope):

  • heap/Heap.h:

(JSC::Heap::subspaceForObjectDestructor):
(JSC::Heap::allocatorForObjectWithDestructor):
(JSC::Heap::subspaceForObjectNormalDestructor): Deleted.
(JSC::Heap::subspaceForObjectsWithImmortalStructure): Deleted.
(JSC::Heap::allocatorForObjectWithNormalDestructor): Deleted.
(JSC::Heap::allocatorForObjectWithImmortalStructureDestructor): Deleted.

  • heap/HeapInlines.h:

(JSC::Heap::allocateWithDestructor):
(JSC::Heap::allocateObjectOfType):
(JSC::Heap::subspaceForObjectOfType):
(JSC::Heap::allocatorForObjectOfType):
(JSC::Heap::allocateWithNormalDestructor): Deleted.
(JSC::Heap::allocateWithImmortalStructureDestructor): Deleted.

  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::allocateBlock):

  • heap/MarkedAllocator.h:

(JSC::MarkedAllocator::needsDestruction):
(JSC::MarkedAllocator::MarkedAllocator):
(JSC::MarkedAllocator::init):
(JSC::MarkedAllocator::destructorType): Deleted.

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::create):
(JSC::MarkedBlock::MarkedBlock):
(JSC::MarkedBlock::callDestructor):
(JSC::MarkedBlock::specializedSweep):
(JSC::MarkedBlock::sweep):
(JSC::MarkedBlock::sweepHelper):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::needsDestruction):
(JSC::MarkedBlock::destructorType): Deleted.

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::MarkedSpace):
(JSC::MarkedSpace::resetAllocators):
(JSC::MarkedSpace::forEachAllocator):
(JSC::MarkedSpace::isPagedOut):
(JSC::MarkedSpace::clearNewlyAllocated):

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::subspaceForObjectsWithDestructor):
(JSC::MarkedSpace::destructorAllocatorFor):
(JSC::MarkedSpace::allocateWithDestructor):
(JSC::MarkedSpace::forEachBlock):
(JSC::MarkedSpace::subspaceForObjectsWithNormalDestructor): Deleted.
(JSC::MarkedSpace::subspaceForObjectsWithImmortalStructure): Deleted.
(JSC::MarkedSpace::immortalStructureDestructorAllocatorFor): Deleted.
(JSC::MarkedSpace::normalDestructorAllocatorFor): Deleted.
(JSC::MarkedSpace::allocateWithImmortalStructureDestructor): Deleted.
(JSC::MarkedSpace::allocateWithNormalDestructor): Deleted.

  • inspector/JSInjectedScriptHost.h:
  • inspector/JSInjectedScriptHostPrototype.h:
  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFramePrototype.h:
  • jsc.cpp:
  • runtime/ArrayBufferNeuteringWatchpoint.h:
  • runtime/ArrayConstructor.h:
  • runtime/ArrayIteratorPrototype.h:
  • runtime/BooleanPrototype.h:
  • runtime/ClonedArguments.h:
  • runtime/CustomGetterSetter.h:
  • runtime/DateConstructor.h:
  • runtime/DatePrototype.h:
  • runtime/ErrorPrototype.h:
  • runtime/ExceptionHelpers.h:
  • runtime/Executable.h:
  • runtime/GenericArguments.h:
  • runtime/GetterSetter.h:
  • runtime/InternalFunction.h:
  • runtime/JSAPIValueWrapper.h:
  • runtime/JSArgumentsIterator.h:
  • runtime/JSArray.h:
  • runtime/JSArrayBuffer.h:
  • runtime/JSArrayBufferView.h:
  • runtime/JSBoundFunction.h:
  • runtime/JSCallee.h:
  • runtime/JSCell.h:
  • runtime/JSCellInlines.h:

(JSC::JSCell::classInfo):

  • runtime/JSDataViewPrototype.h:
  • runtime/JSEnvironmentRecord.h:
  • runtime/JSFunction.h:
  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGlobalObject.h:
  • runtime/JSLexicalEnvironment.h:
  • runtime/JSNameScope.h:
  • runtime/JSNotAnObject.h:
  • runtime/JSONObject.h:
  • runtime/JSObject.h:

(JSC::JSFinalObject::JSFinalObject):

  • runtime/JSPromiseConstructor.h:
  • runtime/JSPromiseDeferred.h:
  • runtime/JSPromisePrototype.h:
  • runtime/JSPromiseReaction.h:
  • runtime/JSPropertyNameEnumerator.h:
  • runtime/JSProxy.h:
  • runtime/JSScope.h:
  • runtime/JSString.h:
  • runtime/JSSymbolTableObject.h:
  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::structureIsImmortal):

  • runtime/MathObject.h:
  • runtime/NumberConstructor.h:
  • runtime/NumberPrototype.h:
  • runtime/ObjectConstructor.h:
  • runtime/PropertyMapHashTable.h:
  • runtime/RegExp.h:
  • runtime/RegExpConstructor.h:
  • runtime/RegExpObject.h:
  • runtime/RegExpPrototype.h:
  • runtime/ScopedArgumentsTable.h:
  • runtime/SparseArrayValueMap.h:
  • runtime/StrictEvalActivation.h:
  • runtime/StringConstructor.h:
  • runtime/StringIteratorPrototype.h:
  • runtime/StringObject.h:
  • runtime/StringPrototype.h:
  • runtime/Structure.cpp:

(JSC::Structure::Structure):

  • runtime/Structure.h:
  • runtime/StructureChain.h:
  • runtime/StructureRareData.h:
  • runtime/Symbol.h:
  • runtime/SymbolPrototype.h:
  • runtime/SymbolTable.h:
  • runtime/WeakMapData.h:

Source/WebCore:

  • bindings/js/JSDOMBinding.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GeneratePrototypeDeclaration):

  • bridge/objc/objc_runtime.h:
  • bridge/runtime_array.h:
  • bridge/runtime_method.h:
  • bridge/runtime_object.h:

Source/WebKit2:

  • WebProcess/Plugins/Netscape/JSNPObject.h:
11:38 AM Changeset in webkit [182746] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

javascript: links in inline PDFs shouldn't execute JavaScript in the context of the host website
https://bugs.webkit.org/show_bug.cgi?id=143642
<rdar://problem/18259355>

Reviewed by Darin Adler.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::clickedLink):
Don't follow javascript: URLs.

11:08 AM Changeset in webkit [182745] by mark.lam@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

DFG inlining of op_call_varargs should keep the callee alive in case of OSR exit.
https://bugs.webkit.org/show_bug.cgi?id=143407

Reviewed by Filip Pizlo.

DFG inlining of a varargs call / construct needs to keep the local
containing the callee alive with a Phantom node because the LoadVarargs
node may OSR exit. After the OSR exit, the baseline JIT executes the
op_call_varargs with that callee in the local.

Previously, because that callee local was not explicitly kept alive,
the op_call_varargs case can OSR exit a DFG function and leave an
undefined value in that local. As a result, the baseline observes the
side effect of an op_call_varargs on an undefined value instead of the
function it expected.

Note: this issue does not manifest with op_construct_varargs because
the inlined constructor will have an op_create_this which operates on
the incoming callee value, thereby keeping it alive.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleInlining):

  • tests/stress/call-varargs-with-different-arguments-length-after-warmup.js: Added.

(foo):
(Foo):
(doTest):

11:04 AM Changeset in webkit [182744] by Alan Bujtas
  • 2 edits in trunk/PerformanceTests

Clear up the test content when test is done.

Unreviewed fix.

  • Layout/simple-line-layout-innertext.html:
10:55 AM Changeset in webkit [182743] by Simon Fraser
  • 4 edits
    1 add in trunk

Fixed position element is truncated if moved onscreen by a transform
https://bugs.webkit.org/show_bug.cgi?id=143655
Source/WebCore:

rdar://problem/15020044

Reviewed by Darin Adler.

Our "don't do layout if transform changes" code was too aggressive.
If an element changes between having a transform and not having one, we
really need to do a layout since so much else depends on transforms. In
this particular case, we clip position:fixed elements to the viewport if
they are not transformed, and were failing to re-evaluate this when a
transform was added. Doing a layout fixes this.

Test: compositing/geometry/fixed-transformed.html

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayout):

  • rendering/style/StyleTransformData.h:

(WebCore::StyleTransformData::hasTransform):

LayoutTests:

Reviewed by Darin Adler.

Test that moves a position:fixed element on-screen using a transform.

  • compositing/geometry/fixed-transformed.html: Added.
10:54 AM Changeset in webkit [182742] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit2

[Content Extensions] Don't unmap shared memory while using it.
https://bugs.webkit.org/show_bug.cgi?id=143625

Reviewed by Darin Adler.

  • Shared/WebCompiledContentExtension.cpp:

(WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData):

  • Shared/WebCompiledContentExtensionData.h:

(WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData):

  • UIProcess/API/APIUserContentExtensionStore.cpp:

(API::createExtension):
Keep the Data object alive as long as the SharedMemory that uses it.

10:50 AM Changeset in webkit [182741] by ap@apple.com
  • 2 edits in trunk/LayoutTests

js/regress-141098.html often times out in debug builds.

This test is slow in debug, sometimes barely passing, and other times timing out.

10:42 AM Changeset in webkit [182740] by Michael Catanzaro
  • 2 edits in trunk

[cmake] REGRESSION(182663): It broke feature dependency handling
https://bugs.webkit.org/show_bug.cgi?id=143665

Reviewed by Csaba Osztrogonác.

Don't try to check the value of options before defining the options.

  • Source/cmake/WebKitFeatures.cmake:
10:42 AM Changeset in webkit [182739] by Brent Fulgham
  • 3 edits in trunk/LayoutTests

[Win] Unreviewed test correction after r182635.

Two Windows test expectation files were missing newlines at the end of the file.

  • platform/win/fast/backgrounds/selection-background-color-of-image-list-style-expected.txt:
  • platform/win/fast/backgrounds/selection-background-color-of-list-style-expected.txt:
10:28 AM Changeset in webkit [182738] by ap@apple.com
  • 2 edits in trunk/Tools

build.webkit.org/dashboard: Crash-only queues should show failure when testing fails to start
https://bugs.webkit.org/show_bug.cgi?id=143656

Reviewed by Darin Adler.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:

(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus):

10:28 AM Changeset in webkit [182737] by Alan Bujtas
  • 26 edits
    1 add in trunk/LayoutTests

[Win] Unreviewed gardening after r182620. (<br> updates mostly)

  • platform/win/fast/dom/focus-contenteditable-expected.txt:
  • platform/win/fast/forms/listbox-hit-test-zoomed-expected.txt:
  • platform/win/fast/forms/range/slider-padding-expected.txt:
  • platform/win/fast/forms/textarea-scroll-height-expected.txt:
  • platform/win/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/win/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/win/fast/text/svg-font-face-with-kerning-expected.txt: Added.
  • platform/win/http/tests/navigation/postredirect-basic-expected.txt:
  • platform/win/http/tests/navigation/postredirect-goback1-expected.txt:
  • platform/win/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
  • platform/win/svg/wicd/test-rightsizing-b-expected.txt:
  • platform/win/tables/mozilla/bugs/bug1224-expected.txt:
  • platform/win/tables/mozilla/bugs/bug131020-expected.txt:
  • platform/win/tables/mozilla/bugs/bug131020_iframe-expected.txt:
  • platform/win/tables/mozilla/bugs/bug1430-expected.txt:
  • platform/win/tables/mozilla/bugs/bug16252-expected.txt:
  • platform/win/tables/mozilla/bugs/bug19599-expected.txt:
  • platform/win/tables/mozilla/bugs/bug20579-expected.txt:
  • platform/win/tables/mozilla/bugs/bug32205-3-expected.txt:
  • platform/win/tables/mozilla/bugs/bug82946-2-expected.txt:
  • platform/win/tables/mozilla/bugs/bug92143-expected.txt:
  • platform/win/tables/mozilla/marvin/tables_cellpadding-expected.txt:
  • platform/win/tables/mozilla/marvin/tables_cellspacing-expected.txt:
  • platform/win/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/win/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
  • platform/win/tables/mozilla_expected_failures/other/test4-expected.txt:
9:22 AM Changeset in webkit [182736] by peavo@outlook.com
  • 2 edits in trunk/Source/WebKit/win

[Win] Incorrect parameter order in call to WebView::repaint.
https://bugs.webkit.org/show_bug.cgi?id=143666

Reviewed by Brent Fulgham.

The 'immediate' default parameter has been forgotten.

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::invalidateRootView):
(WebChromeClient::invalidateContentsAndRootView):
(WebChromeClient::invalidateContentsForSlowScroll):

8:41 AM Changeset in webkit [182735] by Darin Adler
  • 7 edits in trunk/Source

[Cocoa] Localizable strings are inconsistent and need to be regenerated
https://bugs.webkit.org/show_bug.cgi?id=143661
Source/WebCore:

rdar://problem/19634388

Reviewed by Dan Bernstein.

  • English.lproj/Localizable.strings: Updated by running the

update-webkit-localizable-strings script.

Source/WebKit/mac:

rdar://problem/19634388

Reviewed by Dan Bernstein.

  • Misc/WebLocalizableStrings.mm:

(LoadWebLocalizedStringsTimerCallback): Moved the comment, useful for programmers but
not for localization, into a C++ source code comment, and made the localizer comment
consistent with the place this localizable string is used for actual localization.

  • WebCoreSupport/WebEditorClient.mm:

(undoNameForEditAction): Changed the localizer comments for Delete and Dictation
to match the ones in WebKit2; no need to specify that these are iOS only, and if we do
want to specify that, we should not be using the term PLATFORM(IOS) since there is no
reason for us to expect localizers to understand that terminology. Also added a comment
about the fact that we have two copies of all the localizable strings.

Source/WebKit2:

Reviewed by Dan Bernstein.

  • UIProcess/WebEditCommandProxy.cpp:

(WebKit::WebEditCommandProxy::nameForEditAction): Also added a comment
about the fact that we have two copies of all the localizable strings.

8:40 AM Changeset in webkit [182734] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Remove needless recreation of URL in NavigationScheduler::scheduleLocationChange
https://bugs.webkit.org/show_bug.cgi?id=143662

Reviewed by Sam Weinig.

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleLocationChange): Removed unnecessary code
to convert a URL to a String and then back into a URL.

8:06 AM Changeset in webkit [182733] by svillar@igalia.com
  • 2 edits in trunk/Tools

REGRESSION(r181134): [GTK] Test /webkit2/WebKitWebView/insecure-content is failing after r181134
https://bugs.webkit.org/show_bug.cgi?id=142387

Reviewed by Carlos Garcia Campos.

Running mixed content is blocked by default since r181134. Updated
the test case to reflect the new default settings.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestSSL.cpp:

(testInsecureContent):

7:46 AM Changeset in webkit [182732] by Gyuyoung Kim
  • 2 edits in trunk/Tools

Fix wrong value variable in ENABLE_NAVIGATOR_HWCONCURRENCY
https://bugs.webkit.org/show_bug.cgi?id=143667

Reviewed by Csaba Osztrogonác.

ENABLE_NAVIGATOR_HWCONCURRENCY has used $registerProtocolHandlerSupport value variable
since r169017. Added $hardwareConcurrencySupport for it.

Additionally networkInfoSupport is removed because this feature was removed due to spec out.

  • Scripts/webkitperl/FeatureList.pm:
7:11 AM Changeset in webkit [182731] by Csaba Osztrogonác
  • 10 edits in trunk

[cmake] Add ENABLE(ATTACHMENT_ELEMENT) to the build system
https://bugs.webkit.org/show_bug.cgi?id=143664

Reviewed by Gyuyoung Kim.

.:

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake:

Source/WebCore:

  • page/efl/DragControllerEfl.cpp:

(WebCore::DragController::declareAndWriteAttachment): Added stub implementation to fix the build.

  • page/gtk/DragControllerGtk.cpp:

(WebCore::DragController::declareAndWriteAttachment): Added stub implementation to fix the build.

Tools:

  • Scripts/webkitperl/FeatureList.pm:
7:08 AM Changeset in webkit [182730] by Csaba Osztrogonác
  • 37 edits
    1 add in trunk/LayoutTests

[EFL] Update table/mozilla expected files after r182620
https://bugs.webkit.org/show_bug.cgi?id=143626

Unreviewed gardening.

  • platform/efl/TestExpectations:
  • platform/efl/tables/mozilla/bugs/bug106795-expected.png:
  • platform/efl/tables/mozilla/bugs/bug106795-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug1224-expected.png:
  • platform/efl/tables/mozilla/bugs/bug1224-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug131020-expected.png:
  • platform/efl/tables/mozilla/bugs/bug131020-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug131020_iframe-expected.png:
  • platform/efl/tables/mozilla/bugs/bug131020_iframe-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug1430-expected.png:
  • platform/efl/tables/mozilla/bugs/bug1430-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug157890-expected.png:
  • platform/efl/tables/mozilla/bugs/bug157890-expected.txt: Added.
  • platform/efl/tables/mozilla/bugs/bug16252-expected.png:
  • platform/efl/tables/mozilla/bugs/bug16252-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug19599-expected.png:
  • platform/efl/tables/mozilla/bugs/bug19599-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug20579-expected.png:
  • platform/efl/tables/mozilla/bugs/bug20579-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug32205-3-expected.png:
  • platform/efl/tables/mozilla/bugs/bug32205-3-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug82946-2-expected.png:
  • platform/efl/tables/mozilla/bugs/bug82946-2-expected.txt:
  • platform/efl/tables/mozilla/bugs/bug92143-expected.png:
  • platform/efl/tables/mozilla/bugs/bug92143-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_cellpadding-expected.png:
  • platform/efl/tables/mozilla/marvin/tables_cellpadding-expected.txt:
  • platform/efl/tables/mozilla/marvin/tables_cellspacing-expected.png:
  • platform/efl/tables/mozilla/marvin/tables_cellspacing-expected.txt:
  • platform/efl/tables/mozilla/other/wa_table_thtd_rowspan-expected.png:
  • platform/efl/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug1262-expected.png:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug1262-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug56024-expected.png:
  • platform/efl/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
  • platform/efl/tables/mozilla_expected_failures/other/test4-expected.png:
  • platform/efl/tables/mozilla_expected_failures/other/test4-expected.txt:
7:05 AM Changeset in webkit [182729] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Curl] Small improvements to CurlCacheEntry::parseResponseHeaders()
https://bugs.webkit.org/show_bug.cgi?id=143597

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-04-13
Reviewed by Csaba Osztrogonác.

Most lines of code in CurlCacheEntry::parseResponseHeaders() don't need to be
executed if the response has "no-cache" or "no-store" directive, but we are
checking these conditions in the middle of the method. We can move this to the
beginning of the method for efficiency.

No new tests, no behavior change.

  • platform/network/curl/CurlCacheEntry.cpp:

(WebCore::CurlCacheEntry::parseResponseHeaders):

6:59 AM Changeset in webkit [182728] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed gardening, skip fast/attachment tests, there is
no reason to run these tests before enabling ATTACHMENT_ELEMENT.

  • platform/efl/TestExpectations:
6:38 AM Changeset in webkit [182727] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WTF

Merge r182676 - Fix -Wparentheses warning with GCC 5 in SaturatedArithmetic.h
https://bugs.webkit.org/show_bug.cgi?id=143457

Reviewed by Benjamin Poulain.

Tested by WTF.SaturatedArithmeticAddition and WTF.SaturatedArithmeticSubtraction.

  • wtf/SaturatedArithmetic.h:

(signedAddOverflows): Use && instead of & to avoid triggering -Wparentheses in newer
versions of GCC and Clang, and to improve the clarity of the function.
(signedSubtractOverflows): Changed correspondingly, although there was no warning here.

6:20 AM Changeset in webkit [182726] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, build fix after r182704.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):

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

Merge r182672 - Selects don't scroll at some aspect ratios
https://bugs.webkit.org/show_bug.cgi?id=143649
rdar://problem/19365694

Reviewed by Darin Adler.
Source/WebCore:

Fix width/height flip in RenderListBox which caused us to fail to scroll when
the list was wider than the scroll height.

We're generally confused about RenderListBox scroll offsets (webkit.org/b/143648)
but this fixes the immediate problem.

Test: fast/forms/listbox-visible-size.html

  • rendering/RenderListBox.h:

LayoutTests:

  • fast/forms/listbox-visible-size-expected.txt: Added.
  • fast/forms/listbox-visible-size.html: Added.
6:04 AM Changeset in webkit [182724] by Carlos Garcia Campos
  • 3 edits
    1 delete in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r182671 - Remove PluginModuleInfo.cpp from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=143643

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

Remove PluginModuleInfo.cpp from WebKit2 because it is totally empty.

No new tests, no behavior change.

  • CMakeLists.txt:
  • Shared/Plugins/PluginModuleInfo.cpp: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
5:58 AM Changeset in webkit [182723] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r182634 - [ARM] Fix calleeSaveRegisters() on non iOS platforms after r180516
https://bugs.webkit.org/show_bug.cgi?id=143368

Reviewed by Michael Saboff.

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::calleeSaveRegisters):

5:52 AM Changeset in webkit [182722] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r182609 - Text-combine erroneously draws vertically after non-layout-causing style change
https://bugs.webkit.org/show_bug.cgi?id=143461
<rdar://problem/19285490>

Reviewed by Darin Adler.

Source/WebCore:

RenderCombineText::styleDidChange() unconditionally uncombines its text. Layout then
recombines it. However, if there is a style change that does not cause layout, the
RenderCombineText will be left uncombined until the next layout.

Test: fast/text/text-combine-style-change-no-layout.html

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::styleDidChange):

LayoutTests:

  • fast/text/text-combine-style-change-no-layout-expected.html: Added.
  • fast/text/text-combine-style-change-no-layout.html: Added.
5:51 AM Changeset in webkit [182721] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r182643 - REGRESSION (182567): regress/script-tests/sorting-benchmark.js fails on 32 bit dfg-eager tests
https://bugs.webkit.org/show_bug.cgi?id=143582

Reviewed by Mark Lam.

For 32 bit builds, we favor spilling unboxed values. The ASSERT at the root of this bug doesn't
fire for 64 bit builds, because we spill an "Other" value as a full JS value (DataFormatJS).
For 32 bit builds however, if we are able, we spill Other values as JSCell* (DataFormatCell).
The fix is to add a check in fillSpeculateInt32Internal() before the ASSERT that always OSR exits
if the spillFormat is DataFormatCell. Had we spilled in DataFormatJS and the value was a JSCell*,
we would still OSR exit after the speculation check.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Fixed an error in a comment while debugging.

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

5:47 AM Changeset in webkit [182720] by Carlos Garcia Campos
  • 3 edits
    4 adds in releases/WebKitGTK/webkit-2.8

Merge r182567 - JSArray::sortNumeric should handle ArrayWithUndecided
https://bugs.webkit.org/show_bug.cgi?id=143535

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

ArrayWithUndecided is what you get if you haven't stored anything into the array yet. We need to handle it.

  • runtime/JSArray.cpp:

(JSC::JSArray::sortNumeric):

  • tests/stress/sort-array-with-undecided.js: Added.

LayoutTests:

Upload the original test that first spotted this. Shortened it a bit so that it runs fast enough.

  • js/regress/script-tests/sorting-benchmark.js: Added.

(log):
(bottom_up_merge_sort):
(aMinusB):
(verify):
(benchmark):
(makeArrays):

  • js/regress/sorting-benchmark-expected.txt: Added.
  • js/regress/sorting-benchmark.html: Added.
5:43 AM Changeset in webkit [182719] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8

Merge r182562 - DFG::IntegerCheckCombiningPhase's wrap-around check shouldn't trigger C++ undef behavior on wrap-around
https://bugs.webkit.org/show_bug.cgi?id=143532

Reviewed by Gavin Barraclough.

Oh the irony! We were protecting an optimization that only worked if there was no wrap-around in JavaScript.
But the C++ code had wrap-around, which is undef in C++. So, if the compiler was smart enough, our compiler
would think that there never was wrap-around.

This fixes a failure in stress/tricky-array-boiunds-checks.js when JSC is compiled with bleeding-edge clang.

  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::isValid):

5:39 AM Changeset in webkit [182718] by Carlos Garcia Campos
  • 4 edits
    4 adds in releases/WebKitGTK/webkit-2.8

Merge r182560 - [CSS Shapes] Properly handle negative reference box widths and center coordinates
https://bugs.webkit.org/show_bug.cgi?id=142610

Reviewed by Rob Buis.
Source/WebCore:

Fix a few cases where values that should not be negative end up that
way.

This patch is based on a couple of Blink patches by Rob Buis.

Tests: fast/shapes/shape-outside-floats/shape-outside-floats-circle-negative-radius-crash.html

fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-negative-width-crash.html

  • rendering/shapes/ShapeOutsideInfo.cpp:

(WebCore::ShapeOutsideInfo::computeDeltasForContainingBlockLine): A

negative margin box width means that the shape has no extent, so
clamp to zero.

  • rendering/style/BasicShapes.cpp:

(WebCore::BasicShapeCircle::floatValueForRadiusInBox): When computing

the radii, take the absolute value, since the radii is based on
the distance, which is always positive.

(WebCore::BasicShapeEllipse::floatValueForRadiusInBox): Ditto.

LayoutTests:

Tests for the cases that trigger asserts.

  • fast/shapes/shape-outside-floats/shape-outside-floats-circle-negative-radius-crash-expected.txt: Added.
  • fast/shapes/shape-outside-floats/shape-outside-floats-circle-negative-radius-crash.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-negative-width-crash-expected.txt: Added.
  • fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-negative-width-crash.html: Added.
5:35 AM Changeset in webkit [182717] by Carlos Garcia Campos
  • 3 edits
    10 adds in releases/WebKitGTK/webkit-2.8

Merge r182546 - Fill list style background with same color with that of list background.
https://bugs.webkit.org/show_bug.cgi?id=143483

Reviewed by Simon Fraser.

Source/WebCore:

LayoutListMarker does not have a node so its selectionBackgroundColor alway returns
the default theme color for selection. We can make it more natural by filling
the same color with that of LayoutListItem into it.

Tests: fast/backgrounds/selection-background-color-of-image-list-style.html

fast/backgrounds/selection-background-color-of-list-style.html

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::paint):

LayoutTests:

  • fast/backgrounds/selection-background-color-of-image-list-style.html: Added.
  • fast/backgrounds/selection-background-color-of-list-style.html: Added.
  • platform/gtk/fast/backgrounds/selection-background-color-of-image-list-style-expected.png: Added.
  • platform/gtk/fast/backgrounds/selection-background-color-of-image-list-style-expected.txt: Added.
  • platform/gtk/fast/backgrounds/selection-background-color-of-list-style-expected.png: Added.
  • platform/gtk/fast/backgrounds/selection-background-color-of-list-style-expected.txt: Added.
  • platform/mac/fast/backgrounds/selection-background-color-of-image-list-style-expected.png: Added.
  • platform/mac/fast/backgrounds/selection-background-color-of-image-list-style-expected.txt: Added.
  • platform/mac/fast/backgrounds/selection-background-color-of-list-style-expected.png: Added.
  • platform/mac/fast/backgrounds/selection-background-color-of-list-style-expected.txt: Added.
5:33 AM Changeset in webkit [182716] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.8

Merge r182537 - [GTK] Crash in DOMObjectCache when a wrapped object owned by the cache is unreffed by the user
https://bugs.webkit.org/show_bug.cgi?id=143521

Reviewed by Martin Robinson.

This is a case we claim to support, but it only works if the
object has only one reference. In that case, when the user unrefs
it, the weak ref notify callback removes the object from the
cache. However, if the object has more than one ref, the cache
doesn't know the user unreffed it, and when clearing the cache we
try to remove more references than what the object actually has,
causing a crash in g_object_unref.

  • bindings/gobject/DOMObjectCache.cpp:

(WebKit::DOMObjectCacheData::clearObject):

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

Merge r182534 - [GStreamer] compress property for the HTTP source element
https://bugs.webkit.org/show_bug.cgi?id=143518

Reviewed by Carlos Garcia Campos.

Added a compress property so the default behavior or not
requesting content encoded to the server can be overridden if
needed. This is useful for adaptive streaming playback.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcStart):

5:24 AM Changeset in webkit [182714] by Carlos Garcia Campos
  • 2 edits
    1 add in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182523 - [GStreamer] extra-headers and keep-alive properties for HTTP source element
https://bugs.webkit.org/show_bug.cgi?id=143480

Reviewed by Carlos Garcia Campos.

Keep the resource loader around when persistent HTTP connection
support is enabled. The keep-alive property is set to false by
default. Also before sending the HTTP request we now check the
contents of the extra-headers GstStructure and set additional
headers based on the structure contents.

Patch inspired by GStreamer's souphttpsrc element.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webkit_web_src_init):
(webKitWebSrcFinalize):
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcStop): Clear resource loader only for non-persistent connections.
(webKitWebSrcSetExtraHeader): Utility function to append headers
to an existing request based on a GValue contents.
(webKitWebSrcProcessExtraHeaders): Parse a GValue and set headers
based on its contents.
(webKitWebSrcStart): Extra headers and persistent connection
support. The resource loader is now lazily initialized here.

5:01 AM Changeset in webkit [182713] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8

Merge r182450 - [GTK] Fix HPPA build
https://bugs.webkit.org/show_bug.cgi?id=143453

Reviewed by Darin Adler.

Add HPPA to the list of supported CPUs.

  • CMakeLists.txt:
4:39 AM Changeset in webkit [182712] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r182447 - Create the web inspector process pool lazily
https://bugs.webkit.org/show_bug.cgi?id=143456
rdar://problem/20146520

Reviewed by Mark Lam.

Add and implement WebInspectorProxy::isInspectorProcessPool instead of always creating the inspector process pool
when trying to determine if a given process pool is the inspector process pool.

This should speed up initialization somewhat and avoid creating a storage manager for example.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::inspectorProcessPool):
(WebKit::WebInspectorProxy::isInspectorProcessPool):

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getLaunchOptions):

4:32 AM Changeset in webkit [182711] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r182444 - In the 64-bit DFG and FTL, Array::Double case for HasIndexedProperty should set its result to true when all is well.
<https://webkit.org/b/143396>

Reviewed by Filip Pizlo.

The DFG was neglecting to set the result boolean. The FTL was setting it with
an inverted value. Both of these are now resolved.

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileHasIndexedProperty):

  • tests/stress/for-in-array-mode.js: Added.

(.):
(test):

4:24 AM Changeset in webkit [182710] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r182388 - [WK2] API::Array::copy() should move the resulting Vector<> of copies into the Array::create() call
https://bugs.webkit.org/show_bug.cgi?id=143413

Reviewed by Darin Adler.

Move the Vector<> object containing the copied elements into the Array::create()
call, avoiding copying all the elements again.

While here, change the Vector<> parameters for Array::create() and the Array
constructor to rvalue references. This will ensure that the passed-in object
is moved into the Array::create() call if possible, or explicitly copied
otherwise. The constructor is moved into the header for inlining opportunities
and the unnecessary parameter in the create(Vector<>&&) method declaration
removed.

  • Shared/API/APIArray.cpp:

(API::Array::create):
(API::Array::copy):
(API::Array::Array): Deleted.

  • Shared/API/APIArray.h:
4:22 AM Changeset in webkit [182709] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182379 - FileList constructor should move the passed-in Vector<> rvalue reference into the member variable
https://bugs.webkit.org/show_bug.cgi?id=143412

Reviewed by Darin Adler.

  • fileapi/FileList.h:

(WebCore::FileList::FileList): An explicit move of the passed-in rvalue
reference into the member variable is required, otherwise a copy is
performed since an rvalue reference is just an lvalue.

4:20 AM Changeset in webkit [182708] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.8/Source

Merge r182378 - UserScript, UserStyleSheet constructors should take in Vector<String> rvalue references
https://bugs.webkit.org/show_bug.cgi?id=143411

Reviewed by Darin Adler.

Have the UserScript and UserStyleSheet constructors take in Vector<String>
rvalue references for the whitelist and blacklist parameters. Both classes
store these Vector<String> objects, so the referenced objects can simply be
moved into the member variable.

Because the constructor is now demanding an rvalue, it's up to the caller
to move in the desired object if possible, or create an explicit copy
otherwise.

  • page/UserScript.h:

(WebCore::UserScript::UserScript):

  • page/UserStyleSheet.h:

(WebCore::UserStyleSheet::UserStyleSheet):

Source/WebKit2:
UserScript, UserStyleSheet constructors should take in Vector<String> rvalues
https://bugs.webkit.org/show_bug.cgi?id=143411

Reviewed by Darin Adler.

Move the whitelist and blacklist Vector<String> objects into the
UserScript and UserStyleSheet constructors in ArgumentCoder<T>::decode
functions.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<UserStyleSheet>::decode):
(IPC::ArgumentCoder<UserScript>::decode):

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

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:16 AM Changeset in webkit [182706] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182374 - FrameView code uses page() without null checking
https://bugs.webkit.org/show_bug.cgi?id=143425
rdar://problem/18920601

Reviewed by Anders Carlsson.

While we don't have tests that cover this, we are seeing crashes coming in
that indicate the shouldEnableSpeculativeTilingDuringLoading function is
being called when the page is null. This patch adds null checks to all the
places in FrameView that use page() without doing null checking.

  • page/FrameView.cpp:

(WebCore::FrameView::layout): If page is null, don't try to do the
auto-sizing logic that involves the textAutosizingWidth value from the page.
(WebCore::FrameView::setFixedVisibleContentRect): Get settings from the
frame rather than the page to avoid possible null-dereference.
(WebCore::FrameView::scrollPositionChanged): Check the page for null when
getting the event throttling delay.
(WebCore::FrameView::updateLayerFlushThrottling): Check the page for null,
and return early if it is null.
(WebCore::shouldEnableSpeculativeTilingDuringLoading): Check the page for
null, and return false if it is null.
(WebCore::FrameView::performPostLayoutTasks): Guard the code that calls
didLayout on the page client by a check if the page is null.
(WebCore::FrameView::pagination): Don't call Page::pagination on a null
page here.
(WebCore::FrameView::visibleContentScaleFactor): Use a scale factor of 1
if the page is null.
(WebCore::FrameView::setVisibleScrollerThumbRect): Don't call through to
the page client if the page is null.
(WebCore::FrameView::scrollbarStyleChanged): Ditto.
(WebCore::FrameView::setScrollPinningBehavior): Check the page for null
before asking it for the scrolling coordinator.

4:14 AM Changeset in webkit [182705] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r182370 - URI encoding/escaping should use efficient string building instead of calling snprintf().
<https://webkit.org/b/143426>

Reviewed by Gavin Barraclough.

I saw 0.5% of main thread time in snprintf() on <http://polymerlabs.github.io/benchmarks/>
which seemed pretty silly. This change gets that down to nothing in favor of using our
existing JSStringBuilder and HexNumber.h facilities.

These APIs are well-exercised by our existing test suite.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::encode):
(JSC::globalFuncEscape):

3:49 AM Changeset in webkit [182704] by svillar@igalia.com
  • 4 edits
    2 adds in trunk

[CSS Grid Layout] Support marking/unmarking tracks as infinitely growable
https://bugs.webkit.org/show_bug.cgi?id=141431

Reviewed by Darin Adler.

Source/WebCore:

As explained here
http://lists.w3.org/Archives/Public/www-style/2014Mar/0512.html we
sometimes need to consider that some tracks are infinitely
growable even when they are really not, in order to produce more
"natural" results.

For example the following case:

grid-template-columns: auto auto;
item 1 in column 1 with min-content = max-content = 10px;
item 2 in columns 1-2 with min-content = 30, max-content = 100px;

will produce (45px, 55px) without this patch. But considering the
second column as infinitely growable the result is (10px, 90px), a
more "natural" result because column 1 just needs to be 10px to
accommodate item 1. From now on we can flag GridTracks so that
they can infinitely grow even when the growth limit is finite.

Apart from that distributeSpaceToTracks() is now unconditionally
called even though the extra space is 0. That's because it
computes the plannedSize value.

Test: fast/css-grid-layout/mark-as-infinitely-growable.html

  • rendering/RenderGrid.cpp:

(WebCore::GridTrack::infiniteGrowthPotential):
(WebCore::GridTrack::infinitelyGrowable):
(WebCore::GridTrack::setInfinitelyGrowable):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::trackSizeForTrackSizeComputationPhase): Updated with new phase.
(WebCore::RenderGrid::shouldProcessTrackForTrackSizeComputationPhase): Ditto.
(WebCore::RenderGrid::trackShouldGrowBeyondGrowthLimitsForTrackSizeComputationPhase): Ditto.
(WebCore::RenderGrid::updateTrackSizeForTrackSizeComputationPhase): Ditto.
(WebCore::RenderGrid::currentItemSizeForTrackSizeComputationPhase): Ditto.
(WebCore::RenderGrid::markAsInfinitelyGrowableForTrackSizeComputationPhase):
New helper method which does the mark/unmark just for growth limits.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::sortByGridTrackGrowthPotential): Use
infiniteGrowthPotential() for sorting.
(WebCore::RenderGrid::distributeSpaceToTracks):

  • rendering/RenderGrid.h:

LayoutTests:

New test that to check that tracks whose growth limit changes from
infinite to finite when evaluating "intrinsic maximums" are marked
as infinitely growable for the "max-content maximums" step.

  • fast/css-grid-layout/mark-as-infinitely-growable-expected.txt: Added.
  • fast/css-grid-layout/mark-as-infinitely-growable.html: Added.
3:41 AM Changeset in webkit [182703] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r182285 - Make checkURLReceivedFromWebProcess not rely on details of platform URL implementation.
https://bugs.webkit.org/show_bug.cgi?id=143222
rdar://problem/19978997

Reviewed by Sam Weinig.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):

3:34 AM Changeset in webkit [182702] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182235 - Lots of time spent querying table cell borders, when there are none.
https://bugs.webkit.org/show_bug.cgi?id=143277

Reviewed by Simon Fraser.

This patch speeds up collapsed border queries by using existing collapsed border
cache to calculate repaint rects and by introducing a fast path for zero width collapsed borders.

It reduces the number of calls to recompute collapsed borders from 36 000 to 1 600, while loading a page with a table of 400 rows (1 cell per row).
When scrolling the same page all the way down to the bottom, the number of calls to recompute collapsed borders falls from 290 000 to 0.

Covered by existing tests.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::styleDidChange): This moves invalidation time from RenderTable::layout() to styleDidChange().
(WebCore::RenderTable::invalidateCollapsedBorders):
(WebCore::RenderTable::recalcCollapsedBorders):

  • rendering/RenderTable.h:

(WebCore::RenderTable::collapsedBordersAreValid):
(WebCore::RenderTable::invalidateCollapsedBorders): Deleted.

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::RenderTableCell):
(WebCore::RenderTableCell::willBeRemovedFromTree): Invalidate caches so that when repaint rect is calculated, we don't end up using stale values.
(WebCore::RenderTableCell::styleDidChange): Same as willBeRemovedFromTree.
(WebCore::RenderTableCell::collapsedStartBorder): Check if collapsed border is zero -also query cache.
(WebCore::RenderTableCell::collapsedEndBorder):
(WebCore::RenderTableCell::collapsedBeforeBorder):
(WebCore::RenderTableCell::collapsedAfterBorder):
(WebCore::RenderTableCell::cachedCollapsedLeftBorder):
(WebCore::RenderTableCell::cachedCollapsedRightBorder):
(WebCore::RenderTableCell::cachedCollapsedTopBorder):
(WebCore::RenderTableCell::cachedCollapsedBottomBorder):
(WebCore::RenderTableCell::paintCollapsedBorders):
(WebCore::RenderTableCell::cellAtLeft): Deleted.
(WebCore::RenderTableCell::cellAtRight): Deleted.
(WebCore::RenderTableCell::cellAtTop): Deleted.
(WebCore::RenderTableCell::cellAtBottom): Deleted.

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::invalidateHasEmptyCollapsedBorders):

  • rendering/RenderTableCol.cpp:

(WebCore::RenderTableCol::styleDidChange):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::styleDidChange):
(WebCore::RenderTableRow::addChild):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::styleDidChange):
(WebCore::RenderTableSection::clearCachedCollapsedBorders): This is just an extra safety to invalidate collapsed border cache. This is always
called together with RenderTable::invalidateCollapsedBorders() -and that should prevent the RenderCells to use the cache.
(WebCore::RenderTableSection::removeCachedCollapsedBorders):
(WebCore::RenderTableSection::setCachedCollapsedBorder):
(WebCore::RenderTableSection::cachedCollapsedBorder):

  • rendering/RenderTableSection.h:
3:29 AM Changeset in webkit [182701] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r180241 - Minor RenderTable* class cleanups.
https://bugs.webkit.org/show_bug.cgi?id=141707

Reviewed by Andreas Kling.

Use in-class initializer where possible.
Remove redundant code.
Move multiline implementations out of class declaration.

No change in functionality.

  • rendering/RenderTableCaption.cpp:

(WebCore::RenderTableCaption::insertedIntoTree):
(WebCore::RenderTableCaption::willBeRemovedFromTree):
(WebCore::RenderTableCaption::containingBlockLogicalWidthForContent): Deleted.

  • rendering/RenderTableCaption.h:
  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::RenderTableCell):

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::colSpan):
(WebCore::RenderTableCell::rowSpan):
(WebCore::RenderTableCell::setCol):
(WebCore::RenderTableCell::col):
(WebCore::RenderTableCell::section):
(WebCore::RenderTableCell::table):
(WebCore::RenderTableCell::rowIndex):
(WebCore::RenderTableCell::styleOrColLogicalWidth):
(WebCore::RenderTableCell::logicalHeightForRowSizing):
(WebCore::RenderTableCell::isBaselineAligned):
(WebCore::RenderTableCell::borderAdjoiningTableStart):
(WebCore::RenderTableCell::borderAdjoiningTableEnd):
(WebCore::RenderTableCell::borderAdjoiningCellBefore):
(WebCore::RenderTableCell::borderAdjoiningCellAfter):

  • rendering/RenderTableCol.cpp:

(WebCore::RenderTableCol::RenderTableCol):

  • rendering/RenderTableCol.h:

(WebCore::RenderTableCol::enclosingColumnGroupIfAdjacentBefore):
(WebCore::RenderTableCol::enclosingColumnGroupIfAdjacentAfter):

  • rendering/RenderTableRow.h:

(WebCore::RenderTableRow::setRowIndex):
(WebCore::RenderTableRow::rowIndex):
(WebCore::RenderTableRow::borderAdjoiningTableStart):
(WebCore::RenderTableRow::borderAdjoiningTableEnd):
(WebCore::RenderTableRow::table):
(WebCore::RenderTableSection::firstRow):
(WebCore::RenderTableSection::lastRow):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::RenderTableSection):
(WebCore::RenderTableSection::dirtiedRows):
(WebCore::RenderTableSection::dirtiedColumns):
(WebCore::RenderTableSection::paintObject):
(WebCore::RenderTableSection::nodeAtPoint):

  • rendering/RenderTableSection.h:

(WebCore::CellSpan::CellSpan):
(WebCore::RenderTableSection::borderAdjoiningTableStart):
(WebCore::RenderTableSection::borderAdjoiningTableEnd):
(WebCore::RenderTableSection::cellAt):
(WebCore::RenderTableSection::primaryCellAt):
(WebCore::RenderTableSection::rowRendererAt):
(WebCore::RenderTableSection::outerBorderLeft):
(WebCore::RenderTableSection::outerBorderRight):
(WebCore::RenderTableSection::outerBorderTop):
(WebCore::RenderTableSection::outerBorderBottom):
(WebCore::RenderTableSection::numRows):
(WebCore::RenderTableSection::recalcCellsIfNeeded):
(WebCore::RenderTableSection::rowBaseline):
(WebCore::RenderTableSection::fullTableRowSpan):
(WebCore::CellSpan::start): Deleted.
(WebCore::CellSpan::end): Deleted.

3:27 AM Changeset in webkit [182700] by Csaba Osztrogonác
  • 5 edits in trunk/LayoutTests

[EFL] Unreviewed gardening, update platform specifix expected files after r181889.

  • platform/efl/css3/selectors3/xhtml/css3-modsel-15c-expected.txt:
  • platform/efl/css3/selectors3/xml/css3-modsel-15c-expected.txt:
  • platform/efl/plugins/npruntime/object-from-destroyed-plugin-expected.txt:
  • platform/efl/plugins/npruntime/object-from-destroyed-plugin-in-subframe-expected.txt:
3:21 AM Changeset in webkit [182699] by Csaba Osztrogonác
  • 1 edit
    1 add in trunk/LayoutTests

[EFL] Rebaseline accessibility/aria-toggle-button-with-title.html
https://bugs.webkit.org/show_bug.cgi?id=143229

Unreviewed gardening after r182012.

  • platform/efl/accessibility/aria-toggle-button-with-title-expected.txt: Added.
3:20 AM Changeset in webkit [182698] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182232 - [CMake][GTK] Use the right variable to include the Wayland headers.
https://bugs.webkit.org/show_bug.cgi?id=143304

Reviewed by Carlos Garcia Campos.

No new tests, no behavior changes.

  • PlatformGTK.cmake: Use the right variable WAYLAND_INCLUDE_DIRS.
3:17 AM Changeset in webkit [182697] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[EFL] accessibility/plugin.html fails
https://bugs.webkit.org/show_bug.cgi?id=143663

Unreviewed gardening, mark accessibility/plugin.html as failing test.

  • platform/efl/TestExpectations:
3:13 AM Changeset in webkit [182696] by Carlos Garcia Campos
  • 8 edits
    7 adds in releases/WebKitGTK/webkit-2.8

Merge r182197 - border-image with 'fill' keyword does not fill the middle area unless the border width is greater than zero.
https://bugs.webkit.org/show_bug.cgi?id=142650.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-03-31
Reviewed by Simon Fraser.

Source/WebCore:

The decoration of a RenderBox, a RenderTable or an InlineFlowBox should be
drawn if its RenderStyle has a non-zero width border or the border-image
has the keyword fill.

Tests: fast/borders/border-image-fill-inline-no-border.html

fast/borders/border-image-fill-no-border.html

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paintBoxDecorations):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paintBoxDecorations):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::hasBoxDecorationStyle):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::paintBoxDecorations):

  • rendering/style/BorderData.h:

(WebCore::BorderData::hasFill):

  • rendering/style/RenderStyle.h:

LayoutTests:

Add tests to ensure the middle area of a RenderBox is going to be drawn
even if the border width is not greater than zero.

  • fast/borders/border-image-fill-inline-no-border-expected.html: Added.
  • fast/borders/border-image-fill-inline-no-border.html: Added.
  • fast/borders/border-image-fill-no-border-expected.html: Added.
  • fast/borders/border-image-fill-no-border.html: Added.
  • fast/borders/resources/button-border-cropped.svg: Added.
  • fast/borders/resources/button-border.svg: Added.
  • fast/borders/resources/svg-100x100-intrinsic.svg: Added.
3:04 AM Changeset in webkit [182695] by Carlos Garcia Campos
  • 3 edits
    4 adds in releases/WebKitGTK/webkit-2.8

Merge r182191 - REGRESSION (r173484): Reducing content of scrollable region does not reset scroll
position
https://bugs.webkit.org/show_bug.cgi?id=138525
-and corresponding-
rdar://problem/18166043

Reviewed by Simon Fraser.

Source/WebCore:

The change that caused this regression was correct. That change does not allow
RenderLayer to update scroll position after a layout if a rubber-band is currently
happening. The change caused this regression because all of the member variables
in ScrollController that attempt to keep track of the current state of the scroll
gesture (m_inScrollGesture, m_momentumScrollInProgress, and
m_snapRubberbandTimerIsActive) all indicated that a momentum scroll gesture was
still in action for this div even though it very much is not when the bug happens.
Those variables were never properly re-set because the
PlatformWheelEventPhaseEnded events never got dispatched to the ScrollController,
which brought the investigation back to Element.

We must still dispatch events that have zero delta so that the default event
handlers can handle them, but we should stopPropagation() so that these events are
not sent to the DOM. Websites will break if they get wheel events with no delta.

  • dom/Element.cpp:

(WebCore::Element::dispatchWheelEvent):

LayoutTests:

  • platform/mac-wk2/tiled-drawing/scrolling/overflow-scroll-reduced-content-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/overflow-scroll-reduced-content.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html: Added.
3:00 AM Changeset in webkit [182694] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r182176 - Unreviewed. Fix GTK+ build with REDIRECTED_XCOMPOSITE_WINDOW disabled in X11 platform.

Also fix some unused parameter warnings when
REDIRECTED_XCOMPOSITE_WINDOW is disabled.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewRenderAcceleratedCompositingResults):
(resizeWebKitWebViewBaseFromAllocation):

2:53 AM Changeset in webkit [182693] by Carlos Garcia Campos
  • 5 edits
    6 adds in releases/WebKitGTK/webkit-2.8

Merge r182130 - currentColor computes to the same colour on all elements, even if 'color' is inherited differently
https://bugs.webkit.org/show_bug.cgi?id=133420

Reviewed by Darin Adler.

Source/WebCore:

When resolving a style with the help of the property cache, we were
completely ignoring currentColor.

Since you can set currentColor on properties that are not inherited,
those properties would just be copied from the cached style, which
may have a completely different inherited color.

This pacth fixes the issue by preventing any MatchResult from hitting
the cache if it contains any non-inherited property that would require
resolution by the cache:
-Using the inherit value.
-Using the currentColor value.

Tests: fast/css/currentColor-on-before-after-pseudo-elements.html

fast/css/currentColor-style-update-reftest.html
fast/css/currentColor-value-style-update.html

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::addElementStyleProperties):
(WebCore::ElementRuleCollector::matchAuthorRules):
(WebCore::ElementRuleCollector::matchUserRules):
(WebCore::ElementRuleCollector::matchUARules):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::MatchResult::addMatchedProperties):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::findFromMatchedPropertiesCache):
(WebCore::StyleResolver::addToMatchedPropertiesCache):
(WebCore::extractDirectionAndWritingMode):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::CascadedProperties::addStyleProperties):
(WebCore::StyleResolver::CascadedProperties::addMatches):

  • css/StyleResolver.h:

(WebCore::StyleResolver::MatchResult::matchedProperties):

LayoutTests:

  • fast/css/currentColor-on-before-after-pseudo-elements-expected.html: Added.
  • fast/css/currentColor-on-before-after-pseudo-elements.html: Added.
  • fast/css/currentColor-style-update-reftest-expected.html: Added.
  • fast/css/currentColor-style-update-reftest.html: Added.
  • fast/css/currentColor-value-style-update-expected.txt: Added.
  • fast/css/currentColor-value-style-update.html: Added.
2:51 AM Changeset in webkit [182692] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r182125 - HTMLCollection caches incorrect length if item(0) is called before length on an empty collection
https://bugs.webkit.org/show_bug.cgi?id=143203
Source/WebCore:

rdar://problem/18460462

Reviewed by Antti Koivisto.

Test: fast/dom/htmlcollection-length-after-item-2.html

  • dom/CollectionIndexCache.h:

(CollectionIndexCache::nodeAt): If we hit the end looking for index 0, cache a length
of 0, not a length of 1.

LayoutTests:

Reviewed by Antti Koivisto.

  • fast/dom/htmlcollection-length-after-item-2-expected.txt: Added.
  • fast/dom/htmlcollection-length-after-item-2.html: Added.
2:46 AM Changeset in webkit [182691] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182116 - Optimize RenderLayer::intersectsDamageRect() slightly
https://bugs.webkit.org/show_bug.cgi?id=143186

Reviewed by Zalan Bujtas.

We can early return from RenderLayer::intersectsDamageRect() if the
damageRect is empty, since nothing will intersect with the empty rect.

Slight performance gain when scrolling overflow-scroll with lots of nested,
clipping layers.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects):

2:45 AM Changeset in webkit [182690] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r182098 - load8Signed() and load16Signed() should be renamed to avoid confusion
https://bugs.webkit.org/show_bug.cgi?id=143168

Reviewed by Benjamin Poulain.

Renamed load8Signed() to load8SignedExtendTo32() and load16Signed() to load16SignedExtendTo32().

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::load8SignedExtendTo32):
(JSC::MacroAssemblerARM::load16SignedExtendTo32):
(JSC::MacroAssemblerARM::load8Signed): Deleted.
(JSC::MacroAssemblerARM::load16Signed): Deleted.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::load16SignedExtendTo32):
(JSC::MacroAssemblerARM64::load8SignedExtendTo32):
(JSC::MacroAssemblerARM64::load16Signed): Deleted.
(JSC::MacroAssemblerARM64::load8Signed): Deleted.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::load16SignedExtendTo32):
(JSC::MacroAssemblerARMv7::load8SignedExtendTo32):
(JSC::MacroAssemblerARMv7::load16Signed): Deleted.
(JSC::MacroAssemblerARMv7::load8Signed): Deleted.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::load8SignedExtendTo32):
(JSC::MacroAssemblerMIPS::load16SignedExtendTo32):
(JSC::MacroAssemblerMIPS::load8Signed): Deleted.
(JSC::MacroAssemblerMIPS::load16Signed): Deleted.

  • assembler/MacroAssemblerSH4.h:

(JSC::MacroAssemblerSH4::load8SignedExtendTo32):
(JSC::MacroAssemblerSH4::load8):
(JSC::MacroAssemblerSH4::load16SignedExtendTo32):
(JSC::MacroAssemblerSH4::load16):
(JSC::MacroAssemblerSH4::load8Signed): Deleted.
(JSC::MacroAssemblerSH4::load16Signed): Deleted.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::load8SignedExtendTo32):
(JSC::MacroAssemblerX86Common::load16SignedExtendTo32):
(JSC::MacroAssemblerX86Common::load8Signed): Deleted.
(JSC::MacroAssemblerX86Common::load16Signed): Deleted.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitIntTypedArrayGetByVal):

2:09 AM Changeset in webkit [182689] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8

Merge r182091 - Fix flakey dfg-int8array.js and dfg-int16array.js tests for ARM64
https://bugs.webkit.org/show_bug.cgi?id=138390

Reviewed by Mark Lam.

Source/JavaScriptCore:

Changed load8Signed() and load16Signed() to only sign extend the loaded value to 32 bits
instead of 64 bits. This is what X86-64 does.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::load16Signed):
(JSC::MacroAssemblerARM64::load8Signed):

LayoutTests:

Reenabled the tests for ARM64/iOS. Left the tests disabled for ARM64/linux and will let linux
developers test and reenable under existing but https://bugs.webkit.org/show_bug.cgi?id=142629.

  • js/script-tests/dfg-int16array.js:
  • js/script-tests/dfg-int8array.js:
1:58 AM Changeset in webkit [182688] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r182084 - WebProcessProxy should not retain WebBackForwardListItems forever.
<https://webkit.org/b/143152>
<rdar://problem/19925709>

Reviewed by Anders Carlsson.

Have WebProcessProxy actually forget about a WebBackForwardListItem after it's removed from
the WebBackForwardList.

This ensures that we don't accumulate too many of these objects, which can get quite large
due to the session state encoded in them.

We already have graceful handling of the case where an incoming IPC message references
a removed back/forward list item.

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::didRemoveItem):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::backForwardRemovedItem):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::removeBackForwardItem):

  • UIProcess/WebProcessProxy.h:
1:46 AM Changeset in webkit [182687] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge 182069 - HTMLMediaElement will fire 'seeked' before seek completes, leading to currentTime discontinuities.
https://bugs.webkit.org/show_bug.cgi?id=143132

Reviewed by Eric Carlson.

When seeking, if the ready state rises to >= HAVE_CURRENT_DATA, we will fire the 'seeked'
event and continue playback. However, if a media engine updates the ready state before its
seek operation actually completes, the currentTime it returns may still be the time before
the seek.

Wait until both the ready state rises to HAVE_CURRENT_DATA and m_player->seeking() returns
false before firing the 'seeked' event.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

1:45 AM Changeset in webkit [182686] by Carlos Garcia Campos
  • 28 edits in releases/WebKitGTK/webkit-2.8/Source

Merge r182068 - Make some more objects use FastMalloc
https://bugs.webkit.org/show_bug.cgi?id=143122

Reviewed by Csaba Osztrogonác.

Source/JavaScriptCore:

  • API/JSCallbackObject.h:
  • heap/IncrementalSweeper.h:
  • jit/JITThunks.h:
  • runtime/JSGlobalObjectDebuggable.h:
  • runtime/RegExpCache.h:

Source/WebCore:

  • Modules/geolocation/GeolocationController.h:
  • Modules/geolocation/NavigatorGeolocation.h:
  • Modules/indexeddb/DOMWindowIndexedDatabase.h:
  • Modules/notifications/NotificationController.h:
  • Modules/webdatabase/DatabaseServer.h:
  • css/CSSFontFaceSource.h:
  • html/HTMLMediaSession.h:
  • inspector/InspectorIndexedDBAgent.h:
  • inspector/InspectorReplayAgent.h:
  • page/CaptionUserPreferencesMediaAF.h:
  • page/PageConsoleClient.h:
  • page/PageDebuggable.h:
  • page/animation/CSSPropertyAnimation.cpp:
  • page/mac/ServicesOverlayController.h:
  • platform/RemoteCommandListener.h:
  • platform/Timer.h:
  • platform/audio/MediaSessionManager.h:
  • platform/mac/SystemSleepListenerMac.h:
  • platform/mac/ThemeMac.h:
  • rendering/svg/RenderSVGResourceSolidColor.h:
  • replay/ReplayController.h:
1:15 AM Changeset in webkit [182685] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.8

Merge r182067 - FEMorphology::platformApplyGeneric() should bail out if the radius is less than or equal to zero.
https://bugs.webkit.org/show_bug.cgi?id=142885.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-03-27
Reviewed by Dean Jackson.

Source/WebCore:

FEMorphology class implementation code clean up.

Tests: svg/filters/feMorphology-radius-cases.svg

  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::shouldSupersedeExtremum): Reuse code instead of repeating it and
use < and > instead of =< and >=.

(WebCore::pixelArrayIndex): Returns the array index of a pixel in an image
buffer, given: position(x, y), image width and the color channel.

(WebCore::columnExtremum): Returns the extremum of a column of pixels.

(WebCore::kernelExtremum): Returns the extremum of a filter kernel.

(WebCore::FEMorphology::platformApplyGeneric): Apply some code clean-up.
The kernel size should be equal to radius of the filter. The extra pixel
was causing the resulted image to be asymmetric in some cases.

(WebCore::FEMorphology::platformApplyDegenerate):
(WebCore::FEMorphology::platformApplySoftware): After applying scaling, we
still need to check the resulted radius is negative (overflow case) or less
than one (zero radius case) and treat these cases differently.

(WebCore::FEMorphology::morphologyOperator): Deleted.
(WebCore::FEMorphology::radiusX): Deleted.
(WebCore::FEMorphology::radiusY): Deleted.

  • platform/graphics/filters/FEMorphology.h:

(WebCore::FEMorphology::morphologyOperator):
(WebCore::FEMorphology::radiusX):
(WebCore::FEMorphology::radiusY):
Move a single line functions from the source file to the header file.

LayoutTests:

  • svg/filters/feMorphology-radius-cases-expected.svg: Added.
  • svg/filters/feMorphology-radius-cases.svg: Added.

Test different cases for radius of the feMorphology filter. There are three
cases for the radius:

  1. radius < 0: This is an error case, the source image should not be rendered.
  2. radius = 0: This case is treated as if the filter never exists.
  3. radius > 0: If the scaled radius is > 0, the filter is applied.
1:12 AM Changeset in webkit [182684] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.8

Merge r182058 - Objects with numeric properties intermittently get a phantom 'length' property
https://bugs.webkit.org/show_bug.cgi?id=142792

Reviewed by Csaba Osztrogonác.

Source/JavaScriptCore:

Fixed a > (greater than) that should be a >> (right shift) in the code that disassembles
test and branch instructions. This function is used for linking tbz/tbnz branches between
two seperately JIT'ed sections of code. Sometime we'd create a bogus tbz instruction in
the failure case checks in the GetById array length stub created for "obj.length" access.
If the failure case code address was at a negative offset from the stub, we'd look for bit 1
being set when we should have been looking for bit 0.

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::disassembleTestAndBranchImmediate):

LayoutTests:

New regression test.

  • js/regress-142792-expected.txt: Added.
  • js/regress-142792.html: Added.
  • js/script-tests/regress-142792.js: Added.

(isArrayLike):
(filter):

1:02 AM Changeset in webkit [182683] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebCore

Merge r182015 - Crash when laying out (char)0
https://bugs.webkit.org/show_bug.cgi?id=143103

Reviewed by Dean Jackson.

We currently cache a character -> Font mapping in a HashMap.
However, keys in Hashmaps can't be 0. This patch simply skips
the cache in this case.

No new tests, for now. I'm having trouble creating a test because
the site that causes this bug generates their page using script,
and the script is all minified, and difficult to understand. I
will contact the owner of the site and ask for and unminified
version of their sources. However, I don't want to that to block
this tiny fix from going in.

  • platform/graphics/Font.cpp:

(WebCore::Font::systemFallbackFontForCharacter):

12:59 AM Changeset in webkit [182682] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r182005 - Avoid the Vector<> copy in WebTouchEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=143043

Reviewed by Carlos Garcia Campos.

Have the WebTouchEvent accept a Vector<> rvalue.
The relevant code is updated so the Vector<> object is moved
through the call chain and finally into the WebTouchEvent constructor.

  • Shared/NativeWebTouchEvent.h:
  • Shared/WebEvent.h:
  • Shared/WebTouchEvent.cpp:

(WebKit::WebTouchEvent::WebTouchEvent):

  • Shared/efl/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebTouchEvent):

  • Shared/gtk/NativeWebTouchEventGtk.cpp:

(WebKit::NativeWebTouchEvent::NativeWebTouchEvent):

  • Shared/gtk/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebTouchEvent):

  • Shared/gtk/WebEventFactory.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseTouchEvent):

12:54 AM Changeset in webkit [182681] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebKit2

Merge r181991 - [WK2] WebFrameLoaderClient::dispatchDecidePolicyForResponse() should always call the FramePolicyFunction
https://bugs.webkit.org/show_bug.cgi?id=143036
<rdar://problem/20252438>
<rdar://problem/13811738>

Reviewed by Alexey Proskuryakov.

WebFrameLoaderClient::dispatchDecidePolicyForResponse() should always
call the FramePolicyFunction. Previously, it would fail to do in 2
cases:

  • m_frame->page() returns null

or

  • webPage->sendSync() returns false

If the FramePolicyFunction is not called, we will fail to clear the
callback in the PolicyChecker and
DocumentLoader::continueAfterContentPolicy() will not be called.

DocumentLoader::continueAfterContentPolicy() is in charge of resetting
m_waitingForContentPolicy flag to false. This could therefore explain
the following assertion being hit in DocumentLoader::detachFromFrame()
(see <rdar://problem/20252438>):
RELEASE_ASSERT(!m_waitingForContentPolicy)

Also, as the PolicyChecker callback is not cleared, it could make it
possible for DocumentLoader::continueAfterContentPolicy() to be called
*after* the load is finished, when later canceling the PolicyCallback:
FrameLoader::stopAllLoaders()

-> PolicyChecker::stopCheck()

-> PolicyCallback::cancel()

-> DocumentLoader::continueAfterContentPolicy(PolicyIgnore)

Calling continueAfterContentPolicy(PolicyIgnore) after the load is
finished would be bad and could explain some of the crashes we've seen
in DocumentLoader::continueAfterContentPolicy() ->
DocumentLoader:: stopLoadingForPolicyChange() (see
<rdar://problem/13811738>).

This patch also applies the same fix to
dispatchDecidePolicyForNewWindowAction() and
dispatchDecidePolicyForNavigationAction() as they use the same pattern.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

12:46 AM Changeset in webkit [182680] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.8/Source/JavaScriptCore

Merge r181981 - REGRESSION(169139): LLINT intermittently fails JSC testapi tests.
<https://webkit.org/b/135719>

Reviewed by Geoffrey Garen.

This is a regression introduced in http://trac.webkit.org/changeset/169139 which
changed VM::watchdog from an embedded field into a std::unique_ptr, but did not
update the LLINT to access it as such.

The issue has only manifested so far on the CLoop tests because those are LLINT
only. In the non-CLoop cases, the JIT kicks in and does the right thing, thereby
hiding the bug in the LLINT.

  • API/JSContextRef.cpp:

(createWatchdogIfNeeded):
(JSContextGroupSetExecutionTimeLimit):
(JSContextGroupClearExecutionTimeLimit):

  • llint/LowLevelInterpreter.asm:
12:11 AM Changeset in webkit [182679] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.8

Merge r181925 - Scripts running in isolated world should not subject to a page's CSP about 'eval'.
https://bugs.webkit.org/show_bug.cgi?id=141316.

Patch by Zhuo Li <zachli@apple.com> on 2015-03-24
Reviewed by Geoffrey Garen.

Source/WebCore:

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::initScript):
We should not impose the main world Content Security Policy onto the isolated world.

LayoutTests:

I added a new Content Security Policy directive, "script-src", so that we do not
allow 'unsafe-eval' in the main world.

Also I have to copy the whole function instead of using eval because
eval is subject to the main world Content Security Policy now.

  • http/tests/security/isolatedWorld/bypass-main-world-csp-expected.txt:
  • http/tests/security/isolatedWorld/bypass-main-world-csp.html:

Apr 12, 2015:

11:43 PM Changeset in webkit [182678] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.8/Source/WebInspectorUI

Merge r181916 - Web Inspector: REGRESSION (r179286): ReferenceError: Can't find variable: selector
https://bugs.webkit.org/show_bug.cgi?id=143022

Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-03-24
Reviewed by Timothy Hatcher.

Fix a regression where a missing variable statement causes a ReferenceError.

  • UserInterface/Models/DOMNodeStyles.js:
9:42 PM Changeset in webkit [182677] by benjamin@webkit.org
  • 4 edits
    12 adds in trunk

Legacy scroll behavior on HTMLBodyElement should only apply to the first body element of a document
https://bugs.webkit.org/show_bug.cgi?id=143651

Source/WebCore:

Reviewed by Sam Weinig.

WebKit has some very weird behaviors for the scroll methods on body. This patch
address the first bug: only the first body element should have the legacy behavior.

The relevant text in spec:
-http://dev.w3.org/csswg/cssom-view/#dom-element-scrollleft
-http://dev.w3.org/csswg/cssom-view/#dom-element-scrolltop
-http://dev.w3.org/csswg/cssom-view/#dom-element-scrollwidth
-http://dev.w3.org/csswg/cssom-view/#dom-element-scrollheight

Tests: fast/dom/Element/body-scrollHeight-basics-quirks.html

fast/dom/Element/body-scrollLeft-basics-quirks.html
fast/dom/Element/body-scrollTop-basics-quirks.html
fast/dom/Element/body-scrollWidth-basics-quirks.html
fast/dom/Element/detached-body-element-does-not-scroll-main-frame-with-scrollLeft.html
fast/dom/Element/detached-body-element-does-not-scroll-main-frame-with-scrollTop.html

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::isFirstBodyElementOfDocument):
(WebCore::HTMLBodyElement::scrollLeft):
(WebCore::HTMLBodyElement::setScrollLeft):
(WebCore::HTMLBodyElement::scrollTop):
(WebCore::HTMLBodyElement::setScrollTop):
(WebCore::HTMLBodyElement::scrollHeight):
(WebCore::HTMLBodyElement::scrollWidth):

  • html/HTMLBodyElement.h:

LayoutTests:

Patch by Benjamin Poulain <benjamin@webkit.org> and Diego Perini <diego.perini@gmail.com> on 2015-04-12
Reviewed by Sam Weinig.

  • fast/dom/Element/body-scrollHeight-basics-quirks-expected.txt: Added.
  • fast/dom/Element/body-scrollHeight-basics-quirks.html: Added.
  • fast/dom/Element/body-scrollLeft-basics-quirks-expected.txt: Added.
  • fast/dom/Element/body-scrollLeft-basics-quirks.html: Added.
  • fast/dom/Element/body-scrollTop-basics-quirks-expected.txt: Added.
  • fast/dom/Element/body-scrollTop-basics-quirks.html: Added.
  • fast/dom/Element/body-scrollWidth-basics-quirks-expected.txt: Added.
  • fast/dom/Element/body-scrollWidth-basics-quirks.html: Added.

Test the various behaviors.

  • fast/dom/Element/detached-body-element-does-not-scroll-main-frame-with-scrollLeft-expected.txt: Added.
  • fast/dom/Element/detached-body-element-does-not-scroll-main-frame-with-scrollLeft.html: Added.
  • fast/dom/Element/detached-body-element-does-not-scroll-main-frame-with-scrollTop-expected.txt: Added.
  • fast/dom/Element/detached-body-element-does-not-scroll-main-frame-with-scrollTop.html: Added.

Those tests target specifically the bug.

6:29 PM Changeset in webkit [182676] by Michael Catanzaro
  • 2 edits in trunk/Source/WTF

Fix -Wparentheses warning with GCC 5 in SaturatedArithmetic.h
https://bugs.webkit.org/show_bug.cgi?id=143457

Reviewed by Benjamin Poulain.

Tested by WTF.SaturatedArithmeticAddition and WTF.SaturatedArithmeticSubtraction.

  • wtf/SaturatedArithmetic.h:

(signedAddOverflows): Use && instead of & to avoid triggering -Wparentheses in newer
versions of GCC and Clang, and to improve the clarity of the function.
(signedSubtractOverflows): Changed correspondingly, although there was no warning here.

5:54 PM Changeset in webkit [182675] by Gyuyoung Kim
  • 6 edits in trunk

[EFL] Enable Media Source
https://bugs.webkit.org/show_bug.cgi?id=143635

Reviewed by Csaba Osztrogonác.

.:

  • Source/cmake/OptionsEfl.cmake: Add ENABLE_MEDIA_SOURCE switch.

Tools:

  • Scripts/webkitperl/FeatureList.pm: Enable media source on efl port.

LayoutTests:

  • platform/efl/TestExpectations: Update failing tests.
3:33 PM Changeset in webkit [182674] by commit-queue@webkit.org
  • 9 edits
    8 moves in trunk

Fix trival typos related to the word "coordinate".
https://bugs.webkit.org/show_bug.cgi?id=143644

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-04-12
Reviewed by Alexey Proskuryakov.

No new tests, no behavior change.

Source/WebCore:

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layoutOverflowRectForPropagation):

Source/WebKit2:

  • Shared/WebHitTestResult.cpp:

(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):

  • Shared/WebHitTestResult.h:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::lookupTextAtLocation):

LayoutTests:

  • css3/scroll-snap/scroll-snap-property-computed-style-expected.txt:
  • css3/scroll-snap/scroll-snap-property-computed-style.js:
  • platform/gtk/svg/custom/svg-curve-with-relative-cordinates-expected.png: Removed.
  • platform/gtk/svg/custom/svg-curve-with-relative-cordinates-expected.txt: Removed.
  • platform/ios-sim-deprecated/svg/custom/svg-curve-with-relative-cordinates-expected.txt: Removed.
  • platform/ios-simulator/svg/custom/svg-curve-with-relative-cordinates-expected.txt: Removed.
  • platform/mac/svg/custom/svg-curve-with-relative-cordinates-expected.png: Removed.
  • platform/mac/svg/custom/svg-curve-with-relative-cordinates-expected.txt: Removed.
  • platform/win/svg/custom/svg-curve-with-relative-cordinates-expected.txt: Removed.
  • svg/custom/svg-curve-with-relative-cordinates.html: Removed.
1:28 PM Changeset in webkit [182673] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Scrollbars in composited overflow and iframes fail to render on Mac
https://bugs.webkit.org/show_bug.cgi?id=143647
rdar://problem/20340544

Reviewed by Darin Adler.

When adding support for drawing scrollbars on the scrolling thread, we inadvertently
disabled scrollbar drawing in other composited, main-thread scrolling configurations.

Fix by having Scrollbar::supportsUpdateOnSecondaryThread() only return true if
the scrollable area is using async scrolling.

Sadly, we can't layout-test this.

  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::supportsUpdateOnSecondaryThread):

1:18 PM Changeset in webkit [182672] by Simon Fraser
  • 3 edits
    2 adds in trunk

Selects don't scroll at some aspect ratios
https://bugs.webkit.org/show_bug.cgi?id=143649
rdar://problem/19365694

Reviewed by Darin Adler.
Source/WebCore:

Fix width/height flip in RenderListBox which caused us to fail to scroll when
the list was wider than the scroll height.

We're generally confused about RenderListBox scroll offsets (webkit.org/b/143648)
but this fixes the immediate problem.

Test: fast/forms/listbox-visible-size.html

  • rendering/RenderListBox.h:

LayoutTests:

  • fast/forms/listbox-visible-size-expected.txt: Added.
  • fast/forms/listbox-visible-size.html: Added.
1:08 PM Changeset in webkit [182671] by commit-queue@webkit.org
  • 3 edits
    1 delete in trunk/Source/WebKit2

Remove PluginModuleInfo.cpp from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=143643

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

Remove PluginModuleInfo.cpp from WebKit2 because it is totally empty.

No new tests, no behavior change.

  • CMakeLists.txt:
  • Shared/Plugins/PluginModuleInfo.cpp: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
1:04 PM Changeset in webkit [182670] by ap@apple.com
  • 2 edits in trunk/Tools

build.webkit.org/dashboard: Crash-only queues should show failure when failure limit is exceeded
https://bugs.webkit.org/show_bug.cgi?id=143646

Reviewed by David Kilzer.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:

(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus):

10:30 AM Changeset in webkit [182669] by Simon Fraser
  • 4 edits
    19 adds in trunk

Too much repainting on scrolling with fixed backgrounds
https://bugs.webkit.org/show_bug.cgi?id=143637
rdar://problem/20245243

Reviewed by Darin Adler.

Source/WebCore:

FrameView::scrollContentsSlowPath() would repaint the entire viewport if there were
any slow-repaint objects (those with background-attachment: fixed) and the contents
were using compositing for scrolling.

This is wrong; we only need to issue repaint for the slow-repaint renderers,
and, if the frame is hosted in a compositing layer and not using compositing for scrolling,
repaint that hosting layer.

Tests: compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint.html

compositing/repaint/iframes/compositing-iframe-scroll-repaint.html
compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint.html
platform/mac-wk2/tiled-drawing/fixed-background-scroll-repaint.html

  • page/FrameView.cpp:

(WebCore::FrameView::scrollContentsSlowPath):

LayoutTests:

Tests with various configurations of iframes and compositing, which dump layer trees with
repaint rectangles.

Also tiled-scrolling test that exercises the simple case.

Put WebKit1-specific results in platform/mac-wk1, since they are very different from
WK2 and other platforms, due to WK1-specific layer hosting and repaint behaviors.

  • compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: Added.
  • compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint.html: Added.
  • compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: Added.
  • compositing/repaint/iframes/compositing-iframe-scroll-repaint.html: Added.
  • compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: Added.
  • compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint.html: Added.
  • compositing/repaint/iframes/resources/compositing-document.html: Added.
  • compositing/repaint/iframes/resources/compositing-fixed-background-document.html: Added.
  • compositing/repaint/iframes/resources/fixed-background-document.html: Added.
  • platform/mac-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: Added.
  • platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: Added.
  • platform/mac-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: Added.
  • platform/mac-wk2/compositing/repaint/fixed-background-scroll-expected.txt:
  • platform/mac-wk2/tiled-drawing/fixed-background-scroll-repaint-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fixed-background-scroll-repaint.html: Added.
2:50 AM Changeset in webkit [182668] by Yusuke Suzuki
  • 10 edits
    1 add in trunk

[ES6] Implement Array.prototype.values
https://bugs.webkit.org/show_bug.cgi?id=143633

Reviewed by Darin Adler.

Source/JavaScriptCore:

Symbol.unscopables is implemented, so we can implement Array.prototype.values
without largely breaking the web. The following script passes.

var array = [];
var values = 42;
with (array) {

assert(values, 42);

}

  • runtime/ArrayPrototype.cpp:
  • tests/stress/array-iterators-next.js:
  • tests/stress/map-iterators-next.js:
  • tests/stress/set-iterators-next.js:
  • tests/stress/values-unscopables.js: Added.

(test):

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/array-iterators-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/array-iterators.js:

Apr 11, 2015:

10:12 PM Changeset in webkit [182667] by ap@apple.com
  • 5 edits in trunk/LayoutTests

editing/spelling/spelling-marker-description.html times out on Mac
https://bugs.webkit.org/show_bug.cgi?id=143639

Reviewed by Darin Adler.

  • editing/spelling/spelling-marker-description-expected.txt:
  • editing/spelling/spelling-marker-description.html:

Changed the test to match reality.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:

Removed expectations.

10:05 PM Changeset in webkit [182666] by ap@apple.com
  • 3 edits in trunk/Tools

Use en_US spell checker for tests on Mac instead of Multilingual
https://bugs.webkit.org/show_bug.cgi?id=143641

Reviewed by Dan Bernstein.

  • DumpRenderTree/mac/DumpRenderTree.mm: (setDefaultsToConsistentValuesForTesting):

While at it, override NSUserDictionaryReplacementItems, so that user replacements
cannot affect tests.

  • WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm: (WTR::InjectedBundle::platformInitialize):

Made this more like WebKit1 version.

7:23 PM Changeset in webkit [182665] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Hide Frames Timeline if the backend doesn't support it
https://bugs.webkit.org/show_bug.cgi?id=142800

Patch by Matt Baker <Matt Baker> on 2015-04-11
Reviewed by Timothy Hatcher.

Fallback to showing the layout timeline if the backend doesn't support the rendering frames timeline.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.shouldShowViewForTimeline):
(WebInspector.TimelineManager.prototype._loadNewRecording):
Added iOS 8 compatibility check for RenderingFrame timeline record type.

  • UserInterface/Views/LayoutTimelineDataGridNode.js:

(WebInspector.LayoutTimelineDataGridNode.prototype.get data):
Restored fields used by Layout timeline view.

  • UserInterface/Views/LayoutTimelineView.js:

Updated to be compatible with both RenderingFrame and Layout timeline views.

4:52 PM Changeset in webkit [182664] by Michael Catanzaro
  • 2 edits in trunk

[CMake] Miscellaneous issues in WebKitFeatures.cmake
https://bugs.webkit.org/show_bug.cgi?id=143636

Reviewed by Martin Robinson.

Rename _WEBKIT_AVAILABLE_OPTIONS_INITIALVALUE_ variables to
_WEBKIT_AVAILABLE_OPTIONS_INITIAL_VALUE_

Rename _WEBKIT_AVAILABLE_OPTIONS_ISPUBLIC_ variables to
_WEBKIT_AVAILABLE_OPTIONS_IS_PUBLIC_

Rename _SHOULD_PRINT_POINTS to _SHOULD_PRINT_DOTS

Update USE_SYSTEM_MALLOC description to not mention TCmalloc

Fix ENABLE_TOUCH_SLIDER so that it can be used

Add a comment

  • Source/cmake/WebKitFeatures.cmake:
2:28 PM Changeset in webkit [182663] by Michael Catanzaro
  • 3 edits in trunk

[CMake] Print sorted feature list at the very end of the configure process
https://bugs.webkit.org/show_bug.cgi?id=143596

Reviewed by Martin Robinson.

  • CMakeLists.txt: Call PRINT_WEBKIT_OPTIONS at the bottom of the file.
  • Source/cmake/WebKitFeatures.cmake: Split option printing into PRINT_WEBKIT_OPTIONS macro,

and sort the options before printing. Reorder some code so that features still get
propagated to the bindings generators.

1:55 PM Changeset in webkit [182662] by jonowells@apple.com
  • 6 edits
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Debugger sidebar should show errors underneath scripts
https://bugs.webkit.org/show_bug.cgi?id=143464

Reviewed by Timothy Hatcher.

Add a new tree element called IssueTreeElement. This shows warnings and errors in the debugger sidebar. These
can be clicked to jump to the line of source code for which the error was thrown. BreakpointTreeElement and
IssueTreeElement now inherit from DebuggerTreeElement to support any needed commonalities among the interfaces
of elements in the debugger sidebar panel.

  • Localizations/en.lproj/localizedStrings.js: Updated.
  • UserInterface/Main.html: Add new files.
  • UserInterface/Models/IssueMessage.js:

(WebInspector.IssueMessage):
(WebInspector.IssueMessage.prototype.get source):
(WebInspector.IssueMessage.prototype.get lineNumber):
(WebInspector.IssueMessage.prototype.get columnNumber):
(WebInspector.IssueMessage.prototype.get displayLineNumber):
(WebInspector.IssueMessage.prototype.get displayColumnNumber):
(WebInspector.IssueMessage.prototype.get sourceCodeLocation):
(WebInspector.IssueMessage.prototype.saveIdentityToCookie):
(WebInspector.IssueMessage.prototype._sourceCodeLocationDisplayLocationChanged):
Convert to use a backing SourceCodeLocation. Expand API.

  • UserInterface/Views/BreakpointTreeElement.js: Inherits now from DebuggerTreeElement.
  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.showResourcesWithBreakpointsOnlyFilterFunction):
(WebInspector.DebuggerSidebarPanel.showResourcesWithIssuesOnlyFilterFunction):
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointRemoved):
(WebInspector.DebuggerSidebarPanel.prototype._handleDebuggerObjectDisplayLocationDidChange):
(WebInspector.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement):
(WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected):
(WebInspector.DebuggerSidebarPanel.prototype._compareDebuggerTreeElements):
(WebInspector.DebuggerSidebarPanel.prototype._addDebuggerObject):
(WebInspector.DebuggerSidebarPanel.prototype._addIssue):
(WebInspector.DebuggerSidebarPanel.prototype._handleIssueAdded):
(WebInspector.DebuggerSidebarPanel.prototype._handleIssuesCleared):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointDisplayLocationDidChange): Deleted.
(WebInspector.DebuggerSidebarPanel.prototype._removeBreakpointTreeElement): Deleted.
(WebInspector.DebuggerSidebarPanel.prototype._compareBreakpointTreeElements): Deleted.
Add IssueTreeElements to the sidebar whenever a warning or error corresponding to a line of code is found.
Add a filter function and button to filter down to just these. Ensure issue and breakpoint elements can be
properly compared.

  • UserInterface/Views/DebuggerTreeElement.js: Added.

(WebInspector.DebuggerTreeElement):
(WebInspector.DebuggerTreeElement.prototype.get debuggerObject):

  • UserInterface/Views/IssueTreeElement.css: Added.

(.issue .icon):
(.issue.error .icon):
(.navigation-sidebar-panel-content-tree-outline .item.small.issue .icon):

  • UserInterface/Views/IssueTreeElement.js: Added.

(WebInspector.IssueTreeElement):
(WebInspector.IssueTreeElement.prototype.get issueMessage):
(WebInspector.IssueTreeElement.prototype._updateTitles):

12:43 PM Changeset in webkit [182661] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Run flaky conservative GC related test first before polluting stack and registers
https://bugs.webkit.org/show_bug.cgi?id=143634

Reviewed by Ryosuke Niwa.

After r182653, JSC API tests fail. However, it's not related to the change.
After investigating the cause of this failure, I've found that the failed test is flaky
because JSC's GC is conservative. If previously allocated JSGlobalObject is accidentally alive
due to conservative roots in C stack and registers, this test fails.

Since GC marks C stack and registers as roots conservatively,
objects not referenced logically can be accidentally marked and alive.
To avoid this situation as possible as we can,

  1. run this test first before stack is polluted,
  2. extract this test as a function to suppress stack height.
  • API/tests/testapi.mm:

(testWeakValue):
(testObjectiveCAPIMain):
(testObjectiveCAPI):

12:36 PM Changeset in webkit [182660] by commit-queue@webkit.org
  • 27 edits
    4 copies
    3 moves
    5 adds in trunk/Source

Web Inspector: create content view and details sidebar for Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=143533

Patch by Matt Baker <Matt Baker> on 2015-04-11
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Refactoring: RunLoop prefix changed to RenderingFrame.

  • inspector/protocol/Timeline.json:

Source/WebCore:

Refactoring: RunLoop prefix changed to RenderingFrame.

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::internalStart):
(WebCore::toProtocol):

  • inspector/InspectorTimelineAgent.h:

Source/WebInspectorUI:

Added new Rendering Frames timeline content view and details sidebar, and added minor visual tweeks to the
timeline graph such as ensuring 60 FPS budget line is always visible, and large combined frames are split
up once they reach a maximum pixel width.

  • Localizations/en.lproj/localizedStrings.js:

New UI strings.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
Support for new details sidebar panel.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.shouldShowViewForTimeline):
(WebInspector.TimelineManager.prototype._processRecord):
(WebInspector.TimelineManager.prototype._loadNewRecording):
Layout timeline is no longer added to timeline graphs, skip Rendering Frame records that have no child events.

  • UserInterface/Images/NavigationItemDoughnutChart.svg: Added.
  • UserInterface/Images/TimelineRecordRenderingFrame.svg: Added.

New artwork.

  • UserInterface/Main.html:
  • UserInterface/Test.html:

New files.

  • UserInterface/Models/RenderingFrameTimelineRecord.js: Renamed from Source/WebInspectorUI/UserInterface/Models/RunLoopTimelineRecord.js.

(WebInspector.RenderingFrameTimelineRecord):
(WebInspector.RenderingFrameTimelineRecord.resetFrameNumber):
(WebInspector.RenderingFrameTimelineRecord.prototype.get frameNumber):
(WebInspector.RenderingFrameTimelineRecord.prototype.get children):
(WebInspector.RenderingFrameTimelineRecord.prototype.get durationRemainder):
(WebInspector.RenderingFrameTimelineRecord.prototype.durationForRecords.get var):
Added frame numbering and improved the accuracy of sub-frame duratation calculation.
Refactoring: RunLoop prefix changed to RenderingFrame.

  • UserInterface/Models/Timeline.js:

(WebInspector.Timeline):
(WebInspector.Timeline.create):
(WebInspector.Timeline.prototype.get recording):
(WebInspector.Timeline.prototype.get displayName):
(WebInspector.Timeline.prototype.get iconClassName):
Added up-pointer to parent recording.

  • UserInterface/Models/TimelineRecord.js:

Refactoring: RunLoop prefix changed to RenderingFrame.

  • UserInterface/Models/TimelineRecording.js:

(WebInspector.TimelineRecording.prototype.reset):
Support for new timeline type.

  • UserInterface/Views/ChartDetailsSectionLegendRow.js: Added.

(WebInspector.ChartDetailsSectionLegendRow):
New details section row type for chart legend items.

  • UserInterface/Views/ChartDetailsSectionRow.css: Added.

(.details-section .row.chart):
(.details-section .row.chart canvas):
(.details-section .row.chart.empty canvas):
(.details-section > .content > .group > .row.legend-item > .label > .color-swatch):

  • UserInterface/Views/ChartDetailsSectionRow.js: Added.

(WebInspector.ChartDetailsSectionRow):
(WebInspector.ChartDetailsSectionRow.prototype.get legendGroup):
(WebInspector.ChartDetailsSectionRow.prototype.set innerLabel):
(WebInspector.ChartDetailsSectionRow.prototype.addChartValue):
(WebInspector.ChartDetailsSectionRow.prototype.clearChart):
(WebInspector.ChartDetailsSectionRow.prototype._refresh.drawSlice):
(WebInspector.ChartDetailsSectionRow.prototype._refresh):
New details section row type for pie/doughnut charts.

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView):
Support for new timeline view type.

  • UserInterface/Views/LayoutTimelineDataGridNode.js:

(WebInspector.LayoutTimelineDataGridNode.prototype.get data):
(WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
Updated for use in rendering frame timeline view.

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
Removed references to old RunLoop objects.

  • UserInterface/Views/RenderingFrameDetailsSidebarPanel.js: Added.

(WebInspector.RenderingFrameDetailsSidebarPanel.formatChartValue):
(WebInspector.RenderingFrameDetailsSidebarPanel):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.inspect):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.updateRangeSelection):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.get renderingFrameTimeline):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.set renderingFrameTimeline):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.refresh.durationForRecordType):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype.refresh):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._resetAll):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._recordAdded):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._timelineReset):
(WebInspector.RenderingFrameDetailsSidebarPanel.prototype._getSelectedRecords):
New sidebar panel for showing time breakdown for current frame selection.

  • UserInterface/Views/RenderingFrameTimelineDataGridNode.js: Added.

(WebInspector.RenderingFrameTimelineDataGridNode):
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.get record):
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.get records):
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.get data):
(WebInspector.RenderingFrameTimelineDataGridNode.prototype.createCellContent):
New data grid row type.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.css: Renamed from Source/WebInspectorUI/UserInterface/Views/RunLoopTimelineOverviewGraph.css.

(.timeline-overview-graph.rendering-frame > .divider):
(.timeline-overview-graph.rendering-frame > .divider > .label):

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js: Renamed from Source/WebInspectorUI/UserInterface/Views/RunLoopTimelineOverviewGraph.js.

(WebInspector.RenderingFrameTimelineOverviewGraph):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.get graphHeightSeconds):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.updateLayout.createFrame):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition.get if):

  • UserInterface/Views/RenderingFrameTimelineView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/RunLoopTimelineOverviewGraph.css.

(.timeline-view.rendering-frame > .data-grid):
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.rendering-frame .item .subtitle):
Visual tweeks.
Refactoring: RunLoop prefix changed to RenderingFrame.

  • UserInterface/Views/RenderingFrameTimelineView.js: Added.

(WebInspector.RenderingFrameTimelineView):
(WebInspector.RenderingFrameTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
(WebInspector.RenderingFrameTimelineView.prototype.shown):
(WebInspector.RenderingFrameTimelineView.prototype.hidden):
(WebInspector.RenderingFrameTimelineView.prototype.updateLayout):
(WebInspector.RenderingFrameTimelineView.prototype.get selectionPathComponents):
(WebInspector.RenderingFrameTimelineView.prototype.filterDidChange):
(WebInspector.RenderingFrameTimelineView.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.RenderingFrameTimelineView.prototype.reset):
(WebInspector.RenderingFrameTimelineView.prototype.treeElementPathComponentSelected):
(WebInspector.RenderingFrameTimelineView.prototype.dataGridNodeForTreeElement):
(WebInspector.RenderingFrameTimelineView.prototype._processPendingRecords):
(WebInspector.RenderingFrameTimelineView.prototype._renderingFrameTimelineRecordAdded):
(WebInspector.RenderingFrameTimelineView.prototype._dataGridNodeSelected):
New content view type.

  • UserInterface/Views/TimelineIcons.css:

(.rendering-frame-icon .icon):
(.rendering-frame-icon.large .icon):
(.rendering-frame-record .icon):
(.runloop-record .icon):
(.runloop-icon .icon): Deleted.
(.runloop-icon.large .icon): Deleted.
Refactoring: runloop prefix changed to rendering-frame.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview.prototype._timelineRemoved):
Support for timelines without associated views.

  • UserInterface/Views/TimelineOverviewGraph.js:

(WebInspector.TimelineOverviewGraph):
Refactoring: RunLoop prefix changed to RenderingFrame.

  • UserInterface/Views/TimelineRecordFrame.css:

(.timeline-record-frame):
(.timeline-record-frame > .frame):

  • UserInterface/Views/TimelineRecordFrame.js:

(WebInspector.TimelineRecordFrame.createCombinedFrames):
Visual tweeks, splitting up large combined frames.

  • UserInterface/Views/TimelineRecordTreeElement.js:

(WebInspector.TimelineRecordTreeElement):
Refactoring: runloop prefix changed to rendering-frame.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
Added support for new details sidebar and timelines without associated views.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel._timelineAdded.set this):
Support for timelines without associated views.
Refactoring: runloop prefix changed to rendering-frame.

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

New files.

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

Stop referring to outdated RFC2616 in CacheValidation.cpp
https://bugs.webkit.org/show_bug.cgi?id=143619

Reviewed by Darin Adler.

Stop referring to outdated RFC2616 in CacheValidation.cpp and refer to
the newer RFC7230 & RFC7234. Also update some variables to match the
naming in the RFC for clarity.

No behavior change.

  • platform/network/CacheValidation.cpp:

(WebCore::updateResponseHeadersAfterRevalidation):
(WebCore::computeCurrentAge):
(WebCore::computeFreshnessLifetimeForHTTPFamily):
(WebCore::isCacheHeaderSeparator):
(WebCore::parseCacheControlDirectives):

11:13 AM Changeset in webkit [182658] by Michael Catanzaro
  • 2 edits in trunk

[CMake] Options should be marked as advanced by default
https://bugs.webkit.org/show_bug.cgi?id=143572

Reviewed by Gyuyoung Kim.

Options defined with WEBKIT_OPTION_DEFINE are now advanced so that they are hidden from
users by default, unless WEBKIT_OPTION_DEFAULT_PORT_VALUE is used. Add new macros
WEBKIT_OPTION_DEFINE_PUBLIC to define an option that's not hidden by default, to be used
for adding port-specific options, and WEBKIT_OPTION_PRIVATE_PORT_VALUE to override an
option without making it public.

  • Source/cmake/WebKitFeatures.cmake:
10:05 AM Changeset in webkit [182657] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unskip media test on EFL port

Unreviewed, media tests are being passed except for 25 tests.
The failing tests need to be investigated by Bug 131044.

  • platform/efl/TestExpectations:
9:03 AM Changeset in webkit [182656] by rniwa@webkit.org
  • 2 edits
    2 adds in trunk

WebKit places caret in front of pasted Numbers cells instead of behind
https://bugs.webkit.org/show_bug.cgi?id=143627

Reviewed by Darin Adler.

The bug was caused by Position::downstream not respecting modern position types inside a table.
Fixed it by using Position::atStartOfNode which respects before/after positions.

This bug doesn't reproduce when there is no whitespace after td element in the pasted content
because positionAtEndOfInsertedContent() will be inside the last pasted cell inside
ReplaceSelectionCommand::completeHTMLReplacement in those cases. This related but separate bug
is tracked in https://webkit.org/b/143628.

Tests: editing/pasteboard/paste-table-with-unrendered-text-nodes.html

  • dom/Position.cpp:

(WebCore::Position::downstream):

7:40 AM Changeset in webkit [182655] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Use semi-transparent map item dividers
https://bugs.webkit.org/show_bug.cgi?id=143630

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectTreeMapEntryTreeElement.css:

(.object-tree-map-entry.key:not(:first-child)):
(.object-tree-map-entry.key): Deleted.
(.object-tree-map-entry.key:first-of-type): Deleted.
Use one selector instead of two.

7:37 AM Changeset in webkit [182654] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Objects are vertically misaligned by 1px
https://bugs.webkit.org/show_bug.cgi?id=143629

Reviewed by Timothy Hatcher.

  • UserInterface/Views/FormattedValue.css:

(.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):

3:02 AM Changeset in webkit [182653] by Yusuke Suzuki
  • 18 edits in trunk/Source

[ES6] Enable Symbol in web pages
https://bugs.webkit.org/show_bug.cgi?id=143375

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

Expose Symbol to web pages.
Symbol was exposed, but it was hidden since it breaks Facebook comments.
This is because at that time Symbol is implemented,
but methods for Symbol.iterator and Object.getOwnPropertySymbols are not implemented yet
and it breaks React.js and immutable.js.

Now methods for Symbol.iterator and Object.getOwnPropertySymbols are implemented
and make sure that Facebook comment input functionality is not broken with exposed Symbol.

So this patch replaces runtime flags SymbolEnabled to SymbolDisabled
and makes enabling symbols by default.

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):

  • runtime/RuntimeFlags.h:

Source/WebCore:

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal):

Source/WebKit/mac:

  • WebView/WebPreferencesPrivate.h:

Source/WebKit/win:

  • Interfaces/IWebPreferencesPrivate.idl:

Source/WebKit2:

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

Apr 10, 2015:

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

Hide volume controls when playing wirelessly.
https://bugs.webkit.org/show_bug.cgi?id=143621.
<rdar://problem/20490673>

Reviewed by Darin Adler.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateWirelessPlaybackStatus):

10:07 PM Changeset in webkit [182651] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Unreviewed build fix. Updated config.json after recent changes.

  • config.json:
10:07 PM Changeset in webkit [182650] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • WebCore.xcodeproj/project.pbxproj: Make LaunchServicesSPI.h a private header

instead of project, as it's used in WebKit.

8:52 PM Changeset in webkit [182649] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed, EFL gardening on 11th April.

Mark 18 table/mozilla tests to failure. The tests have been failed since r182620.

  • platform/efl/TestExpectations:
6:45 PM Changeset in webkit [182648] by weinig@apple.com
  • 10 edits
    1 add in trunk/Source

Allow LaunchServices to handle URLs on link navigations
<rdar://problem/19446826>
https://bugs.webkit.org/show_bug.cgi?id=143544

Reviewed by Anders Carlsson.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • platform/spi/ios/LaunchServicesSPI.h: Added.

Add new SPI header.

Source/WebKit/mac:

  • Configurations/WebKitLegacy.xcconfig:

Link MobileCoreServices.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(shouldTryAppLink):
(WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebFrameLoaderClient::setUpPolicyListener):
Only let LaunchServices have a crack at the URL if the navigation is:

1) a main frame navigation
2) a result of a user gesture

Source/WebKit2:

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::tryAppLink):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
Only let LaunchServices have a crack at the URL if the navigation is:

1) a main frame navigation
2) a result of a user gesture

Source/WTF:

  • wtf/Platform.h:

Add HAVE macro for this functionality.

6:00 PM Changeset in webkit [182647] by Yusuke Suzuki
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

ES6: Iterator toString names should be consistent
https://bugs.webkit.org/show_bug.cgi?id=142424

Reviewed by Geoffrey Garen.

Iterator Object Names in the spec right now have spaces.
In our implementation some do and some don't.
This patch aligns JSC to the spec.

  • runtime/JSArrayIterator.cpp:
  • runtime/JSStringIterator.cpp:
  • tests/stress/iterator-names.js: Added.

(test):
(iter):
(check):

5:50 PM Changeset in webkit [182646] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Fix Console Message Toggle

Unreviewed. Correct a post-review comment fix that went too far.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype.set expandable):
The handler needed to be bound to the object.

5:46 PM Changeset in webkit [182645] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Fix Console Filter Search, Uncaught Exception

Rubber-stamped by Timothy Hatcher.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._performSearch):
This regressed with recent refactoring. Fix up the property and class names.

5:40 PM Changeset in webkit [182644] by Joseph Pecoraro
  • 13 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Improve Console Message Formatting
https://bugs.webkit.org/show_bug.cgi?id=143623

Reviewed by Timothy Hatcher.

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

Misc.

  • UserInterface/Views/ConsoleMessageView.css: Added.

(.console-message.expandable .console-top-level-message::before):
(.console-message.expandable.expanded .console-top-level-message::before):
(.console-message.expandable.expanded :matches(.console-message-preview, .console-message-preview-divider)):
(.console-message-preview-divider):
(.console-message-enclosed):
(.console-message .console-message-stack-trace-container):
(.console-message.expandable.expanded .console-message-stack-trace-container):
(.console-message .console-message-stack-trace-container > li):
(.console-message .console-message-extra-parameters-container > li::before):
New styles for the new ConsoleMessageView children.
Handle console message expansion, a list of extra parameters
and a potential list of stack frames.

(.console-message, .console-user-command):
(.console-message .repeat-count):
(.console-message-text):
(.console-message-text > span):
(.console-error-level):
(.console-error-level .console-message-text):
(.console-debug-level .console-message-text):
(.console-warning-level):
(.console-warning-level .console-message-text):
(.console-user-command .console-message):
(.console-error-level::before):
(.console-warning-level::before):
(.console-user-command::before):
(.console-debug-level::before):
(:matches(.console-warning-level, .console-error-level, .console-log-level).console-message):
(:matches(.console-warning-level, .console-error-level, .console-log-level)::before):
(.console-user-command > .console-message-text):
(.console-message-url):
(.console-saved-variable):
(.console-user-command-result):
(.console-user-command-result.console-log-level::before):
Moved from LogContentView.css to here where it is more appropriate
since ConsoleMessageView added them.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype.get expandable):
(WebInspector.ConsoleMessageView.set expandable.this._boundExpandClickHandler):
(WebInspector.ConsoleMessageView.prototype.set expandable):
(WebInspector.ConsoleMessageView.prototype.expand):
(WebInspector.ConsoleMessageView.prototype.collapse):
(WebInspector.ConsoleMessageView.prototype.toggle):
Provide high level constructs for making a ConsoleMessageView
expandable, and APIs to expand/collapse.

(WebInspector.ConsoleMessageView.prototype._appendExtraParameters):
Add and style the new list of extra parameters.

(WebInspector.ConsoleMessageView.prototype._appendStackTrace):
Add and style the new list stack frames.

(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
(WebInspector.ConsoleMessageView.prototype._shouldConsiderObjectLossless):
Handling the top level message text line for all the different cases.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._startEditingTarget):
(WebInspector.DOMTreeElement.prototype._populateTagContextMenu):

  • UserInterface/Views/DOMTreeOutline.css:

(.dom-tree-outline .add-attribute): Deleted.
CSS class .add-attribute was not used. Remove all references.

(.webkit-html-fragment.shadow):
Moved from LogContentView.css to a more appropriate place.

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createObjectPreviewOrFormattedValueForRemoteObject):
Helper to create a preview or a formatted value for a given object.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._updateMessagesSelection):
(WebInspector.LogContentView.prototype._leftArrowWasPressed):
(WebInspector.LogContentView.prototype._rightArrowWasPressed):
(WebInspector.LogContentView.prototype._rightArrowWasPressed.else.outlineTitle.treeElement.onexpand): Deleted.
(WebInspector.LogContentView.prototype._propertiesSectionDidUpdateContent): Deleted.
Lots of this code no longer makes sense. Delete some and put FIXMEs
where it makes sense to re-add back useful features.

  • UserInterface/Views/ObjectPreviewView.css:

(.object-preview > .size):

  • UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:

(.object-tree-array-index .index-value .object-tree): Deleted.

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree):
Tweak styles. Opacity instead of a specific gray to better work
with other colors. Always make objects be inline-block.

  • UserInterface/Views/LogContentView.css:

(.console-error-level + .console-item):
(.console-warning-level + .console-item):
(.console-item::before):
(.console-user-command-result): Deleted.
(.console-user-command-result.console-log-level::before): Deleted.
(.console-message, .console-user-command): Deleted.
(.console-message .repeat-count): Deleted.
(.console-message-text): Deleted.
(.console-message-text > span): Deleted.
(.console-error-level): Deleted.
(.console-error-level .section .header .title): Deleted.
(.console-debug-level .console-message-text): Deleted.
(.console-debug-level::before): Deleted.
(.console-error-level::before): Deleted.
(.console-warning-level): Deleted.
(.console-warning-level .console-message-text): Deleted.
(.console-warning-level::before): Deleted.
(.console-user-command .console-message): Deleted.
(.console-user-command::before): Deleted.
(:matches(.console-warning-level, .console-error-level, .console-log-level).console-message): Deleted.
(:matches(.console-warning-level, .console-error-level, .console-log-level)::before): Deleted.
(.console-user-command > .console-message-text): Deleted.
(.console-saved-variable): Deleted.
(.console-message-url): Deleted.
(.console-group-messages .section): Deleted.
(.console-group-messages .section .header): Deleted.
(.console-group-messages .section .header::before): Deleted.
(.console-group-messages .section .header .title): Deleted.
(.console-group-messages .section .properties li .info): Deleted.
(.console-group-messages .outline-disclosure): Deleted.
(.console-group-messages .outline-disclosure > ol): Deleted.
(.console-group-messages .outline-disclosure li .selection): Deleted.
(.console-group-messages .add-attribute): Deleted.
(.error-message): Deleted.
(.auto-complete-text, .editing .auto-complete-text): Deleted.
(.outline-disclosure li.hovered:not(.selected) .selection): Deleted.
(.outline-disclosure li.highlighted .highlight): Deleted.
(.outline-disclosure li.selected.highlighted .highlight): Deleted.
(.outline-disclosure li .selection): Deleted.
(.outline-disclosure li.selected .selection): Deleted.
(.outline-disclosure li.elements-drag-over .selection): Deleted.
(.outline-disclosure ol:focus li.selected .selection): Deleted.
(.outline-disclosure ol.search-match-not-found li.selected .selection): Deleted.
(.outline-disclosure > ol): Deleted.
(.outline-disclosure, .outline-disclosure ol): Deleted.
(.outline-disclosure li): Deleted.
(.outline-disclosure .expanded li): Deleted.
(.outline-disclosure > li.parent): Deleted.
(.outline-disclosure li .webkit-html-tag.close): Deleted.
(.outline-disclosure > li.parent::before): Deleted.
(.outline-disclosure li.parent.expanded::before): Deleted.
(.outline-disclosure ol.children): Deleted.
(.outline-disclosure ol.children.expanded): Deleted.
(.webkit-html-fragment.shadow): Deleted.
Delete now unused styles and move other styles to more appropriate places.

5:00 PM Changeset in webkit [182643] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

REGRESSION (182567): regress/script-tests/sorting-benchmark.js fails on 32 bit dfg-eager tests
https://bugs.webkit.org/show_bug.cgi?id=143582

Reviewed by Mark Lam.

For 32 bit builds, we favor spilling unboxed values. The ASSERT at the root of this bug doesn't
fire for 64 bit builds, because we spill an "Other" value as a full JS value (DataFormatJS).
For 32 bit builds however, if we are able, we spill Other values as JSCell* (DataFormatCell).
The fix is to add a check in fillSpeculateInt32Internal() before the ASSERT that always OSR exits
if the spillFormat is DataFormatCell. Had we spilled in DataFormatJS and the value was a JSCell*,
we would still OSR exit after the speculation check.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Fixed an error in a comment while debugging.

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

3:09 PM Changeset in webkit [182642] by Bem Jones-Bey
  • 2 edits in trunk/Source/WebCore

Unreviewed, added CSS Shapes to features.json file.

  • features.json:
2:04 PM Changeset in webkit [182641] by rniwa@webkit.org
  • 6 edits in trunk/Websites/perf.webkit.org

Make the analysis page more useful
https://bugs.webkit.org/show_bug.cgi?id=143617

Reviewed by Chris Dumez.

  • public/api/analysis-tasks.php:

(fetch_and_push_bugs_to_tasks): Added total and finished numbers of build requests associated
with the fetched analysis tasks as buildRequestCount and finishedBuildRequestCount respectively.

  • public/v2/analysis.js:

(App.AnalysisTask.formattedCreatedAt): Added.
(App.AnalysisTask._addLeadingZero): Added.
(App.AnalysisTask.buildRequestCount): Added.
(App.AnalysisTask.finishedBuildRequestCount): Added.
(App.AnalysisTask.statusLabel): Added. Status total and finished numbers of build requests.
(App.AnalysisTask.testGroups):
(App.AnalysisTask.triggerable):
(App.AnalysisTask.label):

  • public/v2/app.css: Tweaked style rules for the analysis page.
  • public/v2/app.js:

(App.buildPopup): Sort the list of platforms by name.
(App.AnalysisRoute.model): Sort the list of analysis tasks by the order they are created.
(App.AnalysisTaskController._fetchedManifest): Added elementId to associate bug tracker names
such as "Bugzilla" with the corresponding text field.

  • public/v2/index.html: Added a bunch of columns to the analysis page and also wrapped the table

showing A/B testing results in a div with overflow: scroll so that it always leaves enough space
for the accompanying graph.

1:22 PM Changeset in webkit [182640] by timothy_horton@apple.com
  • 8 edits
    2 adds in trunk

Replace setFixedLayoutSizeEnabled: with an enum of layout modes
https://bugs.webkit.org/show_bug.cgi?id=143576

Reviewed by Simon Fraser.

  • UIProcess/API/C/WKLayoutMode.h: Added.
  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _layoutMode]):
(-[WKWebView _setLayoutMode:]):
(-[WKWebView _isFixedLayoutEnabled]): Deleted.
(-[WKWebView _setFixedLayoutEnabled:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/_WKLayoutMode.h: Added.
  • UIProcess/API/mac/WKView.mm:

(-[WKView _layoutMode]):
(-[WKView _setLayoutMode:]):
(-[WKView _isFixedLayoutEnabled]): Deleted.
(-[WKView _setFixedLayoutEnabled:]): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:

Add enums for "layout mode". Currently we have two values: "ViewSize",
which is the normal behavior, and "FixedSize", which is fixed layout mode.
More values will come in the future.

  • TestWebKitAPI/Tests/WebKit2Cocoa/FixedLayoutSize.mm:

(TEST):
Adopt.

12:39 PM Changeset in webkit [182639] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit2

_WKWebsiteDataStore doesn't track and remove offline application cache entries
https://bugs.webkit.org/show_bug.cgi?id=143614
rdar://problem/20243235

Reviewed by Andreas Kling.

  • Shared/WebsiteData/WebsiteDataTypes.h:

Add WebsiteDataTypeOfflineWebApplicationCache.

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

(dataTypesToString):

  • UIProcess/API/Cocoa/_WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataTypes):
(WebKit::toWKWebsiteDataTypes):
Add WKWebsiteDataTypeOfflineWebApplicationCache.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
Create a custom application cache storage and fetch the origins from it.

(WebKit::WebsiteDataStore::removeData):
Delete either all the cache entries (since we don't track time in the application cache),
or the ones specified by the given entries.

12:09 PM Changeset in webkit [182638] by ap@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Build fix.

  • Misc/WebNSURLExtras.mm: (-[NSString _webkit_unescapedQueryValue]): Ignore a deprecation.
12:00 PM Changeset in webkit [182637] by aestes@apple.com
  • 25 edits
    2 copies
    4 adds in trunk

[Content Filtering] Support modifying request URLs
https://bugs.webkit.org/show_bug.cgi?id=143599
rdar://problem/20442560

Reviewed by Darin Adler.

Source/WebCore:

Tests: contentfiltering/modify-request-url.html

http/tests/contentfiltering/modify-redirect-request-url.html

Allow NEFilterSource to modifiy request URLs. Also teach MockContentFilter to do the same for testing.

  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::willSendRequest): If NEFilterSource provided a string representing a
valid URL in decisionInfo[NEFilterSourceOptionsRedirectURL], then used that as the request URL.

  • platform/spi/cocoa/NEFilterSourceSPI.h: Temporarily defined NEFilterSourceOptionsRedirectURL.
  • testing/MockContentFilter.cpp:

(WebCore::MockContentFilter::willSendRequest): If settings() has a valid modifiedRequestURL, use it as the
request URL. Only do so once MockContentFilter has reached its decision point so that both initial requests and
redirect requests can be tested.

  • testing/MockContentFilterSettings.h: Added modifiedRequestURL.

(WebCore::MockContentFilterSettings::modifiedRequestURL): Ditto.
(WebCore::MockContentFilterSettings::setModifiedRequestURL): Ditto.

  • testing/MockContentFilterSettings.idl: Ditto.

LayoutTests:

  • contentfiltering/allow-after-add-data-expected.html: Changed to use pass.html.
  • contentfiltering/allow-after-finished-adding-data-expected.html: Ditto.
  • contentfiltering/allow-after-response-expected.html: Ditto.
  • contentfiltering/allow-after-will-send-request-expected.html: Ditto.
  • contentfiltering/block-after-add-data-expected.html: Ditto.
  • contentfiltering/block-after-add-data-then-allow-unblock-expected.html: Ditto.
  • contentfiltering/block-after-add-data-then-deny-unblock-expected.html: Ditto.
  • contentfiltering/block-after-finished-adding-data-expected.html: Ditto.
  • contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.html: Ditto.
  • contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.html: Ditto.
  • contentfiltering/block-after-response-expected.html: Ditto.
  • contentfiltering/block-after-response-then-allow-unblock-expected.html: Ditto.
  • contentfiltering/block-after-response-then-deny-unblock-expected.html: Ditto.
  • contentfiltering/block-after-will-send-request-expected.html: Ditto.
  • contentfiltering/block-after-will-send-request-then-allow-unblock-expected.html: Ditto.
  • contentfiltering/block-after-will-send-request-then-deny-unblock-expected.html: Ditto.
  • contentfiltering/modify-request-url-expected.html: Added.
  • contentfiltering/modify-request-url.html: Added.
  • contentfiltering/resources/fail.html: Added.
  • contentfiltering/resources/pass.html: Added.
  • http/tests/contentfiltering/allow-after-redirect-expected.html: Removed the body tag.
  • http/tests/contentfiltering/block-after-redirect-expected.html: Ditto.
  • http/tests/contentfiltering/modify-redirect-request-url-expected.html: Added.
  • http/tests/contentfiltering/modify-redirect-request-url.html: Added.
11:55 AM Changeset in webkit [182636] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Disable Linux-specific code in a Windows build
https://bugs.webkit.org/show_bug.cgi?id=137973

Patch by Milan Crha <mcrha@redhat.com> on 2015-04-10
Reviewed by Joseph Pecoraro.

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):

11:14 AM Changeset in webkit [182635] by ChangSeok Oh
  • 2 edits
    4 adds in trunk/LayoutTests

[Win] Layout Test fast/backgrounds/selection-background-color-of-list-style.html is failing
https://bugs.webkit.org/show_bug.cgi?id=143543

Reviewed by Brent Fulgham.

Added missing test results after r182546 for windows.

  • platform/win/TestExpectations:
  • platform/win/fast/backgrounds/selection-background-color-of-image-list-style-expected.png: Added.
  • platform/win/fast/backgrounds/selection-background-color-of-image-list-style-expected.txt: Added.
  • platform/win/fast/backgrounds/selection-background-color-of-list-style-expected.png: Added.
  • platform/win/fast/backgrounds/selection-background-color-of-list-style-expected.txt: Added.
11:11 AM Changeset in webkit [182634] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Fix calleeSaveRegisters() on non iOS platforms after r180516
https://bugs.webkit.org/show_bug.cgi?id=143368

Reviewed by Michael Saboff.

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::calleeSaveRegisters):

11:07 AM Changeset in webkit [182633] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

showRenderTree: Include the render object to the inlinebox output.
https://bugs.webkit.org/show_bug.cgi?id=143610

This helps to match the inlinebox and its renderer.

Reviewed by Antti Koivisto.

  • rendering/InlineBox.cpp:

(WebCore::InlineBox::showLineBox):

11:07 AM Changeset in webkit [182632] by peavo@outlook.com
  • 2 edits in trunk/Source/WebKit/win

[Win] Implement some methods in DOMHTMLDocument interface.
https://bugs.webkit.org/show_bug.cgi?id=143602

Reviewed by Alex Christensen.

  • DOMHTMLClasses.cpp:

(DOMHTMLDocument::open):
(DOMHTMLDocument::close):
(DOMHTMLDocument::write):
(DOMHTMLDocument::writeln):

10:22 AM Changeset in webkit [182631] by roger_fong@apple.com
  • 3 edits in trunk/Source/WebCore

Update wireless player placard for OSX.
https://bugs.webkit.org/show_bug.cgi?id=143585.
<rdar://problem/12067439>

Reviewed by Eric Carlson.

  • Modules/mediacontrols/mediaControlsApple.css:

Adjust button positioning and svg.
(audio::-webkit-media-controls-wireless-playback-picker-button):
(audio::-webkit-media-controls-wireless-playback-picker-button.playing):
Style the wireless playback status placard, small and big versions.
(audio::-webkit-media-controls-wireless-playback-status):
(audio::-webkit-media-controls-wireless-playback-text):
(audio::-webkit-media-controls-wireless-playback-text-top):
(audio::-webkit-media-controls-wireless-playback-text-bottom):
(audio::-webkit-media-controls-wireless-playback-status.small):
(audio::-webkit-media-controls-wireless-playback-text-top.small):
(audio::-webkit-media-controls-wireless-playback-text-bottom.small):

  • Modules/mediacontrols/mediaControlsApple.js:

Add new wireless player placard elements.
(Controller.prototype.createControls):
(Controller.prototype.configureInlineControls):
Make sure to switch between small and big placards when switching between fullscreen and small videos.
(Controller.prototype.configureFullScreenControls):
(Controller.prototype.handleFullscreenChange):
(Controller.prototype.updateWirelessPlaybackStatus):

7:31 AM Changeset in webkit [182630] by eric.carlson@apple.com
  • 37 edits
    2 adds in trunk/Source

[Mac] Refactor MediaPlaybackTarget
https://bugs.webkit.org/show_bug.cgi?id=143571

Reviewed by Jer Noble.

Source/WebCore/:

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::addPlaybackTargetPickerClient): Don't call client if page playback target

is NULL.

(WebCore::Document::didChoosePlaybackTarget): MediaPlaybackTarget is passed as a Ref<>

  • dom/Document.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setWirelessPlaybackTarget): MediaPlaybackTarget is passed as a Ref<>

  • html/HTMLMediaElement.h:
  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::HTMLMediaSession): Don't initialize m_playbackTarget.
(WebCore::HTMLMediaSession::didChoosePlaybackTarget): MediaPlaybackTarget is passed as a Ref<>

  • html/HTMLMediaSession.h:
  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::playbackTarget): m_playbackTarget is a RefPtr<MediaPlaybackTarget>
(WebCore::Page::didChoosePlaybackTarget): Ditto.

  • page/Page.h:
  • platform/audio/MediaSession.h:

(WebCore::MediaSessionClient::setWirelessPlaybackTarget): Take a Ref<MediaPlaybackTarget>&&.

Make MediaPlaybackTarget RefCounted, and don't require it to be serializable so it can be
subclassed to keep port-specific iformation out of the base class.

  • platform/graphics/MediaPlaybackTarget.h:

(WebCore::MediaPlaybackTarget::targetType):
(WebCore::MediaPlaybackTarget::targetContext):
(WebCore::MediaPlaybackTarget::hasActiveRoute):
(WebCore::MediaPlaybackTarget::MediaPlaybackTarget):
(WebCore::MediaPlaybackTarget::setDevicePickerContext): Deleted.
(WebCore::MediaPlaybackTarget::devicePickerContext): Deleted.

MediaPlaybackTargetContext is the struct that is serialized to pass across the process boudary.
It has union to hold port-specific data.

  • platform/graphics/MediaPlaybackTargetContext.h: Added.
  • platform/graphics/MediaPlaybackTargetPicker.h: didChoosePlaybackTarget takes a Ref<MediaPlaybackTarget>&&
  • platform/graphics/MediaPlaybackTargetPickerClient.h: Ditto.
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setWirelessPlaybackTarget): Ditto.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::setWirelessPlaybackTarget):

  • platform/graphics/avfoundation/MediaPlaybackTargetMac.h: Added.

(WebCore::MediaPlaybackTargetMac::targetType):
(WebCore::MediaPlaybackTargetMac::outputContext):

  • platform/graphics/avfoundation/MediaPlaybackTargetMac.mm:

(WebCore::MediaPlaybackTargetMac::create):
(WebCore::MediaPlaybackTargetMac::MediaPlaybackTargetMac):
(WebCore::MediaPlaybackTargetMac::~MediaPlaybackTargetMac):
(WebCore::MediaPlaybackTargetMac::targetContext):
(WebCore::MediaPlaybackTargetMac::hasActiveRoute):
(WebCore::toMediaPlaybackTargetMac):
(WebCore::MediaPlaybackTarget::encode): Deleted.
(WebCore::MediaPlaybackTarget::decode): Deleted.
(WebCore::MediaPlaybackTarget::hasActiveRoute): Deleted.

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

(WebCore::MediaPlaybackTargetPickerMac::currentDeviceDidChange): Allocate and pass a MediaPlaybackTargetMac

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget): Take a Ref<MediaPlaybackTarget&&

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setWirelessPlaybackTarget): Ditto.

  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::setWirelessPlaybackTarget): Ditto.

Source/WebKit2:

Pass a MediaPlaybackTargetContext across process boundary instead of a MediaPlaybackTarget.

  • Shared/WebCoreArgumentCoders.h:

(IPC::ArgumentCoder<MediaPlaybackTargetContext>::encode): New.
(IPC::ArgumentCoder<MediaPlaybackTargetContext>::decode): New.

  • Shared/mac/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<MediaPlaybackTargetContext>::encodePlatformData): New.
(IPC::ArgumentCoder<MediaPlaybackTargetContext>::decodePlatformData): New.
(IPC::ArgumentCoder<MediaPlaybackTarget>::encode): Deleted.
(IPC::ArgumentCoder<MediaPlaybackTarget>::decode): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChoosePlaybackTarget): Take a Ref<MediaPlaybackTarget>&&.

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::playbackTargetSelected): Take a Ref<MediaPlaybackTarget>&&.

Source/WebKit/mac/:

  • WebView/WebMediaPlaybackTargetPicker.h:
  • WebView/WebMediaPlaybackTargetPicker.mm:

(WebMediaPlaybackTargetPicker::didChoosePlaybackTarget): Take a Ref<MediaPlaybackTarget>&&.

4:20 AM Changeset in webkit [182629] by calvaris@igalia.com
  • 6 edits in trunk/LayoutTests

Add total test test of Streams API
https://bugs.webkit.org/show_bug.cgi?id=142682

Unreviewed.

Increased the callbacks timeouts to make tests pass in slower bots
like Yosemite Debug.

  • streams/reference-implementation/resources/streams-utils.js:

Created a standardTimeout variable with 100 as default.

  • streams/reference-implementation/readable-stream-cancel.html:
  • streams/reference-implementation/readable-stream-reader.html:
  • streams/reference-implementation/readable-stream-templated.html:
  • streams/reference-implementation/readable-stream.html: Used

standardTimeout for the test timeout callbacks.

3:51 AM Changeset in webkit [182628] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

[CSS Grid Layout] Fix raw function pointer usages
https://bugs.webkit.org/show_bug.cgi?id=143481

Reviewed by Antti Koivisto.

The argument list of
resolveContentBasedTrackSizingFunctionsForItems() became too long
and rather incomprehensible as it included up to 6 function
pointers. This replaces all of them by an enum which describes the
phase of the algorithm that is currently running. With that phase
we have enough information to select the right function to call.

In order not to tangle up too much the method, the new explicit
switch statements where moved to static helper functions.

No new tests as this is just a code refactoring.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::trackSizeForTrackSizeComputationPhase): New helper function.
(WebCore::RenderGrid::shouldProcessTrackForTrackSizeComputationPhase): Ditto.
(WebCore::RenderGrid::trackShouldGrowBeyondGrowthLimitsForTrackSizeComputationPhase): Ditto.
(WebCore::RenderGrid::updateTrackSizeForTrackSizeComputationPhase): Ditto.
(WebCore::RenderGrid::currentItemSizeForTrackSizeComputationPhase): Ditto.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::RenderGrid::distributeSpaceToTracks):

  • rendering/RenderGrid.h:
3:48 AM Changeset in webkit [182627] by adam.bergkvist@ericsson.com
  • 7 edits
    6 deletes in trunk/Source/WebCore

WebRTC: Remove AudioStreamTrack and VideoStreamTrack (removed in spec)
https://bugs.webkit.org/show_bug.cgi?id=143336

Reviewed by Philippe Normand.

The specific MediaStreamTrakc types (AudioStreamTrack and VideoStreamTrack) have been
removed from the Media Capture and Streams [1] specification.

[1] http://w3c.github.io/mediacapture-main/archives/20150324/getusermedia.html

There are no test for this feature to remove.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/mediastream/AudioStreamTrack.cpp: Removed.
  • Modules/mediastream/AudioStreamTrack.h: Removed.
  • Modules/mediastream/AudioStreamTrack.idl: Removed.
  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::addRemoteTrack):
(WebCore::MediaStream::active): Deleted.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::create):
(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::kind):
(WebCore::MediaStreamTrack::clone):
(WebCore::MediaStreamTrack::trackEnded): Deleted.

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/VideoStreamTrack.cpp: Removed.
  • Modules/mediastream/VideoStreamTrack.h: Removed.
  • Modules/mediastream/VideoStreamTrack.idl: Removed.
  • WebCore.xcodeproj/project.pbxproj:
2:23 AM Changeset in webkit [182626] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

Fix some minor typos related to the WebProcessCreationParameter.
https://bugs.webkit.org/show_bug.cgi?id=143598

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-04-10
Reviewed by Csaba Osztrogonác.

No new tests, no behavior change.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

2:00 AM Changeset in webkit [182625] by youenn.fablet@crf.canon.fr
  • 2 edits
    19 adds
    6 deletes in trunk/LayoutTests

Add total test test of Streams API
https://bugs.webkit.org/show_bug.cgi?id=142682

Reviewed by Benjamin Poulain.

This is the full test set that we have for the implementation of
Streams API. When we add more features/code the number of passing
tests will increase.

We have the tests translated from the reference implementation at
streams/reference-implementation and our own tests for some other
things at the streams upper level.

We removed testharness stacktrace in case of failure because it
dumps the filenames with paths. You can activate it for a specific
test by setting its dumpStack attribute to true.

All our former custom tests were integrated in the spec so we they
are now in their appropriate places in the reference
implementation ones. Some of them were changed to match the actual
spec and they are failing now, but we only have to progressively
fix them.

  • resources/testharnessreport.js: Avoid printing the stack in case

of test failure to be able to have failing tests as expected
unless commanded otherwise.

  • streams/readablestream-constructor-expected.txt: Removed.
  • streams/readablestream-constructor.html: Removed.
  • streams/readablestream-start-expected.txt: Removed.
  • streams/readablestream-start.html: Removed.
  • streams/readablestreamreader-constructor-expected.txt: Removed.
  • streams/readablestreamreader-constructor.html: Removed.
  • streams/reference-implementation/bad-underlying-sources-expected.txt: Added.
  • streams/reference-implementation/bad-underlying-sources.html: Added.
  • streams/reference-implementation/brand-checks-expected.txt: Added.
  • streams/reference-implementation/brand-checks.html: Added.
  • streams/reference-implementation/count-queuing-strategy-expected.txt: Added.
  • streams/reference-implementation/count-queuing-strategy.html: Added.
  • streams/reference-implementation/readable-stream-cancel-expected.txt: Added.
  • streams/reference-implementation/readable-stream-cancel.html: Added.
  • streams/reference-implementation/readable-stream-expected.txt: Added.
  • streams/reference-implementation/readable-stream-reader-expected.txt: Added.
  • streams/reference-implementation/readable-stream-reader.html: Added.
  • streams/reference-implementation/readable-stream-templated-expected.txt: Added.
  • streams/reference-implementation/readable-stream-templated.html: Added.
  • streams/reference-implementation/readable-stream.html: Added.
  • streams/reference-implementation/resources/byte-length-queuing-strategy.js: Added.
  • streams/reference-implementation/resources/count-queuing-strategy.js: Added.
  • streams/reference-implementation/resources/streams-utils.js: Added.
1:36 AM Changeset in webkit [182624] by Gyuyoung Kim
  • 5 edits in trunk

[CMake] Remove unnecessary ENABLE_WEBCORE switch
https://bugs.webkit.org/show_bug.cgi?id=143584

Reviewed by Csaba Osztrogonác.

WebCore should be built for all ports. So ENABLE_WEBCORE switch looks be redundant.
Remove it.

  • CMakeLists.txt:
  • Source/CMakeLists.txt:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/WebKitFS.cmake:
1:33 AM Changeset in webkit [182623] by aestes@apple.com
  • 14 edits in trunk/Source

[Cocoa] Add a HAVE(AVKIT) and use it
https://bugs.webkit.org/show_bug.cgi?id=143593

Reviewed by David Kilzer.

Source/WebCore:

  • page/Settings.h: Only defined setAVKitEnabled() if HAVE(AVKIT).
  • platform/ios/WebVideoFullscreenControllerAVKit.mm: Only compiled if HAVE(AVKIT).
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm: Ditto.

Source/WebKit/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Only set WebKitAVKitEnabled to YES if HAVE(AVKIT).
(-[WebPreferences setAVKitEnabled:]): Only set value for WebKitAVKitEnabled if HAVE(AVKIT).

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Only called Settings::setAVKitEnabled() if HAVE(AVKIT).

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _mayAutomaticallyShowVideoOptimized]): Returned false if !HAVE(AVKIT).

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy): Removed the check for < iOS 8.2.
(WebKit::WebPageProxy::reattachToWebProcess): Ditto.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::create): Created a version of this function that returns nullptr if
the minimum required version of iOS is less than 8.2 or if !HAVE(AVKIT).

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences): Only called Settings::setAVKitEnabled(true) if HAVE(AVKIT).

Source/WTF:

  • wtf/Platform.h: Defined HAVE(AVKIT) to be true on all Cocoa platforms except Watch OS.

Apr 9, 2015:

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

Use modern loops in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=143302

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-04-09
Reviewed by Darin Adler.

Use modern range for-loops in WebProcess.

No new tests, no behavior change.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::focusedWebPage):
(WebKit::WebProcess::webPageGroup):
(WebKit::WebProcess::setTextCheckerState):
(WebKit::WebProcess::resetAllGeolocationPermissions):

10:21 PM Changeset in webkit [182621] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Some CSS3 filters tests crash under iOS testing
https://bugs.webkit.org/show_bug.cgi?id=143594
rdar://problem/20491140

Reviewed by David Kilzer.

Some tests disable accelerated compositing via testRunner.overridePreference(). In this case,
we'd not create a root scrolling tree node, so null-check it in AsyncScrollingCoordinator::updateNonFastScrollableRegion().

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::updateNonFastScrollableRegion):

8:15 PM Changeset in webkit [182620] by Alan Bujtas
  • 46 edits
    5 adds in trunk

Simple line layout: Add <br> support.
https://bugs.webkit.org/show_bug.cgi?id=139012

This patch enables RenderBlockFlows to use simple line layout on text content when <br> is present.
Simple text with <br> is a fairly common pattern on discussion(forum)-like web pages. This patch reduces memory usage
and speeds up layout for such content.

Source/WebCore:

PerformanceTest/layout/line-layout-simple.html shows more than 2x speedup, when each paragraph is modified by appending <br> to the end.
With <br> support enabled:

mean: 70.02391461289068 runs/s
median: 70.47986488932318 runs/s

While with <br> support disabled:

mean: 30.417295049468184 runs/s
median: 30.36517778760357 runs/s

Reviewed by Antti Koivisto.

Test: fast/text/simple-line-with-br.html

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextNode):

  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::setSelectionState):
(WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderLineBreak.cpp:

(WebCore::simpleLineLayout):
(WebCore::ensureLineBoxes):
(WebCore::RenderLineBreak::deleteLineBoxesBeforeSimpleLineLayout):
(WebCore::RenderLineBreak::positionForPoint):
(WebCore::RenderLineBreak::setSelectionState):
(WebCore::RenderLineBreak::linesBoundingBox):
(WebCore::RenderLineBreak::absoluteRects):
(WebCore::RenderLineBreak::absoluteQuads):
(WebCore::RenderLineBreak::collectSelectionRects):

  • rendering/RenderLineBreak.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::absoluteRects):
(WebCore::RenderText::absoluteQuadsClippedToEllipsis):
(WebCore::RenderText::absoluteQuads):
(WebCore::RenderText::linesBoundingBox):
(WebCore::RenderText::caretMinOffset):
(WebCore::RenderText::caretMaxOffset):
(WebCore::RenderText::containsCaretOffset):
(WebCore::RenderText::hasRenderedText):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseFor):
(WebCore::SimpleLineLayout::LineState::removeTrailingWhitespace):
(WebCore::SimpleLineLayout::removeTrailingWhitespace):
(WebCore::SimpleLineLayout::consumeLineBreakIfNeeded):
(WebCore::SimpleLineLayout::skipWhitespaceIfNeeded):
(WebCore::SimpleLineLayout::firstFragment):
(WebCore::SimpleLineLayout::forceFragmentToLine):
(WebCore::SimpleLineLayout::createLineRuns):
(WebCore::SimpleLineLayout::create):

  • rendering/SimpleLineLayoutFlowContents.cpp:

(WebCore::SimpleLineLayout::initializeSegments):
(WebCore::SimpleLineLayout::FlowContents::segmentForRenderer): Deleted.

  • rendering/SimpleLineLayoutFlowContents.h:
  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::hitTestFlow):
(WebCore::SimpleLineLayout::showLineLayoutForFlow):

  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::Run::rect):
(WebCore::SimpleLineLayout::RunResolver::RunResolver):
(WebCore::SimpleLineLayout::RunResolver::rangeForRenderer):

  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::RunResolver::Iterator::inQuirksMode):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator--):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::nextTextFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::findNextTextFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::revertToFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition):

  • rendering/SimpleLineLayoutTextFragmentIterator.h:

(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isLastInRenderer):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isEmpty):
(WebCore::SimpleLineLayout::TextFragmentIterator::isSoftLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::isHardLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::isLineBreak): Deleted.

LayoutTests:

Test output changes in 2 different ways:

  1. Repositioned RenderLineBreak elements. (1px wide <br> is the result of integral pixel snapping)
  2. Removed empty content (<br>).

Reviewed by Antti Koivisto.

  • fast/text/simple-line-with-br-expected.html: Added.
  • fast/text/simple-line-with-br.html: Added.
  • platform/mac-mavericks/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/mac-mavericks/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/editing/pasteboard/5761530-1-expected.txt: Added.
  • platform/mac/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/mac/fast/dom/focus-contenteditable-expected.txt:
  • platform/mac/fast/forms/range/slider-padding-expected.txt: Added.
  • platform/mac/fast/forms/textarea-scroll-height-expected.txt:
  • platform/mac/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/mac/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/mac/fast/text/svg-font-face-with-kerning-expected.txt: Added.
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/http/tests/navigation/postredirect-basic-expected.txt:
  • platform/mac/http/tests/navigation/postredirect-goback1-expected.txt:
  • platform/mac/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
  • platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug106795-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1224-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug131020-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug131020_iframe-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1430-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug16252-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug19599-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug20579-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug32205-3-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug82946-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug92143-expected.txt:
  • platform/mac/tables/mozilla/marvin/tables_cellpadding-expected.txt:
  • platform/mac/tables/mozilla/marvin/tables_cellspacing-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug1262-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/other/test4-expected.txt:
5:39 PM Changeset in webkit [182619] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r182603): editing/selection/selection-invalid-offset.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=143591

Reviewed by Ryosuke Niwa.

Add missing null-check for m_frame->editor().client() in
FrameSelection::updateAndRevealSelection().

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::updateAndRevealSelection):

5:36 PM Changeset in webkit [182618] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught exception using console.table with filter argument
https://bugs.webkit.org/show_bug.cgi?id=143579

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

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._userProvidedColumnNames):
Reordering in the refactoring would have already converted this argument
to a RemoteObject. Assert that here instead of trying to convert.

5:30 PM Changeset in webkit [182617] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebCore

Minor cleanups to WebCore/plugins
https://bugs.webkit.org/show_bug.cgi?id=143509

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-04-09
Reviewed by Anders Carlsson.

  1. Remove unnecessary #includes.
  2. Fix some wrong namespace comments for consistency.

No new tests, no behavior change.

  • plugins/DOMMimeType.cpp:
  • plugins/DOMMimeType.h:
  • plugins/DOMMimeTypeArray.h:
  • plugins/DOMPlugin.h:
  • plugins/DOMPluginArray.h:
  • plugins/PluginData.cpp:
  • plugins/PluginData.h:
  • plugins/PluginMainThreadScheduler.cpp:
  • plugins/PluginViewBase.h:
5:21 PM Changeset in webkit [182616] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: ObjectTree Property Path tooltip has a few issues
https://bugs.webkit.org/show_bug.cgi?id=143587

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

  • UserInterface/Models/PropertyPath.js:

(WebInspector.PropertyPath.prototype.appendSymbolProperty):
(WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
Handle Symbol properties. They are treated as an impossible path
because we cannot guarentee a reference to the Symbol right now.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._rootPropertyPathForObject):
The savedResultIndex is on message.

  • UserInterface/Views/ObjectTreeMapEntryTreeElement.js:

(WebInspector.ObjectTreeMapEntryTreeElement):
(WebInspector.ObjectTreeMapKeyTreeElement):
(WebInspector.ObjectTreeMapValueTreeElement):
In order for "key" to be available setup the mainTitle after
the call to the base's constructor.

5:17 PM Changeset in webkit [182615] by Gyuyoung Kim
  • 2 edits in trunk/Tools

Update my email address and expertise.
https://bugs.webkit.org/show_bug.cgi?id=143586

Unreviewed, just update my info.

  • Scripts/webkitpy/common/config/contributors.json:
4:42 PM Changeset in webkit [182614] by mmirman@apple.com
  • 5 edits in trunk/LayoutTests

Updated expectations on a few tests to account for error
info not being added at throw time anymore.
https://bugs.webkit.org/show_bug.cgi?id=143542
rdar://problem/20475871

Reviewed by Michael Saboff.

Because sourceURL is now being appended at error construction time rather than when thrown,
the tests now attempt to append it during the code run by InspectorTest.sendCommand which I assume uses an eval.
Because this code is generated on the fly, it has no URL and thus sourceURL makes no sense.
Also since they are generated in a new locations, they will have a new lines and columns.

  • inspector-protocol/debugger/setPauseOnExceptions-all-expected.txt:
  • inspector-protocol/debugger/setPauseOnExceptions-none-expected.txt:
  • inspector-protocol/debugger/setPauseOnExceptions-uncaught-expected.txt:
  • platform/win/TestExpectations: Enabled the above tests on windows.
4:36 PM Changeset in webkit [182613] by jfernandez@igalia.com
  • 17 edits
    3 adds in trunk

[CSS Grid Layout] Implement justify-self and justify-item css properties.
https://bugs.webkit.org/show_bug.cgi?id=133281

Reviewed by David Hyatt.

Implement the new property 'justify-items', defined in the CSS Box Alignment
Source/WebCore:

specification to describe the container's alignment behavior, in the same way
the 'align-items' property does. The 'justify-self' 'auto' value of any relative
positioned element will be resolved to its container's 'justify-items' value.

Test: fast/css/parse-justify-items.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::resolveContainerAlignmentAuto): Function to resolve 'auto' values for 'align-items' or 'justify-items'.
(WebCore::resolveSelfAlignmentAuto): Function to resolve 'auto' values for 'align-self' or 'justify-self'.
(WebCore::valueForItemPositionWithOverflowAlignment): Take into account the 'legacy' keyword.
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::resolveAlignmentAuto): Deleted (renamed to resolveContainerAlignmentAuto).

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue): Refactoring to share logic between justify-xxx and align-xxx properties.
(WebCore::CSSParser::parseLegacyPosition): Parsing logic of 'legacy' keyword,
(WebCore::CSSParser::parseItemPositionOverflowPosition): Take into account the 'legacy' keyword.

  • css/CSSParser.h:
  • css/CSSPropertyNames.in:
  • css/CSSValueKeywords.in:
  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyInheritJustifyItems): Added.
(WebCore::StyleBuilderCustom::applyInitialJustifyItems): Added.
(WebCore::StyleBuilderCustom::applyValueJustifyItems): Added.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyle): Resolve 'auto' values for justify-items when parents have the 'legacy' keyword.

  • rendering/style/RenderStyle.h: Managing the new ItemPositionType fields.
  • rendering/style/RenderStyleConstants.h: Added the ItemPositionType enumeration for handling the 'legacy' keyword.
  • rendering/style/StyleRareNonInheritedData.cpp: Managing the new ItemPositionType fields.

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

specification to desribe the container's alignment behavior, in the same way
the 'align-items' property does.

  • fast/css/parse-justify-items-expected.txt: Added.
  • fast/css/parse-justify-items.html: Added.
  • fast/css/resources/alignment-parsing-utils.js: Added.

(checkValues):
(checkBadValues):
(checkInitialValues):
(checkInheritValues):
(checkLegacyValues):

4:32 PM Changeset in webkit [182612] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

Make it possible to create an application cache storage with custom directories
https://bugs.webkit.org/show_bug.cgi?id=143588

Reviewed by Sam Weinig.

Add cache directory and flat file directory name parameters to ApplicationCacheStorage::create.

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::loadCache):
(WebCore::ApplicationCacheStorage::checkForDeletedResources):
(WebCore::ApplicationCacheStorage::flatFileAreaSize):
(WebCore::ApplicationCacheStorage::ApplicationCacheStorage):
(WebCore::ApplicationCacheStorage::create):
(WebCore::ApplicationCacheStorage::singleton):

  • loader/appcache/ApplicationCacheStorage.h:
3:57 PM Changeset in webkit [182611] by rniwa@webkit.org
  • 6 edits in trunk/Websites/perf.webkit.org

Perf dashboard should automatically select ranges for A/B testing
https://bugs.webkit.org/show_bug.cgi?id=143580

Reviewed by Chris Dumez.

Added a new statistics option for picking a A/B test range selection strategy.
The selected ranges are shown in the graph using the same UI to show analysis tasks.

  • public/v2/app.js:

(App.DashboardPaneProxyForPicker._platformOrMetricIdChanged): Updated the query parameters for
charts page used by the dashboard since we've added a new parameter at the end.
(App.Pane.ranges): Added. Merges ranges created for analysis tasks and A/B testing.
(App.Pane.updateStatisticsTools): Clone and set the test range selection strategies.
(App.Pane._cloneStrategy): Copy isSegmentation.
(App.Pane._updateMovingAverageAndEnvelope): Set testRangeCandidates.
(App.Pane._movingAverageOrEnvelopeStrategyDidChange): Update the charts when a new text range
selection strategy is picked by the user.
(App.Pane._computeMovingAverageAndOutliers): Compute the test ranges using the chosen strategy.
Avoid going through isAnomalyArray when no anomaly detection strategy is enabled. Also changed
the return value from the moving average time series to a dictionary that contains the moving
average time series, a dictionary of anomalies, and an array of test ranges.
(App.ChartsController._parsePaneList): Parse the test range selection strategy configuration.
(App.ChartsController._serializePaneList): Ditto for serialization.
(App.ChartsController._scheduleQueryStringUpdate): Update the URL hash when the user picks a new
test range selection strategy.

  • public/v2/chart-pane.css: Fixed a typo as well as added a CSS rule for test ranges markers.
  • public/v2/index.html: Added UI for selecting a test range selection strategy.
  • public/v2/interactive-chart.js:

(App.InteractiveChartComponent._rangesChanged): Pass down "status" to be used as a class name.

  • public/v2/js/statistics.js:

(Statistics.MovingAverageStrategies): Added isSegmentation to segmentation strategies.
(Statistics.TestRangeSelectionStrategies): Added.

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

Track IconDatabase retain counts for WebContent processes. Balance retain/releases for processes that terminate before successfully doing it themselves.
https://bugs.webkit.org/show_bug.cgi?id=143517.

Patch by Gordon Sheridan <gordon_sheridan@apple.com> on 2015-04-09
Reviewed by Brady Eidson.

  • UIProcess/WebIconDatabase.messages.in:

Move RetainIconForPageURL and ReleaseIconForPageURL messages to WebProcessProxy so they can be associated with the appropriate web process.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::connectionDidClose):
Call releaseRemainingIconsForPageURLs() to balance retains/releases for this process.

(WebKit::WebProcessProxy::retainIconForPageURL):
Track retain counts for page URLs and call through to WebIconDatabase.

(WebKit::WebProcessProxy::releaseIconForPageURL):
Ditto.

(WebKit::WebProcessProxy::releaseRemainingIconsForPageURLs):
Call releaseIconForPageURL() once for each outstanding retain count, for each page URL.

  • UIProcess/WebProcessProxy.h:

Declare methods for retainIconForPageURL(), releaseIconForPageURL(), and releaseRemainingIconsForPageURLs().
Declare hash map to track number of retains per page URL.

  • UIProcess/WebProcessProxy.messages.in:

Moved RetainIconForPageURL and ReleaseIconForPageURL messages here from WebIconDatabase.

  • WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:

(WebKit::WebIconDatabaseProxy::retainIconForPageURL):
Modify the receiver of the message to be WebProcessProxy.

(WebKit::WebIconDatabaseProxy::releaseIconForPageURL):
Ditto.

3:36 PM Changeset in webkit [182609] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Text-combine erroneously draws vertically after non-layout-causing style change
https://bugs.webkit.org/show_bug.cgi?id=143461
<rdar://problem/19285490>

Reviewed by Darin Adler.

Source/WebCore:

RenderCombineText::styleDidChange() unconditionally uncombines its text. Layout then
recombines it. However, if there is a style change that does not cause layout, the
RenderCombineText will be left uncombined until the next layout.

Test: fast/text/text-combine-style-change-no-layout.html

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::styleDidChange):

LayoutTests:

  • fast/text/text-combine-style-change-no-layout-expected.html: Added.
  • fast/text/text-combine-style-change-no-layout.html: Added.
3:19 PM Changeset in webkit [182608] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

[WK2] Regression(r182194): The NetworkProcess is calling the wrong memory pressure handler before suspending
https://bugs.webkit.org/show_bug.cgi?id=143575
<rdar://problem/20484338>

Reviewed by Andreas Kling.

After r182194, the NetworkProcess is calling the memory pressure
handler before getting suspended to free-up as much memory as possible
at this point.

However, we were calling the default memory pressure handling code
instead of the custom handler registered by the NetworkProcess. This
patch fixes the problem.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::lowMemoryHandler):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::processWillSuspend):

  • NetworkProcess/NetworkProcess.h:
2:32 PM Changeset in webkit [182607] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r182573): Action Menus no longer appear for WebKit2 views displaying an image
rdar://problem/20486551 and https://bugs.webkit.org/show_bug.cgi?id=143574

Reviewed by Brent Fulgham.

  • Shared/WebHitTestResult.cpp:

(WebKit::WebHitTestResult::Data::Data): Clear up a name scoping issue.

1:03 PM Changeset in webkit [182606] by Joseph Pecoraro
  • 3 edits in trunk/Tools

Flakiness Dashboard not loading insecure content if loaded with https URL
https://bugs.webkit.org/show_bug.cgi?id=143570

Reviewed by Alexey Proskuryakov.

  • TestResultServer/app.yaml:
  • TestResultServer/static-dashboards/loader.js:

Switch to https scheme.

12:03 PM Changeset in webkit [182605] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Revert part of 182516: it broke tests
https://bugs.webkit.org/show_bug.cgi?id=143568
rdar://problem/20484578

Reviewed by Myles Maxfield.

Revert the FontCascadeCocoa parts of r182516, since it broke some CSS shapes tests.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::drawGlyphs):
(WebCore::dilationSizeForTextColor): Deleted.

11:57 AM Changeset in webkit [182604] by Alan Bujtas
  • 7 edits
    1 add in trunk

Simple line layout(regression): Calling innerText on RenderFlow with multiple children is slow.
https://bugs.webkit.org/show_bug.cgi?id=143554

Reviewed by Antti Koivisto.

Initialize render flow's segments only when the render flow changes in TextIterator.
The included performance test shows 6x speedup. (from ~10 runs/sec to ~60 runs/sec)

PerformanceTests:

  • Layout/simple-line-layout-innertext.html: Added.

Source/WebCore:

Test: PerformanceTests/Layout/simple-line-layout-innertext.html.

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextNode):

  • editing/TextIterator.h:
  • rendering/SimpleLineLayoutFlowContents.cpp: Instruments log shows that vector's expandCapacity could be expensive when flow has large amount of children.

(WebCore::SimpleLineLayout::initializeSegments):

11:31 AM Changeset in webkit [182603] by Chris Dumez
  • 21 edits in trunk/Source

[WK2][iOS] editorState() should not cause a synchronous layout
https://bugs.webkit.org/show_bug.cgi?id=142536
<rdar://problem/20041506>

Reviewed by Enrica Casucci.

Source/WebCore:

Add didChangeSelectionAndUpdateLayout() callback to EditorClient
that is called at the end of FrameSelection::updateAndRevealSelection().

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::updateAndRevealSelection):

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

Source/WebKit/mac:

Provide implementation for EditorClient::didChangeSelectionAndUpdateLayout().

  • WebCoreSupport/WebEditorClient.h:

Source/WebKit/win:

Provide implementation for EditorClient::didChangeSelectionAndUpdateLayout().

  • WebCoreSupport/WebEditorClient.h:

Source/WebKit2:

platformEditorState() on iOS does a synchronous layout to compute some
of the EditorState members (e.g. caretRectAtStart / caretRectAtEnd).
This is bad for performance as this is called every time the selection
is changed (which happens for e.g. when you set the value of a focused
HTMLInputElement).

This patch updates the behavior on iOS to only send a partial EditorState
on selection change so that the UIProcess gets most of the information
(the ones that do not require style recalc or layout) ASAP. A full Editor
state is then sent after the asynchronous layout is done.

With this change, I see a 38% improvement on Speedometer (26.4 +/- 0.37
-> 36.5 +/- 0.54) on iPhone 6 Plus.

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
(WebKit::EditorState::PostLayoutData::encode):
(WebKit::EditorState::PostLayoutData::decode):

  • Shared/EditorState.h:

(WebKit::EditorState::EditorState): Deleted.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _didCommitLayerTree:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(WebKit::WKSelectionDrawingInfo::WKSelectionDrawingInfo):
(-[WKContentView webSelectionRects]):
(-[WKContentView _addShortcut:]):
(-[WKContentView selectedText]):
(-[WKContentView isReplaceAllowed]):
(-[WKContentView _promptForReplace:]):
(-[WKContentView _transliterateChinese:]):
(-[WKContentView textStylingAtPosition:inDirection:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView _showDictionary:]):
(-[WKContentView _characterBeforeCaretSelection]):
(-[WKContentView _characterInRelationToCaretSelection:]):
(-[WKContentView _selectionAtDocumentStart]):
(-[WKContentView selectedTextRange]):
(-[WKContentView hasContent]):

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::didChangeSelectionAndUpdateLayout):

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState):
(WebKit::WebPage::didChangeSelection):
(WebKit::WebPage::sendPostLayoutEditorStateIfNeeded):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/efl/WebPageEfl.cpp:

(WebKit::WebPage::platformEditorState):

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformEditorState):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::platformEditorState):

9:20 AM Changeset in webkit [182602] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Network Cache: Crash in WebCore::CachedResource::tryReplaceEncodedData
https://bugs.webkit.org/show_bug.cgi?id=143562

Reviewed by Anders Carlsson.

If another thread comes and truncates the file before we map it we end up with a map that crashes when accessed.

  • NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:

(WebKit::NetworkCache::IOChannel::IOChannel):

When creating a new file unlink any existing file instead of using O_TRUNC.

9:13 AM Changeset in webkit [182601] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Give each cache group a storage and use it in place of the singleton
https://bugs.webkit.org/show_bug.cgi?id=143540

Reviewed by Sam Weinig.

This is another step towards making the cache storage be per page.

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
(WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
(WebCore::ApplicationCacheGroup::cacheForMainRequest):
(WebCore::ApplicationCacheGroup::fallbackCacheForMainRequest):
(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::makeObsolete):
(WebCore::ApplicationCacheGroup::didReachMaxAppCacheSize):
(WebCore::ApplicationCacheGroup::recalculateAvailableSpaceInQuota):
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):

  • loader/appcache/ApplicationCacheGroup.h:
  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::loadCacheGroup):
(WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):

8:42 AM Changeset in webkit [182600] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[EFL] fast/css/vertical-text-overflow-ellipsis-text-align-center.html is failing
https://bugs.webkit.org/show_bug.cgi?id=142571

Unreviewed EFL Gardening.

Rebaseline the fast/css/vertical-text-overflow-ellipsis-text-align-center.html.

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-04-09

  • platform/efl/TestExpectations:
  • platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.png:
  • platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
8:39 AM Changeset in webkit [182599] by commit-queue@webkit.org
  • 1 edit
    4 adds in trunk/LayoutTests

Unreviewed EFL gardening. Added missing results after r182546.
https://bugs.webkit.org/show_bug.cgi?id=143557

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-04-09

  • platform/efl/fast/backgrounds/selection-background-color-of-image-list-style-expected.png: Added.
  • platform/efl/fast/backgrounds/selection-background-color-of-image-list-style-expected.txt: Added.
  • platform/efl/fast/backgrounds/selection-background-color-of-list-style-expected.png: Added.
  • platform/efl/fast/backgrounds/selection-background-color-of-list-style-expected.txt: Added.
4:51 AM Changeset in webkit [182598] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[EFL][GTK] WebKit2's generate-forwarding-headers.pl runs too many times
https://bugs.webkit.org/show_bug.cgi?id=142907

Unreviewed typo fix after r182595.

  • PlatformGTK.cmake:
2:26 AM Changeset in webkit [182597] by aestes@apple.com
  • 3 edits in trunk/Source/WebCore

Try to fix the Mac build after r182596.

I was wrong to replace PLATFORM(IOS) with HAVE(PARENTAL_CONTROLS) in ContentFilterUnblockHandler.
The conditional should be HAVE(PARENTAL_CONTROLS) && PLATFORM(IOS).

  • platform/ContentFilterUnblockHandler.h:
  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:

(WebCore::ContentFilterUnblockHandler::wrapWithDecisionHandler):
(WebCore::ContentFilterUnblockHandler::needsUIProcess):
(WebCore::ContentFilterUnblockHandler::encode):
(WebCore::ContentFilterUnblockHandler::decode):
(WebCore::ContentFilterUnblockHandler::canHandleRequest):
(WebCore::ContentFilterUnblockHandler::requestUnblockAsync):

1:54 AM Changeset in webkit [182596] by aestes@apple.com
  • 7 edits in trunk/Source

[Content Filtering] Add a HAVE(PARENTAL_CONTROLS) and use it
https://bugs.webkit.org/show_bug.cgi?id=143559

Reviewed by David Kilzer.

Source/WebCore:

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::types): Only registered ParentalControlsContentFilter if HAVE(PARENTAL_CONTROLS).

  • platform/ContentFilterUnblockHandler.h: Changed PLATFORM(IOS) to HAVE(PARENTAL_CONTROLS).
  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:

(WebCore::ContentFilterUnblockHandler::wrapWithDecisionHandler): Ditto.
(WebCore::ContentFilterUnblockHandler::needsUIProcess): Ditto.
(WebCore::ContentFilterUnblockHandler::encode): Ditto.
(WebCore::ContentFilterUnblockHandler::decode): Ditto.
(WebCore::ContentFilterUnblockHandler::canHandleRequest): Ditto.
(WebCore::ContentFilterUnblockHandler::requestUnblockAsync): Ditto.

  • platform/cocoa/ParentalControlsContentFilter.mm: Wrapped the file with HAVE(PARENTAL_CONTROLS)

Source/WTF:

Added PLATFORM(WATCHOS). Used PLATFORM() since Watch OS is just a variant of OS(IOS).
Defined HAVE(PARENTAL_CONTROLS) to be true on all Cocoa platforms except Watch OS.

  • wtf/Platform.h:
1:11 AM Changeset in webkit [182595] by Csaba Osztrogonác
  • 9 edits in trunk

[EFL][GTK] WebKit2's generate-forwarding-headers.pl runs too many times
https://bugs.webkit.org/show_bug.cgi?id=142907

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • Scripts/generate-forwarding-headers.pl: Make it work with more path and platform arguments.

Tools:

  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • WebKitTestRunner/PlatformEfl.cmake:
  • WebKitTestRunner/PlatformGTK.cmake:
12:33 AM Changeset in webkit [182594] by aestes@apple.com
  • 3 edits in trunk/LayoutTests

Skip http/tests/contentfiltering/ on all the platforms that skipped contentfiltering/
https://bugs.webkit.org/show_bug.cgi?id=143460

  • platform/efl/TestExpectations:
  • platform/win/TestExpectations:
12:26 AM Changeset in webkit [182593] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, added CSS Grid Layout to features.json file.

  • features.json:
Note: See TracTimeline for information about the timeline view.