Bug 47877

Summary: [chromium] DumpRenderTree shouldn't put '.' in include path
Product: WebKit Reporter: Tony Chang <tony>
Component: Tools / TestsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: dpranke, fishd, tkent
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: OS X 10.5   
Attachments:
Description Flags
Patch tkent: review+

Tony Chang
Reported 2010-10-18 20:33:04 PDT
Dirk was having problems compiling in a chromium checkout that also has an upstream checkout. The problem is in WebKit.gyp in the DumpRenderTree target. It adds "." to include_dirs. When a file in DumpRenderTree tries to include e.g., webkit/support/webkit_support.h, it ends up including the file from third_party/WebKit/WebKit/chromium/webkit/support rather than from webkit/support. We can fix this by replacing '.' in the include path with '<(chromium_src_dir)'. I had to do this of the TestNetscapePlugin target. The problem right now is that DRT tries to include WebKit api files from public/. So we need to replace the #include lines to not include public and add public to the include dirs. That should be consistent with how the other targets in WebKit work.
Attachments
Patch (26.20 KB, patch)
2010-10-18 20:42 PDT, Tony Chang
tkent: review+
Tony Chang
Comment 1 2010-10-18 20:42:14 PDT
Tony Chang
Comment 2 2010-10-18 20:42:51 PDT
This seems consistent with how we do includes for other targets in WebKit.gyp (e.g., webkit_unit_tests).
Dirk Pranke
Comment 3 2010-10-18 20:46:01 PDT
So, why am I the only one hitting this? Does no one else have a chromium checkout that includes an upstream checkout that includes a separate (build-webkit --chromium) checkout?
Tony Chang
Comment 4 2010-10-18 20:48:43 PDT
(In reply to comment #3) > So, why am I the only one hitting this? Does no one else have a chromium checkout that includes an upstream checkout that includes a separate (build-webkit --chromium) checkout? I suspect it's been a while time since you ran update-webkit --chromium? Alternately, maybe we haven't updated WebKit/chromium/DEPS in a while?
Dirk Pranke
Comment 5 2010-10-18 21:10:46 PDT
(In reply to comment #4) > (In reply to comment #3) > > So, why am I the only one hitting this? Does no one else have a chromium checkout that includes an upstream checkout that includes a separate (build-webkit --chromium) checkout? > > I suspect it's been a while time since you ran update-webkit --chromium? Alternately, maybe we haven't updated WebKit/chromium/DEPS in a while? Either is possible. That said, should I have to run update-webkit --chromium before I can build src/webkit/webkit.gyp ? Is this something weird because I have a webkit checkout that gclient sync normally takes care of? Or does the code have logic to only try and build DRT if there is an upstream checkout, and so people who don't have upstream checkouts don't hit this?
Kent Tamura
Comment 6 2010-10-18 21:52:07 PDT
Comment on attachment 71126 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=71126&action=review > WebKitTools/DumpRenderTree/chromium/MockSpellCheck.cpp:35 > + nit: We don't need this blank line.
Tony Chang
Comment 7 2010-10-19 09:33:49 PDT
(In reply to comment #5) > Either is possible. That said, should I have to run update-webkit --chromium before I can build src/webkit/webkit.gyp ? Is this something weird because I have a webkit checkout that gclient sync normally takes care of? You only need to run update-webkit --chromium if you want to build as a webkit only checkout (e.g., if you want to use build-webkit --chromium). This is only a problem for people who have previously run update-webkit --chromium in their third_party/WebKit directory. > Or does the code have logic to only try and build DRT if there is an upstream checkout, and so people who don't have upstream checkouts don't hit this? The gyp files will always try to build DRT, however, some of the include paths are different depending on whether you're building with a chromium checkout or if you're using build-webkit --chromium. The bug was that we weren't making the include path sensitive to those differences.
Tony Chang
Comment 8 2010-10-19 09:44:12 PDT
Dirk Pranke
Comment 9 2010-10-19 10:11:06 PDT
(In reply to comment #7) > (In reply to comment #5) > > Either is possible. That said, should I have to run update-webkit --chromium before I can build src/webkit/webkit.gyp ? Is this something weird because I have a webkit checkout that gclient sync normally takes care of? > > You only need to run update-webkit --chromium if you want to build as a webkit only checkout (e.g., if you want to use build-webkit --chromium). This is only a problem for people who have previously run update-webkit --chromium in their third_party/WebKit directory. > Okay, so I should not have to run update-webkit --chromium ever if I have a chromium downstream checkout. Is there a way to delete everything that was checked out by update-webkit --chromium in the third_party/WebKit directory, or should I just dump this checkout and create a new one to be clean?
Tony Chang
Comment 10 2010-10-19 10:37:39 PDT
(In reply to comment #9) > Okay, so I should not have to run update-webkit --chromium ever if I have a chromium downstream checkout. Is there a way to delete everything that was checked out by update-webkit --chromium in the third_party/WebKit directory, or should I just dump this checkout and create a new one to be clean? Correct. If it's a git repo, I think you could use git reset --hard (you'll probably have to re-run gyp after that). If it's an svn directory, I would just rm -rf the files in WebKit/chromium/ and svn update that directory.
Note You need to log in before you can comment on or make changes to this bug.