Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(176)

Side by Side Diff: chrome/browser/ui/browser.h

Issue 10677009: Move command handling and updating off Browser and onto a helper object. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_UI_BROWSER_H_ 5 #ifndef CHROME_BROWSER_UI_BROWSER_H_
6 #define CHROME_BROWSER_UI_BROWSER_H_ 6 #define CHROME_BROWSER_UI_BROWSER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
11 #include <string> 11 #include <string>
12 #include <vector> 12 #include <vector>
13 13
14 #include "base/basictypes.h" 14 #include "base/basictypes.h"
15 #include "base/compiler_specific.h" 15 #include "base/compiler_specific.h"
16 #include "base/gtest_prod_util.h" 16 #include "base/gtest_prod_util.h"
17 #include "base/memory/scoped_ptr.h" 17 #include "base/memory/scoped_ptr.h"
18 #include "base/memory/weak_ptr.h" 18 #include "base/memory/weak_ptr.h"
19 #include "base/string16.h" 19 #include "base/string16.h"
20 #include "chrome/browser/command_updater.h"
21 #include "chrome/browser/debugger/devtools_toggle_action.h" 20 #include "chrome/browser/debugger/devtools_toggle_action.h"
22 #include "chrome/browser/event_disposition.h" 21 #include "chrome/browser/event_disposition.h"
23 #include "chrome/browser/extensions/extension_tab_helper_delegate.h" 22 #include "chrome/browser/extensions/extension_tab_helper_delegate.h"
24 #include "chrome/browser/instant/instant_delegate.h" 23 #include "chrome/browser/instant/instant_delegate.h"
25 #include "chrome/browser/prefs/pref_change_registrar.h" 24 #include "chrome/browser/prefs/pref_change_registrar.h"
26 #include "chrome/browser/prefs/pref_member.h" 25 #include "chrome/browser/prefs/pref_member.h"
27 #include "chrome/browser/sessions/session_id.h" 26 #include "chrome/browser/sessions/session_id.h"
28 #include "chrome/browser/sessions/tab_restore_service_observer.h"
29 #include "chrome/browser/sync/profile_sync_service_observer.h"
30 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper_delegate. h" 27 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper_delegate. h"
31 #include "chrome/browser/ui/bookmarks/bookmark_bar.h" 28 #include "chrome/browser/ui/bookmarks/bookmark_bar.h"
32 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper_delegate.h" 29 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper_delegate.h"
33 #include "chrome/browser/ui/browser_navigator.h" 30 #include "chrome/browser/ui/browser_navigator.h"
34 #include "chrome/browser/ui/constrained_window_tab_helper_delegate.h" 31 #include "chrome/browser/ui/constrained_window_tab_helper_delegate.h"
35 #include "chrome/browser/ui/fullscreen_exit_bubble_type.h" 32 #include "chrome/browser/ui/fullscreen_exit_bubble_type.h"
36 #include "chrome/browser/ui/search_engines/search_engine_tab_helper_delegate.h" 33 #include "chrome/browser/ui/search_engines/search_engine_tab_helper_delegate.h"
37 #include "chrome/browser/ui/select_file_dialog.h" 34 #include "chrome/browser/ui/select_file_dialog.h"
38 #include "chrome/browser/ui/tab_contents/core_tab_helper_delegate.h" 35 #include "chrome/browser/ui/tab_contents/core_tab_helper_delegate.h"
39 #include "chrome/browser/ui/tabs/tab_strip_model_delegate.h" 36 #include "chrome/browser/ui/tabs/tab_strip_model_delegate.h"
(...skipping 23 matching lines...) Expand all
63 class InstantUnloadHandler; 60 class InstantUnloadHandler;
64 class PrefService; 61 class PrefService;
65 class Profile; 62 class Profile;
66 class SkBitmap; 63 class SkBitmap;
67 class StatusBubble; 64 class StatusBubble;
68 class TabNavigation; 65 class TabNavigation;
69 class TabStripModel; 66 class TabStripModel;
70 struct WebApplicationInfo; 67 struct WebApplicationInfo;
71 68
72 namespace chrome { 69 namespace chrome {
70 class BrowserCommandController;
73 namespace search { 71 namespace search {
74 class SearchDelegate; 72 class SearchDelegate;
75 class SearchModel; 73 class SearchModel;
76 } 74 }
77 } 75 }
78 76
79 namespace content { 77 namespace content {
80 class NavigationController; 78 class NavigationController;
81 class SessionStorageNamespace; 79 class SessionStorageNamespace;
82 } 80 }
(...skipping 18 matching lines...) Expand all
101 public TabStripModelObserver, 99 public TabStripModelObserver,
102 public content::WebContentsDelegate, 100 public content::WebContentsDelegate,
103 public CoreTabHelperDelegate, 101 public CoreTabHelperDelegate,
104 public SearchEngineTabHelperDelegate, 102 public SearchEngineTabHelperDelegate,
105 public ConstrainedWindowTabHelperDelegate, 103 public ConstrainedWindowTabHelperDelegate,
106 public BlockedContentTabHelperDelegate, 104 public BlockedContentTabHelperDelegate,
107 public BookmarkTabHelperDelegate, 105 public BookmarkTabHelperDelegate,
108 public ZoomObserver, 106 public ZoomObserver,
109 public ExtensionTabHelperDelegate, 107 public ExtensionTabHelperDelegate,
110 public content::PageNavigator, 108 public content::PageNavigator,
111 public CommandUpdater::CommandUpdaterDelegate,
112 public content::NotificationObserver, 109 public content::NotificationObserver,
113 public SelectFileDialog::Listener, 110 public SelectFileDialog::Listener,
114 public TabRestoreServiceObserver,
115 public ProfileSyncServiceObserver,
116 public InstantDelegate { 111 public InstantDelegate {
117 public: 112 public:
118 // SessionService::WindowType mirrors these values. If you add to this 113 // SessionService::WindowType mirrors these values. If you add to this
119 // enum, look at SessionService::WindowType to see if it needs to be 114 // enum, look at SessionService::WindowType to see if it needs to be
120 // updated. 115 // updated.
121 enum Type { 116 enum Type {
122 // If you add a new type, consider updating the test 117 // If you add a new type, consider updating the test
123 // BrowserTest.StartMaximized. 118 // BrowserTest.StartMaximized.
124 TYPE_TABBED = 1, 119 TYPE_TABBED = 1,
125 TYPE_POPUP = 2, 120 TYPE_POPUP = 2,
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 gfx::Rect override_bounds() const { return override_bounds_; } 259 gfx::Rect override_bounds() const { return override_bounds_; }
265 260
266 // Returns the InstantController or NULL if there is no InstantController for 261 // Returns the InstantController or NULL if there is no InstantController for
267 // this Browser. 262 // this Browser.
268 InstantController* instant() const { return instant_.get(); } 263 InstantController* instant() const { return instant_.get(); }
269 264
270 // |window()| will return NULL if called before |CreateBrowserWindow()| 265 // |window()| will return NULL if called before |CreateBrowserWindow()|
271 // is done. 266 // is done.
272 BrowserWindow* window() const { return window_; } 267 BrowserWindow* window() const { return window_; }
273 ToolbarModel* toolbar_model() { return toolbar_model_.get(); } 268 ToolbarModel* toolbar_model() { return toolbar_model_.get(); }
269 const ToolbarModel* toolbar_model() const { return toolbar_model_.get(); }
270 chrome::BrowserCommandController* command_controller() {
271 return command_controller_.get();
272 }
274 chrome::search::SearchModel* search_model() { return search_model_.get(); } 273 chrome::search::SearchModel* search_model() { return search_model_.get(); }
275 const SessionID& session_id() const { return session_id_; } 274 const SessionID& session_id() const { return session_id_; }
276 CommandUpdater* command_updater() { return &command_updater_; }
277 bool block_command_execution() const { return block_command_execution_; }
278 BrowserContentSettingBubbleModelDelegate* 275 BrowserContentSettingBubbleModelDelegate*
279 content_setting_bubble_model_delegate() { 276 content_setting_bubble_model_delegate() {
280 return content_setting_bubble_model_delegate_.get(); 277 return content_setting_bubble_model_delegate_.get();
281 } 278 }
282 BrowserTabRestoreServiceDelegate* tab_restore_service_delegate() { 279 BrowserTabRestoreServiceDelegate* tab_restore_service_delegate() {
283 return tab_restore_service_delegate_.get(); 280 return tab_restore_service_delegate_.get();
284 } 281 }
285 BrowserSyncedWindowDelegate* synced_window_delegate() { 282 BrowserSyncedWindowDelegate* synced_window_delegate() {
286 return synced_window_delegate_.get(); 283 return synced_window_delegate_.get();
287 } 284 }
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 bool user_gesture); 491 bool user_gesture);
495 492
496 // Helper function to handle find results. 493 // Helper function to handle find results.
497 static void FindReplyHelper(content::WebContents* web_contents, 494 static void FindReplyHelper(content::WebContents* web_contents,
498 int request_id, 495 int request_id,
499 int number_of_matches, 496 int number_of_matches,
500 const gfx::Rect& selection_rect, 497 const gfx::Rect& selection_rect,
501 int active_match_ordinal, 498 int active_match_ordinal,
502 bool final_update); 499 bool final_update);
503 500
504 // Calls ExecuteCommandWithDisposition with CURRENT_TAB disposition.
505 void ExecuteCommand(int id);
506
507 // Calls ExecuteCommandWithDisposition with the given event flags.
508 void ExecuteCommand(int id, int event_flags);
509
510 // Executes a command if it's enabled.
511 // Returns true if the command is executed.
512 bool ExecuteCommandIfEnabled(int id);
513
514 // Returns true if |command_id| is a reserved command whose keyboard shortcuts
515 // should not be sent to the renderer or |event| was triggered by a key that
516 // we never want to send to the renderer.
517 bool IsReservedCommandOrKey(int command_id,
518 const content::NativeWebKeyboardEvent& event);
519
520 // Sets if command execution shall be blocked. If |block| is true then
521 // following calls to ExecuteCommand() or ExecuteCommandWithDisposition()
522 // method will not execute the command, and the last blocked command will be
523 // recorded for retrieval.
524 void SetBlockCommandExecution(bool block);
525
526 // Gets the last blocked command after calling SetBlockCommandExecution(true).
527 // Returns the command id or -1 if there is no command blocked. The
528 // disposition type of the command will be stored in |*disposition| if it's
529 // not null.
530 int GetLastBlockedCommand(WindowOpenDisposition* disposition);
531
532 // Called by browser::Navigate() when a navigation has occurred in a tab in 501 // Called by browser::Navigate() when a navigation has occurred in a tab in
533 // this Browser. Updates the UI for the start of this navigation. 502 // this Browser. Updates the UI for the start of this navigation.
534 void UpdateUIForNavigationInTab(TabContents* contents, 503 void UpdateUIForNavigationInTab(TabContents* contents,
535 content::PageTransition transition, 504 content::PageTransition transition,
536 bool user_initiated); 505 bool user_initiated);
537 506
538 // Interface implementations //////////////////////////////////////////////// 507 // Interface implementations ////////////////////////////////////////////////
539 508
540 // Overridden from content::PageNavigator: 509 // Overridden from content::PageNavigator:
541 virtual content::WebContents* OpenURL( 510 virtual content::WebContents* OpenURL(
542 const content::OpenURLParams& params) OVERRIDE; 511 const content::OpenURLParams& params) OVERRIDE;
543 512
544 // Overridden from CommandUpdater::CommandUpdaterDelegate:
545 virtual void ExecuteCommandWithDisposition(
546 int id,
547 WindowOpenDisposition disposition) OVERRIDE;
548
549 // Overridden from TabRestoreServiceObserver:
550 virtual void TabRestoreServiceChanged(TabRestoreService* service) OVERRIDE;
551 virtual void TabRestoreServiceDestroyed(TabRestoreService* service) OVERRIDE;
552
553 // Centralized method for creating a TabContents, configuring and 513 // Centralized method for creating a TabContents, configuring and
554 // installing all its supporting objects and observers. 514 // installing all its supporting objects and observers.
555 static TabContents* TabContentsFactory( 515 static TabContents* TabContentsFactory(
556 Profile* profile, 516 Profile* profile,
557 content::SiteInstance* site_instance, 517 content::SiteInstance* site_instance,
558 int routing_id, 518 int routing_id,
559 const content::WebContents* base_web_contents, 519 const content::WebContents* base_web_contents,
560 content::SessionStorageNamespace* session_storage_namespace); 520 content::SessionStorageNamespace* session_storage_namespace);
561 521
562 // Overridden from TabStripModelDelegate: 522 // Overridden from TabStripModelDelegate:
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 // Change is the result of the bookmark bar pref changing. 662 // Change is the result of the bookmark bar pref changing.
703 BOOKMARK_BAR_STATE_CHANGE_PREF_CHANGE, 663 BOOKMARK_BAR_STATE_CHANGE_PREF_CHANGE,
704 664
705 // Change is the result of a state change in the active tab. 665 // Change is the result of a state change in the active tab.
706 BOOKMARK_BAR_STATE_CHANGE_TAB_STATE, 666 BOOKMARK_BAR_STATE_CHANGE_TAB_STATE,
707 667
708 // Change is the result of window toggling in/out of fullscreen mode. 668 // Change is the result of window toggling in/out of fullscreen mode.
709 BOOKMARK_BAR_STATE_CHANGE_TOGGLE_FULLSCREEN, 669 BOOKMARK_BAR_STATE_CHANGE_TOGGLE_FULLSCREEN,
710 }; 670 };
711 671
712 enum FullScreenMode {
713 // Not in fullscreen mode.
714 FULLSCREEN_DISABLED,
715
716 // Fullscreen mode, occupying the whole screen.
717 FULLSCREEN_NORMAL,
718
719 // Fullscreen mode for metro snap, occupying the full height and 20% of
720 // the screen width.
721 FULLSCREEN_METRO_SNAP,
722 };
723
724 // Overridden from content::WebContentsDelegate: 672 // Overridden from content::WebContentsDelegate:
725 virtual content::WebContents* OpenURLFromTab( 673 virtual content::WebContents* OpenURLFromTab(
726 content::WebContents* source, 674 content::WebContents* source,
727 const content::OpenURLParams& params) OVERRIDE; 675 const content::OpenURLParams& params) OVERRIDE;
728 virtual void NavigationStateChanged(const content::WebContents* source, 676 virtual void NavigationStateChanged(const content::WebContents* source,
729 unsigned changed_flags) OVERRIDE; 677 unsigned changed_flags) OVERRIDE;
730 virtual void AddNewContents(content::WebContents* source, 678 virtual void AddNewContents(content::WebContents* source,
731 content::WebContents* new_contents, 679 content::WebContents* new_contents,
732 WindowOpenDisposition disposition, 680 WindowOpenDisposition disposition,
733 const gfx::Rect& initial_pos, 681 const gfx::Rect& initial_pos,
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
879 // Overridden from SelectFileDialog::Listener: 827 // Overridden from SelectFileDialog::Listener:
880 virtual void FileSelected(const FilePath& path, 828 virtual void FileSelected(const FilePath& path,
881 int index, 829 int index,
882 void* params) OVERRIDE; 830 void* params) OVERRIDE;
883 831
884 // Overridden from content::NotificationObserver: 832 // Overridden from content::NotificationObserver:
885 virtual void Observe(int type, 833 virtual void Observe(int type,
886 const content::NotificationSource& source, 834 const content::NotificationSource& source,
887 const content::NotificationDetails& details) OVERRIDE; 835 const content::NotificationDetails& details) OVERRIDE;
888 836
889 // Overridden from ProfileSyncServiceObserver:
890 virtual void OnStateChanged() OVERRIDE;
891
892 // Overriden from InstantDelegate: 837 // Overriden from InstantDelegate:
893 virtual void ShowInstant(TabContents* preview_contents) OVERRIDE; 838 virtual void ShowInstant(TabContents* preview_contents) OVERRIDE;
894 virtual void HideInstant() OVERRIDE; 839 virtual void HideInstant() OVERRIDE;
895 virtual void CommitInstant(TabContents* preview_contents) OVERRIDE; 840 virtual void CommitInstant(TabContents* preview_contents) OVERRIDE;
896 virtual void SetSuggestedText(const string16& text, 841 virtual void SetSuggestedText(const string16& text,
897 InstantCompleteBehavior behavior) OVERRIDE; 842 InstantCompleteBehavior behavior) OVERRIDE;
898 virtual gfx::Rect GetInstantBounds() OVERRIDE; 843 virtual gfx::Rect GetInstantBounds() OVERRIDE;
899 virtual void InstantPreviewFocused() OVERRIDE; 844 virtual void InstantPreviewFocused() OVERRIDE;
900 virtual TabContents* GetInstantHostTabContents() const OVERRIDE; 845 virtual TabContents* GetInstantHostTabContents() const OVERRIDE;
901 846
902 // Command and state updating /////////////////////////////////////////////// 847 // Command and state updating ///////////////////////////////////////////////
903 848
904 // Returns true if the regular Chrome UI (not the fullscreen one and
905 // not the single-tab one) is shown. Used for updating window command states
906 // only. Consider using SupportsWindowFeature if you need the mentioned
907 // functionality anywhere else.
908 bool IsShowingMainUI(bool is_fullscreen);
909
910 // Initialize state for all browser commands.
911 void InitCommandState();
912
913 // Update commands whose state depends on incognito mode availability.
914 void UpdateCommandsForIncognitoAvailability();
915
916 // Update commands whose state depends on the tab's state.
917 void UpdateCommandsForTabState();
918
919 // Updates commands when the content's restrictions change.
920 void UpdateCommandsForContentRestrictionState();
921
922 // Updates commands for enabling developer tools.
923 void UpdateCommandsForDevTools();
924
925 // Updates commands for bookmark editing.
926 void UpdateCommandsForBookmarkEditing();
927
928 // Updates commands that affect the bookmark bar.
929 void UpdateCommandsForBookmarkBar();
930
931 // Set the preference that indicates that the home page has been changed. 849 // Set the preference that indicates that the home page has been changed.
932 void MarkHomePageAsChanged(PrefService* pref_service); 850 void MarkHomePageAsChanged(PrefService* pref_service);
933 851
934 // Update commands whose state depends on the type of fullscreen mode the
935 // window is in.
936 void UpdateCommandsForFullscreenMode(FullScreenMode fullscreen_mode);
937
938 // Update commands whose state depends on whether multiple profiles are
939 // allowed.
940 void UpdateCommandsForMultipleProfiles();
941
942 // Updates the printing command state.
943 void UpdatePrintingState(int content_restrictions);
944
945 // Updates the save-page-as command state.
946 void UpdateSaveAsState(int content_restrictions);
947
948 // Updates the open-file state (Mac Only).
949 void UpdateOpenFileState();
950
951 // Ask the Reload/Stop button to change its icon, and update the Stop command
952 // state. |is_loading| is true if the current WebContents is loading.
953 // |force| is true if the button should change its icon immediately.
954 void UpdateReloadStopState(bool is_loading, bool force);
955
956 // UI update coalescing and handling //////////////////////////////////////// 852 // UI update coalescing and handling ////////////////////////////////////////
957 853
958 // Asks the toolbar (and as such the location bar) to update its state to 854 // Asks the toolbar (and as such the location bar) to update its state to
959 // reflect the current tab's current URL, security state, etc. 855 // reflect the current tab's current URL, security state, etc.
960 // If |should_restore_state| is true, we're switching (back?) to this tab and 856 // If |should_restore_state| is true, we're switching (back?) to this tab and
961 // should restore any previous location bar state (such as user editing) as 857 // should restore any previous location bar state (such as user editing) as
962 // well. 858 // well.
963 void UpdateToolbar(bool should_restore_state); 859 void UpdateToolbar(bool should_restore_state);
964 860
965 // Updates the browser's search model with the tab's search model. 861 // Updates the browser's search model with the tab's search model.
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
1067 // Implementation of SupportsWindowFeature and CanSupportWindowFeature. If 963 // Implementation of SupportsWindowFeature and CanSupportWindowFeature. If
1068 // |check_fullscreen| is true, the set of features reflect the actual state of 964 // |check_fullscreen| is true, the set of features reflect the actual state of
1069 // the browser, otherwise the set of features reflect the possible state of 965 // the browser, otherwise the set of features reflect the possible state of
1070 // the browser. 966 // the browser.
1071 bool SupportsWindowFeatureImpl(WindowFeature feature, 967 bool SupportsWindowFeatureImpl(WindowFeature feature,
1072 bool check_fullscreen) const; 968 bool check_fullscreen) const;
1073 969
1074 // If this browser should have instant one is created, otherwise does nothing. 970 // If this browser should have instant one is created, otherwise does nothing.
1075 void CreateInstantIfNecessary(); 971 void CreateInstantIfNecessary();
1076 972
1077 // Retrieves the content restrictions for the currently selected tab.
1078 // Returns 0 if no tab selected, which is equivalent to no content
1079 // restrictions active.
1080 int GetContentRestrictionsForSelectedTab();
1081
1082 // Resets |bookmark_bar_state_| based on the active tab. Notifies the 973 // Resets |bookmark_bar_state_| based on the active tab. Notifies the
1083 // BrowserWindow if necessary. 974 // BrowserWindow if necessary.
1084 void UpdateBookmarkBarState(BookmarkBarStateChangeReason reason); 975 void UpdateBookmarkBarState(BookmarkBarStateChangeReason reason);
1085 976
1086 // Creates a BackgroundContents if appropriate; return true if one was 977 // Creates a BackgroundContents if appropriate; return true if one was
1087 // created. 978 // created.
1088 bool MaybeCreateBackgroundContents(int route_id, 979 bool MaybeCreateBackgroundContents(int route_id,
1089 content::WebContents* opener_web_contents, 980 content::WebContents* opener_web_contents,
1090 const string16& frame_name, 981 const string16& frame_name,
1091 const GURL& target_url); 982 const GURL& target_url);
1092 983
1093 // Data members ///////////////////////////////////////////////////////////// 984 // Data members /////////////////////////////////////////////////////////////
1094 985
1095 content::NotificationRegistrar registrar_; 986 content::NotificationRegistrar registrar_;
1096 987
1097 PrefChangeRegistrar profile_pref_registrar_; 988 PrefChangeRegistrar profile_pref_registrar_;
1098 989
1099 PrefChangeRegistrar local_pref_registrar_;
1100
1101 // This Browser's type. 990 // This Browser's type.
1102 const Type type_; 991 const Type type_;
1103 992
1104 // This Browser's profile. 993 // This Browser's profile.
1105 Profile* const profile_; 994 Profile* const profile_;
1106 995
1107 // This Browser's window. 996 // This Browser's window.
1108 BrowserWindow* window_; 997 BrowserWindow* window_;
1109 998
1110 scoped_ptr<TabStripModel> tab_strip_model_; 999 scoped_ptr<TabStripModel> tab_strip_model_;
1111 1000
1112 // The CommandUpdater that manages the browser window commands.
1113 CommandUpdater command_updater_;
1114
1115 // The application name that is also the name of the window to the shell. 1001 // The application name that is also the name of the window to the shell.
1116 // This name should be set when: 1002 // This name should be set when:
1117 // 1) we launch an application via an application shortcut or extension API. 1003 // 1) we launch an application via an application shortcut or extension API.
1118 // 2) we launch an undocked devtool window. 1004 // 2) we launch an undocked devtool window.
1119 std::string app_name_; 1005 std::string app_name_;
1120 1006
1121 // Type of app (host or child). See description of AppType. 1007 // Type of app (host or child). See description of AppType.
1122 AppType app_type_; 1008 AppType app_type_;
1123 1009
1124 // Unique identifier of this browser for session restore. This id is only 1010 // Unique identifier of this browser for session restore. This id is only
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1196 // The Find Bar. This may be NULL if there is no Find Bar, and if it is 1082 // The Find Bar. This may be NULL if there is no Find Bar, and if it is
1197 // non-NULL, it may or may not be visible. 1083 // non-NULL, it may or may not be visible.
1198 scoped_ptr<FindBarController> find_bar_controller_; 1084 scoped_ptr<FindBarController> find_bar_controller_;
1199 1085
1200 // Dialog box used for opening and saving files. 1086 // Dialog box used for opening and saving files.
1201 scoped_refptr<SelectFileDialog> select_file_dialog_; 1087 scoped_refptr<SelectFileDialog> select_file_dialog_;
1202 1088
1203 // Keep track of the encoding auto detect pref. 1089 // Keep track of the encoding auto detect pref.
1204 BooleanPrefMember encoding_auto_detect_; 1090 BooleanPrefMember encoding_auto_detect_;
1205 1091
1206 // Indicates if command execution is blocked.
1207 bool block_command_execution_;
1208
1209 // Stores the last blocked command id when |block_command_execution_| is true.
1210 int last_blocked_command_id_;
1211
1212 // Stores the disposition type of the last blocked command.
1213 WindowOpenDisposition last_blocked_command_disposition_;
1214
1215 // Which deferred action to perform when OnDidGetApplicationInfo is notified 1092 // Which deferred action to perform when OnDidGetApplicationInfo is notified
1216 // from a WebContents. Currently, only one pending action is allowed. 1093 // from a WebContents. Currently, only one pending action is allowed.
1217 WebAppAction pending_web_app_action_; 1094 WebAppAction pending_web_app_action_;
1218 1095
1219 // The profile's tab restore service. The service is owned by the profile,
1220 // and we install ourselves as an observer.
1221 TabRestoreService* tab_restore_service_;
1222
1223 // Helper which implements the ContentSettingBubbleModel interface. 1096 // Helper which implements the ContentSettingBubbleModel interface.
1224 scoped_ptr<BrowserContentSettingBubbleModelDelegate> 1097 scoped_ptr<BrowserContentSettingBubbleModelDelegate>
1225 content_setting_bubble_model_delegate_; 1098 content_setting_bubble_model_delegate_;
1226 1099
1227 // Helper which implements the ToolbarModelDelegate interface. 1100 // Helper which implements the ToolbarModelDelegate interface.
1228 scoped_ptr<BrowserToolbarModelDelegate> toolbar_model_delegate_; 1101 scoped_ptr<BrowserToolbarModelDelegate> toolbar_model_delegate_;
1229 1102
1230 // A delegate that handles the details of updating the "active" 1103 // A delegate that handles the details of updating the "active"
1231 // |search_model_| state with the tab's state. 1104 // |search_model_| state with the tab's state.
1232 scoped_ptr<chrome::search::SearchDelegate> search_delegate_; 1105 scoped_ptr<chrome::search::SearchDelegate> search_delegate_;
1233 1106
1234 // Helper which implements the TabRestoreServiceDelegate interface. 1107 // Helper which implements the TabRestoreServiceDelegate interface.
1235 scoped_ptr<BrowserTabRestoreServiceDelegate> tab_restore_service_delegate_; 1108 scoped_ptr<BrowserTabRestoreServiceDelegate> tab_restore_service_delegate_;
1236 1109
1237 // Helper which implements the SyncedWindowDelegate interface. 1110 // Helper which implements the SyncedWindowDelegate interface.
1238 scoped_ptr<BrowserSyncedWindowDelegate> synced_window_delegate_; 1111 scoped_ptr<BrowserSyncedWindowDelegate> synced_window_delegate_;
1239 1112
1240 scoped_ptr<InstantController> instant_; 1113 scoped_ptr<InstantController> instant_;
1241 scoped_ptr<InstantUnloadHandler> instant_unload_handler_; 1114 scoped_ptr<InstantUnloadHandler> instant_unload_handler_;
1242 1115
1243 BookmarkBar::State bookmark_bar_state_; 1116 BookmarkBar::State bookmark_bar_state_;
1244 1117
1245 scoped_refptr<FullscreenController> fullscreen_controller_; 1118 scoped_refptr<FullscreenController> fullscreen_controller_;
1246 1119
1247 scoped_ptr<ExtensionWindowController> extension_window_controller_; 1120 scoped_ptr<ExtensionWindowController> extension_window_controller_;
1248 1121
1122 scoped_ptr<chrome::BrowserCommandController> command_controller_;
1123
1249 // True if the browser window has been shown at least once. 1124 // True if the browser window has been shown at least once.
1250 bool window_has_shown_; 1125 bool window_has_shown_;
1251 1126
1252 // Currently open color chooser. Non-NULL after OpenColorChooser is called and 1127 // Currently open color chooser. Non-NULL after OpenColorChooser is called and
1253 // before DidEndColorChooser is called. 1128 // before DidEndColorChooser is called.
1254 scoped_ptr<content::ColorChooser> color_chooser_; 1129 scoped_ptr<content::ColorChooser> color_chooser_;
1255 1130
1256 DISALLOW_COPY_AND_ASSIGN(Browser); 1131 DISALLOW_COPY_AND_ASSIGN(Browser);
1257 }; 1132 };
1258 1133
1259 #endif // CHROME_BROWSER_UI_BROWSER_H_ 1134 #endif // CHROME_BROWSER_UI_BROWSER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698