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

Side by Side Diff: ios/web/navigation/serialized_navigation_manager_builder.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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #import "ios/web/navigation/serialized_navigation_manager_builder.h"
6
7 #include "base/logging.h"
8 #import "base/mac/scoped_nsobject.h"
9 #import "ios/web/navigation/crw_serialized_navigation_manager.h"
10 #import "ios/web/navigation/crw_session_controller.h"
11 #include "ios/web/navigation/navigation_manager_impl.h"
12
13 // CRWSessionController's readonly properties redefined as readwrite. These
14 // will be removed and NavigationManagerImpl's ivars will be written directly
15 // as this functionality moves from CRWSessionController to
16 // NavigationManagerImpl;
17 @interface CRWSessionController (ExposedForSerialization)
18 @property(nonatomic, readwrite, retain) NSString* tabId;
19 @property(nonatomic, readwrite, copy) NSString* openerId;
20 @property(nonatomic, readwrite, getter=isOpenedByDOM) BOOL openedByDOM;
21 @property(nonatomic, readwrite, assign) NSInteger openerNavigationIndex;
22 @property(nonatomic, readwrite, assign) NSInteger currentNavigationIndex;
23 @property(nonatomic, readwrite, assign) NSInteger previousNavigationIndex;
24 @property(nonatomic, readwrite, retain) NSArray* entries;
25 @property(nonatomic, readwrite, retain)
26 CRWSessionCertificatePolicyManager* sessionCertificatePolicyManager;
27 @end
28
29 namespace web {
30
31 // static
32 CRWSerializedNavigationManager*
33 SerializedNavigationManagerBuilder::FromNavigationManager(
34 web::NavigationManagerImpl* navigation_manager) {
35 DCHECK(navigation_manager);
36 CRWSerializedNavigationManager* serialized_navigation_manager =
37 [[[CRWSerializedNavigationManager alloc] init] autorelease];
38 CRWSessionController* session_controller =
39 navigation_manager->GetSessionController();
40 serialized_navigation_manager.tabID = session_controller.tabId;
41 serialized_navigation_manager.openerID = session_controller.openerId;
42 serialized_navigation_manager.openedByDOM = session_controller.openedByDOM;
43 serialized_navigation_manager.openerNavigationIndex =
44 session_controller.openerNavigationIndex;
45 serialized_navigation_manager.windowName = session_controller.windowName;
46 serialized_navigation_manager.currentNavigationIndex =
47 session_controller.currentNavigationIndex;
48 serialized_navigation_manager.previousNavigationIndex =
49 session_controller.previousNavigationIndex;
50 serialized_navigation_manager.lastVisitedTimestamp =
51 session_controller.lastVisitedTimestamp;
52 serialized_navigation_manager.entries = session_controller.entries;
53 serialized_navigation_manager.sessionCertificatePolicyManager =
54 session_controller.sessionCertificatePolicyManager;
55 serialized_navigation_manager.XCallbackParameters =
56 session_controller.xCallbackParameters;
57 return serialized_navigation_manager;
58 }
59
60 // static
61 scoped_ptr<NavigationManagerImpl>
62 SerializedNavigationManagerBuilder::ToNavigationManager(
63 CRWSerializedNavigationManager* serialized_navigation_manager) {
64 DCHECK(serialized_navigation_manager);
65 base::scoped_nsobject<CRWSessionController> session_controller(
66 [[CRWSessionController alloc] init]);
67 [session_controller setTabId:serialized_navigation_manager.tabID];
68 [session_controller setOpenerId:serialized_navigation_manager.openerID];
69 [session_controller setOpenedByDOM:serialized_navigation_manager.openedByDOM];
70 [session_controller setOpenerNavigationIndex:
71 serialized_navigation_manager.openerNavigationIndex];
72 [session_controller setWindowName:serialized_navigation_manager.windowName];
73 [session_controller setCurrentNavigationIndex:
74 serialized_navigation_manager.currentNavigationIndex];
75 [session_controller setPreviousNavigationIndex:
76 serialized_navigation_manager.previousNavigationIndex];
77 [session_controller setLastVisitedTimestamp:
78 serialized_navigation_manager.lastVisitedTimestamp];
79 [session_controller setEntries:serialized_navigation_manager.entries];
80 [session_controller setSessionCertificatePolicyManager:
81 serialized_navigation_manager.sessionCertificatePolicyManager];
82 [session_controller setXCallbackParameters:
83 serialized_navigation_manager.XCallbackParameters];
84 scoped_ptr<NavigationManagerImpl> navigation_manager(
85 new NavigationManagerImpl());
86 navigation_manager->SetSessionController(session_controller);
87 return navigation_manager.Pass();
88 }
89
90 } // namespace web
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698