summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-15 22:15:08 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-15 22:15:08 +0000
commitcd073bdf61a4a9d7819042d0db793d77ecedc7b1 (patch)
treede2d99d351494b31dcc1411612d2586f5bd3a872
parent9a7268095cbce32b2caa141ffd2e3097b63069d7 (diff)
downloadchromium_src-cd073bdf61a4a9d7819042d0db793d77ecedc7b1.zip
chromium_src-cd073bdf61a4a9d7819042d0db793d77ecedc7b1.tar.gz
chromium_src-cd073bdf61a4a9d7819042d0db793d77ecedc7b1.tar.bz2
Some scaffolding for the task manager.
BUG=13156 TEST=Connect view->task manager to first responder's commandDispatch: and give the menu item the tag 40005. Now clicking that menu item should bring up a completely unfunctional task manager window (but it has a localized title and button). Review URL: http://codereview.chromium.org/200094 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26278 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--base/process_util_mac.mm11
-rw-r--r--chrome/app/nibs/TaskManager.xib686
-rw-r--r--chrome/browser/cocoa/browser_window_cocoa.mm3
-rw-r--r--chrome/browser/cocoa/task_manager_mac.h54
-rw-r--r--chrome/browser/cocoa/task_manager_mac.mm74
-rw-r--r--chrome/browser/cocoa/task_manager_mac_unittest.mm32
-rw-r--r--chrome/chrome.gyp5
7 files changed, 864 insertions, 1 deletions
diff --git a/base/process_util_mac.mm b/base/process_util_mac.mm
index da0b200..183fe31 100644
--- a/base/process_util_mac.mm
+++ b/base/process_util_mac.mm
@@ -199,6 +199,17 @@ size_t ProcessMetrics::GetPeakWorkingSetSize() const {
return 0;
}
+size_t ProcessMetrics::GetPrivateBytes() const {
+ return 0;
+}
+
+void ProcessMetrics::GetCommittedKBytes(CommittedKBytes* usage) const {
+}
+
+bool ProcessMetrics::GetWorkingSetKBytes(WorkingSetKBytes* ws_usage) const {
+ return false;
+}
+
// ------------------------------------------------------------------------
} // namespace base
diff --git a/chrome/app/nibs/TaskManager.xib b/chrome/app/nibs/TaskManager.xib
new file mode 100644
index 0000000..375598e
--- /dev/null
+++ b/chrome/app/nibs/TaskManager.xib
@@ -0,0 +1,686 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
+ <data>
+ <int key="IBDocument.SystemTarget">1050</int>
+ <string key="IBDocument.SystemVersion">9L31a</string>
+ <string key="IBDocument.InterfaceBuilderVersion">677</string>
+ <string key="IBDocument.AppKitVersion">949.54</string>
+ <string key="IBDocument.HIToolboxVersion">353.00</string>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="2"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomObject" id="1001">
+ <string key="NSClassName">TaskManagerWindowController</string>
+ </object>
+ <object class="NSCustomObject" id="1003">
+ <string key="NSClassName">FirstResponder</string>
+ </object>
+ <object class="NSCustomObject" id="1004">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSWindowTemplate" id="1005">
+ <int key="NSWindowStyleMask">15</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{196, 240}, {480, 270}}</string>
+ <int key="NSWTFlags">536870912</int>
+ <string key="NSWindowTitle">^IDS_TASK_MANAGER_TITLE</string>
+ <string key="NSWindowClass">NSWindow</string>
+ <nil key="NSViewClass"/>
+ <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
+ <object class="NSView" key="NSWindowView" id="1006">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSScrollView" id="69694332">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSClipView" id="591559926">
+ <reference key="NSNextResponder" ref="69694332"/>
+ <int key="NSvFlags">2304</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSTableView" id="573715149">
+ <reference key="NSNextResponder" ref="591559926"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrameSize">{423, 157}</string>
+ <reference key="NSSuperview" ref="591559926"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTableHeaderView" key="NSHeaderView" id="518410225">
+ <reference key="NSNextResponder" ref="309854133"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrameSize">{423, 17}</string>
+ <reference key="NSSuperview" ref="309854133"/>
+ <reference key="NSTableView" ref="573715149"/>
+ </object>
+ <object class="_NSCornerView" key="NSCornerView" id="704068535">
+ <reference key="NSNextResponder" ref="69694332"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{424, 0}, {16, 17}}</string>
+ <reference key="NSSuperview" ref="69694332"/>
+ </object>
+ <object class="NSMutableArray" key="NSTableColumns">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSTableColumn" id="694001717">
+ <double key="NSWidth">1.010000e+02</double>
+ <double key="NSMinWidth">4.000000e+01</double>
+ <double key="NSMaxWidth">1.000000e+03</double>
+ <object class="NSTableHeaderCell" key="NSHeaderCell">
+ <int key="NSCellFlags">75628032</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents"/>
+ <object class="NSFont" key="NSSupport" id="26">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">1.100000e+01</double>
+ <int key="NSfFlags">3100</int>
+ </object>
+ <object class="NSColor" key="NSBackgroundColor" id="685047776">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
+ </object>
+ <object class="NSColor" key="NSTextColor" id="990616000">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">headerTextColor</string>
+ <object class="NSColor" key="NSColor" id="1024652796">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSTextFieldCell" key="NSDataCell" id="517523641">
+ <int key="NSCellFlags">337772096</int>
+ <int key="NSCellFlags2">2048</int>
+ <string key="NSContents">Text Cell</string>
+ <object class="NSFont" key="NSSupport" id="746983650">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">1.300000e+01</double>
+ <int key="NSfFlags">1044</int>
+ </object>
+ <reference key="NSControlView" ref="573715149"/>
+ <object class="NSColor" key="NSBackgroundColor" id="456292161">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlBackgroundColor</string>
+ <object class="NSColor" key="NSColor" id="1010533372">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
+ </object>
+ </object>
+ <object class="NSColor" key="NSTextColor" id="1040882968">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlTextColor</string>
+ <reference key="NSColor" ref="1024652796"/>
+ </object>
+ </object>
+ <int key="NSResizingMask">3</int>
+ <bool key="NSIsResizeable">YES</bool>
+ <bool key="NSIsEditable">YES</bool>
+ <reference key="NSTableView" ref="573715149"/>
+ </object>
+ <object class="NSTableColumn" id="95821798">
+ <double key="NSWidth">3.160000e+02</double>
+ <double key="NSMinWidth">4.000000e+01</double>
+ <double key="NSMaxWidth">1.000000e+03</double>
+ <object class="NSTableHeaderCell" key="NSHeaderCell">
+ <int key="NSCellFlags">75628032</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSBackgroundColor" ref="685047776"/>
+ <reference key="NSTextColor" ref="990616000"/>
+ </object>
+ <object class="NSTextFieldCell" key="NSDataCell" id="137828506">
+ <int key="NSCellFlags">337772096</int>
+ <int key="NSCellFlags2">2048</int>
+ <string key="NSContents">Text Cell</string>
+ <reference key="NSSupport" ref="746983650"/>
+ <reference key="NSControlView" ref="573715149"/>
+ <reference key="NSBackgroundColor" ref="456292161"/>
+ <reference key="NSTextColor" ref="1040882968"/>
+ </object>
+ <int key="NSResizingMask">3</int>
+ <bool key="NSIsResizeable">YES</bool>
+ <bool key="NSIsEditable">YES</bool>
+ <reference key="NSTableView" ref="573715149"/>
+ </object>
+ </object>
+ <double key="NSIntercellSpacingWidth">3.000000e+00</double>
+ <double key="NSIntercellSpacingHeight">2.000000e+00</double>
+ <object class="NSColor" key="NSBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <object class="NSColor" key="NSGridColor">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">gridColor</string>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ </object>
+ <double key="NSRowHeight">1.700000e+01</double>
+ <int key="NSTvFlags">-700448768</int>
+ <int key="NSColumnAutoresizingStyle">4</int>
+ <int key="NSDraggingSourceMaskForLocal">15</int>
+ <int key="NSDraggingSourceMaskForNonLocal">0</int>
+ <bool key="NSAllowsTypeSelect">YES</bool>
+ </object>
+ </object>
+ <string key="NSFrame">{{1, 17}, {423, 157}}</string>
+ <reference key="NSSuperview" ref="69694332"/>
+ <reference key="NSNextKeyView" ref="573715149"/>
+ <reference key="NSDocView" ref="573715149"/>
+ <reference key="NSBGColor" ref="456292161"/>
+ <int key="NScvFlags">4</int>
+ </object>
+ <object class="NSScroller" id="820842366">
+ <reference key="NSNextResponder" ref="69694332"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{424, 17}, {15, 157}}</string>
+ <reference key="NSSuperview" ref="69694332"/>
+ <reference key="NSTarget" ref="69694332"/>
+ <string key="NSAction">_doScroller:</string>
+ <double key="NSCurValue">3.700000e+01</double>
+ <double key="NSPercent">1.947368e-01</double>
+ </object>
+ <object class="NSScroller" id="974910523">
+ <reference key="NSNextResponder" ref="69694332"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrame">{{1, 174}, {423, 15}}</string>
+ <reference key="NSSuperview" ref="69694332"/>
+ <int key="NSsFlags">1</int>
+ <reference key="NSTarget" ref="69694332"/>
+ <string key="NSAction">_doScroller:</string>
+ <double key="NSPercent">5.714286e-01</double>
+ </object>
+ <object class="NSClipView" id="309854133">
+ <reference key="NSNextResponder" ref="69694332"/>
+ <int key="NSvFlags">2304</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="518410225"/>
+ </object>
+ <string key="NSFrame">{{1, 0}, {423, 17}}</string>
+ <reference key="NSSuperview" ref="69694332"/>
+ <reference key="NSNextKeyView" ref="518410225"/>
+ <reference key="NSDocView" ref="518410225"/>
+ <reference key="NSBGColor" ref="456292161"/>
+ <int key="NScvFlags">4</int>
+ </object>
+ <reference ref="704068535"/>
+ </object>
+ <string key="NSFrame">{{20, 60}, {440, 190}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <reference key="NSNextKeyView" ref="591559926"/>
+ <int key="NSsFlags">50</int>
+ <reference key="NSVScroller" ref="820842366"/>
+ <reference key="NSHScroller" ref="974910523"/>
+ <reference key="NSContentView" ref="591559926"/>
+ <reference key="NSHeaderClipView" ref="309854133"/>
+ <reference key="NSCornerView" ref="704068535"/>
+ <bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
+ </object>
+ <object class="NSTextField" id="976181670">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 22}, {77, 17}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="699552686">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">272630784</int>
+ <string key="NSContents">TODO: Link</string>
+ <reference key="NSSupport" ref="746983650"/>
+ <reference key="NSControlView" ref="976181670"/>
+ <object class="NSColor" key="NSBackgroundColor">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlColor</string>
+ <reference key="NSColor" ref="1010533372"/>
+ </object>
+ <reference key="NSTextColor" ref="1040882968"/>
+ </object>
+ </object>
+ <object class="NSCustomView" id="369147393">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">289</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSButton" id="310898064">
+ <reference key="NSNextResponder" ref="369147393"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{14, 12}, {96, 32}}</string>
+ <reference key="NSSuperview" ref="369147393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="1069566772">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">^IDS_TASK_MANAGER_KILL</string>
+ <reference key="NSSupport" ref="746983650"/>
+ <reference key="NSControlView" ref="310898064"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">129</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrame">{{356, 0}, {124, 60}}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <string key="NSClassName">GTMWidthBasedTweaker</string>
+ </object>
+ </object>
+ <string key="NSFrameSize">{480, 270}</string>
+ <reference key="NSSuperview"/>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
+ <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+ </object>
+ <object class="NSCustomObject" id="680042460">
+ <string key="NSClassName">ChromeUILocalizer</string>
+ </object>
+ <object class="NSCustomObject" id="902501233">
+ <string key="NSClassName">GTMUILocalizerAndLayoutTweaker</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">window</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="1005"/>
+ </object>
+ <int key="connectionID">16</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">localizer_</string>
+ <reference key="source" ref="902501233"/>
+ <reference key="destination" ref="680042460"/>
+ </object>
+ <int key="connectionID">20</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">uiObject_</string>
+ <reference key="source" ref="902501233"/>
+ <reference key="destination" ref="1005"/>
+ </object>
+ <int key="connectionID">21</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <object class="NSArray" key="object" id="1002">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="1001"/>
+ <reference key="parent" ref="1002"/>
+ <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="1003"/>
+ <reference key="parent" ref="1002"/>
+ <string key="objectName">First Responder</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-3</int>
+ <reference key="object" ref="1004"/>
+ <reference key="parent" ref="1002"/>
+ <string key="objectName">Application</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="1005"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1006"/>
+ </object>
+ <reference key="parent" ref="1002"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="1006"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="69694332"/>
+ <reference ref="976181670"/>
+ <reference ref="369147393"/>
+ </object>
+ <reference key="parent" ref="1005"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">3</int>
+ <reference key="object" ref="69694332"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="820842366"/>
+ <reference ref="974910523"/>
+ <reference ref="573715149"/>
+ <reference ref="518410225"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">4</int>
+ <reference key="object" ref="820842366"/>
+ <reference key="parent" ref="69694332"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="974910523"/>
+ <reference key="parent" ref="69694332"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="573715149"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="694001717"/>
+ <reference ref="95821798"/>
+ </object>
+ <reference key="parent" ref="69694332"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="518410225"/>
+ <reference key="parent" ref="69694332"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">8</int>
+ <reference key="object" ref="694001717"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="517523641"/>
+ </object>
+ <reference key="parent" ref="573715149"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">9</int>
+ <reference key="object" ref="95821798"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="137828506"/>
+ </object>
+ <reference key="parent" ref="573715149"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="137828506"/>
+ <reference key="parent" ref="95821798"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">11</int>
+ <reference key="object" ref="517523641"/>
+ <reference key="parent" ref="694001717"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">14</int>
+ <reference key="object" ref="976181670"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="699552686"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">15</int>
+ <reference key="object" ref="699552686"/>
+ <reference key="parent" ref="976181670"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">17</int>
+ <reference key="object" ref="680042460"/>
+ <reference key="parent" ref="1002"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">18</int>
+ <reference key="object" ref="369147393"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="310898064"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">12</int>
+ <reference key="object" ref="310898064"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1069566772"/>
+ </object>
+ <reference key="parent" ref="369147393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">13</int>
+ <reference key="object" ref="1069566772"/>
+ <reference key="parent" ref="310898064"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">19</int>
+ <reference key="object" ref="902501233"/>
+ <reference key="parent" ref="1002"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.IBPluginDependency</string>
+ <string>-2.IBPluginDependency</string>
+ <string>-3.IBPluginDependency</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>1.IBWindowTemplateEditedContentRect</string>
+ <string>1.NSWindowTemplate.visibleAtLaunch</string>
+ <string>1.WindowOrigin</string>
+ <string>1.editorWindowContentRectSynchronizationRect</string>
+ <string>10.IBPluginDependency</string>
+ <string>11.IBPluginDependency</string>
+ <string>12.IBPluginDependency</string>
+ <string>13.IBPluginDependency</string>
+ <string>14.IBPluginDependency</string>
+ <string>15.IBPluginDependency</string>
+ <string>17.IBPluginDependency</string>
+ <string>19.IBPluginDependency</string>
+ <string>2.IBPluginDependency</string>
+ <string>3.IBPluginDependency</string>
+ <string>4.IBPluginDependency</string>
+ <string>5.IBPluginDependency</string>
+ <string>6.IBPluginDependency</string>
+ <string>7.IBPluginDependency</string>
+ <string>8.IBPluginDependency</string>
+ <string>9.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{63, 495}, {480, 270}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{63, 495}, {480, 270}}</string>
+ <integer value="1"/>
+ <string>{196, 240}</string>
+ <string>{{357, 418}, {480, 270}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">21</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">ChromeUILocalizer</string>
+ <string key="superclassName">GTMUILocalizer</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">browser/cocoa/ui_localizer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">GTMUILocalizer</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>otherObjectToLocalize_</string>
+ <string>owner_</string>
+ <string>yetAnotherObjectToLocalize_</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">../third_party/GTM/AppKit/GTMUILocalizer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">GTMUILocalizerAndLayoutTweaker</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>localizerOwner_</string>
+ <string>localizer_</string>
+ <string>uiObject_</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>GTMUILocalizer</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1070061944">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">../third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">GTMWidthBasedTweaker</string>
+ <string key="superclassName">NSView</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>viewToResize_</string>
+ <string>viewToSlideAndResize_</string>
+ <string>viewToSlide_</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>NSView</string>
+ <string>NSView</string>
+ </object>
+ </object>
+ <reference key="sourceIdentifier" ref="1070061944"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">browser/cocoa/status_bubble_mac.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">browser/cocoa/tab_strip_model_observer_bridge.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">TaskManagerWindowController</string>
+ <string key="superclassName">NSWindowController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">browser/cocoa/task_manager_mac.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../../chrome.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ </data>
+</archive>
diff --git a/chrome/browser/cocoa/browser_window_cocoa.mm b/chrome/browser/cocoa/browser_window_cocoa.mm
index b51ab8c..73a74a0 100644
--- a/chrome/browser/cocoa/browser_window_cocoa.mm
+++ b/chrome/browser/cocoa/browser_window_cocoa.mm
@@ -11,6 +11,7 @@
#import "chrome/browser/cocoa/clear_browsing_data_controller.h"
#import "chrome/browser/cocoa/download_shelf_controller.h"
#include "chrome/browser/cocoa/page_info_window_mac.h"
+#include "chrome/browser/cocoa/task_manager_mac.h"
#include "chrome/browser/browser.h"
#include "chrome/browser/download/download_shelf.h"
#include "chrome/common/notification_service.h"
@@ -201,7 +202,7 @@ void BrowserWindowCocoa::ShowAboutChromeDialog() {
}
void BrowserWindowCocoa::ShowTaskManager() {
- NOTIMPLEMENTED();
+ TaskManagerMac::Show();
}
void BrowserWindowCocoa::ShowBookmarkManager() {
diff --git a/chrome/browser/cocoa/task_manager_mac.h b/chrome/browser/cocoa/task_manager_mac.h
new file mode 100644
index 0000000..dbf34f9
--- /dev/null
+++ b/chrome/browser/cocoa/task_manager_mac.h
@@ -0,0 +1,54 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_COCOA_TASK_MANAGER_MAC_H_
+#define CHROME_BROWSER_COCOA_TASK_MANAGER_MAC_H_
+
+#import <Cocoa/Cocoa.h>
+#include "base/scoped_nsobject.h"
+#include "chrome/browser/task_manager.h"
+
+// This class is responsible for loading the task manager window and for
+// managing it.
+@interface TaskManagerWindowController : NSWindowController {
+}
+
+// Creates and shows the task manager's window.
+- (id)init;
+@end
+
+// This class listens to task changed events sent by chrome.
+class TaskManagerMac : public TaskManagerModelObserver {
+ public:
+ TaskManagerMac();
+ virtual ~TaskManagerMac();
+
+ // TaskManagerModelObserver
+ virtual void OnModelChanged();
+ virtual void OnItemsChanged(int start, int length);
+ virtual void OnItemsAdded(int start, int length);
+ virtual void OnItemsRemoved(int start, int length);
+
+ // Creates the task manager if it doesn't exist; otherwise, it activates the
+ // existing task manager window.
+ static void Show();
+
+ private:
+ // The task manager.
+ TaskManager* task_manager_; // weak
+
+ // Our model.
+ TaskManagerModel* model_; // weak
+
+ // Controller of our window.
+ scoped_nsobject<TaskManagerWindowController> window_controller_;
+
+ // An open task manager window. There can only be one open at a time. This
+ // is reset to NULL when the window is closed.
+ static TaskManagerMac* instance_;
+
+ DISALLOW_COPY_AND_ASSIGN(TaskManagerMac);
+};
+
+#endif // CHROME_BROWSER_COCOA_TASK_MANAGER_MAC_H_
diff --git a/chrome/browser/cocoa/task_manager_mac.mm b/chrome/browser/cocoa/task_manager_mac.mm
new file mode 100644
index 0000000..b282dad
--- /dev/null
+++ b/chrome/browser/cocoa/task_manager_mac.mm
@@ -0,0 +1,74 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/cocoa/task_manager_mac.h"
+
+#include <algorithm>
+#include <vector>
+
+#include "base/mac_util.h"
+
+////////////////////////////////////////////////////////////////////////////////
+// TaskManagerWindowController implementation:
+
+@implementation TaskManagerWindowController
+
+- (id)init {
+ NSString* nibpath = [mac_util::MainAppBundle()
+ pathForResource:@"TaskManager"
+ ofType:@"nib"];
+ if ((self = [super initWithWindowNibPath:nibpath owner:self])) {
+ [[self window] makeKeyAndOrderFront:self];
+ }
+ return self;
+}
+
+@end
+
+////////////////////////////////////////////////////////////////////////////////
+// TaskManagerMac implementation:
+
+TaskManagerMac::TaskManagerMac()
+ : task_manager_(TaskManager::GetInstance()),
+ model_(TaskManager::GetInstance()->model()) {
+ window_controller_.reset([[TaskManagerWindowController alloc] init]);
+}
+
+// static
+TaskManagerMac* TaskManagerMac::instance_ = NULL;
+
+TaskManagerMac::~TaskManagerMac() {
+ task_manager_->OnWindowClosed();
+ model_->RemoveObserver(this);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// TaskManagerMac, TaskManagerModelObserver implementation:
+
+void TaskManagerMac::OnModelChanged() {
+}
+
+void TaskManagerMac::OnItemsChanged(int start, int length) {
+}
+
+void TaskManagerMac::OnItemsAdded(int start, int length) {
+}
+
+void TaskManagerMac::OnItemsRemoved(int start, int length) {
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// TaskManagerMac, public:
+
+// static
+void TaskManagerMac::Show() {
+ if (instance_) {
+ // If there's a Task manager window open already, just activate it.
+ [[instance_->window_controller_ window]
+ makeKeyAndOrderFront:instance_->window_controller_];
+ } else {
+ instance_ = new TaskManagerMac;
+ instance_->model_->StartUpdating();
+ }
+}
diff --git a/chrome/browser/cocoa/task_manager_mac_unittest.mm b/chrome/browser/cocoa/task_manager_mac_unittest.mm
new file mode 100644
index 0000000..2bb73ce
--- /dev/null
+++ b/chrome/browser/cocoa/task_manager_mac_unittest.mm
@@ -0,0 +1,32 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import <Cocoa/Cocoa.h>
+
+#include "base/scoped_nsobject.h"
+#import "chrome/browser/cocoa/task_manager_mac.h"
+#import "chrome/browser/cocoa/cocoa_test_helper.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "testing/platform_test.h"
+
+namespace {
+
+class TaskManagerWindowControllerTest : public PlatformTest {
+ public:
+ TaskManagerWindowControllerTest() {
+ controller_.reset([[TaskManagerWindowController alloc] init]);
+ }
+
+ scoped_nsobject<TaskManagerWindowController> controller_;
+ CocoaTestHelper cocoa_helper_; // Inits Cocoa, creates window, etc...
+};
+
+// Test creation, to ensure nothing leaks or crashes
+TEST_F(TaskManagerWindowControllerTest, Init) {
+}
+
+// TODO(thakis): Add tests for more methods as they become implemented
+// (TaskManager::Show() etc).
+
+} // namespace
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index 7dc3b72..e3ce12c 100644
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -1035,6 +1035,8 @@
'browser/cocoa/tab_view.mm',
'browser/cocoa/tab_window_controller.h',
'browser/cocoa/tab_window_controller.mm',
+ 'browser/cocoa/task_manager_mac.h',
+ 'browser/cocoa/task_manager_mac.mm',
'browser/cocoa/throbber_view.h',
'browser/cocoa/throbber_view.mm',
'browser/cocoa/toolbar_button_cell.h',
@@ -2363,6 +2365,7 @@
'app/nibs/MainMenu.xib',
'app/nibs/SaveAccessoryView.xib',
'app/nibs/TabView.xib',
+ 'app/nibs/TaskManager.xib',
'app/nibs/Toolbar.xib',
],
},
@@ -3053,6 +3056,7 @@
'app/nibs/SaveAccessoryView.xib',
'app/nibs/TabContents.xib',
'app/nibs/TabView.xib',
+ 'app/nibs/TaskManager.xib',
'app/nibs/Toolbar.xib',
'app/theme/alert_small.png',
'app/theme/back_Template.pdf',
@@ -4077,6 +4081,7 @@
'browser/cocoa/tab_strip_controller_unittest.mm',
'browser/cocoa/tab_strip_view_unittest.mm',
'browser/cocoa/tab_view_unittest.mm',
+ 'browser/cocoa/task_manager_mac_unittest.mm',
'browser/cocoa/test_event_utils.h',
'browser/cocoa/test_event_utils.mm',
'browser/cocoa/throbber_view_unittest.mm',