Timeline



May 10, 2015:

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

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

Reviewed by Philippe Normand.

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

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

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

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

Reviewed by Darin Adler.

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

Source/WebCore:

No new tests, no behavior changes.

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

(WebCore::EventSource::create):

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

(WebCore::History::create):

  • page/Location.h:

(WebCore::Location::create):

  • page/MainFrame.cpp:

(WebCore::MainFrame::create):

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

(WebCore::Navigator::create):

  • page/PageOverlay.cpp:

(WebCore::PageOverlay::create):

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

(WebCore::PerformanceEntryList::create):

  • page/PerformanceMark.h:

(WebCore::PerformanceMark::create):

  • page/PerformanceMeasure.h:

(WebCore::PerformanceMeasure::create):

  • page/PerformanceNavigation.h:

(WebCore::PerformanceNavigation::create):

  • page/PerformanceResourceTiming.h:

(WebCore::PerformanceResourceTiming::create):

  • page/PerformanceTiming.h:

(WebCore::PerformanceTiming::create):

  • page/PerformanceUserTiming.h:

(WebCore::UserTiming::create):

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

(WebCore::Settings::create):

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

(WebCore::TextIndicator::create):

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

(WebCore::UserContentController::create):

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

(WebCore::UserMessageHandlerDescriptor::create):

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

(WebCore::WebKitNamespace::create):

  • page/WebKitPoint.h:

(WebCore::WebKitPoint::create):

  • page/WorkerNavigator.h:

(WebCore::WorkerNavigator::create):

  • page/animation/ImplicitAnimation.h:

(WebCore::ImplicitAnimation::create):

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

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

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::create):

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

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

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

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

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

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

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

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

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

(WebCore::ScrollingCoordinator::create):

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

(WebCore::ScrollingTreeFrameScrollingNodeIOS::create):

  • page/scrolling/ios/ScrollingTreeIOS.cpp:

(WebCore::ScrollingTreeIOS::create):

  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinator::create):

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

(WebCore::ScrollingTreeFixedNode::create):

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

(WebCore::ScrollingTreeFrameScrollingNodeMac::create):

  • page/scrolling/mac/ScrollingTreeMac.cpp:

(ScrollingTreeMac::create):

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

(WebCore::ScrollingTreeStickyNode::create):

Source/WebKit2:

(WebKit::WebUserContentController::WebUserContentController):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setTextIndicator):

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::didPerformDictionaryLookup):

  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::WebUserContentController):

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

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

Reviewed by Darin Adler.

Source/WebCore:

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

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

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

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

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):

LayoutTests:

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

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

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

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

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

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

  • WebProcess/soup/WebProcessSoup.cpp:

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

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

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

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

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

CAIRO_GL_* throughout, because find_package will define
CAIROGL_FOUND.

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

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

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

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

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

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

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

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

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

  • UIProcess/API/Cocoa/WKWebView.mm:

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

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

(-[WKContentView willMoveToWindow:]):

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

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

preview delegate, use preview view controller in WebKitSystemInterface.

(-[WKContentView commitPreviewViewController:]):

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

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

Reviewed by Darin Adler.

Tools:

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

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

LayoutTests:

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

Fix internal Apple builds on Mavericks.

  • UIProcess/API/mac/WKView.mm:

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

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

iOS internal build fix.

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

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

Reviewed by Darin Adler.

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

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

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

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

No new tests, no behavior change.

Source/WebCore:

  • history/BackForwardClient.h:

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

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView _loadBackForwardListFromOtherView:]):

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

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

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

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

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

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

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

No new tests, no behavior change.

  • css/CSSComputedStyleDeclaration.cpp:

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

  • html/HTMLPlugInImageElement.cpp:

(WebCore::is100Percent):

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::computeTransformedExtentViaTransformList):

  • platform/Length.h:

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

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

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

  • rendering/FixedTableLayout.cpp:

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

  • rendering/RenderBlock.cpp:

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

  • rendering/RenderBox.cpp:

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

  • rendering/RenderBoxModelObject.cpp:

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

  • rendering/RenderDeprecatedFlexibleBox.cpp:

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

  • rendering/RenderElement.cpp:

(WebCore::mustRepaintFillLayers):

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::computeIntrinsicLogicalWidths):

  • rendering/RenderFrameSet.cpp:

(WebCore::RenderFrameSet::layOutAxis):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::repaintOrMarkForLayout):

  • rendering/RenderInline.cpp:

(WebCore::computeMargin):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::computeIntrinsicLogicalWidths):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::computeIntrinsicLogicalWidths):

  • rendering/RenderObject.cpp:

(WebCore::objectIsRelayoutBoundary):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computePreferredLogicalWidths):

  • rendering/RenderSlider.cpp:

(WebCore::RenderSlider::computeIntrinsicLogicalWidths):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layoutRows):

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::computeIntrinsicLogicalWidths):

  • rendering/RenderView.cpp:

(WebCore::RenderView::layout):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::verticalPositionForBox):

  • rendering/style/GridLength.h:

(WebCore::GridLength::isPercentage):

  • rendering/style/GridTrackSize.h:

(WebCore::GridTrackSize::isPercentage):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::computedLineHeight):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::hasRelativeDimensions):

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::valueForLength):

  • svg/graphics/SVGImage.cpp:

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

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

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

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

No new tests, no behavior change.

Source/WebCore:

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::readString):

  • platform/mediastream/RealtimeMediaSourceCapabilities.h:

(WebCore::RealtimeMediaSourceCapabilities::setHasVideoSource):

  • platform/network/mac/ResourceErrorMac.mm:

(WebCore::ResourceError::nsError):

  • rendering/RenderThemeIOS.mm:

(WebCore::getSharedFunctionRef):

Source/WebKit2:

  • Shared/Downloads/mac/DownloadMac.mm:

(-[WKDownloadAsDelegate download:shouldDecodeSourceDataOfMIMEType:]):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::transformHandlesToObjects):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):

  • WebProcess/WebPage/WebBackForwardListProxy.cpp:

(WebKit::idToHistoryItemMap):

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

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

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

No new tests, no behavior change.

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

Fix build.

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

I committed before.

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

Remove unnecessary AtomicStringImpl* hash specification in PropertyNameArray.

Follow up to r184050 suggested by Darin.

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

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

Reviewed by Filip Pizlo.

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

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

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

  • runtime/JSObject.cpp:

(JSC::JSObject::getPropertyNames):

  • runtime/JSPropertyNameEnumerator.cpp:

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

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

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

  • runtime/PropertyNameArray.h:

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

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

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

Reviewed by Dan Bernstein.

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

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

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

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

Reviewed by Darin Adler.

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

No behavior changes.

  • Modules/streams/ReadableStreamReader.cpp:

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

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

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

Reviewed by Dan Bernstein.

Source/WebCore:

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

  • Configurations/WebCore.xcconfig: Added PrivateFrameworks to

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

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

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

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

only declare what we actually use.

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

DataDetectorsSPI.h header.

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

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

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

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

Source/WebKit2:

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

DataDetectorsSPI.h.

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

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

Reviewed by Mario Sanchez Prada.

Source/WebCore:

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

Test: accessibility/css-table-ignored.html

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::isDataTable):

LayoutTests:

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

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

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

[f] functionName - filename.js:42

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

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

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

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

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype._callFramesFromPayload):

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

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

(WebInspector.CallFrame):

  • UserInterface/Views/CallFrameTreeElement.js:

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

  • UserInterface/Views/CallFrameView.css: Added.

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

  • UserInterface/Views/CallFrameView.js: Added.

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

  • UserInterface/Views/ConsoleMessageView.css:

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

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._appendLocationLink):

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

(.hidden): Deleted.

  • UserInterface/Views/ProfileNodeTreeElement.js:

(WebInspector.ProfileNodeTreeElement):

  • UserInterface/Views/TimelineDataGridNode.js:

(WebInspector.TimelineDataGridNode.prototype.createCellContent):

May 9, 2015:

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

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

Reviewed by Darin Adler.

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

  • Scripts/run-benchmark:

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

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

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

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

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

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

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

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

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

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

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

Reviewed by Sam Weinig.

Reverted r182846 and r182904.

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

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

Reviewed by Sam Weinig.

Source/WebCore:

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

No Web-Exposed behavior change.

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

LayoutTests:

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

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

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

Reviewed by Antti Koivisto.

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

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

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

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

Reviewed by Benjamin Poulain.

Removed the PICTURE_SIZES build time flag.

.:

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

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

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

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

(WebCore::CSSParser::detectAtToken):

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

(WebCore::parseSizesAttribute): Deleted.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::currentSrc):

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

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

  • html/parser/HTMLSrcsetParser.cpp:

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

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

WebKitLibraries:

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

Layout tests broke due to unexpected simctl output

  • Scripts/webkitpy/xcode/simulator.py:

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

  • Scripts/webkitpy/xcode/simulator_unittest.py:

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

May 8, 2015:

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

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

Reviewed by Alexey Proskuryakov.

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

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

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

Source/WebCore:

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

Reviewed by Darin Adler.

No new tests because there is no behavior change.

  • css/CSSPrimitiveValue.cpp:

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

  • platform/graphics/StringTruncator.cpp:

(WebCore::stringWidth):

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):

  • platform/mac/DragImageMac.mm:

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

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseFor):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

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

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintText):

Source/WebKit/mac:

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

Reviewed by Darin Adler.

No new tests because there is no behavior change.

  • Misc/WebKitNSStringExtras.mm:

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

Source/WTF:

Reviewed by Anders Carlsson.

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

Test: StringView8Bit in TestWebKitAPI

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

Tools:

Reviewed by Anders Carlsson.

Test the StringView which takes a StringImpl*.

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(StringView8Bit): Testing is8Bit() on StringView

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

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

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

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

Reviewed by Martin Robinson.

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

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

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

Reviewed by Simon Fraser.

Source/WebCore:

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

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

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

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

  • dom/CharacterData.idl:

Expose nextElementSibling and previousElementSibling.

  • dom/ContainerNode.cpp:

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

  • dom/ContainerNode.h:

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

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

Expose firstElementChild, lastElementChild and childElementCount.

  • dom/Element.cpp:

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

  • dom/Element.h:

Move element traversal functions down to Node and ContainerNode.

  • dom/Element.idl:

Update comments to indicate where these functions are defined now.

  • dom/Node.cpp:

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

  • dom/Node.h:

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

LayoutTests:

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

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

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

Reviewed by Dan Bates.

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

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

Reviewed by Mark Lam.

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

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

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

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

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

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

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

  • runtime/ArrayPrototype.cpp:

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

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

Unreviewed GTK+ gardening

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

baseline had a failure in it.

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

Unreviewed GTK+ gardening

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

Unreviewed GTK+ gardening

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

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

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

Reviewed by Benjamin Poulain.

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

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

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

Merged r183649. rdar://problem/20840113

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

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

Reviewed by Anders Carlsson.

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

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

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

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

Merged r183646. rdar://problem/20840113

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

Fix the build.

  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createFencePort):

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

Versioning.

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

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

Reviewed by Simon Fraser.

  • UIProcess/mac/WKViewLayoutStrategy.mm:

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

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

Merged r183649. rdar://problem/20840031

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

Merged r183646. rdar://problem/20840031

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

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

Reviewed by Mark Lam.

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

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::MarkedBlock):

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

Build fix.

Reviewed by Dan Bernstein.

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

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

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

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

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

Versioning.

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

Fix the build.

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

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

Reviewed by Carlos Garcia Campos.

Tools:

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

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

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

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

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

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

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

LayoutTests:

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

and classify remaining failures.

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

Fix the build.

  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createFencePort):

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

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

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

Fix the build.

  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createFencePort):

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

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

Reviewed by Simon Fraser.

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

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

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

  • UIProcess/WebPageProxy.cpp:

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

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

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

  • UIProcess/mac/WKViewLayoutStrategy.mm:

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

  • WebProcess/WebPage/DrawingArea.h:

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

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::scaleViewAndUpdateGeometryFenced):

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

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

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

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

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

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

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

Reviewed by Carlos Garcia Campos.

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

  • Source/cmake/OptionsGTK.cmake:

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

Reviewed by Carlos Garcia Campos.

Use ENABLE(DEVELOPER_MODE) rather than DEVELOPMENT_BUILD.

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

(WebCore::availableLocales):

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

Reviewed by Carlos Garcia Campos.

Use ENABLE(DEVELOPER_MODE) rather than DEVELOPMENT_BUILD.

  • Shared/gtk/ProcessExecutablePathGtk.cpp:

(WebKit::findWebKitProcess):

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(injectedBundleDirectory):

  • UIProcess/gtk/TextCheckerGtk.cpp:

(WebKit::enchantTextChecker):

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

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

Reviewed by Carlos Garcia Campos.

Use ENABLE_DEVELOPER_MODE rather than DEVELOPMENT_BUILD.

  • MiniBrowser/gtk/main.c:

(main):

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

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

Reviewed by Gavin Barraclough.

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

  • runtime/MapDataInlines.h:

(JSC::JSIterator>::add):

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

Versioning.

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

New Branch.

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

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

Reviewed by Sam Weinig.

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

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

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue):

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

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

Reviewed by Brady Eidson.

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

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

Normally, processOutgoingFrameQueue() closes the handle in the end when called in
OutgoingFrameQueueClosing state. But there is no definitive protection against
processing two CLOSE frames, in which case we'd try to close the handle twice.

  • platform/network/cf/SocketStreamHandleCFNet.cpp:

(WebCore::SocketStreamHandle::readStreamCallback): Passing empty data to the client
results in the socket being closed, which makes no sense here.

12:07 PM Changeset in webkit [184004] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix ProcessLauncher port leak
https://bugs.webkit.org/show_bug.cgi?id=144807
rdar://problem/20593291

Reviewed by Sam Weinig.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToService):
xpc_dictionary_set_mach_send increments the send right count so make sure to
balance it with a call to mach_port_deallocate.

12:01 PM Changeset in webkit [184003] by commit-queue@webkit.org
  • 13 edits in trunk

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

ASan detected use-after free (Requested by ap on #webkit).

Reverted changeset:

"Remove convenience constructors for TextRun"
https://bugs.webkit.org/show_bug.cgi?id=144752
http://trac.webkit.org/changeset/183996

11:59 AM Changeset in webkit [184002] by dbates@webkit.org
  • 1 edit
    1 add in trunk

[iOS] WebSQL operations are not performed after device is locked
https://bugs.webkit.org/show_bug.cgi?id=137503
<rdar://problem/20844952>

Rubber-stamped by Alexey Proskuryakov.

Add a manual test to help verify that we do not regress this issue.

  • ManualTests/ios/execute-sql-transaction-callback-after-locking-unlocking-device-in-earlier-transaction.html: Added.
11:45 AM Changeset in webkit [184001] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[Mac] Playback target clients do not unregister on page reload
https://bugs.webkit.org/show_bug.cgi?id=144761

Reviewed by Brady Eidson.

  • dom/Document.cpp:

(WebCore::Document::prepareForDestruction): Unregister all target picker clients.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::registerWithDocument): Register for page cache callback.
(WebCore::HTMLMediaElement::unregisterWithDocument): Unregister for page cache callback.
(WebCore::HTMLMediaElement::documentWillSuspendForPageCache): New.
(WebCore::HTMLMediaElement::documentDidResumeFromPageCache): New.

11:37 AM Changeset in webkit [184000] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles sidebar editing with incomplete property looks poor in UI
https://bugs.webkit.org/show_bug.cgi?id=141692

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

Add "css-rule" Formatter that breaks CSS declarations into multiple lines,
keeps comments and invalid styles and adds whitespace.

  • Tools/PrettyPrinting/css-rule-tests/*.css: Added.

Add test cases.

  • Tools/PrettyPrinting/index.html:

Enable Test setup to be able to run "css-rule" Formatter tests.

  • UserInterface/Controllers/Formatter.js:

(Formatter.prototype._handleToken):

  • UserInterface/Controllers/FormatterContentBuilder.js:

(FormatterContentBuilder.prototype.removeLastNewline):
(FormatterContentBuilder.prototype.removeLastWhitespace):
(FormatterContentBuilder.prototype._popFormattedContent):
(FormatterContentBuilder.prototype._popNewLine): Deleted.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContentFromEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.set this):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.get this):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.countNewLineCharacters): Deleted.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update.else): Deleted.

  • UserInterface/Views/CodeMirrorFormatters.js:
11:20 AM Changeset in webkit [183999] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Fix performance tests after r183954
https://bugs.webkit.org/show_bug.cgi?id=144805

Reviewed by Alexey Proskuryakov.

Web* is traditionally a WK1 prefix, so use the WK2 prefix instead in WK2 so that
we don’t have two classes with the same name in the two projects.

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _defaultAnimationController]):

11:15 AM Changeset in webkit [183998] by Chris Dumez
  • 12 edits
    7 adds in trunk

Throttle RequestAnimationFrame in subframes that are outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=144718
<rdar://problem/20688782>

Reviewed by Simon Fraser.

Source/WebCore:

Throttle RequestAnimationFrame in subframes that are outside the
viewport or have "display: none" for performance and power.

Tests: fast/animation/request-animation-frame-throttle-subframe-display-none.html

fast/animation/request-animation-frame-throttle-subframe.html

  • dom/Document.h:

(WebCore::Document::scriptedAnimationController):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::setThrottled):
(WebCore::ScriptedAnimationController::isThrottled):

  • dom/ScriptedAnimationController.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::open):
Call FrameView::setFrameRect() only *after* the view has been
set on the Frame. Otherwise, setFrameRect() ends up calling
viewportContentsChanged() and we hit the
ASSERT(frame().view() == this) assertion in windowClipRect()
because the Frame still has its old FrameView. This is covered
by loader/go-back-to-different-window-size.html layout test.

  • page/FrameView.cpp:

(WebCore::FrameView::viewportContentsChanged):
(WebCore::FrameView::applyRecursivelyWithVisibleRect):
(WebCore::FrameView::resumeVisibleImageAnimations):
(WebCore::FrameView::updateScriptedAnimationsThrottlingState):
(WebCore::FrameView::resumeVisibleImageAnimationsIncludingSubframes):
(WebCore::FrameView::updateThrottledDOMTimersState):
(WebCore::FrameView::scrollPositionChanged): Deleted.
(WebCore::FrameView::sendResizeEventIfNeeded): Deleted.

  • page/FrameView.h:
  • testing/Internals.cpp:

(WebCore::Internals::isRequestAnimationFrameThrottled):
(WebCore::Internals::isTimerThrottled): Deleted.

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

LayoutTests:

  • fast/animation/request-animation-frame-throttle-subframe-display-none-expected.txt: Added.
  • fast/animation/request-animation-frame-throttle-subframe-display-none.html: Added.

Add layout test to test that RequestAnimationFrame is properly throttled
in "display: none" subframes.

  • fast/animation/request-animation-frame-throttle-subframe-expected.txt: Added.
  • fast/animation/request-animation-frame-throttle-subframe.html: Added.

Add layout test to test that RequestAnimationFrame is properly throttled
in frames that are outside the viewport.

  • fast/animation/resources/requestAnimationFrame-frame-2.html: Added.
  • fast/animation/resources/requestAnimationFrame-frame.html: Added.
  • platform/win/TestExpectations:

Skip the 2 new tests on Windows as requestAnimationFrame throttling is
only supported on Cocoa.

10:56 AM Changeset in webkit [183997] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix the iOS Simulator external SDK build following <http://trac.webkit.org/changeset/181918>

Remove unused iOS Simulator-variant of CARenderServerRenderLayerWithTransform(). Also guard
IOSurfaceRef-variant of CARenderServerRenderLayerWithTransform() with USE(IOSURFACE)
since it is only applicable on platforms that use IOSurface.

  • platform/spi/cocoa/QuartzCoreSPI.h:
10:18 AM Changeset in webkit [183996] by mmaxfield@apple.com
  • 13 edits in trunk

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

Source/WebCore:

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

Reviewed by Darin Adler.

No new tests because there is no behavior change.

  • css/CSSPrimitiveValue.cpp:

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

  • platform/graphics/StringTruncator.cpp:

(WebCore::stringWidth):

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):

  • platform/mac/DragImageMac.mm:

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

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseFor):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

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

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintText):

Source/WebKit/mac:

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

Reviewed by Darin Adler.

No new tests because there is no behavior change.

  • Misc/WebKitNSStringExtras.mm:

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

Source/WTF:

Reviewed by Anders Carlsson.

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

Test: StringView8Bit in TestWebKitAPI

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

Tools:

Reviewed by Anders Carlsson.

Test the StringView which takes a StringImpl*.

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(StringView8Bit): Testing is8Bit() on StringView

9:09 AM Changeset in webkit [183995] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] WTR doesn't correctly handle the Escape key
https://bugs.webkit.org/show_bug.cgi?id=144788

Reviewed by Martin Robinson.

Tools:

Correctly handle 0x001B character code in GTK+ event sender to be
recognized as Escape key, because gdk_unicode_to_keyval() doesn't
handle it. This fixes layout tests using keyDown(String.fromCharCode(0x001B), null);
to dismiss popup menus.

Fixes editing/selection/5354455-1.html.

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::getGDKKeySymForKeyRef):

LayoutTests:

Unskip editing/selection/5354455-1.html.

  • platform/gtk/TestExpectations:
8:12 AM Changeset in webkit [183994] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[Win] Unskip passing test case after r183981
https://bugs.webkit.org/show_bug.cgi?id=140517

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-05-08
Reviewed by Brent Fulgham.

  • platform/win/TestExpectations:
8:00 AM Changeset in webkit [183993] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening on 8th May.

Mark flaky tests and timeout tests after using xorgdriver on EFL port.

  • platform/efl/TestExpectations:
4:53 AM Changeset in webkit [183992] by Carlos Garcia Campos
  • 8 edits in trunk

[GTK] Expose allowFileAccessFromFileURLs setting to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=144748

Reviewed by Sergio Villar Senin.

Source/WebKit2:

This is needed by local applications loaded as a file URI that do XMLHttpRequests.

  • UIProcess/API/gtk/WebKitSettings.cpp:

(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_allow_file_access_from_file_urls):
(webkit_settings_set_allow_file_access_from_file_urls):

  • UIProcess/API/gtk/WebKitSettings.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:

Tools:

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSettings.cpp:

(testWebKitSettings): Check the new setting is correctly
initialized and updated.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:

(testWebContextSecurityFileXHR): Check XHR to local files is
allowed from file URLs after changing the setting.
(beforeAll): Add new test.

3:44 AM Changeset in webkit [183991] by youenn.fablet@crf.canon.fr
  • 13 edits
    2 adds in trunk

[Streams API] ReadableStream constructor start function should be able to error the stream
https://bugs.webkit.org/show_bug.cgi?id=141162

Reviewed by Darin Adler.

Source/WebCore:

This patch implements the functionality of the ReadableStreamController error function.
It basically changes the state of the stream to errored, resolves the ready promise and rejects the closed promise.
Adding support to reject promise with any JSValue.

Support for storing the error is added to both reader and stream.

Test: streams/readable-stream-controller-error.html and rebased tests

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::changeStateToErrored):

  • Modules/streams/ReadableStream.h:
  • Modules/streams/ReadableStreamReader.cpp:

(WebCore::ReadableStreamReader::initialize):
(WebCore::ReadableStreamReader::closed):
(WebCore::ReadableStreamReader::changeStateToClosed):
(WebCore::ReadableStreamReader::changeStateToErrored):

  • Modules/streams/ReadableStreamReader.h:
  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::reject):

  • bindings/js/JSReadableStreamControllerCustom.cpp:

(WebCore::JSReadableStreamController::error):

  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::closed):

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::createReader):
(WebCore::ReadableJSStream::storeError):
(WebCore::ReadableJSStream::Reader::storeError):
(WebCore::ReadableJSStream::jsController): Deleted.

  • bindings/js/ReadableJSStream.h:

LayoutTests:

  • streams/readable-stream-controller-error-expected.txt: Added.
  • streams/readable-stream-controller-error.html: Added.
  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/readable-stream-templated-expected.txt:
2:44 AM Changeset in webkit [183990] by commit-queue@webkit.org
  • 10 edits
    5 deletes in trunk

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

broke loader/go-back-to-different-window-size.html (Requested
by kling on #webkit).

Reverted changeset:

"Throttle RequestAnimationFrame in subframes that are outside
the viewport"
https://bugs.webkit.org/show_bug.cgi?id=144718
http://trac.webkit.org/changeset/183985

2:37 AM Changeset in webkit [183989] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

REGRESSION(r183072): dfg-put-by-id-prototype-check.js.layout-dfg-eager-no-cjit fails on AArch64 Linux
https://bugs.webkit.org/show_bug.cgi?id=144256

Unreviewed gardening, skip the failing test on AArch64 Linux.

  • js/script-tests/dfg-put-by-val-direct-to-generic-array.js:
1:44 AM Changeset in webkit [183988] by akling@apple.com
  • 9 edits in trunk/Source

Optimize serialization of quoted JSON strings.
<https://webkit.org/b/144754>

Reviewed by Darin Adler.

Source/JavaScriptCore:

Optimized the serialization of quoted strings into JSON by moving the logic into
StringBuilder so it can make smarter decisions about buffering.

12% progression on Kraken/json-stringify-tinderbox (on my Mac Pro.)

  • bytecompiler/NodesCodegen.cpp:

(JSC::ObjectPatternNode::toString): Use the new StringBuilder API.

  • runtime/JSONObject.h:
  • runtime/JSONObject.cpp:

(JSC::Stringifier::Holder::appendNextProperty):
(JSC::appendStringToStringBuilder): Deleted.
(JSC::appendQuotedJSONStringToBuilder): Deleted.
(JSC::Stringifier::appendQuotedString): Deleted.
(JSC::Stringifier::appendStringifiedValue): Moved the bulk of this logic
to StringBuilder and call that from here.

Source/WebKit2:

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::asJSON): Use the new StringBuilder API.

Source/WTF:

Add a StringBuilder API for appending a quoted JSON string. This is used by
JSON.stringify() to implement efficient appending of strings while escaping
quotes, control characters and \uNNNN-style characters.

The main benefit comes from only doing a single buffer expansion up front,
instead of doing it every time we append something. The fudge factor is pretty
large, since the maximum number of output characters per input character is 6.

The first landing of this patch had two bugs in it:

  • Made \uNNNN escapes uppercase hexadecimal instead of lowercase.
  • Didn't preallocate enough space for 8-bit input strings.

Both were caught by existing tests on our bots, and both were due to last-minute
changes before landing. :/

  • wtf/text/StringBuilder.cpp:

(WTF::appendQuotedJSONStringInternal):
(WTF::StringBuilder::appendQuotedJSONString):

  • wtf/text/StringBuilder.h:
1:04 AM Changeset in webkit [183987] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk/Source/WebCore

SharedBuffer::m_size should be initialized to 0 when defining it
https://bugs.webkit.org/show_bug.cgi?id=144740

Reviewed by Darin Adler.

Setting m_size to 0 when declaring it and updating constructor definitions.

No change in behaviour.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::SharedBuffer):

  • platform/SharedBuffer.h:
  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::SharedBuffer):

  • platform/soup/SharedBufferSoup.cpp:

(WebCore::SharedBuffer::SharedBuffer):

12:56 AM Changeset in webkit [183986] by commit-queue@webkit.org
  • 12 edits in trunk

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

"It broke all the GTK+ tests" (Requested by KaL on #webkit).

Reverted changeset:

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

12:18 AM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
12:01 AM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)

May 7, 2015:

11:51 PM Changeset in webkit [183985] by Chris Dumez
  • 10 edits
    7 adds in trunk

Throttle RequestAnimationFrame in subframes that are outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=144718
<rdar://problem/20688782>

Reviewed by Simon Fraser.

Source/WebCore:

Throttle RequestAnimationFrame in subframes that are outside the
viewport or have "display: none" for performance and power.

Tests: fast/animation/request-animation-frame-throttle-subframe-display-none.html

fast/animation/request-animation-frame-throttle-subframe.html

  • dom/Document.h:

(WebCore::Document::scriptedAnimationController):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::setThrottled):
(WebCore::ScriptedAnimationController::isThrottled):

  • dom/ScriptedAnimationController.h:
  • page/FrameView.cpp:

(WebCore::FrameView::viewportContentsChanged):
(WebCore::FrameView::applyRecursivelyWithVisibleRect):
(WebCore::FrameView::resumeVisibleImageAnimations):
(WebCore::FrameView::updateScriptedAnimationsThrottlingState):
(WebCore::FrameView::resumeVisibleImageAnimationsIncludingSubframes):
(WebCore::FrameView::updateThrottledDOMTimersState):
(WebCore::FrameView::scrollPositionChanged): Deleted.
(WebCore::FrameView::sendResizeEventIfNeeded): Deleted.

  • page/FrameView.h:
  • testing/Internals.cpp:

(WebCore::Internals::isRequestAnimationFrameThrottled):
(WebCore::Internals::isTimerThrottled): Deleted.

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

LayoutTests:

  • fast/animation/request-animation-frame-throttle-subframe-display-none-expected.txt: Added.
  • fast/animation/request-animation-frame-throttle-subframe-display-none.html: Added.

Add layout test to test that RequestAnimationFrame is properly throttled
in "display: none" subframes.

  • fast/animation/request-animation-frame-throttle-subframe-expected.txt: Added.
  • fast/animation/request-animation-frame-throttle-subframe.html: Added.

Add layout test to test that RequestAnimationFrame is properly throttled
in frames that are outside the viewport.

  • fast/animation/resources/requestAnimationFrame-frame-2.html: Added.
  • fast/animation/resources/requestAnimationFrame-frame.html: Added.
11:50 PM Changeset in webkit [183984] by yoav@yoav.ws
  • 12 edits in trunk

Calculate source-size length as a float
https://bugs.webkit.org/show_bug.cgi?id=144766

Reviewed by Dean Jackson.

Source/WebCore:

Make sure that the source-size length is calculated as a float,
to align with the spec.

Test: fast/dom/HTMLImageElement/sizes/image-sizes-1x.html

fast/dom/HTMLImageElement/sizes/image-sizes-2x.html

  • css/SourceSizeList.cpp:

(WebCore::parseSizesAttribute):
(WebCore::defaultLength):
(WebCore::computeLength):

  • css/SourceSizeList.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::parseAttribute):

  • html/parser/HTMLPreloadScanner.cpp:

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

  • html/parser/HTMLSrcsetParser.cpp:

(WebCore::pickBestImageCandidate):
(WebCore::bestFitSourceForImageAttributes):

  • html/parser/HTMLSrcsetParser.h:

LayoutTests:

Add tests that make sure fractional source-size lengths are supported
and are calculated as floats.

  • fast/dom/HTMLImageElement/sizes/image-sizes-1x-expected.txt:
  • fast/dom/HTMLImageElement/sizes/image-sizes-1x.html:
  • fast/dom/HTMLImageElement/sizes/image-sizes-2x-expected.txt:
  • fast/dom/HTMLImageElement/sizes/image-sizes-2x.html:
11:39 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
11:32 PM Changeset in webkit [183983] by commit-queue@webkit.org
  • 6 edits in trunk

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

Many tests became flaky (Requested by ap on #webkit).

Reverted changeset:

"Expose more font weights for -apple-system"
https://bugs.webkit.org/show_bug.cgi?id=144707
http://trac.webkit.org/changeset/183895

11:30 PM Changeset in webkit [183982] by Martin Robinson
  • 7 edits
    1 delete in trunk/LayoutTests

Remove touchadjustment tests
https://bugs.webkit.org/show_bug.cgi?id=144780

Reviewed by Daniel Bates.

These tests test a feature that has been removed from WebKit entirely and all
ports skip the tests. This code was removed in http://trac.webkit.org/changeset/162231.

  • platform/efl/TestExpectations: Remove expectations.
  • platform/gtk/TestExpectations: Ditto.
  • platform/ios-simulator/TestExpectations: Ditto.
  • platform/mac/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
  • platform/wincairo/TestExpectations:
  • touchadjustment: Removed all files in this directory.
11:23 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
11:19 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
11:13 PM Changeset in webkit [183981] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add first-letter assert exception in RenderButton::setupInnerStyle().
https://bugs.webkit.org/show_bug.cgi?id=140517OB

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-05-07
Reviewed by Darin Adler.

StyleResolver references inner block's render style temporary in
RenderBlock::styleDidChange() when we have first-letter css pseudo
element.

  • rendering/RenderButton.cpp:

(WebCore::RenderButton::setupInnerStyle):

11:11 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
11:01 PM Changeset in webkit [183980] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix build after r183970.

WEBCORE_EXPORT should not be used on inlined functions.

  • platform/graphics/ca/GraphicsLayerCA.h:
10:47 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
10:28 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
9:58 PM WebKitGTK/2.8.x edited by philip.chimento@gmail.com
(diff)
9:57 PM Changeset in webkit [183979] by Simon Fraser
  • 2 edits in trunk/LayoutTests

New results after r183970. Fixed elements are now always considered to intersect
the coverage rect.

  • platform/mac-wk2/tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
9:23 PM Changeset in webkit [183978] by Conrad Shultz
  • 5 edits in trunk/Source/WebKit2

Don't register for Lookup notifications until needed
https://bugs.webkit.org/show_bug.cgi?id=144783

Reviewed by Tim Horton.

  • UIProcess/API/mac/WKView.mm:

Add a WKViewData ivar to track whether we've already registered for popover notifications.
(-[WKView _prepareForDictionaryLookup]):
Added; moved notification registration from -[WKView initWithFrame:processPool:configuration:webView:.
(-[WKView initWithFrame:processPool:configuration:webView:]):
Move notification registration to -_prepareForDictionaryLookup.

  • UIProcess/API/mac/WKViewInternal.h:

Expose -_prepareForDictionaryLookup.

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::didPerformDictionaryLookup):
Send -[WKView _prepareForDictionaryLookup].

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _animationControllerForText]):
Ditto.

8:27 PM Changeset in webkit [183977] by commit-queue@webkit.org
  • 9 edits in trunk/Source

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

Broke js/dom/JSON-stringify.html (Requested by kling on
#webkit).

Reverted changeset:

"Optimize serialization of quoted JSON strings."
https://bugs.webkit.org/show_bug.cgi?id=144754
http://trac.webkit.org/changeset/183961

7:59 PM Changeset in webkit [183976] by andersca@apple.com
  • 18 edits in trunk

Build fixes.

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper doAXRTFForRange:]):

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::_addMarkersToList):

  • platform/mac/PasteboardMac.mm:

(WebCore::writeFileWrapperAsRTFDAttachment):

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::setTypes):
Pass empty arrays and dictionaries instead of nil.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSliderThumb):
Pass the document view to the AppKit paint method.

Source/WebKit/mac:

  • Misc/WebNSPasteboardExtras.mm:

(-[NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]):
(-[WebHTMLView _selectionStartFontAttributesAsRTF]):

  • WebView/WebPDFView.mm:

(-[WebPDFView writeSelectionWithPasteboardTypes:toPasteboard:]):
Pass empty arrays and dictionaries instead of nil.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
Use the regular init method.

Source/WebKit2:

  • UIProcess/API/mac/WKView.mm:

(-[WKView initWithFrame:processPool:configuration:webView:]):
Use the regular init method.

  • UIProcess/mac/WKSharingServicePickerDelegate.mm:

(-[WKSharingServicePickerDelegate sharingService:didShareItems:]):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::handleSelectionServiceClick):
Pass empty dictionaries instead of nil.

Tools:

  • TestWebKitAPI/Tests/mac/HTMLCollectionNamedItem.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/HTMLFormCollectionNamedItem.mm:

(TestWebKitAPI::TEST):
Add casts.

7:18 PM Changeset in webkit [183975] by commit-queue@webkit.org
  • 29 edits in trunk

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

Patch by Gyuyoung Kim <gyuyoung.kim@samsung.com> on 2015-05-07
Reviewed by Andreas Kling.

Replace PassRefPtr with Ref in create() factory functions, because
it doesn't have to change to be null.

No new tests, no behavior changes.

  • html/FTPDirectoryDocument.h:
  • html/HTMLDetailsElement.cpp:

(WebCore::DetailsContentElement::create):

  • html/HTMLKeygenElement.cpp:
  • html/HTMLSummaryElement.cpp:

(WebCore::SummaryContentElement::create):

  • html/TimeRanges.cpp:

(WebCore::TimeRanges::create):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderContainerElement::create):

  • html/shadow/SliderThumbElement.h:

(WebCore::SliderThumbElement::create):

  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::create):

  • html/shadow/SpinButtonElement.h:
  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerContainer::create):
(WebCore::TextControlInnerElement::create):
(WebCore::TextControlInnerTextElement::create):
(WebCore::SearchFieldResultsButtonElement::create):
(WebCore::SearchFieldCancelButtonElement::create):

  • html/shadow/TextControlInnerElements.h:
  • html/shadow/YouTubeEmbedShadowElement.cpp:

(WebCore::YouTubeEmbedShadowElement::create):

  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::create):

  • html/track/InbandDataTextTrack.h:
  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::create):

  • html/track/InbandGenericTextTrack.h:
  • html/track/InbandWebVTTTextTrack.cpp:

(WebCore::InbandWebVTTTextTrack::create):

  • html/track/InbandWebVTTTextTrack.h:
  • html/track/LoadableTextTrack.h:
  • html/track/TextTrack.h:

(WebCore::TextTrack::create):

  • html/track/TextTrackCueGeneric.cpp:
  • html/track/TextTrackCueGeneric.h:
  • html/track/TextTrackList.h:
  • html/track/VTTRegionList.h:

(WebCore::VTTRegionList::create):

7:12 PM Changeset in webkit [183974] by fpizlo@apple.com
  • 11 edits
    1 add in trunk

GC has trouble with pathologically large array allocations
https://bugs.webkit.org/show_bug.cgi?id=144609

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:

The bug was that SlotVisitor::copyLater() would return early for oversize blocks (right
after pinning them), and would skip the accounting. The GC calculates the size of the heap
in tandem with the scan to save time, and that accounting was part of how the GC would
know how big the heap was. The GC would then think that oversize copied blocks use no
memory, and would then mess up its scheduling of the next GC.

Fixing this bug is harder than it seems. When running an eden GC, we figure out the heap
size by summing the size from the last collection and the size by walking the eden heap.
But this breaks when we eagerly delete objects that the last collection touched. We can do
that in one corner case: copied block reallocation. The old block will be deleted from old
space during the realloc and a new block will be allocated in new space. In order for the
GC to know that the size of old space actually shrank, we need a field to tell us how much
such shrinkage could occur. Since this is a very dirty corner case and it only works for
very particular reasons arising from the special properties of copied space (single owner,
and the realloc is used in places where the compiler already knows that it cannot register
allocate a pointer to the old block), I opted for an equally dirty shrinkage counter
devoted just to this case. It's called bytesRemovedFromOldSpaceDueToReallocation.

To test this, I needed to add an Option to force a particular RAM size in the GC. This
allows us to write tests that assert that the GC heap size is some value X, without
worrying about machine-to-machine variations due to GC heuristics changing based on RAM
size.

  • heap/CopiedSpace.cpp:

(JSC::CopiedSpace::CopiedSpace): Initialize the dirty shrinkage counter.
(JSC::CopiedSpace::tryReallocateOversize): Bump the dirty shrinkage counter.

  • heap/CopiedSpace.h:

(JSC::CopiedSpace::takeBytesRemovedFromOldSpaceDueToReallocation): Swap out the counter. Used by the GC when it does its accounting.

  • heap/Heap.cpp:

(JSC::Heap::Heap): Allow the user to force the RAM size.
(JSC::Heap::updateObjectCounts): Use the dirty shrinkage counter to good effect. Also, make this code less confusing.

  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::copyLater): The early return for isOversize() was the bug. We still need to report these bytes as live. Otherwise the GC doesn't know that it owns this memory.

  • jsc.cpp: Add size measuring hooks to write the largeish test.

(GlobalObject::finishCreation):
(functionGCAndSweep):
(functionFullGC):
(functionEdenGC):
(functionHeapSize):

  • runtime/Options.h:
  • tests/stress/new-array-storage-array-with-size.js: Fix this so that it actually allocates ArrayStorage arrays and tests the thing it was supposed to test.
  • tests/stress/new-largeish-contiguous-array-with-size.js: Added. This tests what the other test accidentally started testing, but does so without running your system out of memory.

(foo):
(test):

Tools:


Add a --filter option that restricts the set of tests we run. I needed it to fix this bug
and it's a frequently requested feature.

Also add the ability to run a test pretending that your system has a particular RAM size.
This is useful for GC tests, and the new GC test that I added uses this.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

  • Scripts/run-jsc-stress-tests:
7:05 PM Changeset in webkit [183973] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Bump EFL version to 1.14.0
https://bugs.webkit.org/show_bug.cgi?id=144743

Reviewed by Darin Adler.

Bump EFL and elementary version to 1.14.0 and removed
md5sum, because it isn't used at all if hash is present.

  • efl/jhbuild.modules:
6:59 PM Changeset in webkit [183972] by saambarati1@gmail.com
  • 8 edits in trunk/Source/JavaScriptCore

Global functions should be initialized as JSFunctions in byte code
https://bugs.webkit.org/show_bug.cgi?id=144178

Reviewed by Geoffrey Garen.

This patch makes the initialization of global functions more explicit by
moving initialization into bytecode. It also prepares JSC for having ES6
style lexical scoping because initializing global functions in bytecode
easily allows global functions to be initialized with the proper scope that
will have access to global lexical variables. Global lexical variables
should be visible to global functions but don't live on the global object.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedProgramCodeBlock::visitChildren):

  • bytecode/UnlinkedCodeBlock.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):

  • bytecompiler/BytecodeGenerator.h:
  • runtime/Executable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):

  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:
6:55 PM Changeset in webkit [183971] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] MediaControls: disappear while scrubbing
https://bugs.webkit.org/show_bug.cgi?id=144777
<rdar://problem/20065572>

Reviewed by Eric Carlson.

If we are scrubbing we shouldn't hide the controls.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.hideControls): Return early if we are scrubbing.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype): Add initial value for _potentiallyScrubbing and
rename from non-underscored value throughout the file.
(ControllerIOS.prototype.handleTimelineTouchEnd): When we finish scrubbing, reset
the timer to hide the controls.

6:46 PM Changeset in webkit [183970] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

REGRESSION (r183300): Fixed elements flash when scrolling
https://bugs.webkit.org/show_bug.cgi?id=144778
rdar://problem/20769741

Reviewed by Dean Jackson.

After r183300 we can detached layer backing store when outside the coverage region.
However, position:fixed layers are moved around by the ScrollingCoordinator behind
GraphicsLayer's back, so we can do layer flushes with stale information about layer
geometry.

To avoid dropping backing store for layers in this situation, prevent backing
store detachment on layers registered with the ScrollingCoordinator as viewport-constrained
layers. Preventing detachment on a layer also prevents detachment on all descendant
layers.

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setAllowsBackingStoreDetachment):
(WebCore::GraphicsLayer::allowsBackingStoreDetachment):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): Set m_intersectsCoverageRect to true
if backing store detachment is prevented.
(WebCore::GraphicsLayerCA::recursiveCommitChanges): Set a bit in the CommitState to
communicate to descendants that detachment is prevented.

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::CommitState::CommitState): Deleted.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::setIsScrollCoordinatedWithViewportConstrainedRole):

  • rendering/RenderLayerBacking.h:

(WebCore::RenderLayerBacking::setScrollingNodeIDForRole): If registering with a non-zero
nodeID for the ViewportConstrained role, turn off backing store detachment.

6:23 PM Changeset in webkit [183969] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

ASSERTION when pasting text into the WebInspector console
https://bugs.webkit.org/show_bug.cgi?id=144774

Reviewed by Ryosuke Niwa.

Fix assertion in didChangeSelection() meant to check that calling
editorState() does not cause a synchronous layout. The assertion
was not correct as it was relying on FrameView::needsLayout() and
we would hit it if calling editorState() would schedule a layout.
Instead, the new assertion relies on FrameView::layoutCount(),
which is more accurate.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didChangeSelection):

6:08 PM Changeset in webkit [183968] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebKit/mac

Fix iPhone 6 iOS simulator Build.
following http://trac.webkit.org/changeset/183954.

Reviewed by Daniel Bates.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView pressureChangeWithEvent:]):

5:59 PM Changeset in webkit [183967] by weinig@apple.com
  • 5 edits
    4 adds in trunk

Consider implementing Document.scrollingElement
<rdar://problem/20845213>
https://bugs.webkit.org/show_bug.cgi?id=143609

Reviewed by Simon Fraser.

Source/WebCore:

Add the non-compliant implementation of Document.scrollingElement that the spec,
found at http://dev.w3.org/csswg/cssom-view/#dom-document-scrollingelement,
says we should have while we have non-compliant implementations of Element.scrollTop
and Element.scrollLeft (fixing that is tracked by https://bugs.webkit.org/show_bug.cgi?id=106133).

Tests: fast/dom/Document/scrollingElement-quirks-mode.html

fast/dom/Document/scrollingElement-standards-mode.html

  • dom/Document.cpp:

(WebCore::Document::scrollingElement):

  • dom/Document.h:
  • dom/Document.idl:

LayoutTests:

  • fast/dom/Document/scrollingElement-quirks-mode-expected.txt: Added.
  • fast/dom/Document/scrollingElement-quirks-mode.html: Added.
  • fast/dom/Document/scrollingElement-standards-mode-expected.txt: Added.
  • fast/dom/Document/scrollingElement-standards-mode.html: Added.
5:54 PM Changeset in webkit [183966] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix the x86 32bits build

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-05-07

  • assembler/X86Assembler.h:
5:45 PM Changeset in webkit [183965] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] While scrubbing and holding down, video continues to play
https://bugs.webkit.org/show_bug.cgi?id=144776
<rdar://problem/20863757>

Reviewed by Simon Fraser.

When we are scrubbing a video, we should pause playback. As we
let go of the scrubber playback can resume (but only if it was
playing originally).

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.createControls): Listen for touchstart on the scrubber.
(ControllerIOS.prototype.handleTimelineInput): Call the prototype, but pause if necessary.
(ControllerIOS.prototype.handleTimelineChange): Just moved this to be with the other timeline functions.
(ControllerIOS.prototype.handleTimelineTouchStart): Add the listeners for end and cancel. Remember that we are
potentially about to scrub.
(ControllerIOS.prototype.handleTimelineTouchEnd): Remove the listeners.

5:38 PM Changeset in webkit [183964] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.6

New tag.

5:23 PM Changeset in webkit [183963] by benjamin@webkit.org
  • 28 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Add basic DFG/FTL support for Math.round
https://bugs.webkit.org/show_bug.cgi?id=144725

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

This patch adds two optimizations targeting Math.round():
-Add a DFGNode ArithRound corresponding to the intrinsic RoundIntrinsic.
-Change the MacroAssembler to be stricter on how we fail to convert a double

to ingeter. Previously, any number valued zero would fail, now we only
fail for -0.

Since ArithRound speculate it produces int32, the MacroAssembler assembler
part became necessary because zero is a pretty common output of Math.round()
and we would OSR exit a lot (and eventually recompile for doubles).

The implementation itself of the inline Math.round() is exactly the same
as the C function that exists for Math.round(). We can very likely do better
but it is a good start known to be valid and inlining alone alread provides
significant speedups.

  • assembler/X86Assembler.h:

(JSC::X86Assembler::movmskpd_rr):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::branchConvertDoubleToInt32):
When we have a zero, get the sign bit out of the double and check if is one.

I'll look into doing the same improvement for ARM.

  • bytecode/SpeculatedType.cpp:

(JSC::typeOfDoubleRounding):
(JSC::typeOfDoubleFRound): Deleted.

  • bytecode/SpeculatedType.h:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::roundShouldSpeculateInt32):
(JSC::DFG::Graph::negateShouldSpeculateMachineInt): Deleted.

  • dfg/DFGNode.h:

(JSC::DFG::Node::arithNodeFlags):
(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::hasArithMode):

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithRound):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

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

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::convertDoubleToInt32):
(JSC::FTL::LowerDFGToLLVM::compileDoubleAsInt32):
(JSC::FTL::LowerDFGToLLVM::compileArithRound):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::ceil64):

  • jit/ThunkGenerators.cpp:
  • runtime/MathCommon.cpp:
  • runtime/MathCommon.h:
  • runtime/MathObject.cpp:

(JSC::mathProtoFuncRound):

  • tests/stress/math-round-basics.js: Added.

(mathRoundOnIntegers):
(mathRoundOnDoubles):
(mathRoundOnBooleans):
(uselessMathRound):
(mathRoundWithOverflow):
(mathRoundConsumedAsDouble):
(mathRoundDoesNotCareAboutMinusZero):
(mathRoundNoArguments):
(mathRoundTooManyArguments):
(testMathRoundOnConstants):
(mathRoundStructTransition):
(Math.round):

5:20 PM Changeset in webkit [183962] by saambarati1@gmail.com
  • 7 edits in trunk

exceptionFuzz tests should explicitly initialize the exceptionFuzz boolean in JavaScript code through a function in jsc.cpp
https://bugs.webkit.org/show_bug.cgi?id=144753

Reviewed by Mark Lam.

Source/JavaScriptCore:

This allows the BytecodeGenerator to freely emit startup code that "may"
throw exceptions without worrying that this startup code will trigger
the exceptionFuzz exception. The exceptionFuzz counter will only begin
ticking when the 'enableExceptionFuzz' function is explicitly called in
the exceptionFuzz tests.

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionEnableExceptionFuzz):

  • tests/exceptionFuzz/3d-cube.js:
  • tests/exceptionFuzz/date-format-xparb.js:
  • tests/exceptionFuzz/earley-boyer.js:

Tools:

  • Scripts/jsc-stress-test-helpers/js-exception-fuzz:
5:17 PM Changeset in webkit [183961] by akling@apple.com
  • 9 edits in trunk/Source

Optimize serialization of quoted JSON strings.
<https://webkit.org/b/144754>

Reviewed by Darin Adler.

Source/JavaScriptCore:

Optimized the serialization of quoted strings into JSON by moving the logic into
StringBuilder so it can make smarter decisions about buffering.

12% progression on Kraken/json-stringify-tinderbox (on my Mac Pro.)

  • bytecompiler/NodesCodegen.cpp:

(JSC::ObjectPatternNode::toString): Use the new StringBuilder API.

  • runtime/JSONObject.h:
  • runtime/JSONObject.cpp:

(JSC::Stringifier::Holder::appendNextProperty):
(JSC::appendStringToStringBuilder): Deleted.
(JSC::appendQuotedJSONStringToBuilder): Deleted.
(JSC::Stringifier::appendQuotedString): Deleted.
(JSC::Stringifier::appendStringifiedValue): Moved the bulk of this logic
to StringBuilder and call that from here.

Source/WebKit2:

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::asJSON): Use the new StringBuilder API.

Source/WTF:

Add a StringBuilder API for appending a quoted JSON string. This is used by
JSON.stringify() to implement efficient appending of strings while escaping
quotes, control characters and \uNNNN-style characters.

The main benefit comes from only doing a single buffer expansion up front,
instead of doing it every time we append something. The fudge factor is pretty
large for 16-bit strings, since the maximum number of output characters per
input character is 6.

  • wtf/text/StringBuilder.cpp:

(WTF::appendQuotedJSONStringInternal):
(WTF::StringBuilder::appendQuotedJSONString):

  • wtf/text/StringBuilder.h:
4:32 PM Changeset in webkit [183960] by Said Abou-Hallawa
  • 6 edits in trunk/Source/WebCore

Applying a filter on an SVG element, which is larger than 4096 pixels, causes this element to be rendered shifted to the left
https://bugs.webkit.org/show_bug.cgi?id=144335

Reviewed by Daniel Bates.

Address comments raised by Darin Adler in review.

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::sizeNeedsClamping):
(WebCore::ImageBuffer::clampedSize):
(WebCore::ImageBuffer::isSizeClamped): Deleted.

  • platform/graphics/ImageBuffer.h:

The condition for the negative width/height in isSizeClamped() was wrong. Use
FloatSize::isEmpty() instead and rename the function to sizeNeedsClamping().
The new function should return the opposite of the old function return value.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::asUnmultipliedImage):
(WebCore::FilterEffect::asPremultipliedImage):
(WebCore::FilterEffect::copyUnmultipliedImage):
(WebCore::FilterEffect::copyPremultipliedImage):
(WebCore::FilterEffect::createUnmultipliedImageResult):
(WebCore::FilterEffect::createPremultipliedImageResult):

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::updateBackingStoreRect):
(WebCore::FilterEffectRendererHelper::beginFilterEffect):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):
Call the new function and negate the condition for the return value.

4:29 PM Changeset in webkit [183959] by ggaren@apple.com
  • 6 edits in trunk/Source/bmalloc

Release assert in com.apple.WebKit.WebContent under JavaScriptCore: JSC::JSONProtoFuncStringify
https://bugs.webkit.org/show_bug.cgi?id=144758

Reviewed by Andreas Kling.

This was an out-of-memory error when trying to shrink a string builder.
bmalloc was missing the optimization that allowed realloc() to shrink
without copying. So, let's add it.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::reallocate): Added Large and XLarge cases for
shrinking without copying. This isn't possible for small and medium
objects, and probably not very profitable, either.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::findXLarge):
(bmalloc::Heap::deallocateXLarge):

  • bmalloc/Heap.h: Refactored this code to return a reference to an

XLarge range. This makes the code reusable, and also makes it easier
for realloc() to update metadata.

  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::split): Allow allocated objects to split because
that's what realloc() wants to do, and there's nothing intrinsically
wrong with it.

4:08 PM Changeset in webkit [183958] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • editing/mac/EditorMac.mm:

(WebCore::dataInRTFDFormat):
(WebCore::dataInRTFFormat):

4:08 PM Changeset in webkit [183957] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Occasional null deref in WebImmediateActionController
https://bugs.webkit.org/show_bug.cgi?id=144772
<rdar://problem/20811128>

Reviewed by Beth Dakin.

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]):
(-[WebImmediateActionController _animationControllerForDataDetectedText]):
(-[WebImmediateActionController _animationControllerForDataDetectedLink]):
Null-check TextIndicators before dereferencing.

3:46 PM Changeset in webkit [183956] by commit-queue@webkit.org
  • 19 edits
    2 adds in trunk

Applying a filter on an SVG element, which is larger than 4096 pixels, causes this element to be rendered shifted to the left
https://bugs.webkit.org/show_bug.cgi?id=144335

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-05-07
Reviewed by Darin Adler.

Source/WebCore:

When the SVG element is larger than 4096x4096 pixels and it has a filter,
a clipper or a masker, the ImageBuffer which is created for drawing the
sourceGraphicBuffer has to be clamped to this size. The reason for this
clamping is the FilterEffect simply ignores processing any ImageBuffer
larger than this size.

The bug was happening because we did not propagate the clamping logic to
the FilterEffect. The FilterEffect result ImageBuffer was not clamped as
what we do for drawing the sourceGraphicBuffer. If only the destination
point is specified, the GraphicsContext::drawImageBuffer() assumes the
source and the destination images have the same size which is not true
with the clamping.

The fix is to add the clamping logic to the FilterEffect. Two places we
need to change. (1) FilterEffect::createImageBufferResult() has to apply
the same clamping we do in SVGRenderingContext::createImageBuffer(). (2)
FilterEffect::drawingRegionOfInputImage() has to consider the clamping
when mapping from absolute coordinates to the ImageBuffer coordinates.

Tests: svg/filters/big-sized-off-viewport-filter.svg

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::isSizeClamped):
(WebCore::ImageBuffer::clampedSize):
(WebCore::ImageBuffer::clampedRect):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::setSpaceSize): Move all the clamping helper methods
from SVGRenderingContext and RenderSVGResourceFilter to the ImageBuffer.

  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::platformApplySoftware): Use logicalSize() of the
result image instead of using absolutePaintRect(). The later returns the
rectangle of the element without clamping.

  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::fitsInMaximumImageSize): Deleted.

  • rendering/svg/RenderSVGResourceFilter.h:
  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applySVGMask):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::buildPattern):
(WebCore::RenderSVGResourcePattern::createTileImage): Make the modifications
which are needed because of moving the clamping helper methods to ImageBuffer
and because of changing the prototype of SVGRenderingContext methods.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::drawingRegionOfInputImage): Consider the clamping
when mapping from absolute coordinates to the ImageBuffer coordinates.

(WebCore::FilterEffect::createImageBufferResult): Apply the same clamping
we do in SVGRenderingContext::createImageBuffer() when creating the
FilterEffect result ImageBuffer.

(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::asUnmultipliedImage):
(WebCore::FilterEffect::asPremultipliedImage):
(WebCore::FilterEffect::copyUnmultipliedImage):
(WebCore::FilterEffect::copyPremultipliedImage):
(WebCore::FilterEffect::createUnmultipliedImageResult):
(WebCore::FilterEffect::createPremultipliedImageResult):
(WebCore::FilterEffect::maxFilterArea): Deleted.
(WebCore::FilterEffect::isFilterSizeValid): Deleted.

  • platform/graphics/filters/FilterEffect.h: Use the new ImageBuffer clamping

helper methods and delete the local ones.

  • platform/graphics/transforms/AffineTransform.cpp:

(WebCore::AffineTransform::scaleNonUniform):
(WebCore::AffineTransform::scale):
(WebCore::AffineTransform::translate):

  • platform/graphics/transforms/AffineTransform.h: Add new scale and translate

overloads to AffineTransform.

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::updateBackingStoreRect):
(WebCore::FilterEffectRendererHelper::beginFilterEffect): Code clean up.

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::calculateScreenFontSizeScalingFactor):
(WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):
Return the AffineTransform instead of passing it through the reference of
an argument.

(WebCore::SVGRenderingContext::createImageBuffer):
(WebCore::SVGRenderingContext::createImageBufferForPattern): Deleted.
Code clean up and method rename.

(WebCore::SVGRenderingContext::clampedAbsoluteTargetRect): Deleted.
(WebCore::SVGRenderingContext::clampedAbsoluteSize): Deleted.

  • rendering/svg/SVGRenderingContext.h: Move the clamping helper methods to

the ImageBuffer class.

LayoutTests:

  • svg/filters/big-sized-off-viewport-filter-expected.svg: Added.
  • svg/filters/big-sized-off-viewport-filter.svg: Added.

Ensure when applying a filter on a large SVG element, the viewport of the
SVG includes the correct drawing part of this element.

3:35 PM Changeset in webkit [183955] by Yusuke Suzuki
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

FunctionCallBracketNode should store the base value to the temporary when subscript has assignment
https://bugs.webkit.org/show_bug.cgi?id=144678

Reviewed by Geoffrey Garen.

Currently, FunctionCallBracketNode directly use the RegisterID returned by emitNode.
But if the base part is the local register and the subscript part has assignment to it, the base result is accidentally rewritten.

function t() { var ok = {null: function () { } }; ok[ok = null](); }
t(); Should not throw error.

This patch takes care about subscriptHasAssignment.
By using emitNodeForLeftHandSide, when there's assignment to local variables in RHS,
it correctly moves the LHS value to a temporary register.

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionCallBracketNode::emitBytecode):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeFunctionCallNode):

  • parser/NodeConstructors.h:

(JSC::FunctionCallBracketNode::FunctionCallBracketNode):

  • parser/Nodes.h:
  • tests/stress/assignment-in-function-call-bracket-node.js: Added.

(shouldBe):
(shouldBe.):

3:32 PM Changeset in webkit [183954] by Beth Dakin
  • 15 edits in trunk

New force-related DOM events should fire in WK1 views
https://bugs.webkit.org/show_bug.cgi?id=144663
-and corresponding-
rdar://problem/20281886

Reviewed by Sam Weinig.

Source/WebCore:

All of the WK1 mouse events need to take the correspondingPressureEvent.

  • page/EventHandler.h:

Make correspondingPressureEvent a part of CurrentEventScope. This is needed to
have accurate pressure information for all of the mouse events in subframes.

  • page/mac/EventHandlerMac.mm:

(WebCore::correspondingPressureEventSlot):
(WebCore::EventHandler::correspondingPressureEvent):
(WebCore::CurrentEventScope::CurrentEventScope):
(WebCore::CurrentEventScope::~CurrentEventScope):

These events don’t have an associated pressure, so send nil for the
correspondingPressureEvent.
(WebCore::EventHandler::wheelEvent):
(WebCore::EventHandler::keyEvent):

Pipe through correspondingPressureEvent.
(WebCore::EventHandler::mouseDown):
(WebCore::EventHandler::mouseDragged):
(WebCore::EventHandler::mouseUp):
(WebCore::EventHandler::mouseMoved):

New function to handle pressure change events.
(WebCore::EventHandler::pressureChange):

Pipe through correspondingPressureEvent.
(WebCore::EventHandler::passMouseMovedEventToScrollbars):
(WebCore::EventHandler::currentPlatformMouseEvent):

Take the correspondingPressureEvent in order to build a PlatformMouseEvent with
the correct pressure information.

  • platform/mac/PlatformEventFactoryMac.h:
  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::globalPointForEvent):
(WebCore::pointForEvent):
(WebCore::mouseButtonForEvent):
(WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder):
(WebCore::PlatformEventFactory::createPlatformMouseEvent):

Source/WebKit:

Pass the lastPressureEvent to WebCore.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _updateMouseoverWithEvent:]):
(-[WebHTMLView rightMouseUp:]):
(-[WebHTMLView menuForEvent:]):
(-[WebHTMLView acceptsFirstMouse:]):
(-[WebHTMLView shouldDelayWindowOrderingForEvent:]):
(-[WebHTMLView mouseDown:mouseDown:]):
(-[WebHTMLView mouseDragged:]):
(-[WebHTMLView mouseUp:mouseUp:]):

New NSRespnder method for pressure changes.
(-[WebHTMLView pressureChangeWithEvent:]):

New BOOL _contentPreventsDefault tracks whether the HitTestResult prevented the
default action. Get rid of willHandleMouseDown; now that the gesture recognizer
sets delaysPrimaryMouseButtonEvents to NO, we don’t need this.

  • WebView/WebImmediateActionController.h:
  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _clearImmediateActionState]):

Set all of the immediateActionStages on EventHandler. This is critical to keep
link navigation happening at the right time now that
delaysPrimaryMouseButtonEvents is set to NO.
(-[WebImmediateActionController performHitTestAtPoint:]):
(-[WebImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
(-[WebImmediateActionController immediateActionRecognizerDidCancelAnimation:]):
(-[WebImmediateActionController immediateActionRecognizerDidCompleteAnimation:]):

Use a dummy animation controller if the content prevents default.
(-[WebImmediateActionController _defaultAnimationController]):
(-[WebImmediateActionController _updateImmediateActionItem]):
(-[WebImmediateActionController webView:willHandleMouseDown:]): Deleted.

Set delaysPrimaryMouseButtonEvents to NO so that we get existing mouse events when
we expect to.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Cache the most recent pressure event so that we can send it to WebCore for all of
the mouse events.
(-[WebView _pressureEvent]):
(-[WebView _setPressureEvent:]):

  • WebView/WebViewData.h:
  • WebView/WebViewData.mm:

(-[WebViewPrivate dealloc]):

  • WebView/WebViewInternal.h:

Source/WebKit/mac:

Pass the lastPressureEvent to WebCore.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _updateMouseoverWithEvent:]):
(-[WebHTMLView rightMouseUp:]):
(-[WebHTMLView menuForEvent:]):
(-[WebHTMLView acceptsFirstMouse:]):
(-[WebHTMLView shouldDelayWindowOrderingForEvent:]):
(-[WebHTMLView mouseDown:mouseDown:]):
(-[WebHTMLView mouseDragged:]):
(-[WebHTMLView mouseUp:mouseUp:]):

New NSRespnder method for pressure changes.
(-[WebHTMLView pressureChangeWithEvent:]):

New BOOL _contentPreventsDefault tracks whether the HitTestResult prevented the
default action. Get rid of willHandleMouseDown; now that the gesture recognizer
sets delaysPrimaryMouseButtonEvents to NO, we don’t need this.

  • WebView/WebImmediateActionController.h:
  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _clearImmediateActionState]):

Set all of the immediateActionStages on EventHandler. This is critical to keep
link navigation happening at the right time now that
delaysPrimaryMouseButtonEvents is set to NO.
(-[WebImmediateActionController performHitTestAtPoint:]):
(-[WebImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
(-[WebImmediateActionController immediateActionRecognizerDidCancelAnimation:]):
(-[WebImmediateActionController immediateActionRecognizerDidCompleteAnimation:]):

Use a dummy animation controller if the content prevents default.
(-[WebImmediateActionController _defaultAnimationController]):
(-[WebImmediateActionController _updateImmediateActionItem]):
(-[WebImmediateActionController webView:willHandleMouseDown:]): Deleted.

Set delaysPrimaryMouseButtonEvents to NO so that we get existing mouse events when
we expect to.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Cache the most recent pressure event so that we can send it to WebCore for all of
the mouse events.
(-[WebView _pressureEvent]):
(-[WebView _setPressureEvent:]):

  • WebView/WebViewData.h:
  • WebView/WebViewData.mm:

(-[WebViewPrivate dealloc]):

  • WebView/WebViewInternal.h:

Tools:

PlatformEventFactory::createPlatformMouseEvent() takes the last pressure event
now. Just send nil.

  • TestWebKitAPI/Tests/mac/MenuTypesForMouseEvents.mm:

(TestWebKitAPI::buildAndPerformTest):

3:25 PM Changeset in webkit [183953] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Media Controls: Scrubber should be independent of actual video time, causes scrubber to be jumpy.
https://bugs.webkit.org/show_bug.cgi?id=144700.
<rdar://problem/19997548>

Reviewed by Jer Noble.

Update time and timeline during the timeline input event instead of the wrapper's mousemove.
(Controller.prototype.handleWrapperMouseMove):
(Controller.prototype.handleTimelineMouseMove):
(Controller.prototype.drawTimelineBackground):

(Controller.prototype.updateControlsWhileScrubbing):
Updates time and scrubber to reflect timeline user input.

3:23 PM Changeset in webkit [183952] by mmaxfield@apple.com
  • 1 edit
    1 delete in trunk

Cleanup after r183940
https://bugs.webkit.org/show_bug.cgi?id=144768

Unreviewed.

Looks like the empty directories were not deleted.

  • Source/PAL: Removed.
  • Source/PAL/Configurations: Removed.
  • Source/PAL/PAL.xcodeproj: Removed.
  • Source/PAL/graphics: Removed.
3:16 PM Changeset in webkit [183951] by yoav@yoav.ws
  • 7 edits
    2 adds in trunk

Handle meta viewport in HTMLPreloadScanner
https://bugs.webkit.org/show_bug.cgi?id=144640

Reviewed by Dean Jackson.

Source/WebCore:

Add support for the <meta> tag to the HTMLPreloadScanner
and when the meta tag's name is viewport, get the document
to process the tag's attribute value, and set its ViewportArgument.

Tests: fast/dom/HTMLMetaElement/meta-preloader.html

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::tagIdFor): Added meta.
(WebCore::TokenPreloadScanner::initiatorFor): Added meta.
(WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner): Call document.processViewport is meta viewport encountered.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Keep track of meta viewport tags.
(WebCore::testPreloadScannerViewportSupport): Testing function that makes sure this functionality is working.

  • html/parser/HTMLPreloadScanner.h:
  • testing/Internals.cpp:

(WebCore::Internals::testPreloaderSettingViewport): Calls the testing function.

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

LayoutTests:

Added a layout test that is simply calling an internals method
that tests the HTMLPreloadScanner.

  • fast/dom/HTMLMetaElement/meta-preloader-expected.txt: Added.
  • fast/dom/HTMLMetaElement/meta-preloader.html: Added.
3:03 PM Changeset in webkit [183950] by Alan Bujtas
  • 4 edits
    2 adds in trunk

REGRESSION (r164449): Subpixel rendering: http://www.apple.com/iphone-6/ "Faster wireless." image displays vertical black line on 1x displays at specific window width.
https://bugs.webkit.org/show_bug.cgi?id=144723
rdar://problem/18307094

Reviewed by Simon Fraser.

This patch ensures that the backing store's graphics layer is always positioned on a device pixel boundary.

While calculating the backing store's graphics layer location, its ancestor layer's compositing bounds is taken into account.
However the compositing bounds is an unsnapped value, so in order to place the graphics layer properly,
we need to pixel align the ancestor compositing bounds before using it to adjust the child's graphics layer position.

Source/WebCore:

Test: compositing/ancestor-compositing-layer-is-on-subpixel-position.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

LayoutTests:

  • compositing/ancestor-compositing-layer-is-on-subpixel-position-expected.html: Added.
  • compositing/ancestor-compositing-layer-is-on-subpixel-position.html: Added.
  • platform/mac/compositing/layer-creation/overlap-animation-container-expected.txt: progression.
2:45 PM Changeset in webkit [183949] by Martin Robinson
  • 2 edits in trunk/Source/WebKit2

Followup fixes to r183936

I neglected to include a few review comments when I landed the patch.

  • UIProcess/gtk/TextCheckerGtk.cpp:

(WebKit::checkerState): Remove double semicolons.
(WebKit::updateStateForAllProcessPools): Use range-based-for loop here and
give the function a better name.
(WebKit::TextChecker::setContinuousSpellCheckingEnabled): Use new function name
(WebKit::TextChecker::setGrammarCheckingEnabled):Use new function name
(WebKit::TextChecker::ignoreWord): Fix unused parameter warning.
(WebKit::updateStateForAllContexts): Deleted.

2:22 PM Changeset in webkit [183948] by yoav@yoav.ws
  • 3 edits
    2 adds in trunk

Fix sizes crash and add invalid value tests.
https://bugs.webkit.org/show_bug.cgi?id=144739

Reviewed by Darin Adler.

Source/WebCore:

Make sure that only CSS length are allowed when the sizes parser is calling computeLength.
Also make sure that for invalid lengths, the 100vw default is used instead.

Test: fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html

  • css/SourceSizeList.cpp:

(WebCore::computeLength):
(WebCore::defaultLength):
(WebCore::parseSizesAttribute):

LayoutTests:

Add tests that make sure that invalid values are properly handled, and a 100vw
source-size length is being used for srcset and for intrinsic dimension calculation.

  • fast/dom/HTMLImageElement/sizes/image-sizes-invalids-expected.txt: Added.
  • fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html: Added.
2:16 PM Changeset in webkit [183947] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Expanding Object with only proto looks poor should have a label
https://bugs.webkit.org/show_bug.cgi?id=144755

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-07
Reviewed by Timothy Hatcher.

Better handle cases where expanding an object has only a proto
and no other properties.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.mode.prototype.this.children.length):
(WebInspector.ObjectTreePropertyTreeElement):

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree-outline li .empty-message):

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView.createEmptyMessageElement):
(WebInspector.ObjectTreeView.comparePropertyDescriptors):
(WebInspector.ObjectTreeView.prototype._updateProperties):

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

Web Inspector: Fix querySelector in ResourceContentView.js, caught by assertion
https://bugs.webkit.org/show_bug.cgi?id=144756

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-07
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ResourceContentView.js:

(WebInspector.ResourceContentView.prototype._hasContent):
Ensure querySelector call is using the class name correctly.

2:09 PM Changeset in webkit [183945] by Michael Catanzaro
  • 12 edits in trunk

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

Reviewed by Martin Robinson.

.:

Don't set DEVELOPMENT_BUILD. We check whether it is defined for conditional compilation, not
what it is defined to, so defining it to 0 effectively turned it on always.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Use DEVELOPER_MODE rather than DEVELOPMENT_BUILD.

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

(WebCore::availableLocales):

Source/WebKit2:

Use DEVELOPER_MODE rather than DEVELOPMENT_BUILD.

  • Shared/gtk/ProcessExecutablePathGtk.cpp:

(WebKit::findWebKitProcess):

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(injectedBundleDirectory):

  • UIProcess/gtk/TextCheckerGtk.cpp:

(WebKit::enchantTextChecker):

Tools:

Use DEVELOPER_MODE rather than DEVELOPMENT_BUILD.

  • MiniBrowser/gtk/main.c:

(main):

1:59 PM Changeset in webkit [183944] by basile_clement@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add missing braces on a single-line if that got expanded in r183939

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::buildExitArguments):

1:45 PM Changeset in webkit [183943] by Simon Fraser
  • 7 edits
    2 adds in trunk

Remove the WK1-only code path for independently composited iframes
https://bugs.webkit.org/show_bug.cgi?id=144722

Reviewed by Dean Jackson.
Source/WebCore:

In WebKit1 on Mac, we allowed iframes to be composited independently of their
parent document, relying on the fact that the frame's platform view can host
a layer-backed view. However, this ran into bugs (rdar://problem/18862298),
and triggers the assertion at the end of FrameView::updateLayoutAndStyleIfNeededRecursive(),
because the compositing update after a layout can dirty style in notifyIFramesOfCompositingChange().

Removing the WK1-only code path solves these problems. It also eliminates the need
to do compositing-specific frame overlap testing.

  • page/FrameView.cpp:

(WebCore::FrameView::setIsOverlapped): No need to do compositing-related things here.
Any iframe that gets composited will participate in the normal compositing overlap
testing in its parent frame.
(WebCore::FrameView::hasCompositedContentIncludingDescendants): Deleted.
(WebCore::FrameView::hasCompositingAncestor): Deleted.

  • page/FrameView.h:
  • rendering/RenderLayerCompositor.cpp: Replace ownerElement() checks in this file

with an isMainFrameCompositor() for readability. Some 0->nullptr.
(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
(WebCore::RenderLayerCompositor::chromeClient):
(WebCore::RenderLayerCompositor::enclosingCompositorFlushingLayers):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::layerTreeAsText):
(WebCore::RenderLayerCompositor::frameContentsCompositor):
(WebCore::RenderLayerCompositor::setIsInWindow):
(WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):
(WebCore::RenderLayerCompositor::requiresCompositingForFrame): frameRenderer.requiresAcceleratedCompositing()
already bails on no content RenderView, so the shouldPropagateCompositingToEnclosingFrame() check does
nothing and is removed.
(WebCore::RenderLayerCompositor::isAsyncScrollableStickyLayer):
(WebCore::RenderLayerCompositor::requiresScrollLayer):
(WebCore::RenderLayerCompositor::documentUsesTiledBacking):
(WebCore::RenderLayerCompositor::isMainFrameCompositor):
(WebCore::RenderLayerCompositor::shouldCompositeOverflowControls):
(WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):
(WebCore::RenderLayerCompositor::requiresContentShadowLayer):
(WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForHeader):
(WebCore::RenderLayerCompositor::updateLayerForFooter):
(WebCore::RenderLayerCompositor::ensureRootLayer): Main frame attaches via ChromeClient,
all other frames attach via parent frame.
(WebCore::RenderLayerCompositor::notifyIFramesOfCompositingChange): This call to
scheduleSetNeedsStyleRecalc(SyntheticStyleChange) was the source of dirtying style after
layout, but is no longer needed so remove it.
(WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
(WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
(WebCore::RenderLayerCompositor::scrollingCoordinator):
(WebCore::RenderLayerCompositor::graphicsLayerFactory):
(WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames): Deleted.
(WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Deleted.
(WebCore::RenderLayerCompositor::mainFrameBackingIsTiled): Deleted. This was mis-named;
it really asks whether the document uses tiled backing, but does not check for main frame.

  • rendering/RenderLayerCompositor.h:
  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paintContents): No need to do frame overlap testing for
compositing now.

LayoutTests:

Results different from WK2, because WK1 does not make layers for scrollbars.

  • platform/mac-wk1/compositing/visible-rect/iframe-no-layers-expected.txt: Added.
1:13 PM Changeset in webkit [183942] by dino@apple.com
  • 6 edits
    2 adds in trunk

Handle backdrop views that have to tile
https://bugs.webkit.org/show_bug.cgi?id=142317
<rdar://problem/20049088>

Reviewed by Simon Fraser.

Take 2 - this was rolled out because Mavericks was crashing.

Source/WebCore:

Make sure backdrop layers don't tile. If they are big
enough, we'll leave it to the platform compositor to handle.

This also fixes a bug where if a layer changed from a backdrop
type to a tiled type, it would still retain its custom appearance
and we'd try to add children to the wrong layer.

Test: compositing/media-controls-bar-appearance-big.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Check if
a layer needs a backdrop before checking if it needs to tile.

Source/WebKit2:

Add some better logging for custom appearance.

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTextStream::operator<<):

LayoutTests:

A test that creates some backdrop views, then makes them
big enough that it would trigger tiling (which we don't want
to happen).

  • compositing/media-controls-bar-appearance-big-expected.txt: Added.
  • compositing/media-controls-bar-appearance-big.html: Added.
1:06 PM Changeset in webkit [183941] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Add PLUGIN_ARCHITECTURE(X11) around m_frameRectInWindowCoordinates in NetscapePlugin.
https://bugs.webkit.org/show_bug.cgi?id=144490

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

m_frameRectInWindowCoordinates in NetscapePlugin is currently being used only for
the windowed plugins, and the windowed plugins are only supported on X11. So we can
guard it with PLUGIN_ARCHITECTURE(X11).

No new tests, no behavior change.

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::geometryDidChange):

  • WebProcess/Plugins/Netscape/NetscapePlugin.h:
11:52 AM Changeset in webkit [183940] by mmaxfield@apple.com
  • 13 edits
    11 deletes in trunk

Revert "Introducing the Platform Abstraction Layer (PAL)"
https://bugs.webkit.org/show_bug.cgi?id=144751

Unreviewed.

PAL should be a new target inside WebCore, rather than a top-level folder.

.:

  • WebKit.xcworkspace/contents.xcworkspacedata: Add it to the workspace.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Updated

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig: Updated

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig: Updated

Tools:

  • Scripts/build-webkit: Add it to build-webkit.
11:39 AM Changeset in webkit [183939] by basile_clement@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Dumping OSR ExitValue should expand materializations only once
https://bugs.webkit.org/show_bug.cgi?id=144694

Reviewed by Filip Pizlo.

Currently, dumping OSR exit values will print the full materialization
information each time it is encountered. We change it to print only a
brief description (only the materialization's address), and print the
whole set of materializations later on.

This makes the dump less confusing (less likely to think that two
instances of the same materialization are different), and will be a
necessary change if/when we support materialization cycles.

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLExitValue.cpp:

(JSC::FTL::ExitValue::dumpInContext):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::buildExitArguments):

11:32 AM Changeset in webkit [183938] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Worker threads leak WeakBlocks (as seen on leaks bot)
<https://webkit.org/b/144721>
<rdar://problem/20848288>

Reviewed by Darin Adler.

Nuke any remaining empty WeakBlocks when the Heap is being torn down.
Trying to peek into these blocks after the VM is dead would be a bug anyway.

This fixes a ~750 KB leak seen on the leaks bot.

  • heap/Heap.cpp:

(JSC::Heap::~Heap):

11:26 AM Changeset in webkit [183937] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

[WK2][Fullscreen] Fullscreen video does not enter low-power mode.
https://bugs.webkit.org/show_bug.cgi?id=144744

Reviewed by Darin Adler.

One of the requirements of entering low-power compositing mode is that no masking layers
are present in any of the ancestors of the fullscreen video layer. So once our fullscreen
transition animation completes, remove the mask layer entirely from our clipping layer.
This means it needs to be re-created and added when entering fullscreen, rather than just
at initialization time.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController initWithWindow:webView:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):

11:24 AM Changeset in webkit [183936] by Martin Robinson
  • 10 edits
    3 deletes in trunk

[GTK] All spell checking layout tests fail
https://bugs.webkit.org/show_bug.cgi?id=144648

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

Simplify and complete the GTK+ spell-checking implementation. Instead of using
the EFL/GTK+ only WKTextChecker interface, directly implement Enchant spell-checking
in TextCheckerGtk. The per-context spell checking API is an illusion, since all
WKTextChecker implementations will adjust the same singleton. This can be a first step
toward removing it entirely.

Also complete the implementation of the TextChecker interface by duplicating the EFL code,
which reuses other methods in the same class. Eventually this duplication will collapse,
once GTK+ and EFL can share an Enchant implementation.

  • PlatformGTK.cmake:
  • UIProcess/API/gtk/WebKitPrivate.h:
  • UIProcess/API/gtk/WebKitTextChecker.cpp: Removed.
  • UIProcess/API/gtk/WebKitTextChecker.h: Removed.
  • UIProcess/API/gtk/WebKitWebContext.cpp: Remove WebTextChecker usage and

replace it with calls directly to the TextChecker singleton via static methods.

  • UIProcess/TextChecker.h:
  • UIProcess/gtk/TextCheckerGtk.cpp: Move the WebTextChecker enchant implementation

here and reuse the EFL version of WebKit::TextChecker::requestCheckingOfString.
Also initialize languages properly when building for developer builds. This
allows WebKitTestRunner to work even when it doesn't explicitly set the languages.

Source/WTF:

  • wtf/Platform.h: Activate UNIFIED_TEXT_CHECKING for GTK+.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip and reclassify previously failing tests.
  • platform/gtk/editing/spelling/spellcheck-paste-expected.txt: Removed.
11:01 AM Changeset in webkit [183935] by ggaren@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Don't branch when accessing the callee
https://bugs.webkit.org/show_bug.cgi?id=144645

Reviewed by Michael Saboff.

The branch was added in <http://trac.webkit.org/changeset/81040> without
explanation.

kling found it to be a performance problem. See <https://webkit.org/b/144586>.

Our theory of access to Registers is that it's up to the client to access
them in the right way. So, let's do that.

  • interpreter/CallFrame.h:

(JSC::ExecState::callee):
(JSC::ExecState::setCallee): Call the field object instead of function
because nothing guarantees that it's a function.

  • interpreter/ProtoCallFrame.h:

(JSC::ProtoCallFrame::callee):
(JSC::ProtoCallFrame::setCallee):

  • interpreter/Register.h:
  • runtime/JSObject.h:

(JSC::Register::object): Just do a cast like our other accessors do.
(JSC::Register::operator=):
(JSC::Register::function): Deleted.
(JSC::Register::withCallee): Deleted.

10:59 AM Changeset in webkit [183934] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Tried to fix the build.

  • Configurations/WebCoreTestSupport.xcconfig:
10:45 AM Changeset in webkit [183933] by adachan@apple.com
  • 4 edits
    1 add in trunk

Source/WebKit2:
Fix a couple of cases where the backForwardListState's currentIndex is not set correctly in WebBackForwardList::backForwardListState().
https://bugs.webkit.org/show_bug.cgi?id=144666

Reviewed by Darin Adler.

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::backForwardListState):
If the first item is filtered out and the currentIndex is 0, don't decrement currentIndex.
If all the items are filtered out, set currentIndex to the uninitialized value.

Tools:
Add a test for WKPageCopySessionState() with filtering.
https://bugs.webkit.org/show_bug.cgi?id=144666

Reviewed by Darin Adler.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/WKPageCopySessionStateWithFiltering.cpp: Added.

(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::filterFirstItemCallback):
(TestWebKitAPI::filterAllItemsCallback):
(TestWebKitAPI::createSessionStates):
(TestWebKitAPI::TEST):

10:30 AM Changeset in webkit [183932] by jdiggs@igalia.com
  • 11 edits in trunk

AX: [ATK] The pre element should be mapped to ATK_ROLE_SECTION; not ATK_ROLE_PANEL
https://bugs.webkit.org/show_bug.cgi?id=144702

Reviewed by Chris Fleizach.

Source/WebCore:

Add a new PreRole AccessibilityRole so that per-platform mapping is possible.
Map PreRole to ATK_ROLE_SECTION for Efl and Gtk; to NSAccessibilityGroupRole
for the Mac. Add PreRole to the list of "text type" ATK roles.

No new tests. Existing tests were updated to reflect the corrected mapping.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/atk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::allowsTextRanges):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):
(roleIsTextType):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):

LayoutTests:

In addition to updating the platform expectations for Efl and Gtk, the computed
roles test needed to be updated because there is not a one-to-one mapping between
the HTML pre element and any ARIA role type.

  • accessibility/roles-computedRoleString-expected.txt: Updated.
  • accessibility/roles-computedRoleString.html: Updated.
  • platform/efl/accessibility/roles-exposed-expected.txt: Updated.
  • platform/gtk/accessibility/roles-exposed-expected.txt: Updated.
10:18 AM Changeset in webkit [183931] by Csaba Osztrogonác
  • 4 edits in trunk/Source/WebKit2

[WK2] Remove Windows cruft
https://bugs.webkit.org/show_bug.cgi?id=144745

Reviewed by Darin Adler.

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::getMemorySize):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:

(IPC::ArgumentCoder<WebCore::GraphicsSurfaceToken>::encode):
(IPC::ArgumentCoder<WebCore::GraphicsSurfaceToken>::decode):

  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::getMemorySize):

9:46 AM Changeset in webkit [183930] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

REGRESSION(r182032): [GTK] Production build is broken after r182032
https://bugs.webkit.org/show_bug.cgi?id=144736

Reviewed by Martin Robinson.

The problem is that r182032 moved the NetworkProcess sources from
WebKit2 sources to NetworkProcess sources. That's not a problem
for developer builds where all internal symbols are exported, but
doesn't work for production builds because all those internal
symbols are private.

  • CMakeLists.txt: Use a different name for common network process

sources variable.

  • PlatformMac.cmake: Append common network process sources to the

network process source list for Mac.

9:26 AM Changeset in webkit [183929] by mitz@apple.com
  • 22 edits in trunk/Source

<rdar://problem/19317140> [Xcode] Remove usage of AspenFamily.xcconfig in Source/
https://bugs.webkit.org/show_bug.cgi?id=144727

Reviewed by Darin Adler.

Source/bmalloc:

  • Configurations/Base.xcconfig: Dont’s include AspenFamily.xcconfig, and define

INSTALL_PATH_PREFIX for the iOS 8.x Simulator.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define

INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator.

Source/PAL:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define

INSTALL_PATH_PREFIX for the iOS 8.x Simulator.

Source/ThirdParty:

  • gtest/xcode/Config/General.xcconfig: Don’t include AspenFamily.xcconfig.

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define

INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator.

Source/WebCore:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig.
  • Configurations/WebCore.xcconfig: For iOS, define INSTALL_PATH in terms of

INSTALL_PATH_PREFIX, and set INSTALL_PATH_PREFIX for the iOS 8.x Simulator.

  • Configurations/WebCoreTestSupport.xcconfig: Define INSTALL_PATH in terms of

INSTALL_PATH_PREFIX and INSTALL_PATH_ACTUAL, and define INSTALL_PATH_PREFIX for the iOS 8.x
Simulator.

Source/WebKit/mac:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig.
  • Configurations/WebKitLegacy.xcconfig: Define INSTALL_PATH in terms of

INSTALL_PATH_PREFIX and INSTALL_PATH_ACTUAL, and define INSTALL_PATH_PREFIX for the iOS 8.x
Simulator.

Source/WebKit2:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define

INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator.

  • Configurations/WebKit2.xcconfig: Define INSTALL_PATH_ACTUAL and let INSTALL_PATH be

derived from it and INSTALL_PATH_PREFIX. Don’t override DYLIB_INSTALL_NAME_BASE for iOS,
because we define LD_DYLIB_INSTALL_NAME directly where needed.

Source/WTF:

  • Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define

INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator.

8:56 AM Changeset in webkit [183928] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Special-case Int32 values in JSON.stringify().
<https://webkit.org/b/144731>

Reviewed by Michael Saboff.

Add a fast path for serializing Int32 values to JSON. This is far faster than dragging
simple integers through the full-blown dtoa() machinery.

~50% speedup on Kraken/json-stringify-tinderbox.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue):

8:31 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
7:12 AM Changeset in webkit [183927] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac] Playback target isn't set on new element
https://bugs.webkit.org/show_bug.cgi?id=144724

Reviewed by Jer Noble.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Call setShouldPlayToPlaybackTarget
if necessary.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget): Remember
the setting in case we don't have an AVPlayer yet.

7:03 AM Changeset in webkit [183926] by Csaba Osztrogonác
  • 2 edits
    6 deletes in trunk/LayoutTests

[EFL] Unreviewed gardening.

Removed stale expected files, because these tests are reftests now. (as RWT suggested)
Commented old expectations after r183925 to avoid having ambiguous expectations.

  • platform/efl/TestExpectations:
  • platform/efl/animations/cross-fade-background-image-expected.png: Removed.
  • platform/efl/animations/cross-fade-background-image-expected.txt: Removed.
  • platform/efl/css3/masking/clip-path-circle-relative-overflow-expected.png: Removed.
  • platform/efl/css3/masking/clip-path-polygon-evenodd-expected.png: Removed.
  • platform/efl/css3/masking/clip-path-polygon-expected.png: Removed.
  • platform/efl/css3/masking/clip-path-polygon-nonzero-expected.png: Removed.
6:48 AM Changeset in webkit [183925] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[EFL] Mouseevent/hover tests fail with XorgDriver
https://bugs.webkit.org/show_bug.cgi?id=144741

Unreviewed gardening, mark failing tests, skip timeouting tests.

  • platform/efl/TestExpectations:
3:39 AM Changeset in webkit [183924] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.9.1

WebKitGTK+ 2.9.1

3:14 AM Changeset in webkit [183923] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[EFL] REGRESSION(r183907): It made all inspector-protocol test crash
https://bugs.webkit.org/show_bug.cgi?id=144737

Unreviewed gardening, skip crashing tests.

  • platform/efl/TestExpectations:
3:05 AM Changeset in webkit [183922] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.1 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.9.1.
2:49 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
1:26 AM Changeset in webkit [183921] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WTF

[GTK] Clean up RunLoop implementation
https://bugs.webkit.org/show_bug.cgi?id=144729

Reviewed by Carlos Garcia Campos.

Clean up the RunLoop implementation for the GTK port,
removing unnecessary methods and using simpler variable names.

Nested GMainLoops in RunLoop::run() are now created for the
RunLoop's GMainContext, and not for the default context (enforced
through the null argument to g_main_loop_new()).

  • wtf/RunLoop.h:
  • wtf/gtk/RunLoopGtk.cpp:

(WTF::RunLoop::RunLoop):
(WTF::RunLoop::~RunLoop):
(WTF::RunLoop::run):
(WTF::RunLoop::stop):
(WTF::RunLoop::wakeUp):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::innermostLoop): Deleted.
(WTF::RunLoop::pushNestedMainLoop): Deleted.
(WTF::RunLoop::popNestedMainLoop): Deleted.

1:09 AM Changeset in webkit [183920] by yoav@yoav.ws
  • 3 edits
    4 adds in trunk

Fix <script srcset> being loaded by the preloader.
https://bugs.webkit.org/show_bug.cgi?id=144675

Reviewed by Darin Adler.

Source/WebCore:

Fix HTMLPreloadScanner to make sure that srcset is only loaded
when it is present on an <img>.

Tests: http/tests/loading/preload-script-src.html

http/tests/loading/preload-script-srcset-ignored.html

  • html/parser/HTMLPreloadScanner.cpp:

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

LayoutTests:

Add preloader tests to make sure that <script src> is preloaded,
and <script srcset> is not.

  • http/tests/loading/preload-script-src-expected.txt: Added.
  • http/tests/loading/preload-script-src.html: Added.
  • http/tests/loading/preload-script-srcset-ignored-expected.txt: Added.
  • http/tests/loading/preload-script-srcset-ignored.html: Added.
1:02 AM Changeset in webkit [183919] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[GTK] Remove dock button from Web Inspector window
https://bugs.webkit.org/show_bug.cgi?id=144728

Reviewed by Sergio Villar Senin.

We added the dock buttons to the headerbar, because they were
removed from the inspector toolbar, but with the new tabbed
design, the dock buttons are back in the toolbar and look redundant.

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):
(WebKit::WebInspectorProxy::dockButtonClicked): Deleted.

12:09 AM Changeset in webkit [183918] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Add missing type traits specialization for PlatformDisplayWayland
https://bugs.webkit.org/show_bug.cgi?id=144671

Reviewed by Carlos Garcia Campos.

  • platform/graphics/wayland/PlatformDisplayWayland.h:

Add missing type traits specialization for the PlatformDisplayWayland
class via the SPECIALIZE_TYPE_TRAITS_PLATFORM_DISPLAY macro.

May 6, 2015:

11:53 PM Changeset in webkit [183917] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:51 PM Changeset in webkit [183916] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32

New tag.

11:20 PM Changeset in webkit [183915] by ap@apple.com
  • 2 edits in trunk/Tools

iOS build fix attempt

Link WebKitTestRunnerApp to WebKit, now that we don't have WebKit2.

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
11:13 PM Changeset in webkit [183914] by yoav@yoav.ws
  • 1 edit
    7 adds in trunk/LayoutTests

Add srcset preloader tests
https://bugs.webkit.org/show_bug.cgi?id=144674

Reviewed by Darin Adler.

Add several preloader tests making sure that the when srcset is being preloaded,
the right resource is fetched, and the other resource is not.

  • http/tests/loading/preload-img-src-expected.txt: Added.
  • http/tests/loading/preload-img-src.html: Added.
  • http/tests/loading/preload-img-srcset-expected.txt: Added.
  • http/tests/loading/preload-img-srcset-sizes-expected.txt: Added.
  • http/tests/loading/preload-img-srcset-sizes.html: Added.
  • http/tests/loading/preload-img-srcset.html: Added.
  • http/tests/resources/checkPreload.js: Added.

(checkForPreload):

11:07 PM Changeset in webkit [183913] by Manuel Rego Casasnovas
  • 3 edits
    4 adds in trunk

[CSS Grid Layout] Mark grid shorthands as layout dependent
https://bugs.webkit.org/show_bug.cgi?id=144687

Reviewed by Darin Adler.

Source/WebCore:

grid-template and grid shorthands were not marked us layout dependent,
so you can end up calling them before the grid has been laid out and
you'll get a crash at valueForGridTrackList() because of trackPositions
won't be initialized yet.

Tests: fast/css-grid-layout/grid-shorthand-computed-style-crash.html

fast/css-grid-layout/grid-template-shorthand-computed-style-crash.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::isLayoutDependent): Add the grid shorthands only if the object
is a RenderGrid as otherwise it's not needed (using the same condition
for grid-template-columns and grid-template-rows properties too).

LayoutTests:

  • fast/css-grid-layout/grid-shorthand-computed-style-crash-expected.txt: Added.
  • fast/css-grid-layout/grid-shorthand-computed-style-crash.html: Added.
  • fast/css-grid-layout/grid-template-shorthand-computed-style-crash-expected.txt: Added.
  • fast/css-grid-layout/grid-template-shorthand-computed-style-crash.html: Added.
10:15 PM Changeset in webkit [183912] by rniwa@webkit.org
  • 5 edits in trunk

ToT WebKit crashes while loading ES6 compatibility table
https://bugs.webkit.org/show_bug.cgi?id=144726

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

The bug was caused by parseClass superfluously avoiding to build up the string after seeing {.

Always build the identifier here as it could be a method name.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass):

LayoutTests:

Added new test cases.

  • js/class-syntax-string-and-numeric-names-expected.txt:
  • js/script-tests/class-syntax-string-and-numeric-names.js:
9:56 PM Changeset in webkit [183911] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

[WK2][Fullscreen] Elements whose children extend beyond their bounds are clipped in fullscreen mode.
https://bugs.webkit.org/show_bug.cgi?id=144716

Reviewed by Darin Adler.

We create a mask animation for the transition between windowed and fullscreen modes, on the
assumption that the element being taken into fullscreen mode does not have visible children
who extend beyond that elements bounds. This assumption breaks down in the case where div
with absolutely positioned children is taken fullscreen. While we can't necessarily make the
transition look correct in this case, we can remove the mask after the transition completes.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):

  • WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:

(WebKit::removeAllMediaKeyStorageForOriginPath):

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

Fix a build break on EFL debug build
https://bugs.webkit.org/show_bug.cgi?id=144654

Patch by Jinwoo Jeong <jw00.jeong@samsung.com> on 2015-05-06
Reviewed by Gyuyoung Kim.

No new tests, just build fix.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::CoordinatedGraphicsScene::paintToGraphicsContext):

8:23 PM Changeset in webkit [183909] by dbates@webkit.org
  • 15 edits in trunk/Source

[iOS][WK2] Pause/resume database thread when UIProcess enters/leaves the background
https://bugs.webkit.org/show_bug.cgi?id=144657
<rdar://problem/18894598>

Reviewed by Andy Estes.

Source/WebCore:

Export WebCore functionality to pause and resume the database thread so that we can
make use of this functionality from WebKit2.

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

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

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

(WebCore::DatabaseServer::setPauseAllDatabases): Added; turns around and calls
DatabaseTracker::tracker().setDatabasesPaused() to pause or resume the database thread.
For now, we guard this call with PLATFORM(IOS). We'll look to remove this guard once
we fix <https://bugs.webkit.org/show_bug.cgi?id=144660>.

  • Modules/webdatabase/DatabaseServer.h:

Source/WebKit2:

Pause and resume the database thread when the UIProcess enters and leaves the background,
respectively, so that we avoid WebProcess termination due to holding a locked SQLite
database file when the WebProcess is suspended. This behavior matches the analagous
behavior in Legacy WebKit.

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

(-[WKContentView _applicationDidEnterBackground:]): Call WebPageProxy::applicationDidEnterBackground()
when the UIProcess enters the background.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidEnterBackground): Added; notify the WebProcess to pause the database thread.
We temporarily take out background assertion on the WebProcess before sending this notification to ensure that the
WebProcess is running to receive it. We'll release this assertion when the WebProcess replies that it received the
notification.

  • WebProcess/WebCoreSupport/WebDatabaseManager.cpp:

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

  • WebProcess/WebCoreSupport/WebDatabaseManager.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Add message ApplicationDidEnterBackground(). Also,

add empty lines to help demarcate this message and the other UIKit application lifecycle-related
messages from the rest of the list of messages.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::applicationWillEnterForeground): Resume the database thread.
(WebKit::WebPage::applicationDidEnterBackground): Pause the database thread.

8:19 PM Changeset in webkit [183908] by ryuan.choi@navercorp.com
  • 2 edits in trunk/Source/WebKit2

[EFL] ewk_view_page_contents_get() API test is flaky
https://bugs.webkit.org/show_bug.cgi?id=144683

Reviewed by Gyuyoung Kim.

Callback of WKPageGetContentsAsMHTMLData contains WKData which does not contain null terminated character.

  • UIProcess/API/efl/ewk_view.cpp: Pass the data of string instead of WKData directly.

(ewkViewPageContentsAsMHTMLCallback):

8:04 PM Changeset in webkit [183907] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Web Inspector: Docking Toolbar Buttons do not respect Docking Availability
https://bugs.webkit.org/show_bug.cgi?id=144714

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-06
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector.updateDockingAvailability):
(WebInspector._updateDockNavigationItems):
Update the Toolbar UI based on docking availability.
Assume docking is unavailable by default.

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.setDockingUnavailable):
Add back this API as the backend may be calling it when
docking availability changes. This just calls out to
global WebInspector functions to update the Toolbar UI.

  • UserInterface/Base/Test.js:

(WebInspector.updateDockedState):
(WebInspector.updateDockingAvailability):
Do nothing in tests.

Source/WebKit2:

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::attachAvailabilityChanged):

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::setDockingUnavailable):

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

When docking availability changes, inform the inspector page
so it can respond by updating its UI.

7:53 PM Changeset in webkit [183906] by Brent Fulgham
  • 13 edits
    8 adds in trunk

Scroll-snap points do not handle margins and padding propertly
https://bugs.webkit.org/show_bug.cgi?id=144647
<rdar://problem/20829473>

Reviewed by Simon Fraser.

Source/WebCore:

The calculation of scroll snap points was incorrect because it did not account for margins or padding.
This was fixed by using the "paddingBoxRect" to represent the overall size of the view area, and
subtracting the relevant padding when computing the size of the scroll snap offsets.

Extend testing internals with accessor methods to retrieve string representations of the scroll snap
offsets and scroll snap coordinates computed during layout. These values are used in the new
'css3/scroll-snap/scroll-snap-offsets-and-coordinates.html' test.

New tests:

  • css3/scroll-snap/scroll-snap-offsets-and-coordinates.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html: Added.
  • css/LengthFunctions.h: Expose the 'valueForLength' method so we can use it in WebCoreTestSupport.
  • dom/Node.h: Expose the 'renderBox' method so we can use it in WebCoreTestSupport.
  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::appendChildSnapOffsets): Use 'contentBoxRect' for overall size, so that we don't use padding
as part of our offset calculations.
(WebCore::updateSnapOffsetsForScrollableArea): Ditto.

  • rendering/RenderBox.h: Expose 'canBeScrolledAndHasScrollableArea' for use in WebCoreTestSupport.
  • rendering/style/RenderStyle.h: Expose 'scrollSnapCoordinates' for use in WebCoreTestSupport.
  • testing/Internals.cpp:

(WebCore::appendOffsets): Helper function.
(WebCore::Internals::scrollSnapOffsets): Added.

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

LayoutTests:

Add new scroll-snap tests that cover elements with borders, padding, and rotation. Also correct the
cause of the 'scroll-snap-mandatory-overflow.html' test flakiness by making sure the mouse is always
inside the element when starting new wheel gestures.

Also add a new 'generic' test that confirms that we have expected results for scroll-snap coordinates
and calculated scroll-snap-offset values.

  • css3/scroll-snap/scroll-snap-offsets.html: Added.
  • platform/mac-wk2/TestExpectations: Remove flakiness annotation for scroll-snap-mandatory-overflow.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html:
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html: Added.
7:32 PM Changeset in webkit [183905] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: The text in the left pane overlaps the "Filter Time Events" field in the Timeline after the Web Inspector is resized
https://bugs.webkit.org/show_bug.cgi?id=144720

Reviewed by Timothy Hatcher.

  • UserInterface/Views/FilterBar.css:

(.filter-bar):
(.filter-bar > .navigation-bar):
(.filter-bar > input[type="search"]):
(.filter-bar > .navigation-bar > .item): Deleted.
Filter bar now has opaque background and height updated to the ubiquitous 29px.

7:09 PM Changeset in webkit [183904] by mmaxfield@apple.com
  • 8 edits in trunk/Source/WebCore

Clean up TextRun constructors
https://bugs.webkit.org/show_bug.cgi?id=144712

Reviewed by Zalan Bujtas.

This patch uses constructor forwarding to make TextRun's constructors much simpler. It then
updates the implementations of RenderBlock::constructTextRun() to be more consistent with
TextRun (via using StringViews).

No new tests because there is no behavior change.

  • mathml/MathMLMencloseElement.cpp:

(WebCore::MathMLMencloseElement::longDivLeftPadding):

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::constructTextRun):
(WebCore::constructTextRunInternal): Deleted.

  • rendering/RenderBlock.h:
  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintReplaced):
(WebCore::RenderEmbeddedObject::unavailablePluginIndicatorBounds):
(WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):

  • rendering/svg/SVGTextMetricsBuilder.cpp:

(WebCore::SVGTextMetricsBuilder::SVGTextMetricsBuilder):

  • platform/win/DragImageWin.cpp:

(WebCore::createDragImageForLink):

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

[WK2] Simplify AsyncRequestImpl::ArgumentType parameters
https://bugs.webkit.org/show_bug.cgi?id=144689

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

Remove duplicated typename and ::type from AsyncRequestImpl related
function parameters.

  • Shared/AsyncRequest.h:
5:59 PM Changeset in webkit [183902] by Matt Baker
  • 2 edits in trunk/Tools

Unreviewed, updated my list of email addresses.

  • Scripts/webkitpy/common/config/contributors.json:
5:28 PM Changeset in webkit [183901] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebCore

Rename URL::copy() to URL::isolatedCopy() to match String.
https://bugs.webkit.org/show_bug.cgi?id=144684

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

No new tests, no behavior change.

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::setURL):
(WebCore::WebSocketHandshake::httpURLForAuthenticationAndCookies):

  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::BlobRegistryContext::BlobRegistryContext):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::updatePredictedBaseURL):

  • html/parser/HTMLResourcePreloader.h:

(WebCore::PreloadRequest::PreloadRequest):

  • html/parser/XSSAuditor.cpp:

(WebCore::XSSAuditor::init):

  • platform/CrossThreadCopier.cpp:

(WebCore::URL>::copy):

  • platform/URL.cpp:

(WebCore::URL::isolatedCopy):
(WebCore::URL::copy): Deleted.

  • platform/URL.h:

(WebCore::URLCapture::URLCapture):

  • platform/network/BlobPart.h:

(WebCore::BlobPart::detachFromCurrentThread):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::copyData):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::copyData):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):

5:26 PM Changeset in webkit [183900] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk

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

crashes on mavericks (Requested by dino on #webkit).

Reverted changeset:

"Handle backdrop views that have to tile"
https://bugs.webkit.org/show_bug.cgi?id=142317
http://trac.webkit.org/changeset/183894

4:42 PM Changeset in webkit [183899] by jonlee@apple.com
  • 2 edits in trunk/Source/WebCore

CoreTextSPI.h uses wrong version number to denote Yosemite
https://bugs.webkit.org/show_bug.cgi?id=144701

Reviewed by Dean Jackson.

  • platform/spi/cocoa/CoreTextSPI.h: Should 101000 not 10100.
4:32 PM Changeset in webkit [183898] by beidson@apple.com
  • 4 edits in trunk/Source/WebKit2

Addition review followup for:
Crash executing null AsyncRequest in IDB code.
<rdar://problem/18854856> and https://bugs.webkit.org/show_bug.cgi?id=144715

Reviewed by Darin Adler.

This patch adds a layer on top of the UniqueIDBDatabase request map to catch this coding mistake in the future.

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:

(WebKit::UniqueIDBDatabase::didCompleteBoolRequest): Get rid of the ASSERT and the temporary variable,

make it a single line which reads better.

(WebKit::UniqueIDBDatabase::didPutRecordInBackingStore): Ditto.
(WebKit::UniqueIDBDatabase::didGetRecordFromBackingStore): Ditto.
(WebKit::UniqueIDBDatabase::didOpenCursorInBackingStore): Ditto.
(WebKit::UniqueIDBDatabase::didAdvanceCursorInBackingStore): Ditto.
(WebKit::UniqueIDBDatabase::didIterateCursorInBackingStore): Ditto.
(WebKit::UniqueIDBDatabase::didCountInBackingStore): Ditto.
(WebKit::UniqueIDBDatabase::didDeleteRangeInBackingStore): Ditto.

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: Ditto.

Add the class AsyncRequestMap which shadows a HashMap but does aggressive runtime checks
in ::take() to make sure the same request was not dispatched twice in a row, and makes sure we
never try to execute a null AsyncRequest by way of a RELEASE_ASSERT.

  • Shared/AsyncRequest.h:

(WebKit::AsyncRequestMap::AsyncRequestMap):
(WebKit::AsyncRequestMap::take):
(WebKit::AsyncRequestMap::add):
(WebKit::AsyncRequestMap::clear):
(WebKit::AsyncRequestMap::values):

4:14 PM Changeset in webkit [183897] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Sane chain and string watchpoints should be set in FixupPhase or the backend rather than WatchpointCollectionPhase
https://bugs.webkit.org/show_bug.cgi?id=144665

Reviewed by Michael Saboff.

This is a step towards getting rid of WatchpointCollectionPhase. It's also a step towards
extending SaneChain to all indexing shapes.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Set the watchpoints here so that we don't need a case in WatchpointCollectionPhase.
(JSC::DFG::FixupPhase::checkArray): Clarify the need for checking the structure. We often forget why we do this instead of always using CheckArray.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString): Set the watchpoints here so that we don't need a case in WatchpointCollectionPhase.

  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle): Remove some code.
(JSC::DFG::WatchpointCollectionPhase::handleStringGetByVal): Deleted.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileStringCharAt): Set the watchpoints here so that we don't need a case in WatchpointCollectionPhase.

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

Crash executing null AsyncRequest in IDB code.
<rdar://problem/18854856> and https://bugs.webkit.org/show_bug.cgi?id=144715

Reviewed by Darin Adler.

When UniqueIDBDatabase fails to execute an operation on the database work queue it usually
dispatches an AsyncRequest ID back to the main thread with an error callback.

For two of its operations it would then also dispatch the success callback.

In those cases the main thread would first take the AsyncRequest for the error callback out
of a map and then execute it.

It would then try to take the same AsyncRequest out of the map again, fail to do so, then
execute a null AsyncRequest.

This patch fixes the two functions to not dispatch both an error and success callback.

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:

(WebKit::UniqueIDBDatabase::countInBackingStore): Return after dispatching the error callback.
(WebKit::UniqueIDBDatabase::deleteRangeInBackingStore): Ditto.

3:55 PM Changeset in webkit [183895] by jonlee@apple.com
  • 6 edits in trunk

Expose more font weights for -apple-system
https://bugs.webkit.org/show_bug.cgi?id=144707

Reviewed by Dean Jackson.

Source/WebCore:

Update to platform/mac/fast/text/systemFont.html

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::toNSFontWeight): New static method to map font weights to NSFontWeight constants available on
Yosemite and later.
(WebCore::fontWithFamily): Request the system font with a mapped weight on Yosemite and later.

  • platform/spi/mac/NSFontSPI.h: Add [NSFont systemFontWithSize:weight:], and the proper NSFontWeight

constants.

LayoutTests:

  • platform/mac/fast/text/systemFont.html: Update test to include font weights for -apple-system.
  • platform/mac/fast/text/systemFont-expected.txt: Update expectations.
3:46 PM Changeset in webkit [183894] by dino@apple.com
  • 5 edits
    2 adds in trunk

Handle backdrop views that have to tile
https://bugs.webkit.org/show_bug.cgi?id=142317
<rdar://problem/20049088>

Reviewed by Simon Fraser.

Source/WebCore:

Make sure backdrop layers don't tile. If they are big
enough, we'll leave it to the platform compositor to handle.

This also fixes a bug where if a layer changed from a backdrop
type to a tiled type, it would still retain its custom appearance
and we'd try to add children to the wrong layer.

Test: compositing/media-controls-bar-appearance-big.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Check if
a layer needs a backdrop before checking if it needs to tile.

Source/WebKit2:

Add some better logging for custom appearance.

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTextStream::operator<<):

LayoutTests:

A test that creates some backdrop views, then makes them
big enough that it would trigger tiling (which we don't want
to happen).

  • compositing/media-controls-bar-appearance-big-expected.txt: Added.
  • compositing/media-controls-bar-appearance-big.html: Added.
3:35 PM Changeset in webkit [183893] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Disable network cache efficacy logging
https://bugs.webkit.org/show_bug.cgi?id=144703
<rdar://problem/20439143>

Reviewed by Andreas Kling.

Disable network cache efficacy logging by default as we have sufficient
data for now.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::registerUserDefaultsIfNeeded):

3:32 PM Changeset in webkit [183892] by achristensen@apple.com
  • 6 edits
    1 add in trunk/Source/WebCore

[WinCairo] Compile error due to undefined symbols after r183868
https://bugs.webkit.org/show_bug.cgi?id=144692

Patch by Carlos Garcia Campos <cgarcia@igalia.com> and Per Arne Vollan <peavo@outlook.com> on 2015-05-06
Reviewed by Alex Christensen.

Speculative build fix. Add dummy PlatformDisplayWin.

  • PlatformWinCairo.cmake: Add PlatformDisplay.cpp to compilation.
  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::createPlatformDisplay):

  • platform/graphics/PlatformDisplay.h:
  • platform/graphics/win/PlatformDisplayWin.h:

Add stubs to compile.

  • WebCore.vcxproj/WebCore.vcxproj
  • WebCore.vcxproj/WebCore.vcxproj.filters

Add new files to Windows build.

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

Avoid copies in scrollOffsetForFixedPosition() and inline it.
https://bugs.webkit.org/show_bug.cgi?id=144709

Reviewed by Simon Fraser.

  • page/FrameView.cpp:

(WebCore::FrameView::frameScaleFactor):
Added so that scrollOffsetForFixedPosition() can be inlined without having to
reference Frame's implementation.

(WebCore::FrameView::scrollOffsetForFixedPosition): Deleted.
Moved this to the header.

  • page/FrameView.h:

Inline scrollOffsetForFixedPosition() and get rid of all the copying
it was doing.

2:50 PM Changeset in webkit [183890] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Perf dashboard treats Speedometer and JetStream as smaller is better
https://bugs.webkit.org/show_bug.cgi?id=144711

Reviewed by Chris Dumez.

Added the support for "Score" metric.

  • public/js/helper-classes.js:

(PerfTestRuns):

  • public/v2/data.js:

(RunsData.unitFromMetricName):
(RunsData.isSmallerBetter):

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

Fix the build.

  • UIProcess/mac/WKViewLayoutStrategy.mm:

(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):

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

No way to get a WKWebProcessPlugInFrame’s parent frame
https://bugs.webkit.org/show_bug.cgi?id=144705

Reviewed by Sam Weinig.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame _parentFrame]): Added this getter.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h: Declared new

_parentFrame property.

2:00 PM Changeset in webkit [183887] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

RenderLayer::currentTransform computes a pixel snapped rect it doesn't use.
https://bugs.webkit.org/show_bug.cgi?id=144708

Reviewed by Simon Fraser.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::currentTransform):

Only compute a pixel snapped rect if we actually end up needing it. The common case
is that this rect is not needed, so pushing it inside the two if statements
speeds up the common case.

1:52 PM Changeset in webkit [183886] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Fix the build.

  • UIProcess/mac/WKViewLayoutStrategy.mm:

(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):

  • platform/spi/cocoa/QuartzCoreSPI.h:
1:40 PM Changeset in webkit [183885] by hyatt@apple.com
  • 10 edits in trunk/Source/WebCore

Optimize topLeftLocationOffset() addition in updateLayerPosition
https://bugs.webkit.org/show_bug.cgi?id=144704

Reviewed by Dean Jackson.

  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):

  • page/FrameView.h:

Move the hasFlippedBlocks bit to FrameView instead of RenderView. Works better for inlining
the check in any renderer header, and it also makes more sense conceptually, since the RenderView
itself could be a flipped block.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layoutOverflowRectForPropagation):
Change over to the FrameView bit.

  • rendering/RenderBox.h:

(WebCore::RenderBox::applyTopLeftLocationOffset):
Add a new inlined function that can apply the top left location offset to a point without
multiple LayoutSize creations and copies. It invokes a helper for flipping that is not
inlined only in the case where actual flipped blocks exist in the render tree.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::updateFromStyle):
Set the bit on the FrameView now instead of the RenderView.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPosition):
Call the new applyTopLeftLocationOffset function so that the point can have offsets added
in without any extra copies.

(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::rangeIntersectsRect):
Switch over to the bit on the FrameView.

  • rendering/RenderView.cpp:

(WebCore::RenderView::RenderView):

  • rendering/RenderView.h:

Get rid of the bit on the RenderView.

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

Do not link tools to WebKit2.framework
https://bugs.webkit.org/show_bug.cgi?id=144699

Unreviewed build fix.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:

These linked to WebKit2 in two ways, eliminating the other one.

1:32 PM Changeset in webkit [183883] by mmaxfield@apple.com
  • 13 edits
    1 copy
    14 adds in trunk

Introducing the Platform Abstraction Layer (PAL)
https://bugs.webkit.org/show_bug.cgi?id=143358

Reviewed by Simon Fraser.

.:

  • WebKit.xcworkspace/contents.xcworkspacedata: Add it to the workspace.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Updated

Source/PAL:

Introduce a new top-level folder and static library. This is intended to be
the destination for code that currently resides in WebCore/platform. Code
will be moved from that folder into PAL file by file. Separating this
platform code into its own static library enforces layering, as well as
encourages/aids unit testing of this platform code.

This commit only creates a single symbol which is not required to build
WebKit. The reason for this is so that we can get all build issues ironed
out before requiring PAL.

For more information, see
https://lists.webkit.org/pipermail/webkit-dev/2015-March/027303.html

  • PAL.xcodeproj/project.pbxproj: Added.
  • Makefile: Added. Standard Makefile.
  • config.h: Added. Standard header.
  • PALPrefix.h: Added. Copied from WebCore.
  • graphics/Foo.h: Added. Header.
  • graphics/Foo.cpp: Added.

(foo): Placeholder symbol.

  • Configurations/Base.xcconfig: Added. Standard config files
  • Configurations/DebugRelease.xcconfig: Added. Standard config files
  • Configurations/PAL.xcconfig: Added. Standard config files

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj: Let the project know about the .a
  • Configurations/FeatureDefines.xcconfig: Updated

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig: Updated

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig: Updated

Tools:

  • Scripts/build-webkit: Add it to build-webkit.
12:26 PM Changeset in webkit [183882] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix api tests after r183877.

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):
Generate all DFAs before compiling them.

12:02 PM Changeset in webkit [183881] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] remove some unnecessary iOS-only media code
https://bugs.webkit.org/show_bug.cgi?id=144697
<rdar://problem/20229914>

Reviewed by Jer Noble.

  • html/HTMLAttributeNames.in: Remove data-youtube-id.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Remove dataYouTubeID.

11:44 AM Changeset in webkit [183880] by ap@apple.com
  • 4 edits in trunk/Tools

Do not link tools to WebKit2.framework
https://bugs.webkit.org/show_bug.cgi?id=144699

Reviewed by Tim Horton.

  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
11:37 AM Changeset in webkit [183879] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

Optimize relativePositionOffset() to avoid doing unnecessary work
https://bugs.webkit.org/show_bug.cgi?id=144698

Reviewed by Simon Fraser.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::relativePositionOffset):

Patch relativePositionOffset to avoid doing unnecessary work in the common case where
all values of top/left/right/bottom are either auto or fixed. We no longer fetch
containingBlock() into a local always, but instead just invoke the function only
when necessary.

Also avoid computing the percentage-relative maximum for the top/right/bottom/left lengths
when they are fixed values, since that maximum won't be examined at all.

10:52 AM Changeset in webkit [183878] by Martin Robinson
  • 8 edits in trunk

[FreeType] Vertical CJK glyphs should not be rendered with synthetic oblique
https://bugs.webkit.org/show_bug.cgi?id=144612

Reviewed by Darin Adler.

Source/WebCore:

No new tests. This causes fast/text/international/synthesized-italic-vertical.html to pass.

  • platform/graphics/Font.cpp:

(WebCore::Font::nonSyntheticItalicFont): Compile this method for Cairo as well.

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::glyphDataForSystemFallback): When searching for the system fallback,
ensure that we do not use synthetic oblique when rendering vertical CJK glyphs.
(WebCore::FontCascadeFonts::glyphDataForNormalVariant): Extend the CJK fix to Cairo ports.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::setSyntheticOblique): Added this helper method, because
Freetype/Cairo ports needs to be able to recreate the scaled font matrix when the
synthetic oblique settings changes.

  • platform/graphics/freetype/FontPlatformData.h: Rename initializeWithFontFace to buildScaledFont.

Remove the now unused m_horizontalOrientationMatrix member.
(WebCore::FontPlatformData::setSyntheticOblique): Added the helper here as well.

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::FontPlatformData): Calculate whether or not to use synthetic oblique here,
before buildScaledFont is called. Call buildScaledFont instead of initializeWithFontFace.
(WebCore::FontPlatformData::operator=):
(WebCore::FontPlatformData::buildScaledFont): Renamed from initializeWithFontFace, does
the same thing, except calculate whether or not to use synthetic oblique. Instead just
reads the value.
(WebCore::FontPlatformData::setOrientation): Instead of adjusting the font matrix, recreate
the entire font.
(WebCore::FontPlatformData::setSyntheticOblique): Added.
(WebCore::rotateCairoMatrixForVerticalOrientation): Deleted.
(WebCore::FontPlatformData::initializeWithFontFace): Deleted.

LayoutTests:

  • platform/gtk/TestExpectations: Remove expectation for failing test.
10:51 AM Changeset in webkit [183877] by commit-queue@webkit.org
  • 10 edits in trunk

[Content Extensions] Test splitting NFAs by max NFA size.
https://bugs.webkit.org/show_bug.cgi?id=144659

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

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):

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

(WebCore::ContentExtensions::compileRuleList):

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

Make maxNFASize a parameter so we can test it with small values.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::createNFAs):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:

(TestWebKitAPI::createNFAs):

10:47 AM Changeset in webkit [183876] by Martin Robinson
  • 3 edits in trunk/LayoutTests

Unreviewed GTK+ gardening

  • platform/gtk/TestExpectations: Remove a couple expectations tests.
  • platform/gtk/editing/execCommand/nsresponder-outdent-expected.txt:
10:31 AM Changeset in webkit [183875] by Antti Koivisto
  • 5 edits in trunk/Source

REGRESSION (r183467): Unable to start downloads in private browsing mode
https://bugs.webkit.org/show_bug.cgi?id=144533

Reviewed by Darin Adler.

Source/WebCore:

If willSendRequest delegate mutated the request we would lose the requester field value from the original.

No test runner support for mutating requests.

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):

This needs to keep the requester too.

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Deleted.

Share implementations.

Source/WebKit/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchWillSendRequest):

Use updateFromDelegatePreservingOldProperties (like WK2) instead of doing the same thing manually.

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

Don't allocate a StringImpl for every Number JSValue in JSON.stringify().
<https://webkit.org/b/144676>

Reviewed by Darin Adler.

We were creating a new String for every number JSValue passing through the JSON stringifier.
These StringImpl allocations were dominating one of the Kraken JSON benchmarks.
Optimize this by using StringBuilder::appendECMAScriptNumber() which uses a stack buffer
for the conversion instead.

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

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue):

10:02 AM Changeset in webkit [183873] by ap@apple.com
  • 5 edits in trunk/LayoutTests

Update expectations for fast/forms/button-line-height.html

  • TestExpectations:
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
9:50 AM Changeset in webkit [183872] by commit-queue@webkit.org
  • 5 edits
    1 delete in trunk/Source/JavaScriptCore

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

Caused many assertion failures (Requested by ap on #webkit).

Reverted changeset:

"GC has trouble with pathologically large array allocations"
https://bugs.webkit.org/show_bug.cgi?id=144609
http://trac.webkit.org/changeset/183847

9:42 AM Changeset in webkit [183871] by rniwa@webkit.org
  • 8 edits in trunk/Source

Toggling underline on font panel removes strike through
https://bugs.webkit.org/show_bug.cgi?id=144670
<rdar://problem/3790443>

Reviewed by Darin Adler.

Source/WebCore:

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::EditingStyle): Added a variant that takes CSSStyleDeclaration.

  • editing/EditingStyle.h:

(WebCore::EditingStyle::create): Ditto.

  • editing/Editor.cpp:

(WebCore::Editor::applyStyleToSelection): Takes Ref<EditingStyle>&& instead of RefPtr<EditingStyle>&&.

  • editing/Editor.h:
  • editing/EditorCommand.cpp:

(WebCore::applyCommandToFrame): Ditto.
(WebCore::executeStrikethrough):
(WebCore::executeUnderline):

Source/WebKit/mac:

Use setStrikeThroughChange and setUnderlineChange added in r183770 to toggle underline and strike through.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _applyEditingStyleToSelection:withUndoAction:]):
(-[WebHTMLView _styleForAttributeChange:]):
(-[WebHTMLView changeAttributes:]):

9:36 AM Changeset in webkit [183870] by jberlin@webkit.org
  • 2 edits in trunk/Source/WebCore

More build fixing.

  • page/mac/TextIndicatorWindow.mm:
9:25 AM Changeset in webkit [183869] by jberlin@webkit.org
  • 2 edits in trunk/Source/WebCore

32-bit build fix after r183859 and r183860.

  • page/mac/TextIndicatorWindow.mm:

Autosynthesis isn't available for our 32-bit builds.

9:06 AM Changeset in webkit [183868] by Carlos Garcia Campos
  • 19 edits in trunk/Source/WebCore

[EGL] Move EGLDisplay handling to PlatformDisplay and remove PlatformDisplay definition from GLDefs.h
https://bugs.webkit.org/show_bug.cgi?id=144685

Reviewed by Martin Robinson.

The EGL display is also initialized in multiple places, and could
be unified in PlatformDisplay. Remove the PlatformDisplay
definition from platform/graphics/opengl/GLDefs.h to avoid conflicts.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::PlatformDisplay): Initialize m_eglDisplay.
(WebCore::PlatformDisplay::~PlatformDisplay): Call terminateEGLDisplay().
(WebCore::PlatformDisplay::eglDisplay): Lazy intialize the EGL
display and return it.
(WebCore::PlatformDisplay::initializeEGLDisplay):
(WebCore::PlatformDisplay::terminateEGLDisplay):

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

(WebCore::sharedEGLDisplay): Use PlatformDisplay::eglDisplay().

  • platform/graphics/opengl/GLDefs.h: Remove unneeded definitions.
  • platform/graphics/opengl/GLPlatformSurface.cpp:

(WebCore::GLPlatformSurface::GLPlatformSurface): Remove
m_sharedDisplay member, PlatformDisplay::sharedDisplay() can be used instead.
(WebCore::GLPlatformSurface::sharedDisplay): Deleted.

  • platform/graphics/opengl/GLPlatformSurface.h:
  • platform/graphics/surfaces/egl/EGLConfigSelector.h: Use

EGLDisplay instead of PlatformDisplay.

  • platform/graphics/surfaces/egl/EGLContext.cpp:

(WebCore::EGLOffScreenContext::initialize): Use PlatformDisplay::eglDisplay().

  • platform/graphics/surfaces/egl/EGLHelper.cpp: Remove the

EGLDisplayConnection clas and use PlatformDisplay instead.
(WebCore::EGLHelper::eglDisplay):
(WebCore::EGLHelper::currentDisplay):
(WebCore::EGLDisplayConnection::EGLDisplayConnection): Deleted.
(WebCore::EGLDisplayConnection::~EGLDisplayConnection): Deleted.
(WebCore::EGLDisplayConnection::display): Deleted.
(WebCore::EGLDisplayConnection::terminate): Deleted.

  • platform/graphics/surfaces/egl/EGLHelper.h:
  • platform/graphics/surfaces/egl/EGLSurface.cpp:

(WebCore::EGLTransportSurface::EGLTransportSurface): Use EGLHelper::eglDisplay().
(WebCore::EGLTransportSurface::destroy): Ditto.
(WebCore::EGLOffScreenSurface::EGLOffScreenSurface): Ditto.
(WebCore::EGLOffScreenSurface::destroy): Ditto.

  • platform/graphics/surfaces/egl/EGLXSurface.cpp:

(WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
Use PlatformDisplay::eglDisplay().
(WebCore::EGLWindowTransportSurface::swapBuffers): Ditto.
(WebCore::EGLPixmapSurface::EGLPixmapSurface): Ditto.

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

(WebCore::GLXOffScreenContext::initialize): Use X11Helper::nativeDisplay().

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

(WebCore::GLXTransportSurface::GLXTransportSurface): Do not use m_sharedDisplay.
(WebCore::GLXOffScreenSurface::initialize): Ditto.

  • platform/graphics/wayland/PlatformDisplayWayland.cpp:

(WebCore::PlatformDisplayWayland::PlatformDisplayWayland): Call
PlatformDisplay::initializeEGLDisplay() to insialize the EGL display.

  • platform/graphics/wayland/PlatformDisplayWayland.h:
  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::initializeEGLDisplay): Override
PlatformDisplay::initializeEGLDisplay() to initialize the
m_eglDisplay member.

  • platform/graphics/x11/PlatformDisplayX11.h:
5:55 AM Changeset in webkit [183867] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Web Inspector: DOMStorage exception and issue with sessionStorage
https://bugs.webkit.org/show_bug.cgi?id=144646

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-06
Reviewed by Timothy Hatcher.

Source/WebCore:

  • inspector/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::findStorageArea):
Return session storage if the identifier says not local storage.

Source/WebInspectorUI:

  • UserInterface/Views/DOMStorageContentView.js:

(WebInspector.DOMStorageContentView):
(WebInspector.DOMStorageContentView.prototype._populate):
(WebInspector.DOMStorageContentView.prototype.reset): Deleted.
Always have the datagrid be available with a default sort.

(WebInspector.DOMStorageContentView.prototype._sortDataGrid.comparator):
(WebInspector.DOMStorageContentView.prototype._sortDataGrid):
Simplify and correct the order.

(WebInspector.DOMStorageContentView.prototype.cleanup):
Cleanup some uses of delete.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.sortNodesImmediately):
Provide a way to sort immediately without a visible delay.

(WebInspector.DataGrid.prototype._sortNodesCallback):
Cleanup some dead code to simplify sorting.

(WebInspector.DataGridNode.prototype._attach):
When sorting, the children list does not match the child node list,
so ensure that placeholder nodes are added to the end.

(WebInspector.PlaceholderDataGridNode.prototype.makeNormal):
Cleanup some uses of delete.

4:59 AM Changeset in webkit [183866] by youenn.fablet@crf.canon.fr
  • 10 edits
    2 moves in trunk/Source/WebCore

Move ReadableStreamJSSource.h/.cpp to ReadableJSStream.h/.cpp
https://bugs.webkit.org/show_bug.cgi?id=144567

Reviewed by Darin Adler.

In addition to renaming ReadableStreamJSSource.h/.cpp, ReadableStreamJSSource is now made a private class of
ReadableJSStream, called ReadableJSStream::Source.
Made some minor refactoring (passing some ExecState by ref and not by pointer).
No functional change, existing tests cover the changes.

  • bindings/js/JSReadableStreamCustom.cpp:
  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::Source::create):
(WebCore::ReadableJSStream::Source::Source):
(WebCore::ReadableJSStream::Source::~Source):
(WebCore::ReadableJSStream::Source::globalObject):
(WebCore::ReadableJSStream::Source::start):
(WebCore::ReadableJSStream::create):
(WebCore::ReadableJSStream::ReadableJSStream):

  • bindings/js/ReadableJSStream.h:
2:12 AM Changeset in webkit [183865] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK][WK2] The WebKit network disk cache is not enabled
https://bugs.webkit.org/show_bug.cgi?id=142821

Reviewed by Martin Robinson.

Source/WebKit2:

Enable NetworkCache for the GTK+ port.

  • config.h:

LayoutTests:

Unskip http/tests/cache/disk-cache tests.

  • platform/gtk/TestExpectations:
1:17 AM Changeset in webkit [183864] by ryuan.choi@navercorp.com
  • 2 edits in trunk/Source/WebKit2

[EFL] Remove redudant condition in ViewClientEfl::didChangeViewportAttributes
https://bugs.webkit.org/show_bug.cgi?id=144672

Reviewed by Gyuyoung Kim.

ViewClientEfl::didChangeViewportAttributes is always called when fixed layout is disabled.

  • UIProcess/efl/ViewClientEfl.cpp:

(WebKit::ViewClientEfl::didChangeViewportAttributes):
Removes condition that checks whether fixed layout is enabled.

12:06 AM Changeset in webkit [183863] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: SourceCodeTextEditor shows "undefined" instead of resource content when pausing during resource load
https://bugs.webkit.org/show_bug.cgi?id=144662

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-06
Reviewed by Timothy Hatcher.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackend.Command.prototype.promise):
Start standardizing on rejecting Promises with Error objects.

  • UserInterface/Views/ResourceContentView.js:

(WebInspector.ResourceContentView):
(WebInspector.ResourceContentView.prototype._protocolError):
When there is a protocol error, show a nice UI string for the error.

(WebInspector.ResourceContentView.prototype._contentAvailable):
(WebInspector.ResourceContentView.prototype._contentError):
(WebInspector.ResourceContentView.prototype._hasContent):
Whenever we hit an error case in ResourceContentView, check to make sure
that a subclass hasn't already populated the content view with content.
This can happen when a TextResourceContentView populates a Resource with
Script content while paused, because the Resource content would be
unavailable. We check that content has loaded by checking that the
indeterminate spinner is no longer showing.

12:02 AM Changeset in webkit [183862] by Nikita Vasilyev
  • 2 edits in trunk/LayoutTests

LayoutTests/fast/forms/button-line-height.html is broken on non-Mac/non-iOS ports
https://bugs.webkit.org/show_bug.cgi?id=144673

Note: See TracTimeline for information about the timeline view.