RESOLVED FIXED 87510
[chromium] create WebTransformOperation interface for chromium platform
https://bugs.webkit.org/show_bug.cgi?id=87510
Summary [chromium] create WebTransformOperation interface for chromium platform
vollick
Reported 2012-05-25 10:17:50 PDT
Continue the work done in https://bugs.webkit.org/show_bug.cgi?id=86049 for transform operations.
Attachments
Patch (66.15 KB, patch)
2012-05-25 10:34 PDT, vollick
no flags
Patch (22.08 KB, patch)
2012-05-25 12:29 PDT, vollick
no flags
Patch (24.33 KB, patch)
2012-05-28 07:19 PDT, vollick
no flags
Patch (27.00 KB, patch)
2012-05-30 10:02 PDT, vollick
no flags
Patch (26.50 KB, patch)
2012-05-30 19:57 PDT, vollick
no flags
vollick
Comment 1 2012-05-25 10:34:33 PDT
vollick
Comment 2 2012-05-25 12:29:31 PDT
Created attachment 144123 [details] Patch Got rid of the type hierarchy. There is now only a WebTransformOperations object that maintains a collection of WebTransformOperation structs (which are just a matrix and a type).
WebKit Review Bot
Comment 3 2012-05-25 12:31:29 PDT
Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.
WebKit Review Bot
Comment 4 2012-05-25 12:31:47 PDT
Attachment 144123 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/Platform/ChangeLog', u'Source/Platf..." exit_code: 1 Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 1 in 7 files If any of these errors are false positives, please file a bug against check-webkit-style.
James Robinson
Comment 5 2012-05-25 13:20:16 PDT
Comment on attachment 144123 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=144123&action=review Needs a touch more indirection but the API looks quite nice. > Source/Platform/chromium/public/WebTransformOperations.h:30 > +#include <wtf/Vector.h> this has to be hidden - users in the chromium repo don't have WTF/ on their include path so this won't work. One option is to have a WebTransformOperationsPrivate that is forward declared here and held via a WebPrivateOwnPtr and have that class' impl hold a WTF::Vector > Source/Platform/chromium/public/WebTransformOperations.h:51 > + WebTransformationMatrix apply() const; please add WEBKIT_EXPORT for functions declared here but defined in the .cpp
vollick
Comment 6 2012-05-28 07:19:01 PDT
Created attachment 144355 [details] Patch (In reply to comment #5) > (From update of attachment 144123 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=144123&action=review > > Needs a touch more indirection but the API looks quite nice. > > > Source/Platform/chromium/public/WebTransformOperations.h:30 > > +#include <wtf/Vector.h> > > this has to be hidden - users in the chromium repo don't have WTF/ on their include path so this won't work. Done. > > One option is to have a WebTransformOperationsPrivate that is forward declared here and held via a WebPrivateOwnPtr and have that class' impl hold a WTF::Vector > > > Source/Platform/chromium/public/WebTransformOperations.h:51 > > + WebTransformationMatrix apply() const; > > please add WEBKIT_EXPORT for functions declared here but defined in the .cpp Done.
WebKit Review Bot
Comment 7 2012-05-28 07:21:55 PDT
Attachment 144355 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/Platform/ChangeLog', u'Source/Platf..." exit_code: 1 Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 1 in 7 files If any of these errors are false positives, please file a bug against check-webkit-style.
James Robinson
Comment 8 2012-05-29 17:45:57 PDT
Comment on attachment 144355 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=144355&action=review > Source/Platform/chromium/public/WebTransformOperations.h:43 > + WEBKIT_EXPORT WebTransformOperations(); it's a bit atypical to have exported c'tors / d'tors in the WebKit API - see "Methods" in http://trac.webkit.org/wiki/ChromiumWebKitAPI. It's more typical to have inline c'tors that call exported functions if necessary > Source/Platform/chromium/public/WebTransformOperations.h:46 > + // Not virtual. Should not be subclassed. This comment isn't really necessary, IMO > Source/Platform/chromium/public/WebTransformOperations.h:75 > + enum Type { See "Enums" in http://trac.webkit.org/wiki/ChromiumWebKitAPI
vollick
Comment 9 2012-05-30 10:02:22 PDT
Created attachment 144848 [details] Patch (In reply to comment #8) > (From update of attachment 144355 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=144355&action=review > > > Source/Platform/chromium/public/WebTransformOperations.h:43 > > + WEBKIT_EXPORT WebTransformOperations(); > > it's a bit atypical to have exported c'tors / d'tors in the WebKit API - see "Methods" in http://trac.webkit.org/wiki/ChromiumWebKitAPI. It's more typical to have inline c'tors that call exported functions if necessary Done. > > > Source/Platform/chromium/public/WebTransformOperations.h:46 > > + // Not virtual. Should not be subclassed. > > This comment isn't really necessary, IMO Removed. > > > Source/Platform/chromium/public/WebTransformOperations.h:75 > > + enum Type { > > See "Enums" in http://trac.webkit.org/wiki/ChromiumWebKitAPI Fixed.
WebKit Review Bot
Comment 10 2012-05-30 10:08:12 PDT
Attachment 144848 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/Platform/ChangeLog', u'Source/Platf..." exit_code: 1 Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 1 in 9 files If any of these errors are false positives, please file a bug against check-webkit-style.
James Robinson
Comment 11 2012-05-30 19:03:47 PDT
Comment on attachment 144848 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=144848&action=review Looks really good, just enough nits to need one more round but it's really close. > Source/Platform/chromium/public/WebTransformOperations.h:28 > +#include <public/WebTransformationMatrix.h> I think you just need a forward declaration of WebTransformationMatrix - no? > Source/Platform/chromium/public/WebTransformOperations.h:54 > + WEBKIT_EXPORT void reset(); > + WEBKIT_EXPORT void initialize(const WebTransformOperations* prototype); why does this take a const pointer instead of a const reference? can reset()/initialize() be private? who needs to call them? > Source/Platform/chromium/public/WebTransformOperations.h:80 > + struct WebTransformOperationsPrivate; We would typically forward declare this outside the class so you don't have to end up writing WebKit::WebTransformOperations::WebTransformOperationsPrivate it's also more typical for opaque forward-declared things to be class instead of struct > Source/Platform/chromium/public/WebTransformOperations.h:85 > + nit: extra newline here > Source/WebCore/WebCore.gypi:6642 > + 'inspector/front-end/Images/searchPrev.png', you probably want to teach your editor to not edit unrelated lines like this (or just suppress OCD urges to kill trailing whitespace), changes like this cause unnecessary churn and risk of merge conflicts > Source/WebCore/platform/chromium/support/WebTransformOperations.cpp:1 > +/* Why is this implemented in WebCore/platform/.... ? we only do that when the implementation depends on some WebCore/platform concepts, but it looks like this doesn't and the .cpp should go in Platform/chromium/src >> Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp:30 >> + > > Alphabetical sorting problem. [build/include_order] [4] I'll fix this style check someday.... > Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp:31 > +#include "CCLayerTreeTestCommon.h" This is an odd dependency - what comes out of this header? the transform_matrix macro?
vollick
Comment 12 2012-05-30 19:57:56 PDT
Created attachment 144975 [details] Patch (In reply to comment #11) > (From update of attachment 144848 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=144848&action=review > > Looks really good, just enough nits to need one more round but it's really close. > > > Source/Platform/chromium/public/WebTransformOperations.h:28 > > +#include <public/WebTransformationMatrix.h> > > I think you just need a forward declaration of WebTransformationMatrix - no? I think I need to include the header since I'm returning WebTransformationMatrix by value. > > > Source/Platform/chromium/public/WebTransformOperations.h:54 > > + WEBKIT_EXPORT void reset(); > > + WEBKIT_EXPORT void initialize(const WebTransformOperations* prototype); > > why does this take a const pointer instead of a const reference? It was so that I could pass NULL from the default constructor. I've created a second initialize function for that case, and changed this one to accept a reference. > > can reset()/initialize() be private? who needs to call them? Fixed. The reason I'd done this was that the spec mentioned that the helper functions called by the inline ctor/dtor should be decorated with WEBKIT_EXPORT and this felt strange for private methods. > > Source/Platform/chromium/public/WebTransformOperations.h:80 > > + struct WebTransformOperationsPrivate; > > We would typically forward declare this outside the class so you don't have to end up writing WebKit::WebTransformOperations::WebTransformOperationsPrivate Done. > > it's also more typical for opaque forward-declared things to be class instead of struct Done. > > > Source/Platform/chromium/public/WebTransformOperations.h:85 > > + > > nit: extra newline here Removed. > > > Source/WebCore/WebCore.gypi:6642 > > + 'inspector/front-end/Images/searchPrev.png', > > you probably want to teach your editor to not edit unrelated lines like this (or just suppress OCD urges to kill trailing whitespace), changes like this cause unnecessary churn and risk of merge conflicts Hehe, it's my editor. I've gotten rid of this noise. > > > Source/WebCore/platform/chromium/support/WebTransformOperations.cpp:1 > > +/* > > Why is this implemented in WebCore/platform/.... ? we only do that when the implementation depends on some WebCore/platform concepts, but it looks like this doesn't and the .cpp should go in Platform/chromium/src It used to be in Platform/src and it was working nicely, but it stopped compiling after I pulled/rebased. The problem is that WebTransformOperations.cpp file includes WebTransformationMatrix.h which includes TransformationMatrix.h, and I can't seem to access that header from Platform/src, so I moved the .cpp into support with WebTransformationMatrix.cpp. > > >> Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp:30 > >> + > > > > Alphabetical sorting problem. [build/include_order] [4] > > I'll fix this style check someday.... > > > Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp:31 > > +#include "CCLayerTreeTestCommon.h" > > This is an odd dependency - what comes out of this header? the transform_matrix macro? Yes, exactly. I'm getting the macro from there. Should I move the macro to a more common header?
WebKit Review Bot
Comment 13 2012-05-30 20:03:11 PDT
Attachment 144975 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/Platform/ChangeLog', u'Source/Platf..." exit_code: 1 Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 1 in 9 files If any of these errors are false positives, please file a bug against check-webkit-style.
Shawn Singh
Comment 14 2012-05-31 10:13:12 PDT
(In reply to comment #12) > > > Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp:31 > > > +#include "CCLayerTreeTestCommon.h" > > > > This is an odd dependency - what comes out of this header? the transform_matrix macro? > Yes, exactly. I'm getting the macro from there. Should I move the macro to a more common header? Just a side comment, as far as I know that _is_ the common header, but maybe we just should change the name at some point? Maybe something like CCTestCommon.h.
James Robinson
Comment 15 2012-05-31 10:16:10 PDT
Comment on attachment 144975 [details] Patch Both the name and the grab-bag nature are confusing to me. R=me
WebKit Review Bot
Comment 16 2012-05-31 10:38:24 PDT
Comment on attachment 144975 [details] Patch Clearing flags on attachment: 144975 Committed r119121: <http://trac.webkit.org/changeset/119121>
WebKit Review Bot
Comment 17 2012-05-31 10:38:30 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.