| Index: ios/web/public/navigation_item.h
|
| diff --git a/ios/web/public/navigation_item.h b/ios/web/public/navigation_item.h
|
| index 59638f7ddf63183d1c30a47b56a9077f0ac6e868..8b2af55ac1b36e0c682ad20c135a9126fdcf7efe 100644
|
| --- a/ios/web/public/navigation_item.h
|
| +++ b/ios/web/public/navigation_item.h
|
| @@ -6,11 +6,15 @@
|
| #define IOS_WEB_PUBLIC_NAVIGATION_ITEM_H_
|
|
|
| #include "base/strings/string16.h"
|
| +#include "base/time/time.h"
|
| #include "ui/base/page_transition_types.h"
|
|
|
| class GURL;
|
|
|
| namespace web {
|
| +struct FaviconStatus;
|
| +struct Referrer;
|
| +struct SSLStatus;
|
|
|
| // A NavigationItem is a data structure that captures all the information
|
| // required to recreate a browsing state. It represents one point in the
|
| @@ -19,25 +23,83 @@ class NavigationItem {
|
| public:
|
| virtual ~NavigationItem() {}
|
|
|
| + // Page-related stuff --------------------------------------------------------
|
| +
|
| + // A unique ID is preserved across commits and redirects, which means that
|
| + // sometimes a NavigationEntry's unique ID needs to be set (e.g. when
|
| + // creating a committed entry to correspond to a to-be-deleted pending entry,
|
| + // the pending entry's ID must be copied).
|
| + virtual int GetUniqueID() const = 0;
|
| +
|
| // The actual URL of the page. For some about pages, this may be a scary
|
| // data: URL or something like that. Use GetVirtualURL() below for showing to
|
| // the user.
|
| + virtual void SetURL(const GURL& url) = 0;
|
| virtual const GURL& GetURL() const = 0;
|
|
|
| - // The URL that should be shown to the user. In most cases this is the same
|
| - // as the URL above, but in some case the underlying URL might not be
|
| - // suitable for display to the user.
|
| + // The referring URL. Can be empty.
|
| + virtual void SetReferrer(const Referrer& referrer) = 0;
|
| + virtual const Referrer& GetReferrer() const = 0;
|
| +
|
| + // The virtual URL, when nonempty, will override the actual URL of the page
|
| + // when we display it to the user. This allows us to have nice and friendly
|
| + // URLs that the user sees for things like about: URLs, but actually feed
|
| + // the renderer a data URL that results in the content loading.
|
| + //
|
| + // GetVirtualURL() will return the URL to display to the user in all cases, so
|
| + // if there is no overridden display URL, it will return the actual one.
|
| + virtual void SetVirtualURL(const GURL& url) = 0;
|
| virtual const GURL& GetVirtualURL() const = 0;
|
|
|
| // The title as set by the page. This will be empty if there is no title set.
|
| // The caller is responsible for detecting when there is no title and
|
| // displaying the appropriate "Untitled" label if this is being displayed to
|
| // the user.
|
| + virtual void SetTitle(const base::string16& title) = 0;
|
| virtual const base::string16& GetTitle() const = 0;
|
|
|
| + // Describes the current page that the tab represents. This is the ID that the
|
| + // renderer generated for the page and is how we can tell new versus
|
| + // renavigations.
|
| + virtual void SetPageID(int page_id) = 0;
|
| + virtual int32 GetPageID() const = 0;
|
| +
|
| + // Page-related helpers ------------------------------------------------------
|
| +
|
| + // Returns the title to be displayed on the tab. This could be the title of
|
| + // the page if it is available or the URL. |languages| is the list of
|
| + // accpeted languages (e.g., prefs::kAcceptLanguages) or empty if proper
|
| + // URL formatting isn't needed (e.g., unit tests).
|
| + virtual const base::string16& GetTitleForDisplay(
|
| + const std::string& languages) const = 0;
|
| +
|
| + // Tracking stuff ------------------------------------------------------------
|
| +
|
| // The transition type indicates what the user did to move to this page from
|
| // the previous page.
|
| + virtual void SetTransitionType(ui::PageTransition transition_type) = 0;
|
| virtual ui::PageTransition GetTransitionType() const = 0;
|
| +
|
| + // The favicon data and tracking information. See web::FaviconStatus.
|
| + virtual const FaviconStatus& GetFavicon() const = 0;
|
| + virtual FaviconStatus& GetFavicon() = 0;
|
| +
|
| + // All the SSL flags and state. See web::SSLStatus.
|
| + virtual const SSLStatus& GetSSL() const = 0;
|
| + virtual SSLStatus& GetSSL() = 0;
|
| +
|
| + // The time at which the last known local navigation has
|
| + // completed. (A navigation can be completed more than once if the
|
| + // page is reloaded.)
|
| + //
|
| + // If GetTimestamp() returns a null time, that means that either:
|
| + //
|
| + // - this navigation hasn't completed yet;
|
| + // - this navigation was restored and for some reason the
|
| + // timestamp wasn't available;
|
| + // - or this navigation was copied from a foreign session.
|
| + virtual void SetTimestamp(base::Time timestamp) = 0;
|
| + virtual base::Time GetTimestamp() const = 0;
|
| };
|
|
|
| } // namespace web
|
|
|