WebKit-https.git
6 years agoWebKit Nightlies broken by r157374
andersca@apple.com [Mon, 14 Oct 2013 13:08:13 +0000 (13:08 +0000)]
WebKit Nightlies broken by r157374
https://bugs.webkit.org/show_bug.cgi?id=122736

Reviewed by Andreas Kling.

Add back a callOnMainThread overload that Safari is using.

* wtf/MainThread.cpp:
(WTF::callOnMainThread):
* wtf/MainThread.h:

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

6 years agoUnreviewed. EFL Gardening.
gyuyoung.kim@samsung.com [Mon, 14 Oct 2013 12:48:26 +0000 (12:48 +0000)]
Unreviewed. EFL Gardening.
Add baselines for new tests which was added by r156767.

* platform/efl/TestExpectations: Remove tests supported by this commit.
* platform/efl/fast/regions/multiple-directionality-changes-in-variable-width-regions-expected.txt: Added.
* platform/efl/fast/regions/text-region-split-small-pagination-expected.txt: Added.
* platform/efl/fast/regions/top-overflow-out-of-second-region-expected.txt: Added.
* platform/efl/fast/repaint/japanese-rl-selection-repaint-in-regions-expected.txt: Added.
* platform/efl/fast/repaint/region-painting-invalidation-expected.txt: Added.

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

6 years ago[EFL] Present replaced objects with 0xFFFC character
mario@webkit.org [Mon, 14 Oct 2013 10:41:26 +0000 (10:41 +0000)]
[EFL] Present replaced objects with 0xFFFC character
https://bugs.webkit.org/show_bug.cgi?id=122744

Patch by Krzysztof Czech <k.czech@samsung.com> on 2013-10-14
Reviewed by Mario Sanchez Prada.

Source/WebCore:

Replaced elements should be emitted in GTK/EFL and
marked their presence with the replacement character.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):

LayoutTests:

Added new accessibility expectation after r156532.

* platform/efl-wk2/TestExpectations:
* platform/efl/accessibility/deleting-iframe-destroys-axcache-expected.txt: Added.

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

6 years ago[CSS Grid Layout] Implement support for <flex>
svillar@igalia.com [Mon, 14 Oct 2013 10:36:39 +0000 (10:36 +0000)]
[CSS Grid Layout] Implement support for <flex>
https://bugs.webkit.org/show_bug.cgi?id=115362

Reviewed by Andreas Kling.

From Blink r149134, r149480, r149532, r150287 and r156127 by <jchaffraix@chromium.org>
From Blink r157820 by <svillar@igalia.com>

Source/WebCore:

Added support for flexible lengths ('fr' unit) in CSS Grid Layout
code. This requires the addition of GridLength class to
encapsulate the knowledge of <flex> to the grid layout code.

Also updated the algorithm that computes the layout. It increases
the value of 1fr based on the grid tracks' usedBreath to fraction
ratio (called normalizedFractionValue). This enables increasing
the fraction value while updating the available space to account
for processed grid tracks. The algorithm stops when we run out of
grid tracks or available space (one grid item has an intrinsic
size too big). This matches the specs to the letter for the known
available space case (both the unknown case and the interaction
with 'span' are left out of this patch).

Tests: fast/css-grid-layout/flex-and-minmax-content-resolution-columns.html
       fast/css-grid-layout/flex-and-minmax-content-resolution-rows.html
       fast/css-grid-layout/flex-content-resolution-columns.html
       fast/css-grid-layout/flex-content-resolution-rows.html

* GNUmakefile.list.am: Added GridLength.h to the build system.
* Target.pri: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackBreadth): Replace Length by GridLength.
* css/CSSGrammar.y.in: Added FR support.
* css/CSSParser.cpp: Ditto.
(WebCore::CSSParser::parseGridBreadth):
(WebCore::CSSParser::detectNumberToken):
* css/CSSParserValues.cpp: Added FR support.
(WebCore::CSSParserValue::createCSSValue):
* css/CSSParserValues.h:
(WebCore::CSSParserString::operator[]):
(WebCore::CSSParserString::equalIgnoringCase):
* css/CSSPrimitiveValue.cpp: Added FR support.
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::customCSSText):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
(WebCore::CSSPrimitiveValue::equals):
* css/CSSPrimitiveValue.h: Added a couple of missing const.
(WebCore::CSSPrimitiveValue::isFlex):
* css/StyleResolver.cpp: Added FR support.
(WebCore::createGridTrackBreadth):
(WebCore::createGridTrackSize):
* rendering/RenderGrid.cpp:
(WebCore::GridTrackForNormalization::GridTrackForNormalization):
New helper struct to ease the computation of track breadths with
flexible lengths.
(WebCore::GridTrackForNormalization::operator=):
(WebCore::RenderGrid::computePreferredTrackWidth): Replaced Length by GridLength.
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks): Grow grid lines
having a fraction as the MaxTrackSizingFunction.
(WebCore::RenderGrid::computeUsedBreadthOfMinLength): Replaced Length by GridLength.
(WebCore::RenderGrid::computeUsedBreadthOfMaxLength): Ditto.
(WebCore::sortByGridNormalizedFlexValue):
(WebCore::RenderGrid::computeNormalizedFractionBreadth): Increase
the fraction value while updating the available space to account
for processed grid tracks.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::distributeSpaceToTracks): Never shrink track sizes.
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
* rendering/RenderGrid.h:
* rendering/style/GridLength.h: Added.
(WebCore::GridLength::GridLength):
(WebCore::GridLength::isLength):
(WebCore::GridLength::isFlex):
(WebCore::GridLength::length):
(WebCore::GridLength::flex):
(WebCore::GridLength::setFlex):
(WebCore::GridLength::operator==):
* rendering/style/GridTrackSize.h: Replaced Length by GridLength.
(WebCore::GridTrackSize::length):
(WebCore::GridTrackSize::setLength):
(WebCore::GridTrackSize::minTrackBreadth):
(WebCore::GridTrackSize::maxTrackBreadth):
(WebCore::GridTrackSize::setMinMax):
(WebCore::GridTrackSize::hasMinOrMaxContentMinTrackBreadth):
(WebCore::GridTrackSize::hasMaxContentMinTrackBreadth):
(WebCore::GridTrackSize::hasMinOrMaxContentMaxTrackBreadth):
(WebCore::GridTrackSize::hasMaxContentMaxTrackBreadth):

LayoutTests:

Added 4 new test cases to test the support for <flex> in CSS Grid
Layout code. Also updated some of the existing ones to check the
support for 'fr' units.

* fast/css-grid-layout/flex-and-minmax-content-resolution-columns-expected.txt: Added.
* fast/css-grid-layout/flex-and-minmax-content-resolution-columns.html: Added.
* fast/css-grid-layout/flex-and-minmax-content-resolution-rows-expected.txt: Added.
* fast/css-grid-layout/flex-and-minmax-content-resolution-rows.html: Added.
* fast/css-grid-layout/flex-content-resolution-columns-expected.txt: Added.
* fast/css-grid-layout/flex-content-resolution-columns.html: Added.
* fast/css-grid-layout/flex-content-resolution-rows-expected.txt: Added.
* fast/css-grid-layout/flex-content-resolution-rows.html: Added.
* fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
* fast/css-grid-layout/grid-columns-rows-get-set.html:
* fast/css-grid-layout/grid-dynamic-updates-relayout-expected.txt:
* fast/css-grid-layout/grid-dynamic-updates-relayout.html:
* fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
* fast/css-grid-layout/resources/grid-columns-rows-get-set.js:

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

6 years agoBroken text rendering when input field has selection.
commit-queue@webkit.org [Mon, 14 Oct 2013 10:33:32 +0000 (10:33 +0000)]
Broken text rendering when input field has selection.
https://bugs.webkit.org/show_bug.cgi?id=122716

Patch by peavo@outlook.com <peavo@outlook.com> on 2013-10-14
Reviewed by Antti Koivisto.

Source/WebCore:

Tests: fast/text/text-rendering-with-input-selection.html.
       fast/text/text-rendering-with-input-selection-expected.html.

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Check that text has selection.

LayoutTests:

* fast/text/text-rendering-with-input-selection.html: Added.
* fast/text/text-rendering-with-input-selection-expected.html: Added.

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

6 years agoUnexpected word wrapping for wrapped content then raw content.
zalan@apple.com [Mon, 14 Oct 2013 09:43:54 +0000 (09:43 +0000)]
Unexpected word wrapping for wrapped content then raw content.
https://bugs.webkit.org/show_bug.cgi?id=121130

Reviewed by Antti Koivisto.

When deciding whether a line is considered empty, we need to check if the current
object is fully responsible for the currently uncommitted width. It helps differentiating
<span></span><span>abcd</span> from <span>a</span><span>bcd</span>, where in the first
case when we hit the second <span> the line is still considered empty, as opposed to the
second example.

Source/WebCore:

Test: fast/css/unexpected-word-wrapping-with-non-empty-spans.html

* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineBreaker::nextSegmentBreak):

LayoutTests:

* fast/css/unexpected-word-wrapping-with-non-empty-spans-expected.html: Added.
* fast/css/unexpected-word-wrapping-with-non-empty-spans.html: Added.

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

6 years agoBe more efficient about passing RenderStyle to attachRenderTree().
akling@apple.com [Mon, 14 Oct 2013 09:16:03 +0000 (09:16 +0000)]
Be more efficient about passing RenderStyle to attachRenderTree().
<https://webkit.org/b/122743>

Reviewed by Antti Koivisto.

Have attachRenderTree() and createRendererTreeIfNeeded() pass the
RenderStyle in a PassRefPtr to avoid churning the ref count.

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

6 years ago[CSS Grid Layout] 2 span positions are not resolved correctly
svillar@igalia.com [Mon, 14 Oct 2013 09:00:50 +0000 (09:00 +0000)]
[CSS Grid Layout] 2 span positions are not resolved correctly
https://bugs.webkit.org/show_bug.cgi?id=119717

Reviewed by Andreas Kling.

From Blink r155397 by <jchaffraix@chromium.org>

Source/WebCore:

Test: fast/css-grid-layout/grid-item-bad-resolution-double-span.html

Two opposite 'span' or 'auto' positions should be resolved using
the auto placement algorithm. We were only checking for the 'auto'
case. This also covers the case of other positions that, according
to the spec, should be treated as 'auto'.

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveGridPositionsFromStyle):

LayoutTests:

Added a new test case to check bad grid items resolution with two
opposite span positions. Also added a real grid container to check
also the resolution code path in some other tests.

* fast/css-grid-layout/grid-item-area-get-set.html: Added a grid container.
* fast/css-grid-layout/grid-item-bad-resolution-double-span-expected.txt: Added.
* fast/css-grid-layout/grid-item-bad-resolution-double-span.html: Added.
* fast/css-grid-layout/grid-item-end-after-get-set.html: Added a grid container.
* fast/css-grid-layout/grid-item-start-before-get-set.html: Ditto.

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

6 years agoUse RenderElement instead of RenderObject in more places.
akling@apple.com [Mon, 14 Oct 2013 07:58:09 +0000 (07:58 +0000)]
Use RenderElement instead of RenderObject in more places.
<https://webkit.org/b/122734>

Reviewed by Antti Koivisto.

Convert some sites to use RenderElement (or type inference) instead
of RenderObject for less branchy code.

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

6 years agoDeprecate or remove deleteAllValues functions; there are only a few call sites left
darin@apple.com [Mon, 14 Oct 2013 05:58:34 +0000 (05:58 +0000)]
Deprecate or remove deleteAllValues functions; there are only a few call sites left
https://bugs.webkit.org/show_bug.cgi?id=122738

Reviewed by Anders Carlsson.

Source/WebCore:

* platform/blackberry/CookieMap.cpp:
(WebCore::CookieMap::deleteAllCookiesAndDomains):
* platform/network/blackberry/rss/RSSParserBase.cpp:
(WebCore::RSSFeed::clear):
* platform/win/WCDataObject.cpp:
(WebCore::WCDataObject::~WCDataObject):
Renamed deleteAllValues to deprecatedDeleteAllValues.

Source/WebKit/blackberry:

* WebKitSupport/InPageSearchManager.cpp:
(BlackBerry::WebKit::InPageSearchManager::cancelPendingScopingEffort):
Renamed deleteAllValues to deprecatedDeleteAllValues.

Source/WebKit2:

* Shared/Plugins/NPRemoteObjectMap.cpp:
(WebKit::NPRemoteObjectMap::pluginDestroyed): Renamed deleteAllValues to
deprecatedDeleteAllValues.

Source/WTF:

* wtf/Deque.h: Deleted deleteAllValues.
* wtf/HashMap.h: Ditto.
* wtf/HashSet.h: Ditto.
* wtf/ListHashSet.h: Ditto.
* wtf/Vector.h: Renamed deleteAllValues to deprecatedDeleteAllValues.

Tools:

* DumpRenderTree/win/DRTDataObject.cpp:
(DRTDataObject::~DRTDataObject):
* DumpRenderTree/win/UIDelegate.cpp:
(DRTUndoStack::~DRTUndoStack):
(DRTUndoStack::clear):
Renamed deleteAllValues to deprecatedDeleteAllValues.

* Scripts/do-webcore-rename: Updated to perform this rename, as is traditional.

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

6 years agobuild.webkit.org/dashboard incorrectly shows interrupted builds as green
ap@apple.com [Mon, 14 Oct 2013 05:02:03 +0000 (05:02 +0000)]
build.webkit.org/dashboard incorrectly shows interrupted builds as green
https://bugs.webkit.org/show_bug.cgi?id=122732

Reviewed by Tim Hatcher.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration.prototype.update): Removed a special case for status 4 (EXCEPTION).
I don't see it occur any time in recent history, but judging from what happens for
status 5 (RETRY), we can just finish this function normally.
Record overall text description for iteration as BuildbotIteration.text.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus): If an iteration is a failure,
but no tests failed, make it yellow, and use buildbot-provided description for it.

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

6 years agoMerge NODE_TYPE_CASTS and ELEMENT_TYPE_CASTS
weinig@apple.com [Mon, 14 Oct 2013 00:11:18 +0000 (00:11 +0000)]
Merge NODE_TYPE_CASTS and ELEMENT_TYPE_CASTS
https://bugs.webkit.org/show_bug.cgi?id=122735

Reviewed by Antti Koivisto.

NODE_TYPE_CASTS and ELEMENT_TYPE_CASTS are identical. Let them become one
with one another.

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

6 years agoUncrashify Document::head() too. (Why am I even awake?)
akling@apple.com [Sun, 13 Oct 2013 22:06:47 +0000 (22:06 +0000)]
Uncrashify Document::head() too. (Why am I even awake?)

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

6 years agoREGRESSION(r157381): Make Document::body() crash less when there is no documentElement.
akling@apple.com [Sun, 13 Oct 2013 21:21:32 +0000 (21:21 +0000)]
REGRESSION(r157381): Make Document::body() crash less when there is no documentElement.

Unreviewed.

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

6 years agoFTL OSR exit should perform zero extension on values smaller than 64-bit
fpizlo@apple.com [Sun, 13 Oct 2013 20:45:12 +0000 (20:45 +0000)]
FTL OSR exit should perform zero extension on values smaller than 64-bit
https://bugs.webkit.org/show_bug.cgi?id=122688

Reviewed by Gavin Barraclough.

In the DFG we usually make the simplistic assumption that a 32-bit value in a 64-bit
register will have zeros on the high bits.  In the few cases where the high bits are
non-zero, the DFG sort of tells us this explicitly.

But when working with llvm.webkit.stackmap, it doesn't work that way.  Consider we might
emit LLVM IR like:

    %2 = trunc i64 %1 to i32
    stuff %2
    call @llvm.webkit.stackmap(...., %2)

LLVM may never actually emit a truncation instruction of any kind.  And that's great - in
many cases it won't be needed, like if 'stuff %2' is a 32-bit op that ignores the high
bits anyway.  Hence LLVM may tell us that %2 is in the register that still had the value
from before truncation, and that register may have garbage in the high bits.

This means that on our end, if we want a 32-bit value and we want that value to be
zero-extended, we should zero-extend it ourselves.  This is pretty easy and should be
cheap, so we should just do it and not make it a requirement that LLVM does it on its
end.

This makes all tests pass with JSC_ftlOSRExitUsesStackmap=true.

* ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStubWithOSRExitStackmap):
* ftl/FTLValueFormat.cpp:
(JSC::FTL::reboxAccordingToFormat):

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

6 years agoRewrite Document::body and Document::head in modern style, way clearer and shorter
darin@apple.com [Sun, 13 Oct 2013 19:21:23 +0000 (19:21 +0000)]
Rewrite Document::body and Document::head in modern style, way clearer and shorter
https://bugs.webkit.org/show_bug.cgi?id=122717

Reviewed by Andreas Kling.

* dom/Document.cpp:
(WebCore::Document::body): Use iterator to make this way easier to read.
(WebCore::Document::head): Ditto.

* html/HTMLTagNames.in: Added generateTypeHelpers for body and head.

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

6 years agoRoll deps^H^H^H^HChangeLogs.
mrowe@apple.com [Sun, 13 Oct 2013 19:17:04 +0000 (19:17 +0000)]
Roll deps^H^H^H^HChangeLogs.

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

6 years agoUnreviewed GTK gardening.
berto@igalia.com [Sun, 13 Oct 2013 18:52:35 +0000 (18:52 +0000)]
Unreviewed GTK gardening.

* platform/gtk-wk2/TestExpectations:
Add bug number to the failing animation tests.

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

6 years agoRenderLayerBacking should have RenderLayer& backpointer.
akling@apple.com [Sun, 13 Oct 2013 18:39:27 +0000 (18:39 +0000)]
RenderLayerBacking should have RenderLayer& backpointer.
<https://webkit.org/b/122731>

Reviewed by Anders Carlsson.

RenderLayerBacking is always owned by a RenderLayer and so should
store its backpointer in a reference.

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

6 years agoRemoving input-file-entries.html from TestExpectation
commit-queue@webkit.org [Sun, 13 Oct 2013 17:26:16 +0000 (17:26 +0000)]
Removing  input-file-entries.html from TestExpectation
https://bugs.webkit.org/show_bug.cgi?id=122674

Patch by Santosh Mahto <santosh.ma@samsung.com> on 2013-10-13
Reviewed by Anders Carlsson.

input-file-entries.html has been removed in
changeset 156692. so removing references to this file.

* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:
* platform/wk2/TestExpectations:

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

6 years agoTry to fix the Lion build.
andersca@apple.com [Sun, 13 Oct 2013 17:10:20 +0000 (17:10 +0000)]
Try to fix the Lion build.

* Configurations/JavaScriptCore.xcconfig:

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

6 years agoMake element predicates and type casts work more consistently on more types
darin@apple.com [Sun, 13 Oct 2013 16:15:59 +0000 (16:15 +0000)]
Make element predicates and type casts work more consistently on more types
https://bugs.webkit.org/show_bug.cgi?id=122718

Reviewed by Antti Koivisto.

* dom/ContainerNodeAlgorithms.cpp:
(WebCore::assertConnectedSubrameCountIsConsistent):
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildFrameDisconnector::collectFrameOwners):
Updated for name change.

* dom/Document.cpp:
(WebCore::Document::adoptNode): Use a reference instead of a pointer.
(WebCore::Document::dispatchFullScreenChangeOrErrorEvent): Updated for
typecast name change and also to cast a reference, since we don't overload
for pointers.
(WebCore::Document::updateHoverActiveState): Ditto.

* dom/Element.h: Made the isElementOfType functions take references instead
of pointers. Also use const in the type template argument. These changes go
hand in hand with the changes in the generated code and all the classes.
Also use a bit of nullptr.

* dom/ElementIterator.h:
(WebCore::findElementAncestorOfType): Got rid of the ElementTypeWithConst
naming since this works with or without const. Added const to the call site
for isElementOfType, because it works that way now.

* dom/ElementTraversal.h:
(WebCore::Traversal::firstChildTemplate): Add const to the type when calling
isElementOfType. Along with the corresponding changes, this makes these
templates work for const types.
(WebCore::Traversal::lastChildTemplate): Ditto.
(WebCore::Traversal::firstWithinTemplate): Ditto.
(WebCore::Traversal::lastWithinTemplate): Ditto.
(WebCore::Traversal::nextTemplate): Ditto.
(WebCore::Traversal::previousTemplate): Ditto.
(WebCore::Traversal::nextSiblingTemplate): Ditto.
(WebCore::Traversal::previousSiblingTemplate): Ditto.
(WebCore::Traversal::nextSkippingChildrenTemplate): Ditto.

* dom/Node.cpp:
(WebCore::Node::handleLocalEvents): Check isElementNode and then call the
isDisabledFormControl member function, since we no longer have a helper that
takes a node.
(WebCore::Node::willRespondToMouseMoveEvents): Ditto.
(WebCore::Node::willRespondToMouseClickEvents): Ditto.
(WebCore::Node::willRespondToTouchEvents): Ditto.

* dom/PseudoElement.h: Use some nullptr. Added an isPseudoElement function
that the ELEMENT_TYPE_CASTS macro can use, and also used that macro to make
the toPseudoElement functions instead of a hand-written local variant.

* dom/make_names.pl:
(printTypeHelpers): Added unimplemented versions of the element predicate
functions that return void to catch unnecessary runtime checks of types
that are already known at compile time. Added assertions to the pointer
overloads of the predicates. Maybe later we can delete them. Added const
to the isElementOf template arguments to make these work with both const
and non-const. Put overloads in a consistent order, most specific class
first, then less specific. Changed isElementOfType to take references
rather than pointers.

* editing/Editor.cpp:
(WebCore::Editor::selectionForCommand): Updated to pass a reference.
(WebCore::Editor::setBaseWritingDirection): Ditto.
(WebCore::findFirstMarkable): Ditto.

* html/FormAssociatedElement.h: Tweaked a comment.

* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::insertedInto): Updated for name change and to
pass a reference.

* html/HTMLElement.cpp:
(WebCore::HTMLElement::translate): Removed FIXME and const_cast since the
problem is fixed.
(WebCore::HTMLElement::directionality): Use a reference.

* html/HTMLElement.h: Use const in the type of the isElementOfType functions.
Use references for all the arguments, not pointers.

* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::refreshElementsIfNeeded): Use documentVersion
instead of docVersion for local variable name. Use elementDescendants instead
of elementTraversal.
(WebCore::HTMLFieldSetElement::length): Use length instead of len for name.

* html/HTMLFormControlElement.h: Put predicates into the standard format and
did them on single lines. Added ELEMENT_TYPE_CASTS so we get standard casts.
* html/HTMLFrameElementBase.h: Ditto.
* html/HTMLFrameOwnerElement.h: Ditto, but changed the name to match the class,
so it's now isHTMLFrameOwnerElement and toHTMLFrameOwnerElement.

* html/HTMLLabelElement.cpp:
(WebCore::nodeAsSupportedLabelableElement): Updated to use references.

* html/HTMLMediaElement.h: Put predicates into the standard format and did
them on single lines. Added ELEMENT_TYPE_CASTS so we get standard casts.
* html/HTMLPlugInElement.h: Ditto. Also marked isPluginElement FINAL.
* html/HTMLPlugInImageElement.h: Ditto.
* html/HTMLTableCellElement.cpp: Removed old hand-written cast functions.
* html/HTMLTableCellElement.h: Did same predicate and ELEMENT_TYPE_CASTS
changes. Also fixed up the ordering of functions in the class.

* html/HTMLTextFormControlElement.cpp:
(WebCore::enclosingTextFormControl): Updated to use references and nullptr.

* html/HTMLTextFormControlElement.h: Did same predicate and ELEMENT_TYPE_CASTS.

* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::removedFrom): Call isHTMLMediaElement by its new name.

* html/LabelableElement.h: Did same predicate and ELEMENT_TYPE_CASTS.

* html/track/WebVTTElement.h: Made isWebVTTElement private. Changed the argument
type of setLanguage to const AtomicString& to avoid excess reference count churn.
Did the predicate and type casts thing.

* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create): Update for name changes and use references.

* mathml/MathMLElement.h: Did same predicate and ELEMENT_TYPE_CASTS.

* page/FocusController.cpp:
(WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument):
(WebCore::FocusController::advanceFocusInDocumentOrder):
* page/PageSerializer.cpp:
(WebCore::SerializerMarkupAccumulator::appendCustomAttributes):
Update for name change.

* platform/Pasteboard.h: Removed unneeded forward declaration.

* rendering/RenderWidget.h: Updated for name change.

* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::buildPrimitives): Use element iterator
and nullptr.

* svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultEventHandler): Update for name changes.

* svg/SVGAnimateElement.cpp:
(WebCore::isSVGAnimateElement): Moved here since we don't want to inline such
a long list of tag names.

* svg/SVGAnimateElement.h: Marked a lot more virtual functions OVERRIDE.
Did predicate and ELEMENT_TYPE_CASTS changes, but did not make the predicate
be inlined.

* svg/SVGElement.h: Did predicate and ELEMENT_TYPE_CASTS changes.
* svg/SVGFilterPrimitiveStandardAttributes.h: Ditto.

* svg/SVGGradientElement.cpp:
(WebCore::isSVGGradientElement): Moved here since we don't want to inline
the two tag names.

* svg/SVGGradientElement.h: Did predicate and ELEMENT_TYPE_CASTS changes.
* svg/SVGGraphicsElement.h: Ditto.

* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::SVGImageElement): Took out assertion, since it
was asserting the class of the obejct we just created.

* svg/SVGPolyElement.cpp:
(WebCore::isSVGPolyElement): Moved here since we don't want to inline the
two tag names.

* svg/SVGPolyElement.h: Did predicate and ELEMENT_TYPE_CASTS changes.
* svg/SVGTextContentElement.h: Ditto.

* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::connectConditions): Update for name changes,
to use references and nullptr, and to get rid of a non-helpful local.

* svg/animation/SVGSMILElement.h: Added a virtual function to check if a
given SVGElement is an SVGSMILElement so we don't have to check a long list
of tag names instead. Also did the predicate and ELEMENT_TYPE_CASTS changes.

* testing/Internals.cpp:
(WebCore::Internals::visiblePlaceholder): Updated to use references.

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

6 years agoChange callOnMainThread to take an std::function
andersca@apple.com [Sun, 13 Oct 2013 16:12:49 +0000 (16:12 +0000)]
Change callOnMainThread to take an std::function
https://bugs.webkit.org/show_bug.cgi?id=122698

Reviewed by Darin Adler.

This will let us pass anything that can be converted to an std::function (including lambdas and
WTF::Function objects) to callOnMainThread.

* wtf/MainThread.cpp:
(WTF::callOnMainThread):
* wtf/MainThread.h:

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

6 years agoText::renderer() should return RenderText
antti@apple.com [Sun, 13 Oct 2013 16:00:10 +0000 (16:00 +0000)]
Text::renderer() should return RenderText
https://bugs.webkit.org/show_bug.cgi?id=122729

Reviewed by Andreas Kling.

Tighten typing.

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

6 years agoDevirtualize RenderView::viewRect().
akling@apple.com [Sun, 13 Oct 2013 15:57:30 +0000 (15:57 +0000)]
Devirtualize RenderView::viewRect().
<https://webkit.org/b/122730>

Reviewed by Antti Koivisto.

There's no need for viewRect() to be a virtual RenderObject function.
The single call site that didn't already access it through RenderView
can just go via view().

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

6 years agoMove setPseudoStyle() to RenderImage (from RenderElement.)
akling@apple.com [Sun, 13 Oct 2013 15:56:39 +0000 (15:56 +0000)]
Move setPseudoStyle() to RenderImage (from RenderElement.)
<https://webkit.org/b/122726>

Reviewed by Antti Koivisto.

Only RenderImages ever use setPseudoStyle() so move it there and
remove the non-image codepath.

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

6 years agoCTTE: RenderSlider always has an HTMLInputElement.
akling@apple.com [Sun, 13 Oct 2013 15:04:05 +0000 (15:04 +0000)]
CTTE: RenderSlider always has an HTMLInputElement.
<https://webkit.org/b/122728>

Reviewed by Anders Carlsson.

This renderer is never anonymous and always has a corresponding
HTMLInputElement. Tighten this up by having the constructor take
the element by reference, and override element() with a stronger
return type.

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

6 years agoRemove two unused AX functions for getting a FrameView*.
akling@apple.com [Sun, 13 Oct 2013 14:46:50 +0000 (14:46 +0000)]
Remove two unused AX functions for getting a FrameView*.
<https://webkit.org/b/122724>

Reviewed by Anders Carlsson.

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

6 years agoAdd traverseNextSkippingChildren to ElementIterators
antti@apple.com [Sun, 13 Oct 2013 13:26:07 +0000 (13:26 +0000)]
Add traverseNextSkippingChildren to ElementIterators
https://bugs.webkit.org/show_bug.cgi?id=122727

Reviewed by Andreas Kling.

Also switch some code using ElementTraversal over to iterators.

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

6 years agoRename InlineBox::remove() to removeFromParent
antti@apple.com [Sun, 13 Oct 2013 11:39:33 +0000 (11:39 +0000)]
Rename InlineBox::remove() to removeFromParent
https://bugs.webkit.org/show_bug.cgi?id=122725

Reviewed by Andreas Kling.

Also make it clear from the code that all InlineTextBoxes have behavesLikeText set.

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

6 years agoMake absoluteQuads/Rects functions return Vectors
antti@apple.com [Sun, 13 Oct 2013 11:05:33 +0000 (11:05 +0000)]
Make absoluteQuads/Rects functions return Vectors
https://bugs.webkit.org/show_bug.cgi?id=122722

Reviewed by Andreas Kling.

* dom/Document.cpp:
(WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale):
(WebCore::Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale):

    Take RenderStyle instead of RenderObject

* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::getClientRects):
(WebCore::Element::getBoundingClientRect):
* dom/Range.cpp:
(WebCore::Range::textRects):
(WebCore::Range::textQuads):
(WebCore::Range::getBorderAndTextQuads):

    Adapt to the changes.

* rendering/RenderObject.h:

    Removed unnecessary adjustFloatQuad/RectForAbsoluteZoom functions, inline code to
    adjustFloatQuads/RectForScrollAndAbsoluteZoomAndFrameScale.

* rendering/RenderText.cpp:
(WebCore::RenderText::absoluteRects):
(WebCore::RenderText::absoluteRectsForRange):
(WebCore::RenderText::absoluteQuadsClippedToEllipsis):
(WebCore::RenderText::absoluteQuads):
(WebCore::RenderText::absoluteQuadsForRange):
* rendering/RenderText.h:
* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::absoluteRects):
(WebCore::RenderTextLineBoxes::absoluteRectsForRange):
(WebCore::RenderTextLineBoxes::absoluteQuads):
(WebCore::RenderTextLineBoxes::absoluteQuadsForRange):
* rendering/RenderTextLineBoxes.h:

    Use return value instead of an out-arg, except for the virtual versions.

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

6 years agoLiveNodeList: rootNode() and document() should return references.
akling@apple.com [Sun, 13 Oct 2013 11:01:08 +0000 (11:01 +0000)]
LiveNodeList: rootNode() and document() should return references.
<https://webkit.org/b/122720>

Reviewed by Antti Koivisto.

Tighten up this code a bit by having rootNode() and document()
return references. Also replaced some handwritten traversal
with a call to Node::lastDescendant().

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

6 years agoDocument::createRenderTree() should assert that there is no arena.
akling@apple.com [Sun, 13 Oct 2013 10:59:40 +0000 (10:59 +0000)]
Document::createRenderTree() should assert that there is no arena.
<https://webkit.org/b/122723>

Reviewed by Antti Koivisto.

Calling createRenderTree() with a RenderArena already in place would
be a programming error.

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

6 years agoRemove dead ENABLE(CUSTOM_ELEMENTS) code.
akling@apple.com [Sun, 13 Oct 2013 10:16:54 +0000 (10:16 +0000)]
Remove dead ENABLE(CUSTOM_ELEMENTS) code.
<https://webkit.org/b/122721>

Reviewed by Antti Koivisto.

There are no ports building with this flag since April and the code
has bitrotted since. Remove it for now. If someone wants to resurrect
the feature someday, getting back to this point is trivial.

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

6 years agoMove absoluteRects/Quads to RenderTextLineBoxes
antti@apple.com [Sun, 13 Oct 2013 09:39:44 +0000 (09:39 +0000)]
Move absoluteRects/Quads to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122706

Reviewed by Andreas Kling.

* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::absoluteRects):
(WebCore::RenderTextLineBoxes::absoluteRectsForRange):
(WebCore::RenderTextLineBoxes::absoluteQuads):
(WebCore::RenderTextLineBoxes::absoluteQuadsForRange):

    These move.

(WebCore::RenderTextLineBoxes::selectionRectForRange):
(WebCore::RenderTextLineBoxes::setSelectionState):

    Also moved a few smaller functions.

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

6 years agoRemove dead code hiding behind ENABLE(TOUCH_EVENT_TRACKING).
akling@apple.com [Sun, 13 Oct 2013 09:02:30 +0000 (09:02 +0000)]
Remove dead code hiding behind ENABLE(TOUCH_EVENT_TRACKING).
<https://webkit.org/b/122719>

Reviewed by Antti Koivisto.

Nobody is building with this flag, and it has broken-looking code
behind it anyway. Nuke from orbit.

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

6 years agoRenderLayer: Check SVG bit instead of element namespace in isTransparent().
akling@apple.com [Sun, 13 Oct 2013 07:17:23 +0000 (07:17 +0000)]
RenderLayer: Check SVG bit instead of element namespace in isTransparent().
<https://webkit.org/b/118171>

Reviewed by Darin Adler.

Replace the (virtual) namespaceURI() check with an isSVGElement() bit check.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::isTransparent):

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

6 years agoRemove Chromium specific code from flakiness dashboard
ap@apple.com [Sun, 13 Oct 2013 07:08:21 +0000 (07:08 +0000)]
Remove Chromium specific code from flakiness dashboard
https://bugs.webkit.org/show_bug.cgi?id=122714

Reviewed by Sam Weinig.

Also removed code related to GPU tests and virtual suites.
"Fallbacks map" was chromium only too, not sure why they needed special handling there.

* TestResultServer/model/jsonresults_unittest.py:
* TestResultServer/static-dashboards/builders.js:
* TestResultServer/static-dashboards/dashboard_base.js:
* TestResultServer/static-dashboards/flakiness_dashboard.html:
* TestResultServer/static-dashboards/flakiness_dashboard.js:
* TestResultServer/static-dashboards/flakiness_dashboard_tests.css:
* TestResultServer/static-dashboards/flakiness_dashboard_unittests.js:
* TestResultServer/static-dashboards/history.js:
* TestResultServer/static-dashboards/loader.js:
* TestResultServer/static-dashboards/ui.js:
* TestResultServer/templates/uploadform.html:

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

6 years agoUse nullptr in Document.cpp
darin@apple.com [Sun, 13 Oct 2013 06:55:44 +0000 (06:55 +0000)]
Use nullptr in Document.cpp
https://bugs.webkit.org/show_bug.cgi?id=122715

Reviewed by Sam Weinig.

* dom/Document.cpp:
(WebCore::widgetForElement):
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::dropChildren):
(WebCore::Document::getElementByAccessKey):
(WebCore::Document::doctype):
(WebCore::Document::createElement):
(WebCore::Document::createElementNS):
(WebCore::Document::registerElement):
(WebCore::Document::createCDATASection):
(WebCore::Document::createProcessingInstruction):
(WebCore::Document::createEntityReference):
(WebCore::Document::importNode):
(WebCore::Document::adoptNode):
(WebCore::Document::webkitGetNamedFlows):
(WebCore::Document::elementFromPoint):
(WebCore::Document::caretRangeFromPoint):
(WebCore::Document::setTitle):
(WebCore::Document::removeTitle):
(WebCore::Document::view):
(WebCore::Document::page):
(WebCore::Document::settings):
(WebCore::Document::createNodeIterator):
(WebCore::Document::createTreeWalker):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
(WebCore::Document::disconnectFromFrame):
(WebCore::Document::destroyRenderTree):
(WebCore::Document::existingAXObjectCache):
(WebCore::Document::axObjectCache):
(WebCore::Document::scriptableDocumentParser):
(WebCore::Document::body):
(WebCore::Document::head):
(WebCore::Document::processBaseElement):
(WebCore::Document::findUnsafeParentScrollPropagationBoundary):
(WebCore::Document::cloneNode):
(WebCore::Document::styleResolverChanged):
(WebCore::Document::removeFocusedNodeOfSubtree):
(WebCore::Document::setFocusedElement):
(WebCore::Document::getWindowAttributeEventListener):
(WebCore::Document::createEvent):
(WebCore::Document::getOverrideStyle):
(WebCore::Document::ownerElement):
(WebCore::Document::setInPageCache):
(WebCore::Document::parentDocument):
(WebCore::Document::createAttributeNS):
(WebCore::Document::initSecurityContext):
(WebCore::Document::resetHiddenFocusElementTimer):
(WebCore::Document::getCSSCanvasContext):
(WebCore::Document::enqueuePopstateEvent):
(WebCore::Document::takeAnyMediaCanStartListener):
(WebCore::Document::requestFullScreenForElement):
(WebCore::Document::webkitExitFullscreen):
(WebCore::Document::webkitWillEnterFullScreenForElement):
(WebCore::Document::webkitDidExitFullScreenForElement):
(WebCore::Document::fullScreenRendererDestroyed):
(WebCore::Document::webkitPointerLockElement):
(WebCore::Document::seamlessParentIFrame):
(WebCore::Document::loader):
(WebCore::eventTargetElementForDocument):
(WebCore::nearestCommonHoverAncestor):
(WebCore::Document::ensureTemplateDocument):
Use nullptr in many places we were using 0.

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

6 years agoGet rid of the toHTMLElement helper for casting FormAssociatedElement to HTMLElement
darin@apple.com [Sun, 13 Oct 2013 06:54:56 +0000 (06:54 +0000)]
Get rid of the toHTMLElement helper for casting FormAssociatedElement to HTMLElement
https://bugs.webkit.org/show_bug.cgi?id=122713

Reviewed by Sam Weinig.

Source/WebCore:

Since we are using the function name toHTMLElement for casting to an HTMLElement
from a Node or Element, it's awkward to also use it for a quite different type of
type conversion on a FormAssociatedElement. We already have an asHTMLElement member
function, so lets use that.

* html/DOMFormData.cpp:
(WebCore::DOMFormData::DOMFormData): Use references instead of pointers, and
asHTMLElement instead of toHTMLElement.

* html/FormAssociatedElement.cpp: Made FormAttributeTargetObserver FINAL, made
its private inheritance explicit, made its constructor public so we can use it
with make_unique and got rid of its creation function. Also use reference instead
of a pointer.
(WebCore::FormAssociatedElement::FormAssociatedElement): Use nullptr.
(WebCore::FormAssociatedElement::~FormAssociatedElement): Ditto.
(WebCore::FormAssociatedElement::didMoveToNewDocument): Use asHTMLElement instead
of toHTMLElement and use a reference instead of a pointer.
(WebCore::FormAssociatedElement::insertedInto): Ditto.
(WebCore::FormAssociatedElement::removedFrom): Ditto.
(WebCore::FormAssociatedElement::formRemovedFromTree): Ditto.
(WebCore::FormAssociatedElement::resetFormOwner): Ditto.
(WebCore::FormAssociatedElement::formAttributeChanged): Ditto.
(WebCore::FormAssociatedElement::customError): Ditto.
(WebCore::FormAssociatedElement::resetFormAttributeTargetObserver): Use make_unique
instead of create here.
(WebCore::FormAssociatedElement::name): Use asHTMLElement.
(WebCore::FormAttributeTargetObserver::FormAttributeTargetObserver): Ditto.
(WebCore::FormAttributeTargetObserver::idTargetChanged): Updated since m_element is
now a reference.

* html/FormAssociatedElement.h: Removed some unneeded class declarations.
Made isFormAssociatedElement const. Use std::unique_ptr instead of OwnPtr.

* html/FormNamedItem.h: Made asHTMLElement return a reference, and overloaded it
for both const and non-const. Made isFormAssociatedElement const.

* html/HTMLFormControlElement.h: Updated for FormNamedItem changes. Removed an
unneeded class declaration.

* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::virtualItemAfter): Use references, asHTMLElement,
and nullptr.
(WebCore::firstNamedItem): Ditto.
(WebCore::HTMLFormControlsCollection::namedItem): Ditto.
(WebCore::HTMLFormControlsCollection::updateNameCache): Ditto.

* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::validateInteractively): Use asHTMLElement and references.
(WebCore::HTMLFormElement::getTextFieldValues): Ditto.
(WebCore::HTMLFormElement::formElementIndexWithFormAttribute): Ditto.
(WebCore::HTMLFormElement::formElementIndex): Ditto.
(WebCore::HTMLFormElement::assertItemCanBeInPastNamesMap): Ditto.
(WebCore::HTMLFormElement::elementFromPastNamesMap): Ditto, and nullptr.

* html/HTMLImageElement.h: Updated for FormNamedItem changes.
* html/HTMLObjectElement.h: Ditto.

* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create): Use asHTMLElement and references.

Source/WebKit/blackberry:

* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::updateFormState): Use asHTMLElement.

Source/WebKit/mac:

* WebView/WebHTMLRepresentation.mm:
(-[WebHTMLRepresentation elementWithName:inForm:]): Use asHTMLElement.
(-[WebHTMLRepresentation controlsInForm:]): Ditto.

Source/WebKit/win:

* WebFrame.cpp:
(WebFrame::controlsInForm): Use asHTMLElement.

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

6 years agoUse nullptr instead of 0 in TreeScope.cpp
darin@apple.com [Sun, 13 Oct 2013 06:32:14 +0000 (06:32 +0000)]
Use nullptr instead of 0 in TreeScope.cpp
https://bugs.webkit.org/show_bug.cgi?id=122711

Reviewed by Andreas Kling.

* dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::~TreeScope):
(WebCore::TreeScope::clearDocumentScope):
(WebCore::TreeScope::getElementById):
(WebCore::TreeScope::getAllElementsById):
(WebCore::TreeScope::getElementByName):
(WebCore::TreeScope::ancestorInThisScope):
(WebCore::TreeScope::getImageMap):
(WebCore::nodeFromPoint):
(WebCore::TreeScope::labelElementForId):
(WebCore::TreeScope::getSelection):
(WebCore::TreeScope::findAnchor):
(WebCore::focusedFrameOwnerElement):
(WebCore::TreeScope::focusedElement):
(WebCore::commonTreeScope):
Use a lot more nullptr, and also rewrite one while loop as a for loop.

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

6 years agoRemove the not-much-used isShadowHost function from Element.h
darin@apple.com [Sun, 13 Oct 2013 06:03:21 +0000 (06:03 +0000)]
Remove the not-much-used isShadowHost function from Element.h
https://bugs.webkit.org/show_bug.cgi?id=122710

Reviewed by Andreas Kling.

* dom/Element.h: Removed isShadowHost, which just checks if shadowRoot is null.

* page/FocusController.cpp:
(WebCore::FocusNavigationScope::focusNavigationScopeOwnedByShadowHost): Added
individual assertions instead of just asserting isShadowHost.
(WebCore::FocusNavigationScope::focusNavigationScopeOwnedByIFrame): Broke an
assertion with && in it into two assertions.
(WebCore::hasCustomFocusLogic): Changed argument type to be Element& and take
a reference instead of a pointer.
(WebCore::isNonFocusableShadowHost): Made arguments references instead of pointers.
Replaced isShadowHost check with a direct check of whether shadowRoot returns null
or not, which seems nearly as clear.
(WebCore::isFocusableShadowHost): Ditto.
(WebCore::adjustedTabIndex): Ditto.
(WebCore::shouldVisit): Ditto.
(WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument):
Updated for changes above.
(WebCore::FocusController::advanceFocusInDocumentOrder): Ditto. Also some nullptr.
(WebCore::FocusController::findFocusableElementAcrossFocusScope): Ditto.
(WebCore::FocusController::findFocusableElementRecursively): Ditto.
(WebCore::FocusController::findElementWithExactTabIndex): Ditto.
(WebCore::nextElementWithGreaterTabIndex): Ditto.
(WebCore::previousElementWithLowerTabIndex): Ditto.
(WebCore::FocusController::nextFocusableElement): Ditto.
(WebCore::FocusController::previousFocusableElement): Ditto.

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

6 years agoMove querySelector from Node to ContainerNode and use references instead of pointers
darin@apple.com [Sun, 13 Oct 2013 05:42:49 +0000 (05:42 +0000)]
Move querySelector from Node to ContainerNode and use references instead of pointers
https://bugs.webkit.org/show_bug.cgi?id=122709

Reviewed by Anders Carlsson.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::querySelector): Moved here from Node. Pass a reference instead
of a pointer to SelectorQuery. Changed return types to RefPtr and raw pointer instead of
PassRefPtr.
(WebCore::ContainerNode::querySelectorAll): Ditto.
* dom/ContainerNode.h: Added the new functions.

* dom/Element.cpp:
(WebCore::Element::webkitMatchesSelector): Use && instead of an if statement and a reference rather than
a pointer.

* dom/Node.cpp: Sorted includes, removed SelectorQuery.h, removed the querySelector functions.
(WebCore::Node::ownerDocument): Use document instead of doc and nullptr instead of 0.
* dom/Node.h: Removed the querySelector functions.

* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::selectorMatches): Take references instead of pointers.
(WebCore::SelectorDataList::matches): Ditto.
(WebCore::SelectorDataList::queryAll): Return a RefPtr instead of PassRefPtr.
(WebCore::SelectorDataList::queryFirst): Ditto. Also use nullptr.
(WebCore::selectorForIdLookup): Take references instead of pointers.
(WebCore::isTreeScopeRoot): Ditto.
(WebCore::SelectorDataList::executeFastPathForIdSelector): Ditto.
(WebCore::isSingleTagNameSelector): Ditto.
(WebCore::elementsForLocalName): Ditto. Also use iterators instead of traversal.
(WebCore::anyElement): Ditto.
(WebCore::SelectorDataList::executeSingleTagNameSelectorData): Ditto.
(WebCore::isSingleClassNameSelector): Ditto.
(WebCore::SelectorDataList::executeSingleClassNameSelectorData): Ditto.
(WebCore::SelectorDataList::executeSingleSelectorData): Ditto.
(WebCore::SelectorDataList::executeSingleMultiSelectorData): Ditto.
(WebCore::SelectorDataList::execute): Ditto.
(WebCore::SelectorQueryCache::add): Ditto.

* dom/SelectorQuery.h: Update to use ContainerNode, references, and RefPtr and raw pointers
rather than PassRefPtr.

* dom/TreeScope.cpp:
(WebCore::TreeScope::getElementById): Use nullptr instead of 0.
(WebCore::TreeScope::getAllElementsById): Ditto.
(WebCore::TreeScope::getElementByName): Ditto.
(WebCore::TreeScope::ancestorInThisScope): Ditto.

* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::assertNode): Use nullptr instead of 0.
(WebCore::InspectorDOMAgent::assertDocument): Ditto.
(WebCore::InspectorDOMAgent::assertElement): Ditto. Also use isElementNode instead of nodeType.
(WebCore::InspectorDOMAgent::assertEditableNode): Use nullptr instead of 0.
(WebCore::InspectorDOMAgent::assertEditableElement): Ditto.
(WebCore::InspectorDOMAgent::getDocument): Use document instead of doc.
(WebCore::InspectorDOMAgent::querySelector): Changed to pass a ContainerNode.
(WebCore::InspectorDOMAgent::querySelectorAll): Ditto.

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

6 years agoMove code to find elements in slider shadow tree into RangeInputType class, since...
darin@apple.com [Sun, 13 Oct 2013 05:01:29 +0000 (05:01 +0000)]
Move code to find elements in slider shadow tree into RangeInputType class, since it creates that tree
https://bugs.webkit.org/show_bug.cgi?id=122708

Reviewed by Anders Carlsson.

* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySliderThumb::elementRect): Use HTMLInputElement::sliderThumbElement
to find the thumb, rather than using the sliderThumbElementOf function.

* html/InputType.h: Use nullptr instead of 0. Tweak formatting a bit.

* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleMouseDownEvent): Use typedSliderThumbElement function.
(WebCore::RangeInputType::handleTouchEvent): Ditto.
(WebCore::RangeInputType::createShadowSubtree): Fixed assertion to match the code below.
(WebCore::RangeInputType::sliderTrackElement): Moved next to the createShadowSubtree function
since it is finding an element in that subtree. Changed to do the work here instead of calling
a function in another file.
(WebCore::RangeInputType::typedSliderThumbElement): Added. Finds the slider thumb element,
and returns it as a reference with a specific type.
(WebCore::RangeInputType::sliderThumbElement): Changed to call typedSliderThumbElement, loosening
the type, and returning a pointer Changed to call typedSliderThumbElement, loosening
the type, and returning a pointer.
(WebCore::RangeInputType::minOrMaxAttributeChanged): Use typedSliderThumbElement.
(WebCore::RangeInputType::setValue): Ditto.
(WebCore::RangeInputType::listAttributeTargetChanged): Ditto.

* html/RangeInputType.h: Marked the class FINAL. Tweaked formatting a bit.
Added the typedSliderThumbElement function.

* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::setPositionFromPoint): Call the HTMLInputElement::sliderTrackElement
function instead of having the input element's shadow subtree hierarchy hard-coded here.
(WebCore::SliderThumbElement::cloneElementWithoutAttributesAndChildren): Moved here from the header,
since it's a virtual function that won't be inlined.

* html/shadow/SliderThumbElement.h: Removed unneeded forward declarations. Made more virtual
functions private and added more OVERRIDE. Removed the toSliderThumbElement, sliderThumbElementOf,
and sliderTrackElementOf functions.

* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::layout): Use HTMLInputElement::sliderThumbElement.
(WebCore::RenderSlider::inDragMode): Ditto.

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

6 years agoRemove unneeded extra memory allocation and indirection for ValidityState
darin@apple.com [Sun, 13 Oct 2013 05:00:42 +0000 (05:00 +0000)]
Remove unneeded extra memory allocation and indirection for ValidityState
https://bugs.webkit.org/show_bug.cgi?id=122705

Reviewed by Anders Carlsson.

* CMakeLists.txt: Removed ValidityState.cpp.
* GNUmakefile.list.am: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.

* html/FormAssociatedElement.cpp: Removed ValidityState.h include and the
FormAssociatedElement::validity function. That function is now an inline
in the ValidityState.h header.

* html/FormAssociatedElement.h: Added badInput function, the only function
from the ValidityState interface that was not already present here. Removed
m_validityState.

* html/HTMLFormControlElement.cpp: Removed include of ValidityState.h.
(WebCore::HTMLFormControlElement::isValidFormControlElement): Use the valid
function directly instead of indirectly through the validity state.
(WebCore::HTMLFormControlElement::setNeedsValidityCheck): Ditto.

* html/ValidityState.cpp: Removed.

* html/ValidityState.h: Removed the body of the ValidityState class and
made it effectively a "typedef" for FormAssociatedElement. It's actually
a derived class that adds no members, which is not quite right but will
work just fine for this.
(WebCore::FormAssociatedElement::validity): Implemented; just returns the
FormAssociatedElement, which the bindings expose as a ValidityState.

* html/ValidityState.idl: Use SkipVTableValidation instead of
ImplementationLacksVTable because FormAssociatedElement does have a vtable.

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

6 years agoWebViews inside OS X screen savers have large caches, but should not
aroben@webkit.org [Sun, 13 Oct 2013 04:05:49 +0000 (04:05 +0000)]
WebViews inside OS X screen savers have large caches, but should not
https://bugs.webkit.org/show_bug.cgi?id=122604

We use WebCacheModelDocumentViewer by default for apps linked against
modern WebKit, and WebCacheModelDocumentBrowser for apps linked
against legacy WebKit. ScreenSaverEngine.app doesn't link against
WebKit at all, and thus falls into the legacy case by accident because
NSVersionOfLinkTimeLibrary("WebKit") returns -1.

But WebViews inside screen savers are almost certainly not being used
as browsers, so this large-ish cache specified by
WebCacheModelDocumentBrowser is wasteful. This is likely true for all
apps that don't directly link against WebKit, so now we use
WebCacheModelDocumentViewer by default for those apps.

Reviewed by Darin Adler.

* WebView/WebPreferences.mm:
(cacheModelForMainBundle): Use WebCacheModelDocumentViewer by default
for apps that don't link against WebKit directly. Also converted to
use @autoreleasepool {} and early returns while I was in here.

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

6 years agoRename toParentMediaElement to parentMediaElement, since it's not a type cast
darin@apple.com [Sun, 13 Oct 2013 01:18:08 +0000 (01:18 +0000)]
Rename toParentMediaElement to parentMediaElement, since it's not a type cast
https://bugs.webkit.org/show_bug.cgi?id=122707

Reviewed by Eric Carlson.

* accessibility/AccessibilityMediaControls.cpp:
(WebCore::AccessibilityMediaControlsContainer::controllingVideoElement): Call the
function by its new name, and also remove unnecessary type casting.

* html/shadow/MediaControlElementTypes.cpp:
(WebCore::parentMediaElement): Renamed from toParentMediaElement. Changed to use
nullptr. Removed an unnecessary null check.

* html/shadow/MediaControlElementTypes.h: Renamed from toParentMediaElement.
Changed the argument to the RenderObject overload to be a reference rather than
a pointer since it doesn't handle null.

* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler):
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
(WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
(WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
(WebCore::MediaControlTextTrackContainerElement::updateSizes):
(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
Updated to use the new name. Also use nullptr.

* html/shadow/MediaControlsBlackBerry.cpp:
(WebCore::MediaControlFullscreenFullscreenButtonElement::defaultEventHandler):
Updated to use the new name.

* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::determineFullScreenMultiplier):
(WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
(WebCore::RenderThemeBlackBerry::paintMediaPlayButton):
(WebCore::RenderThemeBlackBerry::paintMediaRewindButton):
(WebCore::RenderThemeBlackBerry::paintMediaMuteButton):
(WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):
(WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
(WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
Updated to use the new name.

* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::paintMediaSliderTrack):
Updated to use the new name.

* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::paintMediaSliderTrack):
(WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):
Updated to use the new name.

* rendering/RenderMediaControls.cpp:
(WebCore::RenderMediaControls::paintMediaControlsPart):
Call the function by its new name and with a reference instead of a pointer.

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

6 years agoMove positionForPoint to RenderTextLineBoxes
antti@apple.com [Sat, 12 Oct 2013 22:33:53 +0000 (22:33 +0000)]
Move positionForPoint to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122703

Reviewed by Andreas Kling.

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

6 years agoRemove unused ScrollingCoordinator hooks.
akling@apple.com [Sat, 12 Oct 2013 22:23:06 +0000 (22:23 +0000)]
Remove unused ScrollingCoordinator hooks.
<https://webkit.org/b/122701>

Reviewed by Anders Carlsson.

Remove leftover ScrollingCoordinator hooks that were only used
by the Chromium port.

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

6 years ago[Soup] The NeverDestroyed<std::unique_ptr<NetworkStorageSession>> variable in default...
zandobersek@gmail.com [Sat, 12 Oct 2013 21:14:58 +0000 (21:14 +0000)]
[Soup] The NeverDestroyed<std::unique_ptr<NetworkStorageSession>> variable in defaultSession() should be static
https://bugs.webkit.org/show_bug.cgi?id=122700

Reviewed by Anders Carlsson.

* platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::defaultSession): The NeverDestroyed variable should be static to avoid its reinitialization every time
the function is called. This was exposed by r157337 and should fix the subsequent crashes.

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

6 years agoMove line dirtying code to RenderTextLineBoxes
antti@apple.com [Sat, 12 Oct 2013 20:33:29 +0000 (20:33 +0000)]
Move line dirtying code to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122699

Reviewed by Andreas Kling.

* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::removeAllFromParent):

    Also moved the removal loop.

(WebCore::RenderTextLineBoxes::dirtyAll):
(WebCore::RenderTextLineBoxes::dirtyRange):

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

6 years agoMove more code to RenderTextLineBoxes
antti@apple.com [Sat, 12 Oct 2013 18:40:48 +0000 (18:40 +0000)]
Move more code to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122697

Reviewed by Andreas Kling.

* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::boundingBox):
(WebCore::RenderTextLineBoxes::visualOverflowBoundingBox):
(WebCore::RenderTextLineBoxes::hasRenderedText):
(WebCore::RenderTextLineBoxes::caretMinOffset):
(WebCore::RenderTextLineBoxes::caretMaxOffset):

    Moved these.

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

6 years agoAdd a feature define for SubtleCrypto
ap@apple.com [Sat, 12 Oct 2013 18:34:14 +0000 (18:34 +0000)]
Add a feature define for SubtleCrypto
https://bugs.webkit.org/show_bug.cgi?id=122683

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

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

6 years agoGenerate tighter isFooElement() functions for HTML elements.
akling@apple.com [Sat, 12 Oct 2013 18:26:47 +0000 (18:26 +0000)]
Generate tighter isFooElement() functions for HTML elements.
<https://webkit.org/b/122696>

Reviewed by Antti Koivisto.

Specialize HTML element type checking helpers to only compare the
localName and not the fully qualified tag name.

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

6 years agoReplace static cast ASSERTs with ASSERT_WITH_SECURITY_IMPLICATION
akling@apple.com [Sat, 12 Oct 2013 18:16:42 +0000 (18:16 +0000)]
Replace static cast ASSERTs with ASSERT_WITH_SECURITY_IMPLICATION
https://bugs.webkit.org/show_bug.cgi?id=120803

Patch by Jessica Pease <jessica_n_pease@apple.com> on 2013-09-27
Reviewed by Andreas Kling.

No new tests because we're just changing assertions.

Source/WebCore:

* accessibility/AccessibilityMockObject.h:
(WebCore::toAccessibilityMockObject):
* bindings/js/JSCanvasRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute):
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::image):
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyTextUnderlinePosition::applyValue):
* dom/Element.cpp:
(WebCore::Element::elementRareData):
(WebCore::Element::synchronizeAttribute):
* dom/FocusEvent.h:
(WebCore::toFocusEvent):
* dom/MouseEvent.h:
(WebCore::toMouseEvent):
* dom/Node.cpp:
(WebCore::Node::rareData):
* dom/StyledElement.cpp:
(WebCore::StyledElement::ensureMutableInlineStyle):
* dom/TouchEvent.h:
(WebCore::toTouchEvent):
* editing/CompositeEditCommand.h:
(WebCore::toCompositeEditCommand):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
* html/track/AudioTrack.h:
(WebCore::toAudioTrack):
* html/track/TextTrack.h:
(WebCore::toTextTrack):
* html/track/VideoTrack.h:
(WebCore::toVideoTrack):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
* loader/cache/CachedResourceClientWalker.h:
(WebCore::CachedResourceClientWalker::next):
* page/FrameView.h:
(WebCore::toFrameView):
* rendering/InlineBox.cpp:
(WebCore::InlineBox::root):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::createLineBoxesFromBidiRuns):
* rendering/svg/SVGPathData.cpp:
(WebCore::updatePathFromEllipseElement):
(WebCore::updatePathFromLineElement):
(WebCore::updatePathFromPolygonElement):
(WebCore::updatePathFromPolylineElement):
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::document):

Source/WebKit2:

* Shared/Plugins/NPObjectProxy.h:
(WebKit::NPObjectProxy::toNPObjectProxy):
* WebProcess/Plugins/Netscape/NPJSObject.h:
(WebKit::NPJSObject::toNPJSObject):

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

6 years agoReplace bounds checking ASSERTs with ASSERT_WITH_SECURITY_IMPLICATION
akling@apple.com [Sat, 12 Oct 2013 18:03:39 +0000 (18:03 +0000)]
Replace bounds checking ASSERTs with ASSERT_WITH_SECURITY_IMPLICATION
https://bugs.webkit.org/show_bug.cgi?id=120893

Patch by Jessica Pease <jessica_n_pease@apple.com> on 2013-09-06
Reviewed by Darin Adler.

Source/WebCore:

* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBKeyPathLexer::lex):
* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::compareEncodedIDBKeys):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::cssPropertyIDForJSCSSPropertyName):
* css/CSSFontSelector.cpp:
(WebCore::compareFontFaces):
* css/CSSParser.cpp:
(WebCore::CSSParser::rewriteSpecifiers):
* html/HTMLCollection.cpp:
(WebCore::traverseMatchingElementsForwardToOffset):
(WebCore::LiveNodeListBase::traverseChildNodeListForwardToOffset):
(WebCore::HTMLCollection::traverseForwardToOffset):
* html/HTMLFontElement.cpp:
(WebCore::parseFontSize):
* html/parser/HTMLParserIdioms.cpp:
(WebCore::parseHTMLIntegerInternal):
(WebCore::parseHTMLNonNegativeIntegerInternal):
* inspector/InspectorStyleSheet.h:
(WebCore::InspectorStyleProperty::setRawTextFromStyleDeclaration):
* platform/graphics/StringTruncator.cpp:
(WebCore::centerTruncateToBuffer):
(WebCore::rightTruncateToBuffer):
(WebCore::truncateString):
* platform/graphics/TextRun.h:
(WebCore::TextRun::subRun):
* platform/text/BidiRunList.h:
(WebCore::::reverseRuns):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::selectionRectForTextFragment):
(WebCore::SVGInlineTextBox::mapStartEndPositionsIntoFragmentCoordinates):
* rendering/svg/SVGTextChunkBuilder.cpp:
(WebCore::SVGTextChunkBuilder::buildTextChunks):
* rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::currentLogicalCharacterMetrics):
* rendering/svg/SVGTextQuery.cpp:
(WebCore::SVGTextQuery::mapStartEndPositionsIntoFragmentCoordinates):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
* svg/SVGPathByteStreamSource.h:
(WebCore::SVGPathByteStreamSource::readType):

Source/WebKit2:

* Shared/Plugins/PluginQuirks.h:
(WebKit::PluginQuirks::add):

Source/WTF:

* wtf/BumpPointerAllocator.h:
(WTF::BumpPointerPool::ensureCapacity):
(WTF::BumpPointerPool::alloc):
(WTF::BumpPointerPool::ensureCapacityCrossPool):
* wtf/FastMalloc.cpp:
(WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
* wtf/StringPrintStream.cpp:
(WTF::StringPrintStream::increaseSize):
* wtf/dtoa/utils.h:
(WTF::double_conversion::BufferReference::SubBufferReference):
* wtf/text/WTFString.cpp:
(WTF::String::fromUTF8):

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

6 years agoFactor line box code from RenderText to a class
antti@apple.com [Sat, 12 Oct 2013 17:41:13 +0000 (17:41 +0000)]
Factor line box code from RenderText to a class
https://bugs.webkit.org/show_bug.cgi?id=122694

Reviewed by Andreas Kling.

Create RenderTextLineBoxes and move some line box specific code there.

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

6 years agoFix potential register trampling in JIT since r157313.
commit-queue@webkit.org [Sat, 12 Oct 2013 15:15:14 +0000 (15:15 +0000)]
Fix potential register trampling in JIT since r157313.
https://bugs.webkit.org/show_bug.cgi?id=122691

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-12
Reviewed by Michael Saboff.

* jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):

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

6 years agoReplace RenderText::renderedTextLength with hasRenderedText
antti@apple.com [Sat, 12 Oct 2013 14:51:01 +0000 (14:51 +0000)]
Replace RenderText::renderedTextLength with hasRenderedText
https://bugs.webkit.org/show_bug.cgi?id=122693

Reviewed by Andreas Kling.

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

6 years agoUse unique_ptr instead of delete in a few places
darin@apple.com [Sat, 12 Oct 2013 14:15:33 +0000 (14:15 +0000)]
Use unique_ptr instead of delete in a few places
https://bugs.webkit.org/show_bug.cgi?id=122639

Reviewed by Anders Carlsson.

Source/WebCore:

* Modules/webdatabase/DatabaseBackendBase.cpp:
(WebCore::guidToDatabaseMap): Use NeverDestroyed instead of DEFINE_STATIC_LOCAL.
(WebCore::guidForOriginAndName): Ditto.
(WebCore::DatabaseBackendBase::DatabaseBackendBase): Removed unneeded initialization
of m_guid, which is set in the body of the constructor explicitly anyway. Use emptyString.
Use unique_ptr for the values in the map. Use the add idiom instead of the get/set idiom.
(WebCore::DatabaseBackendBase::closeDatabase): Use the find/remove idiom instead of the
get/remove idiom.
(WebCore::DatabaseBackendBase::performOpenAndVerify): Use auto here to avoid having to
use the map type by name.

* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::CachedFont): Don't initialize m_fontData to 0; unique_ptr will do that.
(WebCore::CachedFont::~CachedFont): Don't delete m_fontData. unique_ptr will do that.
(WebCore::CachedFont::ensureCustomFontData): Add a get.
(WebCore::CachedFont::allClientsRemoved): Don't delete m_fontData. Use nullptr instead of 0.
* loader/cache/CachedFont.h: Changed m_fontData to a unique_ptr.

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::BitmapImage): Don't initialize m_frameTimer to 0; unique_ptr will do that.
(WebCore::BitmapImage::startAnimation): Use make_unique to create the timer.
(WebCore::BitmapImage::stopAnimation): Don't delete m_frameTimer. Use nullptr instead of 0.
* platform/graphics/BitmapImage.h: Changed m_FrameTimer to a unique_ptr.
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::BitmapImage): Don't initialize m_frameTimer to 0; unique_ptr will do that.

* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::~FontCustomPlatformData): Don't call CGFontRelease on m_cgFont.
(WebCore::FontCustomPlatformData::fontPlatformData): Use get on m_cgFont.
(WebCore::createFontCustomPlatformData): Use nullptr instead of 0, and make_unique instead of new.
* platform/graphics/mac/FontCustomPlatformData.h: Chnaged m_cgFont to be a RetainPtr, and the
return value from createFontCustomPlatformData to be a unique_ptr.

* platform/graphics/blackberry/FontCustomPlatformData.h:
* platform/graphics/blackberry/FontCustomPlatformDataBlackBerry.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::BitmapImage):
* platform/graphics/cairo/FontCustomPlatformData.h:
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::BitmapImage):
* platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/win/FontCustomPlatformData.h:
* platform/graphics/win/FontCustomPlatformDataCairo.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/wince/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/wince/FontCustomPlatformData.h:
Same thing on all the other platforms.

* platform/network/NetworkStorageSession.h: Changed return value of createPrivateBrowsingSession
to a unique_ptr, and made constructors public.

* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Use make_unique.

* platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::defaultSession):
(WebCore::NetworkStorageSession::defaultStorageSession):
(WebCore::NetworkStorageSession::createPrivateBrowsingSession):
(WebCore::NetworkStorageSession::switchToNewTestingSession):
Same thing on all the other platforms.

Source/WebKit/mac:

* History/WebHistory.mm:
(-[WebHistoryPrivate init]): Use make_unique.
(-[WebHistoryPrivate dealloc]): Don't delete.
(-[WebHistoryPrivate finalize]): Don't delete.
(-[WebHistoryPrivate data]): Use get.

* WebCoreSupport/WebFrameNetworkingContext.mm:
(privateSession): Use NeverDestroyed here instead of a raw pointer.
(WebFrameNetworkingContext::ensurePrivateBrowsingSession): Use the
new function instead of direct global variable access.
(WebFrameNetworkingContext::destroyPrivateBrowsingSession): Ditto.
(WebFrameNetworkingContext::storageSession): Ditto.

* WebView/WebFrame.mm:
(-[WebFramePrivate dealloc]): Don't delete.
(-[WebFramePrivate finalize]): Don't delete.
(-[WebFrame _attachScriptDebugger]): Use make_unique.
(-[WebFrame _detachScriptDebugger]): Don't delete.
* WebView/WebFrameInternal.h: Use unique_ptr.

Source/WebKit/win:

* WebCoreSupport/WebFrameNetworkingContext.cpp:
(privateSession):
(identifierBase):
(WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
(WebFrameNetworkingContext::setPrivateBrowsingStorageSessionIdentifierBase):
(WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebFrameNetworkingContext::destroyPrivateBrowsingSession):
(WebFrameNetworkingContext::storageSession):

Source/WebKit2:

* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::privateBrowsingStorageSession): Use NeverDestroyed and unique_ptr.
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): Use std::move.

* Shared/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload): Use std::move. Also add instead of set.
(WebKit::DownloadManager::convertHandleToDownload): Ditto.
(WebKit::DownloadManager::downloadFinished): Don't delete.

* Shared/Downloads/DownloadManager.h: Changed m_downloads to hold unique_ptr instead
of raw pointers.

* Shared/SandboxExtension.h: Use std::unique_ptr for m_data.

* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::HandleArray::HandleArray): Don't initialize m_data to 0.
(WebKit::SandboxExtension::HandleArray::~HandleArray): Don't delete m_data.
(WebKit::SandboxExtension::HandleArray::allocate): Use make_unique to allocate m_data.

* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::privateSession): Use NeverDestroyed and unique_ptr.
(WebKit::identifierBase): Use NeverDestroyed.
(WebKit::WebFrameNetworkingContext::setPrivateBrowsingStorageSessionIdentifierBase):
Updated to use the above.
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): Ditto.
(WebKit::WebFrameNetworkingContext::destroyPrivateBrowsingSession): Ditto.
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): Ditto.
(WebKit::WebFrameNetworkingContext::storageSession): Ditto.

* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
(WebKit::privateSession):
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::destroyPrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::storageSession):
(WebKit::WebFrameNetworkingContext::webFrameLoaderClient):
More of the same.

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

6 years agoMake LayoutState not arena-allocated.
akling@apple.com [Sat, 12 Oct 2013 10:06:26 +0000 (10:06 +0000)]
Make LayoutState not arena-allocated.
<https://webkit.org/b/122649>

Reviewed by Antti Koivisto.

Let RenderView own a singly-linked chain of LayoutState objects
managed by unique_ptr.

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

6 years ago[sh4] Add missing spaces in JITStubsSH4.h
commit-queue@webkit.org [Sat, 12 Oct 2013 09:25:44 +0000 (09:25 +0000)]
[sh4] Add missing spaces in JITStubsSH4.h
https://bugs.webkit.org/show_bug.cgi?id=122690

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-12
Reviewed by Andreas Kling.

* jit/JITStubsSH4.h: Space between string concatenation is mandatory with C++11

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

6 years ago[sh4] Add missing test32 implementation in macro assembler.
commit-queue@webkit.org [Sat, 12 Oct 2013 09:19:19 +0000 (09:19 +0000)]
[sh4] Add missing test32 implementation in macro assembler.
https://bugs.webkit.org/show_bug.cgi?id=122689

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-12
Reviewed by Andreas Kling.

* assembler/MacroAssemblerSH4.h:
(JSC::MacroAssemblerSH4::test32):

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

6 years agoMake RenderLayer not arena-allocated.
akling@apple.com [Sat, 12 Oct 2013 09:15:33 +0000 (09:15 +0000)]
Make RenderLayer not arena-allocated.
<https://webkit.org/b/87523>

Reviewed by Antti Koivisto.

Let RenderLayerModelObject store its RenderLayer in a unique_ptr.
Layers are relatively low-volume objects and this looks neutral
on our performance tests.

Re-landing this since the original commit exposed a problem with
the destruction order. This pattern:

    m_someRenderer->destroy();
    m_someRenderer = nullptr;

..is different from what we get with unique_ptr, which clears
the pointer storage before calling the destructor.
I believe that the new order is strictly better as it removes
one path to accessing an object that is undergoing destruction.

The exposed bug was in RLC::fixedRootBackgroundLayerChanged()
where we were dereferencing the RenderView's layer() without
checking, despite it being called below ~RenderLayer.

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

6 years agoMove firstPositiveWidth/adjustLogicalLineTop functions where they're actually used
zoltan@webkit.org [Sat, 12 Oct 2013 06:03:17 +0000 (06:03 +0000)]
Move firstPositiveWidth/adjustLogicalLineTop functions where they're actually used
https://bugs.webkit.org/show_bug.cgi?id=122685

Reviewed by Darin Adler.

I'm working on the refactoring of RenderBlockLineLayout, progress tracked under bug #121261. For the better readability, I moved
firstPositiveWidth and adjustLogicalLineTop functions above pushShapeContentOverflowBelowTheContentBox, where these're actually used.

No new tests, no behavior change.

* rendering/RenderBlockLineLayout.cpp:
(WebCore::firstPositiveWidth):
(WebCore::adjustLogicalLineTop):

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

6 years agoExtract an iterator/resolver class from calculateAdjustedNodes
rniwa@webkit.org [Sat, 12 Oct 2013 04:52:45 +0000 (04:52 +0000)]
Extract an iterator/resolver class from calculateAdjustedNodes
https://bugs.webkit.org/show_bug.cgi?id=122687

Reviewed by Darin Adler.

Extracted EventRelatedNodeResolver out of calculateAdjustedNodes and replaced calls to calculateAdjustedNodes
in updateTouchListsInEventPath and setRelatedTarget by the use of this newly added class.

* dom/EventContext.h: Added some helper functions to TouchEventContext so that updateTouchListsInEventPath
could obtain respective TouchList* without having to hard-code the name.
* dom/EventDispatcher.cpp:
(WebCore::EventRelatedNodeResolver::EventRelatedNodeResolver): Added.
(WebCore::EventRelatedNodeResolver::moveToParentOrShadowHost): Extracted from calculateAdjustedNodes.
(WebCore::EventPath::updateTouchListsInEventPath): Updated to use EventRelatedNodeResolver. Also made this
a member function of EventPath.
(WebCore::EventPath::updateTouchLists): Removed local Vectors to TouchList now that updateTouchListsInEventPath
can obtain TouchList* on demand.
(WebCore::EventPath::setRelatedTarget): Upsed to use EventRelatedNodeResolver.

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

6 years agoChange most call sites to call ICU directly instead of through WTF::Unicode
darin@apple.com [Sat, 12 Oct 2013 04:16:42 +0000 (04:16 +0000)]
Change most call sites to call ICU directly instead of through WTF::Unicode
https://bugs.webkit.org/show_bug.cgi?id=122635

Reviewed by Alexey Proskuryakov.

Source/JavaScriptCore:

* parser/Lexer.cpp:
(JSC::isNonLatin1IdentStart): Take a UChar since that's what the only caller wants to pass.
Use U_GET_GC_MASK instead of WTF::Unicode::category.
(JSC::isNonLatin1IdentPart): Ditto.

* parser/Lexer.h:
(JSC::Lexer::isWhiteSpace): Use u_charType instead of WTF::Unicode::isSeparatorSpace.

* runtime/JSFunction.cpp: Removed "using namespace" for WTF::Unicode, this will no longer
compile since this doesn't include anything that defines that namespace.

* runtime/JSGlobalObjectFunctions.cpp:
(JSC::isStrWhiteSpace): Use u_charType instead of WTF::Unicode::isSeparatorSpace.

* yarr/YarrInterpreter.cpp:
(JSC::Yarr::ByteCompiler::atomPatternCharacter): Use u_tolower and u_toupper instead of
Unicode::toLower and Unicode::toUpper. Also added some assertions since this code assumes
it can convert any UChar to lowercase or uppercase in another UChar, with no risk of needing
a UChar32 for the result. I guess that's probably true, but it would be good to know in a
debug build if not.

Source/WebCore:

* Modules/indexeddb/IDBKeyPath.cpp:
(isIdentifierStartCharacter): Use U_GET_GC_MASK instead of WTF::Unicode::category.
(isIdentifierCharacter): Ditto.

* css/CSSParser.cpp:
(WebCore::makeLower): Use u_tolower instead of WTF::Unicode::toLower.
Also assert the character fits in a UChar.

* dom/Document.cpp:
(WebCore::isValidNameStart): Use U_GET_GC_MASK instead of WTF::Unicode::category,
and u_getIntPropertyValue instead of WTF::Unicode::decompositionType.
(WebCore::isValidNamePart): Ditto.
(WebCore::canonicalizedTitle): Ditto.

* editing/Editor.cpp:
(WebCore::Editor::insertTextWithoutSendingTextEvent): Use u_isPunct instead of
WTF::Unicode::isPunct.

* editing/TextIterator.cpp:
(WebCore::SearchBuffer::append): Use u_strFoldCase instead of WTF::Unicode::foldCase.

* html/HTMLElement.cpp:
(WebCore::HTMLElement::directionality): Use UCharDirection instead of
WTF::Unicode::Direction.

* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::defaultEventHandler): Use u_isprint instead of
WTF::Unicode::isPrintableChar.

* html/TypeAhead.cpp:
(WebCore::stripLeadingWhiteSpace): Use u_charDirection instead of
WTF::Unicode::direction.

* html/track/TextTrackCue.cpp:
(WebCore::isCueParagraphSeparator): Use u_charType instead of
WTF::Unicode::category.
(WebCore::TextTrackCue::determineTextDirection): Use u_charDirection instead of
WTF::Unicode::direction.

* page/ContextMenuController.cpp:
(WebCore::selectionContainsPossibleWord): Use U_GET_GC_MASK instead of
WTF::Unicode::category.
* platform/graphics/Font.cpp:
(WebCore::Font::canReceiveTextEmphasis): Ditto.

* platform/graphics/FontGlyphs.cpp:
(WebCore::FontGlyphs::glyphDataAndPageForCharacter): Use u_toupper instead of
WTF::Unicode::toUpper. Use u_charMirror instead of WTF::Unicode::mirroredChar.

* platform/graphics/GraphicsContext.cpp:
(WebCore::TextRunIterator::direction): Use u_charDirection instead of
WTF::Unicode::direction.

* platform/graphics/SVGGlyph.cpp:
(WebCore::charactersWithArabicForm): Use ublock_getCode instead of
WTF::Unicode::isArabicChar.

* platform/graphics/SurrogatePairAwareTextIterator.cpp:
(WebCore::SurrogatePairAwareTextIterator::normalizeVoicingMarks): Use
u_getCombiningClass instead of WTF::Unicode::combiningClass.

* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal): Use u_toupper instead of
WTF::Unicode::toUpper.

* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::collectComplexTextRuns): Added some
assertions about the user of u_toupper and tweaked coding style a bit.

* platform/text/BidiContext.cpp:
(WebCore::BidiContext::createUncached): Use UCharDirection instead of
WTF::Unicode::Direction.
(WebCore::BidiContext::create): Ditto.
(WebCore::copyContextAndRebaselineLevel): Ditto.
* platform/text/BidiContext.h:
(WebCore::BidiContext::dir): Ditto.
(WebCore::BidiContext::BidiContext): Ditto.
* platform/text/BidiResolver.h:
(WebCore::BidiStatus::BidiStatus): Ditto.
(WebCore::BidiEmbedding::BidiEmbedding): Ditto.
(WebCore::BidiEmbedding::direction): Ditto.
(WebCore::BidiCharacterRun::BidiCharacterRun): Ditto.
(WebCore::BidiResolver::BidiResolver): Ditto.
(WebCore::BidiResolver::setLastDir): Ditto.
(WebCore::BidiResolver::setLastStrongDir): Ditto.
(WebCore::BidiResolver::setEorDir): Ditto.
(WebCore::BidiResolver::dir): Ditto.
(WebCore::BidiResolver::setDir): Ditto.
(WebCore::BidiResolver::appendRun): Ditto.
(WebCore::BidiResolver::embed): Ditto.
(WebCore::BidiResolver::checkDirectionInLowerRaiseEmbeddingLevel): Ditto.
(WebCore::BidiResolver::lowerExplicitEmbeddingLevel): Ditto.
(WebCore::BidiResolver::raiseExplicitEmbeddingLevel): Ditto.
(WebCore::BidiResolver::commitExplicitEmbedding): Ditto.
(WebCore::BidiResolver::updateStatusLastFromCurrentDirection): Ditto.
(WebCore::BidiResolver::createBidiRunsForLine): Ditto.

* platform/text/SegmentedString.h:
(WebCore::SegmentedString::advanceAndASSERTIgnoringCase): Use u_foldCase
instead of WTF::Unicode::foldCase.

* platform/text/TextBoundaries.cpp:
(WebCore::findNextWordFromIndex): Use u_isalnum instead of
WTF::Unicode::isAlphanumeric.

* platform/text/TextBoundaries.h:
(WebCore::requiresContextForWordBoundary): Use u_getIntPropertyValue directly
instead of WTF::Unicode::requiresComplexContextForWordBreaking.

* platform/text/mac/TextBoundaries.mm: Removed explicit use of WTF::Unicode,
which was unneeded and also will no longer compile.

* rendering/BidiRun.h:
(WebCore::BidiRun::BidiRun): Use UCharDirection instead of WTF::Unicode::Direction.
* rendering/InlineFlowBox.h: Ditto.
* rendering/InlineIterator.h:
(WebCore::embedCharFromDirection): Ditto.
(WebCore::notifyObserverWillExitObject): Ditto.
(WebCore::InlineIterator::direction): Ditto.
(WebCore::IsolateTracker::embed): Ditto.
(WebCore::InlineBidiResolver::appendRun): Ditto.

* rendering/RenderBlock.cpp:
(WebCore::isPunctuationForFirstLetter): Use U_GET_GC_MASK instead of
WTF::Unicode::category.

* rendering/RenderBlockLineLayout.cpp:
(WebCore::determineDirectionality): Use u_charDirection instead of
WTF::Unicode::direction.
(WebCore::RenderBlockFlow::handleTrailingSpaces): Ditto.
(WebCore::statusWithDirection): Ditto.
(WebCore::LineBreaker::nextSegmentBreak): Use U_GET_GC_MASK instead of
WTF::Unicode::category.

* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint): Use u_charDirection instead of
WTF::Unicode::direction.

* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::adjustInnerStyle): Use UCharDirection instead of
WTF::Unicode::Direction.

* rendering/RenderText.cpp:
(WebCore::makeCapitalized): Use u_totile instead of WTF::Unicode::toTitleCase.
Also added a comment about the fact that we need to use u_strToTitle instead.

* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::lineBreakBidiStatus): Use UCharDirection instead of
WTF::Unicode::Direction.

* svg/SVGFontData.cpp:
(WebCore::SVGFontData::createStringWithMirroredCharacters): Use u_charMirror
instead of WTF::Unicode::mirroredChar.

* xml/XPathParser.cpp:
(WebCore::XPath::charCat): Use U_GET_GC_MASK instead of WTF::Unicode::category.

* platform/graphics/win/UniscribeController.cpp:
(WebCore::UniscribeController::advance):
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::paint):
* platform/win/WebCoreTextRenderer.cpp:
(WebCore::isOneLeftToRightRun):
More of the same for Windows.

Source/WTF:

* wtf/text/StringHash.h:
(WTF::CaseFoldingHash::foldCase): Use u_foldCase instead of WTF::Unicode::foldCase.
(WTF::CaseFoldingHash::hash): Added an overload for a StringImpl& because why not.

* wtf/text/StringImpl.cpp:
(WTF::StringImpl::lower): Use u_tolower rather than WTF::Unicode::toLower. Also added
an assertion to check that the lowercase version is also part of Latin-1. If this
is not guaranteed it would be good to know in a debug build at least. Use u_strToLower
rather than WTF::Unicode::toLower. Also removed #if USE(ICU_UNICODE) around the
locale-specific version.
(WTF::StringImpl::upper): Use u_toupper and u_strToUpper, as above.
(WTF::StringImpl::foldCase): Use u_tolower and u_strFoldCase, as above.
(WTF::equalIgnoringCase): Use u_foldCase instead of WTF::Unicode::foldCase.
(WTF::StringImpl::defaultWritingDirection): Use u_charDirection and UCharDirection
instead of WTF::Unicode::direction and WTF::Unicode::Direction.

* wtf/text/StringImpl.h:
(WTF::equalIgnoringCase): Use u_memcasecmp instead of WTF::Unicode::umemcasecmp.
(WTF::isSpaceOrNewline): Use u_charDirection instead of WTF::Unicode::direction.

* wtf/text/WTFString.h:
(WTF::String::defaultWritingDirection): Use UCharDirection instead of WTF::Unicode::Direction.

* wtf/unicode/icu/UnicodeIcu.h: Removed almost everything.

* wtf/unicode/wchar/UnicodeWchar.cpp: Tried to do the right thing in this file, but
I did not actually compile it. Also, the implementations here aren't really sufficient
to make WebKit work broadly. There are many things that just aren't working with this
implementation, such as parsing that uses u_charType to figure out which characters are valid.
(unorm_normalize): Added.
(u_charDirection): Added.
(u_charMirror): Added.
(u_charType): Added.
(u_getCombiningClass): Added.
(u_getIntPropertyValue): Added.
(u_memcasecmp): Added.
(convertWithFunction): Changed to work with ICU-style status code instead of error bool.
(u_strFoldCase): Added.
(u_strToLower): Added.
(u_strToUpper): Added.
* wtf/unicode/wchar/UnicodeWchar.h: Ditto. Later this file should just be named like the
real ICU headers so the code can include it the same way it would ICU. But that will be
in a future patch.

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

6 years agoDFG: Add JIT support for LogicalNot(String/StringIdent)
commit-queue@webkit.org [Sat, 12 Oct 2013 02:21:45 +0000 (02:21 +0000)]
DFG: Add JIT support for  LogicalNot(String/StringIdent)
https://bugs.webkit.org/show_bug.cgi?id=122627

Patch by Nadav Rotem <nrotem@apple.com> on 2013-10-11
Reviewed by Filip Pizlo.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::::executeEffects):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileStringZeroLength):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileLogicalNot):

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

6 years agoDramatically simplify calculateAdjustedNodes
rniwa@webkit.org [Sat, 12 Oct 2013 02:05:53 +0000 (02:05 +0000)]
Dramatically simplify calculateAdjustedNodes
https://bugs.webkit.org/show_bug.cgi?id=122680

Reviewed by Antti Koivisto.

Without insertion points, we never have to worry about entering a shadow DOM we've already climbed out of.
Deleted the logic to deal with insertion points in calculateAdjustedNodes accordingly.

* dom/EventDispatcher.cpp:
(WebCore::EventPath::EventPath):
(WebCore::calculateAdjustedNodes):
(WebCore::updateTouchListsInEventPath):
(WebCore::EventPath::updateTouchLists):
(WebCore::EventPath::setRelatedTarget):

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

6 years agosunspider-1.0/math-spectral-norm.js.dfg-eager occasionally fails with Trap 5 (i.e...
fpizlo@apple.com [Sat, 12 Oct 2013 01:35:49 +0000 (01:35 +0000)]
sunspider-1.0/math-spectral-norm.js.dfg-eager occasionally fails with Trap 5 (i.e int $3)
https://bugs.webkit.org/show_bug.cgi?id=122462

Reviewed by Mark Hahnenberg.

This fixes two bugs, both of which led to GetByVal on Int32 trapping because the
array no longer had Int32 shape but the check wasn't executed:

1) We weren't snapshotting the structures of mustHandleValues. This led to an awesome
   race where if a mustHandleValue JSValue's structure changed on the main thread
   between runs of the AI, the AI would contradict each other and things would just
   get corrupted in funny ways.

2) The constant folder has a long standing bug! It will fold a node to a constant if
   the AI proved it to be a constant. But it's possible that the original node also
   proved things about the constant's structure. In that case "folding" to a
   JSConstant actually loses information since JSConstant doesn't guarantee anything
   about a constant's structure. There are various things we could do here to ensure
   that a folded constant's structure doesn't change, and that if it does, we
   deoptimize the code. But for now we can just make this sound by disabling folding
   in this pathological case.

* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
* dfg/DFGGraph.h:
* dfg/DFGInPlaceAbstractState.cpp:
(JSC::DFG::InPlaceAbstractState::initialize):

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

6 years agoFix handling of indirect stackmap locations in FTL OSR exit
fpizlo@apple.com [Sat, 12 Oct 2013 01:33:16 +0000 (01:33 +0000)]
Fix handling of indirect stackmap locations in FTL OSR exit
https://bugs.webkit.org/show_bug.cgi?id=122666

Reviewed by Mark Hahnenberg.

With this change, the llvm.webkit.stackmap-based OSR exit only fails one test, down from
five tests previously.

* ftl/FTLLocation.cpp:
(JSC::FTL::Location::gpr): It's OK to call this method when kind() == Indirect, so asserting that isGPR() is wrong; change to assert that involvesGPR().
(JSC::FTL::Location::restoreInto): Stack-related registers aren't saved to the scratch buffer, so use them directly.
* ftl/FTLLocation.h: Add comment about requirements for stack layout.
* ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStubWithOSRExitStackmap): Make enough room on the stack so that saveAllRegisters() has a scratchpad to save things to. Without this, saveAllRegisters() may clobber a spilled value.

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

6 years agoUnreviewed EFL gardening.
ryuan.choi@samsung.com [Sat, 12 Oct 2013 01:22:29 +0000 (01:22 +0000)]
Unreviewed EFL gardening.

Unskip tests that are already passing.

* platform/efl-wk2/TestExpectations:

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

6 years ago[Windows] Fix for fast/xpath test regressions caused by r157205.
roger_fong@apple.com [Sat, 12 Oct 2013 00:43:49 +0000 (00:43 +0000)]
[Windows] Fix for fast/xpath test regressions caused by r157205.
https://bugs.webkit.org/show_bug.cgi?id=122658.

Reviewed by Darin Adler.

* xml/XPathStep.h:
(WebCore::XPath::Step::NodeTest::NodeTest):
(WebCore::XPath::Step::NodeTest::operator=):
We were incorrectly setting the predicate list to null instead of the predicate list of the NodeTest being passed in.

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

6 years agoRemove preference support for picking the old Web Inspector.
timothy@apple.com [Fri, 11 Oct 2013 23:09:02 +0000 (23:09 +0000)]
Remove preference support for picking the old Web Inspector.
https://bugs.webkit.org/show_bug.cgi?id=122655

Reviewed by Alexey Proskuryakov.

Source/WebKit/mac:

* WebCoreSupport/WebInspectorClient.mm:
(WebInspectorFrontendClient::localizedStringsURL):
(-[WebInspectorWindowController inspectorPagePath]):

Source/WebKit2:

* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
* UIProcess/API/C/WKPreferencesPrivate.h:
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::inspectorPageURL):
(WebKit::WebInspectorProxy::inspectorBaseURL):
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::WebInspector):
* WebProcess/WebPage/WebInspector.h:
* WebProcess/WebPage/mac/WebInspectorMac.mm:
(WebKit::WebInspector::localizedStringsURL):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformPreferencesDidChange):

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):

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

6 years agoFix 64-bit build on everything but Windows.
fpizlo@apple.com [Fri, 11 Oct 2013 22:59:47 +0000 (22:59 +0000)]
Fix 64-bit build on everything but Windows.

Rubber stamped by Brent Fulgham.

* Scripts/webkitdirs.pm:
(argumentsForConfiguration):

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

6 years agoTouch a file to see how auto-update works.
ap@apple.com [Fri, 11 Oct 2013 22:45:02 +0000 (22:45 +0000)]
Touch a file to see how auto-update works.

Rubber-stamped by Tim Hatcher.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTestResults.js:

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

6 years agoLay the groundwork for a multi-process aware Indexed DB implementation in WebKit2.
beidson@apple.com [Fri, 11 Oct 2013 22:12:17 +0000 (22:12 +0000)]
Lay the groundwork for a multi-process aware Indexed DB implementation in WebKit2.
https://bugs.webkit.org/show_bug.cgi?id=122675

Reviewed by Alexey Proskuryakov.

* CMakeLists.txt:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebKit2.xcodeproj/project.pbxproj:

* WebProcess/IndexedDB/WebIDBFactoryBackend.cpp: Added.
(WebKit::WebIDBFactoryBackend::WebIDBFactoryBackend):
(WebKit::WebIDBFactoryBackend::~WebIDBFactoryBackend):
(WebKit::WebIDBFactoryBackend::getDatabaseNames):
(WebKit::WebIDBFactoryBackend::open):
(WebKit::WebIDBFactoryBackend::deleteDatabase):
* WebProcess/IndexedDB/WebIDBFactoryBackend.h: Added.
(WebKit::WebIDBFactoryBackend::create):

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createIDBFactoryBackend): Return a WebIDBFactoryBackend.

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

6 years agoRemove ENABLE(GESTURE_EVENTS) from WebKit2
andersca@apple.com [Fri, 11 Oct 2013 21:14:06 +0000 (21:14 +0000)]
Remove ENABLE(GESTURE_EVENTS) from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=122673

Reviewed by Ryosuke Niwa.

* Shared/WebEvent.h:
* Shared/WebEventConversion.cpp:
* Shared/WebEventConversion.h:
* Shared/WebGestureEvent.cpp: Removed.
* Shared/mac/WebEventFactory.h:
* Shared/mac/WebEventFactory.mm:
* UIProcess/API/mac/PageClientImpl.h:
* UIProcess/API/mac/PageClientImpl.mm:
* UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveEvent):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/EventDispatcher.cpp:
* WebProcess/WebPage/EventDispatcher.h:
* WebProcess/WebPage/EventDispatcher.messages.in:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:

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

6 years ago[CSS Shapes] Use the floatingObject's logical coordinates to determine its size in...
zoltan@webkit.org [Fri, 11 Oct 2013 21:01:40 +0000 (21:01 +0000)]
[CSS Shapes] Use the floatingObject's logical coordinates to determine its size in computeLogicalLocationForFloat
https://bugs.webkit.org/show_bug.cgi?id=122663

Reviewed by David Hyatt.

Covered by existing float tests in fast/shapes/shape-inside.
I'll add additional tests in bug #122664.

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::computeLogicalLocationForFloat):

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

6 years agoUnreviewed, rolling out r157307.
commit-queue@webkit.org [Fri, 11 Oct 2013 19:18:27 +0000 (19:18 +0000)]
Unreviewed, rolling out r157307.
http://trac.webkit.org/changeset/157307
https://bugs.webkit.org/show_bug.cgi?id=122671

Many assertion failures (Requested by ap on #webkit).

* jit/ThunkGenerators.cpp:
(JSC::arrayIteratorNextThunkGenerator):
* jit/ThunkGenerators.h:
* runtime/ArrayIteratorPrototype.cpp:
(JSC::ArrayIteratorPrototype::finishCreation):
(JSC::createIteratorResult):
(JSC::arrayIteratorPrototypeNext):
* runtime/Intrinsic.h:
* runtime/JSArrayIterator.cpp:
(JSC::JSArrayIterator::finishCreation):
* runtime/VM.cpp:
(JSC::thunkGeneratorForIntrinsic):

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

6 years agoRemove gesture event support from WebCore
andersca@apple.com [Fri, 11 Oct 2013 19:16:35 +0000 (19:16 +0000)]
Remove gesture event support from WebCore
https://bugs.webkit.org/show_bug.cgi?id=122650

Reviewed by Ryosuke Niwa.

Source/WebCore:

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* dom/GestureEvent.cpp: Removed.
* dom/GestureEvent.h: Removed.
* dom/Node.cpp:
* dom/Node.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::sendContextMenuEventForKey):
* page/EventHandler.h:
* platform/PlatformGestureEvent.h: Removed.
* platform/Scrollbar.cpp:
* platform/Scrollbar.h:
* platform/mac/PlatformEventFactoryMac.h:
* platform/mac/PlatformEventFactoryMac.mm:

Source/WTF:

* wtf/FeatureDefines.h:
* wtf/nix/FeatureDefinesNix.h:

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

6 years agoUnreviewed gardening. Rebaseline after 157292.
gns@gnome.org [Fri, 11 Oct 2013 19:15:29 +0000 (19:15 +0000)]
Unreviewed gardening. Rebaseline after 157292.

* platform/gtk/editing/unsupported-content/table-delete-001-expected.txt:
* platform/gtk/editing/unsupported-content/table-delete-003-expected.txt:

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

6 years agoRemove some dead code from PlatformCALayer*
timothy_horton@apple.com [Fri, 11 Oct 2013 19:04:33 +0000 (19:04 +0000)]
Remove some dead code from PlatformCALayer*
https://bugs.webkit.org/show_bug.cgi?id=122641

Reviewed by Anders Carlsson.

Remove some unused getters from PlatformCALayer and its implementations.

No new tests, just removing dead code.

* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
* platform/graphics/ca/win/PlatformCALayerWin.cpp:

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

6 years agoTransition op_new_* JITStubs to JIT operations.
mark.lam@apple.com [Fri, 11 Oct 2013 19:03:39 +0000 (19:03 +0000)]
Transition op_new_* JITStubs to JIT operations.
https://bugs.webkit.org/show_bug.cgi?id=122460.

Reviewed by Michael Saboff.

Also:
- Removed the redundant operationNewFunctionExpression().  It is identical to
  operationNewFunctionNoCheck().
- Sorted JIT operation signature keys in the comment in JITOperations.h.
- Removed the unused returnValue2Register definition for X86_64.

* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewFunctionExpression):
* jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):
* jit/JIT.h:
* jit/JITInlines.h:
(JSC::JIT::callOperation):
* jit/JITOpcodes.cpp:
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emit_op_new_func):
(JSC::JIT::emit_op_new_func_exp):
(JSC::JIT::emit_op_new_array):
(JSC::JIT::emit_op_new_array_with_size):
(JSC::JIT::emit_op_new_array_buffer):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emitSlow_op_new_object):
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* jit/JITStubs.cpp:
* jit/JITStubs.h:
* jit/JSInterfaceJIT.h:

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

6 years agoLeaksViewer fails to present recent results list if current build is still updating svn
ap@apple.com [Fri, 11 Oct 2013 18:59:05 +0000 (18:59 +0000)]
LeaksViewer fails to present recent results list if current build is still updating svn
https://bugs.webkit.org/show_bug.cgi?id=122670

Fixed an obvious mistake in the previous patch.

* BuildSlaveSupport/build.webkit.org-config/public_html/LeaksViewer/RecentBuildsLoader.js:
(RecentBuildsLoader.prototype.start):

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

6 years agoLeaksViewer fails to present recent results list if current build is still updating svn
ap@apple.com [Fri, 11 Oct 2013 18:56:15 +0000 (18:56 +0000)]
LeaksViewer fails to present recent results list if current build is still updating svn
https://bugs.webkit.org/show_bug.cgi?id=122670

Reviewed by Adam Roben.

* BuildSlaveSupport/build.webkit.org-config/public_html/LeaksViewer/RecentBuildsLoader.js:
(RecentBuildsLoader.prototype.start): Skip builds that don't have an svn revision yet.

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

6 years agoConfusing CGImageRef memory management in ImageBuffer::copyImage
aroben@webkit.org [Fri, 11 Oct 2013 18:50:50 +0000 (18:50 +0000)]
Confusing CGImageRef memory management in ImageBuffer::copyImage
https://bugs.webkit.org/show_bug.cgi?id=122605

Source/WebCore:

BitmapImage::create was adopting the CGImage passed into it, which
resulted in some strange contortions in ImageBuffer::copyImage that
made it look like it was leaking CGImages, when in fact it was just
relying on BitmapImage to adopt the extra references.

BitmapImage::create now retains the passed-in CGImage, and I updated
the two callers to it to expect that (one here, one in WebKit2). I
also changed ImageBuffer::copyNativeImage to return a RetainPtr to
reduce the number of adoptCF()s needed and make it harder to make
programming mistakes.

Reviewed by Simon Fraser.

No new tests because this is just a code cleanup.

* platform/graphics/ImageBuffer.h: Changed copyNativeImage to return a
RetainPtr<CGImageRef.

* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::BitmapImage): Adopt the passed-in CGImage,
since we're taking ownership of it. (We release it in
FrameData::clear.)

* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::copyImage): Updated for copyNativeImage's new
return type and to take into account BitmapImage::create's new
retaining semantics. This makes this function not have to be so clever
about retain counts.

(WebCore::ImageBuffer::copyNativeImage): Changed to return a
RetainPtr<CGImageRef>.

(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::clip):
(WebCore::ImageBuffer::putByteArray):
(WebCore::ImageBuffer::toDataURL):
Updated for changes to copyNativeImage.

Source/WebKit2:

Reviewed by Simon Fraser.

* Shared/cg/ShareableBitmapCG.cpp:
(WebKit::ShareableBitmap::createImage): BitmapImage::create now
retains the passed-in CGImage, so we don't need to dance around it
anymore. Also changed to use nullptr instead of 0 while I was in here.

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

6 years ago[CSS Shapes] Shape-Image-Threshold should be animatable
betravis@adobe.com [Fri, 11 Oct 2013 18:01:39 +0000 (18:01 +0000)]
[CSS Shapes] Shape-Image-Threshold should be animatable
https://bugs.webkit.org/show_bug.cgi?id=122622

Reviewed by Darin Adler.

Source/WebCore:

Make the shape-image-threshold property respond to dynamic changes
made through JS or CSS animations. Responding to changes made to
shape-image-threshold is handled in RenderBox::updateShapeOutsideInfoAfterStyleChange,
while CSSPropertyAnimation.cpp adds the property to the list of
animatable properties.

Tests: fast/shapes/shape-outside-floats/shape-outside-dynamic-shape-image-threshold.html
       fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html

* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Add
shape-image-threshold to the list of animatable properties.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange): updateShapeOutsideInfoAfterStyleChange
needs to take two RenderStyle arguments to compare multiple shape properties,
rather than just the shape-outside property.
(WebCore::RenderBox::updateShapeOutsideInfoAfterStyleChange): Compare
shape-image-threshold values to see if they changed, and invalidate the layout
if necessary.
* rendering/RenderBox.h:

LayoutTests:

Adding tests for dynamically changing shape-image threshold via JS and CSS
animations. Included are some SVG resources used as the shape image sources.

* fast/shapes/resources/svg-shape-002.svg: Added.
* fast/shapes/resources/svg-shape-003.svg: Added.
* fast/shapes/shape-outside-floats/shape-outside-dynamic-shape-image-threshold-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-dynamic-shape-image-threshold.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html: Added.

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

6 years agoUnreviewed gardening. Remove a Windows work-around that is not needed.
bfulgham@apple.com [Fri, 11 Oct 2013 17:57:34 +0000 (17:57 +0000)]
Unreviewed gardening. Remove a Windows work-around that is not needed.

* dom/Range.cpp:
(WebCore::rangeOfContents): Move implementation back to source file.
* dom/Range.h: Remove inline I added to work around a compiler bug.

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

6 years agoSeparate out array iteration intrinsics
oliver@apple.com [Fri, 11 Oct 2013 17:30:56 +0000 (17:30 +0000)]
Separate out array iteration intrinsics
https://bugs.webkit.org/show_bug.cgi?id=122656

Reviewed by Michael Saboff.

Separate out the intrinsics for key and values iteration
of arrays.

This requires moving moving array iteration into the iterator
instance, rather than the prototype, but this is essentially
unobservable so we'll live with it for now.

* jit/ThunkGenerators.cpp:
(JSC::arrayIteratorNextThunkGenerator):
(JSC::arrayIteratorNextKeyThunkGenerator):
(JSC::arrayIteratorNextValueThunkGenerator):
* jit/ThunkGenerators.h:
* runtime/ArrayIteratorPrototype.cpp:
(JSC::ArrayIteratorPrototype::finishCreation):
* runtime/Intrinsic.h:
* runtime/JSArrayIterator.cpp:
(JSC::JSArrayIterator::finishCreation):
(JSC::createIteratorResult):
(JSC::arrayIteratorNext):
(JSC::arrayIteratorNextKey):
(JSC::arrayIteratorNextValue):
(JSC::arrayIteratorNextGeneric):
* runtime/VM.cpp:
(JSC::thunkGeneratorForIntrinsic):

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

6 years agoUnreviewed, rolling out r157297.
commit-queue@webkit.org [Fri, 11 Oct 2013 16:54:27 +0000 (16:54 +0000)]
Unreviewed, rolling out r157297.
http://trac.webkit.org/changeset/157297
https://bugs.webkit.org/show_bug.cgi?id=122651

Caused crashes on multiple platform/mac-wk2/tiled-drawing
tests (Requested by ap on #webkit).

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::operator new):
(WebCore::RenderLayer::operator delete):
(WebCore::RenderLayer::destroy):
* rendering/RenderLayer.h:
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::RenderLayerModelObject):
(WebCore::RenderLayerModelObject::destroyLayer):
(WebCore::RenderLayerModelObject::ensureLayer):
* rendering/RenderLayerModelObject.h:
(WebCore::RenderLayerModelObject::layer):

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

6 years ago[CSS Shapes] New positioning model: Negative margins
bjonesbe@adobe.com [Fri, 11 Oct 2013 16:53:07 +0000 (16:53 +0000)]
[CSS Shapes] New positioning model: Negative margins
https://bugs.webkit.org/show_bug.cgi?id=118090

Reviewed by Darin Adler.

Tests for shape-outside with negative margins:

negative top margin
negative left margin
negative right margin
negative bottom margin
negative top margin vertical right-left writing mode
negative left margin vertical right-left writing mode
negative right margin vertical right-left writing mode
negative bottom margin vertical right-left writing mode
negative top margin vertical left-right writing mode
negative left margin vertical left-right writing mode
negative right margin vertical left-right writing mode
negative bottom margin vertical left-right writing mode

* csswg/contributors/adobe/submitted/shapes/shape-outside/resources/w3c-import.log:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-010-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-010.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-011-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-011.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-012-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-012.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-013-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-013.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-014-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-014.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-015-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-015.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-016-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-016.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-017-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-017.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-018-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-018.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-019-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-019.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-020-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-020.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-021-expected.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-021.html: Added.
* csswg/contributors/adobe/submitted/shapes/shape-outside/w3c-import.log:

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

6 years ago[EFL] Added new accessibility expectation after r154697
commit-queue@webkit.org [Fri, 11 Oct 2013 16:51:21 +0000 (16:51 +0000)]
[EFL] Added new accessibility expectation after r154697
https://bugs.webkit.org/show_bug.cgi?id=122646

Unreviewed EFL gardening

Patch by Krzysztof Czech <k.czech@samsung.com> on 2013-10-11

* platform/efl-wk2/TestExpectations:
* platform/efl/accessibility/aria-checkbox-sends-notification-expected.txt: Added.

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

6 years agoUnreviewed build fix for --64-bit target.
bfulgham@apple.com [Fri, 11 Oct 2013 16:46:51 +0000 (16:46 +0000)]
Unreviewed build fix for --64-bit target.

* Scripts/webkitdirs.pm:
(argumentsForConfiguration): Use 'isWin64' test, since @ARGV value may have
been removed by this point.
(hasArgument): Remove unused temporary.

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

6 years agoFix build.
darin@apple.com [Fri, 11 Oct 2013 16:34:25 +0000 (16:34 +0000)]
Fix build.

* html/HTMLElement.cpp:
(WebCore::HTMLElement::translate): Do a const_cast when creating the
lineage, since it doesn't yet work with const pointers.

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

6 years agoPass VM instead of ExecState to JSGenericTypedArrayViewPrototype.
akling@apple.com [Fri, 11 Oct 2013 15:26:11 +0000 (15:26 +0000)]
Pass VM instead of ExecState to JSGenericTypedArrayViewPrototype.
<https://webkit.org/b/122632>

Reviewed by Sam Weinig.

This code was only using the ExecState to find the VM.

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

6 years agoDo a bit of optimization and cleanup in the HTMLElement class
darin@apple.com [Fri, 11 Oct 2013 15:07:12 +0000 (15:07 +0000)]
Do a bit of optimization and cleanup in the HTMLElement class
https://bugs.webkit.org/show_bug.cgi?id=122640

Reviewed by Andreas Kling.

* html/HTMLElement.cpp:
(WebCore::unicodeBidiAttributeForDirAuto): Take a reference.
(WebCore::HTMLElement::collectStyleForPresentationAttribute): Pass one.
(WebCore::mergeWithNextTextNode): Take a reference to a Text node instead
of a PassRefPtr to a Node. Also removed unnecessary check of parentNode.
Also update to new calling convention for mergeWithNextTextNode.
(WebCore::HTMLElement::setOuterHTML): Use parentElement instead of
parentNode, since Antti says that's the future, and either will work here.
Also use nullptr.
(WebCore::HTMLElement::textToFragment): Fix indentation and use nullptr.
(WebCore::HTMLElement::setOuterText): Use a RefPtr for the parent here,
since otherwise there is no guarantee it survives. Also use nullptr and
update to new calling convention for mergeWithNextTextNode.
(WebCore::HTMLElement::insertAdjacent): Use nullptr.
(WebCore::HTMLElement::insertAdjacentElement): Use nullptr.
(WebCore::contextElementForInsertion): Use nullptr.
(WebCore::HTMLElement::contentEditable): Use ASCIILiteral.
(WebCore::HTMLElement::setContentEditable): Use AtomicString::ConstructFromLiteral.
(WebCore::HTMLElement::draggable): Use fastGetAttribute.
(WebCore::HTMLElement::setDraggable): Use AtomicString::ConstructFromLiteral.
(WebCore::HTMLElement::setSpellcheck): Use AtomicString::ConstructFromLiteral.
(WebCore::HTMLElement::click): Use nullptr.
(WebCore::HTMLElement::accessKeyAction): Use nullptr.
(WebCore::HTMLElement::title): Use fastGetAttribute.
(WebCore::HTMLElement::translateAttributeMode): Use fastGetAttribute, isNull,
and isEmpty.
(WebCore::HTMLElement::translate): Use parentElement and toHTMLElement.
Use early-continue style instead of nesting the whole loop body inside an if.
(WebCore::setHasDirAutoFlagRecursively): Use nullptr.
(WebCore::HTMLElement::hasDirectionAuto): Use isNull.
(WebCore::HTMLElement::directionality): Use nullptr.
(WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged): Use nullptr.
(WebCore::HTMLElement::addHTMLLengthToStyle): Use longer variable names.

* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::abbr): Use fastGetAttribute.
(WebCore::HTMLTableCellElement::axis): Ditto.
(WebCore::HTMLTableCellElement::headers): Ditto.
(WebCore::HTMLTableCellElement::scope): Ditto.
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::width): Ditto.

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

6 years agoSource/WebCore: Use after free in WebCore::DisplayRefreshMonitorClient::fireDisplayRe...
dino@apple.com [Fri, 11 Oct 2013 09:44:39 +0000 (09:44 +0000)]
Source/WebCore: Use after free in WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=121033

Patch by Darin Adler <darin@apple.com> on 2013-10-10
Reviewed by Dean Jackson.

For safe iteration, use a set rather than a vector, and remove the clients from
the set if they are removed during iteration.

Test: fast/animation/request-animation-frame-remove-client.html

* platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor): Initialize the
m_clientsToBeNotified pointer to null.
(WebCore::DisplayRefreshMonitor::removeClient): If there is a m_clientsToBeNotified
set, remove from it as well as the real m_clients set.
(WebCore::DisplayRefreshMonitor::displayDidRefresh): Use a HashSet instead of a
vector for the copy of the clients set we iterate.

* platform/graphics/DisplayRefreshMonitor.h: Moved some of the BlackBerry-specific
part of this out of the header. Added a new HashSet pointer, m_clientsToBeNotified,
to be used to remove clients during the notification process. Also added a FIXME.

* platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp: Moved the
DisplayAnimationClient class in here.

LayoutTests: Use after free in WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded
http://webkit.org/b/121033

Update test to indicate it no longer crashes.

* TestExpectations: Mark test as passing.
* fast/animation/request-animation-frame-remove-client-expected.txt:
* fast/animation/request-animation-frame-remove-client.html:

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

6 years agoUse after free in WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded
dino@apple.com [Fri, 11 Oct 2013 09:43:56 +0000 (09:43 +0000)]
Use after free in WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded
http://webkit.org/b/121033

Reviewed by Darin Adler.

Source/WebCore:

Add an ASSERT to detect if an animation client will be removed
during the callback dispatch.

Test: fast/animation/request-animation-frame-remove-client.html

* platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::displayDidRefresh):

LayoutTests:

Test that assertion fires if you try to remove potential client while in a
animation dispatch.

* TestExpectations: Mark test as crashing.
* fast/animation/request-animation-frame-remove-client-expected.txt: Added.
* fast/animation/request-animation-frame-remove-client.html: Added.

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

6 years agoMake RenderLayer not arena-allocated.
akling@apple.com [Fri, 11 Oct 2013 09:39:28 +0000 (09:39 +0000)]
Make RenderLayer not arena-allocated.
<https://webkit.org/b/87523>

Reviewed by Antti Koivisto.

Let RenderLayerModelObject store its RenderLayer in a unique_ptr.
Layers are relatively low-volume objects and this looks neutral
on our performance tests.

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