WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
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
Details
Formatted Diff
Diff
Patch
(9.86 KB, patch)
2012-09-20 17:07 PDT
,
Dana Jansens
no flags
Details
Formatted Diff
Diff
Patch
(9.99 KB, patch)
2012-09-20 17:25 PDT
,
Dana Jansens
no flags
Details
Formatted Diff
Diff
Patch for landing
(9.98 KB, patch)
2012-09-24 08:12 PDT
,
Dana Jansens
no flags
Details
Formatted Diff
Diff
Patch for landing
(9.98 KB, patch)
2012-09-24 08:12 PDT
,
Dana Jansens
no flags
Details
Formatted Diff
Diff
Show Obsolete
(4)
View All
Add attachment
proposed patch, testcase, etc.
Dana Jansens
Comment 1
2012-09-19 16:51:36 PDT
Created
attachment 164802
[details]
Patch
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
Created
attachment 165016
[details]
Patch
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.
Top of Page
Format For Printing
XML
Clone This Bug