blob: bde17afacf357d8324378f02101811da71cdd937 [file] [log] [blame]
// 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_CONTENT_CONTENT_SERIALIZED_NAVIGATION_BUILDER_H_
#define COMPONENTS_SESSIONS_CONTENT_CONTENT_SERIALIZED_NAVIGATION_BUILDER_H_
#include <vector>
#include "base/memory/scoped_ptr.h"
#include "base/memory/scoped_vector.h"
#include "components/sessions/core/sessions_export.h"
namespace content {
class BrowserContext;
class NavigationEntry;
}
namespace sessions {
class SerializedNavigationEntry;
// Provides methods to convert between SerializedNavigationEntry and content
// classes.
class SESSIONS_EXPORT ContentSerializedNavigationBuilder {
public:
// Construct a SerializedNavigationEntry for a particular index from the given
// NavigationEntry.
static SerializedNavigationEntry FromNavigationEntry(
int index,
const content::NavigationEntry& entry);
// Convert the given SerializedNavigationEntry into a NavigationEntry with the
// given page ID and context. The NavigationEntry will have a transition type
// of PAGE_TRANSITION_RELOAD and a new unique ID.
static scoped_ptr<content::NavigationEntry> ToNavigationEntry(
const SerializedNavigationEntry* navigation,
int page_id,
content::BrowserContext* browser_context);
// Converts a set of SerializedNavigationEntrys into a list of
// NavigationEntrys with sequential page IDs and the given context.
static ScopedVector<content::NavigationEntry> ToNavigationEntries(
const std::vector<SerializedNavigationEntry>& navigations,
content::BrowserContext* browser_context);
};
} // namespace sessions
#endif // COMPONENTS_SESSIONS_CONTENT_CONTENT_SERIALIZED_NAVIGATION_BUILDER_H_