Moves command handling from Browser to a new object, BrowserCommandController.
Notes:
. BrowserCommandController now owns the CommandUpdater.
. CommandHandler's ExecuteCommand API was massaged a little so that ExecuteCommand/IsCommandEnabled/SupportsCommand methods are always called on it, rather than the wrapping controller.
. The creation of BCC was performed as a svn cp so that history for the various Exec methods could be easily carried forward.
. Various "CanFoo" methods were extracted from the UpdateFooState() methods and moved to CanFoo(const Browser* browser) in browser_commands.
http://crbug.com/133576
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10677009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144597 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/command_updater.h b/chrome/browser/command_updater.h
index 80d8350..3478582 100644
--- a/chrome/browser/command_updater.h
+++ b/chrome/browser/command_updater.h
@@ -10,6 +10,8 @@
#include "base/hash_tables.h"
#include "webkit/glue/window_open_disposition.h"
+class CommandObserver;
+
////////////////////////////////////////////////////////////////////////////////
//
// CommandUpdater class
@@ -48,28 +50,15 @@
// Performs the action associated with this command ID using CURRENT_TAB
// disposition.
- // TODO(beng): get rid of this since it's effectively just a pass-thru and the
- // call sites would be better off using more well defined delegate interfaces.
- void ExecuteCommand(int id);
+ // Returns true if the command was executed (i.e. it is supported and is
+ // enabled).
+ bool ExecuteCommand(int id);
// Performs the action associated with this command ID using the given
// disposition.
- // TODO(altimofeev): refactor the interface to provide more flexible and
- // explicit way for passing command specific arguments. See
- // NotificationDetails class for the possible implementation ideas.
- void ExecuteCommandWithDisposition(int id, WindowOpenDisposition disposition);
-
- // An Observer interface implemented by objects that want to be informed when
- // the state of a particular command ID is modified.
- class CommandObserver {
- public:
- // Notifies the observer that the enabled state has changed for the
- // specified command id.
- virtual void EnabledStateChangedForCommand(int id, bool enabled) = 0;
-
- protected:
- virtual ~CommandObserver();
- };
+ // Returns true if the command was executed (i.e. it is supported and is
+ // enabled).
+ bool ExecuteCommandWithDisposition(int id, WindowOpenDisposition disposition);
// Adds an observer to the state of a particular command. If the command does
// not exist, it is created, initialized to false.