Hi, As some of you probably noticed, fundamental changes are underway in how we build and integrate webkit into chromium. Here is a status update and some answers for frequently asked questions:
*Recent changes:* 1. Chromium now builds using gyp files living on the webkit.org tree (WebCore.gyp & JavaScriptCore.gyp). 2. The Webkit Chromium Port has its own DEPS file, which lives on the webkit.org tree too (third_party/WebKit/WebKit/chromium/DEPS). This DEPS file includes a minimal set of dependencies that our port requires in order to be independently built outside of a full chromium checkout. 3. The useful update-webkit and build-webkit scripts now allow a "--chromium" argument which syncs and builds the chromium port with the help of gclient and gyp. *Next steps:* 1. An internal webkit chromium port try bot: Will help test webkit-only patches. At first stage, it will test build failures (saving many of us the need to manually test on 3 platforms), but later will also conduct chromium port layout tests and api unit tests. 2. Upstreaming chromium's webkit api to webkit.org, which will further reduce the need for 2-sides commits and blockage. 3. Upstreaming chromium's test_shell and layout tests, allowing us to detect webkit-chromium breakage before we integrate into chromium. *FAQs:* Q: Which dependencies does webkit use when built into chromium? A: When built independently, webkit will link with revisions as specified in the upstream DEPS file. When built as part of chromium, it will link with the revisions specified in the downstream DEPS. Q: When I change src/DEPS, do I also have to change upstream third_party/WebKit/WebKit/chromium/DEPS? A: It depends why you update src/DEPS. Theoretically, you should only update the upstream DEPS if the fix to the dependency actually changes the way webkit interacts with it, or fixes a bug in the webkit layout tests. However, if the change is only relevant to chromium, than webkit's DEPS need not be updated. If that change breaks webkit, we will surely find it when we build chromium. Q: Why don't we control webkit's dependencies in a single place? A: Most of the dependencies that webkit uses are also used directly by chromium. Therefore, we will often find ourselves rolling webkit revisions just because chromium needs a third party revision update. We have been there once, it was painful, we don't want to go there again. As explained above, we don't mind upstream webkit builds using older deps. Q: Wouldn't dependencies be fetched twice because they are specified in both upstream and downstream DEPS? A: No, because when synched as part of a full chromium checkout, all DEPS files under third_party are ignored. We only want the port's DEPS fetched on a standalone webkit checkout. Q: We already have layout try bots. Why also have a webkit chromium port try bots? A: The existing layout try bot builds webkit along with the rest of chromium. We want to be able to try an independent upstream-only build and eventually contribute our try system to webkit.org so all webkit developers can use it. This will help protect chromium from disruptive upstream changes. Q: Wait, do we have .gyp and DEPS files on the webkit tree? A: Yes. And we believe other webkit ports could follow our example and use gclient and gyp too. --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: [email protected] View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---
