Index: chrome/browser/instant/instant_web_contents_container.h |
diff --git a/chrome/browser/instant/instant_web_contents_container.h b/chrome/browser/instant/instant_web_contents_container.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..17f95060e8d559c4f4376386b4a2acb5dbf9de31 |
--- /dev/null |
+++ b/chrome/browser/instant/instant_web_contents_container.h |
@@ -0,0 +1,59 @@ |
+// Copyright 2013 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 CHROME_BROWSER_INSTANT_INSTANT_WEB_CONTENTS_CONTAINER_H_ |
+#define CHROME_BROWSER_INSTANT_INSTANT_WEB_CONTENTS_CONTAINER_H_ |
+ |
+#include "base/basictypes.h" |
+#include "base/compiler_specific.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "chrome/browser/instant/instant_page.h" |
+#include "chrome/browser/ui/tab_contents/core_tab_helper_delegate.h" |
+#include "content/public/browser/web_contents_delegate.h" |
+ |
+class InstantService; |
+ |
+namespace content { |
+class WebContents; |
+} |
+ |
+// InstantWebContentsContainer owns a WebContents that's shown as an Instant |
samarth
2013/03/01 17:59:53
I'm finding the relationship between InstantLoader
sreeram
2013/03/07 18:18:46
As discussed offline, I've kept the current struct
samarth
2013/03/11 19:03:24
Sorry, I'm looking at this again and this still do
|
+// overlay. It can't be instantiated per se, but exists by way of its derived |
+// classes (InstantLoader and InstantOverlay). It implements WebContentsDelegate |
+// methods that are common to the derived classes. It also owns an InstantPage |
+// object that it uses to talk the SearchBox API with its contents. |
+class InstantWebContentsContainer : public CoreTabHelperDelegate, |
+ public content::WebContentsDelegate { |
+ public: |
+ content::WebContents* contents() const { return contents_.get(); } |
+ |
+ protected: |
+ InstantWebContentsContainer(InstantPage::Delegate* delegate, |
+ InstantService* service); |
+ virtual ~InstantWebContentsContainer(); |
+ |
+ // Overridden from CoreTabHelperDelegate: |
+ virtual void SwapTabContents(content::WebContents* old_contents, |
+ content::WebContents* new_contents) OVERRIDE; |
+ |
+ // Overriden from content::WebContentsDelegate: |
+ virtual content::WebContents* OpenURLFromTab( |
+ content::WebContents* source, |
+ const content::OpenURLParams& params) OVERRIDE; |
+ virtual bool ShouldFocusPageAfterCrash() OVERRIDE; |
+ virtual bool CanDownload(content::RenderViewHost* render_view_host, |
+ int request_id, |
+ const std::string& request_method) OVERRIDE; |
+ virtual bool OnGoToEntryOffset(int offset) OVERRIDE; |
+ |
+ virtual void SetUpContents(); |
+ virtual void TearDownContents(); |
+ |
+ scoped_ptr<content::WebContents> contents_; |
+ InstantPage page_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(InstantWebContentsContainer); |
+}; |
+ |
+#endif // CHROME_BROWSER_INSTANT_INSTANT_WEB_CONTENTS_CONTAINER_H_ |