ipc/pull-chromium.py
author violet <violet.bugreport@gmail.com>
Thu, 16 May 2019 13:21:21 +0000
changeset 474705 94c0cc0049815467d23d4a778b68438607dc0c98
parent 427059 2de2efc2dec7720abb6c5213f70f22a51bb842c2
permissions -rw-r--r--
Bug 1383650 - Optimize attribute mapping by not parsing same thing twice r=longsonr Geometry properties are the most used SVG attributes. When authors specify them as attributes, we have to parse them in SVG side. So we don't want to parse them in CSS side again, otherwise the introduced performance loss is relatively high. With this optimization, this feature implementation doesn't slow down overall performace even if there are thousands of geometry elements. Differential Revision: https://phabricator.services.mozilla.com/D30778

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

"""
Pull a specified revision of chromium from SVN.

Usage: python pull-chromium.py <topsrcdir> <chromiumtree> <revision>

You will have to set up a Chromium tree before running this step. See
http://dev.chromium.org/developers/how-tos/get-the-code for details about
doing this efficiently.
"""

import sys
import os
from subprocess import check_call
from shutil import rmtree

topsrcdir, chromiumtree, rev = sys.argv[1:]

if not os.path.exists(os.path.join(topsrcdir, 'client.py')):
    print >>sys.stderr, "Incorrect topsrcdir"
    sys.exit(1)

if not os.path.exists(os.path.join(chromiumtree, 'src/DEPS')):
    print >>sys.stderr, "Incorrect chromium directory, missing DEPS"
    sys.exit(1)

check_call(['gclient', 'sync', '--force', '--revision=src@%s' % rev], cwd=chromiumtree)

chromiumsrc = os.path.join(topsrcdir, 'ipc/chromium/src')
os.path.exists(chromiumsrc) and rmtree(chromiumsrc)


def doexport(svnpath):
    localpath = os.path.join(chromiumsrc, svnpath)
    os.makedirs(os.path.dirname(localpath))
    check_call(['svn', 'export', '-r', 'BASE', os.path.join(chromiumtree, 'src', svnpath),
                localpath])


doexport('base')
doexport('chrome/common')
doexport('build/build_config.h')
doexport('testing/gtest/include')
doexport('third_party/libevent')