This repository contains the network service implementation for Mojo.

This repository uses gclient to manage dependencies so to work with it follow these instructions instead of cloning the repo directly:

  1. Install depot_tools and add it to your PATH.

  2. Make a directory for monet and add a .gclient file:

    $ mkdir monet
    $ cd monet
    $ cat <<EOF > .gclient
    solutions = [
    {
      u'managed': False,
      u'name': u'src',
      u'url': u'https://github.com/domokit/monet.git',
      u'custom_deps': {},
      u'deps_file': u'DEPS',
      u'safesync_url': u''}
    ]
    target_os = [u'android']
    EOF
    
  3. Use gclient to pull down the monet repository and dependencies. This will create a directory under monet called src containing the main repository.

    $ gclient sync
    
  4. Install the android SDK.

    $ cd src
    $ ./build/install-android-sdks.sh
    
  5. Build and test using the claude.py helper script.

    $ ./claude.py gn
    $ ./claude.py build
    $ ./claude.py test
    
  6. Upload patches for review.

    $ git checkout -b my_branch
    (make changes)
    $ git commit -m "What this patch does"
    $ git cl upload
    
  7. Land patches (after you get an LGTM).

    $ git cl land
    
  8. Make a Release build and test it using the claude.py helper script (clobber for paranoia's sake).

    $ rm -rf out/android_Release/ out/Release/
    $ ./claude.py gn --release
    $ ./claude.py build --release
    $ ./claude.py test --release
    
  9. Upload binary artifacts to Google Cloud storage.

    $ ./claude.py upload --release
    

The code in //net is the code from https://chromium.googlesource.com/chromium/src/net/ at commit 79dc59ac7602413181079ecb463873e29a1d7d0a with net_patch.diff applied. Similarly for the code in //crypto.