| // 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_ |