WebKit-https.git
5 years ago[CSS Grid Layout] Fix positioning grid items using named grid lines/areas
svillar@igalia.com [Fri, 28 Feb 2014 18:34:48 +0000 (18:34 +0000)]
[CSS Grid Layout] Fix positioning grid items using named grid lines/areas
https://bugs.webkit.org/show_bug.cgi?id=129372

Reviewed by Darin Adler.

Source/WebCore:

Our code was assuming that a <custom-ident> in
-webkit-grid-{column|row}-{start|end} and
-webkit-grid-{column|row} was always a grid area name. That's
wrong because the <custom-ident> could be also a explicitly named
grid line or the an implicitly named grid line created by a grid
area definition.

The style resolution code was not correct either. This patch fixes
it so it now matches the spec, which means that:
- first we try to match any existing grid area.
- then if there is a named grid line with the name
<custom-ident>-{start|end} for -webkit-grid-{column|row}-{start|end}
defined before the grid area then we use it instead of the grid
area.
- otherwise if there is a named grid line we resolve to the first such line.
- otherwise we treat it as 'auto'.

Fixing this uncovered a bug in GridPosition, we were not using the
name of the stored grid area to check if two GridPositions were
the same.

Tests: fast/css-grid-layout/grid-item-position-changed-dynamic.html
       fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html

* css/StyleResolver.cpp:
(WebCore::gridLineDefinedBeforeGridArea): New function to check if
a given named grid line was defined before an implicit named grid
line created by a grid area definition.
(WebCore::StyleResolver::adjustNamedGridItemPosition): New
function that adjusts the position of a GridPosition parsed as a
grid area.
(WebCore::StyleResolver::adjustGridItemPosition): Use the new
function adjustNamedGridItemPosition to adjust the positions of
named grid lines.
* css/StyleResolver.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveNamedGridLinePositionFromStyle): Use GridPosition:: namespace.
(WebCore::RenderGrid::resolveGridPositionFromStyle): Ditto.
(WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition): Ditto.
* rendering/RenderGrid.h:
* rendering/style/GridPosition.h:
(WebCore::GridPosition::adjustGridPositionForRowEndColumnEndSide): Moved from RenderGrid.cpp.
(WebCore::GridPosition::adjustGridPositionForSide): Ditto.
(WebCore::GridPosition::operator==): Use the named grid line to check equality.

LayoutTests:

Added a new test that checks that we correctly position grid items
using named grid lines, grid areas and also with the implicit
named grid lines created by grid areas.

I'm also importing a test from Blink that checks that we can
dynamically change the position of a grid item by changing the
name of the grid lines used to position it.

* fast/css-grid-layout/grid-item-position-changed-dynamic-expected.txt:
Merged from Blink r153913 by <jchaffraix@chromium.org>.
* fast/css-grid-layout/grid-item-position-changed-dynamic.html: Ditto.
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution-expected.txt: Added.
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164869 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[CSS Shapes] Update line segments for ShapeInside only if the new line is wide enough
zoltan@webkit.org [Fri, 28 Feb 2014 18:14:41 +0000 (18:14 +0000)]
[CSS Shapes] Update line segments for ShapeInside only if the new line is wide enough
https://bugs.webkit.org/show_bug.cgi?id=129461

Reviewed by David Hyatt.

Shape-inside can make a line only narrower than the original line width, thus we don't need
to update the line/shape segments in fitBelowFloats for every single line inside shape-inside.
This patch adds a helper function, which updates the line segments, furthermore it updates the
line segments only when the content would fit without the shape.

No new tests, no behavior change.

* rendering/line/BreakingContextInlineHeaders.h: Use new helper.
(WebCore::updateSegmentsForShapes):
* rendering/line/LineWidth.cpp: Use new helper.
(WebCore::LineWidth::updateLineSegment): Add new helper.
(WebCore::LineWidth::fitBelowFloats):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164868 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoparagraphs with different directionality in textarea with unicode-bidi: plaintext...
mario.prada@samsung.com [Fri, 28 Feb 2014 18:12:52 +0000 (18:12 +0000)]
paragraphs with different directionality in textarea with unicode-bidi: plaintext are aligned the same
https://bugs.webkit.org/show_bug.cgi?id=71194

Reviewed by David Hyatt.

Merged from Blink r157263 by <igor.o@sisa.samsung.com>
<https://src.chromium.org/viewvc/blink?revision=157263&view=revision>

Source/WebCore:

In the css3-text spec (http://www.w3.org/TR/css3-text/#bidi-linebox):

The start and end edges of a line box are determined by the inline
base direction of the line box. In most cases, this is given by
its containing block's computed ‘direction’. However if its
containing block has ‘unicode-bidi: plaintext’, the inline base
direction the line box must be determined by the base direction of
the bidi paragraph to which it belongs: that is, the bidi
paragraph for which the line box holds content.

This patch just implements the behavior described above modifying
updateLogicalWidthForAlignment and setting the bidi level of the
RootInlineBox.

* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
(WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::deleteEllipsisLineBoxes):
(WebCore::RenderBlockFlow::checkLinesForTextOverflow):
(WebCore::RenderBlockFlow::startAlignedOffsetForLine):

LayoutTests:

Modified expectations for two layout tests to make them conforming to the spec.

* fast/text/international/unicode-bidi-plaintext-expected.html:
* platform/gtk/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
* platform/mac-mountainlion/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164867 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUpdate meta-referrer behavior for invalid policies
jochen@chromium.org [Fri, 28 Feb 2014 18:09:24 +0000 (18:09 +0000)]
Update meta-referrer behavior for invalid policies
https://bugs.webkit.org/show_bug.cgi?id=129475

Source/WebCore:

This patch aligns the behavior with the CSP 1.1 referrer directive,
where the fallback for an invalid value is the "never" policy.

Original patch from Mike West: https://src.chromium.org/viewvc/blink?view=rev&revision=165627

Reviewed by Alexey Proskuryakov.

Test: http/tests/security/referrer-policy-invalid.html

* dom/Document.cpp:
(WebCore::Document::processReferrerPolicy):

LayoutTests:

Reviewed by Alexey Proskuryakov.

* http/tests/security/referrer-policy-invalid-expected.txt: Added.
* http/tests/security/referrer-policy-invalid.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164866 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[iOS] DumpRenderTree Perl Support may build against wrong SDK and toolchain
dbates@webkit.org [Fri, 28 Feb 2014 17:53:30 +0000 (17:53 +0000)]
[iOS] DumpRenderTree Perl Support may build against wrong SDK and toolchain
https://bugs.webkit.org/show_bug.cgi?id=129163

Reviewed by David Kilzer.

Fixes an issue where DumpRenderTree Perl Support may build with the specified
iOS Simulator SDK and toolchain instead of using the OS X SDK and toolchain.
This issue manifests itself in a build failure when building the IPhoneSimulatorNotification
bundle.

Currently we build DumpRenderTree Perl Support with respect to the variable SDKROOT,
which is specified either explicitly when building with MAKE(1) or implicitly by
build-{dumprendertree, webkit}. Instead we should always build Perl Support using
the OS X SDK and toolchain since the built products are only applicable to OS X.

* DumpRenderTree/ios/PerlSupport/Makefile:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164865 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix !ENABLE(GGC) builds
mhahnenberg@apple.com [Fri, 28 Feb 2014 17:46:12 +0000 (17:46 +0000)]
Fix !ENABLE(GGC) builds

* heap/Heap.cpp:
(JSC::Heap::markRoots):
(JSC::Heap::gatherJSStackRoots): Also fix one of the names of the GC phases.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164864 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoSubresourceLoader::didFinishLoading() should not assert when a decode error occurs
dbates@webkit.org [Fri, 28 Feb 2014 17:30:36 +0000 (17:30 +0000)]
SubresourceLoader::didFinishLoading() should not assert when a decode error occurs
https://bugs.webkit.org/show_bug.cgi?id=127029

Reviewed by Darin Adler.

Source/WebCore:

SubresourceLoader::didFinishLoading() can be called for a resource (e.g. an image) that
failed to be decoded or, in the case of an image, whose estimated decoded size exceeds
the maximum decoded size (Settings::maximumDecodedImageSize()).

Test: fast/images/decoded-size-exceeds-max-decoded-size.html

* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didFinishLoading):

LayoutTests:

Added a test to ensure that we don't cause an assertion failure when an image fails
to load because of a decode error. In particular, the estimated decoded image size
exceeds the maximum decoded image size.

* fast/images/decoded-size-exceeds-max-decoded-size-expected.txt: Added.
* fast/images/decoded-size-exceeds-max-decoded-size.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164863 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoClean up Heap::collect and Heap::markRoots
mhahnenberg@apple.com [Fri, 28 Feb 2014 16:56:17 +0000 (16:56 +0000)]
Clean up Heap::collect and Heap::markRoots
https://bugs.webkit.org/show_bug.cgi?id=129464

Reviewed by Geoffrey Garen.

These functions have built up a lot of cruft recently.
We should do a bit of cleanup to make them easier to grok.

* heap/Heap.cpp:
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::gatherStackRoots):
(JSC::Heap::gatherJSStackRoots):
(JSC::Heap::gatherScratchBufferRoots):
(JSC::Heap::clearLivenessData):
(JSC::Heap::visitSmallStrings):
(JSC::Heap::visitConservativeRoots):
(JSC::Heap::visitCompilerWorklists):
(JSC::Heap::markProtectedObjects):
(JSC::Heap::markTempSortVectors):
(JSC::Heap::markArgumentBuffers):
(JSC::Heap::visitException):
(JSC::Heap::visitStrongHandles):
(JSC::Heap::visitHandleStack):
(JSC::Heap::traceCodeBlocksAndJITStubRoutines):
(JSC::Heap::converge):
(JSC::Heap::visitWeakHandles):
(JSC::Heap::clearRememberedSet):
(JSC::Heap::updateObjectCounts):
(JSC::Heap::resetVisitors):
(JSC::Heap::markRoots):
(JSC::Heap::copyBackingStores):
(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::collect):
(JSC::Heap::collectIfNecessaryOrDefer):
(JSC::Heap::suspendCompilerThreads):
(JSC::Heap::willStartCollection):
(JSC::Heap::deleteOldCode):
(JSC::Heap::flushOldStructureIDTables):
(JSC::Heap::flushWriteBarrierBuffer):
(JSC::Heap::stopAllocation):
(JSC::Heap::reapWeakHandles):
(JSC::Heap::sweepArrayBuffers):
(JSC::Heap::snapshotMarkedSpace):
(JSC::Heap::deleteSourceProviderCaches):
(JSC::Heap::notifyIncrementalSweeper):
(JSC::Heap::rememberCurrentlyExecutingCodeBlocks):
(JSC::Heap::resetAllocators):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::didFinishCollection):
(JSC::Heap::resumeCompilerThreads):
* heap/Heap.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164862 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoASSERTION FAILED: roundedIntPoint(rendererMappedResult) == roundedIntPoint(result...
commit-queue@webkit.org [Fri, 28 Feb 2014 16:35:27 +0000 (16:35 +0000)]
ASSERTION FAILED: roundedIntPoint(rendererMappedResult) == roundedIntPoint(result) in WebCore::RenderGeometryMap::mapToContainer
https://bugs.webkit.org/show_bug.cgi?id=119626

Source/WebCore:

SVGRenderSupport::mapLocalToContainer() was trying to apply transforms
in the incorrect order. Specifically, it would attempt to apply its
localToParentTransform before its localToBorderBoxTransform. This
was causing an ASSERT to fail when the computed transforms didn't
match up to those computed by RenderGeometryMap.

Blink: https://codereview.chromium.org/143363004
Patch by Martin Hodovan <mhodovan@inf.u-szeged.hu> on 2014-02-28
Reviewed by Simon Fraser.

Test: svg/transforms/svg-geometry-crash.html

* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::mapLocalToContainer):

LayoutTests:

Blink: https://codereview.chromium.org/143363004
Patch by Martin Hodovan <mhodovan@inf.u-szeged.hu> on 2014-02-28
Reviewed by Simon Fraser.

* svg/transforms/svg-geometry-crash-expected.txt: Added.
* svg/transforms/svg-geometry-crash.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164861 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed, rolling out r164859.
commit-queue@webkit.org [Fri, 28 Feb 2014 15:52:17 +0000 (15:52 +0000)]
Unreviewed, rolling out r164859.
http://trac.webkit.org/changeset/164859
https://bugs.webkit.org/show_bug.cgi?id=129483

caused WK1 crashes (DumpRenderTree) (Requested by zalan on
#webkit).

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(createWebViewAndOffscreenWindow):
(dumpRenderTree):
(runTest):
* DumpRenderTree/mac/DumpRenderTreeWindow.h:
* DumpRenderTree/mac/DumpRenderTreeWindow.mm:
(-[DumpRenderTreeWindow initWithContentRect:styleMask:backing:defer:]):
* WebKitTestRunner/PlatformWebView.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::invoke):
* WebKitTestRunner/efl/PlatformWebViewEfl.cpp:
* WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:
* WebKitTestRunner/ios/PlatformWebViewIOS.mm:
* WebKitTestRunner/mac/PlatformWebViewMac.mm:
(-[WebKitTestRunnerWindow frameRespectingFakeOrigin]):

LayoutTests:

* fast/borders/hidpi-simple-hairline-border-painting-expected.html: Removed.
* fast/borders/hidpi-simple-hairline-border-painting.html: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164860 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdd hiDPI support to DumpRenderTree/WebKitTestRunner without the need of reloading...
zalan@apple.com [Fri, 28 Feb 2014 15:24:18 +0000 (15:24 +0000)]
Add hiDPI support to DumpRenderTree/WebKitTestRunner without the need of reloading the test case.
https://bugs.webkit.org/show_bug.cgi?id=129438

Reviewed by Simon Fraser.

'hidpi-' prefixed test cases now trigger 2x scale factor on the testing
offscreen window. It makes testing subpixel rendering and positioning possible.

Both the offscreen window's and WebKit's scaling are set accordingly.

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(createWebViewAndOffscreenWindow): unrelated cleanup.
(destroyWebViewAndOffscreenWindow): unrelated cleanup.
(dumpRenderTree):
(changeOffscreenWindowScaleIfNeeded):
(runTest):
* DumpRenderTree/mac/DumpRenderTreeWindow.h:
* DumpRenderTree/mac/DumpRenderTreeWindow.mm:
(-[DumpRenderTreeWindow initWithContentRect:styleMask:backing:defer:]): cleanup.
* WebKitTestRunner/PlatformWebView.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::changeOffscreenWindowScaleIfNeeded):
(WTR::TestInvocation::invoke):
* WebKitTestRunner/mac/PlatformWebViewMac.mm:
(WTR::PlatformWebView::changeOffscreenWindowScaleIfNeeded):

LayoutTests:

* fast/borders/hidpi-simple-hairline-border-painting-expected.html: Added.
* fast/borders/hidpi-simple-hairline-border-painting.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164859 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[CSSRegions] ASSERTION FAILED: !m_regionsInvalidated in RenderFlowThread::regionAtBlo...
mihnea@adobe.com [Fri, 28 Feb 2014 14:34:08 +0000 (14:34 +0000)]
[CSSRegions] ASSERTION FAILED: !m_regionsInvalidated in RenderFlowThread::regionAtBlockOffset
https://bugs.webkit.org/show_bug.cgi?id=129371

Source/WebCore:

Reviewed by Andrei Bucur.

regionAtBlockOffset method is meant to be used after the flow thread validated
its region chain, otherwise we cannot rely on regionAtBlockOffset to determine correctly
the target region based on the offset in flow thread coordinates.

When the video element is collected in a named flow and displayed in a region, we ensure
that the region's decorations are taken into account to properly position the video.
However, we have to do that only if the named flow regions are validated.

I changed the method cachedRegionForCompositedLayer to check only the "cached" region
for a layer and not update the layer to region mappings before returning the region.
Because method cachedRegionForCompositedLayer does not update the region - layer mappings,
the code does not call regionAtBlockOffset in situations where the region chain is not validated yet.

Test: compositing/regions/video-in-overflow-region.html

* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::getLayerListForRegion): Make it a getter that relies on
cached information and refrain from updating the mappings. Make it const too.
(WebCore::RenderFlowThread::cachedRegionForCompositedLayer):
* rendering/RenderFlowThread.h:

LayoutTests:

Reviewed Andrei Bucur.

* compositing/regions/video-in-overflow-region-expected.txt: Added.
* compositing/regions/video-in-overflow-region.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164858 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[GTK] Finetune captions menu as per design team
calvaris@igalia.com [Fri, 28 Feb 2014 10:06:29 +0000 (10:06 +0000)]
[GTK] Finetune captions menu as per design team
https://bugs.webkit.org/show_bug.cgi?id=129432

Reviewed by Eric Carlson.

Some design fine tuning of the captions dialog was required.

No new tests, current suffice.

* Modules/mediacontrols/mediaControlsApple.js:
Added out class.
* Modules/mediacontrols/mediaControlsGtk.js:
(ControllerGtk.prototype.buildCaptionMenu): Setting out class when
menu is going to show overlap the panel right border.
* css/mediaControlsGtk.css:
(video::-webkit-media-controls-closed-captions-container.out):
Setting all borders to 5px;
(video::-webkit-media-controls-closed-captions-container h3):
Reduced font size and increasing top padding.
(video::-webkit-media-controls-closed-captions-container ul):
Increased top padding.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164857 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoElement::attributeChanged shouldn't do any work when attribute value didn't change
rniwa@webkit.org [Fri, 28 Feb 2014 07:50:20 +0000 (07:50 +0000)]
Element::attributeChanged shouldn't do any work when attribute value didn't change
https://bugs.webkit.org/show_bug.cgi?id=129467

Reviewed by Geoffrey Garen.

Exit early in childrenChanged when the attribute value didn't change.

* dom/Attr.cpp:
(WebCore::Attr::setValue):
(WebCore::Attr::childrenChanged):
* dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
(WebCore::Element::attributeChanged):
(WebCore::Element::parserSetAttributes):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::didAddAttribute):
(WebCore::Element::didModifyAttribute):
(WebCore::Element::didRemoveAttribute):
(WebCore::Element::cloneAttributesFromElement):
* dom/Element.h:
* dom/StyledElement.cpp:
(WebCore::StyledElement::attributeChanged):
* dom/StyledElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::attributeChanged):
* mathml/MathMLElement.h:
* mathml/MathMLSelectElement.cpp:
(WebCore::MathMLSelectElement::attributeChanged):
* mathml/MathMLSelectElement.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::attributeChanged):
* svg/SVGElement.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164856 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[EFL] Remove duplicated keyboard string key from keyMap
jinwoo7.song@samsung.com [Fri, 28 Feb 2014 06:32:18 +0000 (06:32 +0000)]
[EFL] Remove duplicated keyboard string key from keyMap
https://bugs.webkit.org/show_bug.cgi?id=129469

Reviewed by Gyuyoung Kim.

"Down" key is duplicated in keyMap().

* platform/efl/EflKeyboardUtilities.cpp:
(WebCore::createKeyMap):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164855 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnify the three call sites of SelectorQueryCache
benjamin@webkit.org [Fri, 28 Feb 2014 05:54:09 +0000 (05:54 +0000)]
Unify the three call sites of SelectorQueryCache
https://bugs.webkit.org/show_bug.cgi?id=129249

Reviewed by Andreas Kling.

The three call sites of SelectorQueryCache were doing the exact same thing.
That code is mvoed to a new function Document::selectorQueryForString().

Also use String instead of AtomicString for querySelector() and querySelectorAll().
This prevent the call sites from creating AtomicString just for the time of the call.
This causes a tiny slow down on microbenchmarks that continuously query the same string
but has no negative impact on realistic/good test cases (and the bindings are simplified).

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::querySelector):
(WebCore::ContainerNode::querySelectorAll):
* dom/ContainerNode.h:
* dom/Document.cpp:
(WebCore::Document::selectorQueryForString):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::webkitMatchesSelector):
* dom/SelectorQuery.cpp:
(WebCore::SelectorQueryCache::add):
* dom/SelectorQuery.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164854 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoJSC ignores the extra memory cost of HTMLCollection after a major GC
rniwa@webkit.org [Fri, 28 Feb 2014 05:53:29 +0000 (05:53 +0000)]
JSC ignores the extra memory cost of HTMLCollection after a major GC
https://bugs.webkit.org/show_bug.cgi?id=129450

Reviewed by Andreas Kling.

Report the extra memory cost of HTMLCollection to JSC.

Unfortunately, the existing mechanism to report the extra memory cost in toJS is insufficient for
HTMLCollection since collection caches are populated later when HTMLCollection is accessed. Also,
the extra memory cost reported by Heap::reportExtraMemoryCost will be thrown away after a major GC.

To work around this limitation, added a visitor.reportExtraMemoryUsage call inside visitChildren
for interfaces with a newly added ReportExtraMemoryCost IDL extension flag to report the extra cost.

Since we may need to generate visitChildren when this flag is set, we can't automatically detect
and generate calls using C++ template as done in r148648.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webaudio/AudioBuffer.idl:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMBinding.h:
* bindings/scripts/CodeGeneratorJS.pm:
(InstanceNeedsVisitChildren):
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::toJS):
* dom/ChildNodeList.h:
* dom/CollectionIndexCache.cpp: Added.
(WebCore::reportExtraMemoryCostForCollectionIndexCache):
* dom/CollectionIndexCache.h:
(WebCore::CollectionIndexCache::memoryCost):
(WebCore::NodeType>::CollectionIndexCache):
(WebCore::NodeType>::nodeCount):
(WebCore::NodeType>::computeNodeCountUpdatingListCache):
(WebCore::NodeType>::nodeAt):
(WebCore::NodeType>::invalidate):
* dom/DOMAllInOne.cpp:
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeList::memoryCost):
* dom/LiveNodeList.h:
* dom/NodeList.h:
(WebCore::NodeList::memoryCost):
* dom/NodeList.idl:
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::updateNamedElementCache):
* html/HTMLCollection.h:
(WebCore::CollectionNamedElementCache::didPopulate):
(WebCore::CollectionNamedElementCache::memoryCost):
(WebCore::CollectionNamedElementCache::find):
(WebCore::HTMLCollection::memoryCost):
* html/HTMLCollection.idl:
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::updateNamedElementCache):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164853 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCompile attribute value matching
benjamin@webkit.org [Fri, 28 Feb 2014 05:52:33 +0000 (05:52 +0000)]
Compile attribute value matching
https://bugs.webkit.org/show_bug.cgi?id=129228

Reviewed by Geoffrey Garen.

Source/WebCore:

Add support for compiling value matching when matching attributes in Selector.
This patch only adds exact matching, the other cases will follow.

There is a little infrastructure changes since FunctionCall now needs to support
calls taking 2 arguments. The fun begins when the arguments are not in the right
registers and need to be moved to the right place. Otherwise the code is straightforward.

In SelectorCompiler, it is necessary to handle two different cases of matching: case sensitive
and case insensitive. The choice is done in part at compilation time by asking HTMLDocument
if the name filter can include case insensitive attribute. The other part is done at runtime
by querying the element for its type and document.

Test: fast/selectors/case-insensitive-value-matching.html

* css/SelectorChecker.cpp:
(WebCore::attributeValueMatches): Null values matching should never happen, when an attribute
has no value, its value is empty.

* cssjit/FunctionCall.h:
(WebCore::FunctionCall::FunctionCall):
Add support for calls with two arguments.
(WebCore::FunctionCall::setOneArgument):
(WebCore::FunctionCall::setTwoArguments):
(WebCore::FunctionCall::swapArguments):
Here we need to swap two registers, but we cannot allocate a new register (because the context
of the function call may have taken all the available registers already).

On x86, the solution is simple, we can swap the two registers without side effects.

On other platforms, it is a little more complex. If there is any available register, we can just
use it as a temporary to make the swap.
If there are no available registers, we know that all the registers are taken. Since swapArguments()
was called after pushing all the arguments on the stack, we can safely trash the value of any of those.
We take the first available register that is not a function argument and use it as a temporary.

(WebCore::FunctionCall::prepareAndCall):
This is the fun part, we have two registers where the values must go before the function call. The values
can be in any combination of the allocated registers. The code here needs to move the two values to
their target register while avoiding conflicts.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::AttributeMatchingInfo::AttributeMatchingInfo):
(WebCore::SelectorCompiler::AttributeMatchingInfo::canDefaultToCaseSensitiveValueMatch):
(WebCore::SelectorCompiler::AttributeMatchingInfo::selector):
The value of HTMLDocument::isCaseSensitiveAttribute is needed at compilation time to compute the number
of required registers. As a result, we need to keep it along in the selector fragment.

(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::attributeNameTestingRequiresNamespaceRegister):
(WebCore::SelectorCompiler::attributeValueTestingRequiresExtraRegister):
(WebCore::SelectorCompiler::minimumRegisterRequirements):
(WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
(WebCore::SelectorCompiler::canMatchStyleAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeStyleAttribute):
(WebCore::SelectorCompiler::canMatchAnimatableSVGAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeAllAnimatedSVGAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching):
The matching code is moved in a local scope. This is done to recover the register of qualifiedNameImpl
before doing any value matching. That register can then be used to store the expected value when matching
an attribute value.
It is unfortunate there is so much register pressure in this part.

Value matching is done outside the loop. The idea is to keep the loop really small since in the vast majority
of cases, name matching fails.
If the value matching fails, we jump back into the tight loop.

This is not ideal in all situation. For example trivial name matching with trivial value matching should
be done in loop. There is a FIXME to improve those cases later.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
(WebCore::SelectorCompiler::testIsHTMLClassOnDocument):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
In the case sensitive branch, things are really simple. We have to AtomicStringImpl pointers, if they
don't match, it is a failure.

The case sensitive branch start by comparing the pointers in case the values are equal. This is a common
case and it simplifies the cases for SVG, XHTML, etc.
If the two values are not equal, we must first find if the context requires case insensitive comparison
(HTMLElement in HTMLDocument). If the conditions require case insensitive matching, we then fall back
to a function call.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementFunctionCallTest):
* dom/Attribute.h:
(WebCore::Attribute::valueMemoryOffset):
* dom/Document.h:
(WebCore::Document::documentClassesMemoryOffset):
(WebCore::Document::isHTMLDocumentClassFlag):
* dom/Node.h:
(WebCore::Node::treeScopeMemoryOffset):
* dom/TreeScope.h:
(WebCore::TreeScope::documentScopeMemoryOffset):

LayoutTests:

* fast/selectors/case-insensitive-value-matching-expected.txt: Added.
* fast/selectors/case-insensitive-value-matching.html: Added.
Test the various cases that require more register than the common case.

The values match Firefox behavior.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164852 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoindexOf and lastIndexOf shouldn't resolve ropes when needle is longer than haystack
rniwa@webkit.org [Fri, 28 Feb 2014 05:30:09 +0000 (05:30 +0000)]
indexOf and lastIndexOf shouldn't resolve ropes when needle is longer than haystack
https://bugs.webkit.org/show_bug.cgi?id=129466

Reviewed by Michael Saboff.

Refactored the code to avoid calling JSString::value when needle is longer than haystack.

* runtime/StringPrototype.cpp:
(JSC::stringProtoFuncIndexOf):
(JSC::stringProtoFuncLastIndexOf):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164851 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agocss3/compositing/isolation-isolate-blended-child.html fails
ap@apple.com [Fri, 28 Feb 2014 05:11:55 +0000 (05:11 +0000)]
css3/compositing/isolation-isolate-blended-child.html fails
https://bugs.webkit.org/show_bug.cgi?id=129468

* platform/mac-wk2/TestExpectations: Marked as failing on OS X 10.8 Debug WK2.
Not sure if it's hardware related or dependent on confuguration in some other way.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164850 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoBuild break when disabled CSS_GRID_LAYOUT
ryuan.choi@samsung.com [Fri, 28 Feb 2014 03:31:09 +0000 (03:31 +0000)]
Build break when disabled CSS_GRID_LAYOUT
https://bugs.webkit.org/show_bug.cgi?id=129459

Reviewed by Gyuyoung Kim.

* css/CSSValue.h: Added guards of CSS_GRID_LAYOUT for GridTemplateAreasClass.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164849 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoEnable support of X-Content-Type-Options: nosniff header for EFL
pmolnar.u-szeged@partner.samsung.com [Fri, 28 Feb 2014 02:32:32 +0000 (02:32 +0000)]
Enable support of X-Content-Type-Options: nosniff header for EFL
https://bugs.webkit.org/show_bug.cgi?id=128673

Reviewed by Gyuyoung Kim.

.:

* Source/cmake/OptionsEfl.cmake:
Enabled NOSNIFF feature flag for EFL.

LayoutTests:

* http/tests/security/contentTypeOptions/nosniff-script-blocked-expected.txt:
* http/tests/security/contentTypeOptions/nosniff-script-without-content-type-blocked-expected.txt:
Updated expectations as console output now includes line numbers.
* platform/efl/TestExpectations:
Unskipped http/tests/security/contentTypeOptions tests.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164848 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Mac] Stop using some deprecated functions in WKView.mm
ap@apple.com [Fri, 28 Feb 2014 02:05:28 +0000 (02:05 +0000)]
[Mac] Stop using some deprecated functions in WKView.mm
https://bugs.webkit.org/show_bug.cgi?id=129455

Reviewed by Anders Carlsson.

* UIProcess/API/mac/WKView.mm:
(-[WKView firstRectForCharacterRange:actualRange:]): Use convertRectToScreen,
which is a replacement for convertBaseToScreen. Don't check for window being null,
because isn't that crazy talk?
(-[WKView _postFakeMouseMovedEventForFlagsChangedEvent:]): Use event's location
in window instead of current mouse location. Using location that is not synced to
event stream rarely makes sense, and it doesn't look like this is one of those cases.
(-[WKView performDictionaryLookupAtCurrentMouseLocation]): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164847 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUse a RegExp when when using CodeMirror's SearchCursor.
timothy@apple.com [Fri, 28 Feb 2014 01:18:55 +0000 (01:18 +0000)]
Use a RegExp when when using CodeMirror's SearchCursor.

This avoids doing toLowerCase() on every line of the TextEditor.

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

Reviewed by Joseph Pecoraro.

* UserInterface/Views/TextEditor.js:
(TextEditor.prototype.performSearch): Use a RegExp for query. Pass false for the caseFold
argument, but it is ignored for RegExp searches anyway.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164846 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoImprove how ContentSearchUtilities::lineEndings works by supporting the three common...
timothy@apple.com [Fri, 28 Feb 2014 01:17:37 +0000 (01:17 +0000)]
Improve how ContentSearchUtilities::lineEndings works by supporting the three common line endings.

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

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/ContentSearchUtilities.cpp:
(Inspector::ContentSearchUtilities::textPositionFromOffset): Remove assumption about line ending length.
(Inspector::ContentSearchUtilities::getRegularExpressionMatchesByLines): Remove assumption about
line ending type and don't try to strip the line ending. Use size_t
(Inspector::ContentSearchUtilities::lineEndings): Use findNextLineStart to find the lines.
This will include the line ending in the lines, but that is okay.
(Inspector::ContentSearchUtilities::buildObjectForSearchMatch): Use size_t.
(Inspector::ContentSearchUtilities::searchInTextByLines): Modernize.

LayoutTests:

* inspector-protocol/debugger/resources/mac-linebreaks.js: Added.
* inspector-protocol/debugger/resources/mixed-linebreaks.js: Added.
* inspector-protocol/debugger/resources/unix-linebreaks.js: Added.
* inspector-protocol/debugger/resources/windows-linebreaks.js: Added.
* inspector-protocol/debugger/searchInContent-linebreaks-expected.txt: Added.
* inspector-protocol/debugger/searchInContent-linebreaks.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164845 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed. Fix build after r164832
ljaehun.lim@samsung.com [Fri, 28 Feb 2014 01:03:09 +0000 (01:03 +0000)]
Unreviewed. Fix build after r164832

* UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:
(WebKit::CoordinatedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164844 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed, update test expectations after r164830.
bburg@apple.com [Fri, 28 Feb 2014 00:46:49 +0000 (00:46 +0000)]
Unreviewed, update test expectations after r164830.

Inspector test dom/dom-search-crash.html times out in release builds
https://bugs.webkit.org/show_bug.cgi?id=129462

Web Inspector model tests load wrong inspector page under WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=129460

* TestExpectations: Updating test expectations.
* platform/wk2/TestExpectations: Updating test expectations.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164843 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agotext-decoration-skip: ink does not skip over SVG fonts
mmaxfield@apple.com [Fri, 28 Feb 2014 00:22:32 +0000 (00:22 +0000)]
text-decoration-skip: ink does not skip over SVG fonts
https://bugs.webkit.org/show_bug.cgi?id=128936

Reviewed by Darin Adler.

Source/WebCore:

When drawing glyphs in an SVG font, the glyphs are converted to paths and then filled. This patch moves
the glyph -> path conversion into a helper class, GlyphToPathTranslator, and creates an implementation
for the SVG drawing code. Once this helper class is created, it can be used to trace paths in order
to make underlines skip over SVG glyphs. This helper class also has an implementation for non-SVG glyphs,
which allows for the glyph tracing code to be paramaterized over the implementation of the helper class
rather than if the FontData itself is SVG or not.

Tests: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-svg.html

* platform/graphics/Font.h:
(WebCore::GlyphToPathTranslator::~GlyphToPathTranslator): Virtual implementation of helper class
* platform/graphics/cg/PathCG.cpp:
(WebCore::Path::Path): Created constructor that takes a RefPtr<CGMutablePathRef>
* platform/graphics/Path.h:
* platform/graphics/TextRun.h: Give RenderingContext a factory function to create the helper class
instance
* platform/graphics/mac/FontMac.mm: Implementation of helper class used for skipping underlines on
regular (CoreText) glyphs
(WebCore::MacGlyphToPathTranslator::MacGlyphToPathTranslator):
(WebCore::MacGlyphToPathTranslator::moveToNextValidGlyph):
(WebCore::MacGlyphToPathTranslator::incrementIndex):
(WebCore::Font::dashesForIntersectionsWithRect): Call the relevant factory function, and use it
to successively generate Paths
* rendering/svg/SVGTextRunRenderingContext.cpp: Implementation of helper class used for SVG fonts
(WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
(WebCore::SVGGlyphToPathTranslator::moveToNextValidGlyph):
(WebCore::SVGGlyphToPathTranslator::incrementIndex):
(WebCore::SVGTextRunRenderingContext::createGlyphToPathTranslator):
(WebCore::SVGTextRunRenderingContext::drawSVGGlyphs): Use the above implementation
* rendering/svg/SVGTextRunRenderingContext.h: Factory function declaration

LayoutTests:

This font simply draws some underlined text with a SVG font and makes sure the underline skips.

* fast/css3-text/css3-text-decoration/text-decoration-skip/resources/Litherum.svg: Added.
* fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-svg-expected.html: Added.
* fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-svg.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164842 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix build after r164832
mrobinson@webkit.org [Fri, 28 Feb 2014 00:09:40 +0000 (00:09 +0000)]
Fix build after r164832

* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::waitForAndDispatchDidUpdateBackingStoreState): WebProcessProxy::isLaunching() has been replaced
by WebProcessProxy::state().

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164841 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCrash in RemoteLayerTreePropertyApplier::applyPropertiesToLayer
timothy_horton@apple.com [Fri, 28 Feb 2014 00:04:24 +0000 (00:04 +0000)]
Crash in RemoteLayerTreePropertyApplier::applyPropertiesToLayer
https://bugs.webkit.org/show_bug.cgi?id=129456
<rdar://problem/16182676>

Reviewed by Simon Fraser.

* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
We were dereferencing the RemoteLayerBackingStore without checking if it exists,
in the accelerated drawing codepath. This case will occur if a layer
previously drew contents, but now does not.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164840 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[WebRTC] Removing MediaConstraints argument from RTCPeerConnection addStream, updateI...
thiago.lacerda@openbossa.org [Thu, 27 Feb 2014 23:58:28 +0000 (23:58 +0000)]
[WebRTC] Removing MediaConstraints argument from RTCPeerConnection addStream, updateIce methods and constructor
https://bugs.webkit.org/show_bug.cgi?id=129449

Reviewed by Eric Carlson.

According to WebRTC editor's draft, MediaConstraints will no longer be an argument of those methods and
constructor.

Source/WebCore:

Existing tests were updated.

* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::updateIce):
(WebCore::RTCPeerConnection::addStream):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* bindings/js/JSRTCPeerConnectionCustom.cpp:
(WebCore::JSRTCPeerConnectionConstructor::constructJSRTCPeerConnection):
* platform/mediastream/RTCPeerConnectionHandler.h:
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::initialize):
(WebCore::RTCPeerConnectionHandlerMock::updateIce):
(WebCore::RTCPeerConnectionHandlerMock::addStream):
* platform/mock/RTCPeerConnectionHandlerMock.h:

LayoutTests:

* fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt:
* fast/mediastream/RTCPeerConnection-AddRemoveStream.html:
* fast/mediastream/RTCPeerConnection-expected.txt:
* fast/mediastream/RTCPeerConnection.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164839 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Mac] Warning: Multiple build commands for output file GCSegmentedArray and Inspector...
commit-queue@webkit.org [Thu, 27 Feb 2014 23:56:06 +0000 (23:56 +0000)]
[Mac] Warning: Multiple build commands for output file GCSegmentedArray and InspectorAgent
https://bugs.webkit.org/show_bug.cgi?id=129446

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-02-27
Reviewed by Timothy Hatcher.

Remove duplicate header entries in Copy Header build phase.

* JavaScriptCore.xcodeproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164838 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[CSS Regions] Move named-flow specific method decorationsClipRectForBoxInRegion to...
stavila@adobe.com [Thu, 27 Feb 2014 23:52:23 +0000 (23:52 +0000)]
[CSS Regions] Move named-flow specific method decorationsClipRectForBoxInRegion to RenderNamedFlowThread
https://bugs.webkit.org/show_bug.cgi?id=129428

Reviewed by Andreas Kling.

Since the decorationsClipRectForBoxInRegion method is a named flow specific method, it makes
sense to be in the named flow specific class, RenderNamedFlowThread, instead of the more
generic RenderFlowThread.

No new tests required. No new functionality.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
* rendering/RenderFlowThread.cpp:
* rendering/RenderFlowThread.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
* rendering/RenderNamedFlowThread.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164837 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWhoops, include all of last patch.
oliver@apple.com [Thu, 27 Feb 2014 23:36:23 +0000 (23:36 +0000)]
Whoops, include all of last patch.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164836 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoSlow cases for function.apply and function.call should not require vm re-entry
oliver@apple.com [Thu, 27 Feb 2014 23:25:29 +0000 (23:25 +0000)]
Slow cases for function.apply and function.call should not require vm re-entry
https://bugs.webkit.org/show_bug.cgi?id=129454

Reviewed by Geoffrey Garen.

Implement call and apply using builtins. Happily the use
of @call and @apply don't perform function equality checks
and just plant direct var_args calls. This did expose a few
codegen issues, but they're all covered by existing tests
once call and apply are implemented in JS.

* JavaScriptCore.xcodeproj/project.pbxproj:
* builtins/Function.prototype.js: Added.
(call):
(apply):
* bytecompiler/NodesCodegen.cpp:
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* interpreter/Interpreter.cpp:
(JSC::sizeFrameForVarargs):
(JSC::loadVarargs):
* interpreter/Interpreter.h:
* jit/JITCall.cpp:
(JSC::JIT::compileLoadVarargs):
* parser/ASTBuilder.h:
(JSC::ASTBuilder::makeFunctionCallNode):
* parser/Lexer.cpp:
(JSC::isSafeBuiltinIdentifier):
* runtime/CommonIdentifiers.h:
* runtime/FunctionPrototype.cpp:
(JSC::FunctionPrototype::addFunctionProperties):
* runtime/JSObject.cpp:
(JSC::JSObject::putDirectBuiltinFunction):
(JSC::JSObject::putDirectBuiltinFunctionWithoutTransition):
* runtime/JSObject.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164835 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAvoid calling logicalLeftOffsetForLine 2 times in LineWidth::fitBelowFloats
zoltan@webkit.org [Thu, 27 Feb 2014 23:24:05 +0000 (23:24 +0000)]
Avoid calling logicalLeftOffsetForLine 2 times in LineWidth::fitBelowFloats
https://bugs.webkit.org/show_bug.cgi?id=129433

Reviewed by Darin Adler.

This change updates fitBelowFloats and its helpers to call RenderBlock::logicalLeftOffsetForLine only once.

No new tests, no behavior change.

* rendering/line/LineWidth.cpp:
(WebCore::availableWidthAtOffset):
(WebCore::LineWidth::updateLineDimension):
(WebCore::LineWidth::wrapNextToShapeOutside):
(WebCore::LineWidth::fitBelowFloats):
* rendering/line/LineWidth.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164834 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMicro-optimize elementAffectsDirectionality().
akling@apple.com [Thu, 27 Feb 2014 23:18:26 +0000 (23:18 +0000)]
Micro-optimize elementAffectsDirectionality().
<https://webkit.org/b/129444>

Tweak this function to skip an unnecessary bit check and use
fastHasAttribute() instead of hasAttribute() for looking up dirAttr.

~1% speedup on DYEB/AngularJS.

Reviewed by Ryosuke Niwa.

* html/HTMLElement.cpp:
(WebCore::elementAffectsDirectionality):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164833 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoSimplify WebProcessProxy state accessors
andersca@apple.com [Thu, 27 Feb 2014 23:16:41 +0000 (23:16 +0000)]
Simplify WebProcessProxy state accessors
https://bugs.webkit.org/show_bug.cgi?id=129453

Reviewed by Andreas Kling.

Replace WebProcessProxy::isLaunching() and WebProcessProxy::isValid() with a single
WebProcessProxy::state() that return one of three values: Launching, Running or Terminated.

* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::state):
(WebKit::ChildProcessProxy::sendMessage):
(WebKit::ChildProcessProxy::abortProcessLaunchIfNeeded):
* Shared/ChildProcessProxy.h:
(WebKit::ChildProcessProxy::canSendMessage):
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::getDatabaseProcessConnection):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getNetworkProcessConnection):
* UIProcess/Network/mac/NetworkProcessProxyMac.mm:
(WebKit::NetworkProcessProxy::setProcessSuppressionEnabled):
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::getPluginProcessConnection):
(WebKit::PluginProcessProxy::getSitesWithData):
(WebKit::PluginProcessProxy::clearSiteData):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::waitForDidUpdateViewState):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestTermination):
(WebKit::WebProcessProxy::enableSuddenTermination):
(WebKit::WebProcessProxy::disableSuddenTermination):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::shouldDelayWindowOrderingForEvent):
* UIProcess/mac/WebProcessProxyMac.mm:
(WebKit::WebProcessProxy::updateProcessSuppressionState):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164832 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCrash tapping on play button on video on iOS
simon.fraser@apple.com [Thu, 27 Feb 2014 22:55:44 +0000 (22:55 +0000)]
Crash tapping on play button on video on iOS
https://bugs.webkit.org/show_bug.cgi?id=129452

Reviewed by Benjamin Poulain.

node->computedStyle() can return null. Just use
renderer->style() to get the tap highlight color.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::tapHighlightAtPosition):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164831 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: model tests should use a special Test.html inspector page
bburg@apple.com [Thu, 27 Feb 2014 22:08:10 +0000 (22:08 +0000)]
Web Inspector: model tests should use a special Test.html inspector page
https://bugs.webkit.org/show_bug.cgi?id=129190

Reviewed by Timothy Hatcher.

Source/WebCore:

Convert InspectorController::isUnderTest() into a flag, and expose an
Internals method so it can be set by the test before opening the inspector.

Test: inspector/test-harness-trivially-works.html

* inspector/InspectorController.cpp:
(WebCore::InspectorController::evaluateForTestInFrontend):
* inspector/InspectorController.h:
* testing/Internals.cpp:
(WebCore::Internals::setInspectorIsUnderTest): Added.
* testing/Internals.h:
* testing/Internals.idl:

Source/WebInspectorUI:

* UserInterface/Base/Test.js: Added.
(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.updateDockedState):
(InspectorTest.log):
(InspectorTest.assert):
(InspectorTest.debugLog):
(InspectorTest.completeTest):
(InspectorTest.evaluateInPage):
(InspectorTest.addResult):
(InspectorTest.clearResults):
(InspectorTest.pageLoaded):
(InspectorTest.reportUncaughtException):
(.console.logType):
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass):
(InspectorBackendClass.prototype.dispatch):
(InspectorBackendClass.prototype.runAfterPendingDispatches):
(InspectorBackendClass.prototype._flushPendingScripts):
* UserInterface/Protocol/InspectorObserver.js:
(WebInspector.InspectorObserver.prototype.evaluateForTestInFrontend):
* UserInterface/Test.html: Added.

Source/WebKit/mac:

Support creating a separate test inspector page, based on the value of
InspectorController::isUnderTest(). Modify the navigation policy to check
the URL against both normal and test inspector pages.

* WebCoreSupport/WebInspectorClient.mm:
(WebInspectorClient::openInspectorFrontend):
(-[WebInspectorWindowController init]):
(-[WebInspectorWindowController initWithInspectedWebView:isUnderTest:]):
Move the initial navigation of the inspector page to this method, and change
the URL based on the value of InspectorController::isUnderTest().

(-[WebInspectorWindowController inspectorTestPagePath]): Added.
(-[WebInspectorWindowController webView:decidePolicyForNavigationAction:request:frame:decisionListener:]):

Source/WebKit2:

Support creating a separate test inspector page, based on the value of
InspectorController::isUnderTest(). Add this as a separate API call for
WebInspectorProxy. Modify the navigation policy to check the URL against
both normal and test inspector pages.

* UIProcess/WebInspectorProxy.cpp:
(WebKit::isMainOrTestInspectorPage):
(WebKit::decidePolicyForNavigationAction):
(WebKit::WebInspectorProxy::createInspectorPageForTest):
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebInspectorProxy.messages.in:
* UIProcess/efl/WebInspectorProxyEfl.cpp:
(WebKit::WebInspectorProxy::inspectorTestPageURL):
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::inspectorTestPageURL):
* UIProcess/ios/WebInspectorProxyIOS.mm:
(WebKit::WebInspectorProxy::inspectorTestPageURL):
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::inspectorTestPageURL):
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::openInspectorFrontend):
* WebProcess/WebPage/WebInspector.cpp: Some drive-by nullptr refactorings.
(WebKit::WebInspector::WebInspector):
(WebKit::WebInspector::createInspectorPage):
(WebKit::WebInspector::createInspectorPageForTest):
(WebKit::WebInspector::destroyInspectorPage):
* WebProcess/WebPage/WebInspector.h:

Tools:

Remove code that immediately opens the Web Inspector based on the file path of the test.
Instead, the test page should request that the inspector open inside its `test()` method.

This change is necessary because otherwise, the inspector would be opened too early for
InspectorController::isUnderTest to get set in time, so the normal Web Inspector page
will get loaded instead of the minimal test page.

* DumpRenderTree/efl/DumpRenderTree.cpp:
(createTestRunner):
* DumpRenderTree/gtk/DumpRenderTree.cpp:
(runTest):
* DumpRenderTree/mac/DumpRenderTree.mm:
(runTest):
* DumpRenderTree/win/DumpRenderTree.cpp:
(runTest):

LayoutTests:

Add a stripped-down version of the inspector test script that's used by
all inspector model tests. Clean up the namespaces so things accessible
from only the test page are part of the `InspectorTestProxy` object.

Add a minimal test that exercises the initialization and communication code
paths on the test page and the inspector page.

* http/tests/inspector-protocol/resources/InspectorTest.js: Add a FIXME.
* inspector/inspector-test.js: Added.
(InspectorTestProxy.register):
(runTest.initializeFrontend):
(runTest.runTestInFrontend):
(runTest):
(InspectorTestProxy.completeTest):
(InspectorTestProxy.debugLog):
(InspectorTestProxy.addResult):
(InspectorTestProxy.clearResults):
(InspectorTestProxy.reportUncaughtException):
* inspector/test-harness-trivially-works-expected.txt: Added.
* inspector/test-harness-trivially-works.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164830 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Better name for RemoteInspectorDebuggableConnection dispatch queue
commit-queue@webkit.org [Thu, 27 Feb 2014 21:50:14 +0000 (21:50 +0000)]
Web Inspector: Better name for RemoteInspectorDebuggableConnection dispatch queue
https://bugs.webkit.org/show_bug.cgi?id=129443

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-02-27
Reviewed by Timothy Hatcher.

This queue is specific to the JSContext debuggable connections,
there is no XPC involved. Give it a better name.

* inspector/remote/RemoteInspectorDebuggableConnection.mm:
(Inspector::RemoteInspectorDebuggableConnection::RemoteInspectorDebuggableConnection):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164829 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove jsc symlink if it already exists
ddkilzer@apple.com [Thu, 27 Feb 2014 21:41:27 +0000 (21:41 +0000)]
Remove jsc symlink if it already exists

This is a follow-up fix for:

Create symlink to /usr/local/bin/jsc during installation
<http://webkit.org/b/129399>
<rdar://problem/16168734>

* JavaScriptCore.xcodeproj/project.pbxproj:
(Create /usr/local/bin/jsc symlink): If a jsc symlink already
exists where we're about to create the symlink, remove the old
one first.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164828 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed build fix for Mac tools after r164814
msaboff@apple.com [Thu, 27 Feb 2014 21:35:14 +0000 (21:35 +0000)]
Unreviewed build fix for Mac tools after r164814

* Configurations/ToolExecutable.xcconfig:
- Added JavaScriptCore.framework/PrivateHeaders to ToolExecutable include path.
* JavaScriptCore.xcodeproj/project.pbxproj:
- Changed productName to testRegExp for testRegExp target.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164827 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed build fix after r164824.
joepeck@webkit.org [Thu, 27 Feb 2014 21:02:14 +0000 (21:02 +0000)]
Unreviewed build fix after r164824.

Accidentally re-added some code that was removed.

* page/ContentSecurityPolicy.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164826 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCompile fix when not using TEXTURE_MAPPER_GL.
alex.christensen@flexsim.com [Thu, 27 Feb 2014 20:45:52 +0000 (20:45 +0000)]
Compile fix when not using TEXTURE_MAPPER_GL.
https://bugs.webkit.org/show_bug.cgi?id=129417

Reviewed by Darin Adler.

* platform/graphics/texmap/TextureMapperGL.cpp:
Protect platformCreateAccelerated with USE(TEXTURE_MAPPER_GL).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164825 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: JSContext inspection should report exceptions in the console
joepeck@webkit.org [Thu, 27 Feb 2014 20:45:08 +0000 (20:45 +0000)]
Web Inspector: JSContext inspection should report exceptions in the console
https://bugs.webkit.org/show_bug.cgi?id=128776

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

When JavaScript API functions have an exception, let the inspector
know so it can log the JavaScript and Native backtrace that caused
the exception.

Include some clean up of ConsoleMessage and ScriptCallStack construction.

* API/JSBase.cpp:
(JSEvaluateScript):
(JSCheckScriptSyntax):
* API/JSObjectRef.cpp:
(JSObjectMakeFunction):
(JSObjectMakeArray):
(JSObjectMakeDate):
(JSObjectMakeError):
(JSObjectMakeRegExp):
(JSObjectGetProperty):
(JSObjectSetProperty):
(JSObjectGetPropertyAtIndex):
(JSObjectSetPropertyAtIndex):
(JSObjectDeleteProperty):
(JSObjectCallAsFunction):
(JSObjectCallAsConstructor):
* API/JSValue.mm:
(reportExceptionToInspector):
(valueToArray):
(valueToDictionary):
* API/JSValueRef.cpp:
(JSValueIsEqual):
(JSValueIsInstanceOfConstructor):
(JSValueCreateJSONString):
(JSValueToNumber):
(JSValueToStringCopy):
(JSValueToObject):
When seeing an exception, let the inspector know there was an exception.

* inspector/JSGlobalObjectInspectorController.h:
* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):
(Inspector::JSGlobalObjectInspectorController::reportAPIException):
Log API exceptions by also grabbing the native backtrace.

* inspector/ScriptCallStack.h:
* inspector/ScriptCallStack.cpp:
(Inspector::ScriptCallStack::firstNonNativeCallFrame):
(Inspector::ScriptCallStack::append):
Minor extensions to ScriptCallStack to make it easier to work with.

* inspector/ConsoleMessage.cpp:
(Inspector::ConsoleMessage::ConsoleMessage):
(Inspector::ConsoleMessage::autogenerateMetadata):
Provide better default information if the first call frame was native.

* inspector/ScriptCallStackFactory.cpp:
(Inspector::createScriptCallStack):
(Inspector::extractSourceInformationFromException):
(Inspector::createScriptCallStackFromException):
Perform the handling here of inserting a fake call frame for exceptions
if there was no call stack (e.g. a SyntaxError) or if the first call
frame had no information.

* inspector/ConsoleMessage.cpp:
(Inspector::ConsoleMessage::ConsoleMessage):
(Inspector::ConsoleMessage::autogenerateMetadata):
* inspector/ConsoleMessage.h:
* inspector/ScriptCallStackFactory.cpp:
(Inspector::createScriptCallStack):
(Inspector::createScriptCallStackForConsole):
* inspector/ScriptCallStackFactory.h:
* inspector/agents/InspectorConsoleAgent.cpp:
(Inspector::InspectorConsoleAgent::enable):
(Inspector::InspectorConsoleAgent::addMessageToConsole):
(Inspector::InspectorConsoleAgent::count):
* inspector/agents/JSGlobalObjectDebuggerAgent.cpp:
(Inspector::JSGlobalObjectDebuggerAgent::breakpointActionLog):
ConsoleMessage cleanup.

Source/WebCore:

Include some clean up of ConsoleMessage and ScriptCallStack construction.

Covered by existing tests.

* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
Simplify code now that createStackTraceFromException handles it.

* page/ContentSecurityPolicy.cpp:
(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):
ScriptCallStack can give us the first non-native callframe.

* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::buildInitiatorObject):
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::breakpointActionLog):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createGenericRecord):
* page/Console.cpp:
(WebCore::internalAddMessage):
(WebCore::Console::profile):
(WebCore::Console::profileEnd):
(WebCore::Console::timeEnd):
* page/ContentSecurityPolicy.cpp:
(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::postMessage):

Source/WebInspectorUI:

* UserInterface/ConsoleMessageImpl.js:
(WebInspector.ConsoleMessageImpl.prototype._formatMessage):
(WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
(WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
(WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
Provide better handling for "[native code]" and legacy "undefined"
call frame URLs. Never linkify these. Also, when showing a link
for an exception, always use the first non-native call frame as
the link location.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164824 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCreate symlink to /usr/local/bin/jsc during installation
ddkilzer@apple.com [Thu, 27 Feb 2014 20:37:51 +0000 (20:37 +0000)]
Create symlink to /usr/local/bin/jsc during installation
<http://webkit.org/b/129399>
<rdar://problem/16168734>

Reviewed by Dan Bernstein.

* JavaScriptCore.xcodeproj/project.pbxproj:
- Add "Create /usr/local/bin/jsc symlink" build phase script to
  create the symlink during installation.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164823 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove FeatureObserver.
akling@apple.com [Thu, 27 Feb 2014 20:24:03 +0000 (20:24 +0000)]
Remove FeatureObserver.
<https://webkit.org/b/129439>

This code was only used by the Chromium port and nobody else is
making use of it.

Reviewed by Anders Carlsson.

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
* dom/EventTarget.h:
* html/ColorInputType.cpp:
* html/ColorInputType.h:
* html/DateInputType.cpp:
* html/DateInputType.h:
* html/DateTimeInputType.cpp:
* html/DateTimeInputType.h:
* html/DateTimeLocalInputType.cpp:
* html/DateTimeLocalInputType.h:
* html/EmailInputType.cpp:
* html/EmailInputType.h:
* html/HTMLDataListElement.cpp:
(WebCore::HTMLDataListElement::create):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::parseAttribute):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::parseAttribute):
* html/InputType.cpp:
* html/InputType.h:
* html/MonthInputType.cpp:
* html/MonthInputType.h:
* html/NumberInputType.cpp:
* html/NumberInputType.h:
* html/RangeInputType.cpp:
* html/RangeInputType.h:
* html/SearchInputType.cpp:
* html/SearchInputType.h:
* html/TelephoneInputType.cpp:
* html/TelephoneInputType.h:
* html/TextInputType.cpp:
* html/TextInputType.h:
* html/TimeInputType.cpp:
* html/TimeInputType.h:
* html/URLInputType.cpp:
* html/URLInputType.h:
* html/WeekInputType.cpp:
* html/WeekInputType.h:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
(WebCore::FrameLoader::dispatchDidCommitLoad):
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::didReceiveHeader):
* page/EventHandler.cpp:
(WebCore::EventHandler::selectCursor):
* page/FeatureObserver.cpp: Removed.
* page/FeatureObserver.h: Removed.
* page/Page.h:
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* workers/SharedWorker.cpp:
(WebCore::SharedWorker::create):
* workers/Worker.cpp:
(WebCore::Worker::create):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164822 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoTransform more clip-path pixel tests to reference tests
krit@webkit.org [Thu, 27 Feb 2014 20:16:40 +0000 (20:16 +0000)]
Transform more clip-path pixel tests to reference tests
https://bugs.webkit.org/show_bug.cgi?id=129230

Reviewed by Simon Fraser.

Fix masking test.

* svg/masking/mask-negative-scale.svg:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164821 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMake WebProcessProxy::pages() return an IteratorRange
andersca@apple.com [Thu, 27 Feb 2014 19:41:12 +0000 (19:41 +0000)]
Make WebProcessProxy::pages() return an IteratorRange
https://bugs.webkit.org/show_bug.cgi?id=129440

Reviewed by Dan Bernstein.

* UIProcess/API/C/WKPage.cpp:
(WKPageCopyRelatedPages):
Move the implementation of WebPageProxy::relatedPages here.

* UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcessRespectingProcessCountLimit):
Use std::min_element here instead of a manual loop.

* UIProcess/WebPageProxy.cpp:
Remove WebPageProxy::relatedPages().

* UIProcess/WebProcessProxy.cpp:
Remove WebProcessProxy::pages().

* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::pages):
Make this return an IteratorRange.

(WebKit::WebProcessProxy::pageCount):
New function that returns the page count.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164820 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMath.{max, min}() must not return after first NaN value
commit-queue@webkit.org [Thu, 27 Feb 2014 19:39:42 +0000 (19:39 +0000)]
Math.{max, min}() must not return after first NaN value
https://bugs.webkit.org/show_bug.cgi?id=104147

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-02-27
Reviewed by Oliver Hunt.

Source/JavaScriptCore:

According to the spec, ToNumber going to be called on each argument
even if a `NaN` value was already found

* runtime/MathObject.cpp:
(JSC::mathProtoFuncMax):
(JSC::mathProtoFuncMin):

LayoutTests:

Extended the Math.{max, min}() tests, to check that these methods are return after first NaN value or not.

* js/math-expected.txt:
* js/script-tests/math.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164819 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Mac][WK2] Remove hardcoded Cmd+B and Cmd+I from WKView.mm
ap@apple.com [Thu, 27 Feb 2014 19:20:08 +0000 (19:20 +0000)]
[Mac][WK2] Remove hardcoded Cmd+B and Cmd+I from WKView.mm
https://bugs.webkit.org/show_bug.cgi?id=129436

Reviewed by Darin Adler.

* UIProcess/API/mac/WKView.mm: Removed a historic WebKit1 behavior that we don't
need to preserve in WebKit2.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164818 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAssertion failure at CachedResource.h:196: ASSERT(!m_purgeableData)
psolanki@apple.com [Thu, 27 Feb 2014 19:11:52 +0000 (19:11 +0000)]
Assertion failure at CachedResource.h:196: ASSERT(!m_purgeableData)
https://bugs.webkit.org/show_bug.cgi?id=129349
<rdar://problem/14871837>

Reviewed by Joseph Pecoraro.

The code for clearing out memory mapped notification callbacks is only needed when loading
PDFs. And in such cases, we always have dataSourceDelegate object. So make this code
conditional on its presence so that we don't trigger the assert for non-PDF main resources.

* WebView/WebDataSource.mm:
(-[WebDataSource dealloc]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164817 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Mac] Remove unused SPI declarations from WKView.mm
ap@apple.com [Thu, 27 Feb 2014 19:00:33 +0000 (19:00 +0000)]
[Mac] Remove unused SPI declarations from WKView.mm
https://bugs.webkit.org/show_bug.cgi?id=129434

Reviewed by Sam Weinig.

* UIProcess/API/mac/WKView.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164816 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoJSType upper limit (0xff) assertion can be removed.
commit-queue@webkit.org [Thu, 27 Feb 2014 18:49:53 +0000 (18:49 +0000)]
JSType upper limit (0xff) assertion can be removed.
https://bugs.webkit.org/show_bug.cgi?id=129424

Patch by Gergo Balogh <gbalogh.u-szeged@partner.samsung.com> on 2014-02-27
Reviewed by Geoffrey Garen.

* runtime/JSTypeInfo.h:
(JSC::TypeInfo::TypeInfo):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164815 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAuto generate bytecode information for bytecode parser and LLInt
msaboff@apple.com [Thu, 27 Feb 2014 18:48:37 +0000 (18:48 +0000)]
Auto generate bytecode information for bytecode parser and LLInt
https://bugs.webkit.org/show_bug.cgi?id=129181

Reviewed by Mark Lam.

Source/JavaScriptCore:

Added new bytecode/BytecodeList.json that contains a list of bytecodes and related
helpers.  It also includes bytecode length and other information used to generate files.
Added a new generator, generate-bytecode-files that generates Bytecodes.h and InitBytecodes.asm
in DerivedSources/JavaScriptCore/.

Added the generation of these files to the "DerivedSource" build step.
Slighty changed the build order, since the Bytecodes.h file is needed by
JSCLLIntOffsetsExtractor.  Moved the offline assembly to a separate step since it needs
to be run after JSCLLIntOffsetsExtractor.

Made related changes to OPCODE macros and their use.

Added JavaScriptCore.framework/PrivateHeaders to header file search path for building
jsc to resolve Mac build issue.

* CMakeLists.txt:
* Configurations/JSC.xcconfig:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.vcxproj/copy-files.cmd:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/Opcode.h:
(JSC::padOpcodeName):
* llint/LLIntCLoop.cpp:
(JSC::LLInt::CLoop::initialize):
* llint/LLIntCLoop.h:
* llint/LLIntData.cpp:
(JSC::LLInt::initialize):
* llint/LLIntOpcode.h:
* llint/LowLevelInterpreter.asm:

Source/WebKit:

Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit_INCLUDE_DIRECTORIES due to new
generated Bytecodes.h include file.

* CMakeLists.txt:

Source/WebKit2:

Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit2_INCLUDE_DIRECTORIES due to new
generated Bytecodes.h include file.

* CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164814 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix 32-bit V_JITOperation_EJ callOperation introduced in r162652.
commit-queue@webkit.org [Thu, 27 Feb 2014 18:47:54 +0000 (18:47 +0000)]
Fix 32-bit V_JITOperation_EJ callOperation introduced in r162652.
https://bugs.webkit.org/show_bug.cgi?id=129420

Patch by Julien Brianceau <jbriance@cisco.com> on 2014-02-27
Reviewed by Geoffrey Garen.

* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation): Payload and tag are swapped.
Also, EABI_32BIT_DUMMY_ARG is missing for arm EABI and mips.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164813 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoOctane/closure thrashes between flattening dictionaries during global object initiali...
fpizlo@apple.com [Thu, 27 Feb 2014 18:34:27 +0000 (18:34 +0000)]
Octane/closure thrashes between flattening dictionaries during global object initialization in a global eval
https://bugs.webkit.org/show_bug.cgi?id=129435

Reviewed by Oliver Hunt.

This is a 5-10% speed-up on Octane/closure.

* interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):
* jsc.cpp:
(GlobalObject::finishCreation):
(functionClearCodeCache):
* runtime/BatchedTransitionOptimizer.h:
(JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):
(JSC::BatchedTransitionOptimizer::~BatchedTransitionOptimizer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164812 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdded svn:ignore to two directories, so that .pyc files don't show up as unversioned.
ap@apple.com [Thu, 27 Feb 2014 18:27:08 +0000 (18:27 +0000)]
Added svn:ignore to two directories, so that .pyc files don't show up as unversioned.

* inspector/scripts: Added property svn:ignore.
* replay/scripts: Added property svn:ignore.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164811 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoLook up already existing VisitedLinkTableController objects by identifier
andersca@apple.com [Thu, 27 Feb 2014 18:09:04 +0000 (18:09 +0000)]
Look up already existing VisitedLinkTableController objects by identifier
https://bugs.webkit.org/show_bug.cgi?id=129431

Reviewed by Dan Bernstein.

* WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::visitedLinkTableControllers):
(WebKit::VisitedLinkTableController::getOrCreate):
(WebKit::VisitedLinkTableController::VisitedLinkTableController):
(WebKit::VisitedLinkTableController::~VisitedLinkTableController):
* WebProcess/WebPage/VisitedLinkTableController.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164810 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[GTK][WK2] Blocks when fetching plugins information
carlosgc@webkit.org [Thu, 27 Feb 2014 17:59:16 +0000 (17:59 +0000)]
[GTK][WK2] Blocks when fetching plugins information
https://bugs.webkit.org/show_bug.cgi?id=115650

Reviewed by Gustavo Noronha Silva.

Use a persistent cache to store the plugins metadata to avoid
having to load all the plugins everytime a plugin is used for the
first time.

* GNUmakefile.am:
* GNUmakefile.list.am:
* PlatformGTK.cmake:
* Shared/Plugins/Netscape/NetscapePluginModule.h:
* Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
(WebKit::NetscapePluginModule::parseMIMEDescription): Make this
method public.
(WebKit::NetscapePluginModule::buildMIMEDescription): Added this
helper to build the MIME description string.
* UIProcess/Plugins/gtk/PluginInfoCache.cpp: Added.
(WebKit::PluginInfoCache::shared):
(WebKit::PluginInfoCache::PluginInfoCache):
(WebKit::PluginInfoCache::~PluginInfoCache):
(WebKit::PluginInfoCache::saveToFileIdleCallback):
(WebKit::PluginInfoCache::saveToFile):
(WebKit::PluginInfoCache::getPluginInfo):
(WebKit::PluginInfoCache::updatePluginInfo):
* UIProcess/Plugins/gtk/PluginInfoCache.h: Added.
* UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
(WebKit::PluginInfoStore::getPluginInfo): Check first if we have
metadata of the plugin in the cache and update the cache if we
loaded the plugin to get its metadata.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164808 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agospeechSynthesis.speak of a zero length utterance kills future speech
cfleizach@apple.com [Thu, 27 Feb 2014 17:49:45 +0000 (17:49 +0000)]
speechSynthesis.speak of a zero length utterance kills future speech
https://bugs.webkit.org/show_bug.cgi?id=129403

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Empty length strings may choke a synthesizer and result in didFinishSpeaking not being called.
The WebKit code should be proactive about screening out empty length strings.

Test: platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string.html

* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::startSpeakingImmediately):

LayoutTests:

* platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string-expected.txt: Added.
* platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164807 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agocheck-webkit-style indentation false alarm in WebKit/win/WebNodeHighlight.cpp
lvidacs.u-szeged@partner.samsung.com [Thu, 27 Feb 2014 17:02:13 +0000 (17:02 +0000)]
check-webkit-style indentation false alarm in WebKit/win/WebNodeHighlight.cpp
https://bugs.webkit.org/show_bug.cgi?id=127076

Reviewed by Anders Carlsson.

Avoid match for :: as start of a member initialization list. Modify expression to match
after a colon either non-colon character or end of line.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_member_initialization_list):
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_member_initialization_list):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164806 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed, rolling out r164783.
commit-queue@webkit.org [Thu, 27 Feb 2014 16:08:56 +0000 (16:08 +0000)]
Unreviewed, rolling out r164783.
http://trac.webkit.org/changeset/164783
https://bugs.webkit.org/show_bug.cgi?id=129425

Broke number of multicol tests (Requested by anttik on
#webkit).

Source/WebCore:

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::containingColumnsBlock):

LayoutTests:

* fast/css/crash-on-column-splitting-expected.txt: Removed.
* fast/css/crash-on-column-splitting.html: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164805 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRespect SVG fragment identifiers in <img> src attribute
graouts@webkit.org [Thu, 27 Feb 2014 15:52:28 +0000 (15:52 +0000)]
Respect SVG fragment identifiers in <img> src attribute
https://bugs.webkit.org/show_bug.cgi?id=129387

Reviewed by Antti Koivisto.

Source/WebCore:

Test: svg/css/svg-resource-fragment-identifier-img-src.html

When providing an SVG image for a given renderer, check that the URL used to load
that image is taken into account in case it featured a fragment identifier, ensuring
that the CSS :target pseudo-class is correctly handled for SVG resources. This patch
is specific to <img> elements, specific support will also need to be added for various
CSS properties that support SVG images.

* svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::imageForRenderer):
Check if the provided renderer is attached to an <img> element and, if so, pass the
resolved <img> source URL, taking into account srcset, to the SVGImageForContainer.

* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::setURL):
Trigger the FrameView machinery to ensure that the :target pseudo-class is respected
should the provided URL feature a fragment identifier.

* svg/graphics/SVGImageForContainer.h:
Declare the new setURL() method.

LayoutTests:

Test that we correctly handle the fragment identifier used in SVG URLs in <img> elements,
checking for correct srcset handling as well.

* svg/css/resources/fragment-identifiers.svg: Added.
* svg/css/svg-resource-fragment-identifier-img-src-expected.html: Added.
* svg/css/svg-resource-fragment-identifier-img-src.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164804 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[ATK] Fix style errors in enum members
k.czech@samsung.com [Thu, 27 Feb 2014 14:22:14 +0000 (14:22 +0000)]
[ATK] Fix style errors in enum members
https://bugs.webkit.org/show_bug.cgi?id=129421

Reviewed by Mario Sanchez Prada.

No new tests. No new functionality.

Enum members should use InterCaps with an initial capital letter.

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(getInterfaceMaskFromObject):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164802 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed. Update my email addresses in contributors.json.
reni@webkit.org [Thu, 27 Feb 2014 14:03:38 +0000 (14:03 +0000)]
Unreviewed. Update my email addresses in contributors.json.

* Scripts/webkitpy/common/config/contributors.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164801 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agor164764 broke the ARM build
rgabor@webkit.org [Thu, 27 Feb 2014 14:01:45 +0000 (14:01 +0000)]
r164764 broke the ARM build
https://bugs.webkit.org/show_bug.cgi?id=129415

Reviewed by Zoltan Herczeg.

* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::moveWithPatch): Change reinterpret_cast to static_cast.
(JSC::MacroAssemblerARM::canJumpReplacePatchableBranch32WithPatch): Add missing function.
(JSC::MacroAssemblerARM::startOfPatchableBranch32WithPatchOnAddress): Add missing function.
(JSC::MacroAssemblerARM::revertJumpReplacementToPatchableBranch32WithPatch): Add missing function.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164799 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoneed to #include <libgen.h> for basename
commit-queue@webkit.org [Thu, 27 Feb 2014 13:58:58 +0000 (13:58 +0000)]
need to #include <libgen.h> for basename
https://bugs.webkit.org/show_bug.cgi?id=128597

Patch by Ryan Lortie <desrt@desrt.ca> on 2014-02-27
Reviewed by Carlos Garcia Campos.

* PluginProcess/unix/PluginProcessMainUnix.cpp: include <libgen.h> as required by POSIX for basename

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164797 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFallback on checking for libz manualy if zlib.pc isn't available.
berto@igalia.com [Thu, 27 Feb 2014 13:48:53 +0000 (13:48 +0000)]
Fallback on checking for libz manualy if zlib.pc isn't available.
https://bugs.webkit.org/show_bug.cgi?id=127061

Patch by Koop Mast <kwm@FreeBSD.org> on 2014-02-27
Reviewed by Gustavo Noronha Silva.

* Source/autotools/FindDependencies.m4:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164796 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[CSS Blending] Parse and implement the -webkit-isolation CSS property.
commit-queue@webkit.org [Thu, 27 Feb 2014 13:15:25 +0000 (13:15 +0000)]
[CSS Blending] Parse and implement the -webkit-isolation CSS property.

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

Patch by Mihai Tica <mitica@adobe.com> on 2014-02-27
Reviewed by Dirk Schulze.

Source/WebCore:

Parse and implement -webkit-isolation, part of the CSS Blending and Compositing spec.
This patch adds functionality for HTML and SVG.
-webkit-isolation: isolate restricts any child elements from blending with any of the content outside the isolated parent element.

Tests: css3/compositing/isolation-isolate-blended-child.html
       css3/compositing/isolation-parsing.html
       css3/compositing/svg-isolation-default.html
       css3/compositing/svg-isolation-isolated-group.html
       css3/compositing/svg-isolation-simple.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator Isolation):
* css/CSSPropertyNames.in: Add -webkit-isolation.
* css/CSSValueKeywords.in: Add the isolate value.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): Explicitly set isolation:isolate to create a stacking context.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayerRepaint): Changing isolation should trigger a repaint.
* rendering/style/RenderStyle.h: Setters and getters for isolation.
* rendering/style/RenderStyleConstants.h: Add Isolation enum.
* rendering/style/StyleRareNonInheritedData.cpp: Add m_isolation.
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::prepareToRenderSVGContent): If isolated, paint in a transparency layer.

LayoutTests:

Test parsing of -webkit-isolation. Test if setting -webkit-isolation: isolate creats a stacking context.
Test for SVG and HTML that blending is restricted to the contents of an isolated parent element.

* css3/compositing/isolation-isolate-blended-child-expected.html: Added.
* css3/compositing/isolation-isolate-blended-child.html: Added.
* css3/compositing/isolation-isolate-simple-expected.txt: Added.
* css3/compositing/isolation-parsing-expected.txt: Added.
* css3/compositing/isolation-parsing.html: Added.
* css3/compositing/svg-isolation-default-expected.html: Added.
* css3/compositing/svg-isolation-default.html: Added.
* css3/compositing/svg-isolation-isolated-group-expected.html: Added.
* css3/compositing/svg-isolation-isolated-group.html: Added.
* css3/compositing/svg-isolation-simple-expected.html: Added.
* css3/compositing/svg-isolation-simple.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164795 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[gtk-doc] UnicodeEncodeError: 'ascii' codec can't encode character
berto@igalia.com [Thu, 27 Feb 2014 12:27:52 +0000 (12:27 +0000)]
[gtk-doc] UnicodeEncodeError: 'ascii' codec can't encode character
https://bugs.webkit.org/show_bug.cgi?id=128927

Reviewed by Philippe Normand.

Encode manually the data for sys.{stdout,stderr}.write.

* gtk/gtkdoc.py:
(GTKDoc._run_command):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164794 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed. Add myself to watchlists
agomez@igalia.com [Thu, 27 Feb 2014 12:10:19 +0000 (12:10 +0000)]
Unreviewed. Add myself to watchlists

* Scripts/webkitpy/common/config/watchlist: Add myself to
watchlists.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164793 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed, rolling out r164790.
agomez@igalia.com [Thu, 27 Feb 2014 11:59:14 +0000 (11:59 +0000)]
Unreviewed, rolling out r164790.
http://trac.webkit.org/changeset/164790

Revert r164790 because of erroneous commit log

* Scripts/webkitpy/common/config/watchlist:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164792 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[ATK] Utilize AtkTableCell to expose directly AccessibilityTableCell to AT
agomez@igalia.com [Thu, 27 Feb 2014 11:35:46 +0000 (11:35 +0000)]
[ATK] Utilize AtkTableCell to expose directly AccessibilityTableCell to AT
https://bugs.webkit.org/show_bug.cgi?id=129250

Patch by Krzysztof Czech <k.czech@samsung.com> on 2014-02-27
Reviewed by Mario Sanchez Prada.

Changing version of ATK to 2.11.90, because it introduces AtkTableCell interface.
Implementing methods so that we could test column/row headers represented as an array of cells.

* DumpRenderTree/AccessibilityUIElement.cpp:
* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(AccessibilityUIElement::columnHeaders):
(AccessibilityUIElement::rowHeaders):
* DumpRenderTree/win/AccessibilityUIElementWin.cpp: Adding empty stubs, to not break compilation.
(AccessibilityUIElement::columnHeaders):
(AccessibilityUIElement::rowHeaders):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::rowHeaders):
(WTR::AccessibilityUIElement::columnHeaders):
* efl/jhbuild.modules:
* gtk/jhbuild.modules:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164790 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[GTK] Web Inspector doesn't work with network process enabled
carlosgc@webkit.org [Thu, 27 Feb 2014 11:30:23 +0000 (11:30 +0000)]
[GTK] Web Inspector doesn't work with network process enabled
https://bugs.webkit.org/show_bug.cgi?id=127651

Reviewed by Sergio Villar Senin.

The problem is that the web inspector loads so many resources,
that when using the network process, a lot of IPC traffic is
generated causing the send buffer of the socket to be full. When
that happens sendmsg() fails with EAGAIN, because we are using non
blocking sockets, and we are not handling neither EAGAIN nor
EWOULDBLOCK errors (we do when reading from the socket, though).

* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::readyReadHandler): Add a log message to know
when reading from the socket fails for any unhandled error.
(IPC::Connection::sendOutgoingMessage): Handle EAGAIN and
EWOULDBLOCK errors to try again in those cases. Also add a log
message for unhandled errors.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164787 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[ATK] Utilize AtkTableCell to expose directly AccessibilityTableCell to AT
k.czech@samsung.com [Thu, 27 Feb 2014 11:28:31 +0000 (11:28 +0000)]
[ATK] Utilize AtkTableCell to expose directly AccessibilityTableCell to AT
https://bugs.webkit.org/show_bug.cgi?id=129250

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Test: accessibility/table-scope.html

Exposing AtkTableCell to AT. Implementing possibility to get column headers and row headers
as an array of cells.

* GNUmakefile.list.am:
* PlatformEfl.cmake:
* accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp: Added.
(convertToGPtrArray):
(core):
(webkitAccessibleTableCellGetColumnHeaderCells):
(webkitAccessibleTableCellGetRowHeaderCells):
(webkitAccessibleTableCellInterfaceInit):
* accessibility/atk/WebKitAccessibleInterfaceTableCell.h: Added.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(getInterfaceMaskFromObject):

Tools:

Changing version of ATK to 2.11.90, because it introduces AtkTableCell interface.
Implementing methods so that we could test column/row headers represented as an array of cells.

* DumpRenderTree/AccessibilityUIElement.cpp:
* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(AccessibilityUIElement::columnHeaders):
(AccessibilityUIElement::rowHeaders):
* DumpRenderTree/win/AccessibilityUIElementWin.cpp: Adding empty stubs, to not break compilation.
(AccessibilityUIElement::columnHeaders):
(AccessibilityUIElement::rowHeaders):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::rowHeaders):
(WTR::AccessibilityUIElement::columnHeaders):
* efl/jhbuild.modules:
* gtk/jhbuild.modules:

LayoutTests:

Sharing test with GTK/EFL.

* accessibility/table-scope-expected.txt: Renamed from LayoutTests/platform/mac/accessibility/table-scope-expected.txt.
* accessibility/table-scope.html: Renamed from LayoutTests/platform/mac/accessibility/table-scope.html.
* platform/win/TestExpectations: Skipping on windows, missing implementation.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164786 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed. Add myself as a committer.
agomez@igalia.com [Thu, 27 Feb 2014 11:14:13 +0000 (11:14 +0000)]
Unreviewed. Add myself as a committer.

* Scripts/webkitpy/common/config/contributors.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164785 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed. Add Víctor Jáquez and myself to watchlists
calvaris@igalia.com [Thu, 27 Feb 2014 10:29:34 +0000 (10:29 +0000)]
Unreviewed. Add Víctor Jáquez and myself to watchlists

* Scripts/webkitpy/common/config/watchlist: Add Víctor Jáquez and
myself to watchlists.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164784 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoImproving containing column block determination
reni@webkit.org [Thu, 27 Feb 2014 10:17:22 +0000 (10:17 +0000)]
Improving containing column block determination
https://bugs.webkit.org/show_bug.cgi?id=125449

Reviewed by Darin Adler.

Source/WebCore:

Making sure that the containing column block of any elements
can not be oneself.

Test: fast/css/crash-on-column-splitting.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::containingColumnsBlock):
(WebCore::RenderBlock::splitFlow):

LayoutTests:

* fast/css/crash-on-column-splitting-expected.txt: Added.
* fast/css/crash-on-column-splitting.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164783 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[GTK] Improve JavaScript multimedia controls
calvaris@igalia.com [Thu, 27 Feb 2014 09:16:18 +0000 (09:16 +0000)]
[GTK] Improve JavaScript multimedia controls
https://bugs.webkit.org/show_bug.cgi?id=129044

Reviewed by Jer Noble.

Source/WebCore:

After webkit.org/b/123097 a follow up was needed to improve
accessibily and some other cosmetic problems, like cleaner CSS and
new missing baselines.

No new tests because of no new functionality.

* Modules/mediacontrols/mediaControlsApple.js:
Added hiding class name.
* Modules/mediacontrols/mediaControlsGtk.js:
(ControllerGtk.prototype.createControls): Set remaining time as
hidden by default and turned volumebox hidden into hiding.
(ControllerGtk.prototype.updateTime): Simplified the hiding and
showing by removing the show class and using hidden only.
(ControllerGtk.prototype.handleMuteButtonMouseOver):
(ControllerGtk.prototype.handleVolumeBoxMouseOut): Turned hidden
into hiding.
(ControllerGtk.prototype.updateReadyState): Changed coding style
and added down class for the panel too.
(ControllerGtk.prototype.updatePlaying): Change for coding style
coherence.
(ControllerGtk.prototype.handleCaptionButtonClicked): Call
handleCaptionButtonShowMenu.
(ControllerGtk.prototype.handleCaptionButtonMouseOver): Call
handleCaptionButtonShowMenu.
(ControllerGtk.prototype.handleCaptionButtonShowMenu): Created
with the former behavior of handleCaptionButtonMouseOver.
* css/mediaControlsGtk.css:
(.hidden): Set display none for all objects with hidden class.
(audio::-webkit-media-controls-panel *:focus):
(audio::-webkit-media-controls-panel.down *:focus): Added gradient
for the active and focus status.
(audio::-webkit-media-controls-time-remaining-display)
(video::-webkit-media-controls-time-remaining-display): Set
display block.
(audio::-webkit-media-controls-volume-slider-container)
(video::-webkit-media-controls-volume-slider-container): Set
display flex.
(video::-webkit-media-controls-volume-slider-container.hiding):
Changed from hidden.
(video::-webkit-media-controls-panel .hiding.down): Changed from
hidden.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::paintMediaButton): Returning true to
allow CSS painting the gradient.

LayoutTests:

* media/controls-without-preload.html: Fixed.
* platform/gtk/accessibility/media-controls-panel-title-expected.txt:
* platform/gtk/accessibility/media-controls-panel-title.html:
* platform/gtk/accessibility/media-emits-object-replacement-expected.txt:
* platform/gtk/media/video-volume-slider-expected.png:
* platform/gtk/media/video-volume-slider-expected.txt:
* platform/gtk/media/video-zoom-controls-expected.txt: Rebaseline.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164782 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agor164764 broke the ARM build
mhahnenberg@apple.com [Thu, 27 Feb 2014 08:45:57 +0000 (08:45 +0000)]
r164764 broke the ARM build
https://bugs.webkit.org/show_bug.cgi?id=129415

Reviewed by Geoffrey Garen.

* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::moveWithPatch):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164781 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed. Fixing the GTK build fix after r164757.
zandobersek@gmail.com [Thu, 27 Feb 2014 08:42:12 +0000 (08:42 +0000)]
Unreviewed. Fixing the GTK build fix after r164757.

* platform/network/NetworkStateNotifier.cpp: r164757 introduced a layering violation by including
the Settings.h header. The use of that class is guarded by PLATFORM(IOS), so the header inclusion
should be guarded as well.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164780 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed GTK build fix after r164751.
philn@webkit.org [Thu, 27 Feb 2014 07:36:04 +0000 (07:36 +0000)]
Unreviewed GTK build fix after r164751.

* GNUmakefile.list.am:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164779 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdd Cisco to team.html
julien.brianceau@gmail.com [Thu, 27 Feb 2014 07:15:56 +0000 (07:15 +0000)]
Add Cisco to team.html
https://bugs.webkit.org/show_bug.cgi?id=129405

Reviewed by Andreas Kling.

* team.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164778 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoiOS build fix.
mitz@apple.com [Thu, 27 Feb 2014 06:55:49 +0000 (06:55 +0000)]
iOS build fix.

* UIProcess/ios/forms/WKFormPopover.h:
* UIProcess/ios/forms/WKFormPopover.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164777 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoReplaced use of the EXCLUDED_SOURCE_FILE_NAMES build setting with #if PLATFORM(…...
mitz@apple.com [Thu, 27 Feb 2014 06:48:09 +0000 (06:48 +0000)]
Replaced use of the EXCLUDED_SOURCE_FILE_NAMES build setting with #if PLATFORM(…) guards in
the files themselves.

Rubber-stamped by Sam Weinig.

* Configurations/WebKit2.xcconfig: Cleared out EXCLUDED_SOURCE_FILE_NAMES_macosx, and left
EXCLUDED_SOURCE_FILE_NAMES_iphoneos containing just the names of resources the should be
excluded from Copy Files build phases.
* NetworkProcess/ios/NetworkProcessIOS.mm:
* NetworkProcess/mac/NetworkProcessMac.mm:
* Shared/Downloads/ios/DownloadIOS.mm:
* Shared/Downloads/mac/DownloadMac.mm:
* Shared/NativeWebTouchEvent.h:
* Shared/WebPlatformTouchPoint.cpp:
* Shared/WebTouchEvent.cpp:
* Shared/ios/NativeWebKeyboardEventIOS.mm:
* Shared/ios/NativeWebTouchEventIOS.mm:
* Shared/ios/WebIOSEventFactory.h:
* Shared/ios/WebIOSEventFactory.mm:
* Shared/mac/PasteboardTypes.h:
* Shared/mac/PasteboardTypes.mm:
* Shared/mac/PrintInfoMac.mm:
* UIProcess/API/C/WKInspector.cpp:
* UIProcess/API/Cocoa/WKThumbnailView.h:
* UIProcess/API/Cocoa/WKThumbnailView.mm:
* UIProcess/API/Cocoa/WKThumbnailViewInternal.h:
* UIProcess/API/ios/WKViewIOS.mm:
* UIProcess/API/mac/WKView.mm:
* UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
* UIProcess/ios/TextCheckerIOS.mm:
* UIProcess/ios/ViewGestureControllerIOS.mm:
* UIProcess/ios/WKActionSheet.h:
* UIProcess/ios/WKActionSheet.mm:
* UIProcess/ios/WKActionSheetAssistant.h:
* UIProcess/ios/WKActionSheetAssistant.mm:
* UIProcess/ios/WKContentView.mm:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
* UIProcess/ios/WKGeolocationProviderIOS.h:
* UIProcess/ios/WKGeolocationProviderIOS.mm:
* UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm:
* UIProcess/ios/WKScrollView.h:
* UIProcess/ios/WKScrollView.mm:
* UIProcess/ios/WebInspectorProxyIOS.mm:
* UIProcess/ios/WebPageProxyIOS.mm:
* UIProcess/ios/WebProcessProxyIOS.mm:
* UIProcess/ios/forms/WKFormInputControl.h:
* UIProcess/ios/forms/WKFormInputControl.mm:
* UIProcess/ios/forms/WKFormPopover.h:
* UIProcess/ios/forms/WKFormPopover.mm:
* UIProcess/mac/FindIndicatorWindow.h:
* UIProcess/mac/FindIndicatorWindow.mm:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
* UIProcess/mac/TextCheckerMac.mm:
* UIProcess/mac/WKFullKeyboardAccessWatcher.h:
* UIProcess/mac/WKFullKeyboardAccessWatcher.mm:
* UIProcess/mac/WKPrintingView.h:
* UIProcess/mac/WKPrintingView.mm:
* UIProcess/mac/WebContextMenuProxyMac.h:
* UIProcess/mac/WebContextMenuProxyMac.mm:
* UIProcess/mac/WebInspectorProxyMac.mm:
* UIProcess/mac/WebPageProxyMac.mm:
* UIProcess/mac/WebProcessProxyMac.mm:
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
* WebProcess/WebCoreSupport/ios/WebDatabaseManagerIOS.mm:
* WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
* WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
* WebProcess/WebPage/ios/WebBackForwardListProxyIOS.mm:
* WebProcess/WebPage/ios/WebPageIOS.mm:
* WebProcess/WebPage/mac/WKAccessibilityWebPageObject.h:
* WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm:
* WebProcess/WebPage/mac/WebPageMac.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164776 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[WinCairo] Fixed linking after disabling WebGL.
alex.christensen@flexsim.com [Thu, 27 Feb 2014 05:25:12 +0000 (05:25 +0000)]
[WinCairo] Fixed linking after disabling WebGL.

* WebKit.vcxproj/WebKit/WebKitCFLite.props:
Don't link to ANGLE libraries, which are no longer built.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164775 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agor164764 broke the ARM build
mhahnenberg@apple.com [Thu, 27 Feb 2014 03:41:29 +0000 (03:41 +0000)]
r164764 broke the ARM build
https://bugs.webkit.org/show_bug.cgi?id=129415

Reviewed by Geoffrey Garen.

* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::branch32WithPatch): Missing this function.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164774 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove the second change log entry erroneously added in the previous commit.
rniwa@webkit.org [Thu, 27 Feb 2014 03:37:25 +0000 (03:37 +0000)]
Remove the second change log entry erroneously added in the previous commit.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164773 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoExtract named items caches in HTMLCollection as a class
rniwa@webkit.org [Thu, 27 Feb 2014 03:35:22 +0000 (03:35 +0000)]
Extract named items caches in HTMLCollection as a class
https://bugs.webkit.org/show_bug.cgi?id=129365

Reviewed by Antti Koivisto.

Extracted CollectionNamedElementCache, like CollectionIndexCache, out of HTMLCollection.
We can move more named item related functions into this class in the future.

HTMLCollection's member variables m_isNameCacheValid, m_idCache, and m_nameCache were replaced by
a single unique_ptr that holds an instance of CollectionNamedElementCache since this object rarely
exists in most HTMLCollections.

Also removed m_isItemRefElementsCacheValid since it was only used by Microdata API removed in r153772
and renamed a whole bunch of member functions and variables for consistency.

* dom/Document.cpp:
(WebCore::Document::collectionCachedIdNameMap):
(WebCore::Document::collectionWillClearIdNameMap):
* dom/Document.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptDocument):
* html/HTMLAllCollection.cpp:
(WebCore::HTMLAllCollection::namedItemWithIndex):
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::~HTMLCollection):
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::invalidateNamedElementCache): Renamed from invalidateIdNameCacheMaps.
(WebCore::HTMLCollection::namedItem):
(WebCore::HTMLCollection::updateNamedElementCache): Renamed from updateNameCache.
(WebCore::HTMLCollection::namedItems):

* html/HTMLCollection.h:
(WebCore::CollectionNamedElementCache::findElementsWithId): Renamed from HTMLCollection::idCache.
(WebCore::CollectionNamedElementCache::findElementsWithName): Renamed from HTMLCollection::nameCache.
(WebCore::CollectionNamedElementCache::appendIdCache): Moved from HTMLCollection.
(WebCore::CollectionNamedElementCache::appendNameCache): Ditto.
(WebCore::CollectionNamedElementCache::find): Ditto.
(WebCore::CollectionNamedElementCache::append): Ditto.

(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::hasNamedElementCache): Renamed from hasIdNameCache.
(WebCore::HTMLCollection::createNameItemCache): Added.
(WebCore::HTMLCollection::namedItemCaches): Added.

* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::updateNamedElementCache):
* html/HTMLFormControlsCollection.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164772 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUpdate style guide to use nullptr instead of 0 for C++ null pointers.
bjonesbe@adobe.com [Thu, 27 Feb 2014 03:01:24 +0000 (03:01 +0000)]
Update style guide to use nullptr instead of 0 for C++ null pointers.
https://bugs.webkit.org/show_bug.cgi?id=129413

Reviewed by Ryosuke Niwa.

* coding/coding-style.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164771 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoIndenting an indented image element resulted in an extra indentation
rniwa@webkit.org [Thu, 27 Feb 2014 02:23:43 +0000 (02:23 +0000)]
Indenting an indented image element resulted in an extra indentation
https://bugs.webkit.org/show_bug.cgi?id=129201

Reviewed by Enrica Casucci.

Source/WebCore:

The bug was caused by endOfParagraph returning a position at the beginning of a block when the position
passed into the function was at the beginning of the block. Consider the following DOM:
<blockquote><img></blockquote>

When endOfParagraph is called on (blockquote, 0), the condition r->isBR() || isBlock(n) in endOfParagraph
matches immediately on startNode and it returns (blockquote, 0) again.

This resulted in moveParagraphWithClones invoked by indentIntoBlockquote to erroneously clone the inner
blockquote. Worked around this bug in ApplyBlockElementCommand::formatSelection by checking this specific
condition and moving the position to the end of the block. Unfortunately, a lot of existing code depends
on the current behavior of endOfParagraph so fixing the function itself was not possible.

There was another bug in indentIntoBlockquote to incorrectly insert a new blockquote into the existing
blockquote due to the code introduced in r99594 to avoid inserting before the root editable element.
Since this happens only if outerBlock is the root editable element, which is nodeToSplitTo or an ancestor
of nodeToSplitTo, explicitly look for this condition.

Test: editing/execCommand/indent-img-twice.html

* editing/ApplyBlockElementCommand.cpp:
(WebCore::ApplyBlockElementCommand::formatSelection):
(WebCore::isNewLineAtPosition):
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::indentIntoBlockquote):
* editing/VisibleUnits.cpp:
(WebCore::endOfParagraph): Added a FIXME.

LayoutTests:

Added a regression test.

* editing/execCommand/indent-img-twice-expected.txt: Added.
* editing/execCommand/indent-img-twice.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164770 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix two assertions/crashes in compositing code
simon.fraser@apple.com [Thu, 27 Feb 2014 02:16:43 +0000 (02:16 +0000)]
Fix two assertions/crashes in compositing code
https://bugs.webkit.org/show_bug.cgi?id=129414

Reviewed by Dean Jackson.

Fix two issues introduced in r164759.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers): Don't call
ourselves recursively!
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer): We call this
function unconditionally on layer teardown, so this assertion is bogus.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164769 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoVisitedLinkProvider should know which pages it belongs to
andersca@apple.com [Thu, 27 Feb 2014 02:08:15 +0000 (02:08 +0000)]
VisitedLinkProvider should know which pages it belongs to
https://bugs.webkit.org/show_bug.cgi?id=129410

Reviewed by Dan Bernstein.

* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::~VisitedLinkProvider):
(WebKit::VisitedLinkProvider::addPage):
(WebKit::VisitedLinkProvider::removePage):
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164768 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix the build with some compiler configurations.
simon.fraser@apple.com [Thu, 27 Feb 2014 01:57:10 +0000 (01:57 +0000)]
Fix the build with some compiler configurations.

* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164767 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoEFL build fix
mhahnenberg@apple.com [Thu, 27 Feb 2014 01:53:02 +0000 (01:53 +0000)]
EFL build fix

* dfg/DFGSpeculativeJIT32_64.cpp: Remove unused variables.
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164766 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoBuild fix.
enrica@apple.com [Thu, 27 Feb 2014 01:46:15 +0000 (01:46 +0000)]
Build fix.

Unexpected line break.

* Configurations/WebKit2.xcconfig:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164765 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMake JSCells have 32-bit Structure pointers
mhahnenberg@apple.com [Thu, 27 Feb 2014 01:27:18 +0000 (01:27 +0000)]
Make JSCells have 32-bit Structure pointers
https://bugs.webkit.org/show_bug.cgi?id=123195

Reviewed by Filip Pizlo.

This patch changes JSCells such that they no longer have a full 64-bit Structure
pointer in their header. Instead they now have a 32-bit index into
a per-VM table of Structure pointers. 32-bit platforms still use normal Structure
pointers.

This change frees up an additional 32 bits of information in our object headers.
We then use this extra space to store the indexing type of the object, the JSType
of the object, some various type flags, and garbage collection data (e.g. mark bit).
Because this inline type information is now faster to read, it pays for the slowdown
incurred by having to perform an extra indirection through the StructureIDTable.

This patch also threads a reference to the current VM through more of the C++ runtime
to offset the cost of having to look up the VM to get the actual Structure pointer.

* API/JSContext.mm:
(-[JSContext setException:]):
(-[JSContext wrapperForObjCObject:]):
(-[JSContext wrapperForJSObject:]):
* API/JSContextRef.cpp:
(JSContextGroupRelease):
(JSGlobalContextRelease):
* API/JSObjectRef.cpp:
(JSObjectIsFunction):
(JSObjectCopyPropertyNames):
* API/JSValue.mm:
(containerValueToObject):
* API/JSWrapperMap.mm:
(tryUnwrapObjcObject):
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* assembler/AbstractMacroAssembler.h:
* assembler/MacroAssembler.h:
(JSC::MacroAssembler::patchableBranch32WithPatch):
(JSC::MacroAssembler::patchableBranch32):
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::branchPtrWithPatch):
(JSC::MacroAssemblerARM64::patchableBranch32WithPatch):
(JSC::MacroAssemblerARM64::canJumpReplacePatchableBranch32WithPatch):
(JSC::MacroAssemblerARM64::startOfPatchableBranch32WithPatchOnAddress):
(JSC::MacroAssemblerARM64::revertJumpReplacementToPatchableBranch32WithPatch):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::store8):
(JSC::MacroAssemblerARMv7::branch32WithPatch):
(JSC::MacroAssemblerARMv7::patchableBranch32WithPatch):
(JSC::MacroAssemblerARMv7::canJumpReplacePatchableBranch32WithPatch):
(JSC::MacroAssemblerARMv7::startOfPatchableBranch32WithPatchOnAddress):
(JSC::MacroAssemblerARMv7::revertJumpReplacementToPatchableBranch32WithPatch):
* assembler/MacroAssemblerX86.h:
(JSC::MacroAssemblerX86::branch32WithPatch):
(JSC::MacroAssemblerX86::canJumpReplacePatchableBranch32WithPatch):
(JSC::MacroAssemblerX86::startOfPatchableBranch32WithPatchOnAddress):
(JSC::MacroAssemblerX86::revertJumpReplacementToPatchableBranch32WithPatch):
* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::store32):
(JSC::MacroAssemblerX86_64::moveWithPatch):
(JSC::MacroAssemblerX86_64::branch32WithPatch):
(JSC::MacroAssemblerX86_64::canJumpReplacePatchableBranch32WithPatch):
(JSC::MacroAssemblerX86_64::startOfBranch32WithPatchOnRegister):
(JSC::MacroAssemblerX86_64::startOfPatchableBranch32WithPatchOnAddress):
(JSC::MacroAssemblerX86_64::revertJumpReplacementToPatchableBranch32WithPatch):
* assembler/RepatchBuffer.h:
(JSC::RepatchBuffer::startOfPatchableBranch32WithPatchOnAddress):
(JSC::RepatchBuffer::revertJumpReplacementToPatchableBranch32WithPatch):
* assembler/X86Assembler.h:
(JSC::X86Assembler::revertJumpTo_movq_i64r):
(JSC::X86Assembler::revertJumpTo_movl_i32r):
* bytecode/ArrayProfile.cpp:
(JSC::ArrayProfile::computeUpdatedPrediction):
* bytecode/ArrayProfile.h:
(JSC::ArrayProfile::ArrayProfile):
(JSC::ArrayProfile::addressOfLastSeenStructureID):
(JSC::ArrayProfile::observeStructure):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::heap):
* bytecode/UnlinkedCodeBlock.h:
* debugger/Debugger.h:
* dfg/DFGAbstractHeap.h:
* dfg/DFGArrayifySlowPathGenerator.h:
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::branchWeakStructure):
(JSC::DFG::JITCompiler::branchStructurePtr):
* dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::osrWriteBarrier):
(JSC::DFG::adjustAndJumpToTarget):
* dfg/DFGOperations.cpp:
(JSC::DFG::putByVal):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::arrayify):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
(JSC::DFG::SpeculativeJIT::compileInstanceOf):
(JSC::DFG::SpeculativeJIT::compileToStringOnCell):
(JSC::DFG::SpeculativeJIT::speculateObject):
(JSC::DFG::SpeculativeJIT::speculateFinalObject):
(JSC::DFG::SpeculativeJIT::speculateObjectOrOther):
(JSC::DFG::SpeculativeJIT::speculateString):
(JSC::DFG::SpeculativeJIT::speculateStringObject):
(JSC::DFG::SpeculativeJIT::speculateStringOrStringObject):
(JSC::DFG::SpeculativeJIT::emitSwitchChar):
(JSC::DFG::SpeculativeJIT::emitSwitchString):
(JSC::DFG::SpeculativeJIT::genericWriteBarrier):
(JSC::DFG::SpeculativeJIT::writeBarrier):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::emitAllocateJSCell):
(JSC::DFG::SpeculativeJIT::speculateStringObjectForStructure):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::writeBarrier):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::writeBarrier):
* dfg/DFGWorklist.cpp:
* ftl/FTLAbstractHeapRepository.cpp:
(JSC::FTL::AbstractHeapRepository::AbstractHeapRepository):
* ftl/FTLAbstractHeapRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileCheckStructure):
(JSC::FTL::LowerDFGToLLVM::compileArrayifyToStructure):
(JSC::FTL::LowerDFGToLLVM::compilePutStructure):
(JSC::FTL::LowerDFGToLLVM::compileToString):
(JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):
(JSC::FTL::LowerDFGToLLVM::compileMultiPutByOffset):
(JSC::FTL::LowerDFGToLLVM::speculateTruthyObject):
(JSC::FTL::LowerDFGToLLVM::allocateCell):
(JSC::FTL::LowerDFGToLLVM::equalNullOrUndefined):
(JSC::FTL::LowerDFGToLLVM::isObject):
(JSC::FTL::LowerDFGToLLVM::isString):
(JSC::FTL::LowerDFGToLLVM::isArrayType):
(JSC::FTL::LowerDFGToLLVM::hasClassInfo):
(JSC::FTL::LowerDFGToLLVM::isType):
(JSC::FTL::LowerDFGToLLVM::speculateStringOrStringObject):
(JSC::FTL::LowerDFGToLLVM::speculateStringObjectForCell):
(JSC::FTL::LowerDFGToLLVM::speculateStringObjectForStructureID):
(JSC::FTL::LowerDFGToLLVM::speculateNonNullObject):
(JSC::FTL::LowerDFGToLLVM::loadMarkByte):
(JSC::FTL::LowerDFGToLLVM::loadStructure):
(JSC::FTL::LowerDFGToLLVM::weakStructure):
* ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
* ftl/FTLOutput.h:
(JSC::FTL::Output::store8):
* heap/GCAssertions.h:
* heap/Heap.cpp:
(JSC::Heap::getConservativeRegisterRoots):
(JSC::Heap::collect):
(JSC::Heap::writeBarrier):
* heap/Heap.h:
(JSC::Heap::structureIDTable):
* heap/MarkedSpace.h:
(JSC::MarkedSpace::forEachBlock):
* heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::internalAppend):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfCellNotObject):
(JSC::AssemblyHelpers::genericWriteBarrier):
(JSC::AssemblyHelpers::emitLoadStructure):
(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):
* jit/JIT.h:
* jit/JITCall.cpp:
(JSC::JIT::compileOpCall):
(JSC::JIT::privateCompileClosureCall):
* jit/JITCall32_64.cpp:
(JSC::JIT::emit_op_ret_object_or_this):
(JSC::JIT::compileOpCall):
(JSC::JIT::privateCompileClosureCall):
* jit/JITInlineCacheGenerator.cpp:
(JSC::JITByIdGenerator::generateFastPathChecks):
* jit/JITInlineCacheGenerator.h:
* jit/JITInlines.h:
(JSC::JIT::emitLoadCharacterString):
(JSC::JIT::checkStructure):
(JSC::JIT::emitJumpIfCellNotObject):
(JSC::JIT::emitAllocateJSObject):
(JSC::JIT::emitArrayProfilingSiteWithCell):
(JSC::JIT::emitArrayProfilingSiteForBytecodeIndexWithCell):
(JSC::JIT::branchStructure):
(JSC::branchStructure):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_check_has_instance):
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emit_op_is_undefined):
(JSC::JIT::emit_op_is_string):
(JSC::JIT::emit_op_ret_object_or_this):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_get_pnames):
(JSC::JIT::emit_op_next_pname):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emit_op_to_this):
(JSC::JIT::emitSlow_op_to_this):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_check_has_instance):
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emit_op_is_undefined):
(JSC::JIT::emit_op_is_string):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emitSlow_op_eq):
(JSC::JIT::emitSlow_op_neq):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emit_op_get_pnames):
(JSC::JIT::emit_op_next_pname):
(JSC::JIT::emit_op_to_this):
* jit/JITOperations.cpp:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_get_by_pname):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitLoadWithStructureCheck):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::emitSlow_op_put_to_scope):
(JSC::JIT::checkMarkWord):
(JSC::JIT::emitWriteBarrier):
(JSC::JIT::addStructureTransitionCheck):
(JSC::JIT::emitIntTypedArrayGetByVal):
(JSC::JIT::emitFloatTypedArrayGetByVal):
(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_pname):
(JSC::JIT::emitLoadWithStructureCheck):
* jit/JSInterfaceJIT.h:
(JSC::JSInterfaceJIT::emitJumpIfNotType):
* jit/Repatch.cpp:
(JSC::repatchByIdSelfAccess):
(JSC::addStructureTransitionCheck):
(JSC::replaceWithJump):
(JSC::generateProtoChainAccessStub):
(JSC::tryCacheGetByID):
(JSC::tryBuildGetByIDList):
(JSC::writeBarrier):
(JSC::emitPutReplaceStub):
(JSC::emitPutTransitionStub):
(JSC::tryBuildPutByIdList):
(JSC::tryRepatchIn):
(JSC::linkClosureCall):
(JSC::resetGetByID):
(JSC::resetPutByID):
* jit/SpecializedThunkJIT.h:
(JSC::SpecializedThunkJIT::loadJSStringArgument):
(JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):
* jit/ThunkGenerators.cpp:
(JSC::virtualForThunkGenerator):
(JSC::arrayIteratorNextThunkGenerator):
* jit/UnusedPointer.h:
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/Arguments.cpp:
(JSC::Arguments::createStrictModeCallerIfNecessary):
(JSC::Arguments::createStrictModeCalleeIfNecessary):
* runtime/Arguments.h:
(JSC::Arguments::createStructure):
* runtime/ArrayPrototype.cpp:
(JSC::shift):
(JSC::unshift):
(JSC::arrayProtoFuncToString):
(JSC::arrayProtoFuncPop):
(JSC::arrayProtoFuncReverse):
(JSC::performSlowSort):
(JSC::arrayProtoFuncSort):
(JSC::arrayProtoFuncSplice):
(JSC::arrayProtoFuncUnShift):
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/Executable.h:
(JSC::ExecutableBase::isFunctionExecutable):
(JSC::ExecutableBase::clearCodeVirtual):
(JSC::ScriptExecutable::unlinkCalls):
* runtime/GetterSetter.cpp:
(JSC::callGetter):
(JSC::callSetter):
* runtime/InitializeThreading.cpp:
* runtime/JSArray.cpp:
(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::setLength):
(JSC::JSArray::pop):
(JSC::JSArray::push):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithArrayStorage):
(JSC::JSArray::unshiftCountWithAnyIndexingType):
(JSC::JSArray::sortNumericVector):
(JSC::JSArray::sortNumeric):
(JSC::JSArray::sortCompactedVector):
(JSC::JSArray::sort):
(JSC::JSArray::sortVector):
(JSC::JSArray::fillArgList):
(JSC::JSArray::copyToArguments):
(JSC::JSArray::compactForSorting):
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::toThis):
(JSC::JSValue::put):
(JSC::JSValue::putByIndex):
(JSC::JSValue::equalSlowCaseInline):
* runtime/JSCell.cpp:
(JSC::JSCell::put):
(JSC::JSCell::putByIndex):
(JSC::JSCell::deleteProperty):
(JSC::JSCell::deletePropertyByIndex):
* runtime/JSCell.h:
(JSC::JSCell::clearStructure):
(JSC::JSCell::mark):
(JSC::JSCell::isMarked):
(JSC::JSCell::structureIDOffset):
(JSC::JSCell::typeInfoFlagsOffset):
(JSC::JSCell::typeInfoTypeOffset):
(JSC::JSCell::indexingTypeOffset):
(JSC::JSCell::gcDataOffset):
* runtime/JSCellInlines.h:
(JSC::JSCell::JSCell):
(JSC::JSCell::finishCreation):
(JSC::JSCell::type):
(JSC::JSCell::indexingType):
(JSC::JSCell::structure):
(JSC::JSCell::visitChildren):
(JSC::JSCell::isObject):
(JSC::JSCell::isString):
(JSC::JSCell::isGetterSetter):
(JSC::JSCell::isProxy):
(JSC::JSCell::isAPIValueWrapper):
(JSC::JSCell::setStructure):
(JSC::JSCell::methodTable):
(JSC::Heap::writeBarrier):
* runtime/JSDataView.cpp:
(JSC::JSDataView::createStructure):
* runtime/JSDestructibleObject.h:
(JSC::JSCell::classInfo):
* runtime/JSFunction.cpp:
(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):
* runtime/JSGenericTypedArrayView.h:
(JSC::JSGenericTypedArrayView::createStructure):
* runtime/JSObject.cpp:
(JSC::getCallableObjectSlow):
(JSC::JSObject::copyButterfly):
(JSC::JSObject::visitButterfly):
(JSC::JSFinalObject::visitChildren):
(JSC::JSObject::getOwnPropertySlotByIndex):
(JSC::JSObject::put):
(JSC::JSObject::putByIndex):
(JSC::JSObject::enterDictionaryIndexingModeWhenArrayStorageAlreadyExists):
(JSC::JSObject::enterDictionaryIndexingMode):
(JSC::JSObject::notifyPresenceOfIndexedAccessors):
(JSC::JSObject::createInitialIndexedStorage):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToInt32):
(JSC::JSObject::convertUndecidedToDouble):
(JSC::JSObject::convertUndecidedToContiguous):
(JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToDouble):
(JSC::JSObject::convertInt32ToContiguous):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::genericConvertDoubleToContiguous):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::ensureInt32Slow):
(JSC::JSObject::ensureDoubleSlow):
(JSC::JSObject::ensureContiguousSlow):
(JSC::JSObject::ensureArrayStorageSlow):
(JSC::JSObject::ensureArrayStorageExistsAndEnterDictionaryIndexingMode):
(JSC::JSObject::switchToSlowPutArrayStorage):
(JSC::JSObject::setPrototype):
(JSC::JSObject::setPrototypeWithCycleCheck):
(JSC::JSObject::putDirectNonIndexAccessor):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::hasOwnProperty):
(JSC::JSObject::deletePropertyByIndex):
(JSC::JSObject::getPrimitiveNumber):
(JSC::JSObject::hasInstance):
(JSC::JSObject::getPropertySpecificValue):
(JSC::JSObject::getPropertyNames):
(JSC::JSObject::getOwnPropertyNames):
(JSC::JSObject::getOwnNonIndexPropertyNames):
(JSC::JSObject::seal):
(JSC::JSObject::freeze):
(JSC::JSObject::preventExtensions):
(JSC::JSObject::reifyStaticFunctionsForDelete):
(JSC::JSObject::removeDirect):
(JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes):
(JSC::JSObject::putByIndexBeyondVectorLength):
(JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage):
(JSC::JSObject::putDirectIndexBeyondVectorLength):
(JSC::JSObject::getNewVectorLength):
(JSC::JSObject::countElements):
(JSC::JSObject::increaseVectorLength):
(JSC::JSObject::ensureLengthSlow):
(JSC::JSObject::growOutOfLineStorage):
(JSC::JSObject::getOwnPropertyDescriptor):
(JSC::putDescriptor):
(JSC::JSObject::defineOwnNonIndexProperty):
* runtime/JSObject.h:
(JSC::getJSFunction):
(JSC::JSObject::getArrayLength):
(JSC::JSObject::getVectorLength):
(JSC::JSObject::putByIndexInline):
(JSC::JSObject::canGetIndexQuickly):
(JSC::JSObject::getIndexQuickly):
(JSC::JSObject::tryGetIndexQuickly):
(JSC::JSObject::getDirectIndex):
(JSC::JSObject::canSetIndexQuickly):
(JSC::JSObject::canSetIndexQuicklyForPutDirect):
(JSC::JSObject::setIndexQuickly):
(JSC::JSObject::initializeIndex):
(JSC::JSObject::hasSparseMap):
(JSC::JSObject::inSparseIndexingMode):
(JSC::JSObject::getDirect):
(JSC::JSObject::getDirectOffset):
(JSC::JSObject::isSealed):
(JSC::JSObject::isFrozen):
(JSC::JSObject::flattenDictionaryObject):
(JSC::JSObject::ensureInt32):
(JSC::JSObject::ensureDouble):
(JSC::JSObject::ensureContiguous):
(JSC::JSObject::rageEnsureContiguous):
(JSC::JSObject::ensureArrayStorage):
(JSC::JSObject::arrayStorage):
(JSC::JSObject::arrayStorageOrNull):
(JSC::JSObject::ensureLength):
(JSC::JSObject::currentIndexingData):
(JSC::JSObject::getHolyIndexQuickly):
(JSC::JSObject::currentRelevantLength):
(JSC::JSObject::isGlobalObject):
(JSC::JSObject::isVariableObject):
(JSC::JSObject::isStaticScopeObject):
(JSC::JSObject::isNameScopeObject):
(JSC::JSObject::isActivationObject):
(JSC::JSObject::isErrorInstance):
(JSC::JSObject::inlineGetOwnPropertySlot):
(JSC::JSObject::fastGetOwnPropertySlot):
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::putDirectInternal):
(JSC::JSObject::setStructureAndReallocateStorageIfNecessary):
* runtime/JSPropertyNameIterator.h:
(JSC::JSPropertyNameIterator::createStructure):
* runtime/JSProxy.cpp:
(JSC::JSProxy::getOwnPropertySlot):
(JSC::JSProxy::getOwnPropertySlotByIndex):
(JSC::JSProxy::put):
(JSC::JSProxy::putByIndex):
(JSC::JSProxy::defineOwnProperty):
(JSC::JSProxy::deleteProperty):
(JSC::JSProxy::deletePropertyByIndex):
(JSC::JSProxy::getPropertyNames):
(JSC::JSProxy::getOwnPropertyNames):
* runtime/JSScope.cpp:
(JSC::JSScope::objectAtScope):
* runtime/JSString.h:
(JSC::JSString::createStructure):
(JSC::isJSString):
* runtime/JSType.h:
* runtime/JSTypeInfo.h:
(JSC::TypeInfo::TypeInfo):
(JSC::TypeInfo::isObject):
(JSC::TypeInfo::structureIsImmortal):
(JSC::TypeInfo::zeroedGCDataOffset):
(JSC::TypeInfo::inlineTypeFlags):
* runtime/MapData.h:
* runtime/ObjectConstructor.cpp:
(JSC::objectConstructorGetOwnPropertyNames):
(JSC::objectConstructorKeys):
(JSC::objectConstructorDefineProperty):
(JSC::defineProperties):
(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):
(JSC::objectConstructorIsSealed):
(JSC::objectConstructorIsFrozen):
* runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncDefineGetter):
(JSC::objectProtoFuncDefineSetter):
(JSC::objectProtoFuncToString):
* runtime/Operations.cpp:
(JSC::jsTypeStringForValue):
(JSC::jsIsObjectType):
* runtime/Operations.h:
(JSC::normalizePrototypeChainForChainAccess):
(JSC::normalizePrototypeChain):
* runtime/PropertyMapHashTable.h:
(JSC::PropertyTable::createStructure):
* runtime/RegExp.h:
(JSC::RegExp::createStructure):
* runtime/SparseArrayValueMap.h:
* runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::~Structure):
(JSC::Structure::prototypeChainMayInterceptStoreTo):
* runtime/Structure.h:
(JSC::Structure::id):
(JSC::Structure::idBlob):
(JSC::Structure::objectInitializationFields):
(JSC::Structure::structureIDOffset):
* runtime/StructureChain.h:
(JSC::StructureChain::createStructure):
* runtime/StructureIDTable.cpp: Added.
(JSC::StructureIDTable::StructureIDTable):
(JSC::StructureIDTable::~StructureIDTable):
(JSC::StructureIDTable::resize):
(JSC::StructureIDTable::flushOldTables):
(JSC::StructureIDTable::allocateID):
(JSC::StructureIDTable::deallocateID):
* runtime/StructureIDTable.h: Added.
(JSC::StructureIDTable::base):
(JSC::StructureIDTable::get):
* runtime/SymbolTable.h:
* runtime/TypedArrayType.cpp:
(JSC::typeForTypedArrayType):
* runtime/TypedArrayType.h:
* runtime/WeakMapData.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164764 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRanges given to createMarkupInternal might not be canonicalized
mmaxfield@apple.com [Thu, 27 Feb 2014 01:26:36 +0000 (01:26 +0000)]
Ranges given to createMarkupInternal might not be canonicalized
https://bugs.webkit.org/show_bug.cgi?id=129408

Reviewed by Ryosuke Niwa.

When WebKit clients (such as Mail) call WKWebArchiveCreateFromRange() with a range,
that range is not necessarily canonicalized. Therefore, comparing it for equality
with a canonicalized range might return a false negative. Instead, we should compare
canonicalized ranges.

No new tests because this codepath will only be reached via SPI.

* editing/markup.cpp:
(WebCore::createMarkupInternal):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@164763 268f45cc-cd09-0410-ab3c-d52691b4dbfc