Home | History | Annotate | Download | only in native
      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.
      4 //
      5 #ifndef ANDROID_WEBVIEW_NATIVE_STATE_SERIALIZER_H_
      6 #define ANDROID_WEBVIEW_NATIVE_STATE_SERIALIZER_H_
      7 
      8 #include "base/compiler_specific.h"
      9 
     10 class Pickle;
     11 class PickleIterator;
     12 
     13 namespace content {
     14 
     15 class NavigationEntry;
     16 class WebContents;
     17 
     18 }  // namespace content
     19 
     20 namespace android_webview {
     21 
     22 // Write and restore a WebContents to and from a pickle. Return true on
     23 // success.
     24 
     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;
     28 
     29 // |web_contents| will not be modified if function returns false.
     30 bool RestoreFromPickle(PickleIterator* iterator,
     31                        content::WebContents* web_contents) WARN_UNUSED_RESULT;
     32 
     33 
     34 namespace internal {
     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
     37 // tests.
     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;
     45 
     46 }  // namespace interanl
     47 
     48 }  // namespace android_webview
     49 
     50 #endif  // ANDROID_WEBVIEW_NATIVE_STATE_SERIALIZER_H_
     51