| Index: chrome/browser/tab_contents/navigation_controller.cc
|
| diff --git a/chrome/browser/tab_contents/navigation_controller.cc b/chrome/browser/tab_contents/navigation_controller.cc
|
| index ce92c09173cc31e1488191d49c92f98e3b586ce9..819bf6e4bac58254b5494c1d8053b56601efab38 100644
|
| --- a/chrome/browser/tab_contents/navigation_controller.cc
|
| +++ b/chrome/browser/tab_contents/navigation_controller.cc
|
| @@ -12,8 +12,7 @@
|
| #include "chrome/browser/browser_about_handler.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/browser_url_handler.h"
|
| -#include "chrome/browser/in_process_webkit/dom_storage_context.h"
|
| -#include "chrome/browser/in_process_webkit/webkit_context.h"
|
| +#include "chrome/browser/in_process_webkit/session_storage_namespace.h"
|
| #include "chrome/browser/prefs/pref_service.h"
|
| #include "chrome/browser/profile.h"
|
| #include "chrome/browser/renderer_host/site_instance.h"
|
| @@ -114,8 +113,10 @@ size_t NavigationController::max_entry_count_ =
|
| // static
|
| bool NavigationController::check_for_repost_ = true;
|
|
|
| -NavigationController::NavigationController(TabContents* contents,
|
| - Profile* profile)
|
| +NavigationController::NavigationController(
|
| + TabContents* contents,
|
| + Profile* profile,
|
| + SessionStorageNamespace* session_storage_namespace)
|
| : profile_(profile),
|
| pending_entry_(NULL),
|
| last_committed_entry_index_(-1),
|
| @@ -125,10 +126,11 @@ NavigationController::NavigationController(TabContents* contents,
|
| max_restored_page_id_(-1),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(ssl_manager_(this)),
|
| needs_reload_(false),
|
| - session_storage_namespace_id_(profile->GetWebKitContext()->
|
| - dom_storage_context()->AllocateSessionStorageNamespaceId()),
|
| + session_storage_namespace_(session_storage_namespace),
|
| pending_reload_(NO_RELOAD) {
|
| DCHECK(profile_);
|
| + if (!session_storage_namespace_)
|
| + session_storage_namespace_ = new SessionStorageNamespace(profile_);
|
| }
|
|
|
| NavigationController::~NavigationController() {
|
| @@ -138,10 +140,6 @@ NavigationController::~NavigationController() {
|
| NotificationType::TAB_CLOSED,
|
| Source<NavigationController>(this),
|
| NotificationService::NoDetails());
|
| -
|
| - // When we go away, the session storage namespace will no longer be reachable.
|
| - profile_->GetWebKitContext()->DeleteSessionStorageNamespace(
|
| - session_storage_namespace_id_);
|
| }
|
|
|
| void NavigationController::RestoreFromState(
|
| @@ -947,9 +945,7 @@ void NavigationController::CopyStateFrom(const NavigationController& source) {
|
| needs_reload_ = true;
|
| InsertEntriesFrom(source, source.entry_count());
|
|
|
| - session_storage_namespace_id_ =
|
| - profile_->GetWebKitContext()->dom_storage_context()->CloneSessionStorage(
|
| - source.session_storage_namespace_id_);
|
| + session_storage_namespace_ = source.session_storage_namespace_->Clone();
|
|
|
| FinishRestore(source.last_committed_entry_index_, false);
|
| }
|
|
|