Bug 32652 - forward-declare libsoup types
Summary: forward-declare libsoup types
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other OS X 10.5
: P2 Normal
Assignee: Nobody
Depends on:
Blocks: 52451
  Show dependency treegraph
Reported: 2009-12-17 02:55 PST by Evan Martin
Modified: 2014-03-25 15:22 PDT (History)
7 users (show)

See Also:

Patch (2.75 KB, patch)
2009-12-17 02:55 PST, Evan Martin
no flags Details | Formatted Diff | Diff
patch (2.75 KB, patch)
2009-12-17 02:58 PST, Evan Martin
evan: commit-queue-
Details | Formatted Diff | Diff
reupload of patch to trigger bots (2.75 KB, patch)
2010-04-12 16:16 PDT, Evan Martin
evan: review-
evan: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Evan Martin 2009-12-17 02:55:39 PST
Created attachment 45049 [details]

Reduce header interdependencies by forward-declaring types in headers.
Comment 1 Evan Martin 2009-12-17 02:56:48 PST
Comment on attachment 45049 [details]

Please don't cq+ this, it requires a change in libsoup.
Comment 2 Evan Martin 2009-12-17 02:58:34 PST
Created attachment 45050 [details]
Comment 3 Evan Martin 2009-12-17 02:59:31 PST
Comment on attachment 45050 [details]

(Fixed ChangeLog)

Please don't cq+ this, it requires a change in libsoup.
Comment 4 WebKit Review Bot 2009-12-17 03:00:51 PST
style-queue ran check-webkit-style on attachment 45050 [details] without any errors.
Comment 5 Dan Winship 2009-12-17 03:04:00 PST
the soup change is now there in git master
Comment 6 Evan Martin 2009-12-17 08:08:17 PST
I guess to finish this patch I should add a change to configure.ac to depend on whatever libsoup version ends up coming out.
Comment 7 Eric Seidel (no email) 2009-12-28 22:23:10 PST
Comment on attachment 45050 [details]

Do we have an expected timeline for when this should be landed?  Or should we just remove the r+ until then?  I'm not in any huge rush, but it's silly to have non-actionable patches in the pending-commit list.
Comment 8 Evan Martin 2009-12-29 09:38:58 PST
Can you leave a comment saying you officially R+ this so that a later reviewer can see that?  Then it's fine with me to r- it until it's ready.
Comment 9 Eric Seidel (no email) 2009-12-29 10:54:39 PST
Comment on attachment 45050 [details]

Yes.  You should feel free to land this once the soup change is in.  You have both mine and Dave Levin's review for such.

Clearing the r+ for now.  Feel free to mark this r?/cq+ again if you'd prefer to have the commit-queue land this for you.  If you email me, I'l be happy to do the official r+ing again at that time.

Unfortunately we don't have an easy way to exclude non-actionable patches form the pending-commit list.  Adam Barth suggested we create a "CommitBlocked" keyword, which is one option.  I should probably bring it up on WebKit-dev.
Comment 10 Evan Martin 2010-04-12 16:14:11 PDT
BTW, maybe Xan could r+/cq+ this if it looks good?
Comment 11 Evan Martin 2010-04-12 16:16:03 PDT
Created attachment 53190 [details]
reupload of patch to trigger bots

Just want bots to test this again.
Comment 12 WebKit Review Bot 2010-04-12 16:19:37 PDT
Attachment 53190 [details] did not pass style-queue:

Failed to run "WebKitTools/Scripts/check-webkit-style" exit_code: 1
WebCore/platform/network/soup/ResourceResponseSoup.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/platform/network/soup/CookieJarSoup.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 6 files

If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 13 WebKit Review Bot 2010-04-12 16:54:58 PDT
Attachment 53190 [details] did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/1671278
Comment 14 David Levin 2010-04-13 14:17:30 PDT
This appears to break gtk. Please consider uploading anew patch (and canceling this one).
Comment 15 Gustavo Noronha (kov) 2010-04-15 05:47:07 PDT
(In reply to comment #14)
> This appears to break gtk. Please consider uploading anew patch (and canceling
> this one).

That's probably because the bots need a newer soup. What exactly is the change that is required, though?
Comment 16 Evan Martin 2010-04-15 08:01:48 PDT
To avoid the soup headers, I was forward-declaring like this:

+typedef struct _SoupMessage SoupMessage;

At the December hackfest, I think danw modified libsoup to allow such a forward declaration.  But maybe it hasn't been released yet...
Comment 17 Dan Winship 2010-04-15 08:18:47 PDT
When we did the patches, webkit wasn't using SoupMessageFlags, but now it is, so removing the soup.h include breaks it.

I don't know if it's allowed stylistically, but you could make m_soupFlags a uint in ResourceRequest.h and ResourceResponse.h, and only cast to/from SoupMessageFlags in ResourceResponseSoup.cpp.

Otherwise you'd need to submit a patch to libsoup to make SoupMessageFlags also be "enum _SoupMessageFlags" (and probably fix everything else while you're there too, so this doesn't happen again in the future), and then update the patch here to use that.
Comment 18 Evan Martin 2010-04-15 08:26:29 PDT
gcc doesn't allow forward-declaring enums.  :~(

(I believe it comes from the fact that in principle an enum with < 256 entries can be stored as a byte, while < 65536 a short, etc.)

I wouldn't be opposed to using a uint for this, but this is also not code I frequently have to deal with.  If you guys think using a uint and casting isn't nice, I'll just close this bug.
Comment 19 Tony Gentilcore 2011-03-14 14:04:26 PDT
Is this bug obsolete?
Comment 20 Martin Robinson 2014-03-25 15:22:49 PDT
I think at this point we need to restart the process if we are interested.