summaryrefslogtreecommitdiffstats
path: root/chrome/browser/task_manager.cc
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Add the actual data being read to the OnBytesRead callback."phajdan.jr@chromium.org2010-07-221-2/+1
| | | | | | | | | | It broke download ui tests, but was not noticed because of the FLAKY marks. TBR=cbentzel, bmcquade@google.com Review URL: http://codereview.chromium.org/3008022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53416 0039d316-1c4b-4281-b951-d872f2087c98
* Add the actual data being read to the OnBytesRead callback.cbentzel@chromium.org2010-07-211-1/+2
| | | | | | | | | | | | | This is needed for code at http://code.google.com/p/page-speed/source/browse/bin/trunk/src/pagespeed/pagespeed_input_populator.cc#148 Contributed by: bmcquade@google.com BUG=48192 TEST=Added new unit tests, ran net_unittests. Review URL: http://codereview.chromium.org/2849041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53178 0039d316-1c4b-4281-b951-d872f2087c98
* Speed up the Task Manager on linux.erg@chromium.org2010-05-111-15/+41
| | | | | | | | | | | | - Unify the calls to get shared memory and private memory. On Linux, these call the same API and on Linux, it takes >10ms to fetch both values each time it is called. - Cache the returned memory values. While sorting the task manager by memory, it would make the expensive memory call for each row on each sort operation. BUG=40033 TEST=Existing task manager tests. Review URL: http://codereview.chromium.org/2047009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46938 0039d316-1c4b-4281-b951-d872f2087c98
* Use GetDisplayStringInLTRDirectionality() in more places to simplify code.pkasting@chromium.org2010-05-051-2/+1
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/1928004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46427 0039d316-1c4b-4281-b951-d872f2087c98
* Task Manager sorting:estade@chromium.org2010-04-211-29/+39
| | | | | | | | | | | | | | - remove dead code that papered over the fact certain columns don't sort, replace with NOTREACHED pothole - allow sorting by the javascript memory column. - allow sorting by goats teleported (useful for debugging) - stabilize \# of goats teleported (remove observer effect) BUG=42037 TEST=sort by these columns in the task manager Review URL: http://codereview.chromium.org/1706002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45139 0039d316-1c4b-4281-b951-d872f2087c98
* Add notification processes to the task manager.johnnyg@chromium.org2010-04-081-0/+4
| | | | | | | | | BUG=29332 TEST=notifications in task manager Review URL: http://codereview.chromium.org/1610006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44014 0039d316-1c4b-4281-b951-d872f2087c98
* Move RTL related functions from app/l10n_util to base/i18n/rtlben@chromium.org2010-03-201-3/+4
| | | | | | | | | | TBR=darin BUG=none TEST=none Review URL: http://codereview.chromium.org/1073005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42182 0039d316-1c4b-4281-b951-d872f2087c98
* Move pref_{member,service} and important_file_writer from chrome/commonphajdan.jr@chromium.org2010-02-191-1/+1
| | | | | | | | | | | | | to chrome/browser. This is a part of an effort to remove bad dependency of chrome/common on chrome/browser. TEST=unit_tests and ui_tests, just moving code BUG=none Review URL: http://codereview.chromium.org/621004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39428 0039d316-1c4b-4281-b951-d872f2087c98
* linux: build with -Wextraevan@chromium.org2010-02-051-2/+2
| | | | | | | | | | | | 95% of this is removing "const" from return types, but turning this on found one bug! (A "for" loop that expected its iterator to go negative but which was using an unsigned type.) BUG=34160 Review URL: http://codereview.chromium.org/570012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38266 0039d316-1c4b-4281-b951-d872f2087c98
* Step 1 in Implementing/Prototyping App Panels.rafaelw@chromium.org2010-02-041-6/+9
| | | | | | | | | | | | | | | | | | | | In this first step we 1) Create a new Browser::Type::TYPE_APP_PANEL which is observed in various places 2) Create an AppPanelBrowserFrame which is created in BrowserFrameWin when the TYPE_APP_PANEL is observed. AppPanelBrowserFrame draws itself per glen's mocks and will ultimately behave substantially different from regular browser windows. 3) Create a temporary command switch called --app-launch-as-panel which can be used until we implement actual app launching. Note that there is still work to be done "bit-twiddling" to match glen's mocks and to implement the "inactive" look for these windows. Steps 2 through N may include: different sizing behavior (based either on the content size or an api call), different min/maximize behavior, docking to the os taskbar, auto order & placement of app panels. A screen capture of the current implementation is attached to the bug. BUG=32361 Review URL: http://codereview.chromium.org/553143 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38107 0039d316-1c4b-4281-b951-d872f2087c98
* Task manager model: Make a find quicker.estade@chromium.org2010-02-011-6/+6
| | | | | | | | | | | | | | | | | Given a list such as 00000222223333 and an index i into that list, find the first occurrence of the value of list[i]. The current code just does a plain search. The new code does a reverse search starting at i. The reason I am bothering to optimize this is because it is used in TaskManagerGtk::CompareImpl, pending my other cl. BUG=none TEST=none Review URL: http://codereview.chromium.org/553155 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37726 0039d316-1c4b-4281-b951-d872f2087c98
* remove ICU includes from l10n_util.hevan@chromium.org2010-01-251-0/+1
| | | | | | | | | | | | | | | | 95% of users of l10n_util use it for some functions; the other 5% want some complicated templates that pull in a ton of ICU headers as well. Before this change, the average includer of l10n_util.h pulled in an additional 80 subheaders because of it. Additionally, #including ICU headers from a header makes the includee depend on having the ICU include path in the -I header. Review URL: http://codereview.chromium.org/515059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37032 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: Don't crash on "Stats for nerds" link if no browser window is open.thakis@chromium.org2010-01-201-12/+27
| | | | | | | | | BUG=32659 TEST=see bug Review URL: http://codereview.chromium.org/554023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36666 0039d316-1c4b-4281-b951-d872f2087c98
* Be more frugal with goats in these challenging economic times.thakis@chromium.org2010-01-131-5/+3
| | | | | | | | | BUG=31482 TEST=Use chrome for some time. Fewer goats should appear in bearontheroof's place. Review URL: http://codereview.chromium.org/543045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36154 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: UI tweaks for task manager.thakis@chromium.org2010-01-131-15/+35
| | | | | | | | | | | | | | | | | | | | | | | Nib change: Reduce row height, make scrollbars smaller. Make text in task manager table slightly smaller. Show in decimal digit for %cpu. Show memory in KB/MB, not always in K. Change update frequency from 1s to 2s to match Activity Monitor's default. (all mac-only. ui team is fine with this.) Finally, turn taskman on. BUG=13156 TEST=Open task manager, look at it. Should look & feel similar to Activity Monitor. Review URL: http://codereview.chromium.org/536038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36096 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: Create a pid->task_t mapping in the browser process.thakis@chromium.org2009-12-211-3/+6
| | | | | | | | | | | Since nothing writes to this map in the browser atm, this does not have any visible effect. BUG=13156,25454 TEST=unittest Review URL: http://codereview.chromium.org/501138 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35092 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 35025 - Revert 34994, maybe it regressed startup perf Fix cpu/memory ↵viettrungluu@chromium.org2009-12-191-3/+10
| | | | | | | | | | | | | | | | | | | measurements on OS X. Right now, this only works for the current process; support for child processes will be added in a later CL. BUG=13156,25454 TEST=Hook up task manager (connect menu item to commandDispatch:, give it the right tag). Stats for the browser process should now be right, and %cpu should be 0 (for now) for all other processes. Review URL: http://codereview.chromium.org/500118 TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/504068 TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/505056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35043 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 34994, maybe it regressed startup perf - Fix cpu/memory measurements ↵thakis@chromium.org2009-12-191-10/+3
| | | | | | | | | | | | | | | | on OS X. Right now, this only works for the current process; support for child processes will be added in a later CL. BUG=13156,25454 TEST=Hook up task manager (connect menu item to commandDispatch:, give it the right tag). Stats for the browser process should now be right, and %cpu should be 0 (for now) for all other processes. Review URL: http://codereview.chromium.org/500118 TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/504068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35025 0039d316-1c4b-4281-b951-d872f2087c98
* Fix cpu/memory measurements on OS X.thakis@chromium.org2009-12-181-3/+10
| | | | | | | | | | | Right now, this only works for the current process; support for child processes will be added in a later CL. BUG=13156,25454 TEST=Hook up task manager (connect menu item to commandDispatch:, give it the right tag). Stats for the browser process should now be right, and %cpu should be 0 (for now) for all other processes. Review URL: http://codereview.chromium.org/500118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34994 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 34146 - A place to store the pid>mach_port_t mapping.thakis@chromium.org2009-12-091-3/+3
| | | | | | | | | | | | | | | | Not yet for review. Landing to measure perf impact, will revert immediately. BUG=13156 TEST=unittests Review URL: http://codereview.chromium.org/460126 TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/466088 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34147 0039d316-1c4b-4281-b951-d872f2087c98
* A place to store the pid->mach_port_t mapping.thakis@chromium.org2009-12-091-3/+3
| | | | | | | | | | | | | Not yet for review. Landing to measure perf impact, will revert immediately. BUG=13156 TEST=unittests Review URL: http://codereview.chromium.org/460126 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34146 0039d316-1c4b-4281-b951-d872f2087c98
* [GTTF] Reduce header dependencies in chrome.phajdan.jr@chromium.org2009-11-301-0/+1
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/454004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33324 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 33301 and 33305 due to unit_tests breakage.maruel@chromium.org2009-11-301-1/+0
| | | | | | | | TBR=pawel Review URL: http://codereview.chromium.org/453007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33309 0039d316-1c4b-4281-b951-d872f2087c98
* [GTTF] Reduce header dependencies in chrome.phajdan.jr@chromium.org2009-11-301-0/+1
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/454004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33301 0039d316-1c4b-4281-b951-d872f2087c98
* Adds a 'V8' column to task manager to track amount of memory in JavaScript heapjamesr@chromium.org2009-11-111-0/+24
| | | | | | | | | BUG=27226 TEST=open task manager, enable column, compare with V8 heap profiler Review URL: http://codereview.chromium.org/377037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31641 0039d316-1c4b-4281-b951-d872f2087c98
* Fifth patch in getting rid of caching MessageLoop pointers.jam@chromium.org2009-11-031-9/+9
| | | | | | | BUG=25354 Review URL: http://codereview.chromium.org/345037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30790 0039d316-1c4b-4281-b951-d872f2087c98
* Third patch in getting rid of caching MessageLoop pointers and always using ↵jam@chromium.org2009-11-021-9/+9
| | | | | | | | | | ChromeThread instead. BUG=25354 Review URL: http://codereview.chromium.org/342068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30687 0039d316-1c4b-4281-b951-d872f2087c98
* Make the memory resource functions return bools so that we know when the ↵vandebo@chromium.org2009-10-271-60/+69
| | | | | | | | | | | information is not available. Refactor TaskManager slightly. BUG=23366 TEST=See "N/A" for memory usage in Linux task manager Review URL: http://codereview.chromium.org/339012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30148 0039d316-1c4b-4281-b951-d872f2087c98
* Correctly handle extension reloading in the task manager.phajdan.jr@chromium.org2009-10-201-0/+5
| | | | | | | | | BUG=18693 TEST=Added new tests to browser_tests. Review URL: http://codereview.chromium.org/300005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29498 0039d316-1c4b-4281-b951-d872f2087c98
* Tracks the amount of memory SQLite is using in the browser processjamesr@chromium.org2009-10-151-0/+6
| | | | | | | | | | | | | This patch adds support for SQLite memory use tracking in the task manager and enables it for the browser process. SQLite can get into the 10s of MB of memory pretty easily and it is nice to see exactly how much of a 'fat' browser process it is responsible for. SQLite is also used in the renderer process for web databases, but since those are behind a flag and off by default I haven't added support for them yet. TEST=none BUG=none Review URL: http://codereview.chromium.org/276009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29173 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a whole bunch of style nits.erg@google.com2009-10-131-1/+1
| | | | | | | | (Long term intention is to add a subset of cpplint.py to the presubmit script.) Review URL: http://codereview.chromium.org/276008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28914 0039d316-1c4b-4281-b951-d872f2087c98
* Refactors freaky TaskManager::Resource self-updatingjamesr@chromium.org2009-10-131-0/+7
| | | | | | | | | | | Currently, TaskManagerTabContentsResource supports getting WebCore cache information. This information has to be fetched from the renderer process via an IPC round-trip. Currently, the Resource updates itself whenever a query is made from the View via the TaskManagerModel::GetResourceWebCore*() methods, which seems very wrong from a design POV and is tricky to test. This patch cleans up the picture a bit by routing the TaskManagerModel::Refresh() call to interested TaskManager::Resource objects. TEST=try bots, open task manager + right click to enable cache columns, browse around, observe updated values BUG=none Review URL: http://codereview.chromium.org/267062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28829 0039d316-1c4b-4281-b951-d872f2087c98
* Add about:memory link to task manager.thakis@chromium.org2009-10-081-0/+19
| | | | | | | | | | | | | Since about:memory DCHECK()s atm, the link is not completely hooked up. In the xib, I've added a square button with height 14 and the new HyperlinkCell, contained in a GTMWidthBasedResizer or how it's called. I made sure the baseline of link on the left and button on the right is at the same height. BUG=17989,13156 TEST=Open MainMenu.xib, click "Enable" for view->dev->taskman. Build&run chrome. Task manager should contain link. Review URL: http://codereview.chromium.org/255018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28426 0039d316-1c4b-4281-b951-d872f2087c98
* Separate out some more ICU from base and into base/i18n.brettw@chromium.org2009-10-081-12/+11
| | | | | | | | | | | | | | | | | | | | This moves string_util_icu. I moved the number formatting function into base/i18n/number_formatting and just removed the other function in string_util_icu which was TrimWhitespaceUTF8. It is only used in a few places and isn't actually helpful (and the fact that it round-trips through UTF-16 is better for the caller to see). This takes out the sorting from the FileEnumerator. The comment says the sorting is not guaranteed. I moved it into file_util_icu as a standalone function for callers of FileEnumerator to call manually if they need sorted results. I modified the directory lister to use this sorting instead, and filed a bug on doing more optimal JS-based sorting. TEST=none BUG=none Review URL: http://codereview.chromium.org/267001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28405 0039d316-1c4b-4281-b951-d872f2087c98
* Make it possible to sort the WebCore Cache size columns in the Task Manager. ↵pkasting@chromium.org2009-09-301-33/+48
| | | | | | | | | | Also only show cache sizes once per process since the WebCore Cahce is a singleton within the renderer process. BUG=16221 TEST=none Review URL: http://codereview.chromium.org/244041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27636 0039d316-1c4b-4281-b951-d872f2087c98
* Adds three new off-by-default columns to the task manager to track WebCore ↵jamesr@chromium.org2009-09-251-0/+44
| | | | | | | | | | | | | caches These values are currently exposed via about:histograms/WebCoreCache. This change allows for users to monitor the cache sizes in real-time broken out by renderer. TEST=Open task manager, right click on chrome, select columns, observe that they update along with browsing. BUG=16221 Review URL: http://codereview.chromium.org/217010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27216 0039d316-1c4b-4281-b951-d872f2087c98
* Replace the RenderProcessHost.PID function that returns the OS-generatedbrettw@chromium.org2009-08-311-9/+12
| | | | | | | | | | | | | | | | | | | | process ID with an internally-generated id() function. This allows us the guarantee that the IDs are unique over the entire run of the application. This also cleans up some code associated with managing the PID. The main potentially interesting change is now the PID is set uniquely for every creation of RenderProcessHost. It used to be set cleared if the process went away, and re-set if the process was re-created. The ID generation is in ChildProcesInfo so it is also unique between workers and plugins. I had to change some significant things in resource_dispatcher_host_unittest to take into account this new generation of IDs. BUG=17828 TEST=none Review URL: http://codereview.chromium.org/160203 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24899 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: fix "goats teleported" task manager column.mdm@chromium.org2009-08-241-1/+1
| | | | | | | | | | Some glibc library functions behave a little differently than Windows so this column was not working correctly. BUG=none TEST=none Review URL: http://codereview.chromium.org/174347 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24156 0039d316-1c4b-4281-b951-d872f2087c98
* Use 'icu::' namespace explicitly throughout Chrome tree instead of relying ↵jshin@chromium.org2009-08-181-2/+2
| | | | | | | | | | | | | | | | | | | on 'using namespace icu'. This is Chrome's counterpart to the ICU header change that disables 'using namespace icu' (http://codereview.chromium.org/171010/show), which is required to avoid the name colission between Chrome's StringPiece (in base) and ICU's StringPiece. The webkit change (which is minor) will be dealt with in the webkit bugzilla. This can go in before the ICU change/upgrade without affecting anything. BUG=8198 TEST=All the targets are built without an error on all platforms. Review URL: http://codereview.chromium.org/171012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23613 0039d316-1c4b-4281-b951-d872f2087c98
* Add more browser tests for Task Manager.phajdan.jr@chromium.org2009-07-151-12/+17
| | | | | | | | | TEST=Covered by browser_tests. http://crbug.com/12127 Review URL: http://codereview.chromium.org/155433 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20786 0039d316-1c4b-4281-b951-d872f2087c98
* Move GetTabContentsID out of tab util because it has nothing to do with tabs orbrettw@chromium.org2009-06-301-3/+4
| | | | | | | | | | | | TabContents. I put a more accurately named static function in ResourceDispatcherHost which is what really controls this request data. I also moved a couple of static functions from the header to the cc in resource_dispatcher. Review URL: http://codereview.chromium.org/150124 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19675 0039d316-1c4b-4281-b951-d872f2087c98
* Reorganize the way the task manager is constructed.ben@chromium.org2009-06-221-67/+14
| | | | | | | | | | | The BrowserWindow creates the task manager UI directly, which uses the TaskManager to populate itself. BUG=none TEST=none Review URL: http://codereview.chromium.org/140044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18975 0039d316-1c4b-4281-b951-d872f2087c98
* Destroy TaskManager's view when its window is closed.phajdan.jr@chromium.org2009-06-101-10/+17
| | | | | | | | | | TEST=Open the task manager. Close it. Open again and close. Browser should not crash. http://crbug.com/13361 Review URL: http://codereview.chromium.org/119299 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18038 0039d316-1c4b-4281-b951-d872f2087c98
* Display extension processes in task manager.phajdan.jr@chromium.org2009-06-061-0/+4
| | | | | | | | | | | | | This is the first part of the change. I will submit code to listen for new extension processes while task manager is open in following patch(es). TEST=Install an extension which renders to the extension shelf, like Buildbot Monitor from http://dev.chromium.org/developers/design-documents/extensions/samples. Open the task manager. You should see the extension process. http://crbug.com/12127 Review URL: http://codereview.chromium.org/115858 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17826 0039d316-1c4b-4281-b951-d872f2087c98
* Create OpenClose browser test for TaskManager with necessary refactoring.phajdan.jr@chromium.org2009-05-271-2/+8
| | | | | | | | http://crbug.com/12320 Review URL: http://codereview.chromium.org/113636 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16978 0039d316-1c4b-4281-b951-d872f2087c98
* Make views/ depend only on images from app/resources.ben@chromium.org2009-05-211-1/+1
| | | | | | | | | | Trying this again. All compile issues should be addressed, ui and unit tests now pass. http://crbug.com/11387 Review URL: http://codereview.chromium.org/113690 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16677 0039d316-1c4b-4281-b951-d872f2087c98
* Reverts parts of ↵jam@chromium.org2009-05-211-17/+0
| | | | | | | | http://src.chromium.org/viewvc/chrome?view=rev&revision=16474 which aren't needed anymore. Review URL: http://codereview.chromium.org/113669 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16642 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 16567.ben@chromium.org2009-05-211-1/+1
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16575 0039d316-1c4b-4281-b951-d872f2087c98
* views/ should use resources from app/resources. Move dependent images to ↵ben@chromium.org2009-05-211-1/+1
| | | | | | | | | this location. http://crbug.com/11387 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16567 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a crash on browser exit after opening TaskManager.phajdan.jr@chromium.org2009-05-201-0/+17
| | | | | | | | | | | | | | | | | | | | | TaskManager is a singleton, so it's destroyed by AtExitManager. At the time of destruction it cannot register AtExit callbacks (AtExitManager requires that). It turns out that some Windows view code wants to register an AtExit callback during destruction. For more info about view code, see http://src.chromium.org/viewvc/chrome?view=rev&revision=9161 The fix is to destroy the view early, using EnsureShutdown static method of TaskManager. It was also necessary to delete child views a bit earlier to avoid another crashed. Added a regression browser_test and verified that it's broken without this fix. http://crbug.com/11180 Review URL: http://codereview.chromium.org/114031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16474 0039d316-1c4b-4281-b951-d872f2087c98