| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
| 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
| 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. |
| 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
| 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
| 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
| 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
| 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 | 28 |
| 29 #include "core/css/resolver/FilterOperationResolver.h" | 29 #include "core/css/resolver/FilterOperationResolver.h" |
| 30 | 30 |
| 31 #include "core/css/CSSFunctionValue.h" | 31 #include "core/css/CSSFunctionValue.h" |
| 32 #include "core/css/CSSPrimitiveValueMappings.h" | 32 #include "core/css/CSSPrimitiveValueMappings.h" |
| 33 #include "core/css/CSSShadowValue.h" | 33 #include "core/css/CSSShadowValue.h" |
| 34 #include "core/css/CSSURIValue.h" | 34 #include "core/css/CSSURIValue.h" |
| 35 #include "core/css/resolver/StyleResolverState.h" | 35 #include "core/css/resolver/StyleResolverState.h" |
| 36 #include "core/frame/UseCounter.h" | 36 #include "core/frame/UseCounter.h" |
| 37 #include "core/layout/svg/ReferenceFilterBuilder.h" | 37 #include "core/layout/svg/ReferenceFilterBuilder.h" |
| 38 #include "core/svg/SVGURIReference.h" |
| 38 | 39 |
| 39 namespace blink { | 40 namespace blink { |
| 40 | 41 |
| 41 FilterOperation::OperationType FilterOperationResolver::filterOperationForType(C
SSValueID type) | 42 FilterOperation::OperationType FilterOperationResolver::filterOperationForType(C
SSValueID type) |
| 42 { | 43 { |
| 43 switch (type) { | 44 switch (type) { |
| 44 case CSSValueGrayscale: | 45 case CSSValueGrayscale: |
| 45 return FilterOperation::GRAYSCALE; | 46 return FilterOperation::GRAYSCALE; |
| 46 case CSSValueSepia: | 47 case CSSValueSepia: |
| 47 return FilterOperation::SEPIA; | 48 return FilterOperation::SEPIA; |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 ASSERT(toCSSPrimitiveValue(inValue).getValueID() == CSSValueNone); | 124 ASSERT(toCSSPrimitiveValue(inValue).getValueID() == CSSValueNone); |
| 124 return operations; | 125 return operations; |
| 125 } | 126 } |
| 126 | 127 |
| 127 const CSSToLengthConversionData& conversionData = state.cssToLengthConversio
nData(); | 128 const CSSToLengthConversionData& conversionData = state.cssToLengthConversio
nData(); |
| 128 for (auto& currValue : toCSSValueList(inValue)) { | 129 for (auto& currValue : toCSSValueList(inValue)) { |
| 129 if (currValue->isURIValue()) { | 130 if (currValue->isURIValue()) { |
| 130 countFilterUse(FilterOperation::REFERENCE, state.document()); | 131 countFilterUse(FilterOperation::REFERENCE, state.document()); |
| 131 | 132 |
| 132 const CSSURIValue& urlValue = toCSSURIValue(*currValue); | 133 const CSSURIValue& urlValue = toCSSURIValue(*currValue); |
| 133 KURL url = state.document().completeURL(urlValue.url()); | 134 SVGURLReferenceResolver resolver(urlValue.value(), state.document())
; |
| 134 | 135 ReferenceFilterOperation* operation = ReferenceFilterOperation::crea
te(urlValue.value(), resolver.fragmentIdentifier()); |
| 135 ReferenceFilterOperation* operation = ReferenceFilterOperation::crea
te(urlValue.url(), AtomicString(url.fragmentIdentifier())); | 136 if (!resolver.isLocal()) { |
| 136 if (!equalIgnoringFragmentIdentifier(url, state.document().url())) { | |
| 137 if (!urlValue.loadRequested()) | 137 if (!urlValue.loadRequested()) |
| 138 state.elementStyleResources().addPendingSVGDocument(operatio
n, &urlValue); | 138 state.elementStyleResources().addPendingSVGDocument(operatio
n, &urlValue); |
| 139 else if (urlValue.cachedDocument()) | 139 else if (urlValue.cachedDocument()) |
| 140 ReferenceFilterBuilder::setDocumentResourceReference(operati
on, new DocumentResourceReference(urlValue.cachedDocument())); | 140 ReferenceFilterBuilder::setDocumentResourceReference(operati
on, new DocumentResourceReference(urlValue.cachedDocument())); |
| 141 } | 141 } |
| 142 operations.operations().append(operation); | 142 operations.operations().append(operation); |
| 143 continue; | 143 continue; |
| 144 } | 144 } |
| 145 | 145 |
| 146 const CSSFunctionValue* filterValue = toCSSFunctionValue(currValue.get()
); | 146 const CSSFunctionValue* filterValue = toCSSFunctionValue(currValue.get()
); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 default: | 206 default: |
| 207 ASSERT_NOT_REACHED(); | 207 ASSERT_NOT_REACHED(); |
| 208 break; | 208 break; |
| 209 } | 209 } |
| 210 } | 210 } |
| 211 | 211 |
| 212 return operations; | 212 return operations; |
| 213 } | 213 } |
| 214 | 214 |
| 215 } // namespace blink | 215 } // namespace blink |
| OLD | NEW |