-
Notifications
You must be signed in to change notification settings - Fork 8
Note obtaining and building Timelapse
The mechanics of building, running, and debugging Timelapse are the same as for WebKit, and described on the WebKit project page. Below are some differences from the standard instructions.
Development of core replay infrastructure in WebKit trunk takes place on recent versions of OS X and Safari. Support for other operating systems and browsers is planned, but has not been actively explored. The stated versions below are what we know will work; other versions may work, but are untested.
- OS X 10.8.x or 10.9.x
- 4 GB of RAM (necessary to link Debug builds without paging)
- XCode 5.x or later
- git 1.7+
Set up a repository location (here, at ~/repos/timelapse/) and configure remotes:
mkdir -p ~/repos/timelapse/ && cd ~/repos/timelapse/
git init
git remote add upstream git://git.webkit.org/WebKit.git
git remote add github https://github.com/burg/timelapse.git
Next, fetch the upstream
branch containing vanilla WebKit, and the timelapse
branch containing Timelapse:
git fetch upstream master:upstream
git fetch github timelapse:timelapse
git checkout timelapse
This will take a long time because the repository is over 5GB in size. We recommend using an ethernet port on a fast network, such as at a university. If you have problems cloning the entire repository, contact us for details about CSE-internal mirrors from which you can clone instead.
Debug builds are started like so:
Tools/Scripts/build-webkit --debug --web-replay
And release builds are started like so:
Tools/Scripts/build-webkit --release --web-replay
To build changes to the Web Inspector UI (but nothing else), run the following commands with the appropriate build setting (from the repository root).
make -C Source/WebInspectorUI [release | debug] && Tools/Scripts/build-webkit --web-replay [--release | --debug]
All build artifacts are stored in the WebKitBuild/
directory. You can use commands like Tools/Scripts/webkit-build --clean --[debug|release]
to clean the build. You can also nuke the WebKitBuild/Debug
or WebKitBuild/Release
directories; however, sometimes you will also need to nuke WebKitBuild/PrecompiledHeaders
so that the build is in a consistent state.
When upgrading across OS X or Xcode versions, you need to completely delete the WebKitBuild directory so that both precompiled headers and compiled code are in sync with (new) system libraries.
To start Timelapse using Safari, run one of the following commands (for debug or release build):
Tools/Scripts/run-safari [--debug | --release]
If you haven't used Web Inspector with Safari before, you must enable the Develop menu item by going to Safari > Preferences
, Select the Advanced
tab, and check the "Show develop menu in menu bar" checkbox at the bottom.
(Note: these instructions are for documentation only. Do not distribute your own nightly binary builds unless you have the requisite permissions. In particular, see APPLE_IMAGES_LICENSE.rtf.)
Using the timelapse
branch, run the bin/build-nightly
command from the top of the repository, passing in the output directory:
bin/build-nightly ~/Downloads
To add a second repository (and prevent the necessity of a fill rebuild):
cd ~/repos
git clone ./timelapse ./webkit
Then add the actual remotes:
cd ~/repos/webkit
git remote add upstream git://git.webkit.org/WebKit.git
git fetch upstream
git checkout -b master upstream/master