summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-08-04 18:16:18 +0100
committerSteve Block <steveblock@google.com>2010-08-09 13:25:51 +0100
commit27a37fb693b8b9f744cfc3da9eb5a933e922323e (patch)
treea483456777caa6daeee6917d88a1fb1853ce26cb /WebCore/rendering
parentad3386af2204fbbc9033a6dcced2f9b0adcd6f10 (diff)
downloadexternal_webkit-27a37fb693b8b9f744cfc3da9eb5a933e922323e.zip
external_webkit-27a37fb693b8b9f744cfc3da9eb5a933e922323e.tar.gz
external_webkit-27a37fb693b8b9f744cfc3da9eb5a933e922323e.tar.bz2
Merge WebKit at r64523 : Fix other conflicts
- WebCore/Android.mk Conflict due to error introduced upstream. See http://trac.webkit.org/changeset/64344/trunk/WebCore/Android.mk and http://trac.webkit.org/changeset/60228/trunk/WebCore/Android.mk - WebCore/html/HTMLFrameSetElement.cpp Conflict due to ANDROID_FLATTEN_FRAMESET See http://trac.webkit.org/changeset/64383 - WebCore/page/Navigator.h Conflict due to APPLICATION_INSTALLED See http://trac.webkit.org/changeset/64371 - WebCore/rendering/SVGResourcesCycleSolver.cpp Conflict due to local ENABLE(FILTERS) guard See http://trac.webkit.org/changeset/64440 Change-Id: Ibafe3b92117c3a7b3eaaa44c6cf3d04c8c6027c2
Diffstat (limited to 'WebCore/rendering')
-rw-r--r--WebCore/rendering/SVGResourcesCycleSolver.cpp86
1 files changed, 0 insertions, 86 deletions
diff --git a/WebCore/rendering/SVGResourcesCycleSolver.cpp b/WebCore/rendering/SVGResourcesCycleSolver.cpp
index ec2e036..8cd2e80 100644
--- a/WebCore/rendering/SVGResourcesCycleSolver.cpp
+++ b/WebCore/rendering/SVGResourcesCycleSolver.cpp
@@ -94,92 +94,6 @@ bool SVGResourcesCycleSolver::resourceContainsCycles(RenderObject* renderer) con
return false;
}
-<<<<<<< HEAD
-static inline String targetReferenceFromResource(SVGElement* element, bool& isValid)
-{
- String target;
- if (element->hasTagName(SVGNames::patternTag))
- target = static_cast<SVGPatternElement*>(element)->href();
- else if (element->hasTagName(SVGNames::linearGradientTag) || element->hasTagName(SVGNames::radialGradientTag))
- target = static_cast<SVGGradientElement*>(element)->href();
-// ANDROID
-// This is deleted upstream so we cannot upstream the guard
-// http://trac.webkit.org/changeset/64440/trunk/WebCore/rendering/SVGResourcesCycleSolver.cpp
-#if ENABLE(FILTERS)
- else if (element->hasTagName(SVGNames::filterTag))
- target = static_cast<SVGFilterElement*>(element)->href();
-#endif
- else {
- isValid = false;
- return target;
- }
-
- return SVGURIReference::getTarget(target);
-}
-
-static inline void setFollowLinkForChainableResource(SVGElement*, bool)
-{
- // FIXME: Enable once the follow-up patch for bug 43031 lands
-}
-
-bool SVGResourcesCycleSolver::chainableResourceContainsCycles(RenderSVGResourceContainer* container) const
-{
- ASSERT(container);
- ASSERT(container->node());
- ASSERT(container->node()->isSVGElement());
-
- // Chainable resources cycle detection is performed in the DOM tree.
- SVGElement* element = static_cast<SVGElement*>(container->node());
- ASSERT(element);
-
- HashSet<SVGElement*> processedObjects;
-
- bool isValid = true;
- String target = targetReferenceFromResource(element, isValid);
- ASSERT(isValid);
-
- SVGElement* previousElement = element;
- while (!target.isEmpty()) {
- Node* targetNode = element->document()->getElementById(target);
- if (!targetNode || !targetNode->isSVGElement())
- break;
-
- // Catch cylic chaining, otherwhise we'll run into an infinite loop here.
- // <pattern id="foo" xlink:href="#bar"/> <pattern id="bar xlink:href="#foo"/>
- SVGElement* targetElement = static_cast<SVGElement*>(targetNode);
-
- bool followLink = true;
- if (processedObjects.contains(targetElement) || targetElement == element)
- followLink = false;
-
- setFollowLinkForChainableResource(previousElement, followLink);
- if (!followLink)
- return false;
-
- previousElement = targetElement;
- processedObjects.add(targetElement);
- target = targetReferenceFromResource(targetElement, isValid);
- if (!isValid)
- break;
- }
-
- // Couldn't find any direct cycle in the xlink:href chain, maybe there's an indirect one.
- // <pattern id="foo" xlink:href="#bar"/> <pattern id="bar"> <rect fill="url(#foo)"...
- HashSet<SVGElement*>::iterator end = processedObjects.end();
- for (HashSet<SVGElement*>::iterator it = processedObjects.begin(); it != end; ++it) {
- RenderObject* renderer = (*it)->renderer();
- if (!renderer)
- continue;
- ASSERT(renderer->isSVGResourceContainer());
- if (m_allResources.contains(renderer->toRenderSVGResourceContainer()))
- return true;
- }
-
- return false;
-}
-
-=======
->>>>>>> webkit.org at r64523
void SVGResourcesCycleSolver::resolveCycles()
{
ASSERT(m_allResources.isEmpty());