Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1362)

Unified Diff: Source/core/svg/SVGGeometryElement.cpp

Issue 62943002: Implement SVGGeometryElement (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add SVGGeometryElement in expected results Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/svg/SVGGeometryElement.h ('k') | Source/core/svg/SVGGeometryElement.idl » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/svg/SVGGeometryElement.cpp
diff --git a/Source/core/inspector/ScriptArguments.cpp b/Source/core/svg/SVGGeometryElement.cpp
similarity index 51%
copy from Source/core/inspector/ScriptArguments.cpp
copy to Source/core/svg/SVGGeometryElement.cpp
index 6c5ac58f57e411cb76f26df042c418a881d91d1e..56b3d03b56089c0f849a9eaf40257b35047f450a 100644
--- a/Source/core/inspector/ScriptArguments.cpp
+++ b/Source/core/svg/SVGGeometryElement.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Samsung Electronics. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -29,73 +29,46 @@
*/
#include "config.h"
-#include "core/inspector/ScriptArguments.h"
+#include "core/svg/SVGGeometryElement.h"
-#include "bindings/v8/ScriptScope.h"
-#include "bindings/v8/ScriptValue.h"
+#include "SVGNames.h"
+#include "core/rendering/HitTestRequest.h"
+#include "core/rendering/PointerEventsHitRules.h"
+#include "core/rendering/svg/RenderSVGShape.h"
namespace WebCore {
-PassRefPtr<ScriptArguments> ScriptArguments::create(ScriptState* scriptState, Vector<ScriptValue>& arguments)
+SVGGeometryElement::SVGGeometryElement(const QualifiedName& tagName, Document& document, ConstructionType constructionType)
+ : SVGGraphicsElement(tagName, document, constructionType)
{
- return adoptRef(new ScriptArguments(scriptState, arguments));
}
-ScriptArguments::ScriptArguments(ScriptState* scriptState, Vector<ScriptValue>& arguments)
- : m_scriptState(scriptState)
+bool SVGGeometryElement::isPointInFill(const SVGPoint& point) const
{
- m_arguments.swap(arguments);
-}
-
-ScriptArguments::~ScriptArguments()
-{
-}
-
-const ScriptValue &ScriptArguments::argumentAt(size_t index) const
-{
- ASSERT(m_arguments.size() > index);
- return m_arguments[index];
-}
-
-ScriptState* ScriptArguments::globalState() const
-{
- return m_scriptState.get();
-}
+ document().updateLayoutIgnorePendingStylesheets();
-bool ScriptArguments::getFirstArgumentAsString(String& result, bool checkForNullOrUndefined)
-{
- if (!argumentCount())
+ // FIXME: Eventually we should support isPointInFill for display:none elements.
+ if (!renderer() || !renderer()->isSVGShape())
return false;
- const ScriptValue& value = argumentAt(0);
- ScriptScope scope(m_scriptState.get());
- if (checkForNullOrUndefined && (value.isNull() || value.isUndefined()))
- return false;
-
- if (!globalState()) {
- ASSERT_NOT_REACHED();
- return false;
- }
-
- result = value.toString();
- return true;
+ HitTestRequest request(HitTestRequest::ReadOnly);
+ PointerEventsHitRules hitRules(PointerEventsHitRules::SVG_GEOMETRY_HITTESTING, request, renderer()->style()->pointerEvents());
+ hitRules.canHitStroke = false;
+ return toRenderSVGShape(renderer())->nodeAtFloatPointInternal(request, point, hitRules);
}
-bool ScriptArguments::isEqual(ScriptArguments* other) const
+bool SVGGeometryElement::isPointInStroke(const SVGPoint& point) const
{
- if (!other)
- return false;
+ document().updateLayoutIgnorePendingStylesheets();
- if (m_arguments.size() != other->m_arguments.size())
- return false;
- if (!globalState() && m_arguments.size())
+ // FIXME: Eventually we should support isPointInStroke for display:none elements.
+ if (!renderer() || !renderer()->isSVGShape())
return false;
- for (size_t i = 0; i < m_arguments.size(); ++i) {
- if (!m_arguments[i].isEqual(other->globalState(), other->m_arguments[i]))
- return false;
- }
- return true;
+ HitTestRequest request(HitTestRequest::ReadOnly);
+ PointerEventsHitRules hitRules(PointerEventsHitRules::SVG_GEOMETRY_HITTESTING, request, renderer()->style()->pointerEvents());
+ hitRules.canHitFill = false;
+ return toRenderSVGShape(renderer())->nodeAtFloatPointInternal(request, point, hitRules);
}
-} // namespace WebCore
+}
« no previous file with comments | « Source/core/svg/SVGGeometryElement.h ('k') | Source/core/svg/SVGGeometryElement.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698