summaryrefslogtreecommitdiffstats
path: root/chrome/browser/tab_contents
diff options
context:
space:
mode:
authormpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-29 23:14:02 +0000
committermpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-29 23:14:02 +0000
commit9adb9693e8a90bb63be325dbb5d3391f47f839ba (patch)
tree555765afd7bc851de6f3a2bf4a35151435d58d77 /chrome/browser/tab_contents
parent5b5a5c976aead85a87ced0847c068012d3979cae (diff)
downloadchromium_src-9adb9693e8a90bb63be325dbb5d3391f47f839ba.zip
chromium_src-9adb9693e8a90bb63be325dbb5d3391f47f839ba.tar.gz
chromium_src-9adb9693e8a90bb63be325dbb5d3391f47f839ba.tar.bz2
Part 3 of immutable Extension refactor.
Make ExtensionsService hold const Extension pointers only. This ensures that extensions can't be modified after they're created, and lets us share them between threads. BUG=56558 TEST=no functional change Review URL: http://codereview.chromium.org/4138006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64517 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/tab_contents')
-rw-r--r--chrome/browser/tab_contents/render_view_context_menu.cc4
-rw-r--r--chrome/browser/tab_contents/render_view_host_delegate_helper.cc3
-rw-r--r--chrome/browser/tab_contents/tab_contents.cc10
-rw-r--r--chrome/browser/tab_contents/tab_contents.h10
4 files changed, 14 insertions, 13 deletions
diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc
index 2d85f69..afd5ccb 100644
--- a/chrome/browser/tab_contents/render_view_context_menu.cc
+++ b/chrome/browser/tab_contents/render_view_context_menu.cc
@@ -180,7 +180,7 @@ void RenderViewContextMenu::AppendExtensionItems(
const std::string& extension_id, int* index) {
ExtensionsService* service = profile_->GetExtensionsService();
ExtensionMenuManager* manager = service->menu_manager();
- Extension* extension = service->GetExtensionById(extension_id, false);
+ const Extension* extension = service->GetExtensionById(extension_id, false);
DCHECK_GE(*index, 0);
int max_index =
IDC_EXTENSIONS_CONTEXT_CUSTOM_LAST - IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST;
@@ -318,7 +318,7 @@ void RenderViewContextMenu::AppendAllExtensionItems() {
std::set<std::string> ids = menu_manager->ExtensionIds();
std::vector<std::pair<std::string, std::string> > sorted_ids;
for (std::set<std::string>::iterator i = ids.begin(); i != ids.end(); ++i) {
- Extension* extension = service->GetExtensionById(*i, false);
+ const Extension* extension = service->GetExtensionById(*i, false);
if (extension)
sorted_ids.push_back(
std::pair<std::string, std::string>(extension->name(), *i));
diff --git a/chrome/browser/tab_contents/render_view_host_delegate_helper.cc b/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
index b94ab7d..68ca49b 100644
--- a/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
+++ b/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
@@ -45,7 +45,8 @@ RenderViewHostDelegateViewHelper::MaybeCreateBackgroundContents(
!extensions_service->is_ready())
return NULL;
- Extension* extension = extensions_service->GetExtensionByURL(opener_url);
+ const Extension* extension =
+ extensions_service->GetExtensionByURL(opener_url);
if (!extension)
extension = extensions_service->GetExtensionByWebExtent(opener_url);
if (!extension ||
diff --git a/chrome/browser/tab_contents/tab_contents.cc b/chrome/browser/tab_contents/tab_contents.cc
index 4e5e9b5..288b5b6 100644
--- a/chrome/browser/tab_contents/tab_contents.cc
+++ b/chrome/browser/tab_contents/tab_contents.cc
@@ -587,7 +587,7 @@ RenderProcessHost* TabContents::GetRenderProcessHost() const {
return render_manager_.current_host()->process();
}
-void TabContents::SetExtensionApp(Extension* extension) {
+void TabContents::SetExtensionApp(const Extension* extension) {
DCHECK(!extension || extension->GetFullLaunchURL().is_valid());
extension_app_ = extension;
@@ -605,7 +605,7 @@ void TabContents::SetExtensionAppById(const std::string& extension_app_id) {
ExtensionsService* extension_service = profile()->GetExtensionsService();
if (extension_service && extension_service->is_ready()) {
- Extension* extension =
+ const Extension* extension =
extension_service->GetExtensionById(extension_app_id, false);
if (extension)
SetExtensionApp(extension);
@@ -3157,7 +3157,7 @@ void TabContents::Observe(NotificationType type,
}
}
-void TabContents::UpdateExtensionAppIcon(Extension* extension) {
+void TabContents::UpdateExtensionAppIcon(const Extension* extension) {
extension_app_icon_.reset();
if (extension) {
@@ -3174,12 +3174,12 @@ void TabContents::UpdateExtensionAppIcon(Extension* extension) {
}
}
-Extension* TabContents::GetExtensionContaining(const GURL& url) {
+const Extension* TabContents::GetExtensionContaining(const GURL& url) {
ExtensionsService* extensions_service = profile()->GetExtensionsService();
if (!extensions_service)
return NULL;
- Extension* extension = extensions_service->GetExtensionByURL(url);
+ const Extension* extension = extensions_service->GetExtensionByURL(url);
return extension ?
extension : extensions_service->GetExtensionByWebExtent(url);
}
diff --git a/chrome/browser/tab_contents/tab_contents.h b/chrome/browser/tab_contents/tab_contents.h
index e6a834c..bfe9c55 100644
--- a/chrome/browser/tab_contents/tab_contents.h
+++ b/chrome/browser/tab_contents/tab_contents.h
@@ -208,14 +208,14 @@ class TabContents : public PageNavigator,
// NOTE: this should only be manipulated before the tab is added to a browser.
// TODO(sky): resolve if this is the right way to identify an app tab. If it
// is, than this should be passed in the constructor.
- void SetExtensionApp(Extension* extension);
+ void SetExtensionApp(const Extension* extension);
// Convenience for setting the app extension by id. This does nothing if
// |extension_app_id| is empty, or an extension can't be found given the
// specified id.
void SetExtensionAppById(const std::string& extension_app_id);
- Extension* extension_app() const { return extension_app_; }
+ const Extension* extension_app() const { return extension_app_; }
bool is_app() const { return extension_app_ != NULL; }
// If an app extension has been explicitly set for this TabContents its icon
@@ -1050,11 +1050,11 @@ class TabContents : public PageNavigator,
// App extensions related methods:
// Returns the first extension whose extent contains |url|.
- Extension* GetExtensionContaining(const GURL& url);
+ const Extension* GetExtensionContaining(const GURL& url);
// Resets app_icon_ and if |extension| is non-null creates a new
// ImageLoadingTracker to load the extension's image.
- void UpdateExtensionAppIcon(Extension* extension);
+ void UpdateExtensionAppIcon(const Extension* extension);
// ImageLoadingTracker::Observer.
virtual void OnImageLoaded(SkBitmap* image, ExtensionResource resource,
@@ -1233,7 +1233,7 @@ class TabContents : public PageNavigator,
// If non-null this tab is an app tab and this is the extension the tab was
// created for.
- Extension* extension_app_;
+ const Extension* extension_app_;
// Icon for extension_app_ (if non-null) or extension_for_current_page_.
SkBitmap extension_app_icon_;