Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(599)

Unified Diff: components/sessions/ios/ios_live_tab.h

Issue 1372103002: [sessions] Introduce iOS implementation of LiveTab interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/sessions/BUILD.gn ('k') | components/sessions/ios/ios_live_tab.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..49385cce05d20ef0d10fd0385c0f370fbe186b77
--- /dev/null
+++ b/components/sessions/ios/ios_live_tab.h
@@ -0,0 +1,63 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
sdefresne 2015/09/28 15:24:55 nit: 2015 and remove "(c)"
blundell 2015/09/28 15:28:22 Done.
+// 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_LIVE_TAB_H_
+#define COMPONENTS_SESSIONS_CONTENT_CONTENT_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_CONTENT_CONTENT_LIVE_TAB_H_
« no previous file with comments | « components/sessions/BUILD.gn ('k') | components/sessions/ios/ios_live_tab.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698