Bug 114378

Summary: [CSS Filters] Move all the FilterOperation classes to rendering/style folder
Product: WebKit Reporter: Alexandru Chiculita <achicu>
Component: Layout and RenderingAssignee: Alexandru Chiculita <achicu>
Status: NEW ---    
Severity: Normal CC: commit-queue, dino, eric, esprehn+autocc, gyuyoung.kim, krit, ojan.autocc, rakuco
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 68469    
Attachments:
Description Flags
Patch V1 simon.fraser: review-, simon.fraser: commit-queue-

Description Alexandru Chiculita 2013-04-10 13:35:45 PDT
FilterOperation classes are CSS/Rendering/Style structures and should be part of the WebCore style folder. There are already a couple of layering violations in the ReferenceFilterOperation and moving to rendering/style would fix that.
Comment 1 Alexandru Chiculita 2013-04-10 14:37:19 PDT
Created attachment 197407 [details]
Patch V1
Comment 2 WebKit Commit Bot 2013-04-10 14:41:17 PDT
Attachment 197407 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/CMakeLists.txt', u'Source/WebCore/ChangeLog', u'Source/WebCore/GNUmakefile.list.am', u'Source/WebCore/Target.pri', u'Source/WebCore/WebCore.vcproj/WebCore.vcproj', u'Source/WebCore/WebCore.xcodeproj/project.pbxproj', u'Source/WebCore/platform/graphics/filters/CustomFilterOperation.cpp', u'Source/WebCore/platform/graphics/filters/CustomFilterOperation.h', u'Source/WebCore/platform/graphics/filters/FilterOperation.cpp', u'Source/WebCore/platform/graphics/filters/FilterOperation.h', u'Source/WebCore/platform/graphics/filters/FilterOperations.cpp', u'Source/WebCore/platform/graphics/filters/FilterOperations.h', u'Source/WebCore/platform/graphics/filters/ValidatedCustomFilterOperation.cpp', u'Source/WebCore/platform/graphics/filters/ValidatedCustomFilterOperation.h', u'Source/WebCore/rendering/style/CustomFilterOperation.cpp', u'Source/WebCore/rendering/style/CustomFilterOperation.h', u'Source/WebCore/rendering/style/FilterOperation.cpp', u'Source/WebCore/rendering/style/FilterOperation.h', u'Source/WebCore/rendering/style/FilterOperations.cpp', u'Source/WebCore/rendering/style/FilterOperations.h', u'Source/WebCore/rendering/style/ValidatedCustomFilterOperation.cpp', u'Source/WebCore/rendering/style/ValidatedCustomFilterOperation.h']" exit_code: 1
Source/WebCore/rendering/style/FilterOperation.h:64:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:65:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:66:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:67:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:68:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:69:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:70:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:71:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:72:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:73:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:74:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:76:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:77:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:79:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/FilterOperation.h:80:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 15 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Alexandru Chiculita 2013-04-10 14:44:22 PDT
(In reply to comment #2)
> Attachment 197407 [details] did not pass style-queue:

We need a different bug to fix the style issue of the filter operations.
Comment 4 Simon Fraser (smfr) 2013-04-10 15:40:06 PDT
Comment on attachment 197407 [details]
Patch V1

View in context: https://bugs.webkit.org/attachment.cgi?id=197407&action=review

> Source/WebCore/ChangeLog:13
> +        for the -webkit-filter CSS property. ReferenceFilterOperation already had references to WebCore
> +        structures, so this patch will also fix that layering violation.

But existing platform/ code references these classes, e.g. platform/graphics/GraphicsLayer.h includes FilterOperation.h
Comment 5 Dirk Schulze 2013-12-22 03:07:12 PST
(In reply to comment #4)
> (From update of attachment 197407 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=197407&action=review
> 
> > Source/WebCore/ChangeLog:13
> > +        for the -webkit-filter CSS property. ReferenceFilterOperation already had references to WebCore
> > +        structures, so this patch will also fix that layering violation.
> 
> But existing platform/ code references these classes, e.g. platform/graphics/GraphicsLayer.h includes FilterOperation.h

This is correct. I think it would be a cleaner solution to have an light-weighted filter representation in WebCore that creates a platform dependent filter representation in platform that can then be used by GraphicsLayer.h and others. The code as is right now is confusing and has a lot of cutting points with WebCore already.

I would like the platform representation not be aware of any SVG or CSS filters but pure filter primitive chains, serialized as much as possible.