summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sessions
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-04 15:49:08 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-04 15:49:08 +0000
commit36fb2c7c17069ad7b6d767e4c40b8ee29b762cf8 (patch)
tree2e87bed9b96d30210008b64fde9e90fe7d6a399d /chrome/browser/sessions
parent2bd51de1a5ffc4514a11c3f18c7e2e5f1b92d728 (diff)
downloadchromium_src-36fb2c7c17069ad7b6d767e4c40b8ee29b762cf8.zip
chromium_src-36fb2c7c17069ad7b6d767e4c40b8ee29b762cf8.tar.gz
chromium_src-36fb2c7c17069ad7b6d767e4c40b8ee29b762cf8.tar.bz2
Get rid of extensions dependency from content\browser.
BUG=76789 Review URL: http://codereview.chromium.org/6693054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80315 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sessions')
-rw-r--r--chrome/browser/sessions/session_service.cc29
-rw-r--r--chrome/browser/sessions/tab_restore_service.cc15
2 files changed, 31 insertions, 13 deletions
diff --git a/chrome/browser/sessions/session_service.cc b/chrome/browser/sessions/session_service.cc
index 2431086..fa9ecae 100644
--- a/chrome/browser/sessions/session_service.cc
+++ b/chrome/browser/sessions/session_service.cc
@@ -17,6 +17,7 @@
#include "base/threading/thread.h"
#include "chrome/browser/browser_list.h"
#include "chrome/browser/browser_window.h"
+#include "chrome/browser/extensions/extension_tab_helper.h"
#include "chrome/browser/prefs/session_startup_pref.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/sessions/session_backend.h"
@@ -25,6 +26,7 @@
#include "chrome/browser/sessions/session_types.h"
#include "chrome/browser/tabs/tab_strip_model.h"
#include "chrome/browser/ui/browser_init.h"
+#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/common/extensions/extension.h"
#include "content/browser/tab_contents/navigation_controller.h"
#include "content/browser/tab_contents/navigation_entry.h"
@@ -518,11 +520,14 @@ void SessionService::Observe(NotificationType type,
NavigationController* controller =
Source<NavigationController>(source).ptr();
SetTabWindow(controller->window_id(), controller->session_id());
- if (controller->tab_contents()->extension_app()) {
+ TabContentsWrapper* wrapper =
+ TabContentsWrapper::GetCurrentWrapperForContents(
+ controller->tab_contents());
+ if (wrapper->extension_tab_helper()->extension_app()) {
SetTabExtensionAppID(
controller->window_id(),
controller->session_id(),
- controller->tab_contents()->extension_app()->id());
+ wrapper->extension_tab_helper()->extension_app()->id());
}
break;
}
@@ -584,12 +589,13 @@ void SessionService::Observe(NotificationType type,
}
case NotificationType::TAB_CONTENTS_APPLICATION_EXTENSION_CHANGED: {
- TabContents* tab_contents = Source<TabContents>(source).ptr();
- DCHECK(tab_contents);
- if (tab_contents->extension_app()) {
- SetTabExtensionAppID(tab_contents->controller().window_id(),
- tab_contents->controller().session_id(),
- tab_contents->extension_app()->id());
+ ExtensionTabHelper* extension_tab_helper =
+ Source<ExtensionTabHelper>(source).ptr();
+ if (extension_tab_helper->extension_app()) {
+ SetTabExtensionAppID(
+ extension_tab_helper->tab_contents()->controller().window_id(),
+ extension_tab_helper->tab_contents()->controller().session_id(),
+ extension_tab_helper->extension_app()->id());
}
break;
}
@@ -1072,12 +1078,15 @@ void SessionService::BuildCommandsForTab(
commands->push_back(
CreatePinnedStateCommand(controller->session_id(), true));
}
- if (controller->tab_contents()->extension_app()) {
+ TabContentsWrapper* wrapper =
+ TabContentsWrapper::GetCurrentWrapperForContents(
+ controller->tab_contents());
+ if (wrapper->extension_tab_helper()->extension_app()) {
commands->push_back(
CreateSetTabExtensionAppIDCommand(
kCommandSetExtensionAppID,
controller->session_id().id(),
- controller->tab_contents()->extension_app()->id()));
+ wrapper->extension_tab_helper()->extension_app()->id()));
}
for (int i = min_index; i < max_index; ++i) {
const NavigationEntry* entry = (i == pending_index) ?
diff --git a/chrome/browser/sessions/tab_restore_service.cc b/chrome/browser/sessions/tab_restore_service.cc
index b819697..1e81bb1 100644
--- a/chrome/browser/sessions/tab_restore_service.cc
+++ b/chrome/browser/sessions/tab_restore_service.cc
@@ -13,12 +13,14 @@
#include "base/metrics/histogram.h"
#include "base/stl_util-inl.h"
#include "chrome/browser/extensions/extension_service.h"
+#include "chrome/browser/extensions/extension_tab_helper.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/sessions/session_service.h"
#include "chrome/browser/sessions/session_command.h"
#include "chrome/browser/sessions/session_types.h"
#include "chrome/browser/sessions/tab_restore_service_delegate.h"
#include "chrome/browser/sessions/tab_restore_service_observer.h"
+#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/common/extensions/extension.h"
#include "chrome/common/extensions/extension_constants.h"
#include "content/browser/tab_contents/navigation_controller.h"
@@ -492,9 +494,16 @@ void TabRestoreService::PopulateTab(Tab* tab,
tab->current_navigation_index = 0;
tab->tabstrip_index = index;
- const Extension* extension = controller->tab_contents()->extension_app();
- if (extension)
- tab->extension_app_id = extension->id();
+ TabContentsWrapper* wrapper =
+ TabContentsWrapper::GetCurrentWrapperForContents(
+ controller->tab_contents());
+ // wrapper is NULL in some browser tests.
+ if (wrapper) {
+ const Extension* extension =
+ wrapper->extension_tab_helper()->extension_app();
+ if (extension)
+ tab->extension_app_id = extension->id();
+ }
tab->session_storage_namespace = controller->session_storage_namespace();