1 // Copyright (c) 2012 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.
5 #ifndef ANDROID_WEBVIEW_NATIVE_STATE_SERIALIZER_H_
6 #define ANDROID_WEBVIEW_NATIVE_STATE_SERIALIZER_H_
8 #include "base/compiler_specific.h"
15 class NavigationEntry
;
18 } // namespace content
20 namespace android_webview
{
22 // Write and restore a WebContents to and from a pickle. Return true on
25 // Note that |pickle| may be changed even if function returns false.
26 bool WriteToPickle(const content::WebContents
& web_contents
,
27 Pickle
* pickle
) WARN_UNUSED_RESULT
;
29 // |web_contents| will not be modified if function returns false.
30 bool RestoreFromPickle(PickleIterator
* iterator
,
31 content::WebContents
* web_contents
) WARN_UNUSED_RESULT
;
35 // Functions below are individual helper functiosn called by functions above.
36 // They are broken up for unit testing, and should not be called out side of
38 bool WriteHeaderToPickle(Pickle
* pickle
) WARN_UNUSED_RESULT
;
39 bool RestoreHeaderFromPickle(PickleIterator
* iterator
) WARN_UNUSED_RESULT
;
40 bool WriteNavigationEntryToPickle(const content::NavigationEntry
& entry
,
41 Pickle
* pickle
) WARN_UNUSED_RESULT
;
42 bool RestoreNavigationEntryFromPickle(
43 PickleIterator
* iterator
,
44 content::NavigationEntry
* entry
) WARN_UNUSED_RESULT
;
46 } // namespace interanl
48 } // namespace android_webview
50 #endif // ANDROID_WEBVIEW_NATIVE_STATE_SERIALIZER_H_