From dc0f95d653279beabeb9817299e2902918ba123e Mon Sep 17 00:00:00 2001 From: Kristian Monsen Date: Thu, 9 Jun 2011 11:47:42 +0100 Subject: Merge Chromium at r11.0.696.0: Initial merge by git Change-Id: I273dde2843af0839dfc08b419bb443fbd449532d --- build/all.gyp | 3 + build/build-bisect.py | 11 --- build/common.gypi | 22 +++-- build/features_override.gypi | 3 + build/gyp_chromium | 14 +++ build/install-build-deps.sh | 72 ++++++++++++--- build/sanitize-mac-build-log.sed | 12 ++- build/temp_gyp/googleurl.gyp | 6 +- build/util/lastchange.py | 190 ++++++++++++++++++++++++++++++++------- build/whitespace_file.txt | 4 +- 10 files changed, 276 insertions(+), 61 deletions(-) delete mode 100755 build/build-bisect.py (limited to 'build') diff --git a/build/all.gyp b/build/all.gyp index 52d1238..3ea4654 100644 --- a/build/all.gyp +++ b/build/all.gyp @@ -334,6 +334,7 @@ '../chrome/chrome.gyp:sync_unit_tests', '../chrome/chrome.gyp:unit_tests', '../chrome/chrome.gyp:ui_tests', + '../ui/gfx/gfx.gyp:gfx_unittests', '../jingle/jingle.gyp:notifier_unit_tests', '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests', ], @@ -425,6 +426,7 @@ 'type': 'none', 'dependencies': [ '../chrome/app/locales/locales.gyp:*', + '../chrome/chrome.gyp:chromedriver', '../chrome/chrome.gyp:crash_service', '../chrome/chrome.gyp:page_cycler_tests', '../chrome/chrome.gyp:policy_templates', @@ -436,6 +438,7 @@ '../chrome_frame/chrome_frame.gyp:chrome_frame_unittests', '../chrome_frame/chrome_frame.gyp:npchrome_frame', '../courgette/courgette.gyp:courgette', + '../courgette/courgette.gyp:courgette64', '../third_party/adobe/flash/flash_player.gyp:flash_player', '../webkit/webkit.gyp:test_shell', ], diff --git a/build/build-bisect.py b/build/build-bisect.py deleted file mode 100755 index 33fcb89..0000000 --- a/build/build-bisect.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/python -# Copyright (c) 2010 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import sys - -print "This script has been moved to tools/bisect-builds.py." -print "Please update any docs you're working from!" - -sys.exit(1) diff --git a/build/common.gypi b/build/common.gypi index 5b110d5..39ee2a9 100644 --- a/build/common.gypi +++ b/build/common.gypi @@ -23,10 +23,14 @@ # Disable touch support by default. 'touchui%': 0, + + # Disable file manager component extension by default. + 'file_manager_extension%': 0, }, # Copy conditionally-set variables out one scope. 'chromeos%': '<(chromeos)', 'touchui%': '<(touchui)', + 'file_manager_extension%': '<(file_manager_extension)', # To do a shared build on linux we need to be able to choose between # type static_library and shared_library. We default to doing a static @@ -61,6 +65,7 @@ # Copy conditionally-set variables out one scope. 'chromeos%': '<(chromeos)', 'touchui%': '<(touchui)', + 'file_manager_extension%': '<(file_manager_extension)', 'host_arch%': '<(host_arch)', 'library%': '<(library)', 'toolkit_views%': '<(toolkit_views)', @@ -107,7 +112,7 @@ 'disable_sse2%': 0, # Use libjpeg-turbo as the JPEG codec used by Chromium. - 'use_libjpeg_turbo%': 0, + 'use_libjpeg_turbo%': 1, # Variable 'component' is for cases where we would like to build some # components as dynamic shared libraries but still need variable @@ -176,6 +181,7 @@ 'enable_flapper_hacks%': '<(enable_flapper_hacks)', 'chromeos%': '<(chromeos)', 'touchui%': '<(touchui)', + 'file_manager_extension%': '<(file_manager_extension)', 'inside_chromium_build%': '<(inside_chromium_build)', 'fastbuild%': '<(fastbuild)', 'python_ver%': '<(python_ver)', @@ -485,6 +491,9 @@ ['touchui==1', { 'grit_defines': ['-D', 'touchui'], }], + ['file_manager_extension==1', { + 'grit_defines': ['-D', 'file_manager_extension'], + }], ['remoting==1', { 'grit_defines': ['-D', 'remoting'], }], @@ -564,6 +573,9 @@ ['touchui==1', { 'defines': ['TOUCH_UI=1'], }], + ['file_manager_extension==1', { + 'defines': ['FILE_MANAGER_EXTENSION=1'], + }], ['profiling==1', { 'defines': ['ENABLE_PROFILING=1'], }], @@ -1213,8 +1225,6 @@ # http://code.google.com/p/googletest/source/detail?r=446 . # TODO(thakis): Use -isystem instead (http://crbug.com/58751 ) '-Wno-unnamed-type-template-args', - # TODO(thakis): Turn on -- http://crbug.com/72205 - '-Wno-overloaded-virtual', ], 'cflags!': [ # Clang doesn't seem to know know this flag. @@ -1349,8 +1359,10 @@ # http://code.google.com/p/googletest/source/detail?r=446 . # TODO(thakis): Use -isystem instead (http://crbug.com/58751 ). '-Wno-unnamed-type-template-args', - # TODO(thakis): Turn on -- http://crbug.com/72205 - '-Wno-overloaded-virtual', + ], + 'OTHER_CFLAGS': [ + # TODO(thakis): Causes many warnings - http://crbug.com/75001 + '-fobjc-exceptions', ], }], ['clang==1 and clang_use_chrome_plugins==1', { diff --git a/build/features_override.gypi b/build/features_override.gypi index de287c3..3030d43 100644 --- a/build/features_override.gypi +++ b/build/features_override.gypi @@ -28,6 +28,7 @@ 'ENABLE_JAVASCRIPT_I18N_API=1', 'ENABLE_FILE_SYSTEM=1', 'ENABLE_FILTERS=1', + 'ENABLE_FULLSCREEN_API=1', 'ENABLE_GEOLOCATION=1', 'ENABLE_ICONDATABASE=0', 'ENABLE_INDEXED_DATABASE=1', @@ -36,6 +37,7 @@ 'ENABLE_JSC_MULTIPLE_THREADS=0', 'ENABLE_LINK_PREFETCH=1', 'ENABLE_METER_TAG=1', + 'ENABLE_MEDIA_STATISTICS=1', 'ENABLE_NOTIFICATIONS=1', 'ENABLE_OFFLINE_WEB_APPLICATIONS=1', 'ENABLE_OPENTYPE_SANITIZER=1', @@ -62,6 +64,7 @@ 'ENABLE_XHR_RESPONSE_BLOB=1', 'ENABLE_XPATH=1', 'ENABLE_XSLT=1', + 'WTF_USE_BUILTIN_UTF8_CODEC=1', 'WTF_USE_WEBP=1', 'WTF_USE_WEBKIT_IMAGE_DECODERS=1', ], diff --git a/build/gyp_chromium b/build/gyp_chromium index 2171770..7709d07 100755 --- a/build/gyp_chromium +++ b/build/gyp_chromium @@ -10,6 +10,7 @@ import glob import os import shlex +import subprocess import sys script_dir = os.path.dirname(__file__) @@ -78,6 +79,19 @@ def additional_include_files(args=[]): if __name__ == '__main__': args = sys.argv[1:] + # Fall back on hermetic python if we happen to get run under cygwin. + # TODO(bradnelson): take this out once this issue is fixed: + # http://code.google.com/p/gyp/issues/detail?id=177 + if sys.platform == 'cygwin': + python_dir = os.path.join(chrome_src, 'third_party', 'python_26') + env = os.environ.copy() + env['PATH'] = python_dir + os.pathsep + env.get('PATH', '') + p = subprocess.Popen( + [os.path.join(python_dir, 'python.exe')] + sys.argv, + env=env, shell=False) + p.communicate() + sys.exit(p.returncode) + if 'SKIP_CHROMIUM_GYP_ENV' not in os.environ: # Update the environment based on chromium.gyp_env gyp_env_path = os.path.join(os.path.dirname(chrome_src), 'chromium.gyp_env') diff --git a/build/install-build-deps.sh b/build/install-build-deps.sh index 22b1b67..4663763 100755 --- a/build/install-build-deps.sh +++ b/build/install-build-deps.sh @@ -46,9 +46,9 @@ install_gold() { return fi - BINUTILS=binutils-2.20.1 + BINUTILS=binutils-2.21 BINUTILS_URL=http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2 - BINUTILS_SHA1=fd2ba806e6f3a55cee453cb25c86991b26a75dee + BINUTILS_SHA1=ef93235588eb443e4c4a77f229a8d131bccaecc6 test -f $BINUTILS.tar.bz2 || wget $BINUTILS_URL if test "`sha1sum $BINUTILS.tar.bz2|cut -d' ' -f1`" != "$BINUTILS_SHA1" @@ -59,7 +59,57 @@ install_gold() { tar -xjvf $BINUTILS.tar.bz2 cd $BINUTILS - ./configure --prefix=/usr/local/gold --enable-gold + patch -p1 <. + + // This file is part of gold. +@@ -2165,15 +2165,6 @@ + Output_symtab_xindex*, + Output_symtab_xindex*); + +- // Clear the local symbol information. +- void +- clear_local_symbols() +- { +- this->local_values_.clear(); +- this->local_got_offsets_.clear(); +- this->local_plt_offsets_.clear(); +- } +- + // Record a mapping from discarded section SHNDX to the corresponding + // kept section. + void +diff -u -r1.60 -r1.60.2.1 +--- src/gold/reloc.cc 2010/10/14 22:10:22 1.60 ++++ src/gold/reloc.cc 2011/02/10 01:15:28 1.60.2.1 +@@ -1,6 +1,6 @@ + // reloc.cc -- relocate input files for gold. + +-// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. ++// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. + // Written by Ian Lance Taylor . + + // This file is part of gold. +@@ -685,9 +685,6 @@ + // Write out the local symbols. + this->write_local_symbols(of, layout->sympool(), layout->dynpool(), + layout->symtab_xindex(), layout->dynsym_xindex()); +- +- // We should no longer need the local symbol values. +- this->clear_local_symbols(); + } + + // Sort a Read_multiple vector by file offset. +EOF + ./configure --prefix=/usr/local/gold --enable-gold --enable-threads make maybe-all-binutils maybe-all-gold -j4 if sudo make maybe-install-binutils maybe-install-gold then @@ -117,10 +167,10 @@ chromeos_lib_list="libpulse0 libbz2-1.0 libcurl4-gnutls-dev" # Full list of required run-time libraries lib_list="libatk1.0-0 libc6 libasound2 libcairo2 libdbus-glib-1-2 libexpat1 libfontconfig1 libfreetype6 libglib2.0-0 libgnome-keyring0 libgtk2.0-0 - libnspr4-0d libnss3-1d libpango1.0-0 libpcre3 libpixman-1-0 libpng12-0 - libstdc++6 libsqlite3-0 libx11-6 libxau6 libxcb1 libxcomposite1 - libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 - libxinerama1 libxrandr2 libxrender1 libxtst6 zlib1g + libnspr4-0d libnss3-1d libpam0g libpango1.0-0 libpcre3 libpixman-1-0 + libpng12-0 libstdc++6 libsqlite3-0 libx11-6 libxau6 libxcb1 + libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 + libxi6 libxinerama1 libxrandr2 libxrender1 libxtst6 zlib1g $chromeos_lib_list" # Debugging symbols for all of the run-time libraries @@ -240,12 +290,12 @@ fi # Some operating systems already ship gold (on recent Debian and # Ubuntu you can do "apt-get install binutils-gold" to get it), but # older releases didn't. Additionally, gold 2.20 (included in Ubuntu -# Lucid) makes binaries that just segfault. +# Lucid) makes binaries that just segfault, and 2.20.1 does not support +# --map-whole-files. # So install from source if we don't have a good version. case `ld --version` in -*gold*2.20.1*) ;; -*gold*2.2[1-9]*) ;; +*gold*2.2[1-9].*) ;; * ) if test "$do_inst_gold" = "" then @@ -259,7 +309,7 @@ case `ld --version` in if test "$do_inst_gold" = "1" then # If the system provides a good version of gold, just install it. - if apt-cache show binutils-gold | grep -Eq 'Version: 2.2(0.1|[1-9]*)'; then + if apt-cache show binutils-gold | grep -Eq 'Version: 2.2[1-9].*'; then echo "Installing binutils-gold. Backing up ld as ld.single." sudo apt-get install binutils-gold else diff --git a/build/sanitize-mac-build-log.sed b/build/sanitize-mac-build-log.sed index d6cef78..2de72bf 100644 --- a/build/sanitize-mac-build-log.sed +++ b/build/sanitize-mac-build-log.sed @@ -1,6 +1,6 @@ #!/bin/echo Use sanitize-mac-build-log.sh or sed -f -# Copyright (c) 2010 The Chromium Authors. All rights reserved. +# Copyright (c) 2011 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -12,10 +12,20 @@ /^ setenv /d /^ cd /d /^make: Nothing to be done/d +/^$/d # Xcode prints a short "compiling foobar.o" line followed by the lengthy # full command line. These deletions drop the command line. \|^ /Developer/usr/bin/|d +\|^ /Developer/Library/PrivateFrameworks/DevToolsCore.framework/|d +\|^ /Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/|d + +# And, if you've overridden something from your own bin directory, remove those +# full command lines, too. +\|^ /Users/[^/]*/bin/|d + +# There's already a nice note for bindings, don't need the command line. +\|^python scripts/rule_binding.py|d # Shorten the "compiling foobar.o" line. s|^Distributed-CompileC \(.*\) normal i386 c++ com.apple.compilers.gcc.4_2| CC \1| diff --git a/build/temp_gyp/googleurl.gyp b/build/temp_gyp/googleurl.gyp index 9a2eda3..8bf7cce 100644 --- a/build/temp_gyp/googleurl.gyp +++ b/build/temp_gyp/googleurl.gyp @@ -70,6 +70,8 @@ 'target_name': 'googleurl_unittests', 'dependencies': [ 'googleurl', + '../../base/base.gyp:base_i18n', + '../../base/base.gyp:test_support_base', '../../testing/gtest.gyp:gtest', '../../third_party/icu/icu.gyp:icuuc', ], @@ -79,7 +81,9 @@ '../../googleurl/src/url_parse_unittest.cc', '../../googleurl/src/url_test_utils.h', '../../googleurl/src/url_util_unittest.cc', - '../../googleurl/src/gurl_test_main.cc', + # Make sure base and ICU are started up the 'Chromium way' since the + # build is using the Chromium base & ICU. + '../../base/test/run_all_unittests.cc', ], 'conditions': [ ['OS=="linux" or OS=="freebsd"', { diff --git a/build/util/lastchange.py b/build/util/lastchange.py index c7200f1..4d7a1fe 100755 --- a/build/util/lastchange.py +++ b/build/util/lastchange.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# Copyright (c) 2010 The Chromium Authors. All rights reserved. +# Copyright (c) 2011 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -7,6 +7,7 @@ lastchange.py -- Chromium revision fetching utility. """ +import re import optparse import os import subprocess @@ -18,38 +19,10 @@ class VersionInfo(object): self.root = root self.revision = revision -def FetchGitRevision(directory): - """ - Fetch the Git hash for the a given directory. - - Errors are swallowed. - - Returns: - a VersionInfo object or None on error. - """ - # Force shell usage under cygwin & win32. This is a workaround for - # mysterious loss of cwd while invoking cygwin's git. - # We can't just pass shell=True to Popen, as under win32 this will - # cause CMD to be used, while we explicitly want a cygwin shell. - command = ['git', 'rev-parse', 'HEAD'] - if sys.platform in ('cygwin', 'win32'): - command = ['sh', '-c', ' '.join(command)] - try: - proc = subprocess.Popen(command, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - cwd=directory) - except OSError: - return None - output = proc.communicate()[0].strip() - if proc.returncode == 0 and output: - return VersionInfo('git', 'git', output[:7]) - return None - def FetchSVNRevision(directory): """ - Fetch the Subversion branch and revision for the a given directory. + Fetch the Subversion branch and revision for a given directory. Errors are swallowed. @@ -86,12 +59,167 @@ def FetchSVNRevision(directory): return VersionInfo(url, root, revision) +def RunGitCommand(directory, command): + """ + Launches git subcommand. + + Errors are swallowed. + + Returns: + process object or None. + """ + command = ['git'] + command + # Force shell usage under cygwin & win32. This is a workaround for + # mysterious loss of cwd while invoking cygwin's git. + # We can't just pass shell=True to Popen, as under win32 this will + # cause CMD to be used, while we explicitly want a cygwin shell. + if sys.platform in ('cygwin', 'win32'): + command = ['sh', '-c', ' '.join(command)] + try: + proc = subprocess.Popen(command, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + cwd=directory) + return proc + except OSError: + return None + + +def FetchGitRevision(directory): + """ + Fetch the Git hash for a given directory. + + Errors are swallowed. + + Returns: + a VersionInfo object or None on error. + """ + proc = RunGitCommand(directory, ['rev-parse', 'HEAD']) + if proc: + output = proc.communicate()[0].strip() + if proc.returncode == 0 and output: + return VersionInfo('git', 'git', output[:7]) + return None + + +def IsGitSVN(directory): + """ + Checks whether git-svn has been set up. + + Errors are swallowed. + + Returns: + whether git-svn has been set up. + """ + # To test whether git-svn has been set up, query the config for any + # svn-related configuration. This command exits with an error code + # if there aren't any matches, so ignore its output. + proc = RunGitCommand(directory, ['config', '--get-regexp', '^svn']) + if proc: + return (proc.wait() == 0) + return False + + +def FetchGitSVNURL(directory): + """ + Fetch URL of SVN repository bound to git. + + Errors are swallowed. + + Returns: + SVN URL. + """ + if IsGitSVN(directory): + proc = RunGitCommand(directory, ['svn', 'info', '--url']) + if proc: + output = proc.communicate()[0].strip() + if proc.returncode == 0: + match = re.search(r'^\w+://.*$', output, re.M) + if match: + return match.group(0) + return '' + + +def FetchGitSVNRoot(directory): + """ + Fetch root of SVN repository bound to git. + + Errors are swallowed. + + Returns: + SVN root repository. + """ + if IsGitSVN(directory): + git_command = ['config', '--get-regexp', '^svn-remote.svn.url$'] + proc = RunGitCommand(directory, git_command) + if proc: + output = proc.communicate()[0].strip() + if proc.returncode == 0: + # Zero return code implies presence of requested configuration variable. + # Its value is second (last) field of output. + match = re.search(r'\S+$', output) + if match: + return match.group(0) + return '' + + +def LookupGitSVNRevision(directory, depth): + """ + Fetch the Git-SVN identifier for the local tree. + Parses first |depth| commit messages. + + Errors are swallowed. + """ + if not IsGitSVN(directory): + return None + git_re = re.compile(r'^\s*git-svn-id:\s+(\S+)@(\d+)') + proc = RunGitCommand(directory, ['log', '-' + str(depth)]) + if proc: + for line in proc.stdout: + match = git_re.match(line) + if match: + id = match.group(2) + if id: + proc.stdout.close() # Cut pipe for fast exit. + return id + return None + + +def IsGitSVNDirty(directory): + """ + Checks whether our git-svn tree contains clean trunk or some branch. + + Errors are swallowed. + """ + # For git branches the last commit message is either + # some local commit or a merge. + return LookupGitSVNRevision(directory, 1) is None + + +def FetchGitSVNRevision(directory): + """ + Fetch the Git-SVN identifier for the local tree. + + Errors are swallowed. + """ + # We assume that at least first 999 commit messages contain svn evidence. + revision = LookupGitSVNRevision(directory, 999) + if not revision: + return None + if IsGitSVNDirty(directory): + revision = revision + '-dirty' + url = FetchGitSVNURL(directory) + root = FetchGitSVNRoot(directory) + return VersionInfo(url, root, revision) + + def FetchVersionInfo(default_lastchange, directory=None): """ Returns the last change (in the form of a branch, revision tuple), from some appropriate revision control system. """ - version_info = FetchSVNRevision(directory) or FetchGitRevision(directory) + version_info = (FetchSVNRevision(directory) or + FetchGitSVNRevision(directory) or FetchGitRevision(directory)) if not version_info: if default_lastchange and os.path.exists(default_lastchange): revision = open(default_lastchange, 'r').read().strip() diff --git a/build/whitespace_file.txt b/build/whitespace_file.txt index ccedfae..f45cad4 100644 --- a/build/whitespace_file.txt +++ b/build/whitespace_file.txt @@ -1,4 +1,4 @@ -Copyright (c) 2010 The Chromium Authors. All rights reserved. +Copyright (c) 2011 The Chromium Authors. All rights reserved. Use of this useless file is governed by a BSD-style license that can be found in the LICENSE file. @@ -7,3 +7,5 @@ any modification below this line. ================================================================================ i am somewhat YELLY! + +All your base belong to us. -- cgit v1.1