Граф коммитов

91 Коммитов

Автор SHA1 Сообщение Дата
ajwong@chromium.org 5e1b58f008 Add yasm and ffmpeg into the build tree for linux.
BUG=22307
TEST=builds correctly, and an html5 video runs.

Review URL: http://codereview.chromium.org/300013

git-svn-id: http://src.chromium.org/svn/trunk/src/build@30571 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-10-30 11:23:08 +00:00
nsylvain@chromium.org 54caf3e9f7 Move nacl_ui_tests to the right section. oops.
Review URL: http://codereview.chromium.org/306049

git-svn-id: http://src.chromium.org/svn/trunk/src/build@29771 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-10-22 14:28:45 +00:00
nsylvain@chromium.org c6c018adf2 Add the nacl ui test to the Chromium Builder configuration.
Review URL: http://codereview.chromium.org/307031

git-svn-id: http://src.chromium.org/svn/trunk/src/build@29731 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-10-21 23:13:38 +00:00
robertshield@chromium.org ad492e8362 Adding a Chrome Frame target to all.gyp to allow a continuous builder to build only the subset of projects required by Chrome Frame.
BUG=NONE
TEST=NONE

Review URL: http://codereview.chromium.org/264016

git-svn-id: http://src.chromium.org/svn/trunk/src/build@28956 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-10-14 13:44:24 +00:00
nsylvain@chromium.org c457689683 Revert 28558 because this is clearly responsible for
breaking the interactive ui tests. It just needs a clobber.

It looks like 2 parts of the code don't agree on the number of
buttons on the bookmark bar. Maybe because part of the code is
compiled with CHROME_PERSONALIZATION = 1 while the test is compiled
with CHROME_PERSONALIZATION = 0. Maybe this new gyp change broke the
define propagation. This is really easy to replicate, and should also
be easy to debug.

Original Log:
Relanding the interactive UI tests GYP factor out, as it turns
out it is not responsible for breaking the interactive ui tests.


Review URL: http://codereview.chromium.org/271046

git-svn-id: http://src.chromium.org/svn/trunk/src/build@28668 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-10-10 18:47:39 +00:00
jcampan@chromium.org 6ba9cba998 Relanding the interactive UI tests GYP factor out, as it turns
out it is not responsible for breaking the interactive ui tests.

See http://codereview.chromium.org/259018/show

TBR=brettw
Review URL: http://codereview.chromium.org/270042

git-svn-id: http://src.chromium.org/svn/trunk/src/build@28558 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-10-09 17:57:31 +00:00
jcampan@chromium.org 4dc2bf909b Reverting 28404, it seems to break the interactive ui tests in mysterious ways.
TBR=brettw
Review URL: http://codereview.chromium.org/268024

git-svn-id: http://src.chromium.org/svn/trunk/src/build@28492 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-10-09 00:47:31 +00:00
jcampan@chromium.org 0a801c4917 Extracting the interactive ui tests to their own GYP file.
BUG=None
TEST=The interactive tests should still build and run on Windows and Linux
Review URL: http://codereview.chromium.org/259018

git-svn-id: http://src.chromium.org/svn/trunk/src/build@28404 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-10-08 17:12:08 +00:00
slightlyoff@chromium.org e055a4cda5 Includes chrome_frame project in chrome.sln for windows.
BUG=None
TEST=rebuild gyp files, open chrome.sln. Observer chrome_frame project.

Review URL: http://codereview.chromium.org/271014

git-svn-id: http://src.chromium.org/svn/trunk/src/build@28362 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-10-08 01:05:28 +00:00
sgk@google.com 19ba4b483e Add comments setting emacs and vim tab width and expansion variables.
BUG=none
TEST=successful builds
Review URL: http://codereview.chromium.org/256059

git-svn-id: http://src.chromium.org/svn/trunk/src/build@28089 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-10-06 03:02:38 +00:00
thomasvl@chromium.org f3538724f2 Add googleurl unittest to the mac builders for the testers to run it.
Add browser_test to the mac builders, doesn't pass yet, but this way it's ready to be run when it works.

BUG=none
TEST=none
Review URL: http://codereview.chromium.org/256052

git-svn-id: http://src.chromium.org/svn/trunk/src/build@27993 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-10-05 15:12:38 +00:00
pinkerton@chromium.org 4d7ddf4652 gyp changes to enable building OCMock. Patch from Paul Wicks (pwicks86@gmail.com).
TEST=Use OCMock in a test 
BUG=NONE

git-svn-id: http://src.chromium.org/svn/trunk/src/build@27506 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-09-29 17:41:33 +00:00
nick@chromium.org cd1291196d The builders should build sync_unit_tests.
Review URL: http://codereview.chromium.org/235044

git-svn-id: http://src.chromium.org/svn/trunk/src/build@27441 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-09-29 00:19:51 +00:00
nsylvain@chromium.org d6695a1f4c more missing dependencies (caused by bad dependencies somewhere else)
Review URL: http://codereview.chromium.org/242029

git-svn-id: http://src.chromium.org/svn/trunk/src/build@27355 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-09-27 23:36:01 +00:00
nsylvain@chromium.org e98cbca9e4 Add missing dependencies.
Review URL: http://codereview.chromium.org/235037

git-svn-id: http://src.chromium.org/svn/trunk/src/build@27351 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-09-27 23:01:14 +00:00
nsylvain@chromium.org e8a7e5e8f8 Add new projects to help speed up the buildbots.
Review URL: http://codereview.chromium.org/252006

git-svn-id: http://src.chromium.org/svn/trunk/src/build@27272 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-09-25 22:52:12 +00:00
yaar@chromium.org 348eca2172 Force inclusion of build/common.gypi for all chromium gyp files.
Why: Simpler build code. If everybody includes it, it should be included automatically.
Why now: The webkit chromium builds need it be specified, since can't default to build/common.gypi.

What was done:
1. build/common.gypi's contents were moved to a new file build/gyp_chromium.gypi
2. tools/gyp/gyp_chromium was moved to build/gyp_chromium and made to automatically include build/gyp_chromium.gypi.
3. lots of gyp files were fixed to not refer to build/common.gypi any more.
4. o3d which also builds independently of chrome, was fixed to have a gyp_o3d that includes gyp_chromium.gypi too.
5. build/common.gypi was left empty, because there are some external projects that still refer to it.

Things that are left to do after this patch is in:
1. The following external files (in other repositories) need to stop include common.gypi
  ./third_party/hunspell/hunspell.gyp
  ./third_party/icu/icu.gyp
  ./v8/tools/gyp/v8.gyp
2. Once nobody refers to common.gypi anymore, delete common.gypi
   -or-
   Delete gyp_chromium.gypi and move its content back to common.gypi

Tested on mac, win and linux. On win, got a few unit tests errors on chrome bookmarks, which should not be related. I'm running again with clobber to verify.

Review URL: http://codereview.chromium.org/206006

git-svn-id: http://src.chromium.org/svn/trunk/src/build@26302 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-09-15 23:52:14 +00:00
agl@chromium.org d1aa7bfdd6 Linux: remove tcmalloc from build/all.gyp
Make sure that there are no references to tcmalloc code in the Linux build.

This is part of an attempt to reland r26264.


git-svn-id: http://src.chromium.org/svn/trunk/src/build@26292 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-09-15 23:01:09 +00:00
thomasvl@chromium.org 5e94dd8fa0 Remove the test runner line I had in there by accident.
BUG=none
TEST=none
TBR=mark
Review URL: http://codereview.chromium.org/204004

git-svn-id: http://src.chromium.org/svn/trunk/src/build@26101 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-09-14 12:05:04 +00:00
thomasvl@chromium.org e0959b7b3f Remove the target the bots used to use (but don't any more).
Add two targets for the chromium mac builders to build the subset their testers run for better cycle times.

TEST=none
BUG=none
Review URL: http://codereview.chromium.org/195063

git-svn-id: http://src.chromium.org/svn/trunk/src/build@26005 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-09-11 20:46:00 +00:00
jshin@chromium.org df1ae7a67d Replace icu38/icu38.gyp with icu/icu.gyp in gyp files replace all the references to third_party/icu38 and icudt38.dll with third_party/icu and icudt42.dll in vsprops and cc files. Also, update the icu data module name and the icu data symbol in icu_util.cc
In addition, add a dummy C++ source file (xmldummy_mac.cc) to libxml to work around an Xcode bug (xmllint and xmlcatalog are linked with gcc rather than g++ even though it's linked to a "C++ library", libicuuc.a). 

Also updated is the test results for net_util_unittests.


This will not be landed until deps/third_party/icu42 is ready for all 3 platforms (Windows VS build files are not yet updated there). 

BUG=8198
TEST=On all platforms, all the targets are built fine.

Review URL: http://codereview.chromium.org/172031

git-svn-id: http://src.chromium.org/svn/trunk/src/build@25708 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-09-09 06:49:08 +00:00
jam@chromium.org d98645bde1 Take out the activex control.BUG=20259
Review URL: http://codereview.chromium.org/200031

git-svn-id: http://src.chromium.org/svn/trunk/src/build@25650 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-09-08 19:46:18 +00:00
willchan@chromium.org 1f96de6c41 Linux: add gyp flag for enabling tcmalloc. Also fix the linux build which didn't work in a clean client since tcmalloc.h wasn't generated.
Review URL: http://codereview.chromium.org/173387

git-svn-id: http://src.chromium.org/svn/trunk/src/build@24538 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-08-26 21:53:46 +00:00
huanr@chromium.org 5a957474b0 Revert r22080 and re-enable tcmalloc.
Review URL: http://codereview.chromium.org/159771

git-svn-id: http://src.chromium.org/svn/trunk/src/build@22251 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-08-02 05:51:12 +00:00
huanr@chromium.org e92dc2cff9 Removing tcmalloc from gyp so we can build a version of chrome
without tcmalloc for testing purpose. The linker complains about
_set_new_mode so I remove the call from the code for now.

Note this change is different from the change Bradley is working
on which provides an option for building chrome without tcmalloc.
This change simply removes tcmalloc from the build. The plan is
checking it in, keeping it in trunk for 24 hours, and then
reverting it. The benefits are

- Having another round of performance comparison between build
with and w/o tcmalloc.
- Having a full run of UI test under purify with tcmalloc disabled.
- Getting a verified CL in case we'd like to build an alternative
dev build w/o tcmalloc for A/B test.


Review URL: http://codereview.chromium.org/159599

git-svn-id: http://src.chromium.org/svn/trunk/src/build@22080 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-07-30 19:13:34 +00:00
mmoss@chromium.org a903ede33c Add Linux package building target.
Also rearrange installer targets with better grouping for easier reading.

Review URL: http://codereview.chromium.org/159641


git-svn-id: http://src.chromium.org/svn/trunk/src/build@22063 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-07-30 17:42:35 +00:00
thomasvl@chromium.org 607c513146 Now that testshell depends on imagediff we can start to cleanup the targets added for the bots. Once the bots are bounced to the new configs, this target could go away completely.
Review URL: http://codereview.chromium.org/159422

git-svn-id: http://src.chromium.org/svn/trunk/src/build@21687 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-07-27 20:26:34 +00:00
dpranke@google.com bfc397e46e re-do CL 2136 - move image_diff to tools/imagediff, add deps to test_shell
moving image_diff from chrome/tools/test/image_diff to tools/imagediff
(not moving to tools/image_diff to avoid some svn unpleasantness with that
directory having been created in CL 21366). 

Also change test_shell.gyp to depend on everything needed to run the layout
tests.

R=darin@chromium.org
TEST=none
BUG=none

Review URL: http://codereview.chromium.org/159361

git-svn-id: http://src.chromium.org/svn/trunk/src/build@21584 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-07-24 21:40:57 +00:00
dpranke@google.com db06042fac back out CLs 21367, 21366 - no idea why these keep breaking
Review URL: http://codereview.chromium.org/155983

git-svn-id: http://src.chromium.org/svn/trunk/src/build@21371 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-07-23 03:14:34 +00:00
dpranke@google.com dfd9069dd6 re-do CL 21252 - move image_diff to tools, add deps to test_shell
CL 21252 seems to have had some svn brokenness (not sure why). I've recreated
it and resubmitted it. The changes are to move image_diff from 
chrome/tools/test to tools/, and to make test_shell depend on image_diff
and npapi_layout_test_plugin (and test_worker, where applicable)

R=nsylvain@chromium.org
TEST=none
BUG=none

Review URL: http://codereview.chromium.org/155959

git-svn-id: http://src.chromium.org/svn/trunk/src/build@21366 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-07-23 01:40:12 +00:00
agl@chromium.org 20f89a26ff Split the IPC code into ipc/
This splits the ipc code from the common project.  The 'common' project pulls in
all of webkit, the v8 bindings, skia, googleurl, and a number of other projects
which makes it very difficult to deal with especially for external projects
wanting just to use some of Chromium's infrastructure.  This puts the ipc code
into its top-level ipc/ directory with a dependency only on base.  The common
project depends on the new ipc/ipc.gyp:ipc target so that all projects currently
pulling common in to get the IPC code still have it available.  This mostly
follows agl's pre-gyp attempt to do this which was r13062.

Known issues:
- Currently a number of projects depend on chrome/chrome.gyp:common in order to
use the IPC infrastructure.  Rather than fixing all of these dependencies I have
made common depend on ipc/ipc.gyp:ipc and added "ipc" to the include_rules
section of DEPS so that checkdeps.py doesn't complain.  Over time projects that
need IPC should depend on the IPC project themselves and dependencies on common
removed, although I don't think many projects that need IPC will be able to get
away without common currently.
- ipc/ipc_message_macros.h still has #include "chrome/common/..." inside of a
ipc/ should not refer to files in chrome/... now.  I'm not sure how to resolve
this since it's really an IDE bug
- the named pipe name (windows+linux) and the logging event name (all) + env
variable (posix) refer explicitly to 'Chrome' which somewhat hurts the illusion
of ipc/ being an independent library.  I think this should be examined in a
subsequent, much smaller patch.
- I've eliminated the IPC.SendMsgCount counter since it was implemented in a way
to create a dependency from ipc/ to chrome/common/chrome_counters. This is the
same approach that r13062 took.

http://codereview.chromium.org/155905

(Patch from James Robinson)


git-svn-id: http://src.chromium.org/svn/trunk/src/build@21342 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-07-22 23:57:21 +00:00
dpranke@google.com c7d08a3502 revert change 21252, which broke the mac build for some reason
git-svn-id: http://src.chromium.org/svn/trunk/src/build@21262 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-07-22 02:59:23 +00:00
dpranke@google.com 6ad552e82b make 'test_shell' target depend on everything needed to pass layout_tests
This adds project dependencies to test_shell so that all (and only?)
the targets needed for the layout_tests to run cleanly are built. On most
platforms this is test_shell, npapi_test_plugin, and test_worker, and on
the Mac this adds the layout_test_helper binary as well

also, this moves image_diff from chrome/tools/test to tools/

R=mmentovai@google.com, darin@google.com
BUG=none
TEST=none

Review URL: http://codereview.chromium.org/149714

git-svn-id: http://src.chromium.org/svn/trunk/src/build@21252 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-07-22 00:54:44 +00:00
sra@google.com f1318c4b2e Code changes to get the code to compile under GCC.
Courgette still only knows how to compress Windows x86 executables.
But now you can compress them on linux.

BUG=none
TEST=none

Review URL: http://codereview.chromium.org/149597

git-svn-id: http://src.chromium.org/svn/trunk/src/build@21042 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-07-18 03:28:40 +00:00
agl@chromium.org a8ebcde780 Linux: SUID sandbox support
* Make processes dumpable when they crash.
  * Find crashing processes by searching for a socket inode, rather
    than relying on SCM_CREDENTIALS. The kernel doesn't translate PIDs
    between PID namespaces with SCM_CREDENTIALS, so we can't use the
    PID there.
  * Use a command line flag to the renderer to enable crash dumping.
    Previously it tried to access the user's home directory for this
    information.
  * Search for a sandbox helper binary and, if found, use it.
  * Include the source for a sandbox helper binary. It's currently not
    built by default.

http://codereview.chromium.org/149230
R=evan,markus
BUG=8081


git-svn-id: http://src.chromium.org/svn/trunk/src/build@20110 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-07-08 01:15:14 +00:00
tony@chromium.org 351cba30a0 Add a small untility for checking to see if the X server is alive.
This will be used by the buildbots after Xvfb is executated to make sure that Xvfb is alive.

Review URL: http://codereview.chromium.org/126165


git-svn-id: http://src.chromium.org/svn/trunk/src/build@18549 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-06-16 22:44:58 +00:00
sidchat@google.com 1be574ad32 Add Compact Language Detection (CLD) library to Chrome. This works in Windows only currently.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/122007

git-svn-id: http://src.chromium.org/svn/trunk/src/build@18445 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-06-15 22:18:40 +00:00
sgk@google.com c147b7bdf8 Convert tcmalloc (and its modified libcmt) to building with gyp.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/119265

git-svn-id: http://src.chromium.org/svn/trunk/src/build@17828 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-06-06 12:42:36 +00:00
sgk@google.com 6b9836252f Fetch last change (revision) info in a separate action that can run
every build, instead of having it occur as a side effect of updating
some other target for which we want to use normal up-to-date checks.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/118192

git-svn-id: http://src.chromium.org/svn/trunk/src/build@17634 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-06-04 16:08:16 +00:00
bradnelson@chromium.org 0897fbe8dc Removing unused variables and conditions in all.gyp
BUG=None
TEST=None
TBR=sgk

Review URL: http://codereview.chromium.org/119030

git-svn-id: http://src.chromium.org/svn/trunk/src/build@17395 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-06-02 07:48:28 +00:00
bradnelson@google.com 49fb4f7cc8 Switching chrome.sln to gyp generated version.
Doing this by using existing vcproj files.

BUG=None
TEST=None

Review URL: http://codereview.chromium.org/119021

git-svn-id: http://src.chromium.org/svn/trunk/src/build@17379 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-06-02 03:27:01 +00:00
bradnelson@chromium.org 8d5c643d33 Switching locales projects to be semi gyp generated.
Initially these will be drop in replacements for the existing projects.
These were generated mechanically in lieu of a looping syntax.

Review URL: http://codereview.chromium.org/115853

git-svn-id: http://src.chromium.org/svn/trunk/src/build@17070 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-05-28 08:17:39 +00:00
ajwong@chromium.org fe0e67a31c Retry to checkin a version of gmock, modified to use our boost_tuple in VS2005.
This checkin adds gmock, and a small example of how to write a gmock-based unittest.

Original Review URL: http://codereview.chromium.org/113807

Review URL: http://codereview.chromium.org/115846

git-svn-id: http://src.chromium.org/svn/trunk/src/build@17066 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-05-28 06:02:56 +00:00
sgk@google.com b851f9893f Add .dll (and a .exe) files to the gyp build:
* activex_test_control.dll
* browser_tests.dll
* browser_tests.exe
* memory_watcher.dll
* rlz.dll
* security_tests.dll
* test_chrome_plugin.dll
* themes/default.dll
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/113915

git-svn-id: http://src.chromium.org/svn/trunk/src/build@17023 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-05-27 21:29:36 +00:00
sgk@google.com bf020e1cb6 Add gyp-generated bspatch (used by setup.exe) and bsdiff.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/115778

git-svn-id: http://src.chromium.org/svn/trunk/src/build@16966 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-05-27 02:06:16 +00:00
bradnelson@chromium.org a55777c82b Converting gears prebuilt stub to gyp.
Review URL: http://codereview.chromium.org/115801

git-svn-id: http://src.chromium.org/svn/trunk/src/build@16938 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-05-26 22:39:36 +00:00
ajwong@chromium.org e823e74e32 Revert "Checkin a version of gmock, modified to use our boost_tuple in VS2005."
This reverts commit 071e95bcdcefcd2cb86c9aed5cb073bbcaa7f2a7.

git-svn-id: http://src.chromium.org/svn/trunk/src/build@16931 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-05-26 22:05:05 +00:00
ajwong@chromium.org 87f5dd4967 Checkin a version of gmock, modified to use our boost_tuple in VS2005.
This checkin adds gmock, and a small example of how to write a gmock-based unittest.

Review URL: http://codereview.chromium.org/113807

git-svn-id: http://src.chromium.org/svn/trunk/src/build@16927 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-05-26 21:49:53 +00:00
agl@chromium.org 2c584934a5 Linux: add Breakpad support
This commits a rewrite of the Breakpad Linux client.

The old code:
 * Had a number of plain bugs in it, but those could just have been
   fixed.
 * Allocated memory from the heap, which is a no go.
 * Made libc calls which can enter the dynamic linker - another source
   of crashes.
 * Didn't understand some of the tricks needed, like clone() via libc
   will write to random areas of memory because it assumes that it's
   only called from libpthread

Additionally, we had one more requirement which meant changing the
interface:
 * We need to be able to crash dump the renderers from the browser
   process.

And that last one really needed a rewrite.

We intend to try and upstream this new code into Breakpad.

The new Breakpad design works like this:

When a renderer crashes, a signal handler runs on an alternative stack
and collects information about the registers of the thread before the
crash. Then we enter Chromium specific code an send a datagram message
to a magic file descriptor (4) containing:
  * the registers and tid of the crashing thread
  * the active URL
  * a file descriptor to a socket
  * a CREDENTIALS structure giving the PID of the renderer.

On the other end of the socket is an object on the IO thread
(render_crash_handler_host_linux.cc) which reads and parses the
datagram. The CREDENTIALS structure is validated by the kernel, so the
renderer can't lie about it's PID and try and get the browser to crash
dump the wrong process.

The browser then ptraces the renderer and extracts all the needed
information to write a minidump to a temp file. Then we write a byte
to the file descriptor which the renderer gave the browser in the
datagram and that's the signal to the renderer to finish dying. It
dies by sending itself the same signal which trigger the crash dump in
the first place, so it will appear to crash as normal as far as kernel
core dumps and waitpid are concerned.

The browser then constucts a MIME message in a temp file for upload to
the crash service. We then fork out to /usr/bin/wget to actually do
the upload (since Debian numbers suggest that 99.8% of users have wget
installed.) A second forked child unlinks the temp files once wget has
completed.

For a browser crash, everything works pretty much the same except that
the datagram step is omitted and we clone() off a process to ptrace
ourselves and write the minidump.

This code is only enabled in Chrome branded builds. Stub source files
are substituted in the case of a Chromium build.

 http://codereview.chromium.org/115526

BUG=9646,10772
TEST=Build a Chrome branded binary. Send SEGV to a renderer and verify that wget output appears on stderr. Send a SEGV to the main binary and verify the same.


git-svn-id: http://src.chromium.org/svn/trunk/src/build@16719 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-05-22 03:37:45 +00:00
ben@chromium.org 3b077f41b4 Convert views to gyp.
http://crbug.com/11387

Review URL: http://codereview.chromium.org/113618

git-svn-id: http://src.chromium.org/svn/trunk/src/build@16490 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-05-20 18:00:21 +00:00