Bug 95854
Summary: | [Chromium] Compositor build errors prevent rolling Chromium into WebKit | ||
---|---|---|---|
Product: | WebKit | Reporter: | Peter Beverloo <peter> |
Component: | WebKit API | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | jamesr, pliard |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Peter Beverloo
Example log:
http://build.webkit.org/builders/Chromium%20Linux%20Release/builds/58456/steps/compile-webkit/logs/stdio
In file included from ../../Source/WebKit/chromium/webkit/compositor_bindings/web_compositor_support_impl.cc:5:0:
../../Source/WebKit/chromium/webkit/compositor_bindings/web_compositor_support_impl.h:8:73: fatal error: third_party/WebKit/Source/Platform/chromium/public/WebLayer.h: No such file or directory
Include paths in web_compositor_support_impl.cc seem to be incorrect. Target range is 154695:154940, so I'm guessing r154819 is the issue here:
http://src.chromium.org/viewvc/chrome?view=rev&revision=154819
James, I don't know enough about this to quickly write up fixes. Could you confirm or correct the following assertions?
- There are two compositors, one in Chromium's cc/ directory, one in WebKit. The gyp "use_libcc_for_compositor" variable toggles this: 0 means WebKit, 1 means cc/.
- Chromium and WebKit currently both build with use_libcc_for_compositor=0. Are there bots which have use_libcc_for_compositor=1? Is there a bug or issue I can track for progress on this?
The canaries did not catch this error. The paths used on lines 21 to 31 of web_compositor_support_impl.cc cannot possibly work for WebKit, considering there is no such things as third_party/WebKit/ there.
Assuming we do need the "webkit_compositor_support" target itself, we need to change the include paths to work correctly under all scenarios. I'll prepare a patch for fixing this on the Chromium side..
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Peter Beverloo
+Philippe, who needs a roll.
Peter Beverloo
I've uploaded a build fix here:
https://chromiumcodereview.appspot.com/10905100/
This fixes the issues with the WebKit build. It's a minor fix, so feel free to take over if there's a better way of doing it.
James Robinson
That fix is wrong. We put third_party/WebKit/... into the gendir at build time so #include "third_party/WebKit/..." from chromium files should work. I'll take a look at what's going on here - guessing some target doesn't have the correct gendir on the include path.
James Robinson
This is the rule in WebKit.gyp that's supposed to make things work:
{ # else: inside_chromium_build==0
'direct_dependent_settings': {
'include_dirs': [
'<(SHARED_INTERMEDIATE_DIR)/webkit', # in a chromium-inside-WebKit build, headers in the public WebKit API are copied beneath this directory so includes referencing third_party/WebKit work.
],
},
}],
but since webkit_compositor_support doesn't directly depend on the WebKit target, it doesn't pick this up. One fix might be to just make it depend on WebKit.gyp:webkit - trying that now. Another would be to duplicate this logic.
James Robinson
Possible fix here: https://chromiumcodereview.appspot.com/10918076. Gonna make sure trybots compile before landing but it appears to work locally (cr-mac). ETA 20 minutes, feel free to land that if you're blocked on a roll and can't wait that long.
Peter Beverloo
(In reply to comment #5)
> Possible fix here: https://chromiumcodereview.appspot.com/10918076. Gonna make sure trybots compile before landing but it appears to work locally (cr-mac). ETA 20 minutes, feel free to land that if you're blocked on a roll and can't wait that long.
SGTM, thank you James. Could you reply to the two assertions I made in comment 0?
James Robinson
(In reply to comment #0)
> - There are two compositors, one in Chromium's cc/ directory, one in WebKit. The gyp "use_libcc_for_compositor" variable toggles this: 0 means WebKit, 1 means cc/.
Yes (technically they're copies of each other, we're moving the WebKit one into cc/)
> - Chromium and WebKit currently both build with use_libcc_for_compositor=0. Are there bots which have use_libcc_for_compositor=1? Is there a bug or issue I can track for progress on this?
There's no bot.
James Robinson
Should be good as of https://src.chromium.org/viewvc/chrome?view=rev&revision=154974. Sorry for the mess.
Peter Beverloo
(In reply to comment #8)
> Should be good as of https://src.chromium.org/viewvc/chrome?view=rev&revision=154974. Sorry for the mess.
Thanks for fixing it! Any LKGR > 154974 should be good for a Chromium roll then, I'll take care of this tomorrow morning if no one else has by then :-).