| // Copyright 2014 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef COMPONENTS_SESSIONS_CORE_SERIALIZED_NAVIGATION_DRIVER_H_ | 
 | #define COMPONENTS_SESSIONS_CORE_SERIALIZED_NAVIGATION_DRIVER_H_ | 
 |  | 
 | #include <string> | 
 |  | 
 | #include "components/sessions/core/sessions_export.h" | 
 |  | 
 | namespace sessions { | 
 |  | 
 | class SerializedNavigationEntry; | 
 |  | 
 | // The SerializedNavigationDriver interface allows SerializedNavigationEntry to | 
 | // obtain information from a singleton driver object. A concrete implementation | 
 | // must be provided by the driver on each platform. | 
 | class SESSIONS_EXPORT SerializedNavigationDriver { | 
 |  public: | 
 |   // Returns the singleton SerializedNavigationDriver. | 
 |   static SerializedNavigationDriver* Get(); | 
 |  | 
 |   // Returns the default referrer policy. | 
 |   virtual int GetDefaultReferrerPolicy() const = 0; | 
 |  | 
 |   // Returns a sanitized version of the given |navigation|'s encoded_page_state | 
 |   // suitable for writing to disk. | 
 |   virtual std::string GetSanitizedPageStateForPickle( | 
 |       const SerializedNavigationEntry* navigation) const = 0; | 
 |  | 
 |   // Sanitizes the data in the given |navigation| to be more robust against | 
 |   // faulty data written by older versions. | 
 |   virtual void Sanitize(SerializedNavigationEntry* navigation) const = 0; | 
 |  | 
 |   // Removes the referrer from the encoded page state. | 
 |   virtual std::string StripReferrerFromPageState( | 
 |       const std::string& page_state) const = 0; | 
 |  | 
 |  protected: | 
 |   virtual ~SerializedNavigationDriver() {} | 
 | }; | 
 |  | 
 | }  // namespace sessions | 
 |  | 
 | #endif  // COMPONENTS_SESSIONS_CORE_SERIALIZED_NAVIGATION_DRIVER_H_ |