Index: components/sessions/ios/ios_live_tab.h |
diff --git a/components/sessions/ios/ios_live_tab.h b/components/sessions/ios/ios_live_tab.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2af822b73856ebf20d0d1df167c3dc437ee4dd81 |
--- /dev/null |
+++ b/components/sessions/ios/ios_live_tab.h |
@@ -0,0 +1,63 @@ |
+// Copyright 2015 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_IOS_IOS_LIVE_TAB_H_ |
+#define COMPONENTS_SESSIONS_IOS_IOS_LIVE_TAB_H_ |
+ |
+#include "base/basictypes.h" |
+#include "base/supports_user_data.h" |
+#include "components/sessions/core/live_tab.h" |
+#include "components/sessions/ios/ios_serialized_navigation_builder.h" |
+#include "ios/web/public/web_state/web_state.h" |
+ |
+namespace content { |
+class NavigationManager; |
+class NavigationEntry; |
+} |
+ |
+namespace sessions { |
+ |
+// An implementation of LiveTab that is backed by web::WebState for use |
+// on //ios/web-based platforms. |
+class SESSIONS_EXPORT IOSLiveTab : public LiveTab, |
+ public base::SupportsUserData::Data { |
+ public: |
+ ~IOSLiveTab() override; |
+ |
+ // Returns the IOSLiveTab associated with |web_state|, creating it if |
+ // it has not already been created. |
+ static IOSLiveTab* GetForWebState(web::WebState* web_state); |
+ |
+ // LiveTab: |
+ int GetCurrentEntryIndex() override; |
+ int GetPendingEntryIndex() override; |
+ sessions::SerializedNavigationEntry GetEntryAtIndex(int index) override; |
+ sessions::SerializedNavigationEntry GetPendingEntry() override; |
+ int GetEntryCount() override; |
+ void LoadIfNecessary() override; |
+ const std::string& GetUserAgentOverride() const override; |
+ |
+ web::WebState* web_state() { return web_state_; } |
+ const web::WebState* web_state() const { return web_state_; } |
+ |
+ private: |
+ friend class base::SupportsUserData; |
+ |
+ explicit IOSLiveTab(web::WebState* web_state); |
+ |
+ web::NavigationManager* navigation_manager() { |
+ return web_state_->GetNavigationManager(); |
+ } |
+ |
+ web::WebState* web_state_; |
+ |
+ // Needed to return an empty string in GetUserAgentOverride(). |
+ static std::string user_agent_override_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(IOSLiveTab); |
+}; |
+ |
+} // namespace sessions |
+ |
+#endif // COMPONENTS_SESSIONS_IOS_IOS_LIVE_TAB_H_ |