summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/app/nibs/BookmarkBar.xib594
-rw-r--r--chrome/browser/browser.cc2
-rw-r--r--chrome/browser/cocoa/bookmark_bar_bridge_unittest.mm6
-rw-r--r--chrome/browser/cocoa/bookmark_bar_controller.h17
-rw-r--r--chrome/browser/cocoa/bookmark_bar_controller.mm79
-rw-r--r--chrome/browser/cocoa/bookmark_bar_controller_unittest.mm73
-rw-r--r--chrome/browser/cocoa/browser_window_controller.h1
-rw-r--r--chrome/browser/cocoa/browser_window_controller.mm9
8 files changed, 626 insertions, 155 deletions
diff --git a/chrome/app/nibs/BookmarkBar.xib b/chrome/app/nibs/BookmarkBar.xib
index 3f2075c..127d24f 100644
--- a/chrome/app/nibs/BookmarkBar.xib
+++ b/chrome/app/nibs/BookmarkBar.xib
@@ -1,21 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1050</int>
- <string key="IBDocument.SystemVersion">9L30</string>
- <string key="IBDocument.InterfaceBuilderVersion">670</string>
- <string key="IBDocument.AppKitVersion">949.54</string>
- <string key="IBDocument.HIToolboxVersion">353.00</string>
+ <string key="IBDocument.SystemVersion">10B504</string>
+ <string key="IBDocument.InterfaceBuilderVersion">732</string>
+ <string key="IBDocument.AppKitVersion">1038.2</string>
+ <string key="IBDocument.HIToolboxVersion">437.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="NS.object.0">732</string>
+ </object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="18"/>
- <integer value="62"/>
<integer value="4"/>
+ <integer value="62"/>
+ <integer value="18"/>
</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" id="0">
+ <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">
@@ -49,7 +62,7 @@
<string key="NSContents">^IDS_BOOKMARKS_NO_ITEMS</string>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
- <double key="NSSize">1.100000e+01</double>
+ <double key="NSSize">11</double>
<int key="NSfFlags">3100</int>
</object>
<reference key="NSControlView" ref="1013234954"/>
@@ -59,7 +72,7 @@
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
- <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor">
@@ -373,22 +386,6 @@
<object class="IBActionConnection" key="connection">
<string key="label">commandDispatch:</string>
<reference key="source" ref="1003"/>
- <reference key="destination" ref="115646576"/>
- </object>
- <int key="connectionID">33</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBActionConnection" key="connection">
- <string key="label">commandDispatch:</string>
- <reference key="source" ref="1003"/>
- <reference key="destination" ref="509003741"/>
- </object>
- <int key="connectionID">34</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBActionConnection" key="connection">
- <string key="label">commandDispatch:</string>
- <reference key="source" ref="1003"/>
<reference key="destination" ref="112128065"/>
</object>
<int key="connectionID">35</int>
@@ -633,34 +630,48 @@
</object>
<int key="connectionID">98</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">openAllBookmarksNewWindow:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="115646576"/>
+ </object>
+ <int key="connectionID">99</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">openAllBookmarksIncognitoWindow:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="509003741"/>
+ </object>
+ <int key="connectionID">100</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="360811110">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
+ <reference key="object" ref="0"/>
<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="360811110"/>
- <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="1003"/>
- <reference key="parent" ref="360811110"/>
+ <reference key="parent" ref="0"/>
<string key="objectName">First Responder</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-3</int>
<reference key="object" ref="1004"/>
- <reference key="parent" ref="360811110"/>
+ <reference key="parent" ref="0"/>
<string key="objectName">Application</string>
</object>
<object class="IBObjectRecord">
@@ -671,7 +682,7 @@
<reference ref="610146462"/>
<reference ref="1071220197"/>
</object>
- <reference key="parent" ref="360811110"/>
+ <reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
@@ -691,7 +702,7 @@
<reference ref="23014313"/>
<reference ref="149427359"/>
</object>
- <reference key="parent" ref="360811110"/>
+ <reference key="parent" ref="0"/>
<string key="objectName">Bar Menu</string>
</object>
<object class="IBObjectRecord">
@@ -773,7 +784,7 @@
<reference ref="1071747565"/>
<reference ref="377013426"/>
</object>
- <reference key="parent" ref="360811110"/>
+ <reference key="parent" ref="0"/>
<string key="objectName">Button Menu</string>
</object>
<object class="IBObjectRecord">
@@ -862,7 +873,7 @@
<object class="IBObjectRecord">
<int key="objectID">72</int>
<reference key="object" ref="849863465"/>
- <reference key="parent" ref="360811110"/>
+ <reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">75</int>
@@ -871,7 +882,7 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="582055256"/>
</object>
- <reference key="parent" ref="360811110"/>
+ <reference key="parent" ref="0"/>
<string key="objectName">Off-the-side Menu</string>
</object>
<object class="IBObjectRecord">
@@ -902,7 +913,7 @@
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSMutableArray" key="dict.sortedKeys">
+ <object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.IBPluginDependency</string>
<string>-2.IBPluginDependency</string>
@@ -964,7 +975,7 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{364, 332}, {365, 233}}</string>
+ <string>{{364, 332}, {362, 233}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -978,7 +989,7 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{40, 636}, {375, 213}}</string>
+ <string>{{40, 636}, {372, 213}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1001,9 +1012,7 @@
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
+ <reference key="dict.sortedKeys" ref="0"/>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
@@ -1011,15 +1020,13 @@
<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>
+ <reference key="dict.sortedKeys" ref="0"/>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">98</int>
+ <int key="maxID">100</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -1037,7 +1044,7 @@
<string key="superclassName">NSViewController</string>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSMutableArray" key="dict.sortedKeys">
+ <object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>addFolder:</string>
<string>addPage:</string>
@@ -1045,6 +1052,8 @@
<string>deleteBookmark:</string>
<string>editBookmark:</string>
<string>openAllBookmarks:</string>
+ <string>openAllBookmarksIncognitoWindow:</string>
+ <string>openAllBookmarksNewWindow:</string>
<string>openBookmark:</string>
<string>openBookmarkInIncognitoWindow:</string>
<string>openBookmarkInNewForegroundTab:</string>
@@ -1064,18 +1073,19 @@
<string>id</string>
<string>id</string>
<string>id</string>
+ <string>id</string>
+ <string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSMutableArray" key="dict.sortedKeys">
+ <object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>buttonContextMenu_</string>
<string>buttonView_</string>
<string>compressDelegate_</string>
<string>offTheSideButton_</string>
<string>resizeDelegate_</string>
- <string>urlDelegate_</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -1084,7 +1094,6 @@
<string>id</string>
<string>MenuButton</string>
<string>id</string>
- <string>id</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
@@ -1109,7 +1118,7 @@
<string key="superclassName">NSView</string>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSMutableArray" key="dict.sortedKeys">
+ <object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>controller_</string>
<string>noItemTextfield_</string>
@@ -1158,7 +1167,7 @@
<string key="superclassName">NSObject</string>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSMutableArray" key="dict.sortedKeys">
+ <object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>otherObjectToLocalize_</string>
<string>owner_</string>
@@ -1222,7 +1231,7 @@
<string key="superclassName">NSViewController</string>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSMutableArray" key="dict.sortedKeys">
+ <object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>closeTab:</string>
<string>commandDispatch:</string>
@@ -1235,7 +1244,7 @@
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSMutableArray" key="dict.sortedKeys">
+ <object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>closeButton_</string>
<string>contextMenu_</string>
@@ -1258,8 +1267,483 @@
</object>
</object>
</object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSActionCell</string>
+ <string key="superclassName">NSCell</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <string key="superclassName">NSResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="801885704">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="447441832">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="975965104">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSApplication</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSUserInterfaceItemSearching.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSButton</string>
+ <string key="superclassName">NSControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSButton.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSButtonCell</string>
+ <string key="superclassName">NSActionCell</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSCell</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSControl</string>
+ <string key="superclassName">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="110824619">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSFormatter</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSMenu</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1018913278">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSMenuItem</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="921599287">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="801885704"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="447441832"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="975965104"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="110824619"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSDragging.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <reference key="sourceIdentifier" ref="1018913278"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="602172652">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CIImageProvider.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">SecurityInterface.framework/Headers/SFAuthorizationView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">SecurityInterface.framework/Headers/SFCertificatePanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">SecurityInterface.framework/Headers/SFChooseIdentityPanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSResponder</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSTextField</string>
+ <string key="superclassName">NSControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSTextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSTextFieldCell</string>
+ <string key="superclassName">NSActionCell</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSClipView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <reference key="sourceIdentifier" ref="921599287"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <string key="superclassName">NSResponder</string>
+ <reference key="sourceIdentifier" ref="602172652"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSViewController</string>
+ <string key="superclassName">NSResponder</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">view</string>
+ <string key="NS.object.0">NSView</string>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">AppKit.framework/Headers/NSViewController.h</string>
+ </object>
+ </object>
+ </object>
</object>
<int key="IBDocument.localizationMode">0</int>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+ <integer value="1050" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+ <integer value="1050" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<string key="IBDocument.LastKnownRelativeProjectPath">../../chrome.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
</data>
diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc
index f2c8f76..7010deb 100644
--- a/chrome/browser/browser.cc
+++ b/chrome/browser/browser.cc
@@ -2410,7 +2410,9 @@ void Browser::InitCommandState() {
command_updater_.UpdateCommandEnabled(IDC_TASK_MANAGER, true);
command_updater_.UpdateCommandEnabled(IDC_SELECT_PROFILE, true);
command_updater_.UpdateCommandEnabled(IDC_SHOW_HISTORY, true);
+#if !defined(OS_MACOSX) // http://crbug.com/13149
command_updater_.UpdateCommandEnabled(IDC_SHOW_BOOKMARK_MANAGER, true);
+#endif
command_updater_.UpdateCommandEnabled(IDC_SHOW_EXTENSION_SHELF, true);
command_updater_.UpdateCommandEnabled(IDC_SHOW_DOWNLOADS, true);
command_updater_.UpdateCommandEnabled(IDC_HELP_PAGE, true);
diff --git a/chrome/browser/cocoa/bookmark_bar_bridge_unittest.mm b/chrome/browser/cocoa/bookmark_bar_bridge_unittest.mm
index 627775a..2b03429 100644
--- a/chrome/browser/cocoa/bookmark_bar_bridge_unittest.mm
+++ b/chrome/browser/cocoa/bookmark_bar_bridge_unittest.mm
@@ -23,8 +23,7 @@ typedef std::pair<GURL,WindowOpenDisposition> OpenInfo;
// Objective-C declarations may only appear in global scope")
// Oddly, we are our own delegate.
-@interface FakeBookmarkBarController :
- BookmarkBarController<BookmarkURLOpener> {
+@interface FakeBookmarkBarController : BookmarkBarController {
@public
scoped_nsobject<NSMutableArray> callbacks_;
std::vector<OpenInfo> opens_;
@@ -37,8 +36,7 @@ typedef std::pair<GURL,WindowOpenDisposition> OpenInfo;
if ((self = [super initWithBrowser:browser
initialWidth:100 // arbitrary
compressDelegate:nil
- resizeDelegate:nil
- urlDelegate:self])) {
+ resizeDelegate:nil])) {
callbacks_.reset([[NSMutableArray alloc] init]);
}
return self;
diff --git a/chrome/browser/cocoa/bookmark_bar_controller.h b/chrome/browser/cocoa/bookmark_bar_controller.h
index 07d961a..3134353 100644
--- a/chrome/browser/cocoa/bookmark_bar_controller.h
+++ b/chrome/browser/cocoa/bookmark_bar_controller.h
@@ -42,12 +42,6 @@ const CGFloat kNoBookmarksNTPVerticalOffset = 27.0;
} // namespace
-// The interface for an object which can open URLs for a bookmark.
-@protocol BookmarkURLOpener
-- (void)openBookmarkURL:(const GURL&)url
- disposition:(WindowOpenDisposition)disposition;
-@end
-
// A controller for the bookmark bar in the browser window. Handles showing
// and hiding based on the preference in the given profile.
@interface BookmarkBarController :
@@ -91,9 +85,6 @@ const CGFloat kNoBookmarksNTPVerticalOffset = 27.0;
// Delegate that can resize us.
id<ViewResizer> resizeDelegate_; // weak
- // Delegate that can open URLs for us.
- id<BookmarkURLOpener> urlDelegate_; // weak
-
// Lets us get TabSelectedAt notifications.
scoped_ptr<TabStripModelObserverBridge> tabObserver_;
@@ -110,8 +101,7 @@ const CGFloat kNoBookmarksNTPVerticalOffset = 27.0;
- (id)initWithBrowser:(Browser*)browser
initialWidth:(float)initialWidth
compressDelegate:(id<ToolbarCompressable>)compressDelegate
- resizeDelegate:(id<ViewResizer>)resizeDelegate
- urlDelegate:(id<BookmarkURLOpener>)urlDelegate;
+ resizeDelegate:(id<ViewResizer>)resizeDelegate;
// Returns the backdrop to the bookmark bar.
- (BackgroundGradientView*)backgroundGradientView;
@@ -159,6 +149,8 @@ const CGFloat kNoBookmarksNTPVerticalOffset = 27.0;
- (IBAction)deleteBookmark:(id)sender;
// From a context menu over the bar, ...
- (IBAction)openAllBookmarks:(id)sender;
+- (IBAction)openAllBookmarksNewWindow:(id)sender;
+- (IBAction)openAllBookmarksIncognitoWindow:(id)sender;
// Or from a context menu over either the bar or a button.
- (IBAction)addPage:(id)sender;
- (IBAction)addFolder:(id)sender;
@@ -188,8 +180,7 @@ const CGFloat kNoBookmarksNTPVerticalOffset = 27.0;
// These APIs should only be used by unit tests (or used internally).
@interface BookmarkBarController(InternalOrTestingAPI)
-// Set the delegate for a unit test.
-- (void)setUrlDelegate:(id<BookmarkURLOpener>)urlDelegate;
+- (void)openURL:(GURL)url disposition:(WindowOpenDisposition)disposition;
- (NSCell*)cellForBookmarkNode:(const BookmarkNode*)node;
- (void)clearBookmarkBar;
- (BookmarkBarView*)buttonView;
diff --git a/chrome/browser/cocoa/bookmark_bar_controller.mm b/chrome/browser/cocoa/bookmark_bar_controller.mm
index 8a8bb95..7a616de 100644
--- a/chrome/browser/cocoa/bookmark_bar_controller.mm
+++ b/chrome/browser/cocoa/bookmark_bar_controller.mm
@@ -23,6 +23,7 @@
#import "chrome/browser/cocoa/menu_button.h"
#import "chrome/browser/cocoa/toolbar_controller.h"
#import "chrome/browser/cocoa/view_resizer.h"
+#include "chrome/browser/metrics/user_metrics.h"
#include "chrome/browser/profile.h"
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/tab_contents/tab_contents_view.h"
@@ -64,8 +65,7 @@
- (id)initWithBrowser:(Browser*)browser
initialWidth:(float)initialWidth
compressDelegate:(id<ToolbarCompressable>)compressDelegate
- resizeDelegate:(id<ViewResizer>)resizeDelegate
- urlDelegate:(id<BookmarkURLOpener>)urlDelegate {
+ resizeDelegate:(id<ViewResizer>)resizeDelegate {
if ((self = [super initWithNibName:@"BookmarkBar"
bundle:mac_util::MainAppBundle()])) {
browser_ = browser;
@@ -74,7 +74,6 @@
buttons_.reset([[NSMutableArray alloc] init]);
compressDelegate_ = compressDelegate;
resizeDelegate_ = resizeDelegate;
- urlDelegate_ = urlDelegate;
tabObserver_.reset(
new TabStripModelObserverBridge(browser_->tabstrip_model(), self));
@@ -305,22 +304,31 @@
return node;
}
-// At this time, the only item which ever gets disabled is "Open All
-// Bookmarks".
+// At this time, the only items which ever get disabled are the "Open All
+// Bookmarks" options.
- (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item {
SEL action = [item action];
- if ((action == @selector(openAllBookmarks:)) &&
+ if (((action == @selector(openAllBookmarks:)) ||
+ (action == @selector(openAllBookmarksNewWindow:)) ||
+ (action == @selector(openAllBookmarksIncognitoWindow:))) &&
(![buttons_ count])) {
return NO;
}
return YES;
}
+// Actually open the URL. This is the last chance for a unit test to
+// override.
+- (void)openURL:(GURL)url disposition:(WindowOpenDisposition)disposition {
+ BrowserList::GetLastActive()->OpenURL(url, GURL(), disposition,
+ PageTransition::AUTO_BOOKMARK);
+}
+
- (IBAction)openBookmark:(id)sender {
BookmarkNode* node = [self nodeFromButton:sender];
- [urlDelegate_ openBookmarkURL:node->GetURL()
- disposition:event_utils::WindowOpenDispositionFromNSEvent(
- [NSApp currentEvent])];
+ WindowOpenDisposition disposition =
+ event_utils::WindowOpenDispositionFromNSEvent([NSApp currentEvent]);
+ [self openURL:node->GetURL() disposition:disposition];
}
// Given a NSMenuItem tag, return the appropriate bookmark node id.
@@ -475,17 +483,17 @@
- (IBAction)openBookmarkInNewForegroundTab:(id)sender {
BookmarkNode* node = [self nodeFromMenuItem:sender];
- [urlDelegate_ openBookmarkURL:node->GetURL() disposition:NEW_FOREGROUND_TAB];
+ [self openURL:node->GetURL() disposition:NEW_FOREGROUND_TAB];
}
- (IBAction)openBookmarkInNewWindow:(id)sender {
BookmarkNode* node = [self nodeFromMenuItem:sender];
- [urlDelegate_ openBookmarkURL:node->GetURL() disposition:NEW_WINDOW];
+ [self openURL:node->GetURL() disposition:NEW_WINDOW];
}
- (IBAction)openBookmarkInIncognitoWindow:(id)sender {
BookmarkNode* node = [self nodeFromMenuItem:sender];
- [urlDelegate_ openBookmarkURL:node->GetURL() disposition:OFF_THE_RECORD];
+ [self openURL:node->GetURL() disposition:OFF_THE_RECORD];
}
- (IBAction)editBookmark:(id)sender {
@@ -533,14 +541,19 @@
node->GetParent()->IndexOfChild(node));
}
-- (void)openBookmarkNodesRecursive:(BookmarkNode*)node {
+// An ObjC version of bookmark_utils::OpenAllImpl().
+- (void)openBookmarkNodesRecursive:(BookmarkNode*)node
+ disposition:(WindowOpenDisposition)disposition {
for (int i = 0; i < node->GetChildCount(); i++) {
BookmarkNode* child = node->GetChild(i);
- if (child->is_url())
- [urlDelegate_ openBookmarkURL:child->GetURL()
- disposition:NEW_BACKGROUND_TAB];
- else
- [self openBookmarkNodesRecursive:child];
+ if (child->is_url()) {
+ [self openURL:child->GetURL() disposition:disposition];
+ // We revert to a basic disposition in case the initial
+ // disposition opened a new window.
+ disposition = NEW_BACKGROUND_TAB;
+ } else {
+ [self openBookmarkNodesRecursive:child disposition:disposition];
+ }
}
}
@@ -548,9 +561,24 @@
// TODO(jrg):
// Is there an easier way to get a non-const root node for the bookmark bar?
// I can't iterate over them unless it's non-const.
+ BookmarkNode* node = const_cast<BookmarkNode*>(
+ bookmarkModel_->GetBookmarkBarNode());
+ [self openBookmarkNodesRecursive:node disposition:NEW_FOREGROUND_TAB];
+ UserMetrics::RecordAction(L"OpenAllBookmarks", browser_->profile());
+}
+
+- (IBAction)openAllBookmarksNewWindow:(id)sender {
+ BookmarkNode* node = const_cast<BookmarkNode*>(
+ bookmarkModel_->GetBookmarkBarNode());
+ [self openBookmarkNodesRecursive:node disposition:NEW_WINDOW];
+ UserMetrics::RecordAction(L"OpenAllBookmarksNewWindow", browser_->profile());
+}
- BookmarkNode* node = (BookmarkNode*)bookmarkModel_->GetBookmarkBarNode();
- [self openBookmarkNodesRecursive:node];
+- (IBAction)openAllBookmarksIncognitoWindow:(id)sender {
+ BookmarkNode* node = const_cast<BookmarkNode*>(
+ bookmarkModel_->GetBookmarkBarNode());
+ [self openBookmarkNodesRecursive:node disposition:OFF_THE_RECORD];
+ UserMetrics::RecordAction(L"OpenAllBookmarksIncognitoWindow", browser_->profile());
}
// May be called from the bar or from a folder button.
@@ -600,7 +628,10 @@
NSImage* image = [self getFavIconForNode:node];
[cell setBookmarkCellText:title image:image];
- [cell setMenu:buttonContextMenu_];
+ if (node->is_folder())
+ [cell setMenu:[[self view] menu]];
+ else
+ [cell setMenu:buttonContextMenu_];
return cell;
}
@@ -670,7 +701,7 @@
const BookmarkNode* node = bookmarkModel_->GetNodeByID(tag);
WindowOpenDisposition disposition =
event_utils::WindowOpenDispositionFromNSEvent([NSApp currentEvent]);
- [urlDelegate_ openBookmarkURL:node->GetURL() disposition:disposition];
+ [self openURL:node->GetURL() disposition:disposition];
}
// Create buttons for all items in the bookmark node tree.
@@ -880,10 +911,6 @@
[self loaded:model];
}
-- (void)setUrlDelegate:(id<BookmarkURLOpener>)urlDelegate {
- urlDelegate_ = urlDelegate;
-}
-
- (NSArray*)buttons {
return buttons_.get();
}
diff --git a/chrome/browser/cocoa/bookmark_bar_controller_unittest.mm b/chrome/browser/cocoa/bookmark_bar_controller_unittest.mm
index 5f645bf..5bfd58c 100644
--- a/chrome/browser/cocoa/bookmark_bar_controller_unittest.mm
+++ b/chrome/browser/cocoa/bookmark_bar_controller_unittest.mm
@@ -19,17 +19,16 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/platform_test.h"
-// Pretend BookmarkURLOpener delegate to keep track of requests
-@interface BookmarkURLOpenerPong : NSObject<BookmarkURLOpener> {
+// Just like a BookmarkBarController but openURL: is stubbed out.
+@interface BookmarkBarControllerNoOpen : BookmarkBarController {
@public
std::vector<GURL> urls_;
std::vector<WindowOpenDisposition> dispositions_;
}
@end
-@implementation BookmarkURLOpenerPong
-- (void)openBookmarkURL:(const GURL&)url
- disposition:(WindowOpenDisposition)disposition {
+@implementation BookmarkBarControllerNoOpen
+- (void)openURL:(GURL)url disposition:(WindowOpenDisposition)disposition {
urls_.push_back(url);
dispositions_.push_back(disposition);
}
@@ -63,7 +62,7 @@
@end
// Remember the number of times we've gotten a frameDidChange notification.
-@interface BookmarkBarControllerTogglePong : BookmarkBarController {
+@interface BookmarkBarControllerTogglePong : BookmarkBarControllerNoOpen {
@private
int toggles_;
}
@@ -81,7 +80,7 @@
@end
// A BookmarkBarController that always beleives that it's on the new tab page.
-@interface AlwaysNewTabPageBookmarkBarController : BookmarkBarController {
+@interface AlwaysNewTabPageBookmarkBarController : BookmarkBarControllerNoOpen {
}
@end
@@ -122,11 +121,11 @@ class BookmarkBarControllerTest : public PlatformTest {
parent_view_.reset([[NSView alloc] initWithFrame:parent_frame]);
[parent_view_ setHidden:YES];
bar_.reset(
- [[BookmarkBarController alloc] initWithBrowser:helper_.browser()
- initialWidth:NSWidth(parent_frame)
- compressDelegate:compressDelegate_.get()
- resizeDelegate:resizeDelegate_.get()
- urlDelegate:nil]);
+ [[BookmarkBarControllerNoOpen alloc]
+ initWithBrowser:helper_.browser()
+ initialWidth:NSWidth(parent_frame)
+ compressDelegate:compressDelegate_.get()
+ resizeDelegate:resizeDelegate_.get()]);
InstallAndToggleBar(bar_.get());
@@ -173,7 +172,7 @@ class BookmarkBarControllerTest : public PlatformTest {
BrowserTestHelper helper_;
scoped_nsobject<ViewResizerPong> resizeDelegate_;
scoped_nsobject<CompressablePong> compressDelegate_;
- scoped_nsobject<BookmarkBarController> bar_;
+ scoped_nsobject<BookmarkBarControllerNoOpen> bar_;
scoped_nsobject<NSMenu> menu_;
scoped_nsobject<NSMenuItem> menu_item_;
scoped_nsobject<NSButtonCell> cell_;
@@ -220,8 +219,7 @@ TEST_F(BookmarkBarControllerTest, ShowOnNewTabPage) {
initWithBrowser:helper_.browser()
initialWidth:800 // arbitrary
compressDelegate:compressDelegate_.get()
- resizeDelegate:resizeDelegate_.get()
- urlDelegate:nil]);
+ resizeDelegate:resizeDelegate_.get()]);
InstallAndToggleBar(bar.get());
[bar setBookmarkBarEnabled:NO];
@@ -267,8 +265,7 @@ TEST_F(BookmarkBarControllerTest, FrameChangeNotification) {
initWithBrowser:helper_.browser()
initialWidth:100 // arbitrary
compressDelegate:compressDelegate_.get()
- resizeDelegate:resizeDelegate_.get()
- urlDelegate:nil]);
+ resizeDelegate:resizeDelegate_.get()]);
InstallAndToggleBar(bar.get());
// Send a frame did change notification for the pong's view.
@@ -371,9 +368,6 @@ TEST_F(BookmarkBarControllerTest, MenuForFolderNode) {
TEST_F(BookmarkBarControllerTest, OpenBookmark) {
GURL gurl("http://walla.walla.ding.dong.com");
scoped_ptr<BookmarkNode> node(new BookmarkNode(gurl));
- scoped_nsobject<BookmarkURLOpenerPong> pong([[BookmarkURLOpenerPong alloc]
- init]);
- [bar_ setUrlDelegate:pong.get()];
scoped_nsobject<NSButtonCell> cell([[NSButtonCell alloc] init]);
scoped_nsobject<NSButton> button([[NSButton alloc] init]);
@@ -381,19 +375,13 @@ TEST_F(BookmarkBarControllerTest, OpenBookmark) {
[cell setRepresentedObject:[NSValue valueWithPointer:node.get()]];
[bar_ openBookmark:button];
- EXPECT_EQ(pong.get()->urls_[0], node->GetURL());
- EXPECT_EQ(pong.get()->dispositions_[0], CURRENT_TAB);
-
- [bar_ setUrlDelegate:nil];
+ EXPECT_EQ(bar_.get()->urls_[0], node->GetURL());
+ EXPECT_EQ(bar_.get()->dispositions_[0], CURRENT_TAB);
}
// Confirm opening of bookmarks works from the menus (different
// dispositions than clicking on the button).
TEST_F(BookmarkBarControllerTest, OpenBookmarkFromMenus) {
- scoped_nsobject<BookmarkURLOpenerPong> pong([[BookmarkURLOpenerPong alloc]
- init]);
- [bar_ setUrlDelegate:pong.get()];
-
const char* urls[] = { "http://walla.walla.ding.dong.com",
"http://i_dont_know.com",
"http://cee.enn.enn.dot.com" };
@@ -409,11 +397,10 @@ TEST_F(BookmarkBarControllerTest, OpenBookmarkFromMenus) {
GURL gurl(urls[i]);
[bar_ performSelector:selectors[i]
withObject:ItemForBookmarkBarMenu(gurl)];
- EXPECT_EQ(pong.get()->urls_[0], gurl);
- EXPECT_EQ(pong.get()->dispositions_[0], dispositions[i]);
- [pong clear];
+ EXPECT_EQ(bar_.get()->urls_[0], gurl);
+ EXPECT_EQ(bar_.get()->dispositions_[0], dispositions[i]);
+ [bar_ clear];
}
- [bar_ setUrlDelegate:nil];
}
TEST_F(BookmarkBarControllerTest, TestAddRemoveAndClear) {
@@ -535,10 +522,6 @@ TEST_F(BookmarkBarControllerTest, DeleteBookmark) {
}
TEST_F(BookmarkBarControllerTest, OpenAllBookmarks) {
- scoped_nsobject<BookmarkURLOpenerPong> pong([[BookmarkURLOpenerPong alloc]
- init]);
- [bar_ setUrlDelegate:pong.get()];
-
BookmarkModel* model = helper_.profile()->GetBookmarkModel();
const BookmarkNode* parent = model->GetBookmarkBarNode();
// { one, { two-one, two-two }, three }
@@ -555,14 +538,14 @@ TEST_F(BookmarkBarControllerTest, OpenAllBookmarks) {
L"title", GURL("https://three.com"));
[bar_ openAllBookmarks:nil];
- EXPECT_EQ(pong.get()->urls_.size(), 4U);
- EXPECT_EQ(pong.get()->dispositions_.size(), 4U);
+ EXPECT_EQ(bar_.get()->urls_.size(), 4U);
+ EXPECT_EQ(bar_.get()->dispositions_.size(), 4U);
// I can't use EXPECT_EQ() here since the macro can't expand
// properly (no way to print the value of an iterator).
std::vector<GURL>::iterator i;
- std::vector<GURL>::iterator begin = pong.get()->urls_.begin();
- std::vector<GURL>::iterator end = pong.get()->urls_.end();
+ std::vector<GURL>::iterator begin = bar_.get()->urls_.begin();
+ std::vector<GURL>::iterator end = bar_.get()->urls_.end();
i = find(begin, end, GURL("http://two-one.com"));
EXPECT_FALSE(i == end);
i = find(begin, end, GURL("https://three.com"));
@@ -570,9 +553,7 @@ TEST_F(BookmarkBarControllerTest, OpenAllBookmarks) {
i = find(begin, end, GURL("https://will-not-be-found.com"));
EXPECT_TRUE(i == end);
- EXPECT_EQ(pong.get()->dispositions_[3], NEW_BACKGROUND_TAB);
-
- [bar_ setUrlDelegate:nil];
+ EXPECT_EQ(bar_.get()->dispositions_[3], NEW_BACKGROUND_TAB);
}
// TODO(jrg): write a test to confirm that nodeFavIconLoaded calls
@@ -612,12 +593,8 @@ TEST_F(BookmarkBarControllerTest, MiddleClick) {
NSButton* first = [[bar_ buttons] objectAtIndex:0];
EXPECT_TRUE(first);
- scoped_nsobject<BookmarkURLOpenerPong> pong([[BookmarkURLOpenerPong alloc]
- init]);
- [bar_ setUrlDelegate:pong.get()];
[first otherMouseUp:test_event_utils::MakeMouseEvent(NSOtherMouseUp, 0)];
- EXPECT_EQ(pong.get()->urls_.size(), 1U);
- [bar_ setUrlDelegate:nil];
+ EXPECT_EQ(bar_.get()->urls_.size(), 1U);
}
TEST_F(BookmarkBarControllerTest, TestBuildOffTheSideMenu) {
diff --git a/chrome/browser/cocoa/browser_window_controller.h b/chrome/browser/cocoa/browser_window_controller.h
index de3451d..849ba04 100644
--- a/chrome/browser/cocoa/browser_window_controller.h
+++ b/chrome/browser/cocoa/browser_window_controller.h
@@ -44,7 +44,6 @@ class TabStripModelObserverBridge;
@interface BrowserWindowController :
TabWindowController<NSUserInterfaceValidations,
- BookmarkURLOpener,
BookmarkBubbleControllerDelegate,
BrowserCommandExecutor,
ViewResizer,
diff --git a/chrome/browser/cocoa/browser_window_controller.mm b/chrome/browser/cocoa/browser_window_controller.mm
index b9f6026..b3cc20c 100644
--- a/chrome/browser/cocoa/browser_window_controller.mm
+++ b/chrome/browser/cocoa/browser_window_controller.mm
@@ -177,8 +177,7 @@ willPositionSheet:(NSWindow*)sheet
initWithBrowser:browser_.get()
initialWidth:NSWidth([[[self window] contentView] frame])
compressDelegate:toolbarController_.get()
- resizeDelegate:self
- urlDelegate:self]);
+ resizeDelegate:self]);
// Add bookmark bar to the view hierarchy. This also triggers the
// nib load. The bookmark bar is defined (in the nib) to be
@@ -1045,12 +1044,6 @@ willPositionSheet:(NSWindow*)sheet
return savedRegularWindow_ != nil;
}
-// Called by the bookmark bar to open a URL.
-- (void)openBookmarkURL:(const GURL&)url
- disposition:(WindowOpenDisposition)disposition {
- browser_->OpenURL(url, GURL(), disposition, PageTransition::AUTO_BOOKMARK);
-}
-
- (NSInteger)numberOfTabs {
return browser_->tabstrip_model()->count();
}