Timeline



Jul 18, 2014:

10:25 PM Changeset in webkit [171259] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] ignore requests to set volume
https://bugs.webkit.org/show_bug.cgi?id=135081

Reviewed by Jer Noble.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setVolume): Do nothing on iOS.

9:59 PM Changeset in webkit [171258] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Perf dashboard shouldn't show the full git hash
https://bugs.webkit.org/show_bug.cgi?id=135083

Reviewed by Benjamin Poulain.

Detect Git/Mercurial hash by checking the length.

If it's a hash, use the first 8 characters in the label
while retaining the full length to be used in hyperlinks.

  • public/js/helper-classes.js:

(.this.formattedRevisions):
(TestBuild):

6:30 PM Changeset in webkit [171257] by oliver@apple.com
  • 2 edits in trunk/Source/WebKit2

We don't provide an extension to the temp file used for uploads
https://bugs.webkit.org/show_bug.cgi?id=135079

Reviewed by Sam Weinig.

Make sure didChooseFilesForOpenPanelWithDisplayStringAndIcon vends
extensions for the files passed to the content process.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithDisplayStringAndIcon):

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

ASSERTion failures in ViewGestureController indicating that we're copying WebBackForwardList
https://bugs.webkit.org/show_bug.cgi?id=135080
<rdar://problem/17734714>

Reviewed by Sam Weinig.

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::canSwipeInDirection):

5:51 PM Changeset in webkit [171255] by weinig@apple.com
  • 2 edits in trunk/Tools

Revert accidental commit to MiniBrowser to make everything layer backed.

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController windowDidLoad]):

5:47 PM Changeset in webkit [171254] by dburkart@apple.com
  • 3 edits
    2 copies in branches/safari-537.78-branch

Merge r169318.

5:21 PM Changeset in webkit [171253] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

_WKActivatedElementInfo.title should fallback to innerText if the link doesn't have title attribute.
https://bugs.webkit.org/show_bug.cgi?id=135077

When populate InteractionInformationAtPosition's title value, use a link element's innerText if it
doesn't have title attribute.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2014-07-18
Reviewed by Dan Bernstein.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

5:19 PM Changeset in webkit [171252] by aestes@apple.com
  • 25 edits in trunk/Source

[iOS] Tapping "Allow Website" on a restricted page does not bring up the keypad
https://bugs.webkit.org/show_bug.cgi?id=135072
<rdar://problem/17528188>

Reviewed by David Kilzer.

Source/WebCore:
No new tests. Content filtering is not testable from WebKit.

  • WebCore.exp.in: Exported necessary ContentFilter symbols.
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::finishedLoading): Called FrameLoaderClient::contentFilterDidBlockLoad().
(WebCore::DocumentLoader::responseReceived): Created a new ContentFilter.
(WebCore::DocumentLoader::dataReceived): Called FrameLoaderClient::contentFilterDidBlockLoad().
(WebCore::DocumentLoader::setContentFilterForBlockedLoad): Deleted.
(WebCore::DocumentLoader::handleContentFilterRequest): Deleted.

  • loader/DocumentLoader.h:
  • loader/FrameLoaderClient.h:

(WebCore::FrameLoaderClient::contentFilterDidBlockLoad):

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy): Removed the check for unblock navigations, as this is now
handled at the WebKit layer.

  • platform/ContentFilter.h: ContentFilter no longer needs to be RefCounted, so made various changes in order to

make it compatible with unique_ptr.

  • platform/ios/ContentFilterIOS.mm:

(WebCore::scheme): Changed from a public member function to a static inline free function.
(WebCore::ContentFilter::handleUnblockRequestAndDispatchIfSuccessful): Renamed from requestUnblockAndDispatchIfSuccessful.

  • platform/mac/ContentFilterMac.mm:

(WebCore::ContentFilter::ContentFilter): Added a default constructor for use during message decoding.
(WebCore::ContentFilter::addData): Removed calls to ref() and deref(). These were never actually needed since
we were dispatching the block synchronously.
(WebCore::ContentFilter::finishedAddingData): Ditto.
(WebCore::ContentFilter::encode): Encoded m_platformContentFilter to the NSKeyedArchiver if it conforms to NSSecureCoding.
(WebCore::ContentFilter::decode): Decoded m_platformContentFilter from the NSKeyedUnarchiver if it conforms to NSSecureCoding.
(WebCore::ContentFilter::create): Deleted.

Source/WebKit/mac:

  • WebCoreSupport/WebFrameLoaderClient.h: Override contentFilterDidBlockLoad().
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDidStartProvisionalLoad): Reset contentFilterForBlockedLoad to nullptr.
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Check if this is navigation represents an
unblock request and ignore if so.

  • WebView/WebFrame.mm:

(-[WebFrame _contentFilterDidHandleNavigationAction:]): Called ContentFilter::handleUnblockRequestAndDispatchIfSuccessful().
If the unblock is successful, reload the main frame.

  • WebView/WebFrameInternal.h:

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.h: Declared an ArgumentCoder for WebCore::ContentFilter.
  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<ContentFilter>::encode): Encoded the ContentFilter using a NSKeyedArchiver.
(IPC::ArgumentCoder<ContentFilter>::decode): Decoded the ContentFilter using a NSKeyedUnarchiver.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame): Called WebFrameProxy::setContentFilterForBlockedLoad().

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::didStartProvisionalLoad): Reset m_contentFilterForBlockedLoad to nullptr.
(WebKit::WebFrameProxy::contentFilterDidHandleNavigationAction): Called ContentFilter::handleUnblockRequestAndDispatchIfSuccessful().
If the unblock is successful, reload the WebPageProxy.

  • UIProcess/WebFrameProxy.h:

(WebKit::WebFrameProxy::setContentFilterForBlockedLoad):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction): Check if this is navigation represents an unblock
request and ignore if so.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in: Defined ContentFilterDidBlockLoadForFrame.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::contentFilterDidBlockLoad): Sent ContentFilterDidBlockLoadForFrame to the WebPageProxy.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
5:11 PM Changeset in webkit [171251] by dburkart@apple.com
  • 2 edits in branches/safari-537.78-branch/Source/JavaScriptCore

Merge patch for <rdar://problem/16589513>

5:00 PM Changeset in webkit [171250] by Simon Fraser
  • 5 edits
    3 adds in trunk

[iOS WK2] position:fixed in iframes with programmatic scroll could end up in the wrong place
https://bugs.webkit.org/show_bug.cgi?id=135078

Source/WebCore:
<rdar://problem/17401823>

Reviewed by Tim Horton.

When the UI-side scrolling tree receives a requested scroll position update, it scrolls
the node (e.g. a frame) then traverses child nodes to update them, e.g. for fixed position.
However, we would always use a viewport rect for the main document (from the scrolling tree),
which is not appropriate for subframes. Subframes should just use their own visible
rect to position fixed children.

Test: platform/mac-wk2/tiled-drawing/scrolling/frames/fixed-inside-frame.html

  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:

(WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):

Source/WebKit2:
<rdar://problem/17401823>

Reviewed by Tim Horton.

Fix the logging of requested scroll position and frame scale factor.

  • Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:

(WebKit::RemoteScrollingTreeTextStream::dump):

LayoutTests:

Reviewed by Tim Horton.

Test with position:fixed inside an iframe that scrolls programmatically.

  • platform/mac-wk2/tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/frames/fixed-inside-frame.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/frames/resources/autoscrolling-frame-with-fixed.html: Added.
4:57 PM Changeset in webkit [171249] by jhoneycutt@apple.com
  • 1 edit
    1 add in trunk

Add a manual test for r135044

<https://bugs.webkit.org/show_bug.cgi?id=135044>

Rubber-stamped by Andy Estes.

  • ManualTests/ios/typing-in-field-that-clears-on-keyup.html: Added.
3:50 PM Changeset in webkit [171248] by Lucas Forschler
  • 2 edits in tags/Safari-538.46.41/Source/WebCore

Merged r171215. <rdar://problem/17721209>

3:39 PM Changeset in webkit [171247] by dburkart@apple.com
  • 8 edits in trunk

Add a new 'analyze' target to the makefile. This will make use of a new
'PATH_TO_SCAN_BUILD' which, if set will wrap xcodebuild in the clang
static analyzer.
https://bugs.webkit.org/show_bug.cgi?id=135057
<rdar://problem/10193187>

Reviewed by David Kilzer.

  • Makefile:
  • Makefile.shared:
  • Source/Makefile:
3:24 PM Changeset in webkit [171246] by Beth Dakin
  • 3 edits in trunk/Source/WebCore

Fixed position elements are misplaced when a WK1 view has contentInsets set
https://bugs.webkit.org/show_bug.cgi?id=135031
-and corresponding-
<rdar://problem/17682335>

Reviewed by Tim Horton.

[NSScrollView documentVisibleRect] includes content that is within the inset-area
of a view, but WebCore is interested in the content that is fully visible, so we
need to factor the inset sizes out of this rect.

Implement contract() to avoid the awkwardness of calling expand() with negative
values.

  • platform/graphics/IntSize.h:

(WebCore::IntSize::contract):

Factor out insets

  • platform/mac/ScrollViewMac.mm:

(WebCore::ScrollView::platformVisibleContentRect):
(WebCore::ScrollView::platformVisibleContentSize):

3:08 PM Changeset in webkit [171245] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Fix EFL+GTK.

  • Scripts/run-jsc-stress-tests:
2:30 PM Changeset in webkit [171244] by Lucas Forschler
  • 2 edits in tags/Safari-538.46.41/Source/WebCore

Rollout r171236. <rdar://problem/17721209>

2:26 PM Changeset in webkit [171243] by Lucas Forschler
  • 5 edits in tags/Safari-538.46.41/Source

Versioning.

1:58 PM Changeset in webkit [171242] by ap@apple.com
  • 2 edits in trunk/LayoutTests

media/video-seek-with-negative-playback.html is flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=135071

  • platform/mac/TestExpectations: Marked it as such.
1:54 PM Changeset in webkit [171241] by fpizlo@apple.com
  • 5 edits in trunk

Exception fuzzing should work on iOS
https://bugs.webkit.org/show_bug.cgi?id=135070

Reviewed by Mark Hahnenberg.

Source/JavaScriptCore:

  • tests/exceptionFuzz.yaml:

Tools:

  • Scripts/jsc-stress-test-helpers/js-exception-fuzz:

(fail):

  • Scripts/run-jsc-stress-tests:
1:50 PM Changeset in webkit [171240] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[Cocoa] Use RetainPtr in _WKRemoteObjectInterface
https://bugs.webkit.org/show_bug.cgi?id=135062

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-18
Reviewed by Anders Carlsson.

Switch to RetainPtr instead of manual memory management of ivars.

  • Shared/API/Cocoa/_WKRemoteObjectInterface.h:
  • Shared/API/Cocoa/_WKRemoteObjectInterface.mm:

(-[_WKRemoteObjectInterface initWithProtocol:identifier:]):
(-[_WKRemoteObjectInterface identifier]):
(-[_WKRemoteObjectInterface description]):
(-[_WKRemoteObjectInterface dealloc]): Deleted.

1:34 PM Changeset in webkit [171239] by timothy_horton@apple.com
  • 15 edits in trunk/Source

Take navigation snapshots whenever the current back-forward item is going to change
https://bugs.webkit.org/show_bug.cgi?id=135058
<rdar://problem/17464515>

Reviewed by Dan Bernstein.

Instead of trying to have the UI process figure out when to take navigation snapshots by itself,
snapshot whenever the Web process says that the current back-forward item is going to change.
This fixes snapshotting timing with pushState, and lets us bottleneck snapshotting down to
just two places instead of 5.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::goForward):
(WebKit::WebPageProxy::goBack):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
We no longer need to special-case taking navigation snapshots
when the UI process changes the back forward item or upon
didStartProvisionalLoadForFrame, because we'll always snapshot
in willChangeCurrentHistoryItem in all of these cases.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willChangeCurrentHistoryItem):

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

Add willChangeCurrentHistoryItem message, which comes from the Web process.
When it arrives, take a navigation snapshot.

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
Take the pre-swipe navigation snapshot before telling WebPageProxy that we're doing a swipe,
so that it doesn't bail from taking the snapshot because we have a snapshot up.

(WebKit::ViewGestureController::endSwipeGesture):
We no longer need to explicitly disable snapshotting while navigating, because
we will avoid taking the snapshot if there's a snapshot being displayed.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::~ViewGestureController):
Remove the snapshot if it's still up when ViewGestureController is destroyed.
The Mac version of ViewGestureController is destroyed on Web process crashes
because it is a message receiver, so it is not guaranteed to have the same
lifetime as the WebPageProxy and friends.

(WebKit::ViewGestureController::trackSwipeGesture):
Make use of recordNavigationSnapshot.

(WebKit::ViewGestureController::endSwipeGesture):
Ditto from the Mac version.

  • UIProcess/mac/ViewSnapshotStore.h:

(WebKit::ViewSnapshotStore::disableSnapshotting): Deleted.
(WebKit::ViewSnapshotStore::enableSnapshotting): Deleted.

  • UIProcess/mac/ViewSnapshotStore.mm:

(WebKit::ViewSnapshotStore::ViewSnapshotStore):
(WebKit::ViewSnapshotStore::recordSnapshot):
Remove the snapshot disabling mechanism and bail from snapshotting if we're
showing a snapshot, as mentioned above.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::willChangeCurrentHistoryItem):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::willChangeCurrentHistoryItem):

  • WebProcess/WebPage/WebPage.h:

Proxy willChangeCurrentHistoryItem from HistoryController to the UI process.

  • loader/HistoryController.cpp:

(WebCore::HistoryController::updateForCommit):
(WebCore::HistoryController::recursiveUpdateForCommit):
(WebCore::HistoryController::recursiveUpdateForSameDocumentNavigation):
(WebCore::HistoryController::createItem):
Use setCurrentItem instead of duplicating the contents of it inside each of these functions.

(WebCore::HistoryController::setCurrentItem):
(WebCore::HistoryController::replaceCurrentItem):
When setting or replacing the current item, let the FrameLoaderClient know that we're going
to change which history item is "current".

  • loader/FrameLoaderClient.h:

(WebCore::FrameLoaderClient::willChangeCurrentHistoryItem): Added.

12:41 PM Changeset in webkit [171238] by fpizlo@apple.com
  • 2 edits in trunk/Tools

run-jsc-stress-tests should be able to run helper-based tests in remote mode
https://bugs.webkit.org/show_bug.cgi?id=135064

Reviewed by Mark Hahnenberg.

  • Scripts/run-jsc-stress-tests:
12:29 PM Changeset in webkit [171237] by fpizlo@apple.com
  • 2 edits in trunk/Tools

run-jsc-stress-tests: rename $copy to $doNotMessWithVMPath
https://bugs.webkit.org/show_bug.cgi?id=135061

Rubber stamped by Mark Hahnenberg.

  • Scripts/run-jsc-stress-tests:
12:17 PM Changeset in webkit [171236] by Lucas Forschler
  • 2 edits in tags/Safari-538.46.41/Source/WebCore

Merged r171215. <rdar://problem/17721209>

12:15 PM Changeset in webkit [171235] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1-branch/Source/WebKit2

Merged r171209. <rdar://problem/17720696>

12:13 PM Changeset in webkit [171234] by bshafiei@apple.com
  • 2 edits in tags/Safari-600.1.1.1/Source/WebKit2

Merged r171209. <rdar://problem/17720696>

12:13 PM Changeset in webkit [171233] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Refactor run-jsc-stress-tests VM copying code to remove some abstractions
https://bugs.webkit.org/show_bug.cgi?id=135059

Reviewed by Mark Lam.

This is meant to make it easier for me to extend the copying functionality to copy things other than
the framework.

  • Scripts/run-jsc-stress-tests:
12:08 PM Changeset in webkit [171232] by bshafiei@apple.com
  • 5 edits in tags/Safari-600.1.1.1/Source

Versioning.

11:58 AM Changeset in webkit [171231] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.1.1

New tag.

11:55 AM Changeset in webkit [171230] by Lucas Forschler
  • 5 edits in tags/Safari-538.46.41/Source

Versioning.

11:50 AM Changeset in webkit [171229] by Lucas Forschler
  • 1 copy in tags/Safari-538.46.41

New Tag.

11:41 AM Changeset in webkit [171228] by fpizlo@apple.com
  • 4 edits in trunk

Fix cloop build.

Source/JavaScriptCore:

  • jsc.cpp:

(jscmain):

Tools:

  • Scripts/jsc-stress-test-helpers/js-exception-fuzz:
11:20 AM Changeset in webkit [171227] by timothy@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Revert r169735 since it broke Timeline, and fix bug 129696 in a more targeted way.

REGRESSION (r169735): Web Inspector: Timeline tree outline missing data until collapse-expand.
https://bugs.webkit.org/show_bug.cgi?id=134845

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype.adjustCollapsedRange): Use button isteand of assuming
item.listItemElement will be ready to use. The listItemElement node is lazily created.

  • UserInterface/Views/TreeOutline.js:

(TreeOutline.prototype.appendChild): Don't attach unless _childrenListNode exists.
(TreeOutline.prototype.insertChild): Ditto.

11:01 AM Changeset in webkit [171226] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Add timeout for transition end. Speculative layout test fix.

  • fast/layers/no-clipping-overflow-hidden-added-after-transform.html:
10:21 AM Changeset in webkit [171225] by jhoneycutt@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION: Crash when typing into text field that clears itself on iOS

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

Reviewed by Darin Adler.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestAutocorrectionData):
wordRangeFromPosition() returns null in some cases; null check range
before dereferencing it. Moved some variable declarations around to
better match our style.

10:14 AM Changeset in webkit [171224] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

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

Broke multiple tests on Yosemite (Requested by ap on #webkit).

Reverted changeset:

"Fixed position elements are misplaced when a WK1 view has
contentInsets set"
https://bugs.webkit.org/show_bug.cgi?id=135031
http://trac.webkit.org/changeset/171207

10:01 AM Changeset in webkit [171223] by mario@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed gardening. Removing failure expectations for tests now passing.

  • platform/gtk/TestExpectations: Removed failure expectations.
9:53 AM Changeset in webkit [171222] by commit-queue@webkit.org
  • 9 edits
    2 deletes in trunk

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

Made fast/dom/HTMLObjectElement/beforeload-set-text-
crash.xhtml crash (Requested by ap on #webkit).

Reverted changeset:

"REGRESSION (r169105): Crash in selection"
https://bugs.webkit.org/show_bug.cgi?id=134303
http://trac.webkit.org/changeset/171218

8:23 AM Changeset in webkit [171221] by mario@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed GTK gardening. Tests passing after SVN r171001

  • platform/gtk/TestExpectations: Removed tests that are now passing.
7:37 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
7:12 AM Changeset in webkit [171220] by commit-queue@webkit.org
  • 2 edits in trunk/Tools
Fix -vverbose option in sort-export-file script.

https://bugs.webkit.org/show_bug.cgi?id=135043

Patch by Renato Nagy <nagy.renato@stud.u-szeged.hu> on 2014-07-18
Reviewed by Tim Horton.

-vverbose option does not work. Option added to getOptionsResult.
  • Scripts/sort-export-file:
6:41 AM Changeset in webkit [171219] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebKit2

[WK2] Provide a mechanism to grab the back-forward list for gesture navigation purposes from another WKWebView
https://bugs.webkit.org/show_bug.cgi?id=134999
<rdar://problem/17238025>

Reviewed by Sam Weinig.

In some cases, clients may need to throw a WKWebView with no back-forward list over
another WKWebView, and want to participate in gesture swipe as if they were actually
the page being overlaid.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setAllowsBackForwardNavigationGestures:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _alternateWebViewForNavigationGestures]):
(-[WKWebViewConfiguration _setAlternateWebViewForNavigationGestures:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:

Keep an "alternate" WKWebView "for navigation gestures", which ViewGestureController
will use as the real source of back-forward items, and the destination of the swipe navigation.
All swipe delegate callbacks will also fire from the alternate view, because it owns the items
and will be doing the navigation.

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::setAlternateBackForwardListSourceView):
(WebKit::ViewGestureController::beginSwipeGesture):
Send navigationGestureDidBegin via the alternate view's WebPageProxy if it exists.
Record a new snapshot on the current page, but copy it to the alternate view if necessary,
so that when swiping forward from the alternate view, it will have the "right" snapshot.
Get the target back forward item from the alternate view.
Send navigationGestureWillEnd via the alternate view's WebPageProxy if it exists.

(WebKit::ViewGestureController::canSwipeInDirection):
Determine if we can swipe in a direction by looking at the alternate view's back-forward list if necessary.

(WebKit::ViewGestureController::endSwipeGesture):
Send navigationGestureDidEnd via the alternate view's WebPageProxy if it exists.
Perform the navigation on the alternate view if necessary.

(WebKit::ViewGestureController::removeSwipeSnapshot):
Send navigationGestureSnapshotWasRemoved via the alternate view's WebPageProxy if it exists.

  • UIProcess/mac/ViewGestureController.h:
2:50 AM Changeset in webkit [171218] by krit@webkit.org
  • 9 edits
    2 adds in trunk

REGRESSION (r169105): Crash in selection
https://bugs.webkit.org/show_bug.cgi?id=134303

Patch by Radu Stavila <stavila@adobe.com> on 2014-07-18
Reviewed by Ryosuke Niwa.

Source/WebCore:
When splitting the selection between different subtrees, all subtrees must have their selection cleared before
starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
we get inconsistent data.

To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
method first iterates through all subtrees and performs the "clear" method and then starts all over again
and performs the "apply" method.

Also, the selectionStart/End members in RenderView have been renamed to fix problems caused by the fact that
RenderView inherits SelectionSubtreeRoot, which also has the same selectionStart/End members.

Test: fast/regions/selection/crash-deselect.html

  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::isSelectionRoot):

  • rendering/RenderSelectionInfo.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::RenderView):
(WebCore::RenderView::setSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
(WebCore::RenderView::splitSelectionBetweenSubtrees):
(WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
(WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
(WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
(WebCore::RenderView::getSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
(WebCore::RenderView::setSubtreeSelection): Deleted.

  • rendering/RenderView.h:
  • rendering/SelectionSubtreeRoot.cpp:

(WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):

  • rendering/SelectionSubtreeRoot.h:

(WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):

LayoutTests:
Added test for the crash that occurred in some cases when selecting.

  • fast/regions/selection/crash-deselect-expected.txt: Added.
  • fast/regions/selection/crash-deselect.html: Added.
12:13 AM Changeset in webkit [171217] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Really remove dependency on ShellQuote.

  • Scripts/jsc-stress-test-helpers/js-exception-fuzz:
12:11 AM Changeset in webkit [171216] by fpizlo@apple.com
  • 3 edits in trunk/Tools

Unreviewed, fix build for platforms that don't have ShellQuote.

  • Scripts/jsc-stress-test-helpers/js-exception-fuzz: Take a single argument that has the whole command string.
  • Scripts/run-jsc-stress-tests: Do the escaping in Ruby.

Jul 17, 2014:

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

[MSE] Re-enqueue after a removeCodedFrames() only if the removed frames overlap what may have possibly been enqueued but undisplayed.
https://bugs.webkit.org/show_bug.cgi?id=135039

Reviewed by Eric Carlson.

When a client calls removeCodedFrames(), we must re-enqueue those ranges if the removed samples overlap with
enqueued but possibly un-displayed samples. Otherwise, replacement samples may lead to decode errors as those
new samples dependencies are not met. But if we re-enqueue too frequently, this may cause subtle but noticible
display timing glitches, so only re-enqueue when removeCodedFrames have a possiblity of removing enqueued, but
not yet displayed samples.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::removeCodedFrames):

10:55 PM Changeset in webkit [171214] by fpizlo@apple.com
  • 3 edits
    2 adds in branches/ftlopt/Source/JavaScriptCore

[ftlopt] DFG Flush(SetLocal) store elimination is overzealous for captured variables in the presence of nodes that have no effects but may throw (merge trunk r171190)
https://bugs.webkit.org/show_bug.cgi?id=135019

Reviewed by Oliver Hunt.

Behaviorally, this is just a merge of trunk r171190, except that the relevant functionality
has moved to StrengthReductionPhase and is written in a different style. Same algorithm,
different code.

  • dfg/DFGNodeType.h:
  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • tests/stress/capture-escape-and-throw.js: Added.

(foo.f):
(foo):

  • tests/stress/new-array-with-size-throw-exception-and-tear-off-arguments.js: Added.

(foo):
(bar):

9:34 PM Changeset in webkit [171213] by fpizlo@apple.com
  • 18 edits
    6 adds in trunk

Need ability to fuzz exception throwing
https://bugs.webkit.org/show_bug.cgi?id=134945
<rdar://problem/17722027>

Reviewed by Sam Weinig.

Source/JavaScriptCore:
Adds the ability to instrument exception checks, and to force some random
exception check to artificially throw an exception. Also adds new tests that
are suitable for testing this. Note that this is closely tied to the Tools
directory changes that are also part of this changeset.

This also fixes an activation tear-off bug that arises if we ever throw an
exception from operationOptimize, or if due to some other bug it's only due
to the operationOptimize exception check that we realize that there is an
exception to be thrown.

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::fastExceptionCheck):

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

(JSC::FTL::LowerDFGToLLVM::callCheck):

  • interpreter/Interpreter.cpp:

(JSC::unwindCallFrame):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::callExceptionFuzz):
(JSC::AssemblyHelpers::emitExceptionCheck):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitExceptionCheck): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_enter):

  • jit/JITOperations.cpp:

(JSC::numberOfExceptionFuzzChecks):

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

(jscmain):

  • runtime/Options.h:
  • runtime/TestRunnerUtils.h:
  • tests/exceptionFuzz.yaml: Added.
  • tests/exceptionFuzz: Added.
  • tests/exceptionFuzz/3d-cube.js: Added.
  • tests/exceptionFuzz/date-format-xparb.js: Added.
  • tests/exceptionFuzz/earley-boyer.js: Added.

Tools:
Adds a new script, js-exception-fuzz, which will run some jsc command-line using
exception fuzzing. This means that we will force exceptions to be thrown in random
places to see how the engine reacts. This is now integrated with the various test
drivers, so run-javascriptcore-tests will run some exception fuzzing tests by
default.

  • Scripts/jsc-stress-test-helpers/js-exception-fuzz: Added.

(fail):

  • Scripts/run-javascriptcore-tests:
  • Scripts/run-jsc-stress-tests:
8:59 PM Changeset in webkit [171212] by ddkilzer@apple.com
  • 21 edits
    1 delete in trunk/Source

SECTORDER_FLAGS should be defined in target's xcconfig file, not Base.xcconfig
<http://webkit.org/b/135006>

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig: Move SECTORDER_FLAGS to

JavaScriptCore.xcconfig.

  • Configurations/CompileRuntimeToLLVMIR.xcconfig: Remove empty

SECTORDER_FLAGS definition.

  • Configurations/DebugRelease.xcconfig: Ditto.
  • Configurations/JavaScriptCore.xcconfig: Use $(CONFIGURATION)

so SECTORDER_FLAGS is only set on Production builds.

Source/WebCore:

  • Configurations/Base.xcconfig: Move SECTORDER_FLAGS to

WebCore.xcconfig.

  • Configurations/DebugRelease.xcconfig: Remove empty

SECTORDER_FLAGS definition.

  • Configurations/WebCoreTestShim.xcconfig: Ditto.
  • Configurations/WebCoreTestSupport.xcconfig: Ditto.
  • Configurations/WebCore.xcconfig: Use $(CONFIGURATION) so

SECTORDER_FLAGS is only set on Production builds.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj: Remove references to unused

WebKit.xcconfig file.

Source/WebKit/mac:

  • Configurations/Base.xcconfig: Move SECTORDER_FLAGS to

WebKitLegacy.xcconfig.

  • Configurations/DebugRelease.xcconfig: Remove empty

SECTORDER_FLAGS definition.

  • Configurations/WebKit.xcconfig: Removed. Unused.
  • Configurations/WebKitLegacy.xcconfig: Use $(CONFIGURATION) so

SECTORDER_FLAGS is only set on Production builds.

Source/WebKit2:

  • Configurations/Base.xcconfig: Move SECTORDER_FLAGS to

WebKit.xcconfig.

  • Configurations/DebugRelease.xcconfig: Remove empty

SECTORDER_FLAGS definition.

  • Configurations/WebKit.xcconfig: Use $(CONFIGURATION) so

SECTORDER_FLAGS is only set on Production builds.

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

REGRESSION (r171167): LoaderClient processDidCrash call is made after load state changes
https://bugs.webkit.org/show_bug.cgi?id=135032
<rdar://problem/17716602>

Reviewed by Dan Bernstein.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::processDidCrash): Create a transaction, so that the nested
transaction in resetStateAfterProcessExited() wouldn't be committed.
(WebKit::WebPageProxy::resetStateAfterProcessExited): Don't use auto - it was hiding
the most important fact that this is a stack object that can't be simply moved to
a different function.

6:56 PM Changeset in webkit [171210] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Subpixel rendering: Embedded non-compositing rotate transform paints to wrong position.
https://bugs.webkit.org/show_bug.cgi?id=135028

Reviewed by Simon Fraser.

CTM always translates to where the layer's renderer() is going to paint.
It ensures that the pixel snapped renderer() always end up painting to (0, 0) which is
required to be able to position properly on transformed context.

Source/WebCore:
Test: fast/layers/hidpi-transform-on-child-content-is-mispositioned.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::clipToRect):
(WebCore::RenderLayer::paintLayerByApplyingTransform):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLayer.h:

LayoutTests:

  • fast/layers/hidpi-transform-on-child-content-is-mispositioned-expected.html: Added.
  • fast/layers/hidpi-transform-on-child-content-is-mispositioned.html: Added.
6:16 PM Changeset in webkit [171209] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS][WK2] Fix the updateVisibleContentRects synchronization for load after r171154
https://bugs.webkit.org/show_bug.cgi?id=135036

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-17
Reviewed by Dan Bernstein.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):
I forgot to update one of the condition after changing from lastTransaction to next transaction
in r171154.

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

Disable live-out calculation for stackmap intrinsics.
https://bugs.webkit.org/show_bug.cgi?id=134366

The live-out variables are not required for the stackmaps, because we
don't care about preserving the state when we perform destructive
patching.

Patch by Juergen Ributzka <juergen@apple.com> on 2014-07-17
Reviewed by Filip Pizlo.

  • llvm/library/LLVMExports.cpp:

(initializeAndGetJSCLLVMAPI):

4:49 PM Changeset in webkit [171207] by Beth Dakin
  • 3 edits in trunk/Source/WebCore

Fixed position elements are misplaced when a WK1 view has contentInsets set
https://bugs.webkit.org/show_bug.cgi?id=135031
-and corresponding-
<rdar://problem/17682335>

Reviewed by Tim Horton.

[NSScrollView documentVisibleRect] is not the rect that we are looking for when
this function is called. WebCore is interested in the rect that does not include
content that is within the inset region.

Implement contract() to avoid the awkwardness of calling expand() with negative
values.

  • platform/graphics/IntSize.h:

(WebCore::IntSize::contract):

Use _insetBounds instead of documentVisibleRect, and when it’s necessary to use
the frame’s dimensions, extract the inset from that size.

  • platform/mac/ScrollViewMac.mm:

(WebCore::ScrollView::platformVisibleContentRect):
(WebCore::ScrollView::platformVisibleContentSize):

4:39 PM Changeset in webkit [171206] by Lucas Forschler
  • 6 edits in branches/safari-600.1-branch

Rollout of r171167. <rdar://problem/17716602>

4:37 PM Changeset in webkit [171205] by Lucas Forschler
  • 6 edits in tags/Safari-600.1.1

Rollout r171167. <rdar://problem/17716602>

4:30 PM Changeset in webkit [171204] by Joseph Pecoraro
  • 2 edits in trunk/Source/JavaScriptCore

Follow-up fix to r171195 to prevent ASSERT in fast/profiler/profile-with-no-title.html

Rubber-stamped by Alexey Proskuryakov.

Null / empty titles should be fine. Tests pass in release builds
which allowed empty titles, and it looks like the LegacyProfiler
stopProfiling handles empty titles as expected already.

  • profiler/LegacyProfiler.cpp:

(JSC::LegacyProfiler::startProfiling):

3:46 PM Changeset in webkit [171203] by enrica@apple.com
  • 7 edits in trunk/Source

[REGRESSION WK2]The menu bar does not show up when tapping on the caret.
https://bugs.webkit.org/show_bug.cgi?id=135023
<rdar://problem/17617282>

../WebCore:
Reviewed by Benjamin Poulain.

Adding some exports.

  • WebCore.exp.in:

../WebKit2:
Reviewed by Benjamin Poulain and Ryosuke Niwa.

WKContentView needs to implement hasContent to correctly show
the appropriate menu bar content. The patch adds this information
to the EditorState.

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode):
(WebKit::EditorState::decode):

  • Shared/EditorState.h:

(WebKit::EditorState::EditorState):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView hasContent]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState):

3:08 PM Changeset in webkit [171202] by Lucas Forschler
  • 5 edits in branches/safari-537.78-branch/Source

Versioning.

3:08 PM Changeset in webkit [171201] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS][WK2] Add SPI to do a dynamic viewport update without showing any content
https://bugs.webkit.org/show_bug.cgi?id=135010

Reviewed by Darin Adler.

This patch add a new SPI, [WKWebView _resizeWhileHidingContentWithUpdates:] to perform all the work
of a dynamic viewport size update, but instead of animating the old content, it is hidden.

The patch is built on top of the animated resize mechanism. Instead of having an animation driving
the beginning and end, we let the content do that. The dynamic resize begins, it runs for as long as
the WebProcess needs, and it ends when first layer tree commit with the new content is processed.

The attribute "_isAnimatingResize" is generalized to support two modes of resizing: animated and
hiding content.

The attribute "_hasCommittedLoadForMainFrame" is rather silly. It is only needed because
[WKWebView _resizeWhileHidingContentWithUpdates:] is intended to be called a lot before the page
is initialized, and doing an animated resize would trash the WebProcess state.
I wish I had a better solution, this is not great.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _processDidExit]):
(-[WKWebView _didCommitLoadForMainFrame]):
(-[WKWebView _didCommitLayerTree:]):
This is the key to make this work properly. We want _resizeWhileHidingContentWithUpdates: to behave
exactly like an animated resize to avoid bugs. So we went to the whole update mechanism using
_resizeAnimationTransformAdjustments to accumulate the adjustments, now we need to restore a correct
view state.

Calling [WKWebView _endAnimatedResize] will do exactly that, but we need to make sure we do not hit
the synchronization path or we would be blocked there for a while, which is what we are trying to avoid.

After r171154, WebPageProxy keeps track of what stage of dynamic viewport update we are in. Since we are
executing the layer tree update stage, with the right transaction ID, WebPageProxy already knows we have
everything we need and does not use any synchronous messages.

(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:nextValidLayerTreeTransactionID:]):
(-[WKWebView _restorePageStateToExposedRect:scale:]):
(-[WKWebView _restorePageStateToUnobscuredCenter:scale:]):
(-[WKWebView _scrollToContentOffset:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _setMinimumLayoutSizeOverride:]):
(-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
(-[WKWebView _setInterfaceOrientationOverride:]):
(-[WKWebView _setMaximumUnobscuredSizeOverride:]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _resizeWhileHidingContentWithUpdates:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
3:02 PM Changeset in webkit [171200] by Lucas Forschler
  • 1 copy in branches/safari-537.78-branch

New Branch.

2:38 PM Changeset in webkit [171199] by weinig@apple.com
  • 3 edits in trunk/Tools

Fix failing API tests.

  • TestWebKitAPI/mac/PlatformWebViewMac.mm:

(-[ActiveOffscreenWindow isVisible]):
Override isVisible to make the NSWindows pretend they are visible.

2:33 PM Changeset in webkit [171198] by ap@apple.com
  • 3 edits in trunk/LayoutTests

fast/repaint/obscured-background-no-repaint.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=131477

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

Moved the expectation out of WK2, as this also happens with WK1 on some bots.

2:27 PM Changeset in webkit [171197] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

[Mac] Full screen video not always animating in the correct Space
https://bugs.webkit.org/show_bug.cgi?id=135020
<rdar://problem/17542310>

Reviewed by Dean Jackson.

The fullscreen window can "remember" the Space it was part of the first time you enter fullscreen
mode. Subsequent fullscreen transitions will always start from this Space, even if you move
the WebKit-hosted application to a different Space.

We can help the display system know when we've moved to a new Space by calling NSWindow's
'orderBack' method on the fullscreen window prior to starting the transition to fullscreen mode.
This method call hooks the window into the current Space so everything works properly.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): Add the
new fullscreen window to the current Space before starting transition to fullscreen.

2:27 PM Changeset in webkit [171196] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Remove inspector-protocol/profiler tests from TestExpectations, now that they no
longer exist.

  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
2:16 PM Changeset in webkit [171195] by timothy@apple.com
  • 27 edits
    1 add
    1 delete in trunk

Make console.profile record to the Timeline.

https://bugs.webkit.org/show_bug.cgi?id=134643

Reviewed by Joseph Pecoraro.

Source/WebCore:
Passes existing profiler tests in fast/profiler.

  • bindings/js/ScriptState.cpp:

(WebCore::domWindowFromExecState):
(WebCore::frameFromExecState):
(WebCore::scriptExecutionContextFromExecState):
(WebCore::mainWorldExecState):
(WebCore::execStateFromNode):

  • bindings/js/ScriptState.h:
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::profilerEnabled):
(WebCore::InspectorController::setProfilerEnabled):

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

(WebCore::InspectorInstrumentation::startProfilingImpl):
(WebCore::InspectorInstrumentation::stopProfilingImpl):

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):
(WebCore::startProfiling):
(WebCore::stopProfiling):
(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):
(WebCore::InspectorTimelineAgent::didWriteHTML):
(WebCore::InspectorTimelineAgent::breakpointActionProbe):
(WebCore::toProtocol):
(WebCore::InspectorTimelineAgent::addRecordToTimeline):
(WebCore::InspectorTimelineAgent::didCompleteRecordEntry):
(WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::sendEvent):
(WebCore::InspectorTimelineAgent::createRecordEntry):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):

  • inspector/InspectorTimelineAgent.h:

(WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):

  • inspector/InstrumentingAgents.cpp:

(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::reset):

  • inspector/InstrumentingAgents.h:

(WebCore::InstrumentingAgents::persistentInspectorTimelineAgent):
(WebCore::InstrumentingAgents::setPersistentInspectorTimelineAgent):

  • inspector/TimelineRecordFactory.cpp:

(WebCore::TimelineRecordFactory::createConsoleProfileData):

  • inspector/TimelineRecordFactory.h:
  • inspector/protocol/Timeline.json:
  • page/PageConsole.cpp:

(WebCore::PageConsole::profileEnd):

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.stopCapturing):
(WebInspector.TimelineManager.prototype.capturingStarted):
(WebInspector.TimelineManager.prototype.capturingStopped):
(WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
(WebInspector.TimelineManager.prototype.eventRecorded):

  • UserInterface/Images/TimelineRecordConsoleProfile.svg: Added.
  • UserInterface/Models/ScriptTimelineRecord.js:
  • UserInterface/Protocol/TimelineObserver.js:

(WebInspector.TimelineObserver.prototype.eventRecorded):
(WebInspector.TimelineObserver.prototype.recordingStarted):
(WebInspector.TimelineObserver.prototype.recordingStopped):

  • UserInterface/Views/TimelineIcons.css:

(.console-profile-record .icon):

  • UserInterface/Views/TimelineRecordTreeElement.js:

(WebInspector.TimelineRecordTreeElement):

Source/WebKit/mac:

  • WebInspector/WebInspector.mm:

(-isProfilingJavaScript):
(-toggleProfilingJavaScript:):
(-startProfilingJavaScript:):
(-stopProfilingJavaScript:):
(-isJavaScriptProfilingEnabled):
(-setJavaScriptProfilingEnabled:):

Source/WebKit2:

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::setJavaScriptProfilingEnabled):
(WebKit::WebInspector::startJavaScriptProfiling):
(WebKit::WebInspector::stopJavaScriptProfiling):

LayoutTests:

  • fast/profiler/profile-with-no-title-expected.txt:
  • inspector-protocol/profiler/console-profile-expected.txt: Removed.
  • inspector-protocol/profiler/console-profile.html: Removed.
  • inspector-protocol/profiler/console-profileEnd-parameterless-expected.txt: Removed.
  • inspector-protocol/profiler/console-profileEnd-parameterless.html: Removed.

Removed because console.profile does not go through the profiler protocol now.

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

Crash in ServicesOverlayController::~ServicesOverlayController.
<rdar://problem/17622172> and https://bugs.webkit.org/show_bug.cgi?id=135022

Reviewed by Tim Horton.

  • WebProcess/WebPage/mac/ServicesOverlayController.mm:

(WebKit::ServicesOverlayController::~ServicesOverlayController): Don’t need to uninstall the

PageOverlay as it has already been destroyed by this point in WebPage::~WebPage.

12:31 PM Changeset in webkit [171193] by ap@apple.com
  • 2 edits in trunk/Tools

Disable button animations in regression tests
https://bugs.webkit.org/show_bug.cgi?id=133647
<rdar://problem/16677530>

Reviewed by Dean Jackson.

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

We already did this for WebKit2, let's do it for WebKit1 too.

12:20 PM Changeset in webkit [171192] by roger_fong@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Add test for r169820.

https://bugs.webkit.org/show_bug.cgi?id=135002.

Reviewed by Dean Jackson.

  • platform/mac-wk2/plugins/snapshotting/autoplay-dominant-blank-plugin-moved-into-view-expected.txt: Added.
  • plugins/snapshotting/autoplay-dominant-blank-plugin-moved-into-view.html: Added.
12:19 PM Changeset in webkit [171191] by timothy_horton@apple.com
  • 9 edits in trunk/Source/WebKit2

Sometimes purgeable (or empty!) tiles are shown on screen when resuming the app
https://bugs.webkit.org/show_bug.cgi?id=135018
<rdar://problem/17615038>

Reviewed by Simon Fraser.

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::hideContentUntilNextUpdate):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilNextUpdate):

  • UIProcess/mac/RemoteLayerTreeHost.h:
  • UIProcess/mac/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::detachRootLayer):
Add a mechanism to "hide" drawing area content until the next commit,
by detaching the root layer. RemoteLayerTreeHost will automatically reattach
it at the next commit.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::viewStateDidChange):

  • UIProcess/WebPageProxy.h:

Add a parameter to viewStateDidChange specifying whether dispatching the change
to the Web process is deferrable or not. We will also automatically use "Immediate" if
the view is coming in-window, like we did before.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _applicationWillEnterForeground:]):
Make use of the aforementioned new mechanisms to ensure that we immediately dispatch
view state changes when coming into the foreground, and will have removed the root layer
if a commit didn't come in while waitForDidUpdateViewState blocks.

11:17 AM Changeset in webkit [171190] by fpizlo@apple.com
  • 3 edits
    2 adds in trunk/Source/JavaScriptCore

DFG Flush(SetLocal) store elimination is overzealous for captured variables in the presence of nodes that have no effects but may throw
https://bugs.webkit.org/show_bug.cgi?id=134988
<rdar://problem/17706349>

Reviewed by Oliver Hunt.

Luckily, we also don't need this optimization to be super powerful: the only place
where it really matters is for getting rid of the redundancy between op_enter and
op_init_lazy_reg, and in that case, there is a small set of possible nodes between the
two things. This change updates the store eliminator to know about only that small,
obviously safe, set of nodes over which we can store-eliminate.

This shouldn't have any performance impact in the DFG because this optimization kicks
in relatively rarely already. And once we tier up into the FTL, we get a much better
store elimination over LLVM IR, so this really shouldn't matter at all.

The tricky part of this patch is that there is a close relative of this optimization,
for uncaptured variables that got flushed. This happens for arguments to inlined calls.
I make this work by splitting it into two different store eliminators.

Note that in the process of crafting the tests, I realized that we were incorrectly
DCEing NewArrayWithSize. That's not cool, since that can throw an exception for
negative array sizes. If we ever did want to DCE this node, we'd need to lower the node
to a check node followed by the actual allocation.

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::uncapturedSetLocalStoreElimination):
(JSC::DFG::CSEPhase::capturedSetLocalStoreElimination):
(JSC::DFG::CSEPhase::setLocalStoreElimination):
(JSC::DFG::CSEPhase::performNodeCSE):
(JSC::DFG::CSEPhase::SetLocalStoreEliminationResult::SetLocalStoreEliminationResult): Deleted.

  • dfg/DFGNodeType.h:
  • tests/stress/capture-escape-and-throw.js: Added.

(foo.f):
(foo):

  • tests/stress/new-array-with-size-throw-exception-and-tear-off-arguments.js: Added.

(foo):
(bar):

10:43 AM Changeset in webkit [171189] by mhahnenberg@apple.com
  • 1 edit
    2 deletes in branches/ftlopt/LayoutTests

sputnik/Implementation_Diagnostics/S12.6.4_D1.html depends on undefined behavior
https://bugs.webkit.org/show_bug.cgi?id=135007

Reviewed by Filip Pizlo.

EcmaScript 5.1 specifies that during for-in enumeration newly added properties may or may not be
visited during the current enumeration. Specifically, in section 12.6.4 the spec states:

"If new properties are added to the object being enumerated during enumeration, the newly added properties
are not guaranteed to be visited in the active enumeration."

The sputnik/Implementation_Diagnostics/S12.6.4_D1.html layout test is from before sputnik was added
to the test262 suite. I believe it has since been removed, so it would probably be okay to remove it
from our layout test suite.

  • sputnik/Implementation_Diagnostics/S12.6.4_D1-expected.txt: Removed.
  • sputnik/Implementation_Diagnostics/S12.6.4_D1.html: Removed.
10:35 AM Changeset in webkit [171188] by weinig@apple.com
  • 6 edits
    1 add in trunk/Source/WebCore

Don't send geolocation permission requests when the page is not visible
<rdar://problem/17208715>
https://bugs.webkit.org/show_bug.cgi?id=134989

Reviewed by Darin Adler.

Instead of eagerly requesting geolocation permission for pages that aren't visible,
store a set of pending requests, and send them only once the page has become visible.

  • Modules/geolocation/GeolocationController.cpp:

(WebCore::GeolocationController::GeolocationController):
(WebCore::GeolocationController::~GeolocationController):
(WebCore::GeolocationController::requestPermission):
(WebCore::GeolocationController::cancelPermissionRequest):
(WebCore::GeolocationController::viewStateDidChange):
(WebCore::provideGeolocationTo):

  • Modules/geolocation/GeolocationController.h:

Store pending requests to be fired once the page is visible.

  • WebCore.xcodeproj/project.pbxproj:

Add ViewStateChangeObserver.h

  • page/Page.cpp:

(WebCore::Page::addViewStateChangeObserver):
(WebCore::Page::removeViewStateChangeObserver):
(WebCore::Page::setViewState):

  • page/Page.h:

Add a set of registered view state observers, and notify them when the
view state changes.

  • page/ViewStateChangeObserver.h: Added.

(WebCore::ViewStateChangeObserver::~ViewStateChangeObserver):
Add an observer that can register with the page for view state changes.

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

plugins/quicktime-plugin-replacement.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=135015

  • platform/mac/TestExpectations: Marked as such.
10:26 AM Changeset in webkit [171186] by ap@apple.com
  • 6 edits in trunk/LayoutTests

Some inspector-protocol test expectations gardening.

Moved cross-platform expectations for inspector-protocol/debugger/setBreakpoint-dfg*
tests to a cross-platform file, and added a Mac expectation for
inspector-protocol/profiler/console-profile.html.

  • TestExpectations:
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
10:07 AM Changeset in webkit [171185] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Flaky Test: media/video-ended-event-negative-playback.html
https://bugs.webkit.org/show_bug.cgi?id=134490

  • platform/mac/TestExpectations: Marking as such.
9:27 AM Changeset in webkit [171184] by jer.noble@apple.com
  • 7 edits in trunk

Enable legacy fullscreen API in media controls
https://bugs.webkit.org/show_bug.cgi?id=134985

Reviewed by Eric Carlson.

Source/WebCore:
Allow clients who have not enabled HTML5 Fullscreen APIs to still use fullscreen mode
with <video> elements by using the legacy, video-element-specific fullscreen APIs in
the <video> media controls.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller):
(Controller.prototype.handleReadyStateChange):
(Controller.prototype.isFullScreen):
(Controller.prototype.handlePlayButtonClicked):
(Controller.prototype.updateFullscreenButton):
(Controller.prototype.handleFullscreenButtonClicked):

LayoutTests:
Rebaseline expected results.

  • platform/mac/fast/hidpi/video-controls-in-hidpi-expected.txt:
  • platform/mac/fast/layers/video-layer-expected.txt:
  • platform/mac/media/media-controls-clone-expected.txt:
  • platform/mac/webarchive/loading/video-in-webarchive-expected.txt:
8:58 AM Changeset in webkit [171183] by Manuel Rego Casasnovas
  • 4 edits in trunk/LayoutTests

[CSS Grid Layout] Add element.style coverage for grid-auto-flow
https://bugs.webkit.org/show_bug.cgi?id=134966

Reviewed by Sergio Villar Senin.

As follow-up patch after r170996 we're adding new test cases for
grid-auto-flow to check the correct behavior of element.style.

  • fast/css-grid-layout/grid-auto-flow-get-set-expected.txt: Updated

expectations accordingly.

  • fast/css-grid-layout/grid-auto-flow-get-set.html: Updated test to add

checks for element.style.

  • fast/css-grid-layout/resources/grid-definitions-parsing-utils.js:

(checkGridAutoFlowSetCSSValue): Add new helper method to check
grid-auto-flow property.
(checkGridAutoFlowSetJSValue): Ditto.

3:55 AM Changeset in webkit [171182] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit2

[EFL][WK2] Add a "focus,notfound" signal.
https://bugs.webkit.org/show_bug.cgi?id=134674

Patch by Sanghyup Lee <sh53.lee@samsung.com> on 2014-07-17
Reviewed by Gyuyoung Kim.

Add a "focus,notfound" signal to handover focus control to application
because there are no elements of webview to focus on the given direction.

Application can decide to move the focus to next widget of ewk_view or something else
by using this signal.

  • UIProcess/API/efl/EwkViewCallbacks.h:
  • UIProcess/API/efl/ewk_view.h:
  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: Added keyDown and keyUp function.

(EWK2UnitTest::EWK2UnitTestBase::waitUntilDirectionChanged):
(EWK2UnitTest::EWK2UnitTestBase::keyDown):
(EWK2UnitTest::EWK2UnitTestBase::keyUp):

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
  • UIProcess/API/efl/tests/test_ewk2_view.cpp:

(EWK2ViewTest::FocusNotFoundCallback):
(TEST_F):

  • UIProcess/efl/PageUIClientEfl.cpp: Removed unnecessary calls to evas_object_focus_set().

(WebKit::PageUIClientEfl::takeFocus):

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

[GObject] StrictTypeChecking extended attribute fails for methods with sequence<T>.
https://bugs.webkit.org/show_bug.cgi?id=121698

Patch by Vineet Chaudhary <code.vineet@gmail.com> on 2014-07-17
Reviewed by Antonio Gomes.

GodeGenerator was including wrong heeaders as WebKitDOMlong[] for methods with
array parameters and StrictTypeChecking extended attribute.
No new tests. TestObj.idl covers the tests.

  • bindings/scripts/CodeGenerator.pm:

(GetArrayOrSequenceType):

  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateFunction):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_strict_function_with_array):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:

(webkit_dom_test_typedefs_func):
(webkit_dom_test_typedefs_nullable_array_arg):

  • bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
  • bindings/scripts/test/TestObj.idl:
1:13 AM Changeset in webkit [171180] by Lucas Forschler
  • 5 edits in branches/safari-600.1-branch/Source

Versioning.

1:11 AM Changeset in webkit [171179] by Lucas Forschler
  • 1 copy in tags/Safari-600.1.1

New Tag.

1:10 AM Changeset in webkit [171178] by Lucas Forschler
  • 10 edits in branches/safari-600.1-branch/Source

Merge patch from <rdar://problem/17675068>.

12:58 AM Changeset in webkit [171177] by Yusuke Suzuki
  • 3 edits in trunk/Source/WebCore

CSS JIT: Clean up return path
https://bugs.webkit.org/show_bug.cgi?id=135011

Reviewed by Benjamin Poulain.

Clean up the existing CSS JIT return path before adding new early return path
for pseudo elements.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

  • cssjit/StackAllocator.h:

(WebCore::StackAllocator::StackReference::StackReference):
(WebCore::StackAllocator::StackReference::isValid):
(WebCore::StackAllocator::popAndDiscard): Deleted.

12:55 AM Changeset in webkit [171176] by Lucas Forschler
  • 5 edits in trunk/Source

Fix Versioning after r171175.

12:41 AM Changeset in webkit [171175] by Lucas Forschler
  • 5 edits in trunk/Source

Versioning.

12:39 AM Changeset in webkit [171174] by Lucas Forschler
  • 1 copy in branches/safari-600.1-branch

New Branch.

12:14 AM Changeset in webkit [171173] by Lucas Forschler
  • 5 edits in trunk/Source

Fix Versioning after r171118.

Jul 16, 2014:

9:07 PM Changeset in webkit [171172] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: TextContentView calls the wrong super function in shown()
https://bugs.webkit.org/show_bug.cgi?id=135001

Patch by Saam Barati <sbarati@apple.com> on 2014-07-16
Reviewed by Timothy Hatcher.
TextContentView calls ResourceContentView.shown instead of ContentView.shown.
It should call ContentView.shown because ContentView is its prototype.

  • UserInterface/Views/TextContentView.js:

(WebInspector.TextContentView.prototype.shown):

8:31 PM Changeset in webkit [171171] by beidson@apple.com
  • 3 edits in trunk/Source/WebKit2

Reintroduce the SPI _websiteDataURLForContainerWithURL: that was removed in r171160
https://bugs.webkit.org/show_bug.cgi?id=134984

Reviewed by David Kilzer.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(+[WKProcessPool _websiteDataURLForContainerWithURL:]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
8:04 PM Changeset in webkit [171170] by Lucas Forschler
  • 5 edits in trunk/Source

Versioning.

7:52 PM Changeset in webkit [171169] by clopez@igalia.com
  • 3 edits
    1 add in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

  • platform/gtk/TestExpectations: Report and mark new failures. Update some expectations.
  • platform/gtk/http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect-expected.txt: Rebaseline after r171033.
  • platform/gtk/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt: Added. Rebaseline after r171046.
7:50 PM Changeset in webkit [171168] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening. Skip some text track tests that fail only on release wk1 builds.

  • platform/mac-wk1/TestExpectations:
7:31 PM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
7:28 PM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
7:26 PM Changeset in webkit [171167] by ap@apple.com
  • 6 edits in trunk

A test that hangs at cleanup stage confuses webkitpy hugely
https://bugs.webkit.org/show_bug.cgi?id=122475
<rdar://problem/17184354>

Reviewed by Anders Carlsson.

Source/WebKit2:
Reset m_pageLoadState when the process exits cleanly - otherwise messages from a
new process for the same WebPageProxy would hit assertions.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::processDidCrash):
(WebKit::WebPageProxy::resetStateAfterProcessExited):

Tools:
Terminate WebContent process if it freezes between tests. Ideally, we should report
this somehow, but this is better than blaming the wrong test.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::terminateWebContentProcess):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::invoke):
6:59 PM Changeset in webkit [171166] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed. Skip in-band text track test on Mountain Lion.

  • platform/mac/TestExpectations:

In-band text tracks not supported on ML.

6:47 PM Changeset in webkit [171165] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Subpixel rendering: Adjust cliprect with devicePixelFractionFromRenderer() before painting.
https://bugs.webkit.org/show_bug.cgi?id=134950
<rdar://problem/17617994>

Reviewed by Simon Fraser.

The cliprect coming from the graphics layer needs to be adjusted with the subpixel gap
from renderer. This is symmetric with the offsetting we do, when the dirty rect is sent off to the GraphicsLayer.
It puts us back to the correct coordinating system for intersecting with renderers.

Source/WebCore:
Test: compositing/hidpi-compositing-layer-with-tile-layers-on-subpixel-position.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::clipToRect):

LayoutTests:

  • compositing/hidpi-compositing-layer-with-tile-layers-on-subpixel-position-expected.html: Added.
  • compositing/hidpi-compositing-layer-with-tile-layers-on-subpixel-position.html: Added.
6:38 PM Changeset in webkit [171164] by ddkilzer@apple.com
  • 4 edits in trunk/Source

[iOS] Update order file paths for WebKit and WebKit2
<http://webkit.org/b/134993>
<rdar://problem/17557776>

Reviewed by Darin Adler.

Source/WebKit/mac:

  • Configurations/Base.xcconfig: Rename WebKit.order to

WebKitLegacy.order.

Source/WebKit2:

  • Configurations/Base.xcconfig: Add order file for iOS

named WebKit.order.

6:10 PM Changeset in webkit [171163] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix a typo noticed by Darin.

  • rendering/RenderBox.cpp:

(WebCore::shouldApplyContainersClipAndOffset):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::shouldAppyContainersClipAndOffset): Deleted.

6:04 PM Changeset in webkit [171162] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Improve showTree() logging
https://bugs.webkit.org/show_bug.cgi?id=134997

Reviewed by Tim Horton.

Have the debug showTree(), which dumps the Node/Element tree, show which nodes need
style recalc, and print element renderers.

  • dom/Node.cpp:

(WebCore::Node::showNode):

6:04 PM Changeset in webkit [171161] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

[iOS] Expose the points on WebEventRegion
https://bugs.webkit.org/show_bug.cgi?id=134978

Reviewed by Tim Horton.

Expose WebEventRegion's points so that UIKit can get at them.

  • page/ios/WebEventRegion.h:
  • page/ios/WebEventRegion.mm:

(-[WebEventRegion p1]):
(-[WebEventRegion p2]):
(-[WebEventRegion p3]):
(-[WebEventRegion p4]):

5:20 PM Changeset in webkit [171160] by beidson@apple.com
  • 13 edits in trunk/Source

Add WebSecurityOrigin "webSecurityOriginFromDatabaseIdentifier" SPI and change _websiteDataURLForContainerWithURL: SPI

Source/WebCore:
https://bugs.webkit.org/show_bug.cgi?id=134984

Reviewed by Dan Bernstein.

  • WebCore.exp.in:
  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::maybeCreateFromDatabaseIdentifier): Add a form of createFromDatabaseIdentifier

that can fail and return a nullptr.

(WebCore::SecurityOrigin::createFromDatabaseIdentifier): Use maybeCreateFromDatabaseIdentifier before creating

the empty origin.

  • page/SecurityOrigin.h:

Source/WebKit/mac:
<rdar://problem/17454712> and https://bugs.webkit.org/show_bug.cgi?id=134984

Reviewed by Dan Bernstein.

  • WebCoreSupport/WebSecurityOrigin.mm:

(+[WebSecurityOrigin webSecurityOriginFromDatabaseIdentifier:]): Added.
(-[WebSecurityOrigin initWithURL:]): Update using RefPtr API to avoid a ref().

  • WebCoreSupport/WebSecurityOriginPrivate.h:

Source/WebKit2:
<rdar://problem/17454712> and https://bugs.webkit.org/show_bug.cgi?id=134984

Reviewed by Dan Bernstein.

Change _websiteDataURLForContainerWithURL: SPI to include an optional bundle identifier argument:

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(+[WKProcessPool _websiteDataURLForContainerWithURL:bundleIdentifierIfNotInContainer:]):
(+[WKProcessPool _websiteDataURLForContainerWithURL:]): Deleted.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

Add a big shiny comment in a few key places:

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::initializeDatabaseProcess):

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:

(WebKit::UniqueIDBDatabase::UniqueIDBDatabase):

  • UIProcess/WebContext.cpp:

(WebKit::WebContext::applyPlatformSpecificConfigurationDefaults):
(WebKit::WebContext::ensureDatabaseProcess):

5:00 PM Changeset in webkit [171159] by enrica@apple.com
  • 3 edits in trunk/Source/WebKit2

REGRESSION (iOS WebKit2): Cannot scroll while dragging a selection.
https://bugs.webkit.org/show_bug.cgi?id=134992
<rdar://problem/17528020>

Reviewed by Benjamin Poulain.

This patch exposes the scroller and the visible content rect so that
UIKit can implement autoscroll when dragging the selections.
It also changes that way we do hit testing to allow hit test outside
the clipping region and fixes the way we compute the selection rectangle
for the block selection, ensuring that we consider also non text elements
like images.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView scroller]):
(-[WKContentView visibleRect]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::selectionBoxForRange):
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::rangeForBlockAtPoint):
(WebKit::WebPage::expandedRangeFromHandle):
(WebKit::WebPage::contractedRangeFromHandle):
(WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle):
(WebKit::WebPage::changeBlockSelection):

4:34 PM Changeset in webkit [171158] by roger_fong@apple.com
  • 6 edits
    5 adds
    3 deletes in trunk

Captions container should not clip content.
https://bugs.webkit.org/show_bug.cgi?id=134840.
<rdar://problem/14553608>.

Reviewed by Simon Fraser.

Tests: media/track/track-in-band-subtitles-too-large.html

media/track/track-long-word-container-sizing.html

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-text-track-container):
Set word break property of WebCTT cues to normal to make it consistent with in-band cues.

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
Set -webkit-min-content on min-width/min-height property of the text track display.

  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties):
Do the same for WebVTT cues.

  • media/track/track-cue-rendering-snap-to-lines-not-set-expected.txt: Rebaseline.
  • media/track/captions-webvtt/long-word-small-track-display.vtt: Added.
  • media/track/track-in-band-subtitles-too-large-expected.txt: Added.
  • media/track/track-in-band-subtitles-too-large.html: Added.
  • media/track/track-long-word-container-sizing-expected.txt: Added.
  • media/track/track-long-word-container-sizing.html: Added.

We no longer break in the middle of a word, this test is no longer useful.

  • media/track/captions-webvtt/long-word.vtt: Removed.
  • media/track/track-word-breaking-expected.txt: Removed.
  • media/track/track-word-breaking.html: Removed.
4:11 PM Changeset in webkit [171157] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac] replace AVPlayerItem on the main thread
https://bugs.webkit.org/show_bug.cgi?id=134983

Reviewed by Jer Noble.

No new tests, this fixes a problem with a thread configuration not present in the
test environment.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setAVPlayerItem): New, when called off of

the main thread, dispatch to the main thread before setting AVPlayerItem.

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Call setAVPlayerItem.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldBufferData): Ditto.

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

<rdar://problem/17669097> REGRESSION (r170155): Sandbox violations using a wrong
CFNetwork cache path in WebContent process

Rubber-stamped by Sam Weinig.

Before r170155, we incorrectly checked usesNetworkProcess(), which always returns
false at this point in initialization sequence. But we did the right thing, as we
always need to set the cache path, even when network process is used for most loading.

  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):
3:36 PM Changeset in webkit [171155] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Dispatch top content inset changes immediately if synchronously waiting for view state changes
https://bugs.webkit.org/show_bug.cgi?id=134942
<rdar://problem/17666800>

Reviewed by Simon Fraser.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _dispatchSetTopContentInset]):
(-[WKView _setTopContentInset:]):
Move the check from _setTopContentInset: to _dispatchSetTopContentInset
that ensures that we only send the message if the top content inset changed.

3:26 PM Changeset in webkit [171154] by benjamin@webkit.org
  • 14 edits in trunk/Source/WebKit2

[iOS][WK2] Synchronize the dynamic viewport updates with their layer tree commit
https://bugs.webkit.org/show_bug.cgi?id=134965
Related to <rdar://problem/17082607>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-16
Reviewed by Tim Horton.

Dynamic viewport update relies on the _resizeAnimationTransformAdjustments being applied
to the page at the new size during the transition.

Because of the races between the LayerTree Commit and DynamicViewportSizeUpdate, the transform
can be applied to the wrong set of tiles.
This is mostly a problem for unresponsive WebProcess or when the synchronization is done
immediately.

There is at least one more case that is not handled: if synchronizeDynamicViewportUpdate()
completely fails to get the new page, the UIProcess is in a somewhat messy state.
I will look into that separately than the layer tree synchronization.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:nextValidLayerTreeTransactionID:]):
(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::resetState):

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

(WebKit::PageClientImpl::dynamicViewportUpdateChangedTarget):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
(WebKit::WebPageProxy::didCommitLayerTree):
(WebKit::WebPageProxy::dynamicViewportUpdateChangedTarget):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::didCommitLoad):

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

(WebKit::WebPage::synchronizeDynamicViewportUpdate):
(WebKit::WebPage::updateVisibleContentRects):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:

(WebKit::RemoteLayerTreeDrawingArea::nextTransactionID):
(WebKit::RemoteLayerTreeDrawingArea::currentTransactionID): Deleted.

2:33 PM Changeset in webkit [171153] by fpizlo@apple.com
  • 3 edits in branches/ftlopt/Source/JavaScriptCore

[ftlopt] Constant fold GetGetter and GetSetter if the GetterSetter is a constant
https://bugs.webkit.org/show_bug.cgi?id=134962

Reviewed by Oliver Hunt.

This removes yet another steady-state-throughput implication of using getters and setters:
if your accessor call is monomorphic then you'll just get a structure check, nothing more.
No more loads to get to the GetterSetter object or the accessor function object.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • runtime/GetterSetter.h:

(JSC::GetterSetter::getterConcurrently):
(JSC::GetterSetter::setGetter):
(JSC::GetterSetter::setterConcurrently):
(JSC::GetterSetter::setSetter):

2:31 PM Changeset in webkit [171152] by fpizlo@apple.com
  • 3 edits in branches/ftlopt/Source/JavaScriptCore

[ftlopt] Identity replacement in CSE shouldn't create a Phantom over the Identity's children
https://bugs.webkit.org/show_bug.cgi?id=134893

Reviewed by Oliver Hunt.

Replace Identity with Check instead of Phantom. Phantom means that the child of the
Identity should be unconditionally live. The liveness semantics of Identity are such that
if the parents of Identity are live then the child is live. Removing the Identity entirely
preserves such liveness semantics. So, the only thing that should be left behind is the
type check on the child, which is what Check means: do the check but don't keep the child
alive if the check isn't needed.

  • dfg/DFGCSEPhase.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToCheck):

1:51 PM Changeset in webkit [171151] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[MSE] http/tests/media/media-source/mediasource-buffered.html is flakey
https://bugs.webkit.org/show_bug.cgi?id=134949

Reviewed by Eric Carlson.

Depending on which SourceBuffer is successfully parsed first, the order of activeSourceBuffers
may change from run to run, breaking the http/tests/media/media-source/mediasource-buffered.html
test. Make the order of activeSourceBuffers the same as (a subset of) sourceBuffers, by replacing
calls to activeSourceBuffers->add() and with a new call to regenerateActiveSourceBuffers(), which
swaps the contents of the SourceBufferList with a new, ordered Vector.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::sourceBufferDidChangeAcitveState):
(WebCore::MediaSource::regenerateActiveSourceBuffers):

  • Modules/mediasource/MediaSource.h:
  • Modules/mediasource/SourceBufferList.cpp:

(WebCore::SourceBufferList::swap):

  • Modules/mediasource/SourceBufferList.h:
1:31 PM Changeset in webkit [171150] by mkwst@chromium.org
  • 5 edits
    10 deletes in trunk

CSP: Drop 'script-nonce' directive.
https://bugs.webkit.org/show_bug.cgi?id=134926

Reviewed by Darin Adler.

Source/WebCore:
This patch drops the outdated 'script-nonce' Content Security
Policy directive. It was removed from the spec, and replaced in
CSP2 with a new 'script-src' syntax. We should implement that
instead.

Until then, removing the outdated syntax will ensure that no one
ends up relying on it in WebKit's implementation.

This should have limited web-visible impact, as the feature is
behind the CSP_NEXT flag, which is not enabled by default.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestScript):
(WebCore::ScriptElement::executeScript):

  • page/ContentSecurityPolicy.cpp:

(WebCore::CSPDirectiveList::allowJavaScriptURLs):
(WebCore::CSPDirectiveList::allowInlineEventHandlers):
(WebCore::CSPDirectiveList::addDirective):
(WebCore::NonceDirective::NonceDirective): Deleted.
(WebCore::NonceDirective::allows): Deleted.
(WebCore::NonceDirective::parse): Deleted.
(WebCore::CSPDirectiveList::checkNonce): Deleted.
(WebCore::CSPDirectiveList::checkNonceAndReportViolation): Deleted.
(WebCore::CSPDirectiveList::allowScriptNonce): Deleted.
(WebCore::isAllowedByAllWithNonce): Deleted.
(WebCore::ContentSecurityPolicy::allowScriptNonce): Deleted.
(WebCore::ContentSecurityPolicy::reportInvalidNonce): Deleted.

  • page/ContentSecurityPolicy.h:

LayoutTests:
Dropping the nonce tests, as we're removing the functionality.

  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-scriptsrc-blocked-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-scriptsrc-blocked.html: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-separators-allowed-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-separators-allowed.html: Removed.
12:10 PM Changeset in webkit [171149] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(r171069) 75% repro crash in WebCore::AudioHardwareListenerMac::processIsRunningChanged()
https://bugs.webkit.org/show_bug.cgi?id=134986

Reviewed by Eric Carlson.

Add a WeakPtrFactory to AudioHardwareListenerMac, so that if CoreAudio calls our block after
being unregistered, we can bail early instead of calling into a deleted object.

  • platform/audio/mac/AudioHardwareListenerMac.cpp:

(WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac):

  • platform/audio/mac/AudioHardwareListenerMac.h:
11:05 AM Changeset in webkit [171148] by jer.noble@apple.com
  • 5 edits in trunk

[MSE] REGRESSION(r171033): ASSERT in WebCore::MediaSource::onReadyStateChange()
https://bugs.webkit.org/show_bug.cgi?id=134941

Reviewed by Eric Carlson.

Source/WebCore:
Only do our modified-order change of the readyState if the error parameter is empty,
as that's the only case where a duration change will cause an inadvertant readyState
change.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::streamEndedWithError):

LayoutTests:
Update media/media-source/media-source-end-of-stream.html to use an empty parameter, rather
than an empty string parameter, to endOfStream().

  • media/media-source/media-source-end-of-stream-expected.txt:
  • media/media-source/media-source-end-of-stream.html:
9:51 AM WebKitGTK/KeepingTheTreeGreen edited by ltilve@igalia.com
(diff)
9:42 AM Changeset in webkit [171147] by ap@apple.com
  • 3 edits in trunk/Source/WebCore

Remove svn:executable property erroneously added in <http://trac.webkit.org/changeset/171144> somehow.

  • ChangeLog: Removed property svn:executable.
  • svg/SVGSVGElement.h: Removed property svn:executable.
  • svg/animation/SVGSMILElement.h: Removed property svn:executable.
9:33 AM Changeset in webkit [171146] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r170653): Web Content service’s Info.plist has wrong format
https://bugs.webkit.org/show_bug.cgi?id=134973

Reviewed by Alexey Proskuryakov.

  • WebKit2.xcodeproj/project.pbxproj: Updated the Add CFBundle Localization Info.plist Key

script build phases to convert Info.plist back to binary format if the
PLIST_FILE_OUTPUT_FORMAT build setting requires it.

8:38 AM Changeset in webkit [171145] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Substitute CGRectZero for NSZeroRect in -[DOMNode hrefFrame].

Rubber-stamped by Zalan Bujtas.

The method -[DOMNode hrefFrame] returns a CGRect. So, when we don't have a renderer
we should return CGRectZero instead of a NSZeroRect.

  • bindings/objc/DOM.mm:

(-[DOMNode hrefFrame]): Also, fix up some code style issues.

8:03 AM Changeset in webkit [171144] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

mutable pointers from const methods, timeContainer().
https://bugs.webkit.org/show_bug.cgi?id=134757

Patch by Jeongeun Kim <je_julie.kim@samsung.com> on 2014-07-16
Reviewed by Alexey Proskuryakov.

Avoid return mutable pointers from const methods.
No new tests, no behavior change.

  • svg/SVGSVGElement.h:
  • svg/animation/SVGSMILElement.h:

(WebCore::SVGSMILElement::timeContainer):

7:47 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
5:24 AM Changeset in webkit [171143] by jinwoo7.song@samsung.com
  • 11 edits
    3 adds in trunk/LayoutTests

[EFL] Unreviewed EFL gardening.

Rebaseline tests after r168575, r170138 and r170418.

  • platform/efl/fast/dynamic/text-combine-expected.png: Rebaseline after r170418.
  • platform/efl/fast/dynamic/text-combine-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/forms/control-restrict-line-height-expected.png: Rebaseline after r168575.
  • platform/efl/fast/forms/control-restrict-line-height-expected.txt: Rebaseline after r168575.
  • platform/efl/fast/forms/placeholder-position-expected.png: Rebaseline after r168575.
  • platform/efl/fast/forms/placeholder-position-expected.txt: Rebaseline after r168575.
  • platform/efl/fast/repaint/japanese-rl-selection-clear-expected.png: Rebaseline after r170418.
  • platform/efl/fast/repaint/japanese-rl-selection-clear-expected.txt: Added. Rebaseline after r170418.
  • platform/efl/fast/repaint/japanese-rl-selection-repaint-expected.png: Rebaseline after r170418.
  • platform/efl/fast/repaint/japanese-rl-selection-repaint-expected.txt: Added. Rebaseline after r170418.
  • platform/efl/fast/text/international/wrap-CJK-001-expected.txt: Added. Rebaseline after r170418.
  • platform/efl/fast/writing-mode/Kusa-Makura-background-canvas-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/Kusa-Makura-background-canvas-expected.txt: Rebaseline after r170418.
4:20 AM Changeset in webkit [171142] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Tools

Change style check path with EFL WK2's path in checker_unittest.py
https://bugs.webkit.org/show_bug.cgi?id=134967

Reviewed by Csaba Osztrogonác.

  • Scripts/webkitpy/style/checker_unittest.py: Change ewk_view.h path.

(GlobalVariablesTest.test_path_rules_specifier):

3:26 AM Changeset in webkit [171141] by clopez@igalia.com
  • 2 edits in trunk/Tools

Unreviewed. Added myself to the list of committers.

  • Scripts/webkitpy/common/config/contributors.json:
2:48 AM Changeset in webkit [171140] by jinwoo7.song@samsung.com
  • 3 edits in trunk/LayoutTests

[EFL] Unreviewed EFL gardening after r170138.

  • platform/efl/accessibility/image-map2-expected.txt: Updated.
  • platform/efl/inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt: Updated.

Jul 15, 2014:

11:04 PM Changeset in webkit [171139] by ryuan.choi@samsung.com
  • 2 edits in trunk

[CMAKE] ENABLE_ENCRYPTED_MEDIA_V2 should depend on ENABLE_VIDEO
https://bugs.webkit.org/show_bug.cgi?id=134963

Reviewed by Gyuyoung Kim.

ENCRYPTED_MEDIA_V2 requires VIDEO enabled.

  • Source/cmake/WebKitFeatures.cmake: Added the dependency for ENABLE_ENCRYPTED_MEDIA_V2.
9:44 PM Changeset in webkit [171138] by Yusuke Suzuki
  • 7 edits in trunk/Source/WebCore

CSS: Generalize CSS First Letter treatment
https://bugs.webkit.org/show_bug.cgi?id=134936

Reviewed by Benjamin Poulain.

first-letter pseudo element rule is handled differently from the other rules
such as first-line. This patch removes this special handling in SelectorChecker
and handles it in RulesFeatureSet.

  • css/RuleFeature.cpp:

(WebCore::RuleFeatureSet::collectFeaturesFromSelector):
(WebCore::RuleFeatureSet::add):
(WebCore::RuleFeatureSet::clear):

  • css/RuleFeature.h:

(WebCore::RuleFeatureSet::RuleFeatureSet):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively):

  • css/StyleResolver.h:

(WebCore::StyleResolver::usesFirstLetterRules):

  • dom/DocumentStyleSheetCollection.cpp:

(WebCore::DocumentStyleSheetCollection::combineCSSFeatureFlags):
(WebCore::DocumentStyleSheetCollection::resetCSSFeatureFlags):

  • dom/DocumentStyleSheetCollection.h:

(WebCore::DocumentStyleSheetCollection::setUsesFirstLetterRules): Deleted.

9:33 PM Changeset in webkit [171137] by ryuan.choi@samsung.com
  • 2 edits in trunk/Tools

[EFL] Remove EFL WK1 directory from the checker.py
https://bugs.webkit.org/show_bug.cgi?id=134954

Reviewed by Gyuyoung Kim.

  • Scripts/webkitpy/style/checker.py:
9:31 PM Changeset in webkit [171136] by clopez@igalia.com
  • 2 edits in trunk/Tools

Adding myself to contributors.json breaks a webkitpy test
https://bugs.webkit.org/show_bug.cgi?id=134958

Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/tool/bot/irc_command_unittest.py:

(IRCCommandTest.test_whois): Be more specific and include also the
first name when asking for the whois of Xan in the unit test.

8:56 PM Changeset in webkit [171135] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebKit2

Fix r171124

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-15

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _scrollToContentOffset:]):
On landing, I changed the min/max branches to shrunkTo/expandedTo, but the return value
of those was ignored.

8:07 PM Changeset in webkit [171134] by jonowells@apple.com
  • 25 edits
    2 copies in trunk/Source/WebInspectorUI

Web Inspector: Modernize UI styles and better sync with platform styles
https://bugs.webkit.org/show_bug.cgi?id=134846

Reviewed by Timothy Hatcher.

Updated styles to better match the OS UI design. Updated the forward/back button.
Moved several rules to selectors that support older OS designs. Added global platform
data to support this patch.

  • UserInterface/Images/BackArrow.svg: Added.
  • UserInterface/Images/BackArrowLegacy.svg: Copied from Source/WebInspectorUI/UserInterface/Images/BackArrow.svg.
  • UserInterface/Images/ForwardArrow.svg: Added.
  • UserInterface/Images/ForwardArrowLegacy.svg: Copied from Source/WebInspectorUI/UserInterface/Images/ForwardArrow.svg.
  • UserInterface/Base/ImageUtilities.js: Updated image version

(.generateImage.generateModernImage):
(.generateImage.generateLegacyImage):
(.generateImage):
Updated image generation to support modern look. Updated versioning scheme and version.

  • UserInterface/Base/Main.js:

(WebInspector.loaded):
(WebInspector.contentLoaded.WebInspector.Platform.version.toString):
(WebInspector.contentLoaded.WebInspector.Platform.toString):
(WebInspector.contentLoaded):
Added global platform information.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser):
Updated back and forward buttons.

  • UserInterface/Views/FindBanner.js:

(WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
Updated images for the find banner.

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

Added new images.

  • UserInterface/Views/ButtonToolbarItem.css:

(.toolbar .item.button > .label):
(body.mac-platform.legacy .toolbar .item.button > .label):

  • UserInterface/Views/CSSStyleDeclarationSection.css:

(.style-declaration-section):
(body.mac-platform.legacy .style-declaration-section):
(body.mac-platform.legacy .style-declaration-section + .style-declaration-section):
(.style-declaration-section.last-in-group):
(body.mac-platform.legacy .style-declaration-section.last-in-group):
(.style-declaration-section.last-in-group + .style-declaration-section):
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section):
(body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:last-child):
(.style-declaration-section + .style-declaration-section): Deleted.
(.style-declaration-section.last-in-group + .style-declaration-section:last-child): Deleted.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content > .pseudo-classes):

  • UserInterface/Views/DOMTreeOutline.css:

(.dom-tree-outline li.hovered:not(.selected) .selection):
(body.mac-platform.legacy .dom-tree-outline li.hovered:not(.selected) .selection):
(.dom-tree-outline li.elements-drag-over .selection):
(body.mac-platform.legacy .dom-tree-outline li.elements-drag-over .selection):
(.dom-tree-outline:focus li.selected .selection):
(body.mac-platform.legacy .dom-tree-outline:focus li.selected .selection):

  • UserInterface/Views/DashboardContainerView.css:

(.toolbar .dashboard-container):
(body.mac-platform.legacy .toolbar .dashboard-container):
(body.window-inactive .toolbar .dashboard-container):
(body.mac-platform.legacy.window-inactive .toolbar .dashboard-container):
(.toolbar .dashboard):
(body.window-inactive .toolbar .dashboard):
(body.mac-platform.legacy.window-inactive .toolbar .dashboard):

  • UserInterface/Views/DataGrid.css:

(.data-grid th):
(body.mac-platform.legacy .data-grid th):
(.data-grid tr.selected):
(body.mac-platform.legacy .data-grid tr.selected):
(.data-grid:focus tr.selected):
(body.mac-platform.legacy .data-grid:focus tr.selected):

  • UserInterface/Views/DetailsSection.css:

(.details-section):
(body.mac-platform.legacy .details-section):
(.details-section .details-section):
(body.mac-platform.legacy .details-section .details-section):
(.details-section .details-section:last-child):
(.details-section .details-section:first-child):
(.details-section > .header):
(body.mac-platform.legacy .details-section > .header):
(.details-section .details-section > .header):
(body.mac-platform.mountain-lion .details-section .details-section > .header):
(.details-section .details-section.collaspsed > .header):
(.details-section.computed-style-properties:not(.collapsed) > .header):
(body.mac-platform.legacy .details-section.computed-style-properties:not(.collapsed) > .header):
(.details-section > .content > .group):
(body.mac-platform.legacy .details-section > .content > .group):
(.details-section > .content > .group:last-child):
(.details-section > .content > .group:nth-child(even)):
(body.mac-platform.legacy .details-section > .content > .group:nth-child(even)):
(body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *):
(.details-section > .content > .group:last-child > .row.simple:last-child > *): Deleted.

  • UserInterface/Views/FilterBar.css:

(.filter-bar > input[type="search"]):
(body.mac-platform.legacy .filter-bar > input[type="search"]):

  • UserInterface/Views/NavigationSidebarPanel.css:

(.navigation-sidebar-panel-content-tree-outline .item.selected):
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline .item.selected):
(.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
(body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline:focus .item.selected):
(body.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
(body.mac-platform.legacy.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):

  • UserInterface/Views/RadioButtonNavigationItem.css:

(.navigation-bar .item.radio.button.text-only.selected):
(body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected):

  • UserInterface/Views/RulesStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
(.sidebar > .panel.details.css-style .rules .new-rule):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule):
(.sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
(body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):

  • UserInterface/Views/ScopeBar.css:

(.scope-bar > li):
(body.mac-platform.legacy .scope-bar > li):
(.scope-bar > li.selected):
(body.mac-platform.legacy .scope-bar > li.selected):

  • UserInterface/Views/SearchBar.css:

(.search-bar > input[type="search"]):
(body.mac-platform.legacy .search-bar > input[type="search"]):

  • UserInterface/Views/Sidebar.css:

(.sidebar):
(body.mac-platform.legacy .sidebar):
(body.mac-platform.legacy.window-inactive .sidebar):
(body.mac-platform.legacy .sidebar.right):
(body.window-inactive .sidebar): Deleted.
(.sidebar.right): Deleted.

  • UserInterface/Views/TimelineSidebarPanel.css:

(.sidebar > .panel.navigation.timeline > .title-bar):
(body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar):
Style updates for new look and feel.

8:06 PM Changeset in webkit [171133] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix non-iOS builds.

  • rendering/RenderBox.cpp:

(WebCore::shouldAppyContainersClipAndOffset):

7:58 PM Changeset in webkit [171132] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

[iOS] Fix touches inside accelerated overflow:scroll
https://bugs.webkit.org/show_bug.cgi?id=134961
<rdar://problem/16088789>

Reviewed by Benjamin Poulain.

When individual elements inside an overflow:scroll with -webkit-overflow-scrolling: touch
had touch event listeners, we would fail to take the scroll offset into account when
building the touch event region, causing touches on those elements to fail after scrolling.

Touch event region building uses RenderObject::absoluteClippedOverflowRect(), and that
code path tries to fix up repaint rects to work correctly in composited overflow:scroll.
However, that broke the touch region computation.

Fix by only ignoring the scroll offset for calls to computeRectForRepaint() which
have a non-null repaintContainer (which indicates that we're doing a repaint in the
compositing layer), and for which the repaintContainer is the containing block
which is using composited scrolling. This restores correct behavior to the event region
code which always calls this with a null repaintContainer.

  • rendering/RenderBox.cpp:

(WebCore::shouldAppyContainersClipAndOffset):
(WebCore::RenderBox::computeRectForRepaint):

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

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

This was not the problem! (Requested by kling on #webkit).

Reverted changeset:

"Revert: Run the FastMalloc scavenger thread on iOS as well."
https://bugs.webkit.org/show_bug.cgi?id=134927
http://trac.webkit.org/changeset/171107

6:40 PM Changeset in webkit [171130] by achristensen@apple.com
  • 2 edits in trunk/Websites/webkit.org

Make css jit benchmark work on IE11.
https://bugs.webkit.org/show_bug.cgi?id=134956

Reviewed by Benjamin Poulain.

  • blog-files/css-jit-introduction/html5-single-page-microbenchmark.html:

Remove an iframe which caused IE11 to try to open content as a URL.

6:29 PM Changeset in webkit [171129] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

WKWebView’s FormClient::willSubmitForm should use CompletionHandlerCallChecker
https://bugs.webkit.org/show_bug.cgi?id=134951

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setFormDelegate:]):

5:53 PM Changeset in webkit [171128] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.46.3/Source/WebCore

Merged r171099. <rdar://problem/16917699>

5:51 PM Changeset in webkit [171127] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.46.3/Source/WebCore

Merged r171089. <rdar://problem/16917699>

5:47 PM Changeset in webkit [171126] by bshafiei@apple.com
  • 5 edits in tags/Safari-538.46.3/Source

Versioning.

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

New tag.

5:14 PM Changeset in webkit [171124] by benjamin@webkit.org
  • 4 edits in trunk/Source/WebKit2

[iOS][WK2] Scrolling request from the scrolling tree must be limited to offsets in the document
https://bugs.webkit.org/show_bug.cgi?id=134952
<rdar://problem/17647116>

Reviewed by Enrica Casucci.

When we received a scroll request, we were taking that offset directly to set the UIScrollView
scroll position. This is a problem if a page request scrolling to an invalid position, we were
still doing it.

This patch limits the position to be inside the document.

-- Why not limit the scroll offset in the WebProcess when we receive the scroll request? --

Some pages rely on the page scale factor changing instantly, because that is how it worked
on WebKit1.

On WebKit2, the WebProcess cannot know the valid range because the obscured insets are changing
dynamically, and the page scale factor can change in response to WebProcess events (the focus
changing for example). To make the page works, the WebProcess does not restrict the scroll position.

In that architecture, the UIProcess has to sanitize the input, which was not done before this patch.

-- Why not use changeContentOffsetBoundedInValidRange()?

The scroll offset as seen by the page is relative to the unobscured rect. While the position used
for history item is a visual position. All we need in this case is a position in the view.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _scrollToContentOffset:]):

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

(WebKit::WebPageProxy::resendLastVisibleContentRects):

4:59 PM Changeset in webkit [171123] by benjamin@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

Reduce the overhead of updating the AssemblerBuffer
https://bugs.webkit.org/show_bug.cgi?id=134659

Reviewed by Gavin Barraclough.

In r164548, the linker was changed to allow the LinkBuffer to survive its MacroAssembler.
That feature is useful for JSC to get offsets inside a linked buffer in order to jump directly
there.

On ARM, we use branch compaction and we need to keep the "compaction offset" somewher to be able
to get the real address of a lable. That is done by reusing the memory of AssemblerData.

To share the memory between LinkBuffer and the Assembler, r164548 moved the AssemblerData into
a ref-counted object. Unfortunately, the extra complexity related to the new AssemblerData was enough
to make clang give up a bunch of optimizations.

This patch solve (some of) the problems by making AssemblerBuffer and AssemblerData super low overhead structures.
In particular, the grow() function becomes 8 Thumb instructions, which is easily inlined everywhere it is used.

Instead of sharing ownership between the Assembler and LinkBuffer, LinkBuffer now takes full ownership of
the AssemblerData. I feel this is also safer since LinkBuffer is reusing the AssemblerData is a very
specific way that would make it unusable for the Assembler.

-- Technical details --

From LinkBuffer, we don't want to ever access the Assembler after releasing its buffer (or writting anything
into it really). This was obviously already the case, but that was hard to prove from LinkBuffer::copyCompactAndLinkCode().
To make this easier to work with, I changed all the assembler specific function to be static. This way we know
exactly what code access the Assembler instance. The code that does access the instance is then moved
at the beginning, before we modify anything.

The function recordLinkOffsets() that was on the MacroAssembler and copied in Assembler was moved directly
to LinkBuffer. This make the modification of AssemblerData completely explicit, and that code is specific
to LinkBuffer anyway (see LinkBuffer::executableOffsetFor()).

-- Perf impact --

This does not put us exactly at before r164548 due to the missing inline buffer. Still, it is very close.
On ARMv7, this reduces the time spent in Assembler by half. On the CSS JIT, this reduces the compilation
time by ~20%.

I could not measure any difference on x86_64.

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::jumpSizeDelta):
(JSC::ARM64Assembler::canCompact):
(JSC::ARM64Assembler::computeJumpType):
(JSC::ARM64Assembler::link):
(JSC::ARM64Assembler::recordLinkOffsets): Deleted.

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::ifThenElseConditionBit):
(JSC::ARMv7Assembler::ifThenElse):
(JSC::ARMv7Assembler::jumpSizeDelta):
(JSC::ARMv7Assembler::canCompact):
(JSC::ARMv7Assembler::computeJumpType):
(JSC::ARMv7Assembler::link):
(JSC::ARMv7Assembler::linkJumpT1):
(JSC::ARMv7Assembler::linkJumpT3):
(JSC::ARMv7Assembler::linkConditionalJumpT4):
(JSC::ARMv7Assembler::linkConditionalBX):
(JSC::ARMv7Assembler::recordLinkOffsets): Deleted.

  • assembler/AssemblerBuffer.h:

(JSC::AssemblerData::AssemblerData):
(JSC::AssemblerData::operator=):
(JSC::AssemblerData::~AssemblerData):
(JSC::AssemblerData::buffer):
(JSC::AssemblerData::capacity):
(JSC::AssemblerData::grow):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::isAvailable):
(JSC::AssemblerBuffer::data):
(JSC::AssemblerBuffer::releaseAssemblerData):
(JSC::AssemblerBuffer::putIntegral):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::AssemblerBuffer::append):
(JSC::AssemblerBuffer::grow):
(JSC::AssemblerBuffer::~AssemblerBuffer): Deleted.
(JSC::AssemblerBuffer::storage): Deleted.

  • assembler/LinkBuffer.cpp:

(JSC::recordLinkOffsets):
(JSC::LinkBuffer::copyCompactAndLinkCode):

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::LinkBuffer):
(JSC::LinkBuffer::executableOffsetFor):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::canCompact):
(JSC::MacroAssemblerARM64::computeJumpType):
(JSC::MacroAssemblerARM64::jumpSizeDelta):
(JSC::MacroAssemblerARM64::link):
(JSC::MacroAssemblerARM64::recordLinkOffsets): Deleted.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::canCompact):
(JSC::MacroAssemblerARMv7::computeJumpType):
(JSC::MacroAssemblerARMv7::jumpSizeDelta):
(JSC::MacroAssemblerARMv7::link):
(JSC::MacroAssemblerARMv7::recordLinkOffsets): Deleted.

4:12 PM Changeset in webkit [171122] by Lucas Forschler
  • 5 edits in tags/Safari-538.46.40/Source

Versioning.

3:55 PM Changeset in webkit [171121] by Lucas Forschler
  • 1 copy in tags/Safari-538.46.40

New Tag.

3:51 PM Changeset in webkit [171120] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit/mac

[OSX] [WK1] Crash when exiting fullscreen
https://bugs.webkit.org/show_bug.cgi?id=134943

Reviewed by Dean Jackson.

AppKit doesn't remove a view from the Key View Loop when removing it from its superview.

This codepath is already "tested" in fullscreen/full-screen-cancel.html, but because of our
testing infrastructure, the broken codepath doesn't actually get hit in DRT. Therefore,
there is no test.

  • WebView/WebFullScreenController.mm:

(-[WebFullScreenController enterFullScreen:]):

3:25 PM Changeset in webkit [171119] by Simon Fraser
  • 9 edits in trunk/Source/WebCore

[iOS] Fix issues drawing subsampled image elements and CSS images
https://bugs.webkit.org/show_bug.cgi?id=134944
<rdar://problem/17634095>

Reviewed by Dean Jackson.

After r170675 it is important for BitmapImage::draw() to be given a srcRect computed
using the original size of the image, not the subsampled size.

So fix various code paths that end up in image drawing to use the originalSize(),
which requires giving Image a virtual function that just returns size(), and hence has
a FloatSize return value.

Tested by setting a very low subsampling threshold and browsing various sites.

A better longterm fix will happen via bug 134916.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::originalSize):

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

(WebCore::GraphicsContext::drawImage):

  • platform/graphics/Image.cpp:

(WebCore::Image::drawTiled):
(WebCore::Image::computeIntrinsicDimensions):

  • platform/graphics/Image.h:

(WebCore::Image::originalSize):

  • platform/graphics/cg/BitmapImageCG.cpp:

(WebCore::BitmapImage::BitmapImage): Just use m_size for initializing the other members.
(WebCore::BitmapImage::draw):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

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

  • platform/graphics/cg/ImageCG.cpp:

(WebCore::Image::drawPattern):

2:32 PM Changeset in webkit [171118] by Lucas Forschler
  • 5 edits in trunk/Source

Versioning.

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

Dispatch top content inset changes immediately if synchronously waiting for view state changes
https://bugs.webkit.org/show_bug.cgi?id=134942
<rdar://problem/17666800>

Reviewed by Simon Fraser.

  • UIProcess/API/mac/WKView.mm:

(-[WKView endDeferringViewInWindowChanges]):
(-[WKView endDeferringViewInWindowChangesSync]):
(-[WKView _dispatchSetTopContentInset]):
(-[WKView _setTopContentInset:]):
Send top content inset changes immediately before sync-waiting for new tiles from the Web Process.
This will ensure that the incoming contents have the right top content inset, and we don't
flash between the wrong inset and the right one.

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

[Win] Unreviewed build fix after r171069.

Add missing AudioHardwareListener implementation on Windows.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
2:05 PM Changeset in webkit [171115] by mhahnenberg@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Stores to PropertyTable use the Structure as the owner
https://bugs.webkit.org/show_bug.cgi?id=134595

Reviewed by Darin Adler.

Since PropertyTable is the object that does the marking of these references, it should be the owner.

Also removed some unused parameters to other methods that historically used the Structure as the owner.

  • runtime/JSPropertyNameIterator.h:

(JSC::StructureRareData::setEnumerationCache):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToString):

  • runtime/PropertyMapHashTable.h:

(JSC::PropertyTable::copy):

  • runtime/PropertyTable.cpp:

(JSC::PropertyTable::clone):
(JSC::PropertyTable::PropertyTable):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::materializePropertyMap):
(JSC::Structure::addPropertyTransition):
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::despecifyFunctionTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::takePropertyTableOrCloneIfPinned):
(JSC::Structure::nonPropertyTransition):
(JSC::Structure::copyPropertyTable):
(JSC::Structure::copyPropertyTableForPinning):
(JSC::Structure::putSpecificValue):

  • runtime/Structure.h:

(JSC::Structure::setObjectToStringValue):
(JSC::Structure::setPreviousID):

  • runtime/StructureInlines.h:

(JSC::Structure::setEnumerationCache):

  • runtime/StructureRareData.h:
  • runtime/StructureRareDataInlines.h:

(JSC::StructureRareData::setPreviousID):
(JSC::StructureRareData::setObjectToStringValue):

1:52 PM Changeset in webkit [171114] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION(WK2 iOS): Safari hangs when switching focus from a field using the Tab key.
https://bugs.webkit.org/show_bug.cgi?id=134934
<rdar://problem/17224638>

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.mm:


Tab and back tab should be handled as special keys that have
a command associated. The command specifies for each key the relevant
action. This patch implements the commands property to create the association
between key and command and the relevant actions that will execute the same
code executed when the used taps on the < > buttons in the accessory bar.

(-[WKContentView keyCommands]):
(-[WKContentView _nextAccessoryTab:]):
(-[WKContentView _prevAccessoryTab:]):

1:31 PM Changeset in webkit [171113] by oliver@apple.com
  • 2 edits in trunk/Source/WebKit2

More tidying of the webcontent sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=134938

Reviewed by Alexey Proskuryakov.

Remove some excessive abilities from the profile and make
the required ones explicit.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
12:41 PM Changeset in webkit [171112] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.46.1.1/Source/WebCore

Merged r171099. <rdar://problem/16917699>

12:38 PM Changeset in webkit [171111] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.46.1.1/Source/WebCore

Merged r171089. <rdar://problem/16917699>

12:30 PM Changeset in webkit [171110] by bshafiei@apple.com
  • 5 edits in tags/Safari-538.46.1.1/Source

Versioning.

12:27 PM Changeset in webkit [171109] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.46.1.1

New tag.

12:11 PM Changeset in webkit [171108] by mhahnenberg@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ScriptExecutable::forEachCodeBlock can dereference null CodeBlocks
https://bugs.webkit.org/show_bug.cgi?id=134928

Reviewed by Andreas Kling.

  • bytecode/CodeBlock.h:

(JSC::ScriptExecutable::forEachCodeBlock): Check for null CodeBlocks before calling forEachRelatedCodeBlock.

11:34 AM Changeset in webkit [171107] by akling@apple.com
  • 2 edits in trunk/Source/WTF

Revert: Run the FastMalloc scavenger thread on iOS as well.
<https://webkit.org/b/134927>
<rdar://problem/17485079>

This appears to be the cause of some elusive crashes, and since I don't
have a way to reproduce them, let's just go back to not running the
scavenger thread on iOS.

Reviewed by Antti Koivisto.

  • wtf/FastMalloc.cpp:
8:48 AM Changeset in webkit [171106] by fpizlo@apple.com
  • 21 edits
    13 adds in branches/ftlopt

[ftlopt] DFG should be able to do GCSE in SSA and this should be unified with the CSE in CPS, and both of these things should use abstract heaps for reasoning about effects
https://bugs.webkit.org/show_bug.cgi?id=134677

Reviewed by Sam Weinig.

Source/JavaScriptCore:

This removes the old local CSE phase, which was based on manually written backward-search
rules for all of the different kinds of things we cared about, and adds a new local/global
CSE (local for CPS and global for SSA) that leaves the node semantics almost entirely up to
clobberize(). Thus, the CSE phase itself just worries about the algorithms and data
structures used for storing sets of available values. This results in a large reduction in
code size in CSEPhase.cpp while greatly increasing the phase's power (since it now does
global CSE) and reducing compile time (since local CSE is now rewritten to use smarter data
structures). Even though LLVM was already running GVN, the extra GCSE at DFG IR level means
that this is a significant (~0.7%) throughput improvement.

This work is based on the concept of "def" to clobberize(). If clobberize() calls def(), it
means that the node being analyzed makes available some value in some DFG node, and that
future attempts to compute that value can simply use that node. In other words, it
establishes an available value mapping of the form value=>node. There are two kinds of
values that can be passed to def():

PureValue. This captures everything needed to determine whether two pure nodes - nodes that

neither read nor write, and produce a value that is a CSE candidate - are identical. It
carries the NodeType, an AdjacencyList, and one word of meta-data. The meta-data is
usually used for things like the arithmetic mode or constant pointer. Passing a
PureValue to def() means that the node produces a value that is valid anywhere that the
node dominates.


HeapLocation. This describes a location in the heap that could be written to or read from.

Both stores and loads can def() a HeapLocation. HeapLocation carries around an abstract
heap that both serves as part of the "name" of the heap location (together with the
other fields of HeapLocation) and also tells us what write()'s to watch for. If someone
write()'s to an abstract heap that overlaps the heap associated with the HeapLocation,
then it means that the values for that location are no longer available.


This approach is sufficiently clever that the CSEPhase itself can focus on the mechanism of
tracking the PureValue=>node and HeapLocation=>node maps, without having to worry about
interpreting the semantics of different DFG node types - that is now almost entirely in
clobberize(). The only things we special-case inside CSEPhase are the Identity node, which
CSE is traditionally responsible for eliminating even though it has nothing to do with CSE,
and the LocalCSE rule for turning PutByVal into PutByValAlias.

This is a slight Octane, SunSpider, and Kraken speed-up - all somewhere arond 0.7% . It's
not a bigger win because LLVM was already giving us most of what we needed in its GVN.
Also, the SunSpider speed-up isn't from GCSE as much as it's a clean-up of local CSE - that
is no longer O(n2). Basically this is purely good: it reduces the amount of LLVM IR we
generate, it removes the old CSE's heap modeling (which was a constant source of bugs), and
it improves both the quality of the code we generate and the speed with which we generate
it. Also, any future optimizations that depend on GCSE will now be easier to implement.

During the development of this patch I also rationalized some other stuff, like Graph's
ordered traversals - we now have preorder and postorder rather than just "depth first".

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGAbstractHeap.h:
  • dfg/DFGAdjacencyList.h:

(JSC::DFG::AdjacencyList::hash):
(JSC::DFG::AdjacencyList::operator==):

  • dfg/DFGBasicBlock.h:
  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::performLocalCSE):
(JSC::DFG::performGlobalCSE):
(JSC::DFG::CSEPhase::CSEPhase): Deleted.
(JSC::DFG::CSEPhase::run): Deleted.
(JSC::DFG::CSEPhase::endIndexForPureCSE): Deleted.
(JSC::DFG::CSEPhase::pureCSE): Deleted.
(JSC::DFG::CSEPhase::constantCSE): Deleted.
(JSC::DFG::CSEPhase::constantStoragePointerCSE): Deleted.
(JSC::DFG::CSEPhase::getCalleeLoadElimination): Deleted.
(JSC::DFG::CSEPhase::getArrayLengthElimination): Deleted.
(JSC::DFG::CSEPhase::globalVarLoadElimination): Deleted.
(JSC::DFG::CSEPhase::scopedVarLoadElimination): Deleted.
(JSC::DFG::CSEPhase::varInjectionWatchpointElimination): Deleted.
(JSC::DFG::CSEPhase::getByValLoadElimination): Deleted.
(JSC::DFG::CSEPhase::checkFunctionElimination): Deleted.
(JSC::DFG::CSEPhase::checkExecutableElimination): Deleted.
(JSC::DFG::CSEPhase::checkStructureElimination): Deleted.
(JSC::DFG::CSEPhase::structureTransitionWatchpointElimination): Deleted.
(JSC::DFG::CSEPhase::getByOffsetLoadElimination): Deleted.
(JSC::DFG::CSEPhase::getGetterSetterByOffsetLoadElimination): Deleted.
(JSC::DFG::CSEPhase::getPropertyStorageLoadElimination): Deleted.
(JSC::DFG::CSEPhase::checkArrayElimination): Deleted.
(JSC::DFG::CSEPhase::getIndexedPropertyStorageLoadElimination): Deleted.
(JSC::DFG::CSEPhase::getInternalFieldLoadElimination): Deleted.
(JSC::DFG::CSEPhase::getMyScopeLoadElimination): Deleted.
(JSC::DFG::CSEPhase::getLocalLoadElimination): Deleted.
(JSC::DFG::CSEPhase::invalidationPointElimination): Deleted.
(JSC::DFG::CSEPhase::setReplacement): Deleted.
(JSC::DFG::CSEPhase::eliminate): Deleted.
(JSC::DFG::CSEPhase::performNodeCSE): Deleted.
(JSC::DFG::CSEPhase::performBlockCSE): Deleted.
(JSC::DFG::performCSE): Deleted.

  • dfg/DFGCSEPhase.h:
  • dfg/DFGClobberSet.cpp:

(JSC::DFG::addReads):
(JSC::DFG::addWrites):
(JSC::DFG::addReadsAndWrites):
(JSC::DFG::readsOverlap):
(JSC::DFG::writesOverlap):

  • dfg/DFGClobberize.cpp:

(JSC::DFG::doesWrites):
(JSC::DFG::accessesOverlap):
(JSC::DFG::writesOverlap):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):
(JSC::DFG::NoOpClobberize::operator()):
(JSC::DFG::CheckClobberize::operator()):
(JSC::DFG::ReadMethodClobberize::ReadMethodClobberize):
(JSC::DFG::ReadMethodClobberize::operator()):
(JSC::DFG::WriteMethodClobberize::WriteMethodClobberize):
(JSC::DFG::WriteMethodClobberize::operator()):
(JSC::DFG::DefMethodClobberize::DefMethodClobberize):
(JSC::DFG::DefMethodClobberize::operator()):

  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::run):
(JSC::DFG::DCEPhase::fixupBlock):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::getBlocksInPreOrder):
(JSC::DFG::Graph::getBlocksInPostOrder):
(JSC::DFG::Graph::addForDepthFirstSort): Deleted.
(JSC::DFG::Graph::getBlocksInDepthFirstOrder): Deleted.

  • dfg/DFGGraph.h:
  • dfg/DFGHeapLocation.cpp: Added.

(JSC::DFG::HeapLocation::dump):
(WTF::printInternal):

  • dfg/DFGHeapLocation.h: Added.

(JSC::DFG::HeapLocation::HeapLocation):
(JSC::DFG::HeapLocation::operator!):
(JSC::DFG::HeapLocation::kind):
(JSC::DFG::HeapLocation::heap):
(JSC::DFG::HeapLocation::base):
(JSC::DFG::HeapLocation::index):
(JSC::DFG::HeapLocation::hash):
(JSC::DFG::HeapLocation::operator==):
(JSC::DFG::HeapLocation::isHashTableDeletedValue):
(JSC::DFG::HeapLocationHash::hash):
(JSC::DFG::HeapLocationHash::equal):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::run):

  • dfg/DFGNode.h:

(JSC::DFG::Node::replaceWith):
(JSC::DFG::Node::convertToPhantomUnchecked): Deleted.

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGPureValue.cpp: Added.

(JSC::DFG::PureValue::dump):

  • dfg/DFGPureValue.h: Added.

(JSC::DFG::PureValue::PureValue):
(JSC::DFG::PureValue::operator!):
(JSC::DFG::PureValue::op):
(JSC::DFG::PureValue::children):
(JSC::DFG::PureValue::info):
(JSC::DFG::PureValue::hash):
(JSC::DFG::PureValue::operator==):
(JSC::DFG::PureValue::isHashTableDeletedValue):
(JSC::DFG::PureValueHash::hash):
(JSC::DFG::PureValueHash::equal):

  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::lower):

LayoutTests:

  • js/regress/gcse-expected.txt: Added.
  • js/regress/gcse-poly-get-expected.txt: Added.
  • js/regress/gcse-poly-get-less-obvious-expected.txt: Added.
  • js/regress/gcse-poly-get-less-obvious.html: Added.
  • js/regress/gcse-poly-get.html: Added.
  • js/regress/gcse.html: Added.
  • js/regress/script-tests/gcse-poly-get-less-obvious.js: Added.
  • js/regress/script-tests/gcse-poly-get.js: Added.
  • js/regress/script-tests/gcse.js: Added.
7:59 AM Changeset in webkit [171105] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION (r155957): Invalid cast in WebCore::RenderNamedFlowThread::getRanges
https://bugs.webkit.org/show_bug.cgi?id=134888

Reviewed by Mihnea Ovidenie.

Source/WebCore:
Test: fast/regions/flowthread-getranges-box-cast.html

  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::getRanges): Test the type before casting.

LayoutTests:

  • fast/regions/flowthread-getranges-box-cast-expected.txt: Added.
  • fast/regions/flowthread-getranges-box-cast.html: Added.
3:49 AM Changeset in webkit [171104] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Buildfix if LLINT_SLOW_PATH_TRACING is enabled
https://bugs.webkit.org/show_bug.cgi?id=133790

Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-07-15
Reviewed by Mark Lam.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

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

[GTK] Update GObject DOM bindings symbols file after r171014.
https://bugs.webkit.org/show_bug.cgi?id=134907

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-07-15
Reviewed by Philippe Normand.

  • bindings/gobject/webkitdom.symbols: Update to the current API.
2:15 AM Changeset in webkit [171102] by Manuel Rego Casasnovas
  • 2 edits in trunk/Source/WebCore

Unreviwed fix wrong indentation from r171082.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):

Jul 14, 2014:

8:04 PM Changeset in webkit [171101] by akling@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Don't progressively re-render tiles while pinch-zooming under memory pressure.
<https://webkit.org/b/134915>

When we're under memory pressure, the last thing we want to be doing is
creating gratuitous new IOSurfaces. Just wait for the gesture to end before
rendering at the new scale.

Reviewed by Tim Horton.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

7:55 PM Changeset in webkit [171100] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Subpixel rendering: Zero sized compositing container's content positioned off by one device pixel.
https://bugs.webkit.org/show_bug.cgi?id=134903

Reviewed by Simon Fraser.

The compositing layer boundaries are calculated using its renderer()'s and the renderer()'s
descendants' bounds. However when the renderer() is zero sized, its bounds are omitted.
In such cases, when the child content has offset from the renderer(), the subpixel adjustment
of the compositing layer becomes negative (-meaning that the compositing layer is to the right/bottom
direction from its renderer()). Remove fabs() to be able to express such direction.

Source/WebCore:
Test: compositing/hidpi-compositing-layer-with-zero-sized-container.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

LayoutTests:

  • compositing/hidpi-compositing-layer-with-zero-sized-container-expected.html: Added.
  • compositing/hidpi-compositing-layer-with-zero-sized-container.html: Added.
7:15 PM Changeset in webkit [171099] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix crash on WebVideoFullscreenManagerProxy construction.
https://bugs.webkit.org/show_bug.cgi?id=134909

Unreviewed fix crash from r171089

Remove unnecessary dispatch to main queue since it can happen during construction.

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-14

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel): remove dispatch_async

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

[Cocoa] _WKRemoteObjectInterface leaks NSString ivar
https://bugs.webkit.org/show_bug.cgi?id=134914

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-14
Reviewed by Simon Fraser.

Release our copied NSString in dealloc.

  • Shared/API/Cocoa/_WKRemoteObjectInterface.mm:

(-[_WKRemoteObjectInterface dealloc]):

6:37 PM Changeset in webkit [171097] by dino@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

Provide some large JPEG images with EXIF orientation for subsampling tests
https://bugs.webkit.org/show_bug.cgi?id=134847

Reviewed by Sam Weinig.

Four images (either 3000x2000 or 2000x3000) that each have EXIF rotation
attributes that should render with an arrow pointing UP. The
orientation-rotate-0.jpg should always render correctly, even if EXIF
rotation is ignored. The others are variations on that image that were
saved in rotated form, then reverted to the correct orientation via EXIF.

  • fast/canvas/resources/orientation-rotate-0.jpg: Added.
  • fast/canvas/resources/orientation-rotate-180.jpg: Added.
  • fast/canvas/resources/orientation-rotate-90-ccw.jpg: Added.
  • fast/canvas/resources/orientation-rotate-90-cw.jpg: Added.
5:41 PM Changeset in webkit [171096] by fpizlo@apple.com
  • 29 edits
    19 adds in trunk/Source/JavaScriptCore

Allow for Int52Rep to see things other than Int32, and make this testable
https://bugs.webkit.org/show_bug.cgi?id=134873
<rdar://problem/17641915>

Reviewed by Geoffrey Garen and Mark Hahnenberg.

A major premise of our type inference is that prediction propagation can say whatever it
wants and we'll still have valid IR after Fixup. This previously didn't work with Int52s.
We required some kind of agreement between prediction propagation and fixup over which
data flow paths were Int52 and which weren't.

It turns out that we basically had such an agreement, with the exception of code that was
unreachable due to ForceOSRExit. Then, fixup and prediction propagation would disagree. It
might be nice to fix that bug - but it's only in the case of Int52 that such a thing would
be a bug! Normally, we allow sloppiness in prediction propagation.

This patch allows us to be sloppy with Int52 prediction propagation by giving Int52Rep the
ability to see inputs other than Int32. This fixes the particular ForceOSRExit bug (see
int52-force-osr-exit-path.js for the reduced test case). To make sure that the newly
empowered Int52Rep is actually correct - in case we end up using it on paths other than
ForceOSRExit - this patch introduces an internal intrinsic called fiatInt52() that forces
us to attempt Int52 conversion on the input. This patch adds a bunch of tests that stress
this intrinsic. This means that we're now stressing Int52Rep more so than ever before!

Note that it would still be a bug for prediction propagation to ever cause us to create an
Int52Rep node for a non-Int32 input. But, this will now be a performance bug, rather than
a crash bug.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::fixTypeForRepresentation):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsic):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::isMachineIntConstant):

  • dfg/DFGNode.h:

(JSC::DFG::Node::isMachineIntConstant):

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::speculate):

  • dfg/DFGSpeculativeJIT.h:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::convertMachineInt):
(JSC::DFG::SpeculativeJIT::speculateMachineInt):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepMachineInt):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::isNumerical):
(JSC::DFG::isDouble):

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

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

(JSC::FTL::LowerDFGToLLVM::compileInt52Rep):
(JSC::FTL::LowerDFGToLLVM::doubleToInt32):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::doubleToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateMachineInt):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleRepMachineInt):

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

(GlobalObject::finishCreation):
(functionIdentity):

  • runtime/Intrinsic.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::tryConvertToInt52):
(JSC::isInt52):
(JSC::JSValue::isMachineInt):

  • tests/stress/dead-fiat-double-to-int52-then-exit-not-int52.js: Added.

(foo):

  • tests/stress/dead-fiat-double-to-int52.js: Added.

(foo):

  • tests/stress/dead-fiat-int32-to-int52.js: Added.

(foo):

  • tests/stress/dead-fiat-value-to-int52-double-path.js: Added.

(foo):
(bar):

  • tests/stress/dead-fiat-value-to-int52-then-exit-not-double.js: Added.

(foo):
(bar):

  • tests/stress/dead-fiat-value-to-int52-then-exit-not-int52.js: Added.

(foo):
(bar):

  • tests/stress/dead-fiat-value-to-int52.js: Added.

(foo):
(bar):

  • tests/stress/fiat-double-to-int52-then-exit-not-int52.js: Added.

(foo):

  • tests/stress/fiat-double-to-int52-then-fail-to-fold.js: Added.

(foo):

  • tests/stress/fiat-double-to-int52-then-fold.js: Added.

(foo):

  • tests/stress/fiat-double-to-int52.js: Added.

(foo):

  • tests/stress/fiat-int32-to-int52.js: Added.

(foo):

  • tests/stress/fiat-value-to-int52-double-path.js: Added.

(foo):
(bar):

  • tests/stress/fiat-value-to-int52-then-exit-not-double.js: Added.

(foo):
(bar):

  • tests/stress/fiat-value-to-int52-then-exit-not-int52.js: Added.

(foo):
(bar):

  • tests/stress/fiat-value-to-int52-then-fail-to-fold.js: Added.

(foo):

  • tests/stress/fiat-value-to-int52-then-fold.js: Added.

(foo):

  • tests/stress/fiat-value-to-int52.js: Added.

(foo):
(bar):

  • tests/stress/int52-force-osr-exit-path.js: Added.

(foo):

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

[PlugIns] Check for a non-null snapshot image before trying to decode it
https://bugs.webkit.org/show_bug.cgi?id=134913
<rdar://problem/17606033>

Reviewed by Tim Horton.

Changeset r169820 introduced a bug where we could examine the pixels of
an image (looking for solid colors) before checking if the image actually
existed.

I added a null check, and moved the code around a bit to avoid checking
for existence three times.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::pluginSnapshotTimerFired): Check that snapshotImage exists
before trying to look at it.

5:14 PM Changeset in webkit [171094] by dbates@webkit.org
  • 2 edits
    6 adds in trunk

[iOS] Add tests to ensure CSS :active and :hover are applied when processing touch events
https://bugs.webkit.org/show_bug.cgi?id=134905
<rdar://problem/16602779>

Reviewed by Simon Fraser.

.:
Add a manual test to ensure that styles for CSS pseudo-class :hover aren't temporarily cleared
on the tapped element when processing a touchend as a result of finger pressing and releasing
on the same element that is initially positioned outside the visible content area.

  • ManualTests/ios/touchstart-touchend-on-same-element-should-not-clear-hover.html: Added.

LayoutTests:
Upstream tests by Andreas Kling for <rdar://problem/14324231>.

Add a DRT test to ensure that we apply the style for the CSS pseudo-class :active when
processing touch events.

  • platform/iphone-simulator/fast/events/ontouchstart-active-selector-expected.txt: Added.
  • platform/iphone-simulator/fast/events/ontouchstart-active-selector.html: Added.
5:09 PM Changeset in webkit [171093] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix 32-bit build.

  • UIProcess/Cocoa/SessionStateCoding.mm:

(WebKit::encodeSessionState):

4:59 PM Changeset in webkit [171092] by mhahnenberg@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

Flattening dictionaries with oversize backing stores can cause crashes
https://bugs.webkit.org/show_bug.cgi?id=134906

Reviewed by Filip Pizlo.

The collector expects any pointers into CopiedSpace passed to copyLater are within 32 KB
of the CopiedBlock header. This was always the case except for when flattening a dictionary
caused the size of the Butterfly to decrease. This was equivalent to moving the base of the
Butterfly to higher addresses. If the object was reduced sufficiently in size, the base
would no longer be within the first 32 KB of the CopiedBlock and the next collection would
choke on the Butterfly pointer.

This patch fixes this issue by detect this situation during flattening and memmove-ing
the Butterfly down to where the old base was.

  • runtime/JSObject.cpp:

(JSC::JSObject::shiftButterflyAfterFlattening):

  • runtime/JSObject.h:

(JSC::JSObject::butterflyPreCapacity):
(JSC::JSObject::butterflyTotalSize):

  • runtime/Structure.cpp:

(JSC::Structure::flattenDictionaryStructure):

  • tests/stress/flatten-oversize-dictionary-object.js: Added.

(foo):

4:35 PM Changeset in webkit [171091] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Use the legacy session coder for encoding/decoding session state
https://bugs.webkit.org/show_bug.cgi?id=134910

Reviewed by Beth Dakin.

  • UIProcess/Cocoa/SessionStateCoding.mm:

(WebKit::encodeSessionState):
(WebKit::decodeSessionState):

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

Restrict network process to remote connections
https://bugs.webkit.org/show_bug.cgi?id=134908

Reviewed by Geoffrey Garen.

Further restrict network client

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
3:32 PM Changeset in webkit [171089] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

WebVideoFullscreenInterfaceAVKit should only call the UI from main thread.
https://bugs.webkit.org/show_bug.cgi?id=134890

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-14
Reviewed by Eric Carlson.

dispatch_async to the main thread before setting properties that would affect the UI.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel): wrap in call to dispatch_async
(WebVideoFullscreenInterfaceAVKit::setDuration): ditto
(WebVideoFullscreenInterfaceAVKit::setCurrentTime): ditto
(WebVideoFullscreenInterfaceAVKit::setRate): ditto
(WebVideoFullscreenInterfaceAVKit::setVideoDimensions): ditto
(WebVideoFullscreenInterfaceAVKit::setSeekableRanges): ditto
(WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions): ditto
(WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions): ditto
(WebVideoFullscreenInterfaceAVKit::setExternalPlayback): ditto

3:22 PM Changeset in webkit [171088] by dbates@webkit.org
  • 3 edits in trunk/Tools

check-webkit-style should apply C++ rules to Objective-C++ files
https://bugs.webkit.org/show_bug.cgi?id=134884

Reviewed by Joseph Pecoraro.

Fixes an issue where check-webkit-style doesn't apply applicable C++ rules to
Objective-C++ files.

Currently check-webkit-style doesn't apply the following rules to Objective-C++
files: build/using_std, runtime/max_min_macros, runtime/wtf_move, readability/null.
Instead, we should teach check-webkit-style to apply these rules because, as
its name implies, an Objective-C++ file may contain C++ code.

  • Scripts/webkitpy/style/checkers/cpp.py:

(_FileState.init): Add instance variable _is_objective_cpp to track whether a file has
extension mm (i.e. an Objective-C++ file).
(_FileState.is_objective_c_or_objective_cpp): Added; returns true if the file
has extension m or mm or if the file has extension h and contains Objective-C directives.
(check_for_null): No change in behavior; don't apply rule to Objective-C++ file.
(check_identifier_name_in_declaration): Substitute _FileState.is_objective_c_or_objective_cpp() for
_FileState.is_c_or_objective_c()

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_null_false_zero): Added test case for Objective-C++ file.
(WebKitStyleTest.test_max_macro): Add test case for Objective-C and Objective-C++ file.
(WebKitStyleTest.test_min_macro): Ditto.
(WebKitStyleTest.test_wtf_move): Add test case for Objective-C++ file.

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

ASSERT(isMainThread()) under OneShotDisplayLinkHandler
https://bugs.webkit.org/show_bug.cgi?id=134900

Reviewed by Simon Fraser.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(-[OneShotDisplayLinkHandler displayLinkFired:]):
isMainThread means the Web thread sometimes.

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

Fix the build.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):

  • UIProcess/API/ios/WKViewIOS.mm:

(-[WKView _frameOrBoundsChanged]):

2:42 PM Changeset in webkit [171085] by Lucas Forschler
  • 10 edits in tags/Safari-538.46.2/Source/WebKit2

Merged r171057. <rdar://problem/17295636>

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

[UNIX] Log error description when failing to create shared memory file.
https://bugs.webkit.org/show_bug.cgi?id=134892

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-07-14
Reviewed by Darin Adler.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::create): Print the string describing the error number (errno).

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

Fix the !ENABLE(FILTERS) && !ENABLE(CSS_FILTERS) build after r167497
https://bugs.webkit.org/show_bug.cgi?id=134679

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-07-14
Reviewed by Darin Adler.

  • html/ImageData.cpp:
  • platform/graphics/cairo/ImageBufferCairo.cpp:
2:23 PM Changeset in webkit [171082] by Manuel Rego Casasnovas
  • 14 edits
    2 adds in trunk

[CSS Grid Layout] Support sparse in auto-placement algorithm
https://bugs.webkit.org/show_bug.cgi?id=134544

Reviewed by Sergio Villar Senin.

Source/WebCore:
This patch implements sparse mode for auto-placement algorithm, which is
the default mode in the new grid-auto-flow syntax. It keeps track of the
auto-placement cursor in
RenderGrid::placeAutoMajorAxisItemsOnGrid() and updates it accordingly
when auto-positioned items are placed.
If we're in dense mode it resets the cursor after each item (which keeps
the old behavior that was using dense mode by default).

GridIterator has been adapted to look for empty areas from a given
position in both directions.

Test: fast/css-grid-layout/grid-auto-flow-sparse.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::GridIterator::GridIterator): Modify constructor to
add an optional argument for the varying index. This allows to look for
empty areas in both axis.
(WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid): Defined the
auto-placement cursor and rested after each item if we're in dense mode.
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid): Use auto-placement
cursor to look for empty areas from the last auto-positioned item
placed.

  • rendering/RenderGrid.h: Modify placeAutoMajorAxisItemOnGrid() header

to receive the auto-placement cursor.

LayoutTests:
Test cases have been adapted accordingly, adding new cases to cover both
sparse and dense options.

  • fast/css-grid-layout/grid-auto-flow-resolution-expected.txt:
  • fast/css-grid-layout/grid-auto-flow-resolution.html:
  • fast/css-grid-layout/grid-auto-flow-sparse-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-flow-sparse.html: Added.
  • fast/css-grid-layout/grid-container-change-named-grid-lines-recompute-child.html:
  • fast/css-grid-layout/grid-item-auto-placement-automatic-span-expected.txt:
  • fast/css-grid-layout/grid-item-auto-placement-automatic-span.html:
  • fast/css-grid-layout/grid-item-auto-placement-definite-span-expected.txt:
  • fast/css-grid-layout/grid-item-auto-placement-definite-span.html:
  • fast/css-grid-layout/grid-item-removal-auto-placement-update.html:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html:
  • fast/css-grid-layout/resources/grid.css:

(.autoRowAutoColumnSpanning2):
(.autoRowSpanning2AutoColumn):
(.autoRowSpanning2AutoColumnSpanning3):
(.autoRowSpanning3AutoColumnSpanning2):
(.gridAutoFlowColumnDense):
(.gridAutoFlowRowDense):

2:22 PM Changeset in webkit [171081] by Brent Fulgham
  • 8 edits in trunk/Source/WebCore

[iOS] Some videos play as inline audio-only content
https://bugs.webkit.org/show_bug.cgi?id=134898.
<rdar://problem/17629379>

Reviewed by Eric Carlson.

Add a new 'presentationType' accessor that indicates if the media
element is playing in 'audio' mode. This can happen if a video
element plays an HLS stream that starts off in audio-only mode.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::presentationType): Added.

  • html/HTMLMediaElement.h:
  • platform/audio/MediaSession.cpp:

(WebCore::MediaSession::presentationType): Added.

  • platform/audio/MediaSession.h:
  • platform/audio/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::sessionRestrictsInlineVideoPlayback):
Use the presentationType, rather than the mediaType to control
inline playback behavior.

  • platform/audio/ios/AudioDestinationIOS.h:

(WebCore::AudioDestinationMac::presentationType): Add presentationType.

  • platform/audio/mac/AudioDestinationMac.h:

(WebCore::AudioDestinationMac::presentationType): Ditto.

2:07 PM Changeset in webkit [171080] by benjamin@webkit.org
  • 5 edits in trunk/Source/WebKit2

[iOS][WK2] On rotation, RemoteLayerTreeDrawingArea renders one extra frame at the wrong orientation
https://bugs.webkit.org/show_bug.cgi?id=134875

Reviewed by Tim Horton.

On animated resize, the size of the DrawingAreaProxy was changed before the layout parameters were
changed. This in turn caused the WebProcess's DrawingArea to flush the layer tree while still
at the wrong orientation.

This patch fixes the issue by making a special case for animated resize:
-While starting animated resize, _frameOrBoundsChanged can be called several times in response to

the API's client changing the WKWebView. In that case, we do not update the drawing area.

-After the "updateBlock" is executed and the size have been changed, the dynamic viewport update

is computed, the dynamicViewportSizeUpdate is sent to the WebProcess, followed by the message
DrawingArea::updateGeometry(). Since both messages are asynchronous, they are received in that
order, and the updateGeometry() is always done after the viewport configuration has been updated.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):

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

(-[WKContentView setMinimumSize:]): Deleted.

2:06 PM Changeset in webkit [171079] by Lucas Forschler
  • 5 edits in tags/Safari-538.46.2/Source

Versioning.

2:02 PM Changeset in webkit [171078] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS][WK2] Fix withinEpsilon()
https://bugs.webkit.org/show_bug.cgi?id=134798

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-14
Reviewed by Darin Adler.

Move the function back to WKWebView, it is no longer needed in WKContentView.

Use the real types as input to properly verify that the two inputs are within
a small value of the 32bit floating point.

The epsilon we use is always on 32 bits float because we want to avoid doing work for changes
that would not make any difference on float.

The source of those small changes comes from the fact UIProcess does a lot of processing
on CGFloat, which are double on 64bits architecture, while the WebProcess use 32bits floating point
for scale. When we are getting updates from the WebProcess, we should ignore any small differences
caused by the computations done with less precision.

  • UIProcess/API/Cocoa/WKWebView.mm:

(withinEpsilon):

  • UIProcess/ios/WKContentViewInteraction.h:

(withinEpsilon): Deleted.

2:01 PM Changeset in webkit [171077] by Lucas Forschler
  • 1 copy in tags/Safari-538.46.2

New Tag.

1:55 PM Changeset in webkit [171076] by benjamin@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Remove some dead code from FTLJITFinalizer
https://bugs.webkit.org/show_bug.cgi?id=134874

Reviewed by Geoffrey Garen.

Not sure what that code was for...but it does not do anything :)

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeFunction):
The pointer of the label is computed but never used.

  • ftl/FTLJITFinalizer.h:
  • ftl/FTLLink.cpp:

(JSC::FTL::link):
The label is never set to anything.

1:12 PM Changeset in webkit [171075] by betravis@adobe.com
  • 10 edits in trunk

[Feature Queries] Enable Feature Queries on Mac
https://bugs.webkit.org/show_bug.cgi?id=134404

Reviewed by Antti Koivisto.

Source/JavaScriptCore:
Enable Feature Queries on Mac and resume running the
feature tests.

  • Configurations/FeatureDefines.xcconfig: Turn on

ENABLE_CSS3_CONDITIONAL_RULES.

Source/WebCore:
Enable Feature Queries on Mac and resume running the
feature tests.

  • Configurations/FeatureDefines.xcconfig: Turn on

ENABLE_CSS3_CONDITIONAL_RULES.

Source/WebKit/mac:
Enable Feature Queries on Mac and resume running the
feature tests.

  • Configurations/FeatureDefines.xcconfig: Turn on

ENABLE_CSS3_CONDITIONAL_RULES.

Source/WebKit2:
Enable Feature Queries on Mac and resume running the
feature tests.

  • Configurations/FeatureDefines.xcconfig: Turn on

ENABLE_CSS3_CONDITIONAL_RULES.

LayoutTests:
Resume running the Feature Queries tests on Mac.

  • platform/mac/TestExpectations: Unskip the tests.
12:51 PM Changeset in webkit [171074] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

<rdar://problem/17305458> Cannot interact with video controls in ePubs
Bug 134836 - [New Multicolumn] Crawl to check for compositing between us and the enclosingPaginationLayer
https://bugs.webkit.org/show_bug.cgi?id=134836

Reviewed by Dean Jackson.

The paginatedAndComposited bit being set in updateLayerPositions just didn't work, since compositing states
can change without triggering that function. This patch just gets rid of the bit and does a crawl every time
to check. This ensures that changes in compositing states don't necessitate any changes in pagination,
since the lookup will always check the current compositing state.

The new function that does this check is hasCompositedLayerInEnclosingPaginationChain.

I have been unable to reproduce this issue, and this is therefore a purely speculative fix. I have no test
case to provide because of this.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::hasCompositedLayerInEnclosingPaginationChain):
(WebCore::RenderLayer::updatePagination):

  • rendering/RenderLayer.h:
12:15 PM Changeset in webkit [171073] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Move composite bounds calculation to RenderLayerBacking.
https://bugs.webkit.org/show_bug.cgi?id=134864

Reviewed by Darin Adler.

No change in functionality.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateCompositedBounds):

  • rendering/RenderLayerCompositor.cpp: it was just proxying the calculateLayerBounds()

to the RenderLayer.
(WebCore::RenderLayerCompositor::calculateCompositedBounds): Deleted.

  • rendering/RenderLayerCompositor.h:
12:14 PM Changeset in webkit [171072] by andersca@apple.com
  • 6 edits in trunk

Make shouldKeepCurrentBackForwardListItemInList part of WKPageLoaderClientV5 to avoid breaking ABI
https://bugs.webkit.org/show_bug.cgi?id=134889

Reviewed by Beth Dakin.

Source/WebKit2:

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

Tools:
Bump loader version number to 5.

  • TestWebKitAPI/Tests/WebKit2/ShouldKeepCurrentBackForwardListItemInList.cpp:

(TestWebKitAPI::setPageLoaderClient):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createWebViewWithOptions):

11:54 AM Changeset in webkit [171071] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build.

  • platform/audio/MediaSessionManager.h:
11:31 AM Changeset in webkit [171070] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r171045): Reproducible crash on navigation in PageClientImpl::willRecordNavigationSnapshot
https://bugs.webkit.org/show_bug.cgi?id=134887

Reviewed by Tim Horton.

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::navigationGestureDidBegin): nil-check m_webView. It can be nil when
the client is using WKView directly.
(WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
(WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.
(WebKit::PageClientImpl::willRecordNavigationSnapshot): Ditto.

11:17 AM Changeset in webkit [171069] by eric.carlson@apple.com
  • 16 edits
    1 delete in trunk/Source

[Mac] don't enable low power audio mode on external output devices
https://bugs.webkit.org/show_bug.cgi?id=134877

Reviewed by Sam Weinig.

Source/WebCore:
No new tests, this deals with changes to the audio hardware at runtime.

  • WebCore.xcodeproj/project.pbxproj: Remove AudioSessionListener.h.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto.
  • platform/audio/AudioHardwareListener.cpp:

(WebCore::AudioHardwareListener::AudioHardwareListener): Initialize m_outputDeviceSupportsLowPowerMode

to true on iOS.

  • platform/audio/AudioHardwareListener.h:

(WebCore::AudioHardwareListener::outputDeviceSupportsLowPowerMode): New accessor.
(WebCore::AudioHardwareListener::setHardwareActivity): New setter for derived classes.
(WebCore::AudioHardwareListener::setOutputDeviceSupportsLowPowerMode): Ditto.

Remove AudioSessionListener interface, it wasn't being used.

  • platform/audio/AudioSession.cpp:

(WebCore::AudioSession::addListener): Deleted.
(WebCore::AudioSession::removeListener): Deleted.
(WebCore::AudioSession::beganAudioInterruption): Deleted.
(WebCore::AudioSession::endedAudioInterruption): Deleted.

  • platform/audio/AudioSession.h:
  • platform/audio/AudioSessionListener.h: Removed.
  • platform/audio/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::addSession): Allocate the AudioHardwareListener if necessary.
(WebCore::MediaSessionManager::removeSession): Free the AudioHardwareListener if necessary.
(WebCore::MediaSessionManager::audioOutputDeviceChanged): AudioHardwareListener client interface

called when the output device changes, call updateSessionState to make sure we are using
the correct buffer size.

  • platform/audio/MediaSessionManager.h:
  • platform/audio/ios/AudioDestinationIOS.h:
  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSessionPrivate::AudioSessionPrivate): Drive-by cleanup, remove ObjC helper object

that was used to listen for OS notifications, it is no longer used.

(SOFT_LINK_POINTER): Deleted.
(-[WebAudioSessionHelper initWithCallback:]): Deleted.
(-[WebAudioSessionHelper dealloc]): Deleted.
(-[WebAudioSessionHelper interruption:]): Deleted.

  • platform/audio/mac/AudioHardwareListenerMac.cpp:

(WebCore::currentDeviceSupportsLowPowerBufferSize): New, return true only if using build-in

transport device.

(WebCore::processIsRunningPropertyDescriptor): Return reference to static AudioObjectPropertyAddress

for kAudioHardwarePropertyProcessIsRunning instead of declaring one in every method
that needs one.

(WebCore::outputDevicePropertyDescriptor): Return reference to static AudioObjectPropertyAddress

for kAudioHardwarePropertyDefaultOutputDevice.

(WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac): Restructure and add audio object

listener for default output device.

(WebCore::AudioHardwareListenerMac::~AudioHardwareListenerMac): *Remove* listener audio object

property listener instead of *Adding* a new one. Remove new listener.

(WebCore::AudioHardwareListenerMac::propertyChanged): Enumerate the properties that changed,

call appropriate method.

(WebCore::AudioHardwareListenerMac::processIsRunningChanged): Renamed from setHardwareActive,

cleanup.

(WebCore::AudioHardwareListenerMac::outputDeviceChanged): New, call client.audioHardwareOutputDeviceChanged.
(WebCore::AudioHardwareListenerMac::setHardwareActive): Deleted, renamed processIsRunningChanged.

  • platform/audio/mac/AudioHardwareListenerMac.h:
  • platform/audio/mac/MediaSessionManagerMac.cpp:

(MediaSessionManager::updateSessionState): Only set the output buffer size to 4K when hardware

supports it.

Source/WebKit2:

  • PluginProcess/PluginProcess.h: Add an empty implementation of

AudioHardwareListener::audioOutputDeviceChanged.

11:11 AM Changeset in webkit [171068] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

[iOS] Throttle painting using a UI-process-side CADisplayLink
https://bugs.webkit.org/show_bug.cgi?id=134879
<rdar://problem/17641699>

Reviewed by Simon Fraser.

Just waiting for CA to commit is insufficient to actually throttle to 60fps,
because nothing will block the main runloop from spinning.

Instead, listen to a CADisplayLink, and send didUpdate to the WebProcess
the first time it fires after we commit. This is not a guarantee that
our content is on the screen, but we don't have any way to make that guarantee yet.

This will throttle painting, rAF, etc. to the display refresh rate.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(-[OneShotDisplayLinkHandler initWithDrawingAreaProxy:]):
(-[OneShotDisplayLinkHandler dealloc]):
(-[OneShotDisplayLinkHandler displayLinkFired:]):
(-[OneShotDisplayLinkHandler invalidate]):
(-[OneShotDisplayLinkHandler schedule]):
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers): Deleted.

10:16 AM Changeset in webkit [171067] by Bruno de Oliveira Abinader
  • 3 edits
    2 adds in trunk/LayoutTests

[css3-text] Add editing test for CSS3 Text Decoration properties
https://bugs.webkit.org/show_bug.cgi?id=120114

Reviewed by Darin Adler.

Adds editing layout test to verify that CSS3 Text Decoration properties
are being properly propagated.

  • editing/pasteboard/insert-text-decoration-expected.txt: Added.
  • editing/pasteboard/insert-text-decoration.html: Added.
  • platform/mac/TestExpectations: Skip while CSS3_TEXT is disabled by default.
  • platform/win/TestExpectations: Skip while CSS3_TEXT is disabled by default.
9:17 AM Changeset in webkit [171066] by mitz@apple.com
  • 6 edits in trunk/Source/WebKit2

<rdar://problem/17657391> [iOS] Networking process writes persistent credentials to the keychain
https://bugs.webkit.org/show_bug.cgi?id=134878

Reviewed by Sam Weinig.

Route CFNetwork’s calls to Security API through to the UI process.

  • NetworkProcess/ios/NetworkProcessIOS.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcess): Initialize SecItemShim.

  • Shared/mac/SecItemShim.cpp:

(WebKit::SecItemShim::initialize): On iOS, rather than using a shim library, supply
CFNetwork with alternate functions to call.

  • Shared/mac/SecItemShim.messages.in: Removed #if !PLATFORM(IOS).
  • UIProcess/mac/SecItemShimProxy.messages.in: Ditto.
  • config.h: Define ENABLE_SEC_ITEM_SHIM to 1 on iOS as well.
9:16 AM Changeset in webkit [171065] by dbates@webkit.org
  • 3 edits in trunk/Tools

Teach check-webkit-style to suggest WTF::move() when it sees std::move()
https://bugs.webkit.org/show_bug.cgi?id=134620

Reviewed by Joseph Pecoraro.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_max_min_macros): Fix up comment so that it reads well.
(check_wtf_move): Added.
(check_style): Modified to call check_wtf_move().
(CppChecker): Add category "runtime/wtf_move".

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_wtf_move): Added.

3:56 AM Changeset in webkit [171064] by jinwoo7.song@samsung.com
  • 22 edits
    3 adds in trunk/LayoutTests

[EFL] Unreviewed EFL gardening.

Rebaseline tests after r170418 and r170433.

  • platform/efl/fast/regions/repaint/japanese-rl-selection-repaint-in-regions-expected.png: Added. Rebaseline after r170418.
  • platform/efl/fast/regions/repaint/japanese-rl-selection-repaint-in-regions-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/text/decorations-with-text-combine-expected.png: Rebaseline after r170418.
  • platform/efl/fast/text/decorations-with-text-combine-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/text/emphasis-vertical-expected.png: Rebaseline after r170418.
  • platform/efl/fast/text/emphasis-vertical-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/text/international/002-expected.png: Rebaseline after r170418.
  • platform/efl/fast/text/international/002-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/text/international/text-combine-image-test-expected.png: Rebaseline after r170418.
  • platform/efl/fast/text/international/text-combine-image-test-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/text/international/wrap-CJK-001-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/border-vertical-lr-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/border-vertical-lr-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-lr-selection-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-lr-selection-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-lr-text-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-lr-text-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-rl-selection-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-rl-selection-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-rl-text-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-rl-text-expected.txt: Rebaseline after r170418.
  • platform/efl/svg/W3C-SVG-1.1/filters-blend-01-b-expected.png: Rebaseline after r170433.
  • platform/efl/svg/W3C-SVG-1.1/filters-blend-01-b-expected.txt: Added. Rebaseline after r170433.
  • platform/efl/svg/filters/feBlend-all-blendmodes-expected.txt: Added. Rebaseline after r170433.
3:25 AM Changeset in webkit [171063] by jinwoo7.song@samsung.com
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed EFL gardening.

Remove failure expectations for tests that have been passing after r168350, r169309 and r169620.

  • platform/efl/TestExpectations:
3:07 AM Changeset in webkit [171062] by jinwoo7.song@samsung.com
  • 3 edits in trunk/LayoutTests

[EFL] Unreviewed EFL gardening.

  • platform/efl/css1/formatting_model/inline_elements-expected.png: Rebaseline after r170875.
  • platform/efl/css1/formatting_model/inline_elements-expected.txt: Rebaseline after r170875.
12:19 AM Changeset in webkit [171061] by mitz@apple.com
  • 1 edit in trunk/Source/WebKit2/ChangeLog

Added Radar link to the last ChangeLog entry

12:18 AM Changeset in webkit [171060] by mitz@apple.com
  • 4 edits in trunk/Source/WebKit2

NetworkProcess sometimes hangs under copyDefaultCredentialForProtectionSpace
https://bugs.webkit.org/show_bug.cgi?id=134666

Reviewed by Tim Horton.

A SecItem may have an attribute whose value is a SecAccessControlRef, which is not supported
by ArgumentCodersCF. In debug builds, trying to encode a CFDictionary containing a value of
unsupprted type causes an assertion to fail, but in release builds encoding succeeds, and
only decoding fails, in this case silently, simply not delivering the
SecItemShim::secItemResponse message.

The fix is to teach ArgumentCodersCF about SecAccessControlRef.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::typeFromCFTypeRef): Check for the SecAccessControlRef type.
(IPC::encode): Encode the SecAccessControl serialized into CFData.
(IPC::decode): Deserialize a SecAccessControl from the decoded CFData.

  • Shared/cf/ArgumentCodersCF.h:
  • config.h: Defined HAVE_SEC_ACCESS_CONTROL.
Note: See TracTimeline for information about the timeline view.