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

Unified Diff: third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DState.cpp

Issue 1775153002: Make OffscreenCanvasRenderingContext2D renderable on a worker (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix non-oilpan build Created 4 years, 9 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/modules/canvas2d/CanvasRenderingContext2DState.cpp
diff --git a/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DState.cpp b/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DState.cpp
index 438a159f3daabc6c64b661a26776ce4eb54e773d..a381eb5918afad26f9b7b43925ea060fd0b65a44 100644
--- a/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DState.cpp
+++ b/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DState.cpp
@@ -12,12 +12,11 @@
#include "core/paint/FilterEffectBuilder.h"
#include "core/style/ComputedStyle.h"
#include "core/svg/SVGFilterElement.h"
+#include "modules/canvas2d/BaseRenderingContext2D.h"
#include "modules/canvas2d/CanvasGradient.h"
#include "modules/canvas2d/CanvasPattern.h"
-#include "modules/canvas2d/CanvasRenderingContext2D.h"
#include "modules/canvas2d/CanvasStyle.h"
#include "platform/graphics/DrawLooperBuilder.h"
-#include "platform/graphics/filters/FilterOperation.h"
#include "platform/graphics/filters/SkiaImageFilterBuilder.h"
#include "platform/graphics/skia/SkiaUtils.h"
#include "third_party/skia/include/effects/SkDashPathEffect.h"
@@ -293,13 +292,7 @@ void CanvasRenderingContext2DState::resetTransform()
m_isTransformInvertible = true;
}
-static void updateFilterReferences(HTMLCanvasElement* canvasElement, CanvasRenderingContext2D* context, const FilterOperations& filters)
-{
- context->clearFilterReferences();
- context->addFilterReferences(filters, canvasElement->document());
-}
-
-SkImageFilter* CanvasRenderingContext2DState::getFilter(Element* styleResolutionHost, const Font& font, IntSize canvasSize, CanvasRenderingContext2D* context) const
+SkImageFilter* CanvasRenderingContext2DState::getFilter(Element* styleResolutionHost, const Font* font, IntSize canvasSize, BaseRenderingContext2D* context) const
{
if (!m_filterValue)
return nullptr;
@@ -307,13 +300,16 @@ SkImageFilter* CanvasRenderingContext2DState::getFilter(Element* styleResolution
if (!m_resolvedFilter) {
RefPtr<ComputedStyle> filterStyle = ComputedStyle::create();
// Must set font in case the filter uses any font-relative units (em, ex)
- filterStyle->setFont(font);
-
- StyleResolverState resolverState(styleResolutionHost->document(), styleResolutionHost, filterStyle.get());
- resolverState.setStyle(filterStyle);
+ if (font)
+ filterStyle->setFont(*font);
+
+ if (styleResolutionHost) {
+ StyleResolverState resolverState(styleResolutionHost->document(), styleResolutionHost, filterStyle.get());
+ resolverState.setStyle(filterStyle);
+ StyleBuilder::applyProperty(CSSPropertyWebkitFilter, resolverState, m_filterValue.get());
+ resolverState.loadPendingResources();
+ }
- StyleBuilder::applyProperty(CSSPropertyWebkitFilter, resolverState, m_filterValue.get());
- resolverState.loadPendingResources();
RefPtrWillBeRawPtr<FilterEffectBuilder> filterEffectBuilder = FilterEffectBuilder::create();
// We can't reuse m_fillPaint and m_strokePaint for the filter, since these incorporate
@@ -332,13 +328,13 @@ SkImageFilter* CanvasRenderingContext2DState::getFilter(Element* styleResolution
RefPtrWillBeRawPtr<FilterEffect> lastEffect = filterEffectBuilder->lastEffect();
m_resolvedFilter = imageFilterBuilder.build(lastEffect.get(), ColorSpaceDeviceRGB);
if (m_resolvedFilter)
- updateFilterReferences(toHTMLCanvasElement(styleResolutionHost), context, filterStyle->filter());
+ context->updateFilterReferences(filterStyle->filter());
}
return m_resolvedFilter.get();
}
-bool CanvasRenderingContext2DState::hasFilter(Element* styleResolutionHost, const Font& font, IntSize canvasSize, CanvasRenderingContext2D* context) const
+bool CanvasRenderingContext2DState::hasFilter(Element* styleResolutionHost, const Font* font, IntSize canvasSize, BaseRenderingContext2D* context) const
{
// Checking for a non-null m_filterValue isn't sufficient, since this value
// might refer to a non-existent filter.

Powered by Google App Engine
This is Rietveld 408576698