Note obtaining and building Timelapse
Clone this wiki locally
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+
Getting the repository
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]
Cleaning the build
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/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.
Creating Binary Releases
(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.)
timelapse branch, run the
bin/build-nightly command from the top of the repository, passing in the output directory:
Adding a Second Repository Checkout
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