This generates a proper version manifest for chrome.exe and also for the version assembly.
This adds a new way to get the chrome version info programatically at GN time. Although this adds another exec_script call, it removes four such calls in remoting so there is a net speed increase.
BUG=
Review URL: https://codereview.chromium.org/1250853007
Cr-Original-Commit-Position: refs/heads/master@{#339833}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 983c0562bba1e4d93bb7ee489f56bcbd61fc55f9
Adds optional flag '--git-svn-go-deeper' to allow lastchange.py find
the last committed SVN revision in a Git-SVN repo.
This is to help access DevTools frontend on Android for Chromium developers
that have local changes to Blink.
BUG=468691
Review URL: https://codereview.chromium.org/1197483002
Cr-Original-Commit-Position: refs/heads/master@{#335156}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b73e2ea7a4e319eb2e6183090dfe6b9796d42c3b
A starting point for doing all of src, and adding a PRESUBMIT.
Includes https://codereview.chromium.org/772663002/ and https://codereview.chromium.org/770053002/.
I haven't pushed new binaries yet.
Generated via:
> cd build
> git ls-files *.gn *.gni | sed -e "s/^/@..\\\\out\\\\Debug\\\\gn format --in-place /" >x.bat && x.bat
The only things that I don't love in the current output are:
1. Turning
args = [
"--depfile", rebase_path(depfile, root_build_dir),
"--android-sdk-tools", rebased_android_sdk_build_tools,
"--dex-path", rebased_output,
]
into:
args = [
"--depfile",
rebase_path(depfile, root_build_dir),
"--android-sdk-tools",
rebased_android_sdk_build_tools,
"--dex-path",
rebased_output,
]
The heuristic for this isn't trivial though, and it also affects e.g. '-Xclang' in cflags, as well
as assignments to temporaries that are later assigned to args.
2. Turning single line
if (defined(invoker.inputs)) { inputs = invoker.inputs }
into
if (defined(invoker.inputs)) {
inputs = invoker.inputs
}
This could be argued to be an improvement, but as it's very boilerplate-y perhaps an exception to
allow single line in this case is worthwhile. I think there was discussion of new syntax for this
case too, something like "inputs ?= invoker.inputs" maybe.
In both cases, I think it's worthwhile to get formatting turned on, and then go back and special
case these if we decide it's worthwhile.
R=brettw@chromium.org
BUG=348474
Review URL: https://codereview.chromium.org/766573003
Cr-Original-Commit-Position: refs/heads/master@{#306305}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b199254f481c5db36d56e83fce40594b06d2b81f
From our UMA and operation feedbacks, we don't see such issue anymore.
(We notified the manufactor of the issue and likely they addressed it
in OTA). The cleanup restores native library name to libchrome.so
instead of libchrome.<VER>.so.
BUG=311644
Review URL: https://codereview.chromium.org/759833002
Cr-Original-Commit-Position: refs/heads/master@{#305925}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d9201758ca9e6dc47e36026a4029dae5cc69e4c4
lastchange.py is using git show -s to get the commit message of HEAD.
It turns out that on some older versions of git that is a rather
expensive operation. Under particular circumstances it can eventually
take several minutes (see crbug.com/431463 #27).
Anyways, git cat-file is x45 faster than the equivalent show command
for the sake of printing the commit message.
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$ time git show -s --format=%B HEAD > /dev/null
real 0m0.090s
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$ time git cat-file commit HEAD > /dev/null
real 0m0.002s
BUG=431463
Review URL: https://codereview.chromium.org/726413003
Cr-Original-Commit-Position: refs/heads/master@{#304444}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 5176f672c91c461a2f87f333e2b88ab407b2bc52
Replace the hardcoded version number used for the WebView's user agent
with the real version number of the corresponding Chrome build. This
uses the version information from src/chrome/VERSION; there is a pending
bug to move this out of chrome/ (http://crbug.com/345538) which will not
be impeded by this change as the location of the version info is
obtained from build/util/version.gypi.
BUG=297522
Review URL: https://codereview.chromium.org/695313002
Cr-Original-Commit-Position: refs/heads/master@{#302614}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e72c9f4cc8e2d5abdf9ae4506abf94d5eb7a91d6
Add a "last_commit_position" script so we can use commit positions for GN builds rather than git hashes. Remove the old last_change target in build/util which is no longer used.
Fix ozone GN build.
Fix Windows GN build.
R=jamesr@chromium.org
Review URL: https://codereview.chromium.org/483403005
Cr-Original-Commit-Position: refs/heads/master@{#291729}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 48c29f238165e02c0e6c56c406c4c0ad8fd0f1cc
Even the 40-character hash causes problems when the pieces of the string before
it push the length to >64 characters. Truncating it is a temporary fix until
we discuss ways to accept strings longer than 64 chars.
R=cmp@chromium.org, scottmg@chromium.org
NOTRY=True
BUG=406783
Review URL: https://codereview.chromium.org/499133003
Cr-Original-Commit-Position: refs/heads/master@{#291626}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 15a2a65986f6dec827cce5bc7d58601ed9b1eb2a
This changes lastchange.py in two ways:
1) If the commit it finds is a Git hash, it outputs the whole hash, not just
the first 7 characters.
2) It only looks at HEAD to see if there is a git-svn id. Previously, it used
--grep=git-svn-id, which would find the most recent commit containing a
git-svn id. This would be broken after the switch to git, as it would always
find the last commit before the switch. Now, it only inspects the most recent
commit, and falls through to pure-Git if that fails.
R=dilmah@chromium.org, stip@chromium.org
BUG=399113
Review URL: https://codereview.chromium.org/488733002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@291165 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Rewrite the argument handling code using argparse. It allows us to get
rid of a lot of manual parsing as well as the whole help message.
In addition, it fixes a few other bugs present in the previous
implementation:
- Passing 3 or more arguments that are not values for parameters would
cause an infinite loop.
- The "--template" option was not allowed (only its short form "-t"
was).
R=mark@chromium.org, brettw@chromium.org
Review URL: https://codereview.chromium.org/336513002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@277450 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Parameterize webrtc enabling.
Add use_seccomp_pbf flag
Add a webkit version target
Work on ui/base GN build, especially on Windows. This target is a mess (in GYP). This patch tries to make it make a bit more sense while fixing the errors I found.
Fix ui/gl target for non-Linux platform. A bunch of X11 stuff was not parameterized.
Add unscaled resources target
BUG=
R=scottmg@chromium.org
Review URL: https://codereview.chromium.org/287343006
git-svn-id: http://src.chromium.org/svn/trunk/src/build@271724 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
On some Android devices (e.g., Sony Xperia), package manager may
fail to extract native libraries when updating Chrome.
The change tries alleviate the situation by:
1) name libchrome with version number;
2) when failed to load library, try to extract native libraies
and load them.
BUG=311644
Review URL: https://codereview.chromium.org/200753002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@258546 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Updates all rebase_path calls to use the new parameter ordering.
Use the new getenv function and delete the Python script we had to get the home directory.
Takes advantage of the new ability to have the default value of declare_args blocks be dependent on other values. This simplifies some code.
R=scottmg@chromium.org
Review URL: https://codereview.chromium.org/164773005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@252065 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
When parsing results for the dashboard we don't expect any letters (such as the
'e' in scientific notation) in the string of values. This CL makes sure we don't
use scientific notation for printing floats.
BUG=318093
Review URL: https://codereview.chromium.org/71543002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@234829 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This is GN-only so the GYP build currently sets this to 0.
This adds the root generated file directory to all targets, so you can do #include "foo/bar.h" and get a generated file "bar.h" generated in directory "foo". This basically matches the internal Google build, and I use it here.
BUG=
R=viettrungluu@chromium.org
Review URL: https://codereview.chromium.org/46003002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@233969 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This patch makes it possible to use glob-style gtest filters with
the content browser tests. An example of such a filter is
WebGLConformanceTest.*, which should cause all the WebGL conformance
tests to be run.
Previously the gtest filter was passed directly to the test executable,
causing it to run all matching tests successively in the same process.
Normally this would be fine, but with content browsertests we must run
each test in a fresh process to avoid issues with double initialization.
The fix is to expand the filter to a flat list of tests in the test
dispatcher. After this, the tests are sharded and run in exactly the
same way as when no gtest filter is provided.
BUG=138226
Review URL: https://chromiumcodereview.appspot.com/14882007
git-svn-id: http://src.chromium.org/svn/trunk/src/build@204680 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
The main reason for making this change is the fact that when pulling
Chromium and Blink code into Android, we have to make automatic changes
to the repository (for example, for generating *.mk files), and the Blink
commit we have as HEAD doesn't match any public commit in the main
Blink repo. While via the LASTCHANGE file we could report a publicly
visible revision.
Also, the way webkit_version.h header is generated now appears to be silly.
First, it doesn't leverage enough existing tools. Second, as it is noted in
webkit_user_agent.gypi, it is broken for incremental builds.
Review URL: https://chromiumcodereview.appspot.com/14973005
git-svn-id: http://src.chromium.org/svn/trunk/src/build@203387 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
normal circumstances, so it makes more sense to treat it as if it were a
checked-in source file, not a generated file. The rule for its
generation was still getting run once on a clean build, because the
other targets that depended on it expected a gyp timestamp file to exist
for the target.
There's no need for any other targets to actually depend on lastchange
(and in fact several of the targets that make use of the file already
don't depend on the target); it should already exist, and if it doesn't
then the source checkout is probably broken (as the other steps in
runhooks are also mandatory). So, remove the rule entirely.
Review URL: https://chromiumcodereview.appspot.com/10388213
git-svn-id: http://src.chromium.org/svn/trunk/src/build@139765 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
When running as runhooks, it's not run via cygwin like it was when run in the build, and isn't able to find git. I believe the test that checked for both cygwin and win32 before was incorrect (but was always run via cygwin before so didn't matter).
Additionally, when runhooks runs it, it's from above src/, so the cwd isn't in the repo. So, pass in the directory of the script itself so that git can find its repo.
BUG=112264
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=120089
Review URL: https://chromiumcodereview.appspot.com/9317037
git-svn-id: http://src.chromium.org/svn/trunk/src/build@120110 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
When running as runhooks, it's not run via cygwin like it was when run in the build, and isn't able to find git. I believe the test that checked for both cygwin and win32 before was incorrect (but was always run via cygwin before so didn't matter).
Additionally, when runhooks runs it, it's from above src/, so the cwd isn't in the repo. So, pass in the directory of the script itself so that git can find its repo.
BUG=112264
Review URL: https://chromiumcodereview.appspot.com/9317037
git-svn-id: http://src.chromium.org/svn/trunk/src/build@120089 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
During gclient runhooks, update LASTCHANGE so that it will be updated at least as often as runhooks is run (i.e. for every sync).
LASTCHANGE moved to build/util rather than SHARED_INTERMEDIATE_DIR because that directory isn't known to runhooks.
BUG=111731
Review URL: https://chromiumcodereview.appspot.com/9169105
git-svn-id: http://src.chromium.org/svn/trunk/src/build@119950 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
We don't show whether the tree was dirty for SVN.
Because lastchange runs on every build, these commands impact every
build. The call to "git checkout" makes git stat every file in the
repository (including ones unrelated to the build).
This change makes a Ninja build of Chrome 20% faster. I've seen the
command take tens of seconds on a cold disk, and it likely has a
larger impact on Windows where the disk is slower.
Review URL: http://codereview.chromium.org/9148030
git-svn-id: http://src.chromium.org/svn/trunk/src/build@117352 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Clean up SSL false start blacklist code. Numerous changes, including:
* Handle trailing dots in LastTwoLabels() as in http://codereview.chromium.org/7518035/ . Rename this function to LastTwoComponents() to match the terminology used in the RegistryControlledDomainService and elsewhere in Chrome.
* Since callers are using std::string anyway, make the functions in the header take const std::string& instead of char*. This also allows doing string operations on them.
* Use string operations (like find_last_of()) in place of hand-written algorithms, for brevity, clarity, and safety.
* Avoid "unsigned", which the style guide forbids, and use allowed types like size_t, uint32, or int (depending on the situation).
* Avoid #define and "using".
* Use standard algorithms for similar reasons as using string ops.
* Use file_util functions to significantly abbreviate file reading/writing code.
* Use wmain() (on Windows) in combination with FilePath to avoid issues if the provided pathname has extended characters that don't flatten losslessly to the default codepage (thanks Darin for pointing out this issue).
* Avoid casting where possible. Avoid some casts for printf()-style calls by using a string stream, which also allows for slightly less boilerplate.
* Convert non-error uses of stderr to the chrome-standard VLOG(1).
* Correctly handle hostnames with trailing dots in the input file.
* In general, shorten code where possible.
Because this adds a dependency on base, and ssl_false_start_blacklist_process has the "#host" specifier in net.gyp, bradnelson tells me that base and its dependencies need an explicit "host, target" toolchain list for the Linux builds to work correctly. It would be nice if we could avoid this but I guess gyp would have to be smarter or something.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7903016
git-svn-id: http://src.chromium.org/svn/trunk/src/build@101378 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Clean up SSL false start blacklist code. Numerous changes, including:
* Handle trailing dots in LastTwoLabels() as in http://codereview.chromium.org/7518035/ . Rename this function to LastTwoComponents() to match the terminology used in the RegistryControlledDomainService and elsewhere in Chrome.
* Since callers are using std::string anyway, make the functions in the header take const std::string& instead of char*. This also allows doing string operations on them.
* Use string operations (like find_last_of()) in place of hand-written algorithms, for brevity, clarity, and safety.
* Avoid "unsigned", which the style guide forbids, and use allowed types like size_t, uint32, or int (depending on the situation).
* Avoid #define and "using".
* Use standard algorithms for similar reasons as using string ops.
* Use file_util functions to significantly abbreviate file reading/writing code.
* Use wmain() (on Windows) in combination with FilePath to avoid issues if the provided pathname has extended characters that don't flatten losslessly to the default codepage (thanks Darin for pointing out this issue).
* Avoid casting where possible. Avoid some casts for printf()-style calls by using a string stream, which also allows for slightly less boilerplate.
* Convert non-error uses of stderr to the chrome-standard VLOG(1).
* Correctly handle hostnames with trailing dots in the input file.
* In general, shorten code where possible.
Because this adds a dependency on base, and ssl_false_start_blacklist_process has the "#host" specifier in net.gyp, bradnelson tells me that base and its dependencies need an explicit "host, target" toolchain list for the Linux builds to work correctly. It would be nice if we could avoid this but I guess gyp would have to be smarter or something.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7804001TBR=pkasting@chromium.org
Review URL: http://codereview.chromium.org/7778035
git-svn-id: http://src.chromium.org/svn/trunk/src/build@98917 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Clean up SSL false start blacklist code. Numerous changes, including:
* Handle trailing dots in LastTwoLabels() as in http://codereview.chromium.org/7518035/ . Rename this function to LastTwoComponents() to match the terminology used in the RegistryControlledDomainService and elsewhere in Chrome.
* Since callers are using std::string anyway, make the functions in the header take const std::string& instead of char*. This also allows doing string operations on them.
* Use string operations (like find_last_of()) in place of hand-written algorithms, for brevity, clarity, and safety.
* Avoid "unsigned", which the style guide forbids, and use allowed types like size_t, uint32, or int (depending on the situation).
* Avoid #define and "using".
* Use standard algorithms for similar reasons as using string ops.
* Use file_util functions to significantly abbreviate file reading/writing code.
* Use wmain() (on Windows) in combination with FilePath to avoid issues if the provided pathname has extended characters that don't flatten losslessly to the default codepage (thanks Darin for pointing out this issue).
* Avoid casting where possible. Avoid some casts for printf()-style calls by using a string stream, which also allows for slightly less boilerplate.
* Convert non-error uses of stderr to the chrome-standard VLOG(1).
* Correctly handle hostnames with trailing dots in the input file.
* In general, shorten code where possible.
Because this adds a dependency on base, and ssl_false_start_blacklist_process has the "#host" specifier in net.gyp, bradnelson tells me that base and its dependencies need an explicit "host, target" toolchain list for the Linux builds to work correctly. It would be nice if we could avoid this but I guess gyp would have to be smarter or something.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7804001
git-svn-id: http://src.chromium.org/svn/trunk/src/build@98885 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
* Handle trailing dots in LastTwoLabels() as in http://codereview.chromium.org/7518035/ . Rename this function to LastTwoComponents() to match the terminology used in the RegistryControlledDomainService and elsewhere in Chrome.
* Since callers are using std::string anyway, make the functions in the header take const std::string& instead of char*. This also allows doing string operations on them.
* Use string operations (like find_last_of()) in place of hand-written algorithms, for brevity, clarity, and safety.
* Avoid "unsigned", which the style guide forbids, and use allowed types like size_t, uint32, or int (depending on the situation).
* Avoid #define and "using".
* Use standard algorithms for similar reasons as using string ops.
* Use file_util functions to significantly abbreviate file reading/writing code.
* Use wmain() (on Windows) in combination with FilePath to avoid issues if the provided pathname has extended characters that don't flatten losslessly to the default codepage (thanks Darin for pointing out this issue).
* Avoid casting where possible. Avoid some casts for printf()-style calls by using a string stream, which also allows for slightly less boilerplate.
* Convert non-error uses of stderr to the chrome-standard VLOG(1).
* Correctly handle hostnames with trailing dots in the input file.
* In general, shorten code where possible.
Because this adds a dependency on base, and ssl_false_start_blacklist_process has the "#host" specifier in net.gyp, bradnelson tells me that base and its dependencies need an explicit "host, target" toolchain list for the Linux builds to work correctly. It would be nice if we could avoid this but I guess gyp would have to be smarter or something.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7550002TBR=pkasting@chromium.org
Review URL: http://codereview.chromium.org/7623015
git-svn-id: http://src.chromium.org/svn/trunk/src/build@96391 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Now that r96121 has landed, this should not cause compile failures when compiling base/ on the host.
Original comments follow.
Numerous changes, including:
* Handle trailing dots in LastTwoLabels() as in http://codereview.chromium.org/7518035/ . Rename this function to LastTwoComponents() to match the terminology used in the RegistryControlledDomainService and elsewhere in Chrome.
* Since callers are using std::string anyway, make the functions in the header take const std::string& instead of char*. This also allows doing string operations on them.
* Use string operations (like find_last_of()) in place of hand-written algorithms, for brevity, clarity, and safety.
* Avoid "unsigned", which the style guide forbids, and use allowed types like size_t, uint32, or int (depending on the situation).
* Avoid #define and "using".
* Use standard algorithms for similar reasons as using string ops.
* Use file_util functions to significantly abbreviate file reading/writing code.
* Use wmain() (on Windows) in combination with FilePath to avoid issues if the provided pathname has extended characters that don't flatten losslessly to the default codepage (thanks Darin for pointing out this issue).
* Avoid casting where possible. Avoid some casts for printf()-style calls by using a string stream, which also allows for slightly less boilerplate.
* Convert non-error uses of stderr to the chrome-standard VLOG(1).
* Correctly handle hostnames with trailing dots in the input file.
* In general, shorten code where possible.
Because this adds a dependency on base, and ssl_false_start_blacklist_process has the "#host" specifier in net.gyp, bradnelson tells me that base and its dependencies need an explicit "host, target" toolchain list for the Linux builds to work correctly. It would be nice if we could avoid this but I guess gyp would have to be smarter or something.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7550002TBR=pkasting@chromium.org
Review URL: http://codereview.chromium.org/7529035TBR=fischman@chromium.org
Review URL: http://codereview.chromium.org/7587003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@96211 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
* Handle trailing dots in LastTwoLabels() as in http://codereview.chromium.org/7518035/ . Rename this function to LastTwoComponents() to match the terminology used in the RegistryControlledDomainService and elsewhere in Chrome.
* Since callers are using std::string anyway, make the functions in the header take const std::string& instead of char*. This also allows doing string operations on them.
* Use string operations (like find_last_of()) in place of hand-written algorithms, for brevity, clarity, and safety.
* Avoid "unsigned", which the style guide forbids, and use allowed types like size_t, uint32, or int (depending on the situation).
* Avoid #define and "using".
* Use standard algorithms for similar reasons as using string ops.
* Use file_util functions to significantly abbreviate file reading/writing code.
* Use wmain() (on Windows) in combination with FilePath to avoid issues if the provided pathname has extended characters that don't flatten losslessly to the default codepage (thanks Darin for pointing out this issue).
* Avoid casting where possible. Avoid some casts for printf()-style calls by using a string stream, which also allows for slightly less boilerplate.
* Convert non-error uses of stderr to the chrome-standard VLOG(1).
* Correctly handle hostnames with trailing dots in the input file.
* In general, shorten code where possible.
Because this adds a dependency on base, and ssl_false_start_blacklist_process has the "#host" specifier in net.gyp, bradnelson tells me that base and its dependencies need an explicit "host, target" toolchain list for the Linux builds to work correctly. It would be nice if we could avoid this but I guess gyp would have to be smarter or something.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7550002TBR=pkasting@chromium.org
Review URL: http://codereview.chromium.org/7529035
git-svn-id: http://src.chromium.org/svn/trunk/src/build@95910 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
* Handle trailing dots in LastTwoLabels() as in http://codereview.chromium.org/7518035/ . Rename this function to LastTwoComponents() to match the terminology used in the RegistryControlledDomainService and elsewhere in Chrome.
* Since callers are using std::string anyway, make the functions in the header take const std::string& instead of char*. This also allows doing string operations on them.
* Use string operations (like find_last_of()) in place of hand-written algorithms, for brevity, clarity, and safety.
* Avoid "unsigned", which the style guide forbids, and use allowed types like size_t, uint32, or int (depending on the situation).
* Avoid #define and "using".
* Use standard algorithms for similar reasons as using string ops.
* Use file_util functions to significantly abbreviate file reading/writing code.
* Use wmain() (on Windows) in combination with FilePath to avoid issues if the provided pathname has extended characters that don't flatten losslessly to the default codepage (thanks Darin for pointing out this issue).
* Avoid casting where possible. Avoid some casts for printf()-style calls by using a string stream, which also allows for slightly less boilerplate.
* Convert non-error uses of stderr to the chrome-standard VLOG(1).
* Correctly handle hostnames with trailing dots in the input file.
* In general, shorten code where possible.
Because this adds a dependency on base, and ssl_false_start_blacklist_process has the "#host" specifier in net.gyp, bradnelson tells me that base and its dependencies need an explicit "host, target" toolchain list for the Linux builds to work correctly. It would be nice if we could avoid this but I guess gyp would have to be smarter or something.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7550002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@95907 4ff67af0-8c30-449e-8e8b-ad334ec8d88c