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

926 Коммитов

Автор SHA1 Сообщение Дата
evan@chromium.org 24fb92782e bsds: views/ and webkit/ support for FreeBSD/OpenBSD
- add a TOOLKIT_USES_GTK #define to catch GTK and Views+GTK
- lots of ifdef twiddling

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35402 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-31 01:03:52 +00:00
bradnelson@google.com 6262e642eb Dropping unneeded set of vsprops.
These vsprops used to be used to setup the branding #defines.
This is now handled in common.gypi.
This is an incremental step toward dropping vsprops entirely for release.

BUG=None
TEST=None
TBR=maruel


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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35367 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-30 04:39:17 +00:00
jrg@chromium.org 8c37c35ac8 More scons --> make work.
Review URL: http://codereview.chromium.org/515057

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35338 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-29 18:51:30 +00:00
evan@chromium.org e6f6abe58f Clarify licenses on a bunch of files.
In this process, I also filed bugs on various projects we depend
on that also have unclear licenses.

BUG=28291

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35323 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-29 00:59:31 +00:00
jrg@chromium.org 130a28f831 Apply -lgcov link to type loadable_bundle when building coverage=1.
Review URL: http://codereview.chromium.org/515045

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35307 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-28 20:45:43 +00:00
piman@chromium.org 1f9ff9eb74 linux: add gl headers/libs for gpu plugin
Review URL: http://codereview.chromium.org/522007

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35248 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-24 01:03:05 +00:00
agl@chromium.org 42ec99a1b8 Linux: fix scons build so that libssl gets the right headers.
http://codereview.chromium.org/515021

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35243 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-23 23:54:37 +00:00
glider@chromium.org 12543515aa Added the chromium_builder_dbg_tsan_mac target
to increase the cycle speed of the Tsan buildbot on Mac OS.

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35217 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-23 12:29:59 +00:00
willchan@chromium.org 6c08b9d71a Revert 35189 (caused test_shell_tests crashes on valgrind bot):
Take 2: Reenable TCMalloc on Linux and make POSIX signal handling async signal safe.
Reinstates r34096 and r34036, which were reverted by r34632 due to hanging ui_tests and browser_tests on bots.
I've been unable to repro on the trybots despite hitting them with a ton of try jobs, so I'm trying on the buildbots again.
BUG=http://crbug.com/30501

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

TBR=willchan@chromium.org
Review URL: http://codereview.chromium.org/517001

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35192 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-23 00:11:17 +00:00
willchan@chromium.org 74839fff88 Take 2: Re-enable TCMalloc on Linux and make POSIX signal handling async signal safe.
Reinstates r34096 and r34036, which were reverted by r34632 due to hanging ui_tests and browser_tests on bots.
I've been unable to repro on the trybots despite hitting them with a ton of try jobs, so I'm trying on the buildbots again.
BUG=http://crbug.com/30501

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35189 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-22 23:57:16 +00:00
oshima@chromium.org 37275f268d Change chromeos build to use views
BUG=None
TEST=None

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35186 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-22 23:30:18 +00:00
apatrick@google.com acf974e1aa Added Pepper 3D device that instantiates the GPU plugin and sends GLES2 commands to it via a command buffer.
Added API for managing buffers to Pepper 3D device.

Removed DCHECK from WebPluginImpl::SetWindow that checks against a windowless plugin being given a window handle. Please check this! Now an initially windowless plugin instance gets a handle when it requests a Pepper 3D context. Perhaps the window handle should be concealed from the underlying plugin isntance.

Removed enable_gpu gyp variable and C macro. GPU code is always built on windows but not mac or linux. It is enabled at runtime with the --enable-gpu-plugin switch.

Redesigned CommandBuffer interface so it exposes shared memory through a Buffer. This was necessary because Pepper has no notion of shared memory handles. The Buffer exposes the shared memory as both a handle (through base::SharedMemory) and the mapped address and size.

Refactored CommandBufferEngine so mapped shared memory addresses and sizes are returned with a single call rather than two separate calls.
	
Added 3D demo to pepper test plugin.

TEST=try servers
BUG=none

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35185 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-22 23:28:15 +00:00
gregoryd@google.com 0c62ce1e69 Refactoring build configurations - make it clearer and allow better support for x64 on Windows
TEST=none
BUG=29467


Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=35012
Review URL: http://codereview.chromium.org/501127

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35129 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-22 01:52:50 +00:00
gregoryd@google.com a45f9d2d51 Revert 35012 - Rearrange build configurations make it clearer and allow better support for x64 on Windows
TEST=none
BUG=29467

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

TBR=gregoryd@google.com
Review URL: http://codereview.chromium.org/500149

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35016 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-19 00:58:01 +00:00
gregoryd@google.com 28ea5a8a76 Rearrange build configurations - make it clearer and allow better support for x64 on Windows
TEST=none
BUG=29467

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@35012 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-19 00:35:28 +00:00
slightlyoff@chromium.org 28ff355e0b Revert 34983 - Split more targets from chrome.gyp to add support for building Native Client for 64bit Windows.
This CL is required for supporting Native Client on 64bit Windows. On Win64 we will use a 64bit executable to load NaCl modules. Since we have only one version of Chrome on Windows, this executable has to be built together with 32bit Chrome binaries.
For the targets that are required for both 32bit and 64bit builds, this CL moves the shared parts of the target definitions into targetspecific gypi files (such as base.gypi). New 64bit only targets are added. Since we would like to port as few code as possible at this point, some 64bit targets include less source files or less dependencies than the original 32bit targets. These targets will have nacl_win64 in their name  to emphasize that they should be used for NaCl only. Some 64bit targets are identical to the 32bit targets in everything except for the target platform  these will have only win64 in their name. 

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

TBR=gregoryd@google.com

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34990 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-18 22:09:12 +00:00
gregoryd@google.com 58255f93a6 Split more targets from chrome.gyp to add support for building Native Client for 64-bit Windows.
This CL is required for supporting Native Client on 64-bit Windows. On Win64 we will use a 64-bit executable to load NaCl modules. Since we have only one version of Chrome on Windows, this executable has to be built together with 32-bit Chrome binaries.
For the targets that are required for both 32-bit and 64-bit builds, this CL moves the shared parts of the target definitions into target-specific gypi files (such as base.gypi). New 64-bit only targets are added. Since we would like to port as few code as possible at this point, some 64-bit targets include less source files or less dependencies than the original 32-bit targets. These targets will have nacl_win64 in their name - to emphasize that they should be used for NaCl only. Some 64-bit targets are identical to the 32-bit targets in everything except for the target platform - these will have only win64 in their name. 

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34983 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-18 20:55:37 +00:00
benl@chromium.org 6199ed3877 OpenBSD defines.
git-svn-id: http://src.chromium.org/svn/trunk/src/build@34829 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-17 14:49:39 +00:00
willchan@chromium.org c07106dc4d Fix Linux hanging ui_tests and browser_tests by reverting posix signal handler changes.
Reverts:
r34036 - "Make POSIX SIGTERM/SIGINT/SIGHUP handler async signal safe."
r34096 - "Re-enable TCMalloc on Linux."  This change depended on the posix signal handler change.
BUG=http://crbug.com/30501

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34632 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-16 00:55:07 +00:00
cmasone@google.com 2b5f7ff85b Adding libpam0g-dev to the build deps -- we need this for doing login with Chromium on Chromium OS
BUG=30328

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34506 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-14 22:20:37 +00:00
senorblanco@chromium.org e0dce7df2d Enable SVG filters in Chrome. This will cause a number of tests to need rebaselines.
BUG=29737
TEST=none


Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=34446
Review URL: http://codereview.chromium.org/491070

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34460 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-14 16:51:14 +00:00
senorblanco@chromium.org 2035a320a6 Revert 34446, since it broke ChromiumOS.
BUG=29737
TEST=none

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

TBR=senorblanco@chromium.org
Review URL: http://codereview.chromium.org/495015

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34447 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-13 18:31:38 +00:00
senorblanco@chromium.org 986aced5b5 Enable SVG filters in Chrome. This will cause a number of tests to need rebaselines.
BUG=29737
TEST=none

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34446 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-13 18:11:29 +00:00
bradnelson@google.com 532a39f88a Yet again, trying to land switch to win7 sdk.
BUG=None
TEST=None

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34433 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-12 22:19:52 +00:00
evan@chromium.org 2fd1a8253c Changes to build/ from a combination of FreeBSD and OpenBSD patches.
Review URL: http://codereview.chromium.org/491053

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34371 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-11 20:04:06 +00:00
bradnelson@google.com e7f8cfd5d8 Reverting sdk7 landing AGAIN!!!
Something is still fishy on the bots.

BUG=None
TEST=None
TBR=maruel


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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34358 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-11 18:39:01 +00:00
bradnelson@google.com fd1a6ced96 Reconstructing 34247 / 479007
Giving it another go on the bots.
I think I know what went wrong.

BUG=None
TEST=None
TBR=maruel

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34355 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-11 17:59:20 +00:00
bradnelson@google.com b4a950d40e Reverting 34267.
Too much red.

BUG=None
TEST=None
TBR=maruel

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34269 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-10 19:47:28 +00:00
bradnelson@google.com 5ab5b8bf93 Switching platform sdk hermetic fallback to 7.0
BUG=None
TEST=None


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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34267 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-10 19:35:50 +00:00
mmoss@google.com 97167e5465 Make sure the 'use_system_*' variables are actually visible in the relevant gyp files.
Retrying r34195, this time without libxslt, since we don't want to use the
system version of that if we're not also using system libxml (merged from
http://codereview.chromium.org/481011).

BUG=29738

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34255 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-10 17:31:45 +00:00
glider@chromium.org 8611d14f34 Link the following tests against tcmalloc:
app_unittests
  browser_tests
  startup_tests
  media_unittests
  printing_unittests
  net_unittests
  googleurl_unittests
  ipc_tests
  unit_tests
  ui_tests

This patch was originally reviewed as http://codereview.chromium.org/466089

TBR=willchan

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34247 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-10 12:06:15 +00:00
sehr@google.com e46808f558 Make building of pepper_test_plugin only happen on Windows.
In the previous CL I made the build of pepper_test_plugin conditional
but forgot to remove the unconditional reference, leaving the build breakage
on Linux.
TBR=jrg,asargent,skylined
BUG=none
TEST=none

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34232 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-10 05:24:44 +00:00
sehr@google.com d8b02466a1 Re-enable the build of Pepper support by default (issue 464074, svn revision 34161).
There were problems building Skia and others for the 64-bit linux versions of the
Pepper test plugin, so I have disabled building that plugin except on Windows for now
and added a TODO.

One significant addition to the previous comment lines. The flag enable_gpu=1 now
causes the build definition ENABLE_GPU=1 to allow guarding of dependent code.
BUG=none
TEST=none

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34227 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-10 03:21:14 +00:00
jrg@chromium.org 18872a02e0 Revert 34195 - Make sure the 'use_system_*' variables are actually visible in the relevant gyp files.
BUG=29738

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

TBR=mmoss@google.com

Example choke:
http://build.chromium.org/buildbot/waterfall/builders/Linux%20Perf/builds/4382/steps/compile/logs/stdio

   Compiling /b/slave/chromium-rel-linux-hardy/build/src/sconsbuild/Release/obj/chrome/unit_tests/common/bzip2_unittest.o
   /b/slave/chromium-rel-linux-hardy/build/src/chrome/common/bzip2_unittest.cc:6:19: error: bzlib.h: No such file or directory


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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34213 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-10 00:53:59 +00:00
mmoss@google.com 029b242532 Make sure the 'use_system_*' variables are actually visible in the relevant gyp files.
BUG=29738

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34195 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-09 22:04:02 +00:00
sehr@google.com 0fd4a4c5ca Revert 34161 - Enable Pepper support by default, including building the test plugin.
This is needed because the NaCl plugin code that runs in the renderer
needs to use Pepper APIs all the time, and NaCl support has been enabled
by default for several months now.  To cause an untrusted Pepper plugin
to run in the renderer one needs to specify the internalpepper flag.
I have also removed the enable_pepper flag from gyp.  As the build of the
GPU process was tied to this flag, I have renamed the flag to enable_gpu.
TEST=none
BUG=none

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

TBR=sehr@google.com
Review URL: http://codereview.chromium.org/475004

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34162 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-09 17:45:03 +00:00
sehr@google.com 39017af51a Enable Pepper support by default, including building the test plugin.
This is needed because the NaCl plugin code that runs in the renderer
needs to use Pepper APIs all the time, and NaCl support has been enabled
by default for several months now.  To cause an untrusted Pepper plugin
to run in the renderer one needs to specify the --internal-pepper flag.
I have also removed the enable_pepper flag from gyp.  As the build of the
GPU process was tied to this flag, I have renamed the flag to enable_gpu.
TEST=none
BUG=none

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34161 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-09 17:19:22 +00:00
agl@chromium.org 70ee1734bb Linux: switch to our own copy of libssl by default.
http://codereview.chromium.org/465137

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34125 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-09 01:45:41 +00:00
willchan@chromium.org ed73ea21ff Re-enable TCMalloc on Linux.
In r34036, I've fixed the signal handlers not to allocate dynamic memory, so they shouldn't deadlock anymore.

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34096 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-08 22:38:31 +00:00
ojan@chromium.org dbb930c7b0 Add apache to the linux build deps installation.
Review URL: http://codereview.chromium.org/465129

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34088 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-08 21:39:16 +00:00
agl@chromium.org 9a07506a13 Linux: switch to using the system libraries in some cases.
Previously we built our own copies of many common system libraries.
This comes from our Windows history, where these libraries have to be
carried by any application using them because they aren't provided as
standard.

On Linux, however, they are ubiqutous so we can save binary size by
dynamically linking against the system versions.

TEST=none
BUG=29738

http://codereview.chromium.org/465126

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34084 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-08 21:04:07 +00:00
agl@chromium.org d939344f7a Fix build with use_system_zlib=1
http://codereview.chromium.org/469018

git-svn-id: http://src.chromium.org/svn/trunk/src/build@34067 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-08 18:39:27 +00:00
bradnelson@google.com 4f874240b4 Prevent Common_x64 from leaking thru on non-windows platforms.
BUG=None
TEST=None

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@33998 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-07 22:07:56 +00:00
gregoryd@google.com 3c3d7b92c9 Split base.gyp and add base_nacl_win64 target
TEST=none
BUG=28176


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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@33872 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-04 22:46:50 +00:00
joel@chromium.org 9a4e5a82fc arm: Add thumb target and associated fixes
Add arm_thumb=1 to GYP_DEFINES to enable

BUG=29203

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@33799 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-04 06:21:29 +00:00
dank@chromium.org d9a7a5e8fe Make no-tcmalloc (really, non-base/allocator) builds work again,
(i.e. this is a plain vanilla build used when layers like base/allocator
are getting in the way of debugging)
and make sure they use msvcrt rather than libcmt
(libcmt is used to help shim malloc/free, but it gets
in the way of valgrind doing the same thing).

Sadly, this is now a gyp-time operation rather than a Configuration
option.

Had to remove hardcoded C prototype for _set_new_mode, 
as that caused link errors.

Also add variables win_{release,debug}_{Optimization,RuntimeLibrary}
to let the valgrind build override those settings.

Fix calling convention on _set_new_mode to match the
one in <new.h>

BUG=none
TEST=build with ~/.gyp/include.gypi set as described in comment in common.gypi, gclient runhooks, do release build, verify all exe's and dll's linked against msvcrt dll


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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@33719 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-03 21:07:47 +00:00
jrg@chromium.org 7930aa5773 Add windows croc file
Review URL: http://codereview.chromium.org/460033

git-svn-id: http://src.chromium.org/svn/trunk/src/build@33653 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-12-03 02:17:11 +00:00
agl@chromium.org 086ae336e4 Linux: add next-protocol-negotiation to libssl.
This is an experimental, client only implementation of
next-protocol-negotiation:

http://www.imperialviolet.org/binary/draft-agl-tls-nextprotoneg-00.html

This only affects the internal copy of libssl and is only active when
built with use_system_ssl=0, which is not currently the default.

git-svn-id: http://src.chromium.org/svn/trunk/src/build@33327 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-11-30 20:40:53 +00:00
evan@chromium.org eef08e4039 linux: move asynchronous-unwind-tables flag to Release-only
This makes backtraces again include symbols in Debug builds.

TEST=StackTrace.OutputToStream (in a Debug build; the test is
already disabled in Release builds, exactly because this flag
breaks the thing the test is testing.)

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

git-svn-id: http://src.chromium.org/svn/trunk/src/build@33320 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-11-30 20:17:32 +00:00
mark@chromium.org 1784039d01 In-application Keystone ticket promotion.
The concept of "ticket promotion" is added to the application when Keystone is
in use.  Ticket promotion is used to turn a user Keystone ticket, which Chrome
normally establishes when it launches, into a system Keystone ticket, after
successful user authentication and authorization.  Having a system Keystone
with a system ticket means that updates are applied with root privileges
instead of user privileges, essentially eliminating the possibility that a
user will fall off of the auto-update train because they can read and execute
but not write the application.

Two principles of promotion apply:

 - An application on a user ticket NEEDS promotion if it determines that it
   doesn't have permission to write to itself.  Being on a user ticket, an
   update attempt would fail.
 - An application on a user ticket WANTS promotion if it already NEEDS
   promotion.  Additionally, if it is installed in a system-wide location
   such as /Applications, it will WANT promotion, even if it does not NEED it.

If promotion is needed, an info bar will show up on launch requesting it.
This info bar works similarly to the default browser info bar: it has a "don't
bother me again" button, it will only show up after the first launch, it won't
disappear on navigation if the navigation happens very quickly, and it won't
show itself if another info bar is up.  This means that if both the default
browser info bar and the promotion info bar have a shot at showing, only one
will win.  In my experience, each wins about half of the time.

If promotion is needed, the update UI in the About window will be hidden.
Checking for updates and offering to apply them doesn't make much sense when
the update won't be able to install successfully.  All of the auto-update
machinery is still working in the background, but the About window UI is
hidden.

If promotion is wanted, the About window will contain a new button allowing
the user to enter promotion.  This gives access to the same promotion routine
as the promotion info bar.  It can be used even from an administrative account
that is able to update the application without promotion.  It's intended to be
used by the system administrator of the family without requiring them to
switch to one of the kids' accounts.

BUG=16360
TEST=Exhaustively, please.
Review URL: http://codereview.chromium.org/437053

git-svn-id: http://src.chromium.org/svn/trunk/src/build@33241 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2009-11-28 22:05:11 +00:00