diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-04 15:49:08 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-04 15:49:08 +0000 |
commit | 36fb2c7c17069ad7b6d767e4c40b8ee29b762cf8 (patch) | |
tree | 2e87bed9b96d30210008b64fde9e90fe7d6a399d /chrome/browser/sessions | |
parent | 2bd51de1a5ffc4514a11c3f18c7e2e5f1b92d728 (diff) | |
download | chromium_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.cc | 29 | ||||
-rw-r--r-- | chrome/browser/sessions/tab_restore_service.cc | 15 |
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(); |