summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorpinkerton@google.com <pinkerton@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-21 22:04:44 +0000
committerpinkerton@google.com <pinkerton@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-21 22:04:44 +0000
commit88d749436bf04c540448065a1601ece53bfdb312 (patch)
tree4be4d6d86a0884932d13efd92a2a18d60a7f962f /chrome
parent1c36b962d877273125d92c4996a136fc1ac7e806 (diff)
downloadchromium_src-88d749436bf04c540448065a1601ece53bfdb312.zip
chromium_src-88d749436bf04c540448065a1601ece53bfdb312.tar.gz
chromium_src-88d749436bf04c540448065a1601ece53bfdb312.tar.bz2
add basic command handling for browser window and for where there are no windows open. Can now create new browser windows.
Review URL: http://codereview.chromium.org/18458 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8387 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/app/nibs/English.lproj/MainMenu.xib24
-rw-r--r--chrome/browser/app_controller_mac.h5
-rw-r--r--chrome/browser/app_controller_mac.mm54
-rw-r--r--chrome/browser/browser.cc16
-rw-r--r--chrome/browser/browser.h7
-rw-r--r--chrome/browser/browser_window_controller.h3
-rw-r--r--chrome/browser/browser_window_controller.mm30
-rw-r--r--chrome/chrome.xcodeproj/project.pbxproj16
-rw-r--r--chrome/common/temp_scaffolding_stubs.cpp7
-rw-r--r--chrome/common/temp_scaffolding_stubs.h10
10 files changed, 147 insertions, 25 deletions
diff --git a/chrome/app/nibs/English.lproj/MainMenu.xib b/chrome/app/nibs/English.lproj/MainMenu.xib
index 8a8d5be..a0d3176 100644
--- a/chrome/app/nibs/English.lproj/MainMenu.xib
+++ b/chrome/app/nibs/English.lproj/MainMenu.xib
@@ -8,7 +8,7 @@
<string key="IBDocument.HIToolboxVersion">352.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="136"/>
+ <integer value="82"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -191,6 +191,7 @@
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="353210768"/>
<reference key="NSMixedImage" ref="549394948"/>
+ <int key="NSTag">34000</int>
</object>
<object class="NSMenuItem" id="603924433">
<reference key="NSMenu" ref="720053764"/>
@@ -1241,6 +1242,14 @@
</object>
<int key="connectionID">489</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">commandDispatch:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="705341025"/>
+ </object>
+ <int key="connectionID">490</int>
+ </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@@ -2468,7 +2477,7 @@
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">489</int>
+ <int key="maxID">490</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -2485,6 +2494,17 @@
<string key="minorKey">browser/app_controller_mac.h</string>
</object>
</object>
+ <object class="IBPartialClassDescription">
+ <string key="className">FirstResponder</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">commandDispatch:</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
diff --git a/chrome/browser/app_controller_mac.h b/chrome/browser/app_controller_mac.h
index 09fa014..db562a3 100644
--- a/chrome/browser/app_controller_mac.h
+++ b/chrome/browser/app_controller_mac.h
@@ -7,11 +7,14 @@
#import <Cocoa/Cocoa.h>
+class CommandUpdater;
+
// The application controller object, created by loading the MainMenu nib.
// This handles things like responding to menus when there are no windows
// open, etc and acts as the NSApplication delegate.
-@interface AppController : NSObject {
+@interface AppController : NSObject<NSUserInterfaceValidations> {
@public
+ CommandUpdater* menuState_; // strong ref
}
- (IBAction)quit:(id)sender;
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm
index 16073d8..f2face3 100644
--- a/chrome/browser/app_controller_mac.mm
+++ b/chrome/browser/app_controller_mac.mm
@@ -5,10 +5,27 @@
#import "app_controller_mac.h"
#import "base/message_loop.h"
+#import "chrome/app/chrome_dll_resource.h"
+#import "chrome/browser/browser.h"
#import "chrome/browser/browser_list.h"
+#import "chrome/browser/command_updater.h"
+
+@interface AppController(PRIVATE)
+- (void)initMenuState;
+@end
@implementation AppController
+- (void)awakeFromNib {
+ // set up the command updater for when there are no windows open
+ [self initMenuState];
+}
+
+- (void)dealloc {
+ delete menuState_;
+ [super dealloc];
+}
+
// We can't use the standard terminate: method because it will abrubptly exit
// the app and leave things on the stack in an unfinalized state. We need to
// post a quit message to our run loop so the stack can gracefully unwind.
@@ -32,5 +49,42 @@
MessageLoopForUI::current()->Quit();
}
+// Called to validate menu items when there are no key windows. All the
+// items we care about have been set with the |commandDispatch:| action and
+// a target of FirstResponder in IB. If it's not one of those, let it
+// continue up the responder chain to be handled elsewhere. We pull out the
+// tag as the cross-platform constant to differentiate and dispatch the
+// various commands.
+- (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item {
+ SEL action = [item action];
+ BOOL enable = NO;
+ if (action == @selector(commandDispatch:)) {
+ NSInteger tag = [item tag];
+ if (menuState_->SupportsCommand(tag))
+ enable = menuState_->IsCommandEnabled(tag) ? YES : NO;
+ } else if (action == @selector(quit:)) {
+ enable = YES;
+ }
+ return enable;
+}
+
+// Called when the user picks a menu item when there are no key windows. Calls
+// through to the browser object to execute the command. This assumes that the
+// command is supported and doesn't check, otherwise it would have been disabled
+// in the UI in validateUserInterfaceItem:.
+- (void)commandDispatch:(id)sender {
+ NSInteger tag = [sender tag];
+ switch (tag) {
+ case IDC_NEW_WINDOW:
+ Browser::OpenEmptyWindow(NULL);
+ break;
+ };
+}
+
+- (void)initMenuState {
+ menuState_ = new CommandUpdater(NULL);
+ menuState_->UpdateCommandEnabled(IDC_NEW_WINDOW, true);
+ // TODO(pinkerton): ...more to come...
+}
@end
diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc
index ddceec2..6691066 100644
--- a/chrome/browser/browser.cc
+++ b/chrome/browser/browser.cc
@@ -6,6 +6,7 @@
#include "base/idle_timer.h"
#include "base/logging.h"
#include "base/string_util.h"
+#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/browser_list.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/pref_service.h"
@@ -22,7 +23,6 @@
#include "chrome/browser/browser.h"
-#include "chrome/app/chrome_dll_resource.h"
#include "chrome/app/locales/locale_settings.h"
#include "chrome/browser/automation/ui_controls.h"
#include "chrome/browser/browser_process.h"
@@ -1070,6 +1070,8 @@ Browser* Browser::GetBrowserForController(
return NULL;
}
+#endif // OS_WIN
+
///////////////////////////////////////////////////////////////////////////////
// Browser, CommandUpdater::CommandUpdaterDelegate implementation:
@@ -1089,6 +1091,7 @@ void Browser::ExecuteCommand(int id) {
// The order of commands in this switch statement must match the function
// declaration order in browser.h!
switch (id) {
+#if defined(OS_WIN)
// Navigation commands
case IDC_BACK: GoBack(); break;
case IDC_FORWARD: GoForward(); break;
@@ -1217,12 +1220,17 @@ void Browser::ExecuteCommand(int id) {
case IDC_ABOUT: OpenAboutChromeDialog(); break;
case IDC_HELP_PAGE: OpenHelpTab(); break;
+#elif defined(OS_MACOSX)
+ case IDC_NEW_WINDOW: NewWindow(); break;
+#endif
default:
LOG(WARNING) << "Received Unimplemented Command: " << id;
break;
}
}
+#if defined(OS_WIN)
+
///////////////////////////////////////////////////////////////////////////////
// Browser, TabStripModelDelegate implementation:
@@ -1884,6 +1892,8 @@ void Browser::Observe(NotificationType type,
}
}
+#endif // OS_WIN
+
///////////////////////////////////////////////////////////////////////////////
// Browser, Command and state updating (private):
@@ -2005,9 +2015,11 @@ void Browser::InitCommandState() {
// Show various bits of UI
command_updater_.UpdateCommandEnabled(IDC_DEVELOPER_MENU, normal_window);
+#if defined(OS_WIN)
command_updater_.UpdateCommandEnabled(IDC_DEBUGGER,
// The debugger doesn't work in single process mode.
normal_window && !RenderProcessHost::run_renderer_in_process());
+#endif
command_updater_.UpdateCommandEnabled(IDC_NEW_PROFILE, normal_window);
command_updater_.UpdateCommandEnabled(IDC_REPORT_BUG, normal_window);
command_updater_.UpdateCommandEnabled(IDC_SHOW_BOOKMARK_BAR, normal_window);
@@ -2022,6 +2034,8 @@ void Browser::InitCommandState() {
}
}
+#if defined(OS_WIN)
+
void Browser::UpdateCommandsForTabState() {
TabContents* current_tab = GetSelectedTabContents();
if (!current_tab) // May be NULL during tab restore.
diff --git a/chrome/browser/browser.h b/chrome/browser/browser.h
index 3157e5a..cd53a18 100644
--- a/chrome/browser/browser.h
+++ b/chrome/browser/browser.h
@@ -16,6 +16,7 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_window.h"
+#include "chrome/browser/command_updater.h"
#include "chrome/browser/sessions/session_id.h"
#include "chrome/common/notification_service.h"
#include "chrome/common/pref_member.h"
@@ -23,7 +24,6 @@
#include "skia/include/SkBitmap.h"
#if defined(OS_WIN)
-#include "chrome/browser/command_updater.h"
#include "chrome/browser/shell_dialogs.h"
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/tab_contents/tab_contents_delegate.h"
@@ -238,9 +238,10 @@ class Browser : public TabStripModelDelegate,
void OpenCurrentURL();
void Go();
void Stop();
-
+#endif
// Window management commands
void NewWindow();
+#if defined(OS_WIN)
void NewIncognitoWindow();
void NewProfileWindowByIndex(int index);
void CloseWindow();
@@ -320,10 +321,12 @@ class Browser : public TabStripModelDelegate,
const NavigationController* controller, int* index);
// Interface implementations ////////////////////////////////////////////////
+#endif
// Overridden from CommandUpdater::CommandUpdaterDelegate:
virtual void ExecuteCommand(int id);
+#if defined(OS_WIN)
// Overridden from TabStripModelDelegate:
virtual GURL GetBlankTabURL() const;
virtual void CreateNewStripWithContents(TabContents* detached_contents,
diff --git a/chrome/browser/browser_window_controller.h b/chrome/browser/browser_window_controller.h
index 7ae2bd0..9d99a2e 100644
--- a/chrome/browser/browser_window_controller.h
+++ b/chrome/browser/browser_window_controller.h
@@ -13,7 +13,8 @@
class Browser;
class BrowserWindow;
-@interface BrowserWindowController : NSWindowController {
+@interface BrowserWindowController :
+ NSWindowController<NSUserInterfaceValidations> {
@private
Browser* browser_; // strong
BrowserWindow* window_shim_; // strong
diff --git a/chrome/browser/browser_window_controller.mm b/chrome/browser/browser_window_controller.mm
index c5e4abc..bb5b9cc 100644
--- a/chrome/browser/browser_window_controller.mm
+++ b/chrome/browser/browser_window_controller.mm
@@ -58,6 +58,36 @@
return YES;
}
+// Called to validate menu and toolbar items when this window is key. All the
+// items we care about have been set with the |commandDispatch:| action and
+// a target of FirstResponder in IB. If it's not one of those, let it
+// continue up the responder chain to be handled elsewhere. We pull out the
+// tag as the cross-platform constant to differentiate and dispatch the
+// various commands.
+// NOTE: we might have to handle state for app-wide menu items,
+// although we could cheat and directly ask the app controller if our
+// command_updater doesn't support the command. This may or may not be an issue,
+// too early to tell.
+- (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item {
+ SEL action = [item action];
+ BOOL enable = NO;
+ if (action == @selector(commandDispatch:)) {
+ NSInteger tag = [item tag];
+ if (browser_->command_updater()->SupportsCommand(tag))
+ enable = browser_->command_updater()->IsCommandEnabled(tag) ? YES : NO;
+ }
+ return enable;
+}
+
+// Called when the user picks a menu or toolbar item when this window is key.
+// Calls through to the browser object to execute the command. This assumes that
+// the command is supported and doesn't check, otherwise it would have been
+// disabled in the UI in validateUserInterfaceItem:.
+- (void)commandDispatch:(id)sender {
+ NSInteger tag = [sender tag];
+ browser_->ExecuteCommand(tag);
+}
+
// NSToolbar delegate methods
- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar {
diff --git a/chrome/chrome.xcodeproj/project.pbxproj b/chrome/chrome.xcodeproj/project.pbxproj
index d9d105c..cecc5bc 100644
--- a/chrome/chrome.xcodeproj/project.pbxproj
+++ b/chrome/chrome.xcodeproj/project.pbxproj
@@ -308,6 +308,8 @@
E46C4B4C0F21098F00B393B8 /* worker_thread_ticker_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = E46C4B4B0F21098F00B393B8 /* worker_thread_ticker_unittest.cc */; };
E46C4C2E0F212CAF00B393B8 /* browser.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D7BF8300E9D4839009A6919 /* browser.cc */; };
E46C4D0F0F2138D400B393B8 /* browser_list.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D7BF83C0E9D4839009A6919 /* browser_list.cc */; };
+ E46C4ED40F27A94100B393B8 /* command_updater.cc in Sources */ = {isa = PBXBuildFile; fileRef = E46C4ED30F27A94100B393B8 /* command_updater.cc */; };
+ E46C4EF30F27A9B000B393B8 /* command_updater_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = E46C4EF20F27A9B000B393B8 /* command_updater_unittest.cc */; };
E48B66A80F26257E002E47EC /* libnet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D7B004E0E9D5464009A6919 /* libnet.a */; };
E48B67320F2625B8002E47EC /* libgoogleurl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D7BFF6E0E9D540F009A6919 /* libgoogleurl.a */; };
E48B67CB0F262607002E47EC /* libmodp_b64.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D7B005D0E9D54AA009A6919 /* libmodp_b64.a */; };
@@ -1105,9 +1107,6 @@
4D7BF85F0E9D4839009A6919 /* chrome_thread.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = chrome_thread.cc; sourceTree = "<group>"; };
4D7BF8600E9D4839009A6919 /* chrome_thread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chrome_thread.h; sourceTree = "<group>"; };
4D7BF8610E9D4839009A6919 /* chrome_thread_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = chrome_thread_unittest.cc; sourceTree = "<group>"; };
- 4D7BF8630E9D4839009A6919 /* controller.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = controller.cc; sourceTree = "<group>"; };
- 4D7BF8640E9D4839009A6919 /* controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = controller.h; sourceTree = "<group>"; };
- 4D7BF8650E9D4839009A6919 /* controller_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = controller_unittest.cc; sourceTree = "<group>"; };
4D7BF8660E9D4839009A6919 /* crash_recovery_uitest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = crash_recovery_uitest.cc; sourceTree = "<group>"; };
4D7BF8670E9D4839009A6919 /* cross_site_request_manager.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cross_site_request_manager.cc; sourceTree = "<group>"; };
4D7BF8680E9D4839009A6919 /* cross_site_request_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cross_site_request_manager.h; sourceTree = "<group>"; };
@@ -1787,6 +1786,9 @@
E46C46C30F1F9AE200B393B8 /* temp_scaffolding_stubs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = temp_scaffolding_stubs.h; sourceTree = "<group>"; };
E46C46C40F1F9AE200B393B8 /* temp_scaffolding_stubs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = temp_scaffolding_stubs.cpp; sourceTree = "<group>"; };
E46C4B4B0F21098F00B393B8 /* worker_thread_ticker_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = worker_thread_ticker_unittest.cc; sourceTree = "<group>"; };
+ E46C4ED20F27A94100B393B8 /* command_updater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = command_updater.h; sourceTree = "<group>"; };
+ E46C4ED30F27A94100B393B8 /* command_updater.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = command_updater.cc; sourceTree = "<group>"; };
+ E46C4EF20F27A9B000B393B8 /* command_updater_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = command_updater_unittest.cc; sourceTree = "<group>"; };
E48B684C0F2630D3002E47EC /* browser_window_factory.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = browser_window_factory.mm; sourceTree = "<group>"; };
E48B68550F26330C002E47EC /* browser_window_controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = browser_window_controller.h; sourceTree = "<group>"; };
E48B68560F26330C002E47EC /* browser_window_controller.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = browser_window_controller.mm; sourceTree = "<group>"; };
@@ -2183,9 +2185,9 @@
4D7BF85F0E9D4839009A6919 /* chrome_thread.cc */,
4D7BF8600E9D4839009A6919 /* chrome_thread.h */,
4D7BF8610E9D4839009A6919 /* chrome_thread_unittest.cc */,
- 4D7BF8630E9D4839009A6919 /* controller.cc */,
- 4D7BF8640E9D4839009A6919 /* controller.h */,
- 4D7BF8650E9D4839009A6919 /* controller_unittest.cc */,
+ E46C4EF20F27A9B000B393B8 /* command_updater_unittest.cc */,
+ E46C4ED20F27A94100B393B8 /* command_updater.h */,
+ E46C4ED30F27A94100B393B8 /* command_updater.cc */,
4D7BF8660E9D4839009A6919 /* crash_recovery_uitest.cc */,
4D7BF8670E9D4839009A6919 /* cross_site_request_manager.cc */,
4D7BF8680E9D4839009A6919 /* cross_site_request_manager.h */,
@@ -3849,6 +3851,7 @@
E43A771C0F1661AF00ABD5D1 /* chrome_url_data_manager.cc in Sources */,
E43A77110F16613700ABD5D1 /* chrome_url_request_context.cc in Sources */,
4D7BFAEF0E9D49E7009A6919 /* chunk_range.cc in Sources */,
+ E46C4ED40F27A94100B393B8 /* command_updater.cc in Sources */,
4D7BF9970E9D4863009A6919 /* cross_site_request_manager.cc in Sources */,
4D7BFA7C0E9D4994009A6919 /* dns_host_info.cc in Sources */,
E4F324550EE5CFB1002533CE /* download_database.cc in Sources */,
@@ -3935,6 +3938,7 @@
4D7BFCE10E9D4DC8009A6919 /* bzip2_unittest.cc in Sources */,
4D7BFB350E9D4C18009A6919 /* chrome_thread_unittest.cc in Sources */,
4D7BFB710E9D4C55009A6919 /* chunk_range_unittest.cc in Sources */,
+ E46C4EF30F27A9B000B393B8 /* command_updater_unittest.cc in Sources */,
4D7BFB510E9D4C3E009A6919 /* dns_host_info_unittest.cc in Sources */,
E4F324950EE5D758002533CE /* extension_unittest.cc in Sources */,
A54612DC0EE9958600A8EE5D /* extensions_service_unittest.cc in Sources */,
diff --git a/chrome/common/temp_scaffolding_stubs.cpp b/chrome/common/temp_scaffolding_stubs.cpp
index 3517c4f..bdfec42 100644
--- a/chrome/common/temp_scaffolding_stubs.cpp
+++ b/chrome/common/temp_scaffolding_stubs.cpp
@@ -212,9 +212,6 @@ void InstallJankometer(const CommandLine&) {
//--------------------------------------------------------------------------
-void Browser::InitCommandState() {
-}
-
void Browser::Observe(NotificationType type,
const NotificationSource& source,
const NotificationDetails& details) {
@@ -223,3 +220,7 @@ void Browser::Observe(NotificationType type,
LocationBarView* Browser::GetLocationBarView() const {
return window_->GetLocationBarView();
}
+
+void Browser::NewWindow() {
+ Browser::OpenEmptyWindow(NULL);
+}
diff --git a/chrome/common/temp_scaffolding_stubs.h b/chrome/common/temp_scaffolding_stubs.h
index 712ca0d..428cfb2 100644
--- a/chrome/common/temp_scaffolding_stubs.h
+++ b/chrome/common/temp_scaffolding_stubs.h
@@ -176,6 +176,7 @@ class Profile {
SessionService* GetSessionService() { return NULL; }
bool IsOffTheRecord() { return false; }
URLRequestContext* GetRequestContext() { return NULL; }
+ virtual Profile* GetOriginalProfile() { return this; }
private:
std::wstring GetPrefFilePath();
@@ -280,15 +281,6 @@ class TabStripModel {
scoped_ptr<TabContents> contents_;
};
-class CommandUpdater {
- public:
- class CommandUpdaterDelegate {
- public:
- };
-
- CommandUpdater(CommandUpdaterDelegate* const) { }
-};
-
class SelectFileDialog : public base::RefCountedThreadSafe<SelectFileDialog> {
public:
class Listener {