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

Unified Diff: ios/web/navigation/navigation_manager_impl.mm

Issue 1360993002: Moved NavigationManagerImpl serialization out of CRWSessionController. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Eugene's comments Created 5 years, 3 months 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 side-by-side diff with in-line comments
Download patch
Index: ios/web/navigation/navigation_manager_impl.mm
diff --git a/ios/web/navigation/navigation_manager_impl.mm b/ios/web/navigation/navigation_manager_impl.mm
index 4b18be88345415b1d138cf83c4b074caa5826a6d..9789ce3473bda7a8ddde25d4c6ecf57d614d3c82 100644
--- a/ios/web/navigation/navigation_manager_impl.mm
+++ b/ios/web/navigation/navigation_manager_impl.mm
@@ -34,13 +34,21 @@ bool AreURLsInPageNavigation(const GURL& existing_url, const GURL& new_url) {
namespace web {
-NavigationManagerImpl::NavigationManagerImpl(
- NavigationManagerDelegate* delegate,
- BrowserState* browser_state)
- : delegate_(delegate),
- browser_state_(browser_state),
- facade_delegate_(nullptr) {
- DCHECK(browser_state_);
+NavigationManagerImpl::NavigationManagerImpl()
+ : delegate_(nullptr), browser_state_(nullptr), facade_delegate_(nullptr) {}
+
+NavigationManagerImpl::NavigationManagerImpl(const NavigationManagerImpl& other)
+ : delegate_(nullptr),
+ browser_state_(other.browser_state_),
+ session_controller_([other.session_controller_ copy]),
+ facade_delegate_(nullptr) {}
+
+void NavigationManagerImpl::SetDelegate(NavigationManagerDelegate* delegate) {
+ delegate_ = delegate;
+}
+
+void NavigationManagerImpl::SetBrowserState(BrowserState* browser_state) {
+ browser_state_ = browser_state;
}
NavigationManagerImpl::~NavigationManagerImpl() {
@@ -81,6 +89,11 @@ void NavigationManagerImpl::ReplaceSessionHistory(
browserState:browser_state_] autorelease]);
}
+scoped_ptr<NavigationManagerImpl> NavigationManagerImpl::CopyForSerialization()
+ const {
+ return scoped_ptr<NavigationManagerImpl>(new NavigationManagerImpl(*this));
+}
+
void NavigationManagerImpl::SetFacadeDelegate(
NavigationManagerFacadeDelegate* facade_delegate) {
facade_delegate_ = facade_delegate;

Powered by Google App Engine
This is Rietveld 408576698