Chromium Code Reviews| 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_ |