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

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: Created 5 years, 2 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 "ios/web/navigation/crw_serialized_navigation_manager.h"
9 #import "ios/web/navigation/crw_session_controller.h"
10 #include "ios/web/navigation/navigation_manager_impl.h"
11
12 // CRWSessionController's readonly properties redefined as readwrite. These
13 // will be removed and NavigationManagerImpl's ivars will be written directly
14 // as this functionality moves from CRWSessionController to
15 // NavigationManagerImpl;
16 @interface CRWSessionController (ExposedForSerialization)
17 @property(nonatomic, readwrite, retain) NSString* tabId;
18 @property(nonatomic, readwrite, copy) NSString* openerId;
19 @property(nonatomic, readwrite, getter=isOpenedByDOM) BOOL openedByDOM;
20 @property(nonatomic, readwrite, assign) NSInteger openerNavigationIndex;
21 @property(nonatomic, readwrite, assign) NSInteger currentNavigationIndex;
22 @property(nonatomic, readwrite, assign) NSInteger previousNavigationIndex;
23 @property(nonatomic, readwrite, retain) NSArray* entries;
24 @property(nonatomic, readwrite, retain)
25 CRWSessionCertificatePolicyManager* sessionCertificatePolicyManager;
26 @end
27
28 namespace web {
29
30 // static
31 CRWSerializedNavigationManager*
32 SerializedNavigationManagerBuilder::FromNavigationManager(
33 web::NavigationManagerImpl* navigation_manager) {
34 DCHECK(navigation_manager);
35 CRWSerializedNavigationManager* serialized_navigation_manager =
36 [[[CRWSerializedNavigationManager alloc] init] autorelease];
Eugene But (OOO till 7-30) 2015/09/23 16:33:44 Please use scoped_nsobject instead of autorelease
kkhorimoto 2015/09/24 18:12:59 Why? I've created functions that returned scoped_
Eugene But (OOO till 7-30) 2015/09/24 18:44:29 I apologies, I missed that fact that you return se
37 CRWSessionController* session_controller =
38 navigation_manager->GetSessionController();
39 serialized_navigation_manager.tabId = session_controller.tabId;
40 serialized_navigation_manager.openerId = session_controller.openerId;
41 serialized_navigation_manager.openedByDOM = session_controller.openedByDOM;
42 serialized_navigation_manager.openerNavigationIndex =
43 session_controller.openerNavigationIndex;
44 serialized_navigation_manager.windowName = session_controller.windowName;
45 serialized_navigation_manager.currentNavigationIndex =
46 session_controller.currentNavigationIndex;
47 serialized_navigation_manager.previousNavigationIndex =
48 session_controller.previousNavigationIndex;
49 serialized_navigation_manager.lastVisitedTimestamp =
50 session_controller.lastVisitedTimestamp;
51 serialized_navigation_manager.entries = session_controller.entries;
52 serialized_navigation_manager.sessionCertificatePolicyManager =
53 session_controller.sessionCertificatePolicyManager;
54 serialized_navigation_manager.xCallbackParameters =
55 session_controller.xCallbackParameters;
56 return serialized_navigation_manager;
57 }
58
59 // static
60 scoped_ptr<NavigationManagerImpl>
61 SerializedNavigationManagerBuilder::ToNavigationManager(
62 CRWSerializedNavigationManager* serialized_navigation_manager) {
63 DCHECK(serialized_navigation_manager);
64 CRWSessionController* session_controller =
65 [[[CRWSessionController alloc] init] autorelease];
Eugene But (OOO till 7-30) 2015/09/23 16:33:44 ditto
kkhorimoto 2015/09/24 18:12:59 Done.
66 session_controller.tabId = serialized_navigation_manager.tabId;
67 session_controller.openerId = serialized_navigation_manager.openerId;
68 session_controller.openedByDOM = serialized_navigation_manager.openedByDOM;
69 session_controller.openerNavigationIndex =
70 serialized_navigation_manager.openerNavigationIndex;
71 session_controller.windowName = serialized_navigation_manager.windowName;
72 session_controller.currentNavigationIndex =
73 serialized_navigation_manager.currentNavigationIndex;
74 session_controller.previousNavigationIndex =
75 serialized_navigation_manager.previousNavigationIndex;
76 session_controller.lastVisitedTimestamp =
77 serialized_navigation_manager.lastVisitedTimestamp;
78 session_controller.entries = serialized_navigation_manager.entries;
79 session_controller.sessionCertificatePolicyManager =
80 serialized_navigation_manager.sessionCertificatePolicyManager;
81 session_controller.xCallbackParameters =
82 serialized_navigation_manager.xCallbackParameters;
83 scoped_ptr<NavigationManagerImpl> navigation_manager(
84 new NavigationManagerImpl());
85 navigation_manager->SetSessionController(session_controller);
86 return navigation_manager.Pass();
87 }
88
89 } // namespace web
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698