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 |