RESOLVED FIXED Bug 97147
[chromium] Add setters to WebFilterOperation for IPC pickling
https://bugs.webkit.org/show_bug.cgi?id=97147
Summary [chromium] Add setters to WebFilterOperation for IPC pickling
Dana Jansens
Reported 2012-09-19 16:37:30 PDT
[chromium] Add flatten() and unflatten() to WebFilterOperation for IPC pickling
Attachments
Patch (9.29 KB, patch)
2012-09-19 16:51 PDT, Dana Jansens
no flags
Patch (9.86 KB, patch)
2012-09-20 17:07 PDT, Dana Jansens
no flags
Patch (9.99 KB, patch)
2012-09-20 17:25 PDT, Dana Jansens
no flags
Patch for landing (9.98 KB, patch)
2012-09-24 08:12 PDT, Dana Jansens
no flags
Patch for landing (9.98 KB, patch)
2012-09-24 08:12 PDT, Dana Jansens
no flags
Dana Jansens
Comment 1 2012-09-19 16:51:36 PDT
WebKit Review Bot
Comment 2 2012-09-19 16:53:57 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.
James Robinson
Comment 3 2012-09-19 17:43:26 PDT
I think Stephen wanted to change the filter list into a complete graph (hopefully a DAG) of skia types - is that right? If so we should serialize that and not WebKit API types.
James Robinson
Comment 4 2012-09-19 17:44:43 PDT
Comment on attachment 164802 [details] Patch I'd rather not put pickling or seralization logic directly in WebKit API. If this type is going to be transported as a WebFoo then expose enough getters/setters to serialize/deserialize the types from chromium land.
Alexandre Elias
Comment 5 2012-09-19 17:48:54 PDT
(In reply to comment #4) > (From update of attachment 164802 [details]) > I'd rather not put pickling or seralization logic directly in WebKit API. If this type is going to be transported as a WebFoo then expose enough getters/setters to serialize/deserialize the types from chromium land. I tried to do that earlier and the results were painful. You need quite a lot of custom logic to cover all the variants and you can't use the "create" methods (since you're passed in a created but uninitialized logic). And it would mean having to write a patch in both trees to do any change to WebFilterOperations (in practice the Chromium side might just be forgotten about). I think the better options are either this "flatten" method approach or just turning this into a struct.
James Robinson
Comment 6 2012-09-19 18:07:19 PDT
I think the real issue here is that we're overloading the WebKit API types for two things - transit types between WebCore stuff and the compositor and internal CC data types. Sharing these concerns was expedient for GTFO, but I think we really need to migrate the internal CC needs to use different types and have CC-internal concerns handled on the chromium side. Serialization falls into this category - it's not something you need for communicating between WebCore and the compositor implementation, it's something that CC needs internally. We don't want to have to make a WebKit patch every time we want to change the serialization format for filters - that'd be ridiculous. Of course in this particular case if we move to expressing filter changes are graphs of Skia types this is moot for this particular instance.
Alexandre Elias
Comment 7 2012-09-19 19:53:18 PDT
This is actually the only WebKit type that needs special treatment. So we can avoid the philosophical debate if it's going away to get replaced by entirely Chromium/Skia types. Is the new format coming soon? The remaining question is whether we should land some kind of stopgap.
James Robinson
Comment 8 2012-09-19 19:58:26 PDT
That's a question for Stephen - there's a design doc from August and I know it's in the plans, but I don't know the timeline.
Stephen White
Comment 9 2012-09-19 21:46:33 PDT
(In reply to comment #8) > That's a question for Stephen - there's a design doc from August and I know it's in the plans, but I don't know the timeline. I have it as a stretch goal for this quarter, but it's looking unlikely. I think it'll more likely be next quarter. I'm visiting the NC team right now hashing out some of the details.
Dana Jansens
Comment 10 2012-09-20 08:06:27 PDT
Serializing these is one of the blockers for ubercomp, so what's the right approach to take for now? 1) We can turn this into a struct and drop the ASSERT() guards 2) We can build a bunch of logic into the pickler to know which fields to read for which types, and add setters for everything to the API. 3) We can flatten()/unflatten() 4) ?
Stephen White
Comment 11 2012-09-20 08:24:34 PDT
Comment on attachment 164802 [details] Patch BTW I'm fine with this patch as-is as a stopgap.
Dana Jansens
Comment 12 2012-09-20 12:56:57 PDT
@jamesr thoughts?
James Robinson
Comment 13 2012-09-20 13:20:56 PDT
I think 1 or 2 make the most sense.
Dana Jansens
Comment 14 2012-09-20 17:07:26 PDT
Dana Jansens
Comment 15 2012-09-20 17:25:23 PDT
Created attachment 165019 [details] Patch fix asserts
Stephen White
Comment 16 2012-09-20 19:50:02 PDT
Comment on attachment 165019 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=165019&action=review I'm ok with this, but will leave for James. > Source/Platform/chromium/public/WebFilterOperation.h:109 > + static WebFilterOperation createEmptyFilter() { return WebFilterOperation(FilterTypeGrayscale, 0.0); } We could create a FilterTypeUnknown or something for this purpose, which might allow for some sanity-checking.
Dana Jansens
Comment 17 2012-09-20 20:10:31 PDT
Heh I actually made a FilterTypeUnknown at first but then switches in chromium caused errors and I figured this wasn't worth a 3 way patch..
James Robinson
Comment 18 2012-09-21 11:21:22 PDT
Comment on attachment 165019 [details] Patch R=me
WebKit Review Bot
Comment 19 2012-09-21 11:46:56 PDT
Comment on attachment 165019 [details] Patch Clearing flags on attachment: 165019 Committed r129243: <http://trac.webkit.org/changeset/129243>
WebKit Review Bot
Comment 20 2012-09-21 11:47:00 PDT
All reviewed patches have been landed. Closing bug.
Yury Semikhatsky
Comment 21 2012-09-24 02:39:23 PDT
Reopening since the change was rolled out in http://trac.webkit.org/changeset/129337
Dana Jansens
Comment 22 2012-09-24 08:12:06 PDT
Created attachment 165384 [details] Patch for landing
Dana Jansens
Comment 23 2012-09-24 08:12:53 PDT
Created attachment 165385 [details] Patch for landing
WebKit Review Bot
Comment 24 2012-09-24 08:46:33 PDT
Comment on attachment 165385 [details] Patch for landing Clearing flags on attachment: 165385 Committed r129373: <http://trac.webkit.org/changeset/129373>
WebKit Review Bot
Comment 25 2012-09-24 08:46:38 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.