WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-98733-20121010065805.patch (text/plain), 24.51 KB, created by
Dongseong Hwang
on 2012-10-09 14:59:22 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Dongseong Hwang
Created:
2012-10-09 14:59:22 PDT
Size:
24.51 KB
patch
obsolete
>Subversion Revision: 130574 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index efb0c5276f5ebeeb19c5ef567a6797b2da89456e..d20269b7c3a344fbe50121f76da8b6dda2afda90 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,18 @@ >+2012-10-09 Huang Dongsung <luxtella@company100.net> >+ >+ [WK2] Add CustomFilterOperation serialization in ArgumentCoder. >+ https://bugs.webkit.org/show_bug.cgi?id=98733 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Change CustomFilterOperation::parameters() to const function, because >+ this method is a getter and a const instance needs to call this method. >+ >+ No new tests because there is no change in behavior. >+ >+ * platform/graphics/filters/CustomFilterOperation.h: >+ (WebCore::CustomFilterOperation::parameters): >+ > 2012-10-05 Huang Dongsung <luxtella@company100.net> > > [Qt] Make ImageBufferQt use premultiplied converting functions in Color.h instead of its own mechanism. >diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog >index 131a34db83e0e042e78cae45111ff9dd0d74e8f1..284e4e5ab149267997ed54839d5425aa9caa7fca 100644 >--- a/Source/WebKit2/ChangeLog >+++ b/Source/WebKit2/ChangeLog >@@ -1,3 +1,33 @@ >+2012-10-09 Huang Dongsung <luxtella@company100.net> >+ >+ [WK2] Add CustomFilterOperation serialization in ArgumentCoder. >+ https://bugs.webkit.org/show_bug.cgi?id=98733 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add ArgumentCoders for CustomFilterOperation and all dependent classes. >+ Coordinated graphics will use this css shaders serialization when it enables CSS >+ Shaders. >+ >+ No new tests, code path is not activated yet. >+ >+ * GNUmakefile.list.am: >+ * Shared/StillCustomFilterProgram.h: Added. >+ (WebKit): >+ (StillCustomFilterProgram): >+ StillCustomFilterProgram is a still image of StyleCustomFilterProgram. UI >+ Process uses this class instead of StyleCustomFilterProgram because UI >+ Process can not get a custom filter program via network. >+ (WebKit::StillCustomFilterProgram::create): >+ (WebKit::StillCustomFilterProgram::StillCustomFilterProgram): >+ * Shared/WebCoreArgumentCoders.cpp: >+ (CoreIPC::::encode): >+ (CoreIPC::::decode): >+ (CoreIPC): >+ * Shared/WebCoreArgumentCoders.h: >+ (WebCore): >+ * Target.pri: >+ > 2012-10-05 Sudarsana Nagineni <sudarsana.nagineni@intel.com> > > [WK2][WTR] WebKitTestRunner needs testRunner.setSerializeHTTPLoads >diff --git a/Source/WebCore/platform/graphics/filters/CustomFilterOperation.h b/Source/WebCore/platform/graphics/filters/CustomFilterOperation.h >index 788b3f01626b3f4af0520dd8c6f25af44a2540a3..0d64d236827786453d3eac7a46d705e944f213e6 100644 >--- a/Source/WebCore/platform/graphics/filters/CustomFilterOperation.h >+++ b/Source/WebCore/platform/graphics/filters/CustomFilterOperation.h >@@ -69,7 +69,7 @@ public: > > CustomFilterProgram* program() const { return m_program.get(); } > >- const CustomFilterParameterList& parameters() { return m_parameters; } >+ const CustomFilterParameterList& parameters() const { return m_parameters; } > > unsigned meshRows() const { return m_meshRows; } > unsigned meshColumns() const { return m_meshColumns; } >diff --git a/Source/WebKit2/GNUmakefile.list.am b/Source/WebKit2/GNUmakefile.list.am >index 25432030fe46643eaf28630a2c63259e68394d42..7f1b9e8523a55e6682f3bd7d2dc2eaf5fb64f8c9 100644 >--- a/Source/WebKit2/GNUmakefile.list.am >+++ b/Source/WebKit2/GNUmakefile.list.am >@@ -432,6 +432,7 @@ webkit2_sources += \ > Source/WebKit2/Shared/SessionState.h \ > Source/WebKit2/Shared/StatisticsData.cpp \ > Source/WebKit2/Shared/StatisticsData.h \ >+ Source/WebKit2/Shared/StillCustomFilterProgram.h \ > Source/WebKit2/Shared/StringPairVector.h \ > Source/WebKit2/Shared/soup/PlatformCertificateInfo.cpp \ > Source/WebKit2/Shared/soup/PlatformCertificateInfo.h \ >diff --git a/Source/WebKit2/Shared/StillCustomFilterProgram.h b/Source/WebKit2/Shared/StillCustomFilterProgram.h >new file mode 100644 >index 0000000000000000000000000000000000000000..42df95ae7708fa2e8a06e444ede8fc977c73a7ec >--- /dev/null >+++ b/Source/WebKit2/Shared/StillCustomFilterProgram.h >@@ -0,0 +1,77 @@ >+/* >+ * Copyright (C) 2012 Company 100, Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * >+ * 1. Redistributions of source code must retain the above >+ * copyright notice, this list of conditions and the following >+ * disclaimer. >+ * 2. Redistributions in binary form must reproduce the above >+ * copyright notice, this list of conditions and the following >+ * disclaimer in the documentation and/or other materials >+ * provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER âAS ISâ AND ANY >+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE >+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, >+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, >+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR >+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY >+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR >+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF >+ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF >+ * SUCH DAMAGE. >+ */ >+ >+#ifndef StillCustomFilterProgram_h >+#define StillCustomFilterProgram_h >+ >+#if ENABLE(CSS_SHADERS) >+#include <WebCore/CustomFilterProgram.h> >+ >+namespace WebKit { >+ >+class StillCustomFilterProgram : public WebCore::CustomFilterProgram { >+public: >+ static PassRefPtr<StillCustomFilterProgram> create(String vertexShaderString, String m_fragmentShaderString, WebCore::CustomFilterProgramMixSettings mixSettings) >+ { >+ return adoptRef(new StillCustomFilterProgram(vertexShaderString, m_fragmentShaderString, mixSettings)); >+ } >+ >+ virtual bool isLoaded() const OVERRIDE { return true; } >+ >+ virtual bool operator==(const CustomFilterProgram& o) const OVERRIDE >+ { >+ // The following cast is ugly, but StillCustomFilterProgram is the single implementation of CustomFilterProgram on UI Process. >+ const StillCustomFilterProgram* other = static_cast<const StillCustomFilterProgram*>(&o); >+ return mixSettings() == other->mixSettings() && m_vertexShaderString == other->vertexShaderString() && m_fragmentShaderString == other->fragmentShaderString(); >+ } >+ >+protected: >+ virtual String vertexShaderString() const OVERRIDE { return m_vertexShaderString; } >+ virtual String fragmentShaderString() const OVERRIDE { return m_fragmentShaderString; } >+ >+ virtual void willHaveClients() OVERRIDE { notifyClients(); } >+ virtual void didRemoveLastClient() OVERRIDE { } >+ >+private: >+ StillCustomFilterProgram(String vertexShaderString, String fragmentShader, WebCore::CustomFilterProgramMixSettings mixSettings) >+ : WebCore::CustomFilterProgram(mixSettings) >+ , m_vertexShaderString(vertexShaderString) >+ , m_fragmentShaderString(m_fragmentShaderString) >+ { >+ } >+ >+ String m_vertexShaderString; >+ String m_fragmentShaderString; >+}; >+ >+} // namespace WebKit >+ >+#endif // ENABLE(CSS_SHADERS) >+ >+#endif // StillCustomFilterProgram_h >diff --git a/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp b/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp >index cbf6249268967a9948e94f1676466b76d17bb251..e3e86cf1b7d7e2cedbce69cca5078c353e9ac601 100644 >--- a/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp >+++ b/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp >@@ -55,6 +55,23 @@ > #if ENABLE(CSS_FILTERS) > #include <WebCore/FilterOperations.h> > #endif >+ >+#if ENABLE(CSS_SHADERS) >+#include "StillCustomFilterProgram.h" >+#include <WebCore/CustomFilterArrayParameter.h> >+#include <WebCore/CustomFilterNumberParameter.h> >+#include <WebCore/CustomFilterOperation.h> >+#include <WebCore/CustomFilterProgram.h> >+#include <WebCore/CustomFilterTransformParameter.h> >+#include <WebCore/IdentityTransformOperation.h> >+#include <WebCore/Matrix3DTransformOperation.h> >+#include <WebCore/MatrixTransformOperation.h> >+#include <WebCore/PerspectiveTransformOperation.h> >+#include <WebCore/RotateTransformOperation.h> >+#include <WebCore/ScaleTransformOperation.h> >+#include <WebCore/SkewTransformOperation.h> >+#include <WebCore/TranslateTransformOperation.h> >+#endif > #endif > > using namespace WebCore; >@@ -722,6 +739,57 @@ void ArgumentCoder<WebCore::FilterOperations>::encode(ArgumentEncoder* encoder, > ArgumentCoder<Color>::encode(encoder, shadow->color()); > break; > } >+#if ENABLE(CSS_SHADERS) >+ case FilterOperation::CUSTOM: { >+ const CustomFilterOperation* customOperation = static_cast<const CustomFilterOperation*>(filter); >+ >+ ASSERT(customOperation->program()); >+ RefPtr<CustomFilterProgram> program = customOperation->program(); >+ ASSERT(program->isLoaded()); >+ CustomFilterProgramInfo programInfo = program->programInfo(); >+ encoder->encode(programInfo.vertexShaderString()); >+ encoder->encode(programInfo.fragmentShaderString()); >+ CustomFilterProgramMixSettings mixSettings = programInfo.mixSettings(); >+ encoder->encode(mixSettings.enabled); >+ encoder->encodeEnum(mixSettings.blendMode); >+ encoder->encodeEnum(mixSettings.compositeOperator); >+ >+ CustomFilterParameterList parameters = customOperation->parameters(); >+ encoder->encodeUInt32(parameters.size()); >+ for (size_t i = 0; i < parameters.size(); ++i) { >+ encoder->encode(parameters[i]->name()); >+ encoder->encodeEnum(parameters[i]->parameterType()); >+ >+ switch (parameters[i]->parameterType()) { >+ case CustomFilterParameter::ARRAY: { >+ CustomFilterArrayParameter* arrayParameter = static_cast<CustomFilterArrayParameter*>(parameters[i].get()); >+ encoder->encodeUInt32(arrayParameter->size()); >+ for (size_t j = 0; j < arrayParameter->size(); ++j) >+ encoder->encode(arrayParameter->valueAt(j)); >+ break; >+ } >+ case CustomFilterParameter::NUMBER: { >+ CustomFilterNumberParameter* nubmerParameter = static_cast<CustomFilterNumberParameter*>(parameters[i].get()); >+ encoder->encodeUInt32(nubmerParameter->size()); >+ for (size_t j = 0; j < nubmerParameter->size(); ++j) >+ encoder->encode(nubmerParameter->valueAt(j)); >+ break; >+ } >+ case CustomFilterParameter::TRANSFORM: { >+ CustomFilterTransformParameter* transformParameter = static_cast<CustomFilterTransformParameter*>(parameters[i].get()); >+ ArgumentCoder<TransformOperations>::encode(encoder, transformParameter->operations()); >+ break; >+ } >+ } >+ } >+ >+ encoder->encode(customOperation->meshRows()); >+ encoder->encode(customOperation->meshColumns()); >+ encoder->encodeEnum(customOperation->meshBoxType()); >+ encoder->encodeEnum(customOperation->meshType()); >+ break; >+ } >+#endif > default: > break; > } >@@ -783,6 +851,94 @@ bool ArgumentCoder<WebCore::FilterOperations>::decode(ArgumentDecoder* decoder, > filter = DropShadowFilterOperation::create(location, stdDeviation, color, type); > break; > } >+#if ENABLE(CSS_SHADERS) >+ case FilterOperation::CUSTOM: { >+ String vertexShaderString; >+ String fragmentShaderString; >+ CustomFilterProgramMixSettings mixSettings; >+ if (!decoder->decode(vertexShaderString)) >+ return false; >+ if (!decoder->decode(fragmentShaderString)) >+ return false; >+ if (!decoder->decode(mixSettings.enabled)) >+ return false; >+ if (!decoder->decodeEnum(mixSettings.blendMode)) >+ return false; >+ if (!decoder->decodeEnum(mixSettings.compositeOperator)) >+ return false; >+ RefPtr<CustomFilterProgram> program = StillCustomFilterProgram::create(vertexShaderString, fragmentShaderString, mixSettings); >+ >+ uint32_t parametersSize; >+ if (!decoder->decodeUInt32(parametersSize)) >+ return false; >+ >+ CustomFilterParameterList parameters(parametersSize); >+ for (size_t i = 0; i < parametersSize; ++i) { >+ String name; >+ CustomFilterParameter::ParameterType parameterType; >+ if (!decoder->decode(name)) >+ return false; >+ if (!decoder->decodeEnum(parameterType)) >+ return false; >+ >+ switch (parameterType) { >+ case CustomFilterParameter::ARRAY: { >+ RefPtr<CustomFilterArrayParameter> arrayParameter = CustomFilterArrayParameter::create(name); >+ parameters.append(arrayParameter); >+ uint32_t arrayParameterSize; >+ if (!decoder->decodeUInt32(arrayParameterSize)) >+ return false; >+ double arrayParameterValue; >+ for (size_t j = 0; j < arrayParameterSize; ++j) { >+ if (!decoder->decode(arrayParameterValue)) >+ return false; >+ arrayParameter->addValue(arrayParameterValue); >+ } >+ break; >+ } >+ case CustomFilterParameter::NUMBER: { >+ RefPtr<CustomFilterNumberParameter> numberParameter = CustomFilterNumberParameter::create(name); >+ parameters.append(numberParameter); >+ uint32_t numberParameterSize; >+ if (!decoder->decodeUInt32(numberParameterSize)) >+ return false; >+ double numberParameterValue; >+ for (size_t j = 0; j < numberParameterSize; ++j) { >+ if (!decoder->decode(numberParameterValue)) >+ return false; >+ numberParameter->addValue(numberParameterValue); >+ } >+ break; >+ } >+ case CustomFilterParameter::TRANSFORM: { >+ RefPtr<CustomFilterTransformParameter> transformParameter = CustomFilterTransformParameter::create(name); >+ parameters.append(transformParameter); >+ TransformOperations operations; >+ if (!ArgumentCoder<TransformOperations>::decode(decoder, operations)) >+ return false; >+ transformParameter->setOperations(operations); >+ break; >+ } >+ } >+ } >+ >+ unsigned meshRows; >+ unsigned meshColumns; >+ CustomFilterOperation::MeshBoxType meshBoxType; >+ CustomFilterOperation::MeshType meshType; >+ if (!decoder->decode(meshRows)) >+ return false; >+ if (!decoder->decode(meshColumns)) >+ return false; >+ if (!decoder->decodeEnum(meshBoxType)) >+ return false; >+ if (!decoder->decodeEnum(meshType)) >+ return false; >+ >+ filter = CustomFilterOperation::create(program, parameters, meshRows, meshColumns, meshBoxType, meshType); >+ break; >+ } >+#endif > default: > break; > } >@@ -795,6 +951,168 @@ bool ArgumentCoder<WebCore::FilterOperations>::decode(ArgumentDecoder* decoder, > } > #endif > >+#if ENABLE(CSS_SHADERS) >+void ArgumentCoder<TransformOperations>::encode(ArgumentEncoder* encoder, const TransformOperations& transformOperations) >+{ >+ encoder->encodeUInt32(transformOperations.size()); >+ for (size_t i = 0; i < transformOperations.size(); ++i) { >+ const TransformOperation* operation = transformOperations.at(i); >+ encoder->encodeEnum(operation->getOperationType()); >+ >+ switch (operation->getOperationType()) { >+ case TransformOperation::SCALE_X: >+ case TransformOperation::SCALE_Y: >+ case TransformOperation::SCALE: >+ case TransformOperation::SCALE_Z: >+ case TransformOperation::SCALE_3D: >+ encoder->encode(static_cast<const ScaleTransformOperation*>(operation)->x()); >+ encoder->encode(static_cast<const ScaleTransformOperation*>(operation)->y()); >+ encoder->encode(static_cast<const ScaleTransformOperation*>(operation)->z()); >+ break; >+ case TransformOperation::TRANSLATE_X: >+ case TransformOperation::TRANSLATE_Y: >+ case TransformOperation::TRANSLATE: >+ case TransformOperation::TRANSLATE_Z: >+ case TransformOperation::TRANSLATE_3D: >+ ArgumentCoder<Length>::encode(encoder, static_cast<const TranslateTransformOperation*>(operation)->x()); >+ ArgumentCoder<Length>::encode(encoder, static_cast<const TranslateTransformOperation*>(operation)->y()); >+ ArgumentCoder<Length>::encode(encoder, static_cast<const TranslateTransformOperation*>(operation)->z()); >+ break; >+ case TransformOperation::ROTATE: >+ case TransformOperation::ROTATE_X: >+ case TransformOperation::ROTATE_Y: >+ case TransformOperation::ROTATE_3D: >+ encoder->encode(static_cast<const RotateTransformOperation*>(operation)->x()); >+ encoder->encode(static_cast<const RotateTransformOperation*>(operation)->y()); >+ encoder->encode(static_cast<const RotateTransformOperation*>(operation)->z()); >+ encoder->encode(static_cast<const RotateTransformOperation*>(operation)->angle()); >+ break; >+ case TransformOperation::SKEW_X: >+ case TransformOperation::SKEW_Y: >+ case TransformOperation::SKEW: >+ encoder->encode(static_cast<const SkewTransformOperation*>(operation)->angleX()); >+ encoder->encode(static_cast<const SkewTransformOperation*>(operation)->angleY()); >+ break; >+ case TransformOperation::MATRIX: >+ ArgumentCoder<TransformationMatrix>::encode(encoder, static_cast<const MatrixTransformOperation*>(operation)->matrix()); >+ break; >+ case TransformOperation::MATRIX_3D: >+ ArgumentCoder<TransformationMatrix>::encode(encoder, static_cast<const Matrix3DTransformOperation*>(operation)->matrix()); >+ break; >+ case TransformOperation::PERSPECTIVE: >+ ArgumentCoder<Length>::encode(encoder, static_cast<const PerspectiveTransformOperation*>(operation)->perspective()); >+ break; >+ case TransformOperation::IDENTITY: >+ break; >+ case TransformOperation::NONE: >+ ASSERT_NOT_REACHED(); >+ break; >+ } >+ } >+} >+ >+bool ArgumentCoder<TransformOperations>::decode(ArgumentDecoder* decoder, TransformOperations& transformOperations) >+{ >+ uint32_t operationsSize; >+ if (!decoder->decodeUInt32(operationsSize)) >+ return false; >+ >+ for (size_t i = 0; i < operationsSize; ++i) { >+ TransformOperation::OperationType operationType; >+ if (!decoder->decodeEnum(operationType)) >+ return false; >+ >+ switch (operationType) { >+ case TransformOperation::SCALE_X: >+ case TransformOperation::SCALE_Y: >+ case TransformOperation::SCALE: >+ case TransformOperation::SCALE_Z: >+ case TransformOperation::SCALE_3D: { >+ double x, y, z; >+ if (!decoder->decode(x)) >+ return false; >+ if (!decoder->decode(y)) >+ return false; >+ if (!decoder->decode(z)) >+ return false; >+ transformOperations.operations().append(ScaleTransformOperation::create(x, y, z, operationType)); >+ break; >+ } >+ case TransformOperation::TRANSLATE_X: >+ case TransformOperation::TRANSLATE_Y: >+ case TransformOperation::TRANSLATE: >+ case TransformOperation::TRANSLATE_Z: >+ case TransformOperation::TRANSLATE_3D: { >+ Length x, y, z; >+ if (!ArgumentCoder<Length>::decode(decoder, x)) >+ return false; >+ if (!ArgumentCoder<Length>::decode(decoder, y)) >+ return false; >+ if (!ArgumentCoder<Length>::decode(decoder, z)) >+ return false; >+ transformOperations.operations().append(TranslateTransformOperation::create(x, y, z, operationType)); >+ break; >+ } >+ case TransformOperation::ROTATE: >+ case TransformOperation::ROTATE_X: >+ case TransformOperation::ROTATE_Y: >+ case TransformOperation::ROTATE_3D: { >+ double x, y, z, angle; >+ if (!decoder->decode(x)) >+ return false; >+ if (!decoder->decode(y)) >+ return false; >+ if (!decoder->decode(z)) >+ return false; >+ if (!decoder->decode(angle)) >+ return false; >+ transformOperations.operations().append(RotateTransformOperation::create(x, y, z, angle, operationType)); >+ break; >+ } >+ case TransformOperation::SKEW_X: >+ case TransformOperation::SKEW_Y: >+ case TransformOperation::SKEW: { >+ double angleX, angleY; >+ if (!decoder->decode(angleX)) >+ return false; >+ if (!decoder->decode(angleY)) >+ return false; >+ transformOperations.operations().append(SkewTransformOperation::create(angleX, angleY, operationType)); >+ break; >+ } >+ case TransformOperation::MATRIX: { >+ TransformationMatrix matrix; >+ if (!ArgumentCoder<TransformationMatrix>::decode(decoder, matrix)) >+ return false; >+ transformOperations.operations().append(MatrixTransformOperation::create(matrix)); >+ break; >+ } >+ case TransformOperation::MATRIX_3D: { >+ TransformationMatrix matrix; >+ if (!ArgumentCoder<TransformationMatrix>::decode(decoder, matrix)) >+ return false; >+ transformOperations.operations().append(Matrix3DTransformOperation::create(matrix)); >+ break; >+ } >+ case TransformOperation::PERSPECTIVE: { >+ Length perspective; >+ if (!ArgumentCoder<Length>::decode(decoder, perspective)) >+ return false; >+ transformOperations.operations().append(PerspectiveTransformOperation::create(perspective)); >+ break; >+ } >+ case TransformOperation::IDENTITY: >+ transformOperations.operations().append(IdentityTransformOperation::create()); >+ break; >+ case TransformOperation::NONE: >+ ASSERT_NOT_REACHED(); >+ break; >+ } >+ } >+ return true; >+} >+#endif >+ > #endif > > } // namespace CoreIPC >diff --git a/Source/WebKit2/Shared/WebCoreArgumentCoders.h b/Source/WebKit2/Shared/WebCoreArgumentCoders.h >index b08f118f97b80157698a7218e6d697f315bf07a2..f37fd3ddc7b16dcac54927fff086f1906e174455 100644 >--- a/Source/WebKit2/Shared/WebCoreArgumentCoders.h >+++ b/Source/WebKit2/Shared/WebCoreArgumentCoders.h >@@ -79,6 +79,12 @@ namespace WebCore { > class FilterOperations; > } > #endif >+ >+#if ENABLE(CSS_SHADERS) >+namespace WebCore { >+ class TransformOperations; >+} >+#endif > #endif > > namespace CoreIPC { >@@ -251,6 +257,13 @@ template<> struct ArgumentCoder<WebCore::FilterOperations> { > static bool decode(ArgumentDecoder*, WebCore::FilterOperations&); > }; > #endif >+ >+#if ENABLE(CSS_SHADERS) >+template<> struct ArgumentCoder<WebCore::TransformOperations> { >+ static void encode(ArgumentEncoder*, const WebCore::TransformOperations&); >+ static bool decode(ArgumentDecoder*, WebCore::TransformOperations&); >+}; >+#endif > #endif > > >diff --git a/Source/WebKit2/Target.pri b/Source/WebKit2/Target.pri >index 4f3930753cafc18c0007ad7ca1bf488ee614b936..01226bedc93eaeff978be47db9a24dff5df84652 100644 >--- a/Source/WebKit2/Target.pri >+++ b/Source/WebKit2/Target.pri >@@ -93,6 +93,7 @@ HEADERS += \ > Shared/SecurityOriginData.h \ > Shared/SessionState.h \ > Shared/StatisticsData.h \ >+ Shared/StillCustomFilterProgram.h \ > Shared/StringPairVector.h \ > Shared/SurfaceUpdateInfo.h \ > Shared/UpdateInfo.h \
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 98733
:
167718
|
167722
|
167854
|
167967
|
168539
|
168595
|
168619
|
168625
|
168668
|
168670
|
169382