summaryrefslogtreecommitdiffstats
path: root/base
Commit message (Collapse)AuthorAgeFilesLines
* GTK: Minimize usage of gtk headers.erg@chromium.org2010-07-081-1/+0
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/2891006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51898 0039d316-1c4b-4281-b951-d872f2087c98
* Deprecate most of the remaining wstring file_util functions.evan@chromium.org2010-07-082-18/+30
| | | | | | | | | | | | | These still exist on Windows due to being used by the installer, but by moving them into the Windows-only block we prevent them from being used in new code. (I am already finding new code using some of these! I am glad to be rid of them.) BUG=24672 Review URL: http://codereview.chromium.org/2850042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51862 0039d316-1c4b-4281-b951-d872f2087c98
* Move the sources/ exclude and sources! rules that apply only towtc@chromium.org2010-07-081-9/+16
| | | | | | | | | | | | | | base_extra_target to the base_extra_target block. Test base_extra_target==1 for consistency with the base_target==1 conditional in the same file (just a style nit). R=jam,mark BUG=none TEST=no build errors on any platforms Review URL: http://codereview.chromium.org/2878027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51852 0039d316-1c4b-4281-b951-d872f2087c98
* base: Add SetEnv() to EnvVarGetter class and get rid of the some ifdefs.tfarina@chromium.org2010-07-083-2/+19
| | | | | | | | | | | (Note: This was a TODO) BUG=None TEST=included Review URL: http://codereview.chromium.org/2843048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51840 0039d316-1c4b-4281-b951-d872f2087c98
* base: Get rid of the deprecated SysInfo::GetEnvVar.tfarina@chromium.org2010-07-084-32/+0
| | | | | | | | | | | Use the new EnvVarGetter::GetEnv instead. BUG=None TEST=trybots Review URL: http://codereview.chromium.org/2876045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51829 0039d316-1c4b-4281-b951-d872f2087c98
* base: Add unittests for the EnvVarGetter class.tfarina@chromium.org2010-07-082-0/+25
| | | | | | | | | BUG=None TEST=env_var_unittest.cc Review URL: http://codereview.chromium.org/2811044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51822 0039d316-1c4b-4281-b951-d872f2087c98
* Add a lock for OS X CSSM wrapper APIsdavidben@chromium.org2010-07-072-0/+33
| | | | | | | | | | | | They're apparently problematic with threads. R=agl BUG=48006 TEST=KeygenHandler.ConcurrencyTest Review URL: http://codereview.chromium.org/2832047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51734 0039d316-1c4b-4281-b951-d872f2087c98
* base: Get rid of the deprecated SysInfo::HasEnvVar.tfarina@chromium.org2010-07-054-23/+3
| | | | | | | | | | | Use the new EnvVarGetter::HasEnv instead. BUG=None TEST=trybots Review URL: http://codereview.chromium.org/2819042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51648 0039d316-1c4b-4281-b951-d872f2087c98
* Changing the pre-reading of chrome.dll to read it as an image section ↵ananta@chromium.org2010-07-032-0/+34
| | | | | | | | | | | | | | | | | | | instead. XP ignores pages read as data while mapping image sections. This shows a reasonable improvement in cold startup performance on XP. This change only comes into effect for headless mode which enables us to try out the effect on the perf bots and for chrome frame processes. Code mostly written by Amit. Added a chrome frame perf tests which measures LoadLibrary in cold mode with pre-reading. Bug=45510 Review URL: http://codereview.chromium.org/2805064 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51594 0039d316-1c4b-4281-b951-d872f2087c98
* [chromeos]Set GtkWidget's default direction correctly.suzhe@chromium.org2010-07-021-1/+10
| | | | | | | | | BUG=41558 TEST=Login ChromeOS with a RTL language, the text in the omnibox should be right aligned. Review URL: http://codereview.chromium.org/2833052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51471 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: Undo a bit of tcmalloc gyp change from r49597. The reverted change ↵thestig@chromium.org2010-07-021-11/+11
| | | | | | | | | | puts direct_dependent_settings inside a configuration dictionary, which is invalid. BUG=45067 TEST=GYP_DEFINES='linux_use_tcmalloc=0' gclient runhooks works. Review URL: http://codereview.chromium.org/2819031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51470 0039d316-1c4b-4281-b951-d872f2087c98
* Deprecate more old filepath functions.evan@chromium.org2010-07-012-8/+11
| | | | | | | | | | | | These still exist on Windows due to being used by the installer, but by moving them into the Windows-only block we prevent them from being used in new code. BUG=24672 Review URL: http://codereview.chromium.org/2861042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51453 0039d316-1c4b-4281-b951-d872f2087c98
* Loosen permission on extension temp dir when a flag is used.skerner@chromium.org2010-07-017-7/+94
| | | | | | | | | | | | | | | | | | | Issue 35198 can not be reproduced locally. To enable users to do experiments, three command line flags are added to chrome: --issue35198-crxdir-browser: Have the browser process create the directory in which the extension will be unzipped. --issue35198-logging: Enable log messages from directory creation in the utility process to be moved to the browser process. --issue35198-permission: Use the most permissive file permissions possible on the extension unpack directory. BUG=35198 TEST=manual Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=51231 Review URL: http://codereview.chromium.org/2802018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51416 0039d316-1c4b-4281-b951-d872f2087c98
* Moves gtk accelerator processing functions to base/gtk_util so I cansky@chromium.org2010-07-013-3/+75
| | | | | | | | | | | | | use them from views and gfx. Sorry for the new patch on this and not an update. Not sure what happened. BUG=none TEST=none Review URL: http://codereview.chromium.org/2809047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51409 0039d316-1c4b-4281-b951-d872f2087c98
* Catch OOMs in purgeable memory.avi@chromium.org2010-07-013-7/+172
| | | | | | | | | | | Recommit of r51371, this time not crashy. BUG=http://crbug.com/47980 TEST=unit tested Review URL: http://codereview.chromium.org/2817048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51407 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 51371 - Catch OOMs in purgeable memory.avi@chromium.org2010-07-013-170/+7
| | | | | | | | | | | | BUG=http://crbug.com/47980 TEST=unit tested Review URL: http://codereview.chromium.org/2859036 TBR=avi@chromium.org Review URL: http://codereview.chromium.org/2883014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51373 0039d316-1c4b-4281-b951-d872f2087c98
* Catch OOMs in purgeable memory.avi@chromium.org2010-07-013-7/+170
| | | | | | | | | BUG=http://crbug.com/47980 TEST=unit tested Review URL: http://codereview.chromium.org/2859036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51371 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 51231 - Loosen permission on extension temp dir when a flag is used.skerner@chromium.org2010-06-307-95/+12
| | | | | | | | | | | | | | | | | | | | Issue 35198 can not be reproduced locally. To enable users to do experiments, three command line flags are added to chrome: --issue35198-crxdir-browser: Have the browser process create the directory in which the extension will be unzipped. --issue35198-logging: Enable log messages from directory creation in the utility process to be moved to the browser process. --issue35198-permission: Use the most permissive file permissions possible on the extension unpack directory. BUG=35198 TEST=manual Review URL: http://codereview.chromium.org/2802018 TBR=skerner@chromium.org Review URL: http://codereview.chromium.org/2861039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51238 0039d316-1c4b-4281-b951-d872f2087c98
* Loosen permission on extension temp dir when a flag is used.skerner@chromium.org2010-06-307-12/+95
| | | | | | | | | | | | | | | | | Issue 35198 can not be reproduced locally. To enable users to do experiments, three command line flags are added to chrome: --issue35198-crxdir-browser: Have the browser process create the directory in which the extension will be unzipped. --issue35198-logging: Enable log messages from directory creation in the utility process to be moved to the browser process. --issue35198-permission: Use the most permissive file permissions possible on the extension unpack directory. BUG=35198 TEST=manual Review URL: http://codereview.chromium.org/2802018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51231 0039d316-1c4b-4281-b951-d872f2087c98
* Change chrome from statically enabling high resolution timers on windowsmbelshe@chromium.org2010-06-296-14/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | to enabling them dynamically - only when the application really needs them. I am working on some test cases for this, and will add them. But wanted to send out the concept for review. In this implementation, I modify the message loop to detect when the application has requested high resolution timers. Note that there are multiple MessageLoops active in a single process. After a period of time, we simply shut it off again. We could have set a timer or kept a count of active timers, or any number of more complex algorithms. But I think this algorithm is very simple and good enough. If an application continues needing high resolution timers for more than 1s, we'll turn the high-resolution timers back on again. One last change - since we've implemented the clamp at 4ms, there isn't a lot of point to our use of 1ms for timeBeginPeriod. I've modified that to 2 (which is half of 4ms, our target minimal interval). BUG=46531 TEST=MessageLoop.HighResolutionTimers Review URL: http://codereview.chromium.org/2822035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51102 0039d316-1c4b-4281-b951-d872f2087c98
* Consistently increase the reference count when calling GetDefaultNSSKeySlotdavidben@chromium.org2010-06-292-1/+3
| | | | | | | | | | | | | | | We're actually freeing the key slot multiple times on Chrome OS. Also documented the requirement to PK11_FreeSlot in the function declaration. We probably want to add some sort of scoped_refptr-like thing, but for now this function is only used in one place anyway. R=cmasone BUG=47587 TEST=none Review URL: http://codereview.chromium.org/2873027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51091 0039d316-1c4b-4281-b951-d872f2087c98
* Removing message loop instrumentation.dhollowa@chromium.org2010-06-291-4/+0
| | | | | | | | | | | | Removes Valgrind info messages in message loop. This was making unit test output difficult to read. TBR=glider@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org/2810037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51083 0039d316-1c4b-4281-b951-d872f2087c98
* Add virtual to some base classes that have virtual methodsjar@chromium.org2010-06-251-0/+3
| | | | | | | | | | This is defensive coding to avoid memory leaks. bug=47469 r=wtc Review URL: http://codereview.chromium.org/2869024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50907 0039d316-1c4b-4281-b951-d872f2087c98
* Add a unit test to check KeygenHandler's thread-safetydavidben@chromium.org2010-06-252-0/+68
| | | | | | | | | | | | We'll want some semblance of thread-safety when we make keygen asynchronous. R=wtc,mattm BUG=148 TEST=unit test Review URL: http://codereview.chromium.org/2838010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50903 0039d316-1c4b-4281-b951-d872f2087c98
* Effectively revert r50648 (code review URLwtc@chromium.org2010-06-251-1/+3
| | | | | | | | | | | | | | | http://codereview.chromium.org/2849018/show), except a minor change to sha1_portable.cc. Don't use sha1_win.cc because it may have caused a regression to page cycler moz. TBR=eroman BUG=47218 TEST=none Review URL: http://codereview.chromium.org/2865021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50900 0039d316-1c4b-4281-b951-d872f2087c98
* Massively simplify the NetworkChangeNotifier infrastructure:pkasting@chromium.org2010-06-251-1/+1
| | | | | | | | | | | | | | * Use a process-wide object (singleton pattern) * Create/destroy this object on the main thread, make it outlive all consumers * Make observer-related functions threadsafe As a result, the notifier can now be used by any thread (eliminating things like NetworkChangeObserverProxy and NetworkChangeNotifierProxy, and expanding its usefulness); its creation and inner workings are much simplified (eliminating implementation-specific classes); and it is simpler to access (eliminating things like NetworkChangeNotifierThread and a LOT of passing pointers around). BUG=none TEST=Unittests; network changes still trigger notifications Review URL: http://codereview.chromium.org/2802015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50895 0039d316-1c4b-4281-b951-d872f2087c98
* Do some minor cleanup in histogram.*jar@chromium.org2010-06-252-39/+13
| | | | | | | | | | | | | | | | | I was trying to debug some code, and noticed some excess complexity. There are no significant semantic changes. DCHECK on a foo.get() is a waste given we're about to deref the pointer. Execution cost should be be minially less, and we get rid of several lines of code. BUG=46263 r=mbelshe Review URL: http://codereview.chromium.org/2805033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50847 0039d316-1c4b-4281-b951-d872f2087c98
* Add a method for normalizing path separators on Windows.tony@chromium.org2010-06-253-1/+59
| | | | | | | | TEST=new unittests Review URL: http://codereview.chromium.org/2831029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50822 0039d316-1c4b-4281-b951-d872f2087c98
* Change LOG(DFATAL) to avoid dialog in production buildjar@chromium.org2010-06-241-3/+3
| | | | | | | | | | | | | | Old semantics: In DEBUG mode: no change: Fatal CHECK error and dialog. In Release mode: Dialog for user, but allow user to continue. New semantics: In Release mode: LOG(ERROR), but don't bother the user. r=brettw,willchan Review URL: http://codereview.chromium.org/2872014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50679 0039d316-1c4b-4281-b951-d872f2087c98
* Add a locked version of CryptAcquireContextdavidben@chromium.org2010-06-233-0/+85
| | | | | | | | | | | | The function is not thread-safe when called with certain flags. This will be useful when we move keygen onto a worker thread. BUG=none TEST=KeygenHandlerTest.SmokeTest (existing) Review URL: http://codereview.chromium.org/2828019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50661 0039d316-1c4b-4281-b951-d872f2087c98
* Implement the SecureHashAlgorithm class using Windows CryptoAPI.wtc@chromium.org2010-06-233-12/+128
| | | | | | | | | | | | sha1.cc is renamed sha1_portable.cc. Change the swapends function to take a pointer instead of a non-const reference parameter. R=jhawkins,davidben,eroman BUG=47218 TEST=SHA1Test.* in base_unittests should pass. Review URL: http://codereview.chromium.org/2849018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50648 0039d316-1c4b-4281-b951-d872f2087c98
* Replace wstring with string16 in history. The only time wstring is used now ↵brettw@chromium.org2010-06-235-90/+128
| | | | | | | | | | | | in history is for bookmark-related stuff (the bookmarks system is still wstring-based). The substantial change here is in RTL to make a string16 variant of the functions and in changing the WordIterator to use string16 (this cleaned up some weird utf-32 code). TEST=none BUG=none Review URL: http://codereview.chromium.org/2808017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50597 0039d316-1c4b-4281-b951-d872f2087c98
* Fix files with svn:executable permissions.thestig@chromium.org2010-06-231-0/+0
| | | | | | | BUG=none TEST=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50566 0039d316-1c4b-4281-b951-d872f2087c98
* Clang: Do not ignore result of HANDLE_EINTR.thakis@chromium.org2010-06-233-9/+19
| | | | | | Review URL: http://codereview.chromium.org/2805026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50556 0039d316-1c4b-4281-b951-d872f2087c98
* Safeguard histogram accesses against null pointers.mbelshe@chromium.org2010-06-221-10/+10
| | | | | | | | | | | | This can happen when various tasks run as the static destructors for histograms are concurrently running. BUG=none TEST=none Review URL: http://codereview.chromium.org/2873009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50478 0039d316-1c4b-4281-b951-d872f2087c98
* Log the value of RUNNING_ON_VALGRIND in message_loop.ccglider@chromium.org2010-06-221-0/+4
| | | | | | | BUG=46569 Review URL: http://codereview.chromium.org/2868020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50454 0039d316-1c4b-4281-b951-d872f2087c98
* Load net-internals resources from resources.pak.tony@chromium.org2010-06-222-4/+4
| | | | | | | | | | | | | | | This is the same as r50257 with 2 fixes: 1) Copy resources.pak to <(PRODUCT_DIR) on mac so it will work for things tests. 2) Add back the check in chrome_paths.cc to see if we're in a mac bundle or not. BUG=35793,42770 TEST=none Review URL: http://codereview.chromium.org/2865010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50433 0039d316-1c4b-4281-b951-d872f2087c98
* Speculatively revert 50374 (miniinstaller breakage) - Load netinternals ↵willchan@chromium.org2010-06-212-4/+4
| | | | | | | | | | | | | | | | | | | | resources from resources.pak. This is the same as r50257 with 2 fixes: 1) Copy resources.pak to <(PRODUCT_DIR) on mac so it will work for things tests. 2) Add back the check in chrome_paths.cc to see if we're in a mac bundle or not. BUG=35793,42770 TEST=none Review URL: http://codereview.chromium.org/2865010 TBR=erg@chromium.org Review URL: http://codereview.chromium.org/2799022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50392 0039d316-1c4b-4281-b951-d872f2087c98
* Load net-internals resources from resources.pak.erg@chromium.org2010-06-212-4/+4
| | | | | | | | | | | | | | | This is the same as r50257 with 2 fixes: 1) Copy resources.pak to <(PRODUCT_DIR) on mac so it will work for things tests. 2) Add back the check in chrome_paths.cc to see if we're in a mac bundle or not. BUG=35793,42770 TEST=none Review URL: http://codereview.chromium.org/2865010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50374 0039d316-1c4b-4281-b951-d872f2087c98
* mac: use errno instead of return value of pthread_setname_npevan@chromium.org2010-06-211-4/+2
| | | | | | | | | | It appears the return value is always -1 on error. BUG=47058 Review URL: http://codereview.chromium.org/2824018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50373 0039d316-1c4b-4281-b951-d872f2087c98
* Revert debugging printf()s occasionally landed in r50350glider@chromium.org2010-06-212-3/+0
| | | | | | | | TBR=tim Review URL: http://codereview.chromium.org/2818018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50352 0039d316-1c4b-4281-b951-d872f2087c98
* Make the memory waterfall green -- more suppressions for bug 19775.glider@chromium.org2010-06-212-1/+3
| | | | | | | | | BUG=19775 TBR=tim Review URL: http://codereview.chromium.org/2870016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50350 0039d316-1c4b-4281-b951-d872f2087c98
* Remove deprecated version of file_util::EndsWithSeparator.tfarina@chromium.org2010-06-212-8/+2
| | | | | | | | | BUG=24672 TEST=out/Debug/base_unittests Review URL: http://codereview.chromium.org/2842015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50330 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 50257 - Reland r50057. This is exactly the same except with two lines ↵erg@chromium.org2010-06-182-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | cherrypicked from tony's CL 2814009 that tell make about the net_internals_resources_map.{cc,h} files. Load net-internals from the newly created resources.pak file. This patch also forces the loading of the optional DataPack for const correctness reasons Original Review: http://codereview.chromium.org/2855003 BUG=35793,42770 TEST=none TBR=tony Review URL: http://codereview.chromium.org/2800014 TBR=erg@chromium.org Review URL: http://codereview.chromium.org/2811016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50260 0039d316-1c4b-4281-b951-d872f2087c98
* Reland r50057. This is exactly the same except with two lines cherrypicked fromerg@chromium.org2010-06-182-4/+4
| | | | | | | | | | | | | | | | | | | tony's CL 2814009 that tell make about the net_internals_resources_map.{cc,h} files. Load net-internals from the newly created resources.pak file. This patch also forces the loading of the optional DataPack for const correctness reasons Original Review: http://codereview.chromium.org/2855003 BUG=35793,42770 TEST=none TBR=tony Review URL: http://codereview.chromium.org/2800014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50257 0039d316-1c4b-4281-b951-d872f2087c98
* Made changes to TruncateUtF8ToByteSize to cleanup the code. jerrica@google.com2010-06-172-5/+6
| | | | | | | | | | | I made some corrections to my previously submitted function TruncateUTF8ToByteSize, in order to clean up the code, and use it to truncate sync node titles above 255 bytes. BUG=43675 TEST=base/string_util_unittest.cc Review URL: http://codereview.chromium.org/2632005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50112 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 50057 - Load net-internals from the newly created resources.pak file.erg@chromium.org2010-06-172-4/+4
| | | | | | | | | | | | | | This patch also forces the loading of the optional DataPack for const correctness reasons BUG=35793,42770 TEST=none Review URL: http://codereview.chromium.org/2855003 TBR=erg@chromium.org Review URL: http://codereview.chromium.org/2852011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50059 0039d316-1c4b-4281-b951-d872f2087c98
* Load net-internals from the newly created resources.pak file.erg@chromium.org2010-06-172-4/+4
| | | | | | | | | | | This patch also forces the loading of the optional DataPack for const correctness reasons BUG=35793,42770 TEST=none Review URL: http://codereview.chromium.org/2855003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50057 0039d316-1c4b-4281-b951-d872f2087c98
* Fix ProcessSingletonWinTest using default profile.mattm@chromium.org2010-06-161-1/+10
| | | | | | | | | | | | | Rename to ProcessSingletonTest. Fix issues preventing the test from working on Linux, and enable it there. Test both normal start up and first-run startup paths(win-only). BUG=38572 TEST=run the test (both with and without an existing profile in the default place) Review URL: http://codereview.chromium.org/2721007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50022 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 49982 - patchthakis@chromium.org2010-06-166-40/+23
| | | | | | | TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/2825006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50002 0039d316-1c4b-4281-b951-d872f2087c98