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

Unified Diff: third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp

Issue 2105383002: Use a converter for -webkit-clip-path (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@move-clippathop
Patch Set: Rebase Created 4 years, 6 months 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
Index: third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp
diff --git a/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp b/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp
index 2607587ecc0d9ecd4ff97ee5a03d7ed8bb10793b..be7e02298a8626802ceb1db6ba25056b00ecebf7 100644
--- a/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp
+++ b/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp
@@ -45,6 +45,7 @@
#include "core/css/CSSValuePair.h"
#include "core/css/resolver/FilterOperationResolver.h"
#include "core/frame/LocalFrame.h"
+#include "core/style/ClipPathOperation.h"
#include "core/style/TextSizeAdjust.h"
#include "core/svg/SVGURIReference.h"
#include "platform/transforms/RotateTransformOperation.h"
@@ -117,6 +118,20 @@ LengthBox StyleBuilderConverter::convertClip(StyleResolverState& state, const CS
convertLengthOrAuto(state, *rect.left()));
}
+PassRefPtr<ClipPathOperation> StyleBuilderConverter::convertClipPath(StyleResolverState& state, const CSSValue& value)
+{
+ if (value.isBasicShapeValue())
+ return ShapeClipPathOperation::create(basicShapeForValue(state, value));
+ if (value.isURIValue()) {
+ String cssURLValue = toCSSURIValue(value).value();
+ KURL url = state.document().completeURL(cssURLValue);
+ // TODO(fs): Doesn't work with forward or external SVG references (crbug.com/391604, crbug.com/109212, ...)
+ return ReferenceClipPathOperation::create(cssURLValue, AtomicString(url.fragmentIdentifier()));
+ }
+ DCHECK(value.isPrimitiveValue() && toCSSPrimitiveValue(value).getValueID() == CSSValueNone);
+ return nullptr;
+}
+
FilterOperations StyleBuilderConverter::convertFilterOperations(StyleResolverState& state, const CSSValue& value)
{
return FilterOperationResolver::createFilterOperations(state, value);

Powered by Google App Engine
This is Rietveld 408576698