WebKit-https.git
7 years ago[Chromium] Test expectation update.
tkent@chromium.org [Mon, 29 Oct 2012 08:45:58 +0000 (08:45 +0000)]
[Chromium] Test expectation update.
https://bugs.webkit.org/show_bug.cgi?id=99818

The failure of month-multiple-fields-keyboard-events.html on SnowLeopard
and XP is expected.

- OS X SnowLeopard
  The month forma is "yyyy MMMM" on SnowLoepard though it's "MMMM yyyy"
  on other platforms.

- Windows XP
  It doesn't support the lang-attribute-aware-form-control-UI testing
feature.

* platform/chromium-mac-snowleopard/fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events-expected.txt: Copied from LayoutTests/platform/chromium-win-xp/fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events-expected.txt.
* platform/chromium-win-xp/fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events-expected.txt:
* platform/chromium/TestExpectations:

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

7 years ago[EFL] Skip 2 tests failing due to missing drag'n drop support
commit-queue@webkit.org [Mon, 29 Oct 2012 08:36:21 +0000 (08:36 +0000)]
[EFL] Skip 2 tests failing due to missing drag'n drop support
https://bugs.webkit.org/show_bug.cgi?id=100638

Unreviewed EFL gardening.

Skip 2 test cases failing due to missing drag'n drop support
in EFL port.

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-10-29

* platform/efl/TestExpectations:

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

7 years ago[EFL] Skip 2 jquery tests crashing after r132757
commit-queue@webkit.org [Mon, 29 Oct 2012 08:34:00 +0000 (08:34 +0000)]
[EFL] Skip 2 jquery tests crashing after r132757
https://bugs.webkit.org/show_bug.cgi?id=100637

Unreviewed EFL gardening.

Skip 2 jquery test cases that started crashing after
r132757.

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-10-29

* platform/efl/TestExpectations:

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

7 years agoWeb Inspector: [Styles] Handle non-parsedOk properties as inactive ones
apavlov@chromium.org [Mon, 29 Oct 2012 08:30:38 +0000 (08:30 +0000)]
Web Inspector: [Styles] Handle non-parsedOk properties as inactive ones
https://bugs.webkit.org/show_bug.cgi?id=100119

Reviewed by Vsevolod Vlasov.

Source/WebCore:

Test: inspector/styles/inactive-properties.html

* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.createExclamationMark):
(WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
* inspector/front-end/elementsPanel.css:
(.styles-section.computed-style .properties li.not-parsed-ok):
(.styles-section.computed-style .properties li.not-parsed-ok img.exclamation-mark):
(.styles-section .properties .not-parsed-ok):

LayoutTests:

* http/tests/inspector/elements-test.js:
(initialize_ElementTest.InspectorTest.dumpStyleTreeItem):
* inspector/styles/inactive-properties-expected.txt: Added.
* inspector/styles/inactive-properties.html: Added.

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

7 years agoTechnical Articles should link to an old talk I gave
eric@webkit.org [Mon, 29 Oct 2012 08:17:28 +0000 (08:17 +0000)]
Technical Articles should link to an old talk I gave
https://bugs.webkit.org/show_bug.cgi?id=100624

Reviewed by Adam Barth.

* coding/technical-articles.html:

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

7 years agoUnreviewed. Add jonathan.dong@torchmobile.com.cn as a committer.
jonathan.dong@torchmobile.com.cn [Mon, 29 Oct 2012 08:14:24 +0000 (08:14 +0000)]
Unreviewed. Add jonathan.dong@torchmobile.com.cn as a committer.
https://bugs.webkit.org/show_bug.cgi?id=100629

* Scripts/webkitpy/common/config/committers.py:

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

7 years ago[Qt] Unreviewed gardening.
kkristof@inf.u-szeged.hu [Mon, 29 Oct 2012 07:51:26 +0000 (07:51 +0000)]
[Qt] Unreviewed gardening.

Skip some tests because SHADOW_DOM is disabled on Qt.
Unskip another one that doesn't exist already.

Patch by Nandor Huszka <hnandor@inf.u-szeged.hu> on 2012-10-29

* platform/qt/TestExpectations:

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

7 years agoMake rendering tables with <colgroups> twice as fast by avoiding walking the DOM...
eric@webkit.org [Mon, 29 Oct 2012 07:38:01 +0000 (07:38 +0000)]
Make rendering tables with <colgroups> twice as fast by avoiding walking the DOM for colgroups 4 times for each cell
https://bugs.webkit.org/show_bug.cgi?id=100630

Reviewed by Ojan Vafai.

This is not a complete fix.  Our rendering of this large tables still takes 7.8 seconds
on my retina MBP (down from 14.3s before this change).
It's very expensive to walk the DOM each time we call RenderTable::colElement
so this caches the RenderTableCol* in a vector for easier walking.
We invalidate the cache any time a RenderTableCol is added or removed from the
rendering sub-tree to avoid holding a bad pointer.

* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
(WebCore::RenderTable::invalidateCachedColumns):
(WebCore):
(WebCore::RenderTable::addColumn):
(WebCore::RenderTable::removeColumn):
(WebCore::RenderTable::updateColumnCache):
(WebCore::RenderTable::slowColElement):
* rendering/RenderTable.h:
(RenderTable):
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::insertedIntoTree):
(WebCore):
(WebCore::RenderTableCol::willBeRemovedFromTree):
* rendering/RenderTableCol.h:

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

7 years agoUnreviewed. Rolled DEPS.
tkent@chromium.org [Mon, 29 Oct 2012 07:29:43 +0000 (07:29 +0000)]
Unreviewed.  Rolled DEPS.

* DEPS:

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

7 years agoRename Localizer.{cpp,h} to PlatformLocale.{cpp,h}
tkent@chromium.org [Mon, 29 Oct 2012 07:02:39 +0000 (07:02 +0000)]
Rename Localizer.{cpp,h} to PlatformLocale.{cpp,h}
https://bugs.webkit.org/show_bug.cgi?id=100627

Reviewed by Yuta Kitamura.

Source/WebCore:

We'd like to rename Localizer class to Locale class. However we use
PlatformLocale.cpp and PlatformLocale.h as their file names because
<locale.h> exists in the C standard.  In this patch, we rename only file
names. We're going to rename the class name later.

No new tests. This doesn't make any behavior change.

* platform/text/PlatformLocale.h: Renamed from Source/WebCore/platform/text/Localizer.h.
* platform/text/PlatformLocale.cpp: Renamed from Source/WebCore/platform/text/Localizer.cpp.
Follow the Localizer.h -> PlatformLocale.cpp renaming.

* CMakeLists.txt: Follow the file name renaming.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* dom/Document.cpp: Ditto.
* html/BaseDateAndTimeInputType.cpp: Ditto.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
* html/DateInputType.cpp: Ditto.
* html/DateTimeInputType.cpp: Ditto.
* html/DateTimeLocalInputType.cpp: Ditto.
* html/MonthInputType.cpp: Ditto.
* html/NumberInputType.cpp: Ditto.
* html/TimeInputType.cpp: Ditto.
* html/shadow/DateTimeEditElement.cpp: Ditto.
* html/shadow/DateTimeNumericFieldElement.cpp: Ditto.
* page/PagePopupController.cpp: Ditto.
* platform/text/LocaleICU.h: Ditto.
* platform/text/LocaleNone.cpp: Ditto.
* platform/text/LocaleWin.h: Ditto.
* platform/text/mac/LocaleMac.h: Ditto.

Source/WebKit/chromium:

* src/ColorChooserUIController.h: Follow the file name renaming.
* src/DateTimeChooserImpl.cpp: Ditto.

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

7 years ago[WK2] Fix the incorrect use of preprocessor statement in API header.
commit-queue@webkit.org [Mon, 29 Oct 2012 05:13:51 +0000 (05:13 +0000)]
[WK2] Fix the incorrect use of preprocessor statement in API header.
https://bugs.webkit.org/show_bug.cgi?id=100610

Patch by Byungwoo Lee <bw80.lee@samsung.com> on 2012-10-28
Reviewed by Timothy Hatcher.

Remove the preprocessor statement to check 'ENABLE_INSPECTOR' feature
from the WKPage.h.

* UIProcess/API/C/WKPage.cpp:
(WKPageGetInspector):
* UIProcess/API/C/WKPage.h:

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

7 years agoThe shadow element is not reprojected to a nested ShadowRoot.
shinyak@chromium.org [Mon, 29 Oct 2012 04:08:03 +0000 (04:08 +0000)]
The shadow element is not reprojected to a nested ShadowRoot.
https://bugs.webkit.org/show_bug.cgi?id=99228

Reviewed by Dimitri Glazkov.

Source/WebCore:

We support shadow reprojection; elements distributed to <shadow> element can be reprojected to <content> now.

First, we have a distribution vector for each InsertionPoint, even if InsertionPoint is a shadow insertion point.
And we update a node-distribution map. Basically We're creating a map from node to InsertionPoint in ElementShadow.
If a node can be distributed to several InsertionPoint (e.g. in case reprojection happens),
the InsertionPoint in older ShadowDOM is chosen.

We also fix ComposedShadowTreeWalker to consider shadow reprojection.

Tests: fast/dom/shadow/composed-shadow-tree-walker-shadow-reprojection.html
       fast/dom/shadow/shadow-reprojection-click.html
       fast/dom/shadow/shadow-reprojection-dynamic.html
       fast/dom/shadow/shadow-reprojection-fallback.html
       fast/dom/shadow/shadow-reprojection.html
       fast/dom/shadow/shadow-reprojection2.html

* css/StyleResolver.cpp:
(WebCore::shouldResetStyleInheritance): Now context.insertionPoint() returns the final insertion point where
a node is distributed. So we don't have to trace shadow insertion point anymore here.
(WebCore::StyleResolver::styleForElement): Since a direct child of ShadowRoot can be distributed now. In that case,
we don't have any parentElement. The parent node is a ShadowRoot in that case.
* dom/ComposedShadowTreeWalker.cpp:
(WebCore::nodeCanBeDistributed): If a node can be distributed, returns true.
(WebCore):
(WebCore::resolveReprojection): Resolves content-reprojection and shadow-reprojection both.
(WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
(WebCore::ComposedShadowTreeWalker::traverseParent):
(WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost): A case ShadowRoot is assigned
to some InsertionPoint should be handled with in traverseSiblingOrBackToInsertionPoint. So we remove it.
(WebCore::AncestorChainWalker::parent): Now we have a case that a direct child of ShadowRoot can be distributed.
In that case, we should not update m_distributedNode.
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::insertionPointFor): Since we have a distribution vector for each InsertionPoint,
we don't have a special case that a ShadowRoot is assigned to some InsertionPoint. Actually the existing code
is not correct now due to shadow reprojection.
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::populate): Populate a POOL. If a node is InsertionPoint, we fill it with the
distributed nodes.
(WebCore):
(WebCore::ContentDistributor::distribute): Since we want to make a distribution vector for each InsertionPoint,
we have to resolve a shadow InsertionPoint
(WebCore::ContentDistributor::distributeNodeChildrenTo):
* html/shadow/ContentDistributor.h:
(ContentDistributor):
* html/shadow/HTMLShadowElement.h:
(WebCore::toHTMLShadowElement):
(WebCore):
* html/shadow/InsertionPoint.h:
(WebCore::parentNodeForDistribution):
(WebCore::parentElementForDistribution):
(WebCore):

LayoutTests:

* fast/dom/shadow/composed-shadow-tree-walker-shadow-reprojection-expected.txt: Added.
* fast/dom/shadow/composed-shadow-tree-walker-shadow-reprojection.html: Added. A walker test case for elements distributed
to shadow element are reprojected.
* fast/dom/shadow/composed-shadow-tree-walker.html:
* fast/dom/shadow/content-reprojection-complex.html:
* fast/dom/shadow/content-reprojection-fallback-expected.html:
* fast/dom/shadow/content-reprojection-fallback-reprojection-expected.html:
* fast/dom/shadow/shadow-reprojection-click-expected.txt: Added.
* fast/dom/shadow/shadow-reprojection-click.html: Added. Does some interactive with a shadow-reprojected node.
* fast/dom/shadow/shadow-reprojection-dynamic-expected.html: Added.
* fast/dom/shadow/shadow-reprojection-dynamic.html: Added. Adds dynamically elements shadow-reprojected.
* fast/dom/shadow/shadow-reprojection-expected.html: Added.
* fast/dom/shadow/shadow-reprojection-fallback-expected.html: Added.
* fast/dom/shadow/shadow-reprojection-fallback.html: Added. A test case for fallback elements of a shadow element
are reprojected.
* fast/dom/shadow/shadow-reprojection-prohibited-expected.html: Removed.
* fast/dom/shadow/shadow-reprojection-prohibited.html: Removed.
* fast/dom/shadow/shadow-reprojection.html: Added. A basic test case.
* fast/dom/shadow/shadow-reprojection2-expected.html: Added.
* fast/dom/shadow/shadow-reprojection2.html: Added. Another basic test case.

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

7 years agoDFG should be able to emit effectful structure checks
fpizlo@apple.com [Mon, 29 Oct 2012 04:02:08 +0000 (04:02 +0000)]
DFG should be able to emit effectful structure checks
https://bugs.webkit.org/show_bug.cgi?id=99260

Reviewed by Oliver Hunt.

This change allows us to find out if an array access that has gone polymorphic
is operating over known structures - i.e. the primordial array structures of the
global object that the code block containing the array access belongs to. We
term this state "OriginalArray" for short. The fact that the access has gone
polymorphic means that the array profile will not be able to report the set of
structures it had seen - but if it can tell us that all of the structures were
primordial then it just so happens that we can deduce what the structure set
would have been by just querying the code block's global object. This allows us
to emit an ArrayifyToStructure instead of an Arrayify if we find that we need to
do conversions. The fast path of an ArrayifyToStructure is exactly like the fast
path of a CheckStructure and is mostly subject to the same optimizations. It
also burns one fewer registers.

Essentially the notion of OriginalArray is a super cheap way of getting the
array profile to tell us a structure set instead of a singleton structure.
Currently, the array profile can only tell us the structure seen at an array
access if there was exactly one structure. If there were multiple structures, it
won't tell us anything other than the array modes and other auxiliary profiling
data (whether there were stores to holes, for example). With OriginalArray, we
cheaply get a structure set if all of the structures were primordial for the
code block's global object, since in that case the array mode set (ArrayModes)
can directly tell us the structure set. In the future, we might consider adding
complete structure sets to the array profiles, but I suspect that we would hit
diminishing returns if we did so - it would only help if we have array accesses
that are both polymorphic and are cross-global-object accesses (rare) or if the
arrays had named properties or other structure transitions that are unrelated to
indexing type (also rare).

This also does away with Arrayify (and the new ArrayifyToStructure) returning
the butterfly pointer. This turns out to be faster and easier to CSE.

And, this also changes constant folding to be able to eliminate CheckStructure,
ForwardCheckStructure, and ArrayifyToStructure in addition to being able to
transform them into structure transition watchpoints. This is great for
ArrayifyToStructure because then CSE and CFA know that there is no side effect.
Converting CheckStructure and ForwardCheckStructure to also behave this way is
just a matter of elegance.

This has no performance impact right now. It's intended to alleviate some of the
regressions seen in the early implementation of
https://bugs.webkit.org/show_bug.cgi?id=98606.

* bytecode/ArrayProfile.cpp:
(JSC::ArrayProfile::computeUpdatedPrediction):
* bytecode/ArrayProfile.h:
(JSC):
(JSC::ArrayProfile::ArrayProfile):
(ArrayProfile):
(JSC::ArrayProfile::usesOriginalArrayStructures):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::updateAllPredictionsAndCountLiveness):
* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGArrayMode.cpp:
(JSC::DFG::ArrayMode::fromObserved):
(JSC::DFG::ArrayMode::alreadyChecked):
(JSC::DFG::arrayClassToString):
* dfg/DFGArrayMode.h:
(JSC::DFG::ArrayMode::withProfile):
(JSC::DFG::ArrayMode::isJSArray):
(ArrayMode):
(JSC::DFG::ArrayMode::isJSArrayWithOriginalStructure):
(JSC::DFG::ArrayMode::supportsLength):
(JSC::DFG::ArrayMode::arrayModesWithIndexingShape):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::getArrayMode):
(JSC::DFG::ByteCodeParser::getArrayModeAndEmitChecks):
(JSC::DFG::ByteCodeParser::handleGetByOffset):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::checkStructureElimination):
(JSC::DFG::CSEPhase::structureTransitionWatchpointElimination):
(JSC::DFG::CSEPhase::getPropertyStorageLoadElimination):
(JSC::DFG::CSEPhase::checkArrayElimination):
(JSC::DFG::CSEPhase::getScopeRegistersLoadElimination):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::checkArray):
* dfg/DFGNode.h:
(JSC::DFG::Node::hasStructure):
(JSC::DFG::Node::hasArrayMode):
(JSC::DFG::Node::arrayMode):
* dfg/DFGNodeType.h:
(DFG):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::jumpSlowForUnwantedArrayMode):
(JSC::DFG::SpeculativeJIT::arrayify):
* dfg/DFGSpeculativeJIT.h:
(SpeculativeJIT):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::isOriginalArrayStructure):
* runtime/Structure.cpp:
(JSC::Structure::nonPropertyTransition):

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

7 years agoWebkit adds a boundary to the Content-Type: text/plain POST header
commit-queue@webkit.org [Mon, 29 Oct 2012 02:50:52 +0000 (02:50 +0000)]
Webkit adds a boundary to the Content-Type: text/plain POST header
https://bugs.webkit.org/show_bug.cgi?id=100445

Patch by Kunihiko Sakamoto <ksakamoto@chromium.org> on 2012-10-28
Reviewed by Kent Tamura.

Source/WebCore:

Fixed a bug where an empty boundary parameter was added to Content-Type
header when POSTing forms with enctype=text/plain.

Test: http/tests/misc/form-post-textplain.html

* loader/FormSubmission.cpp:
(WebCore::FormSubmission::populateFrameLoadRequest): Add boundary parameter to
Content-Type only when a boundary string is generated.

LayoutTests:

Fixed test failure and added a test case for Content-Type header.

* http/tests/misc/form-post-textplain-expected.txt:
* http/tests/misc/form-post-textplain.html:
* http/tests/misc/resources/form-post-textplain.php:
Added a test case for testing Content-Type POST header.
Also fixed existing test case that attempted to test newline in the input value.
LF in the input value is replaced with CRLF durling the construction of the form data set.

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

7 years agoThere should not be blind spots in array length array profiling
fpizlo@apple.com [Mon, 29 Oct 2012 02:16:27 +0000 (02:16 +0000)]
There should not be blind spots in array length array profiling
https://bugs.webkit.org/show_bug.cgi?id=100620

Reviewed by Oliver Hunt.

I don't think this has any performance impact. But it's good to not have random
programs occasionally emit a GetById for array length accesses.

* jit/JITPropertyAccess.cpp:
(JSC::JIT::compileGetByIdHotPath):
(JSC::JIT::privateCompilePatchGetArrayLength):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::compileGetByIdHotPath):
(JSC::JIT::privateCompilePatchGetArrayLength):

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

7 years ago[Chromium] Test expectation update
tkent@chromium.org [Sun, 28 Oct 2012 23:39:16 +0000 (23:39 +0000)]
[Chromium] Test expectation update

Rebaseline for http://trac.webkit.org/changeset/132753

* platform/chromium-linux/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png:
* platform/chromium-mac-lion/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png:
* platform/chromium-mac-snowleopard/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png:
* platform/chromium-mac/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png:
* platform/chromium-win/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png:

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

7 years agoCache calcMode() value for SVG animations.
pdr@google.com [Sun, 28 Oct 2012 23:32:24 +0000 (23:32 +0000)]
Cache calcMode() value for SVG animations.
https://bugs.webkit.org/show_bug.cgi?id=99694

Reviewed by Eric Seidel.

This patch refactors SVGAnimationElement::calcMode() to return a cached value instead
of recalculating its value on every call. On a simple test of 100 rectangles with 100
animations each, calls to calcMode() account for 3% of the total animation. After this
patch, calcMode() no longer appears in animation profiles at all.

No new tests as this functionality is covered by existing tests.

* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):

    The default calcMode for all animation types is linear except AnimateMotion,
    which defaults to CalcModePaced.
    See: http://www.w3.org/TR/SVG/single-page.html#animate-CalcModeAttribute

* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::SVGAnimationElement):
(WebCore::SVGAnimationElement::isSupportedAttribute):
(WebCore::SVGAnimationElement::parseAttribute):
(WebCore::SVGAnimationElement::setCalcMode):
* svg/SVGAnimationElement.h:
(WebCore::SVGAnimationElement::calcMode):
(WebCore::SVGAnimationElement::setCalcMode):
(SVGAnimationElement):

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

7 years agoGet rid of StyleResolver state related to unknown pseudo-elements.
dglazkov@chromium.org [Sun, 28 Oct 2012 22:35:33 +0000 (22:35 +0000)]
Get rid of StyleResolver state related to unknown pseudo-elements.
https://bugs.webkit.org/show_bug.cgi?id=100582

Reviewed by Eric Seidel.

All of the state, related to unknown pseudo-elements is already understood at the time of collecting rules.
We can just get rid of most of this code in StyleResolver.

At the time of matching rules, we know for certain that only rules that contain unknown pseudo-elements,
or are UA rules, or are explicitly invited by a TreeScope will match. So we can just return early in many cases.

No change in behavior, covered by existing tests.

* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkSelector): Removed now-unnecessary param.
(WebCore::SelectorChecker::checkOneSelector): Ditto.
* css/SelectorChecker.h:
(SelectorChecker): Ditto.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver): Ditto.
(MatchingUARulesScope): Moved class definition here, since we now use it in a different place.
(WebCore::StyleResolver::collectMatchingRules): Changed the logic to stop matching rules that definitely won't match in a different scope.
(WebCore::StyleResolver::collectMatchingRulesForList): Removed code that's now unnecesssary.
(WebCore::StyleResolver::checkSelector): Removed now-unnecessary param.
(WebCore::StyleResolver::checkRegionSelector): Removed weird dead code.
* css/StyleResolver.h:
(StyleResolver): Removed now-unnecessary member.

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

7 years agoUnreviewed, rolling out r132696.
commit-queue@webkit.org [Sun, 28 Oct 2012 21:42:58 +0000 (21:42 +0000)]
Unreviewed, rolling out r132696.
http://trac.webkit.org/changeset/132696
https://bugs.webkit.org/show_bug.cgi?id=100609

Needs a bit more clean-up on Chrome Web UI side. (Requested by
dglazkov on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-10-28

Source/WebCore:

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):
* rendering/RenderListBox.h:
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::updateBeforeAfterContent):

LayoutTests:

* fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.html: Removed.
* fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.txt: Added.
* fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements.html:
* fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.html: Removed.
* fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.txt: Added.
* fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements.html:
* fast/forms/pseudo-elements-expected.html: Removed.
* fast/forms/pseudo-elements.html: Removed.
* fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.html: Removed.
* fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.txt: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements.html:
* fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.html: Removed.
* fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.txt: Added.
* fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements.html:
* platform/chromium-linux/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-linux/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-linux/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-linux/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-mac-lion/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png:
* platform/chromium-mac-lion/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-mac-lion/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png:
* platform/chromium-mac-lion/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png:
* platform/chromium-mac-snowleopard/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-mac-snowleopard/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-mac-snowleopard/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-mac-snowleopard/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-mac/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-mac/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-mac/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-mac/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-win/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-win/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-win/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png: Added.
* platform/chromium-win/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png: Added.

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

7 years agoUnreviewed, make always-true enum-to-int comparisons use casts.
fpizlo@apple.com [Sun, 28 Oct 2012 21:36:50 +0000 (21:36 +0000)]
Unreviewed, make always-true enum-to-int comparisons use casts.

* dfg/DFGFPRInfo.h:
(JSC::DFG::FPRInfo::debugName):
* dfg/DFGGPRInfo.h:
(JSC::DFG::JSValueSource::tagGPR):
(JSC::DFG::GPRInfo::toIndex):
(JSC::DFG::GPRInfo::debugName):
* runtime/JSTypeInfo.h:
(JSC::TypeInfo::TypeInfo):

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

7 years ago[EFL][WK2][AC] Viewport size does not change when the window size changes
commit-queue@webkit.org [Sun, 28 Oct 2012 12:31:04 +0000 (12:31 +0000)]
[EFL][WK2][AC] Viewport size does not change when the window size changes
https://bugs.webkit.org/show_bug.cgi?id=100573

Patch by Yael Aharon <yael.aharon@intel.com> on 2012-10-28
Reviewed by Kenneth Rohde Christiansen.

The viewport size is set when we create the window the first time
and does not change automatically afterwards. When we change the window size,
we need to explicitly change the viewport size as well.

* UIProcess/API/efl/EwkViewImpl.cpp:
(EwkViewImpl::createGLSurface):

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

7 years ago[Chromium] Test expectation update
tkent@chromium.org [Sun, 28 Oct 2012 12:17:45 +0000 (12:17 +0000)]
[Chromium] Test expectation update
https://bugs.webkit.org/show_bug.cgi?id=100128

Rebaseline for http://trac.webkit.org/changeset/132718 and crrev.com/164515.

* platform/chromium-linux/fast/forms/week-multiple-fields/week-multiple-fields-appearance-basic-expected.png:
* platform/chromium-linux/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes-expected.png:
* platform/chromium-linux/fast/forms/week-multiple-fields/week-multiple-fields-appearance-style-expected.png:
* platform/chromium-mac-lion/fast/forms/week-multiple-fields/week-multiple-fields-appearance-basic-expected.png:
* platform/chromium-mac-lion/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes-expected.png:
* platform/chromium-mac-lion/fast/forms/week-multiple-fields/week-multiple-fields-appearance-style-expected.png:
* platform/chromium-mac-snowleopard/fast/forms/week-multiple-fields/week-multiple-fields-appearance-basic-expected.png:
* platform/chromium-mac-snowleopard/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes-expected.png:
* platform/chromium-mac-snowleopard/fast/forms/week-multiple-fields/week-multiple-fields-appearance-style-expected.png:
* platform/chromium-mac/fast/forms/week-multiple-fields/week-multiple-fields-appearance-basic-expected.png:
* platform/chromium-mac/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes-expected.png:
* platform/chromium-mac/fast/forms/week-multiple-fields/week-multiple-fields-appearance-style-expected.png:
* platform/chromium-win/fast/forms/week-multiple-fields/week-multiple-fields-appearance-basic-expected.png:
* platform/chromium-win/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes-expected.png:
* platform/chromium-win/fast/forms/week-multiple-fields/week-multiple-fields-appearance-style-expected.png:
* platform/chromium/TestExpectations:

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

7 years agoOSR exit compilation should defend against argument recoveries from code blocks that...
fpizlo@apple.com [Sun, 28 Oct 2012 08:20:03 +0000 (08:20 +0000)]
OSR exit compilation should defend against argument recoveries from code blocks that are no longer on the inline stack
https://bugs.webkit.org/show_bug.cgi?id=100601

Reviewed by Oliver Hunt.

This happened to me while I was fixing bugs for https://bugs.webkit.org/show_bug.cgi?id=100599.
I'm not sure how to reproduce this.

* dfg/DFGAssemblyHelpers.h:
(JSC::DFG::AssemblyHelpers::baselineCodeBlockFor):
(AssemblyHelpers):
* dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):

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

7 years ago[Qt] Unreviewed weekend gardening, skip a failing test, update expected files.
ossy@webkit.org [Sun, 28 Oct 2012 07:06:59 +0000 (07:06 +0000)]
[Qt] Unreviewed weekend gardening, skip a failing test, update expected files.

* platform/qt-5.0-wk2/TestExpectations:
* platform/qt-5.0-wk2/compositing/tiling/crash-reparent-tiled-layer-expected.txt: Added.
* platform/qt-5.0-wk2/compositing/tiling/huge-layer-add-remove-child-expected.txt: Added.
* platform/qt-5.0-wk2/compositing/tiling/huge-layer-with-layer-children-expected.txt: Added.
* platform/qt-5.0-wk2/compositing/tiling/huge-layer-with-layer-children-resize-expected.txt: Added.
* platform/qt-5.0-wk2/http/tests/navigation/postredirect-basic-expected.txt: Added.
* platform/qt-5.0-wk2/http/tests/navigation/postredirect-goback1-expected.txt: Added.

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

7 years agoUnreviewed build fix for breakage to minimal bot caused by r132742.
ossy@webkit.org [Sun, 28 Oct 2012 06:47:02 +0000 (06:47 +0000)]
Unreviewed build fix for breakage to minimal bot caused by r132742.

Patch by Noam Rosenthal <noam.rosenthal@nokia.com> on 2012-10-27

* WebProcess/WebPage/LayerTreeHost.h:
(LayerTreeHost):
    Added appropriate ENABLE(REQUEST_ANIMATION_FRAME) flag.

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

7 years ago[Chromium] Find-in-page reports matches in hidden iframes
abarth@webkit.org [Sun, 28 Oct 2012 06:27:51 +0000 (06:27 +0000)]
[Chromium] Find-in-page reports matches in hidden iframes
https://bugs.webkit.org/show_bug.cgi?id=100604

Reviewed by Eric Seidel.

This is actually a regression caused by
http://trac.webkit.org/changeset/128784. This patch adds back some code
removed in WebFrameImpl::shouldScopeMatches in r128784.

This patch also introduces a test so that we don't make this mistake
again.

* src/WebFrameImpl.cpp:
(WebKit::WebFrameImpl::shouldScopeMatches):
* tests/WebFrameTest.cpp:
* tests/data/find_in_hidden_frame.html: Added.

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

7 years agoDFG::Array::Mode needs to be cleaned up
fpizlo@apple.com [Sun, 28 Oct 2012 06:13:23 +0000 (06:13 +0000)]
DFG::Array::Mode needs to be cleaned up
https://bugs.webkit.org/show_bug.cgi?id=100599

Reviewed by Oliver Hunt.

Turn the previous massive Array::Mode enum into a class that contains four
fields, the type, whether it's a JSArray, the level of speculation, and the
kind of conversion to perform.

No performance or behavioral change.

* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGArgumentsSimplificationPhase.cpp:
(JSC::DFG::ArgumentsSimplificationPhase::run):
* dfg/DFGArrayMode.cpp:
(JSC::DFG::ArrayMode::fromObserved):
(JSC::DFG::ArrayMode::refine):
(JSC::DFG::ArrayMode::alreadyChecked):
(JSC::DFG::arrayTypeToString):
(JSC::DFG::arrayClassToString):
(DFG):
(JSC::DFG::arraySpeculationToString):
(JSC::DFG::arrayConversionToString):
(JSC::DFG::ArrayMode::toString):
* dfg/DFGArrayMode.h:
(DFG):
(ArrayMode):
(JSC::DFG::ArrayMode::ArrayMode):
(JSC::DFG::ArrayMode::type):
(JSC::DFG::ArrayMode::arrayClass):
(JSC::DFG::ArrayMode::speculation):
(JSC::DFG::ArrayMode::conversion):
(JSC::DFG::ArrayMode::asWord):
(JSC::DFG::ArrayMode::fromWord):
(JSC::DFG::ArrayMode::withSpeculation):
(JSC::DFG::ArrayMode::usesButterfly):
(JSC::DFG::ArrayMode::isJSArray):
(JSC::DFG::ArrayMode::isInBounds):
(JSC::DFG::ArrayMode::mayStoreToHole):
(JSC::DFG::ArrayMode::isOutOfBounds):
(JSC::DFG::ArrayMode::isSlowPut):
(JSC::DFG::ArrayMode::canCSEStorage):
(JSC::DFG::ArrayMode::lengthNeedsStorage):
(JSC::DFG::ArrayMode::modeForPut):
(JSC::DFG::ArrayMode::isSpecific):
(JSC::DFG::ArrayMode::supportsLength):
(JSC::DFG::ArrayMode::benefitsFromStructureCheck):
(JSC::DFG::ArrayMode::doesConversion):
(JSC::DFG::ArrayMode::arrayModesThatPassFiltering):
(JSC::DFG::ArrayMode::operator==):
(JSC::DFG::ArrayMode::operator!=):
(JSC::DFG::ArrayMode::arrayModesWithIndexingShape):
(JSC::DFG::canCSEStorage):
(JSC::DFG::lengthNeedsStorage):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::getArrayMode):
(JSC::DFG::ByteCodeParser::getArrayModeAndEmitChecks):
(JSC::DFG::ByteCodeParser::handleIntrinsic):
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::getArrayLengthElimination):
(JSC::DFG::CSEPhase::checkArrayElimination):
(JSC::DFG::CSEPhase::getIndexedPropertyStorageLoadElimination):
(JSC::DFG::CSEPhase::performNodeCSE):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::checkArray):
(JSC::DFG::FixupPhase::blessArrayOperation):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::byValIsPure):
* dfg/DFGNode.h:
(JSC::DFG::Node::arrayMode):
(JSC::DFG::Node::setArrayMode):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::typedArrayDescriptor):
(JSC::DFG::SpeculativeJIT::jumpSlowForUnwantedArrayMode):
(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::arrayify):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):
(JSC::DFG::SpeculativeJIT::compileGetByValOnArguments):
(JSC::DFG::SpeculativeJIT::compileGetArgumentsLength):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):
(JSC::DFG::SpeculativeJIT::temporaryRegisterForPutByVal):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::putByValWillNeedExtraRegister):
(SpeculativeJIT):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

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

7 years ago All tests crash in WebKit1 mode
ap@apple.com [Sun, 28 Oct 2012 06:10:56 +0000 (06:10 +0000)]
    All tests crash in WebKit1 mode
        https://bugs.webkit.org/show_bug.cgi?id=100602

        Reviewed by Sam Weinig.

        * WebView/WebView.mm: (+[WebView _setLoadResourcesSerially:]): Resource load
        scheduler is created via a strategy, so strategies need to be initialized before
        using it.

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

7 years agoUnreviewed, rolling out r132740.
weinig@apple.com [Sun, 28 Oct 2012 05:49:45 +0000 (05:49 +0000)]
Unreviewed, rolling out r132740.
http://trac.webkit.org/changeset/132740
https://bugs.webkit.org/show_bug.cgi?id=100603

"Causing many crashes" (Requested by weinig on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-10-27

* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::DownloadProxy):
(WebKit::DownloadProxy::invalidate):
(WebKit):
* UIProcess/Downloads/DownloadProxy.h:
(DownloadProxy):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createDownloadProxy):
(WebKit::WebContext::downloadFinished):
(WebKit::WebContext::didReceiveMessage):
(WebKit::WebContext::didReceiveSyncMessage):
* UIProcess/WebContext.h:
(WebKit):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::didReceiveMessage):
(WebKit::WebPageProxy::didReceiveSyncMessage):
* UIProcess/WebPageProxy.h:
(CoreIPC):
(WebPageProxy):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveMessage):
(WebKit::WebProcessProxy::didReceiveSyncMessage):
* UIProcess/WebProcessProxy.h:
(WebProcessProxy):
* WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::~WebPageGroupProxy):
(WebKit):
(WebKit::WebPageGroupProxy::didReceiveMessage):
(WebKit::WebPageGroupProxy::WebPageGroupProxy):
* WebProcess/WebPage/WebPageGroupProxy.h:
(CoreIPC):
(WebPageGroupProxy):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveSyncMessage):
(WebKit::WebProcess::didReceiveMessage):

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

7 years agoCoordinated Graphics: Animation jerkiness when rAF is enabled
noam.rosenthal@nokia.com [Sun, 28 Oct 2012 01:32:58 +0000 (01:32 +0000)]
Coordinated Graphics: Animation jerkiness when rAF is enabled
https://bugs.webkit.org/show_bug.cgi?id=100536

Reviewed by Kenneth Rohde Christiansen.

Source/WebKit2:

The jerkiness comes from the fact that we schedule animations excessively; That's because
the previous patch broke requestAnimationFrame behavior during CSS animations, since the
frame returns right away instead of waiting till the previous frame is actually rendered.

This patch makes sure that when animations are scheduled, they're only serviced after the
UI process has actually painted the previous frame. We do so by sending a
RequestAnimationFrame message to the UI process, which responds with AnimationFrameReady
after the UI process paints.

New test: fast/animations/request-animation-frame-too-rapid.html
Tests that we don't receive an unreasonably high number of callbacks from
requestAnimationFrame (> 1000FPS).

* UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
(WebKit):
(WebKit::LayerTreeCoordinatorProxy::requestAnimationFrame):
(WebKit::LayerTreeCoordinatorProxy::animationFrameReady):
* UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:
(LayerTreeCoordinatorProxy):
* UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in:
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
(WebKit::LayerTreeRenderer::LayerTreeRenderer):
(WebKit::LayerTreeRenderer::paintToCurrentGLContext):
(WebKit):
(WebKit::LayerTreeRenderer::animationFrameReady):
(WebKit::LayerTreeRenderer::requestAnimationFrame):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
(LayerTreeRenderer):
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
(WebKit):
(WebKit::LayerTreeCoordinator::scheduleAnimation):
(WebKit::LayerTreeCoordinator::animationFrameReady):
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
(LayerTreeCoordinator):
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.messages.in:

LayoutTests:

Added a test to make sure we don't respond too eagerly to requestAnimationFrame.

* fast/animation/request-animation-frame-too-rapid-expected.txt: Added.
* fast/animation/request-animation-frame-too-rapid.html: Added.
* fast/animation/script-tests/request-animation-frame-too-rapid.js: Added.

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

7 years agoFix AVFoundation build.
andersca@apple.com [Sun, 28 Oct 2012 01:31:06 +0000 (01:31 +0000)]
Fix AVFoundation build.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::addKey):

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

7 years agoYet more MessageReceivering
weinig@apple.com [Sat, 27 Oct 2012 20:48:52 +0000 (20:48 +0000)]
Yet more MessageReceivering
https://bugs.webkit.org/show_bug.cgi?id=100325

Reviewed by Anders Carlsson.

Make DownloadProxy, WebPageProxy, and WebPageGroupProxy MessageReceivers.

* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::DownloadProxy):
(WebKit::DownloadProxy::invalidate):
(WebKit::DownloadProxy::didReceiveMessage):
(WebKit::DownloadProxy::didReceiveSyncMessage):
* UIProcess/Downloads/DownloadProxy.h:
(DownloadProxy):
Make a MessageReceiver.

* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::addMessageReceiver):
(WebKit::WebContext::removeMessageReceiver):
(WebKit::WebContext::didReceiveMessage):
(WebKit::WebContext::didReceiveSyncMessage):
* UIProcess/WebContext.h:
Add additional MessageReceiverMap forwards, and stop dealing with DownloadProxy explicitly.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::didReceiveMessage):
(WebKit::WebPageProxy::didReceiveSyncMessage):
* UIProcess/WebPageProxy.h:
Make a MessageReceiver, but keep sub objects using didReceiveMessage for now (like WebPage).

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::addMessageReceiver):
(WebKit::WebProcessProxy::removeMessageReceiver):
(WebKit::WebProcessProxy::didReceiveMessage):
(WebKit::WebProcessProxy::didReceiveSyncMessage):
* UIProcess/WebProcessProxy.h:
Give WebProcessProxy a MessageReceiverMap and all the appropriate forwarding methods.

* WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::WebPageGroupProxy):
(WebKit::WebPageGroupProxy::~WebPageGroupProxy):
(WebKit::WebPageGroupProxy::didReceiveMessage):
* WebProcess/WebPage/WebPageGroupProxy.h:
(WebKit::WebPageGroupProxy::isVisibleToHistoryClient):
(WebPageGroupProxy):
Make a MessageReceiver and register/unregister with the WebProcess.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveSyncMessage):
Remove extraneous return statement.
(WebKit::WebProcess::didReceiveMessage):
Stop handling WebPageGroupProxy special.

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

7 years agoTry to create AtomicString as 8 bit where possible
msaboff@apple.com [Sat, 27 Oct 2012 20:33:17 +0000 (20:33 +0000)]
Try to create AtomicString as 8 bit where possible
https://bugs.webkit.org/show_bug.cgi?id=100575

Reviewed by Oliver Hunt.

Added StringImpl::create8BitIfPossible() that first tries to create an 8 bit string.  If it finds a 16 bit character
during processing, it calls the standard create() method.  The assumption is that this will be used on mostly 8 bit
strings and ones that are shorter (in the tens of characters).  Changed AtomicString to use the new creation method
for UChar based construction.

* wtf/text/AtomicString.cpp:
(WTF::UCharBufferTranslator::translate):
* wtf/text/StringImpl.cpp:
(WTF::StringImpl::create8BitIfPossible):
* wtf/text/StringImpl.h:
(WTF::StringImpl::create8BitIfPossible):

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

7 years agoCompletely roll out https://bugs.webkit.org/show_bug.cgi?id=99251 (r131686)
weinig@apple.com [Sat, 27 Oct 2012 20:31:04 +0000 (20:31 +0000)]
Completely roll out https://bugs.webkit.org/show_bug.cgi?id=99251 (r131686)

It has caused too many crashes.

* UIProcess/API/mac/PageClientImpl.mm:
* UIProcess/API/mac/WKView.mm:
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/API/mac/WKViewPrivate.h:
* UIProcess/mac/CorrectionPanel.mm:
* UIProcess/mac/WKFullScreenWindowController.mm:
* UIProcess/mac/WebFullScreenManagerProxyMac.mm:

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

7 years agoASSERTION FAILED: m_next in LayoutState.cpp
dbarton@mathscribe.com [Sat, 27 Oct 2012 18:27:58 +0000 (18:27 +0000)]
ASSERTION FAILED: m_next in LayoutState.cpp
https://bugs.webkit.org/show_bug.cgi?id=99796

Reviewed by Eric Seidel.

Before RenderMathMLBlock::computeChildrenPreferredLogicalHeights calls child->layoutIfNeeded(),
it must ensure a layoutState exists. We disable it in any case, since we are just calculating
metrics here, and the final layout may well happen again.

No new tests. I don't know how to create an automated test for this. The crashes users are
seeing are flaky.

* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):

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

7 years agoString::fromUTF8() should take advantage of the ASCII check in convertUTF8ToUTF16()
msaboff@apple.com [Sat, 27 Oct 2012 18:25:56 +0000 (18:25 +0000)]
String::fromUTF8() should take advantage of the ASCII check in convertUTF8ToUTF16()
https://bugs.webkit.org/show_bug.cgi?id=100577

Reviewed by Oliver Hunt.

Passed is ASCII flag to convertUTF8ToUTF16() and if try, create an 8 bit string from the original arguments.

* wtf/text/WTFString.cpp:
(WTF::String::fromUTF8):

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

7 years ago[MathML] Improve some addChild methods
dbarton@mathscribe.com [Sat, 27 Oct 2012 18:18:34 +0000 (18:18 +0000)]
[MathML] Improve some addChild methods
https://bugs.webkit.org/show_bug.cgi?id=98791

Reviewed by Eric Seidel.

Source/WebCore:

MathML addChild methods need to handle any anonymous renderers correctly. Actually, most MathML elements have a fixed
number of children, so conformant javascript won't be doing arbitrary addChild and removeChild calls. However, we don't
want any assertions to fail, and we do want addChild to work correctly when beforeChild == 0, to build up the original
renderer, and then replaceChild at least should work correctly after that. We therefore clean up these routines before
giving them to the chromium fuzzers.

It's best to build the anonymous wrappers just once initially if possible, so empty wrappers aren't left in the render
tree after later removeChild calls.

Test: mathml/presentation/dynamic.html added for mfrac and msqrt. There are already tests for dynamically changing
msub/sup elements, in mathml/presentation/m*-changed.xhtml.

* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::addChild):
    - The two wrappers are built initially. Also, the old RenderMathMLBlock::addChild(row, beforeChild); doesn't really
      work because beforeChild is buried inside a wrapper. This new routine allows the numerator and denominator to be
      added initially, and then later replaced with replaceChild. It's not clear whether e.g. a plain removeChild of a
      numerator should move the remaining child from the denominator to the numerator or not, so we ignore that for now.
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::addChild):
    - A bit of bullet-proofing for the fuzzers.
* rendering/mathml/RenderMathMLSubSup.cpp:
(WebCore::RenderMathMLSubSup::addChild):
    - Like RenderMathMLFraction::addChild, we create the wrappers once initially, and then fill them dynamically.

LayoutTests:

* mathml/presentation/dynamic-expected.html: Added.
* mathml/presentation/dynamic.html: Added.

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

7 years agobuildHTTPHeaders() should use a StringBuilder instead of a Vector<UChar>
msaboff@apple.com [Sat, 27 Oct 2012 18:17:30 +0000 (18:17 +0000)]
buildHTTPHeaders() should use a StringBuilder instead of a Vector<UChar>
https://bugs.webkit.org/show_bug.cgi?id=100580

Reviewed by Oliver Hunt.

Replaced Vector<UChar> with StringBuilder in the HTTP header construction function buildHTTPHeaders.
This eliminates 8 -> 16 bit up conversion of the strings involved.

* WebProcess/Plugins/PluginView.cpp:
(WebKit::buildHTTPHeaders):

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

7 years agoUnreviewed gardening.
kbalazs@webkit.org [Sat, 27 Oct 2012 18:16:01 +0000 (18:16 +0000)]
Unreviewed gardening.

Removing my garbage, now from svn.

* platform/qt-5.0-wk2/fast/images/png-suite/test-expected.png: Removed.

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

7 years agoUnreviewed gardening.
kbalazs@webkit.org [Sat, 27 Oct 2012 17:22:06 +0000 (17:22 +0000)]
Unreviewed gardening.

Added one more png to a wrong path in my previous commit, removing it and hoping that
the directory will not stay in svn.

* platform/qt-5.0-wk2/fast/images/png-suite/test-expected.png/test-expected.png: Removed.

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

7 years agoBackground images can incorrectly repeat with sub-pixel layout
leviw@chromium.org [Sat, 27 Oct 2012 17:18:12 +0000 (17:18 +0000)]
Background images can incorrectly repeat with sub-pixel layout
https://bugs.webkit.org/show_bug.cgi?id=94622

Reviewed by Emil A Eklund.

Source/WebCore:

Attempting to better match author expectations when painting tiled background images. When under
the effects of zoom with sub-pixel layout enabled, the drawn size of a rendered element can
differ depending on its location. This change looks at the size of the scaled tiled background
image size, and either ceils or floors that value depending on if tiling that value will
result in us being one pixel or less short of covering the background size. This is a heuristic,
as sub-pixel/zooming isn't specced.

Test: fast/sub-pixel/scaled-background-image.html

* rendering/RenderBoxModelObject.cpp:
(WebCore::applySubPixelHeuristicForTileSize):
(WebCore):
(WebCore::RenderBoxModelObject::calculateFillTileSize):

LayoutTests:

* fast/sub-pixel/scaled-background-image-expected.html: Added.
* fast/sub-pixel/scaled-background-image.html: Added.

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

7 years agoUnreviewed, rolling out r132725.
loislo@chromium.org [Sat, 27 Oct 2012 17:15:47 +0000 (17:15 +0000)]
Unreviewed, rolling out r132725.
http://trac.webkit.org/changeset/132725
https://bugs.webkit.org/show_bug.cgi?id=100596

it broke linking on chromium debug bots (Requested by loislo
on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-10-27

* inspector/InspectorMemoryAgent.cpp:
(WebCore::addPlatformComponentsInfo):
(WebCore):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* platform/MemoryUsageSupport.cpp:
(WebCore::MemoryUsageSupport::memoryUsageByComponents):
* platform/MemoryUsageSupport.h:
(ComponentInfo):
(WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
(MemoryUsageSupport):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore):
* platform/PlatformMemoryInstrumentation.h:
(PlatformMemoryTypes):
* platform/chromium/MemoryUsageSupportChromium.cpp:
(WebCore::MemoryUsageSupport::memoryUsageByComponents):
* platform/qt/MemoryUsageSupportQt.cpp:
(WebCore::MemoryUsageSupport::memoryUsageByComponents):

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

7 years agoREAL_PLATFORM_NAME build setting is no longer needed
mitz@apple.com [Sat, 27 Oct 2012 16:14:53 +0000 (16:14 +0000)]
REAL_PLATFORM_NAME build setting is no longer needed
https://bugs.webkit.org/show_bug.cgi?id=100587

Reviewed by Mark Rowe.

Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references
to PLATFORM_NAME.

Source/JavaScriptCore:

* Configurations/Base.xcconfig:
* Configurations/CompilerVersion.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/JSC.xcconfig:
* Configurations/JavaScriptCore.xcconfig:
* Configurations/ToolExecutable.xcconfig:

Source/ThirdParty:

* gtest/xcode/Config/CompilerVersion.xcconfig:
* gtest/xcode/Config/General.xcconfig:

Source/ThirdParty/ANGLE:

* Configurations/Base.xcconfig:
* Configurations/CompilerVersion.xcconfig:

Source/WebCore:

* Configurations/Base.xcconfig:
* Configurations/CompilerVersion.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
* Configurations/WebCore.xcconfig:

Source/WebKit/mac:

* Configurations/Base.xcconfig:
* Configurations/CompilerVersion.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
* Configurations/WebKit.xcconfig:

Source/WebKit2:

* Configurations/Base.xcconfig:
* Configurations/BaseTarget.xcconfig:
* Configurations/CompilerVersion.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/WebKit2.xcconfig:

Source/WTF:

* Configurations/Base.xcconfig:
* Configurations/CompilerVersion.xcconfig:
* Configurations/DebugRelease.xcconfig:

Tools:

* DumpRenderTree/mac/Configurations/Base.xcconfig:
* DumpRenderTree/mac/Configurations/CompilerVersion.xcconfig:
* DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
* MiniBrowser/Configurations/Base.xcconfig:
* MiniBrowser/Configurations/CompilerVersion.xcconfig:
* TestWebKitAPI/Configurations/Base.xcconfig:
* TestWebKitAPI/Configurations/CompilerVersion.xcconfig:
* WebKitTestRunner/Configurations/Base.xcconfig:
* WebKitTestRunner/Configurations/CompilerVersion.xcconfig:
* WebKitTestRunner/Configurations/DebugRelease.xcconfig:

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

7 years agoPixel tests need rebaseline https://bugs.webkit.org/show_bug.cgi?id=99323
kbalazs@webkit.org [Sat, 27 Oct 2012 16:07:03 +0000 (16:07 +0000)]
Pixel tests need rebaseline https://bugs.webkit.org/show_bug.cgi?id=99323

Unreviewed gardening.

Reland Qt-WebKit2 new expectations part 2 with fixed paths.

* platform/qt-5.0-wk2/fullscreen/full-screen-iframe-zIndex-expected.png: Added.
* platform/qt-5.0-wk2/fullscreen/full-screen-remove-ancestor-after-expected.png: Added.
* platform/qt-5.0-wk2/fullscreen/full-screen-stacking-context-expected.png: Added.
* platform/qt-5.0-wk2/fullscreen/full-screen-zIndex-after-expected.png: Added.
* platform/qt-5.0-wk2/fullscreen/full-screen-zIndex-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGLengthList-appendItem-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGLengthList-basics-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGLengthList-getItem-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGLengthList-initialize-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGLengthList-insertItemBefore-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGLengthList-removeItem-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGLengthList-replaceItem-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGLengthList-xml-dom-modifications-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGLocatable-getCTM-svg-root-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGNumberList-basics-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGPathSegList-appendItem-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGPathSegList-clear-and-initialize-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGPathSegList-insertItemBefore-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGPathSegList-removeItem-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGPathSegList-replaceItem-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGPointList-basics-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGStringList-basics-expected.png: Added.
* platform/qt-5.0-wk2/svg/dom/SVGTransformList-basics-expected.png: Added.
* platform/qt-5.0-wk2/svg/filters/feImage-animated-transform-on-target-rect-expected.png: Added.
* platform/qt-5.0-wk2/svg/repaint/image-href-change-expected.png: Added.
* platform/qt-5.0-wk2/svg/repaint/image-with-clip-path-expected.png: Added.

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

7 years agoPixel tests need rebaseline https://bugs.webkit.org/show_bug.cgi?id=99323
kbalazs@webkit.org [Sat, 27 Oct 2012 16:05:47 +0000 (16:05 +0000)]
Pixel tests need rebaseline https://bugs.webkit.org/show_bug.cgi?id=99323

Unreviewed gardening.

Reland Qt-WebKit2 new expectations part 1 with fixed paths.

* platform/qt-5.0-wk2/css3/filters/filter-empty-element-crash-expected.png: Added.
* platform/qt-5.0-wk2/css3/filters/multiple-filters-invalidation-expected.png: Added.
* platform/qt-5.0-wk2/css3/flexbox/repaint-expected.png: Added.
* platform/qt-5.0-wk2/css3/flexbox/repaint-rtl-column-expected.png: Added.
* platform/qt-5.0-wk2/fast/borders/border-shadow-large-radius-expected.png: Added.
* platform/qt-5.0-wk2/fast/borders/outline-alpha-block-expected.png: Added.
* platform/qt-5.0-wk2/fast/borders/outline-alpha-inline-expected.png: Added.
* platform/qt-5.0-wk2/fast/box-shadow/box-shadow-clipped-slices-expected.png: Added.
* platform/qt-5.0-wk2/fast/box-shadow/no-blur-multiple-offsets-expected.png: Added.
* platform/qt-5.0-wk2/fast/canvas/canvas-composite-fill-repaint-expected.png: Added.
* platform/qt-5.0-wk2/fast/canvas/canvas-composite-transformclip-expected.png: Added.
* platform/qt-5.0-wk2/fast/canvas/canvas-empty-image-pattern-expected.png: Added.
* platform/qt-5.0-wk2/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png: Added.
* platform/qt-5.0-wk2/fast/canvas/canvas-resize-after-paint-without-layout-expected.png: Added.
* platform/qt-5.0-wk2/fast/canvas/canvas-resize-reset-expected.png: Added.
* platform/qt-5.0-wk2/fast/canvas/canvas-transforms-during-path-expected.png: Added.
* platform/qt-5.0-wk2/fast/canvas/gradient-add-second-start-end-stop-expected.png: Added.
* platform/qt-5.0-wk2/fast/canvas/image-pattern-rotate-expected.png: Added.
* platform/qt-5.0-wk2/fast/canvas/toDataURL-alpha-expected.png: Added.
* platform/qt-5.0-wk2/fast/css/border-radius-non-negative-expected.png: Added.
* platform/qt-5.0-wk2/fast/css/linear-gradient-currentcolor-expected.png: Added.
* platform/qt-5.0-wk2/fast/forms/datalist/input-appearance-range-with-datalist-expected.png: Added.
* platform/qt-5.0-wk2/fast/forms/datalist/input-appearance-range-with-datalist-zoomed-expected.png: Added.
* platform/qt-5.0-wk2/fast/forms/datalist/input-appearance-range-with-padding-with-datalist-expected.png: Added.
* platform/qt-5.0-wk2/fast/forms/datalist/input-appearance-range-with-transform-expected.png: Added.
* platform/qt-5.0-wk2/fast/forms/file/file-input-pressed-state-expected.png: Added.
* platform/qt-5.0-wk2/fast/gradients/css3-color-stop-units-expected.png: Added.
* platform/qt-5.0-wk2/fast/gradients/css3-color-stops-expected.png: Added.
* platform/qt-5.0-wk2/fast/gradients/css3-linear-angle-gradients-expected.png: Added.
* platform/qt-5.0-wk2/fast/gradients/css3-linear-right-angle-gradients-expected.png: Added.
* platform/qt-5.0-wk2/fast/gradients/css3-radial-gradients-expected.png: Added.
* platform/qt-5.0-wk2/fast/gradients/css3-radial-gradients2-expected.png: Added.
* platform/qt-5.0-wk2/fast/gradients/css3-radial-gradients3-expected.png: Added.
* platform/qt-5.0-wk2/fast/gradients/css3-repeating-linear-gradients-expected.png: Added.
* platform/qt-5.0-wk2/fast/gradients/css3-repeating-linear-gradients2-expected.png: Added.
* platform/qt-5.0-wk2/fast/gradients/css3-repeating-radial-gradients-expected.png: Added.
* platform/qt-5.0-wk2/fast/gradients/gradient-after-transparent-border-expected.png: Added.
* platform/qt-5.0-wk2/fast/images/jpeg-with-color-profile-expected.png: Added.
* platform/qt-5.0-wk2/fast/images/paint-subrect-expected.png: Added.
* platform/qt-5.0-wk2/fast/images/paint-subrect-grid-expected.png: Added.
* platform/qt-5.0-wk2/fast/images/png-suite/test-expected.png/test-expected.png: Added.
* platform/qt-5.0-wk2/fast/images/png-with-color-profile-expected.png: Added.
* platform/qt-5.0-wk2/fast/images/rgb-jpeg-with-adobe-marker-only-expected.png: Added.
* platform/qt-5.0-wk2/fast/images/rgb-png-with-cmyk-color-profile-expected.png: Added.
* platform/qt-5.0-wk2/fast/images/ycbcr-with-cmyk-color-profile-expected.png: Added.
* platform/qt-5.0-wk2/fast/layers/scroll-with-transform-composited-layer-expected.png: Added.
* platform/qt-5.0-wk2/fast/layers/scroll-with-transform-layer-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/absolute-position-changed-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/fixed-and-absolute-position-scrolled-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/fixed-position-transparency-with-overflow-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/nested-iframe-scroll-inner-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/nested-iframe-scroll-outer-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/overflow-auto-in-overflow-auto-scrolled-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/overflow-hide-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/overflow-scroll-in-overflow-scroll-scrolled-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/overflow-show-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/scroll-absolute-layer-with-reflection-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/scroll-fixed-layer-with-no-visible-content-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/scroll-fixed-layer-with-reflection-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/scroll-fixed-layer-with-transformed-parent-layer-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/scroll-fixed-reflected-layer-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/scroll-in-clipped-layer-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/scroll-in-fixed-layer-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/scroll-in-transformed-layer-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/scroll-inside-table-cell-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/scroll-relative-table-inside-table-cell-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/scroll-with-transformed-parent-layer-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/table-overflow-auto-in-overflow-auto-scrolled-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/table-overflow-hidden-in-overflow-hidden-scrolled-expected.png: Added.
* platform/qt-5.0-wk2/fast/repaint/table-overflow-scroll-in-overflow-scroll-scrolled-expected.png: Added.
* platform/qt-5.0-wk2/fast/replaced/outline-replaced-elements-expected.png: Added.
* platform/qt-5.0-wk2/fast/scrolling/scrollbar-tickmarks-styled-expected.png: Added.
* platform/qt-5.0-wk2/fast/table/border-collapsing/collapsed-border-with-col-colgroup-span-expected.png: Added.
* platform/qt-5.0-wk2/fast/table/table-row-focus-ring-paint-expected.png: Added.

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

7 years agoRemove internals shouldDisplayTrackKind methods; these are also on internals.settings
tony@chromium.org [Sat, 27 Oct 2012 15:13:49 +0000 (15:13 +0000)]
Remove internals shouldDisplayTrackKind methods; these are also on internals.settings
https://bugs.webkit.org/show_bug.cgi?id=100564

Reviewed by Adam Barth.

Source/WebCore:

Remove duplicate methods from internals that was just forwarding on the call to internals.settings.
Also fix a bug where we didn't reset these settings properly.

No new tests, this is covered by existing media/track tests.

* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Properly save display track settings.
(WebCore::InternalSettings::Backup::restoreTo): Restore display track settings.
* testing/InternalSettings.h:
* testing/InternalSettings.idl: Use [Conditional=VIDEO_TRACK].
* testing/Internals.cpp: Remove code.
* testing/Internals.h: Remove code.
* testing/Internals.idl: Remove code.

LayoutTests:

Update tests to use the internals.settings method.

* media/track/track-language-preference-expected.txt:
* media/track/track-language-preference.html:
* media/track/track-prefer-captions-expected.txt:
* media/track/track-prefer-captions.html:

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

7 years agoWeb Inspector: instrument chromium GlyphCache. It keeps ~2mb.
loislo@chromium.org [Sat, 27 Oct 2012 15:11:30 +0000 (15:11 +0000)]
Web Inspector: instrument chromium GlyphCache. It keeps ~2mb.
https://bugs.webkit.org/show_bug.cgi?id=100515

Reviewed by Yury Semikhatsky.

I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.

* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* platform/MemoryUsageSupport.cpp:
(WebCore::MemoryUsageSupport::reportMemoryUsage):
* platform/MemoryUsageSupport.h:
(MemoryUsageSupport):
* platform/PlatformMemoryInstrumentation.cpp:
(WebCore):
* platform/PlatformMemoryInstrumentation.h:
(PlatformMemoryTypes):
* platform/chromium/MemoryUsageSupportChromium.cpp:
(reportMemoryUsage):
(WebCore::reportGlyphCache):
(WebCore):
(WebCore::MemoryUsageSupport::reportMemoryUsage):
* platform/qt/MemoryUsageSupportQt.cpp:
(WebCore::MemoryUsageSupport::reportMemoryUsage):

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

7 years agoPrevent NaN offset values in ElementTimeControl.
pdr@google.com [Sat, 27 Oct 2012 07:01:34 +0000 (07:01 +0000)]
Prevent NaN offset values in ElementTimeControl.
https://bugs.webkit.org/show_bug.cgi?id=100322

Reviewed by Abhishek Arya.

Source/WebCore:

NaN values can cause ElementTimeControl to go back in time!
If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
because NaN values are not properly sorted. NaN SMILTime values
should not be allowed at all, so this patch adds a check for them in
ElementTimeControl's setters.

This patch also adds preventative asserts to catch if SMILTime is ever
initialized with NaN, or if addEndTime/addBeginTime are ever called
with NaN values.

Test: svg/custom/elementTimeControl-nan-crash.html

* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::beginElementAt):
(WebCore::SVGAnimationElement::endElementAt):
* svg/animation/SMILTime.h:
(WebCore::SMILTime::SMILTime):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::addBeginTime):
(WebCore::SVGSMILElement::addEndTime):

LayoutTests:

* svg/custom/elementTimeControl-nan-crash-expected.txt: Added.
* svg/custom/elementTimeControl-nan-crash.html: Added.

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

7 years ago[Qt] Unreviewed weekend gardening, skip new failing tests.
ossy@webkit.org [Sat, 27 Oct 2012 06:55:17 +0000 (06:55 +0000)]
[Qt] Unreviewed weekend gardening, skip new failing tests.

* platform/qt/TestExpectations:

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

7 years ago[BlackBerry] Browser prematurely sends wrong credentials
charles.wei@torchmobile.com.cn [Sat, 27 Oct 2012 06:00:43 +0000 (06:00 +0000)]
[BlackBerry] Browser prematurely sends wrong credentials
https://bugs.webkit.org/show_bug.cgi?id=100585

Reviewed by Yong Li.

Manually revert the patch for bug 96362, which causes regressions and the right patch has been
submitted with patch for bug 100448. Since the auto-revert fails, we use this patch to manually
revert.

No new tests. The test is coverted by patch for 100448.

* platform/network/blackberry/CredentialBackingStore.cpp:
* platform/network/blackberry/CredentialBackingStore.h:
(CredentialBackingStore):
* platform/network/blackberry/NetworkManager.cpp:
(WebCore::NetworkManager::startJob):

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

7 years agoHave NetworkProcess manage resource load scheduling.
beidson@apple.com [Sat, 27 Oct 2012 05:59:24 +0000 (05:59 +0000)]
Have NetworkProcess manage resource load scheduling.
https://bugs.webkit.org/show_bug.cgi?id=100479

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Down in WebCore we need to virtualize a handful of ResourceLoadScheduler methods
to be overridden by WebKit's implementation.

No new tests (No change in Core behavior).

* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:

* loader/ResourceLoadScheduler.cpp:
(WebCore::resourceLoadScheduler): Gracefully handle LoaderStrategies wanting to return the default scheduler.
(WebCore::ResourceLoadScheduler::scheduleLoad): Call notifyDidScheduleResourceRequest.
(WebCore::ResourceLoadScheduler::notifyDidScheduleResourceRequest): Moved InspectorInstrumentation call
  here so derived classes can do it indirectly.
(WebCore::ResourceLoadScheduler::startResourceLoader): To allow derived classes the ability to call
  ResourceLoader::start() which only ResourceLoadScheduler can do.

* loader/ResourceLoadScheduler.h:
(ResourceLoadScheduler): Virtualize some core public methods so they can be overridden.
(WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Make virtual.
(WebCore::ResourceLoadScheduler::isSuspendingPendingRequests): Make private as it's internal only.

* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::setIdentifier): Add this setter so outside clients can manually change the identifier.

* loader/ResourceLoader.h:
(WebCore::ResourceLoader::identifier): Change identifier to explicitly be uint64_t.
(WebCore::ResourceLoader::request): Make public.
(ResourceLoader):

Source/WebKit2:

Implement a ResourceLoadScheduler that models the same behavior as WebCore::ResourceLoadScheduler.

The WebProcess scheduler acts as a marshall to the NetworkProcess scheduler via CoreIPC messaging.

Besides MainResourceLoads which are started directly in the WebProcess, all other loads are now
started only when the NetworkProcess tells them to start.

Build-system and messaging related stuff:
* DerivedSources.make:
* Platform/CoreIPC/MessageID.h:
* WebKit2.xcodeproj/project.pbxproj:

Add a new Network logging channel.
* Platform/Logging.cpp:
(WebKit::getChannelFromName):
* Platform/Logging.h:

Modeled after ResourceLoadScheduler::HostInformation but more specifically geared towards what NetworkProcess needs to track:
* NetworkProcess/HostRecord.cpp: Added.
(WebKit::HostRecord::HostRecord):
(WebKit::HostRecord::~HostRecord):
(WebKit::HostRecord::schedule):
(WebKit::HostRecord::addLoadInProgress):
(WebKit::HostRecord::remove):
(WebKit::HostRecord::hasRequests):
(WebKit::HostRecord::limitRequests):
* NetworkProcess/HostRecord.h:
(WebKit::HostRecord::name):
(WebKit::HostRecord::requestsPending):

Gateway messaging from the WebResourceLoadScheduler to the NetworkResourceLoadScheduler:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::registerObserver):
(WebKit::NetworkConnectionToWebProcess::unregisterObserver):
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::scheduleNetworkRequest):
(WebKit::NetworkConnectionToWebProcess::addLoadInProgress):
(WebKit::NetworkConnectionToWebProcess::removeLoadIdentifier):
(WebKit::NetworkConnectionToWebProcess::crossOriginRedirectReceived):
(WebKit::NetworkConnectionToWebProcess::servePendingRequests):
(WebKit::NetworkConnectionToWebProcess::suspendPendingRequests):
(WebKit::NetworkConnectionToWebProcess::resumePendingRequests):
(WebKit::NetworkConnectionToWebProcess::setSerialLoadingEnabled):
* NetworkProcess/NetworkConnectionToWebProcess.h:
(NetworkConnectionToWebProcessObserver): Add an observer interface so arbitrary objects can be notified if
  a Network->WebProcess connection closes.
(WebKit::NetworkConnectionToWebProcessObserver::~NetworkConnectionToWebProcessObserver):
(WebKit::NetworkConnectionToWebProcess::isSerialLoadingEnabled):
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:

Represents a request,  ResourceLoadIdentifier, and connection that all correspond to the same pending NetworkLoad:
* NetworkProcess/NetworkRequest.cpp:
(WebKit::NetworkRequest::NetworkRequest):
(WebKit::NetworkRequest::~NetworkRequest):
(WebKit::NetworkRequest::connectionToWebProcessDidClose): Using the NetworkConnectionToWebProcessObserver interface,
  if the connection closes then clear out the connection pointer for this request that is now irrelevant.
* NetworkProcess/NetworkRequest.h:
(WebKit::NetworkRequest::create):
(WebKit::NetworkRequest::identifier):
(WebKit::NetworkRequest::connectionToWebProcess):

Manages connection-per-host scheduling with the same structure as WebCore::ResourceLoadScheduling but also with IPC:
* NetworkProcess/NetworkResourceLoadScheduler.cpp: Added.
(WebKit::NetworkResourceLoadScheduler::NetworkResourceLoadScheduler):
(WebKit::NetworkResourceLoadScheduler::scheduleServePendingRequests):
(WebKit::NetworkResourceLoadScheduler::requestTimerFired):
(WebKit::NetworkResourceLoadScheduler::scheduleNetworkRequest):
(WebKit::NetworkResourceLoadScheduler::addLoadInProgress):
(WebKit::NetworkResourceLoadScheduler::hostForURL):
(WebKit::NetworkResourceLoadScheduler::removeLoadIdentifier):
(WebKit::NetworkResourceLoadScheduler::crossOriginRedirectReceived):
(WebKit::NetworkResourceLoadScheduler::servePendingRequests):
(WebKit::NetworkResourceLoadScheduler::servePendingRequestsForHost): Serve as many requests for the host as we should,
  skipping the NetworkRequests who have lost their connection to their WebProcess.
(WebKit::NetworkResourceLoadScheduler::suspendPendingRequests):
(WebKit::NetworkResourceLoadScheduler::resumePendingRequests):
* NetworkProcess/NetworkResourceLoadScheduler.h: Added.
* NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm: Added.
(WebKit::NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost):

* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::networkResourceLoadScheduler): Add a scheduler global to the NetworkProcess.

A thin derivation of WebCore::ResourceLoadScheduler, most of what WebResourceLoadScheduler does is handle IPC to the NetworkProcess:
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::WebResourceLoadScheduler):
(WebKit::WebResourceLoadScheduler::scheduleSubresourceLoad):
(WebKit::WebResourceLoadScheduler::schedulePluginStreamLoad):
(WebKit::WebResourceLoadScheduler::scheduleLoad):
(WebKit::WebResourceLoadScheduler::addMainResourceLoad):
(WebKit::WebResourceLoadScheduler::remove):
(WebKit::WebResourceLoadScheduler::crossOriginRedirectReceived):
(WebKit::WebResourceLoadScheduler::servePendingRequests):
(WebKit::WebResourceLoadScheduler::suspendPendingRequests):
(WebKit::WebResourceLoadScheduler::resumePendingRequests):
(WebKit::WebResourceLoadScheduler::setSerialLoadingEnabled):
(WebKit::WebResourceLoadScheduler::startResourceLoad):
* WebProcess/Network/WebResourceLoadScheduler.h:

Add the ability for the NetworkProcess to message back to the WebProcess telling it to start a resource load:
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didReceiveSyncMessage):
(WebKit::NetworkProcessConnection::startResourceLoad):
* WebProcess/Network/NetworkProcessConnection.h:
* WebProcess/Network/NetworkProcessConnection.messages.in:

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::resourceLoadScheduler): Only return the WebResourceLoadScheduler if NetworkProcess is enabled.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureNetworkProcessConnection): Actually keep the NetworkProcessConnection around in a member variable.
(WebKit::WebProcess::networkConnection):
* WebProcess/WebProcess.h:
(WebKit::WebProcess::usesNetworkProcess): Expose this for platform strategies sake.

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

7 years agoImplement AudioBufferSourceNode .loopStart and .loopEnd attributes
crogers@google.com [Sat, 27 Oct 2012 02:10:33 +0000 (02:10 +0000)]
Implement AudioBufferSourceNode .loopStart and .loopEnd attributes
https://bugs.webkit.org/show_bug.cgi?id=100170

Reviewed by Kenneth Russell.

Source/WebCore:

AudioBufferSourceNode currently only supports looping of an entire AudioBuffer.
Sample-based synthesis is a very common technique which requires "internal" loop-points.
For example, the first part of the sample data might represent the attack portion of
a synthesized instrument, which then enters a loop portion.

Tests: webaudio/audiobuffersource-loop-comprehensive.html
       webaudio/audiobuffersource-loop-points.html

* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::process):
(WebCore::AudioBufferSourceNode::renderFromBuffer):
* Modules/webaudio/AudioBufferSourceNode.h:
(AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::loopStart):
(WebCore::AudioBufferSourceNode::loopEnd):
(WebCore::AudioBufferSourceNode::setLoopStart):
(WebCore::AudioBufferSourceNode::setLoopEnd):
* Modules/webaudio/AudioBufferSourceNode.idl:

LayoutTests:

* webaudio/audiobuffersource-loop-comprehensive-expected.txt: Added.
* webaudio/audiobuffersource-loop-comprehensive.html: Added.
* webaudio/audiobuffersource-loop-points-expected.wav: Added.
* webaudio/audiobuffersource-loop-points.html: Added.

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

7 years ago[Chromium] Test expectation update.
tkent@chromium.org [Sat, 27 Oct 2012 02:07:19 +0000 (02:07 +0000)]
[Chromium] Test expectation update.

Rebaseline for recent forms changes.

* platform/chromium-linux/platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png:
* platform/chromium-mac-lion/platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png:
* platform/chromium-mac-snowleopard/platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png:
* platform/chromium-win/platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-step-expected.png:
* platform/chromium-win/platform/chromium/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png:
* platform/chromium-win/platform/chromium/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png:
* platform/chromium/TestExpectations:

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

7 years ago[Chromium] Convert Chromium template string to an LDML date format
tkent@chromium.org [Sat, 27 Oct 2012 01:53:38 +0000 (01:53 +0000)]
[Chromium] Convert Chromium template string to an LDML date format
https://bugs.webkit.org/show_bug.cgi?id=100128

Reviewed by Tony Chang.

* src/LocalizedStrings.cpp:
(WebCore): Include WebCore/platform/text/DateTimeFormat.h.
(WebCore::weekFormatInLDML):
Replace $1 with yyyy, $2 with ww, and quote other parts.

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

7 years agoAdd a microbenchmark for Hindi (complex-text) line-layout
eric@webkit.org [Sat, 27 Oct 2012 01:37:12 +0000 (01:37 +0000)]
Add a microbenchmark for Hindi (complex-text) line-layout
https://bugs.webkit.org/show_bug.cgi?id=100024

Reviewed by Ryosuke Niwa.

I wrote this to make sure that we don't regress line-breaking performance
for the complex-text codepath. This test has shown me that TOT is
already 5% slower than Safari 6.0.1 here. :(

* Layout/hindi-line-layout.html: Added.

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

7 years agodragover's default action should prevent drop for file drags
dcheng@chromium.org [Sat, 27 Oct 2012 01:31:08 +0000 (01:31 +0000)]
dragover's default action should prevent drop for file drags
https://bugs.webkit.org/show_bug.cgi?id=79173

Reviewed by Tony Chang.

Source/WebCore:

During a file drag, we need to keep track of whether or not the document has cancelled the
dragover action. We should only send a drop event if the dragover event was cancelled; this
matches the behavior of the spec, as well as IE, Gecko, and Opera. The relevant sections
from the spec are the sections pertaining to dragover and drop events at:
http://www.whatwg.org/specs/web-apps/current-work/#drag-and-drop-processing-model

Test: fast/events/only-valid-drop-targets-receive-file-drop.html

* page/DragController.cpp:
(WebCore::DragController::performDrag):
(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::DragController::tryDocumentDrag):
* page/DragController.h:
(DragController): Cleanup to repurpose a variable that doesn't need to be a member anymore
                  and remove the corresponding getter/setter.

LayoutTests:

* fast/dom/shadow/drop-event-in-shadow.html:
    Added dragover handler as required by the HTML specification.
* fast/events/input-element-display-none-in-dragleave-crash.html:
    Added dragover handler as required by the HTML specification.
* fast/events/only-valid-drop-targets-receive-file-drop-expected.txt: Added.
* fast/events/only-valid-drop-targets-receive-file-drop.html: Added.
* http/tests/security/clipboard/clipboard-file-access.html:
    Added dragover handler as required by the HTML specification.

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

7 years agoFix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat
thakis@chromium.org [Sat, 27 Oct 2012 01:20:29 +0000 (01:20 +0000)]
Fix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat
https://bugs.webkit.org/show_bug.cgi?id=94756

Reviewed by Dirk Schulze.

The function has an early exit for !simpleDuration.value(), so
!simpleDuration.value() always is 0 when passed as second parameter to
fmod(), which means fmod() always returns NaN, which always evaluates
to true. Simplify the code by removing that explicit check.

No observable behavior change.

Covered by existing svg tests.

* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):

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

7 years agoCrash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived...
beidson@apple.com [Sat, 27 Oct 2012 01:01:16 +0000 (01:01 +0000)]
Crash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived + 78
https://bugs.webkit.org/show_bug.cgi?id=100554

Reviewed by Alexey Proskuryakov.

For now, just have WebPlatformStrategies return the same default resourceLoadScheduler that
WebCore knows about.

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::resourceLoadScheduler):

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

7 years agoSource/WebKit2: Crash when making NPRuntime calls with a null NPP pointer
andersca@apple.com [Sat, 27 Oct 2012 00:17:09 +0000 (00:17 +0000)]
Source/WebKit2: Crash when making NPRuntime calls with a null NPP pointer
https://bugs.webkit.org/show_bug.cgi?id=100569
<rdar://problem/11726426>
<rdar://problem/12352836>

Reviewed by Darin Adler.

Finally bite the bullet and remove the assertion from NetscapePlugin::fromNPP. The WebKit1 equivalent of this
function used to return the plug-in currently being initialized in NPP_New, but we've never done that in WebKit2
and it has never been necessary. The crashes fixed here are not from calls underneath NPP_New so fixing it wouldn't
do us any good anyway.

Also, make the PluginDestructionProtector handle a null plug-in gracefully.

* WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
(WebKit::PluginDestructionProtector::PluginDestructionProtector):
(PluginDestructionProtector):
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::fromNPP):

Tools: Crash when making NPRuntime calls with a null NPP pointer
https://bugs.webkit.org/show_bug.cgi?id=100569

Reviewed by Darin Adler.

Add new NPRuntimeCallsWithNullNPP plug-in test.

* DumpRenderTree/DumpRenderTree.gypi:
* DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
* DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:
(PluginTest::NPN_ReleaseVariantValue):
(PluginTest::netscapeFuncs):
* DumpRenderTree/TestNetscapePlugIn/PluginTest.h:
(PluginTest):
* DumpRenderTree/TestNetscapePlugIn/Tests/NPRuntimeCallsWithNullNPP.cpp: Added.
(NPRuntimeCallsWithNullNPP):
(NPRuntimeCallsWithNullNPP::NPRuntimeCallsWithNullNPP):
(NPRuntimeCallsWithNullNPP::NPP_New):
* DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.vcproj:
* DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro:
* GNUmakefile.am:

LayoutTests: Crash when making NPRuntime calls with a null NPP pointer
https://bugs.webkit.org/show_bug.cgi?id=100569

Reviewed by Darin Adler.

Add new tests.

* plugins/npruntime/npruntime-calls-with-null-npp-expected.txt: Added.
* plugins/npruntime/npruntime-calls-with-null-npp.html: Added.

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

7 years agoUnreviewed, rolling out r132695.
commit-queue@webkit.org [Fri, 26 Oct 2012 23:55:46 +0000 (23:55 +0000)]
Unreviewed, rolling out r132695.
http://trac.webkit.org/changeset/132695
https://bugs.webkit.org/show_bug.cgi?id=100581

caused 20+ test crashes on bots (Requested by estes on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-10-26

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::suspendPostAttachCallbacks):
(WebCore::ContainerNode::resumePostAttachCallbacks):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::loadNow):
* loader/ResourceLoadScheduler.cpp:
(WebCore::resourceLoadScheduler):
* loader/ResourceLoadScheduler.h:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::willSendRequest):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::performPostLoadActions):

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

7 years agoUnreviewed, rolling out r132689.
commit-queue@webkit.org [Fri, 26 Oct 2012 23:36:28 +0000 (23:36 +0000)]
Unreviewed, rolling out r132689.
http://trac.webkit.org/changeset/132689
https://bugs.webkit.org/show_bug.cgi?id=100574

Broke HashMaps containing RetainPtrs (Requested by andersca on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-10-26

* wtf/RetainPtr.h:

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

7 years agoUnreviewed, rolling out r132702.
scheib@chromium.org [Fri, 26 Oct 2012 23:28:46 +0000 (23:28 +0000)]
Unreviewed, rolling out r132702.
http://trac.webkit.org/changeset/132702
https://bugs.webkit.org/show_bug.cgi?id=100322

Compile error on Chromium Linux dbg builder (and others)

Source/WebCore:

* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::beginElementAt):
(WebCore::SVGAnimationElement::endElementAt):
* svg/animation/SMILTime.h:
(WebCore::SMILTime::SMILTime):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::addBeginTime):
(WebCore::SVGSMILElement::addEndTime):

LayoutTests:

* svg/custom/elementTimeControl-nan-crash-expected.txt: Removed.
* svg/custom/elementTimeControl-nan-crash.html: Removed.

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

7 years agoAdd pids to WebMemorySampleFiles.
slewis@apple.com [Fri, 26 Oct 2012 23:21:25 +0000 (23:21 +0000)]
Add pids to WebMemorySampleFiles.
https://bugs.webkit.org/show_bug.cgi?id=100449.

Reviewed by Tim Horton.

Make it easier to associate WebMemorySamples with a process.  Add the pid to the filename and header.

* Shared/WebMemorySampler.cpp:
(WebKit::WebMemorySampler::initializeTimers): Update notification.
(WebKit::WebMemorySampler::stop): Update notification.
(WebKit::WebMemorySampler::writeHeaders): dump pid in the header.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::processDidFinishLaunching): append pid to filename.

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

7 years ago[chromium] Allow embedder to enter/leave force compositing mode
commit-queue@webkit.org [Fri, 26 Oct 2012 23:03:27 +0000 (23:03 +0000)]
[chromium] Allow embedder to enter/leave force compositing mode
https://bugs.webkit.org/show_bug.cgi?id=100458

Patch by James Robinson <jamesr@chromium.org> on 2012-10-26
Reviewed by Adrienne Walker.

This adds API for the embedder to decide when to enter and leave force compositing mode since it's
more efficient to only toggle this setting when the embedder is about to produce a frame.

* public/WebWidget.h:
(WebWidget):
(WebKit::WebWidget::enterForceCompositingMode):
* src/WebFrameImpl.cpp:
(WebKit::WebViewImpl::enterForceCompositingMode):
(WebKit):
* src/WebViewImpl.h:
(WebViewImpl):

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

7 years ago[chromium] Unreviewed, remove one more test that consistently passes according to...
tony@chromium.org [Fri, 26 Oct 2012 22:59:39 +0000 (22:59 +0000)]
[chromium] Unreviewed, remove one more test that consistently passes according to the flakiness dashboard.

* platform/chromium/TestExpectations:

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

7 years ago[EFL][WK2][AC] Build fix after r132647.
commit-queue@webkit.org [Fri, 26 Oct 2012 22:45:26 +0000 (22:45 +0000)]
[EFL][WK2][AC] Build fix after r132647.
https://bugs.webkit.org/show_bug.cgi?id=100540

Patch by Yael Aharon <yael.aharon@intel.com> on 2012-10-26
Reviewed by Kenneth Rohde Christiansen.

AC enabled build is broken after the latest refactoring of EFL WK2.

* UIProcess/API/efl/EwkViewImpl.cpp:
(EwkViewImpl::EwkViewImpl):
(EwkViewImpl::displayTimerFired):
(EwkViewImpl::informLoadCommitted):
(EwkViewImpl::createGLSurface):
(EwkViewImpl::enterAcceleratedCompositingMode):
(EwkViewImpl::exitAcceleratedCompositingMode):
(EwkViewImpl::informContentsSizeChange):
* UIProcess/API/efl/EwkViewImpl.h:
(EwkViewImpl):
(EwkViewImpl::pageViewportControllerClient):
(EwkViewImpl::pageViewportController):
(EwkViewImpl::evasGl):
(EwkViewImpl::evasGlContext):
(EwkViewImpl::evasGlSurface):
(EwkViewImpl::resetEvasGlSurface):
* UIProcess/API/efl/ewk_view.cpp:
(mapToWebContent):
(_ewk_view_smart_calculate):

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

7 years ago[chromium] Unreviewed, remove tests that consistently pass.
tony@chromium.org [Fri, 26 Oct 2012 22:42:16 +0000 (22:42 +0000)]
[chromium] Unreviewed, remove tests that consistently pass.

* platform/chromium-mac-mountainlion/TestExpectations: Some tests still need 10.8 baselines. Add them to this file.
* platform/chromium/TestExpectations:

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

7 years agoPrevent NaN offset values in ElementTimeControl.
pdr@google.com [Fri, 26 Oct 2012 22:29:27 +0000 (22:29 +0000)]
Prevent NaN offset values in ElementTimeControl.
https://bugs.webkit.org/show_bug.cgi?id=100322

Reviewed by Abhishek Arya.

Source/WebCore:

NaN values can cause ElementTimeControl to go back in time!
If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
because NaN values are not properly sorted. NaN SMILTime values
should not be allowed at all, so this patch adds a check for them in
ElementTimeControl's setters.

This patch also adds preventative asserts to catch if SMILTime is ever
initialized with NaN, or if addEndTime/addBeginTime are ever called
with NaN values.

Test: svg/custom/elementTimeControl-nan-crash.html

* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::beginElementAt):
(WebCore::SVGAnimationElement::endElementAt):
* svg/animation/SMILTime.h:
(WebCore::SMILTime::SMILTime):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::addBeginTime):
(WebCore::SVGSMILElement::addEndTime):

LayoutTests:

* svg/custom/elementTimeControl-nan-crash-expected.txt: Added.
* svg/custom/elementTimeControl-nan-crash.html: Added.

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

7 years agoForward OSR calculation is wrong in the presence of multiple SetLocals, or a mix...
fpizlo@apple.com [Fri, 26 Oct 2012 22:18:59 +0000 (22:18 +0000)]
Forward OSR calculation is wrong in the presence of multiple SetLocals, or a mix of SetLocals and Phantoms
https://bugs.webkit.org/show_bug.cgi?id=100461

Reviewed by Oliver Hunt and Gavin Barraclough.

This does a couple of things. First, it removes the part of the change in r131822 that made the forward
OSR exit calculator capable of handling multiple SetLocals. That change was wrong, because it would
blindly assume that all SetLocals had the same ValueRecovery, and would ignore the possibility that if
there is no value recovery then a ForwardCheckStructure on the first SetLocal would not know how to
recover the state associated with the second SetLocal. Then, it introduces the invariant that any bytecode
op that decomposes into multiple SetLocals must first emit dead SetLocals as hints and then emit a second
set of SetLocals to actually do the setting of the locals. This means that if a ForwardCheckStructure (or
any other hoisted forward speculation) is inserted, it will always be inserted on the second set of
SetLocals (since hoisting only touches the live ones), at which point OSR will already know about the
mov hints implied by the first set of (dead) SetLocals. This gives us the behavior we wanted, namely, that
a ForwardCheckStructure applied to a variant set by a resolve_with_base-like operation can correctly do a
forward exit while also ensuring that prior to exiting we set the appropriate locals.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::OSRExit):
* dfg/DFGOSRExit.h:
(OSRExit):
* dfg/DFGOSRExitCompiler.cpp:
* dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::convertLastOSRExitToForward):

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

7 years agoMove non-Settings Inspector methods from internals.settings to internals
tony@chromium.org [Fri, 26 Oct 2012 21:59:55 +0000 (21:59 +0000)]
Move non-Settings Inspector methods from internals.settings to internals
https://bugs.webkit.org/show_bug.cgi?id=100392

Reviewed by Adam Barth.

Source/WebCore:

These methods don't have to do with the WebCore Settings object, so move them up to internals.
I moved the reset code from InternalSettings to Internals.

No new tests, this is just a rename. Existing tests should pass.

* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Remove inspector methods.
(WebCore::InternalSettings::Backup::restoreTo): Remove inspector methods.
* testing/InternalSettings.h:
* testing/InternalSettings.idl:
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): New method for resetting page state. Named after similar
methods in WTR.
(WebCore::Internals::setInspectorResourcesDataSizeLimits): Moved from InspectorSettings.
(WebCore::Internals::setJavaScriptProfilingEnabled): Moved from InspectorSettings.
* testing/Internals.h:
* testing/Internals.idl:
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
* testing/v8/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject): Reset state in Internals.

LayoutTests:

Update tests to use internals.setJavaScriptProfilingEnabled instead of internals.settings.setJavaScriptProfilingEnabled.
Update tests to use internals.setInspectorResourcesDataSizeLimits instead of internals.settings.setInspectorResourcesDataSizeLimits.

* fast/profiler/anonymous-event-handler.html:
* fast/profiler/anonymous-function-called-from-different-contexts.html:
* fast/profiler/anonymous-function-calls-built-in-functions.html:
* fast/profiler/anonymous-function-calls-eval.html:
* fast/profiler/anonymous-functions-with-display-names.html:
* fast/profiler/apply.html:
* fast/profiler/built-in-function-calls-anonymous.html:
* fast/profiler/built-in-function-calls-user-defined-function.html:
* fast/profiler/call-register-leak.html:
* fast/profiler/call.html:
* fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope.html:
* fast/profiler/compare-multiple-profiles.html:
* fast/profiler/constructor.html:
* fast/profiler/dead-time.html:
* fast/profiler/document-dot-write.html:
* fast/profiler/event-handler.html:
* fast/profiler/execution-context-and-eval-on-same-line.html:
* fast/profiler/inline-event-handler.html:
* fast/profiler/many-calls-in-the-same-scope.html:
* fast/profiler/multiple-and-different-scoped-anonymous-function-calls.html:
* fast/profiler/multiple-and-different-scoped-function-calls.html:
* fast/profiler/multiple-anonymous-functions-called-from-the-same-function.html:
* fast/profiler/multiple-frames.html:
* fast/profiler/named-functions-with-display-names.html:
* fast/profiler/nested-anonymous-functon.html:
* fast/profiler/nested-start-and-stop-profiler.html:
* fast/profiler/no-execution-context.html:
* fast/profiler/one-execution-context.html:
* fast/profiler/profile-calls-in-included-file.html:
* fast/profiler/profile-with-no-title.html:
* fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html:
* fast/profiler/profiling-from-a-nested-location.html:
* fast/profiler/simple-event-call.html:
* fast/profiler/simple-no-level-change.html:
* fast/profiler/start-and-stop-profiler-multiple-times.html:
* fast/profiler/start-and-stop-profiling-in-the-same-function.html:
* fast/profiler/start-but-dont-stop-profiling.html:
* fast/profiler/stop-profiling-after-setTimeout.html:
* fast/profiler/stop-then-function-call.html:
* fast/profiler/two-execution-contexts.html:
* fast/profiler/user-defined-function-calls-built-in-functions.html:
* fast/profiler/window-dot-eval.html:
* http/tests/inspector/network-test.js:
(resetInspectorResourcesData):
* http/tests/inspector/network/cached-resource-destroyed-too-big-discarded.html:
* http/tests/inspector/network/network-content-replacement-embed.html:
* http/tests/inspector/network/network-content-replacement-xhr.html:
* inspector/profiler/cpu-profiler-profiling-without-inspector.html:

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

7 years agoAX: Notification should be sent when accessibilityIsIgnored changes
dmazzoni@google.com [Fri, 26 Oct 2012 21:57:57 +0000 (21:57 +0000)]
AX: Notification should be sent when accessibilityIsIgnored changes
https://bugs.webkit.org/show_bug.cgi?id=99547

Reviewed by Chris Fleizach.

Source/WebCore:

Adds a new flag in AccessibilityObject that keeps track of the most recent
value of accessibilityIsIgnored(). After certain events such as an ARIA
attribute change or content change, checks the new value of
accessibilityIsIgnored() and posts a "children changed" notification on the
parent node if it changed, making sure the parent recomputes its vector of
(unignored) children.

Also moves handling of attribute changes to AXObjectCache, and sends
notifications for some attribute changes that were previously silent. On
Chromium, all changes to an accessibility object's attributes should
result in some notification.

Some tests would have broken because an AccessibilityScrollView was created
and holding a reference to a ScrollView for an iframe after it was deleted,
so this change switches AccessibilityScrollView to hold a weak reference
to ScrollView instead.

Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
       platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
       platform/chromium/accessibility/text-change-notification.html

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::textChanged):
(WebCore):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::handleAriaRoleChanged):
(WebCore::AXObjectCache::handleAttributeChanged):
(WebCore::AXObjectCache::labelChanged):
(WebCore::AXObjectCache::recomputeIsIgnored):
* accessibility/AXObjectCache.h:
(AXObjectCache):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::textChanged):
(WebCore::AXObjectCache::handleAttributeChanged):
(WebCore::AXObjectCache::recomputeIsIgnored):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::insertChild):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::AccessibilityObject):
(WebCore::AccessibilityObject::cachedIsIgnoredValue):
(WebCore):
(WebCore::AccessibilityObject::setCachedIsIgnoredValue):
(WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::textChanged):
(AccessibilityObject):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
(WebCore::AccessibilityRenderObject::textChanged):
(WebCore::AccessibilityRenderObject::addHiddenChildren):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::~AccessibilityScrollView):
(WebCore):
(WebCore::AccessibilityScrollView::detach):
(WebCore::AccessibilityScrollView::isAttachment):
(WebCore::AccessibilityScrollView::widgetForAttachmentView):
(WebCore::AccessibilityScrollView::updateScrollbars):
(WebCore::AccessibilityScrollView::webAreaObject):
(WebCore::AccessibilityScrollView::elementRect):
(WebCore::AccessibilityScrollView::documentFrameView):
(WebCore::AccessibilityScrollView::parentObject):
(WebCore::AccessibilityScrollView::parentObjectIfExists):
(WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
(WebCore::AccessibilityScrollView::scrollTo):
* accessibility/AccessibilityScrollView.h:
(WebCore::AccessibilityScrollView::scrollView):
(AccessibilityScrollView):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isDataTable):
* accessibility/chromium/AXObjectCacheChromium.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::deleteLineBoxTree):
(WebCore::RenderBlock::createAndAppendRootInlineBox):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
* rendering/RenderText.cpp:
(WebCore::RenderText::setText):

Source/WebKit/chromium:

Adds new accessibility notifications.

* public/WebAccessibilityNotification.h:
* src/AssertMatchingEnums.cpp:

Tools:

Add additional accessibility notifications.

* DumpRenderTree/chromium/WebViewHost.cpp:
(WebViewHost::postAccessibilityNotification):

LayoutTests:

Adds 3 new test to ensure:
1. A "children changed" notification is fired on the parent object when an
   object that was previously ignored becomes unignored.
2. A notification is sent when an element's text (incl. title or label) changes.
3. A notification is sent when another ARIA attribute changes.

Modifies add-to-menu-list-crashes because it was too brittle; it was
    referencing a stale object rather than retrieving its latest handle.
Modifies aria-checkbox-sends-notification to listen on the correct
    object on all platforms.
Simplifies notification-listeners so it doesn't generate additional
    notifications that are inconsistent between platforms now.

* accessibility/aria-checkbox-sends-notification.html:
* accessibility/notification-listeners.html:
* platform/chromium/accessibility/add-to-menu-list-crashes-expected.txt:
* platform/chromium/accessibility/add-to-menu-list-crashes.html:
* platform/chromium/accessibility/is-ignored-change-sends-notification-expected.txt: Added.
* platform/chromium/accessibility/is-ignored-change-sends-notification.html: Added.
* platform/chromium/accessibility/other-aria-attribute-change-sends-notification-expected.txt: Added.
* platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html: Added.
* platform/chromium/accessibility/text-change-notification-expected.txt: Added.
* platform/chromium/accessibility/text-change-notification.html: Added.

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

7 years ago[WebKitIDL] Optional dictionary types should have default values of empty dictionary
jsbell@chromium.org [Fri, 26 Oct 2012 21:55:18 +0000 (21:55 +0000)]
[WebKitIDL] Optional dictionary types should have default values of empty dictionary
https://bugs.webkit.org/show_bug.cgi?id=100547

Reviewed by Adam Barth.

Per WebIDL, "Optional dictionary type arguments are always considered to have a default
value of an empty dictionary." WebKitIDL already supported this via the extended attribute
[Optional=DefaultIsUndefined] but make this the default for Dictionary.

Binding test expectations updated.

* Modules/filesystem/DirectoryEntry.h: Remove default parameters.
(DirectoryEntry):
* Modules/indexeddb/IDBDatabase.h: Remove overloads.
(IDBDatabase):
* Modules/indexeddb/IDBObjectStore.h: Remove overloads.
(IDBObjectStore):
* Modules/mediastream/RTCPeerConnection.idl: Remove DefaultIsUndefined annotations.
* bindings/scripts/CodeGeneratorJS.pm: Special case for Optional Dictionary.
(GenerateParametersCheck):
* bindings/scripts/CodeGeneratorV8.pm: Ditto.
(GenerateParametersCheck):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOptionsObject): Updated expectation - no early call.
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::optionsObjectCallback): Ditto.

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

7 years agoGenerated should not be supported for things with a shadow
scheib@chromium.org [Fri, 26 Oct 2012 21:36:46 +0000 (21:36 +0000)]
Generated should not be supported for things with a shadow
https://bugs.webkit.org/show_bug.cgi?id=98836

Unreviewed rollout of rollout of http://trac.webkit.org/changeset/132269.
Initial rollout was speculative and was shown not to be related to crashes.
Change author: Elliott Sprehn  <esprehn@chromium.org>

Source/WebCore:

As far as CSS is concerned inputs and things with shadow content inside
shouldn't support pseudo elements like :before, :after or :first-letter.
Neither Gecko or Presto supports it, and we only accidentally supported
it.

Until the spec tells us what to do we should disable support. This is
also neccesary because the new generated content implementation doesn't
support shadows.

Test: fast/forms/pseudo-elements.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):
* rendering/RenderListBox.h:
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::updateBeforeAfterContent):

LayoutTests:

Change all pseudos on <input> tests to be ref tests and clean up the tests.
They now make sure we don't support generated content on things with a shadow.
Also added another test for the other form control types to ensure they don't
support pseudos either.

* fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.html: Added.
* fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.txt: Removed.
* fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements.html:
* fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.html: Added.
* fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.txt: Removed.
* fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements.html:
* fast/forms/pseudo-elements-expected.html: Added.
* fast/forms/pseudo-elements.html: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.html: Added.
* fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.txt: Removed.
* fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements.html:
* fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.html: Added.
* fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.txt: Removed.
* fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements.html:
* platform/chromium-linux/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-linux/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-linux/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-linux/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-mac-lion/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png:
* platform/chromium-mac-lion/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-mac-lion/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png:
* platform/chromium-mac-lion/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png:
* platform/chromium-mac-snowleopard/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-mac-snowleopard/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-mac-snowleopard/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-mac-snowleopard/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-mac/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-mac/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-mac/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-mac/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-win/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-win/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-win/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
* platform/chromium-win/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png: Removed.

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

7 years agoCrash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived...
beidson@apple.com [Fri, 26 Oct 2012 21:30:22 +0000 (21:30 +0000)]
Crash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived + 78
<rdar://problem/12575514> and https://bugs.webkit.org/show_bug.cgi?id=100554

Reviewed by Alexey Proskuryakov.

This was fallout from http://trac.webkit.org/changeset/132501 where I missed some of the
spots that call resourceLoadScheduler().

As a result we were creating more than one ResourceLoadScheduler, allowing the host records
to get out of sync.

The fix that also results in less #ifdefs scattered throughout the code is to use a single
choke point for all ResourceLoadScheduler access.

No new tests
(No change of behavior for the default config, not testable at this time in the repro config)

Add a single choke point for accessing the correct ResourceLoadScheduler:
* loader/ResourceLoadScheduler.cpp:
(WebCore::defaultResourceLoadScheduler): New private function that keeps the singleton default ResourceLoadScheduler.
(WebCore::resourceLoadScheduler): Refactor this function to either ask the LoaderStrategy or call through to

Revert back to using that single choke point everywhere:
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::suspendPostAttachCallbacks):
(WebCore::ContainerNode::resumePostAttachCallbacks):

* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::loadNow):

* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::releaseResources):
(WebCore::ResourceLoader::willSendRequest):

* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):

* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::performPostLoadActions):

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

7 years agoRemove Chromium specific expectations for video-media-source-add-and-remove-buffers...
commit-queue@webkit.org [Fri, 26 Oct 2012 21:25:53 +0000 (21:25 +0000)]
Remove Chromium specific expectations for video-media-source-add-and-remove-buffers.html
https://bugs.webkit.org/show_bug.cgi?id=100160

Patch by Aaron Colwell <acolwell@chromium.org> on 2012-10-26
Reviewed by Adam Barth.

The common expectations just reflected a bug in Chromium. The bug has been fixed and the common expectations
have been updated to reflect the correct behavior.

* http/tests/media/media-source/video-media-source-add-and-remove-buffers-expected.txt:
* platform/chromium/http/tests/media/media-source/video-media-source-add-and-remove-buffers-expected.txt: Removed.

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

7 years agoTurn PageLoad tests into simple performancetests, commit #6
zoltan@webkit.org [Fri, 26 Oct 2012 21:20:33 +0000 (21:20 +0000)]
Turn PageLoad tests into simple performancetests, commit #6
https://bugs.webkit.org/show_bug.cgi?id=99899

Reviewed by Ryosuke Niwa.

We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
to their new location and adds html/js wrappers for them.

This is the #6 commit of the whole patch.

* PageLoad/svg/files/gearflowers.svg: Removed.
* PageLoad/svg/files/hereGear4.svg: Removed.
* PageLoad/svg/files/worldcup.svg: Removed.
* SVG/GearFlowers.html: Added.
* SVG/HereGear.html: Added.
* SVG/Worldcup.html: Added.
* SVG/resources/GearFlowers.svg: Copied from PerformanceTests/PageLoad/svg/files/gearflowers.svg.
* SVG/resources/HereGear.svg: Copied from PerformanceTests/PageLoad/svg/files/hereGear4.svg.
* SVG/resources/Worldcup.svg: Copied from PerformanceTests/PageLoad/svg/files/worldcup.svg.
* Skipped: Rename the files on the skipped list also.

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

7 years agoTry to fix the windows build
commit-queue@webkit.org [Fri, 26 Oct 2012 21:16:11 +0000 (21:16 +0000)]
Try to fix the windows build
https://bugs.webkit.org/show_bug.cgi?id=100556

Patch by Elliott Sprehn <esprehn@chromium.org> on 2012-10-26
Reviewed by Eric Seidel.

Touch files by adding whitespace to try and make the windows
build bot regenerate files.

No new tests, just kick the bot.

* dom/DOMAllInOne.cpp:
* html/HTMLElementsAllInOne.cpp:
* html/shadow/TextControlInnerElements.cpp:

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

7 years agoGet rid of (<X%) failing output for old-run-webkit-tests.
roger_fong@apple.com [Fri, 26 Oct 2012 20:41:25 +0000 (20:41 +0000)]
Get rid of (<X%) failing output for old-run-webkit-tests.
https://bugs.webkit.org/show_bug.cgi?id=100447

Reviewed by Jessie Berlin.

Not a particularly useful piece of information. It's pretty much never above 1%.
new-run-webkit-tests does not output this either.

* Scripts/old-run-webkit-tests:
(printResults):

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

7 years agoAdd an operator& to RetainPtr
andersca@apple.com [Fri, 26 Oct 2012 20:36:40 +0000 (20:36 +0000)]
Add an operator& to RetainPtr
https://bugs.webkit.org/show_bug.cgi?id=100549

Reviewed by Dan Bernstein.

This is useful for APIs that return references using out parameters.

* wtf/RetainPtr.h:
(WTF::RetainPtr::operator&):

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

7 years ago[BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
rwlbuis@webkit.org [Fri, 26 Oct 2012 20:12:25 +0000 (20:12 +0000)]
[BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
https://bugs.webkit.org/show_bug.cgi?id=100518

PR 231732

Reviewed by Yong Li.

.:

Remove RESOURCE_PATH from webkit, this is now abstracted in our platform layer.

* Source/cmake/OptionsBlackBerry.cmake:

Source/WebCore:

Use the new resource/image loading abstraction ResourceStore.

* platform/graphics/blackberry/ImageBlackBerry.cpp:
(WebCore::Image::loadPlatformResource):

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

7 years ago[BlackBerry][FullScreen] entering/leaving fullscreen results in temporary glitches...
zhajiang@rim.com [Fri, 26 Oct 2012 20:02:41 +0000 (20:02 +0000)]
[BlackBerry][FullScreen] entering/leaving fullscreen results in temporary glitches on the screen
https://bugs.webkit.org/show_bug.cgi?id=100421

Reviewed by Yong Li.
Patch by Jacky Jiang  <zhajiang@rim.com>.

PR: 231173
When leaving fullscreen, we need to suspend screen and backing store
updates before setting scroll position and changing transformation and
resume after they are done. In which way, we can get rid of a noticeable
glitch during the transition.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::exitFullScreenForElement):

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

7 years ago[chromium] Add additional memory management fields to WebGraphicsContext3D
commit-queue@webkit.org [Fri, 26 Oct 2012 19:58:01 +0000 (19:58 +0000)]
[chromium] Add additional memory management fields to WebGraphicsContext3D
https://bugs.webkit.org/show_bug.cgi?id=99703

Patch by Christopher Cameron <ccameron@chromium.org> on 2012-10-26
Reviewed by James Robinson.

Add new fields to WebGraphicsMemoryAllocation to allow for specifying
limits for when visible and not, and to allow for specifying priority
cutoffs (e.g, to allow specifying that backgrounded tabs should
retain only their visible textures).

Add sendManagedMemoryStatsCHROMIUM to WebGraphicsContext3D, and
add WebGraphicsManagedMemoryStats structure, to allow the GPU memory
manager to make more informed choices.

* chromium/public/WebGraphicsContext3D.h:
(WebKit::WebGraphicsContext3D::sendManagedMemoryStatsCHROMIUM):
* chromium/public/WebGraphicsMemoryAllocation.h:
(WebGraphicsMemoryAllocation):
(WebKit::WebGraphicsMemoryAllocation::WebGraphicsMemoryAllocation):
(WebKit):
(WebGraphicsManagedMemoryStats):
(WebKit::WebGraphicsManagedMemoryStats::WebGraphicsManagedMemoryStats):

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

7 years ago[CSS Exclusions] Block children have incorrect offset when shape-inside element lays...
commit-queue@webkit.org [Fri, 26 Oct 2012 19:57:52 +0000 (19:57 +0000)]
[CSS Exclusions] Block children have incorrect offset when shape-inside element lays out below other elements
https://bugs.webkit.org/show_bug.cgi?id=98189

Patch by Bear Travis <betravis@adobe.com> on 2012-10-26
Reviewed by Dirk Schulze.

Source/WebCore:

The initial code assumed that each block created a new layout state, such that
LayoutState::layoutOffset would be specific to each block child of a shape-inside.
Typically, however, block children of a shape-inside do not create a new layout state,
and therefore we use the current element's offset instead.

Test: fast/exclusions/shape-inside/shape-inside-subsequent-blocks.html

* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloatsInRange): Modified to use only logicalTop
rather than LayoutState::layoutOffset::width/height and logicalTop.

LayoutTests:

Test that block content in subsequent shape-insides lays out correctly. Introducing a script
that can eventually be used to simplify the rectangle cases.

* fast/exclusions/resources/simple-rectangle.js: Added.
(createRectangleTest): Generate a shape-inside rectangle test using the given parameters.
(createRectangleTestResult): Generate a shape-inside rectangle expected result using
the given parameters.
* fast/exclusions/shape-inside/shape-inside-subsequent-blocks-expected.html: Added.
* fast/exclusions/shape-inside/shape-inside-subsequent-blocks.html: Added.

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

7 years agoRemove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement
commit-queue@webkit.org [Fri, 26 Oct 2012 19:28:43 +0000 (19:28 +0000)]
Remove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement
https://bugs.webkit.org/show_bug.cgi?id=100397

Patch by Elliott Sprehn <esprehn@chromium.org> on 2012-10-26
Reviewed by Ojan Vafai.

Use Node custom callbacks to support the non-renderer style caching for option
and optgroup eliminating the need for setRenderStyle.

setRenderStyle only existed to support HTMLOptionElement and HTMLOptGroupElement
so they could store their RenderStyle even though they have no renderer. This
means all style setting went through the virtual call to setRenderStyle, and it
also hid the if statement protecting against null renderers meaning we end up
checking if the renderer is null repeatedly in recalcStyle. This refactor cleans
up recalcStyle to be more clear about what's going on.

No new tests needed, this is just a refactor.

* dom/Element.cpp:
(WebCore::Element::pseudoStyleCacheIsInvalid):
(WebCore::Element::recalcStyle):
* dom/Node.cpp:
(WebCore::Node::createRenderer):
(WebCore::Node::setRenderStyle):
    Removed this method because it was only here to support HTMLOptionElement
    and HTMLOptGroupElement. Instead we can use node custom callbacks.
* dom/Node.h:
(WebCore::Node::nonRendererStyle): Renamed from nonRendererRenderStyle to match other style methods.
* dom/NodeRenderStyle.h:
(WebCore::Node::renderStyle):
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
(WebCore::HTMLOptGroupElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
(WebCore::HTMLOptGroupElement::updateNonRenderStyle): Updates the cached non-renderer style.
(WebCore::HTMLOptGroupElement::nonRendererStyle):
(WebCore::HTMLOptGroupElement::customStyleForRenderer):
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::HTMLOptionElement):
(WebCore::HTMLOptionElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
(WebCore::HTMLOptionElement::updateNonRenderStyle): Updates the cached non-renderer style.
(WebCore::HTMLOptionElement::nonRendererStyle):
(WebCore::HTMLOptionElement::customStyleForRenderer):
(WebCore::HTMLOptionElement::didRecalcStyle): Requests the repaint of the select like setRenderStyle used to.
* html/HTMLOptionElement.h:

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

7 years ago[chromium] Add implicit conversions between WebFloatPoint and gfx::PointF
danakj@chromium.org [Fri, 26 Oct 2012 19:15:39 +0000 (19:15 +0000)]
[chromium] Add implicit conversions between WebFloatPoint and gfx::PointF
https://bugs.webkit.org/show_bug.cgi?id=100435

Reviewed by James Robinson.

This is similar to other Web geometry types, but the WebFloatPoint is
missing it.

* chromium/public/WebFloatPoint.h:
(WebFloatPoint):
(WebKit::WebFloatPoint::WebFloatPoint):
(WebKit::WebFloatPoint::operator=):
(WebKit::WebFloatPoint::operator gfx::PointF):

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

7 years ago-webkit-clip-path property should just reference clipPath
krit@webkit.org [Fri, 26 Oct 2012 19:06:00 +0000 (19:06 +0000)]
-webkit-clip-path property should just reference clipPath
https://bugs.webkit.org/show_bug.cgi?id=100531

Reviewed by Eric Seidel.

Source/WebCore:

The -webkit-clip-path property should just reference clipPath. Added a check for that.

Test: css3/masking/clip-path-reference-of-fake-clipPath.html

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

LayoutTests:

Check that anther SVG resource like mask can not be referenced as clipPath.

* css3/masking/clip-path-reference-of-fake-clipPath-expected.txt: Added.
* css3/masking/clip-path-reference-of-fake-clipPath.html: Added.

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

7 years agoRemove the circular reference between TextTrack and TextTrackCue
commit-queue@webkit.org [Fri, 26 Oct 2012 18:51:21 +0000 (18:51 +0000)]
Remove the circular reference between TextTrack and TextTrackCue
https://bugs.webkit.org/show_bug.cgi?id=100300

Patch by Aaron Colwell <acolwell@chromium.org> on 2012-10-26
Reviewed by Eric Carlson.

Changed TextTrackCue.m_track to a normal pointer to break the circular
reference that was keeping both objects from ever getting deleted.

No new tests. This simply fixes a memory leak.

* html/track/TextTrack.cpp:
(WebCore::TextTrack::~TextTrack):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::TextTrackCue):
(WebCore::TextTrackCue::~TextTrackCue):
(WebCore::TextTrackCue::track):
(WebCore::TextTrackCue::setTrack):
* html/track/TextTrackCue.h:
(TextTrackCue):

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

7 years agoWeb Inspector: Breakpoints are not managed correctly when editing uiSourceCode that...
vsevik@chromium.org [Fri, 26 Oct 2012 18:47:29 +0000 (18:47 +0000)]
Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after JavaScriptSourceFrame creation.
https://bugs.webkit.org/show_bug.cgi?id=100535

Reviewed by Pavel Feldman.

Added SourceMappingChanged event to UISourceCode and made
JavaScriptSourceFrame update ScriptFile events listeners on it.

* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
(WebInspector.JavaScriptSourceFrame.prototype._onSourceMappingChanged):
(WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
* inspector/front-end/ResourceScriptMapping.js:
(WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
* inspector/front-end/UISourceCode.js:
(WebInspector.UISourceCode.prototype.setSourceMapping):

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

7 years agoBuild bot gives incorrect link to EWS build failure
wangxianzhu@chromium.org [Fri, 26 Oct 2012 18:44:40 +0000 (18:44 +0000)]
Build bot gives incorrect link to EWS build failure
https://bugs.webkit.org/show_bug.cgi?id=100436

Reviewed by Adam Barth.

* Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:
(MockCommitQueue.__init__):
(MockCommitQueue.command_failed): Return incremental failure_status_id
(CommitQueueTaskTest.test_red_tree_patch_rejection): Check failure_status_id
* Scripts/webkitpy/tool/bot/patchanalysistask.py:
(PatchAnalysisTask._test_patch): Use the failure_status_id of test with patch when test without patch fails and test with patch has unexpected failures.

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

7 years agowebkitpy: Pass the `Listen' Apache directive from webkitpy, not the httpd.conf files.
rakuco@webkit.org [Fri, 26 Oct 2012 18:41:10 +0000 (18:41 +0000)]
webkitpy: Pass the `Listen' Apache directive from webkitpy, not the httpd.conf files.
https://bugs.webkit.org/show_bug.cgi?id=98602

Reviewed by Dirk Pranke.

Tools:

Unify all the different `Listen' directives present in the several
httpd.conf files we have in LayoutTests/http/conf. For one, we
were already passing `Listen 127.0.0.1:8000' via webkitpy before,
and opening the other ports from the conf files.

The configuration files differed mostly in the way they handled
IPV6 ports. Some of them did not listen to IPV6 ports because the
systems which used them sometimes did not have IPV6 support. The
`http_server_supports_ipv6' method has been added to Port to
address that. cygwin, on its turn, still seems to use Apache 1.3,
which does not support IPV6 at all; the newly-added method has a
special case for that. Plus, perform a socket.getaddrinfo() call
the same way Apache itself does so we are sure we only enable IPV6
when setting that up in the httpd server is not going to fail.

* Scripts/webkitpy/common/system/platforminfo_mock.py:
(MockPlatformInfo.is_cygwin):
* Scripts/webkitpy/layout_tests/port/base.py:
(Port.baseline_version_dir):
(Port.to.start_websocket_server):
(Port.to):
(Port.to.http_server_supports_ipv6):
* Scripts/webkitpy/layout_tests/port/base_unittest.py:
(PortTest.test_http_server_supports_ipv6):
(PortTest.test_build_path):
* Scripts/webkitpy/layout_tests/servers/apache_http_server.py:
(LayoutTestApacheHttpd):
(LayoutTestApacheHttpd.__init__):

LayoutTests:

* http/conf/apache2-debian-httpd.conf: Remove the `Listen'
directive and related comments, it is passed to httpd by webkitpy
now.
* http/conf/apache2-httpd.conf: Ditto.
* http/conf/cygwin-httpd.conf: Ditto.
* http/conf/fedora-httpd.conf: Ditto.

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

7 years agoUnreviewed. Update my IRC nickname to a registered one.
dbarton@mathscribe.com [Fri, 26 Oct 2012 18:18:14 +0000 (18:18 +0000)]
Unreviewed. Update my IRC nickname to a registered one.

* Scripts/webkitpy/common/config/committers.py:

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

7 years agoUnreviewed, rolling out r132644.
scheib@chromium.org [Fri, 26 Oct 2012 17:49:23 +0000 (17:49 +0000)]
Unreviewed, rolling out r132644.
http://trac.webkit.org/changeset/132644
https://bugs.webkit.org/show_bug.cgi?id=100497

Causes webkit_unit_tests
MemoryInstrumentationTest.ImageObserver to fail.

* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::reportMemoryUsage):
* platform/network/ResourceRequestBase.h:
(ResourceRequestBase):
* platform/network/chromium/ResourceRequest.cpp:
* platform/network/chromium/ResourceRequest.h:

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

7 years agocompositing/tiling/huge-layer* flakey
simon.fraser@apple.com [Fri, 26 Oct 2012 17:30:23 +0000 (17:30 +0000)]
compositing/tiling/huge-layer* flakey
https://bugs.webkit.org/show_bug.cgi?id=48454

Reviewed by Dan Bernstein.

In r131009 I fixed layerTreeAsText() to not be flakey with tiled layers, by ensuring that
we flush layer state before dumping the layer tree. That makes these tests non-flakey. I was
also able to remove all the setTimeouts() from these tests.

The 'usingTiledLayer' property is only dumped on Mac, so made cross-platform results without
this flag, and added Mac-specific results with it.

Unskipped some tests on non-Mac platforms that should now pass.

* compositing/tiling/backface-preserve-3d-tiled-expected.txt:
* compositing/tiling/crash-reparent-tiled-layer-expected.txt:
* compositing/tiling/huge-layer-add-remove-child-expected.txt:
* compositing/tiling/huge-layer-add-remove-child.html: Added.
* compositing/tiling/huge-layer-add-remove-child.html-disabled: Removed.
* compositing/tiling/huge-layer-expected.txt:
* compositing/tiling/huge-layer-img-expected.txt:
* compositing/tiling/huge-layer-img.html: Renamed from LayoutTests/compositing/tiling/huge-layer-img.html-disabled.
* compositing/tiling/huge-layer-resize-expected.txt:
* compositing/tiling/huge-layer-with-layer-children-expected.txt:
* compositing/tiling/huge-layer-with-layer-children-resize-expected.txt:
* compositing/tiling/huge-layer-with-layer-children-resize.html: Added.
* compositing/tiling/huge-layer-with-layer-children-resize.html-disabled: Removed.
* compositing/tiling/huge-layer-with-layer-children.html: Renamed from LayoutTests/compositing/tiling/huge-layer-with-layer-children.html-disabled.
* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/mac/compositing/tiling/backface-preserve-3d-tiled-expected.txt: Copied from LayoutTests/compositing/tiling/backface-preserve-3d-tiled-expected.txt.
* platform/mac/compositing/tiling/crash-reparent-tiled-layer-expected.txt: Copied from LayoutTests/compositing/tiling/crash-reparent-tiled-layer-expected.txt.
* platform/mac/compositing/tiling/huge-layer-add-remove-child-expected.txt: Copied from LayoutTests/compositing/tiling/huge-layer-add-remove-child-expected.txt.
* platform/mac/compositing/tiling/huge-layer-expected.txt: Copied from LayoutTests/compositing/tiling/huge-layer-expected.txt.
* platform/mac/compositing/tiling/huge-layer-img-expected.txt: Copied from LayoutTests/compositing/tiling/huge-layer-img-expected.txt.
* platform/mac/compositing/tiling/huge-layer-resize-expected.txt: Copied from LayoutTests/compositing/tiling/huge-layer-resize-expected.txt.
* platform/mac/compositing/tiling/huge-layer-with-layer-children-expected.txt: Copied from LayoutTests/compositing/tiling/huge-layer-with-layer-children-expected.txt.
* platform/mac/compositing/tiling/huge-layer-with-layer-children-resize-expected.txt: Copied from LayoutTests/compositing/tiling/huge-layer-with-layer-children-resize-expected.txt.
* platform/qt-5.0-wk2/TestExpectations:

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

7 years ago[chromium] Enable fast/images/exif-orientation.html
thakis@chromium.org [Fri, 26 Oct 2012 17:30:01 +0000 (17:30 +0000)]
[chromium] Enable fast/images/exif-orientation.html
https://bugs.webkit.org/show_bug.cgi?id=100534

Unreviewed, TestExpecations change.

The baselines for this test landed yesterday.

* platform/chromium/TestExpectations:

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

7 years ago[Qt] MiniBrowser segfaults on exit after using WebGL.
zeno.albisser@digia.com [Fri, 26 Oct 2012 17:19:10 +0000 (17:19 +0000)]
[Qt] MiniBrowser segfaults on exit after using WebGL.
https://bugs.webkit.org/show_bug.cgi?id=100523

The display connection must not be closed before
destroying the offscreen window.
Therefore opening the connection is moved to the
getXWindow() function. And closing the connection
is being moved to the destructor of the offscreen window.

Reviewed by Kenneth Rohde Christiansen.

* platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
(WebCore::OffScreenRootWindow::OffScreenRootWindow):
(WebCore::OffScreenRootWindow::getXWindow):
(OffScreenRootWindow):
(WebCore::OffScreenRootWindow::display):
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):
(WebCore):
(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
(WebCore::GraphicsSurfacePrivate::createSurface):

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

7 years agoTurn PageLoad tests into simple performancetests, commit #5
zoltan@webkit.org [Fri, 26 Oct 2012 16:31:33 +0000 (16:31 +0000)]
Turn PageLoad tests into simple performancetests, commit #5
https://bugs.webkit.org/show_bug.cgi?id=99899

Reviewed by Ryosuke Niwa.

We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
to their new location and adds html/js wrappers for them.

This is the #5 commit of the whole patch.

* PageLoad/svg/files/Harvey_Rayner.svg: Removed.
* PageLoad/svg/files/Sierpinski_carpet_6.svg: Removed.
* PageLoad/svg/files/mtsthelens.svg: Removed.
* PageLoad/svg/files/mtsthelens0.jpg: Removed.
* SVG/HarveyRayner.html: Added.
* SVG/MtSaintHelens.html: Added.
* SVG/SierpinskiCarpet.html: Added.
* SVG/resources/HarveyRayner.svg: Copied from PerformanceTests/PageLoad/svg/files/Harvey_Rayner.svg.
* SVG/resources/MtSaintHelens.svg: Copied from PerformanceTests/PageLoad/svg/files/mtsthelens.svg.
* SVG/resources/SierpinskiCarpet.svg: Copied from PerformanceTests/PageLoad/svg/files/Sierpinski_carpet_6.svg.
* SVG/resources/mtsthelens0.jpg: Copied from PerformanceTests/PageLoad/svg/files/mtsthelens0.jpg.
* Skipped: Rename the files on the skipped list also.

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

7 years ago[BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
commit-queue@webkit.org [Fri, 26 Oct 2012 16:25:52 +0000 (16:25 +0000)]
[BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
Generic ThreadUnsafe Singleton
https://bugs.webkit.org/show_bug.cgi?id=100529

Patch by Parth Patel <parpatel@rim.com> on 2012-10-26
Reviewed by Yong Li.

No new tests added as there was no behavioural change.

* platform/network/blackberry/NetworkManager.cpp:
(WebCore):
* platform/network/blackberry/NetworkManager.h:
(NetworkManager):

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

7 years agoWeb Inspector: Fix log-type icon alignment.
mkwst@chromium.org [Fri, 26 Oct 2012 16:12:36 +0000 (16:12 +0000)]
Web Inspector: Fix log-type icon alignment.
https://bugs.webkit.org/show_bug.cgi?id=100520

Reviewed by Yury Semikhatsky.

The icons are just a pixel or two off, and it's driving me nuts.

* inspector/front-end/inspector.css:
(.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before):
(.console-warning-level::before):

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

7 years agoReplaceable attributes should also have readonly
arv@chromium.org [Fri, 26 Oct 2012 16:09:57 +0000 (16:09 +0000)]
Replaceable attributes should also have readonly
https://bugs.webkit.org/show_bug.cgi?id=91768

Reviewed by Adam Barth.

This updates the code generators for JSC and V8 to handle this case correctly.

* Modules/intents/DOMWindowIntents.idl:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8TestObj.cpp:
* page/DOMWindow.idl:
* workers/WorkerContext.idl:

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

7 years agoClear m_orientation in FrameData::clear() for skia
thakis@chromium.org [Fri, 26 Oct 2012 15:58:42 +0000 (15:58 +0000)]
Clear m_orientation in FrameData::clear() for skia
https://bugs.webkit.org/show_bug.cgi?id=100456

Reviewed by Stephen White.

clear() is only called by the FrameData destructor and for multi-image
images in BitmapImage::destroyDecodedData(). Multi-frame images don't
have exif data, so this patch should have no effect in practice. It
makes the skia code match the CG code in BitmapImageCG.cpp though.

* platform/graphics/skia/ImageSkia.cpp:
(WebCore::FrameData::clear):

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