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

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

Issue 332021: Move page actions over to ExtensionAction2 (Closed)
Patch Set: Review feedback Created 11 years, 1 month 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
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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_TAB_CONTENTS_TAB_CONTENTS_H_ 5 #ifndef CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_H_
6 #define CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_H_ 6 #define CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_H_
7 7
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 9
10 #include <map> 10 #include <map>
(...skipping 12 matching lines...) Expand all
23 #include "chrome/browser/fav_icon_helper.h" 23 #include "chrome/browser/fav_icon_helper.h"
24 #include "chrome/browser/find_notification_details.h" 24 #include "chrome/browser/find_notification_details.h"
25 #include "chrome/browser/shell_dialogs.h" 25 #include "chrome/browser/shell_dialogs.h"
26 #include "chrome/browser/renderer_host/render_view_host_delegate.h" 26 #include "chrome/browser/renderer_host/render_view_host_delegate.h"
27 #include "chrome/browser/tab_contents/constrained_window.h" 27 #include "chrome/browser/tab_contents/constrained_window.h"
28 #include "chrome/browser/tab_contents/infobar_delegate.h" 28 #include "chrome/browser/tab_contents/infobar_delegate.h"
29 #include "chrome/browser/tab_contents/navigation_controller.h" 29 #include "chrome/browser/tab_contents/navigation_controller.h"
30 #include "chrome/browser/tab_contents/navigation_entry.h" 30 #include "chrome/browser/tab_contents/navigation_entry.h"
31 #include "chrome/browser/tab_contents/page_navigator.h" 31 #include "chrome/browser/tab_contents/page_navigator.h"
32 #include "chrome/browser/tab_contents/render_view_host_manager.h" 32 #include "chrome/browser/tab_contents/render_view_host_manager.h"
33 #include "chrome/common/extensions/extension_action.h"
34 #include "chrome/common/gears_api.h" 33 #include "chrome/common/gears_api.h"
35 #include "chrome/common/navigation_types.h" 34 #include "chrome/common/navigation_types.h"
36 #include "chrome/common/notification_registrar.h" 35 #include "chrome/common/notification_registrar.h"
37 #include "chrome/common/property_bag.h" 36 #include "chrome/common/property_bag.h"
38 #include "chrome/common/renderer_preferences.h" 37 #include "chrome/common/renderer_preferences.h"
39 #include "net/base/load_states.h" 38 #include "net/base/load_states.h"
40 #include "webkit/glue/password_form.h" 39 #include "webkit/glue/password_form.h"
41 #include "webkit/glue/webpreferences.h" 40 #include "webkit/glue/webpreferences.h"
42 41
43 #if defined(OS_LINUX) 42 #if defined(OS_LINUX)
(...skipping 23 matching lines...) Expand all
67 namespace IPC { 66 namespace IPC {
68 class Message; 67 class Message;
69 } 68 }
70 69
71 class FormFieldHistoryManager; 70 class FormFieldHistoryManager;
72 class BlockedPopupContainer; 71 class BlockedPopupContainer;
73 class DOMUI; 72 class DOMUI;
74 class DownloadItem; 73 class DownloadItem;
75 class LoadNotificationDetails; 74 class LoadNotificationDetails;
76 class OmniboxSearchHint; 75 class OmniboxSearchHint;
77 class PageAction;
78 class PasswordManager; 76 class PasswordManager;
79 class PluginInstaller; 77 class PluginInstaller;
80 class Profile; 78 class Profile;
81 struct RendererPreferences; 79 struct RendererPreferences;
82 class RenderViewHost; 80 class RenderViewHost;
83 class TabContentsDelegate; 81 class TabContentsDelegate;
84 class TabContentsFactory; 82 class TabContentsFactory;
85 class SkBitmap; 83 class SkBitmap;
86 class SiteInstance; 84 class SiteInstance;
87 class TabContentsView; 85 class TabContentsView;
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 // This flag indicates whether the tab contents is currently being 246 // This flag indicates whether the tab contents is currently being
249 // screenshotted by the DraggedTabController. 247 // screenshotted by the DraggedTabController.
250 bool capturing_contents() const { return capturing_contents_; } 248 bool capturing_contents() const { return capturing_contents_; }
251 void set_capturing_contents(bool cap) { capturing_contents_ = cap; } 249 void set_capturing_contents(bool cap) { capturing_contents_ = cap; }
252 250
253 // Indicates whether this tab should be considered crashed. The setter will 251 // Indicates whether this tab should be considered crashed. The setter will
254 // also notify the delegate when the flag is changed. 252 // also notify the delegate when the flag is changed.
255 bool is_crashed() const { return is_crashed_; } 253 bool is_crashed() const { return is_crashed_; }
256 void SetIsCrashed(bool state); 254 void SetIsCrashed(bool state);
257 255
258 // Adds/removes a page action to the list of page actions that are active in 256 // Call this after updating a page action to notify clients about the changes.
259 // this tab. The parameter |title| (if not empty) can be used to override the
260 // page action title for this tab and |icon_id| specifies an icon index
261 // (defined in the manifest) to use instead of the first icon (for this tab).
262 void SetPageActionEnabled(const ExtensionAction* page_action, bool enable,
263 const std::string& title, int icon_id);
264
265 // Returns the page action state for this tab. The pair returns contains
266 // the title (string) for the page action and the icon index to use (int).
267 // If this function returns NULL it means the page action is not enabled for
268 // this tab.
269 const ExtensionActionState* GetPageActionState(
270 const ExtensionAction* page_action);
271
272 // Same as above, but creates an enable state if it doesn't exist. The return
273 // value can be updated. The caller should call PageActionStateChanged when
274 // done modifying the state.
275 ExtensionActionState* GetOrCreatePageActionState(
276 const ExtensionAction* page_action);
277
278 // Call this after updating a ExtensionActionState object returned by
279 // GetOrCreatePageActionState to notify clients about the changes.
280 void PageActionStateChanged(); 257 void PageActionStateChanged();
281 258
282 // Whether the tab is in the process of being destroyed. 259 // Whether the tab is in the process of being destroyed.
283 // Added as a tentative work-around for focus related bug #4633. This allows 260 // Added as a tentative work-around for focus related bug #4633. This allows
284 // us not to store focus when a tab is being closed. 261 // us not to store focus when a tab is being closed.
285 bool is_being_destroyed() const { return is_being_destroyed_; } 262 bool is_being_destroyed() const { return is_being_destroyed_; }
286 263
287 // Convenience method for notifying the delegate of a navigation state 264 // Convenience method for notifying the delegate of a navigation state
288 // change. See TabContentsDelegate. 265 // change. See TabContentsDelegate.
289 void NotifyNavigationStateChanged(unsigned changed_flags); 266 void NotifyNavigationStateChanged(unsigned changed_flags);
(...skipping 830 matching lines...) Expand 10 before | Expand all | Expand 10 after
1120 bool last_search_case_sensitive_; 1097 bool last_search_case_sensitive_;
1121 1098
1122 // Keeps track of the last search string that was used to search in any tab. 1099 // Keeps track of the last search string that was used to search in any tab.
1123 string16* last_search_prepopulate_text_; 1100 string16* last_search_prepopulate_text_;
1124 1101
1125 // The last find result. This object contains details about the number of 1102 // The last find result. This object contains details about the number of
1126 // matches, the find selection rectangle, etc. The UI can access this 1103 // matches, the find selection rectangle, etc. The UI can access this
1127 // information to build its presentation. 1104 // information to build its presentation.
1128 FindNotificationDetails last_search_result_; 1105 FindNotificationDetails last_search_result_;
1129 1106
1130 // Data for Page Actions -----------------------------------------------------
1131
1132 // A map of page actions that this tab knows about (and a state object that
1133 // can be used to update the title, icon, visibilty, etc used for the page
1134 // action). This map is cleared every time the mainframe navigates and
1135 // populated by the PageAction extension API.
1136 typedef std::map< const ExtensionAction*, linked_ptr<ExtensionActionState> >
1137 PageActionStateMap;
1138 PageActionStateMap page_actions_;
1139
1140 // Data for misc internal state ---------------------------------------------- 1107 // Data for misc internal state ----------------------------------------------
1141 1108
1142 // See capturing_contents() above. 1109 // See capturing_contents() above.
1143 bool capturing_contents_; 1110 bool capturing_contents_;
1144 1111
1145 // See getter above. 1112 // See getter above.
1146 bool is_being_destroyed_; 1113 bool is_being_destroyed_;
1147 1114
1148 // Indicates whether we should notify about disconnection of this 1115 // Indicates whether we should notify about disconnection of this
1149 // TabContents. This is used to ensure disconnection notifications only 1116 // TabContents. This is used to ensure disconnection notifications only
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1190 1157
1191 // The time that we started to close the tab. 1158 // The time that we started to close the tab.
1192 base::TimeTicks tab_close_start_time_; 1159 base::TimeTicks tab_close_start_time_;
1193 1160
1194 // --------------------------------------------------------------------------- 1161 // ---------------------------------------------------------------------------
1195 1162
1196 DISALLOW_COPY_AND_ASSIGN(TabContents); 1163 DISALLOW_COPY_AND_ASSIGN(TabContents);
1197 }; 1164 };
1198 1165
1199 #endif // CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_H_ 1166 #endif // CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698