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

Unified Diff: chrome/browser/instant/instant_controller_impl.h

Issue 12386019: Instant: Use only one hidden WebContents per profile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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
Index: chrome/browser/instant/instant_controller_impl.h
diff --git a/chrome/browser/instant/instant_controller_impl.h b/chrome/browser/instant/instant_controller_impl.h
new file mode 100644
index 0000000000000000000000000000000000000000..4640858951771a55b6d95680ac4bb02746ba2985
--- /dev/null
+++ b/chrome/browser/instant/instant_controller_impl.h
@@ -0,0 +1,119 @@
+// 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_CONTROLLER_IMPL_H_
+#define CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_IMPL_H_
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/string16.h"
+#include "base/timer.h"
+#include "chrome/browser/instant/instant_controller.h"
+#include "chrome/browser/instant/instant_service_observer.h"
+#include "content/public/common/page_transition_types.h"
+#include "googleurl/src/gurl.h"
+#include "ui/gfx/rect.h"
+
+class InstantModel;
+class InstantOverlay;
+class InstantService;
+class Profile;
+
+namespace chrome {
+class BrowserInstantController;
+}
+
+class InstantControllerImpl : public InstantController,
+ public InstantServiceObserver {
+ public:
+ InstantControllerImpl(chrome::BrowserInstantController* browser,
+ Profile* profile);
+
+ private:
+ virtual ~InstantControllerImpl();
+
+ // Overridden from InstantController:
+ virtual bool Update(const AutocompleteMatch& match,
+ const string16& user_text,
+ const string16& full_text,
+ size_t selection_start,
+ size_t selection_end,
+ bool verbatim,
+ bool user_input_in_progress,
+ bool omnibox_popup_is_open,
+ bool escape_pressed) OVERRIDE;
+ virtual void HandleAutocompleteResults(
+ const std::vector<AutocompleteProvider*>& providers) OVERRIDE;
+ virtual bool OnUpOrDownKeyPressed(int count) OVERRIDE;
+ virtual void OnCancel(const AutocompleteMatch& match,
+ const string16& full_text) OVERRIDE;
+ virtual const InstantModel* model() const OVERRIDE;
+ virtual bool IsOverlayingSearchResults() const OVERRIDE;
+ virtual content::WebContents* GetOverlayContents() const OVERRIDE;
+ virtual bool CommitIfPossible(InstantCommitType type) OVERRIDE;
+ virtual scoped_ptr<content::WebContents> ReleaseNTPContents() OVERRIDE;
+ virtual void AddModelObserver(InstantModelObserver* observer) OVERRIDE;
+ virtual void RemoveModelObserver(InstantModelObserver* observer) OVERRIDE;
+ virtual void SetPopupBounds(const gfx::Rect& bounds) OVERRIDE;
+ virtual void SetOmniboxBounds(const gfx::Rect& bounds) OVERRIDE;
+ virtual void BookmarkBarStateChanged(bool is_detached) OVERRIDE;
+ virtual void OmniboxFocusChanged(OmniboxFocusState state,
+ OmniboxFocusChangeReason reason,
+ gfx::NativeView view_gaining_focus) OVERRIDE;
+ virtual void TabDeactivated(content::WebContents* contents) OVERRIDE;
+ virtual void SearchModeChanged(const chrome::search::Mode& old_mode,
+ const chrome::search::Mode& new_mode) OVERRIDE;
+ virtual void ActiveTabChanged() OVERRIDE;
+ virtual void SwappedOverlayContents() OVERRIDE;
+ virtual void FocusedOverlayContents() OVERRIDE;
+ virtual void RenderViewGone(const content::WebContents* contents) OVERRIDE;
+ virtual void InitSearchBox(const content::WebContents* contents) OVERRIDE;
+ virtual void InstantSupportDetermined(
+ const content::WebContents* contents) OVERRIDE;
+ virtual void SetSuggestion(const content::WebContents* contents,
+ const InstantSuggestion& suggestion) OVERRIDE;
+ virtual void NavigateToURL(const content::WebContents* contents,
+ const GURL& url,
+ content::PageTransition transition,
+ WindowOpenDisposition disposition) OVERRIDE;
+ virtual void ShowOverlay(const content::WebContents* contents,
+ int height,
+ bool is_height_in_pixels) OVERRIDE;
+ virtual void StartKeyCapture(const content::WebContents* contents) OVERRIDE;
+ virtual void StopKeyCapture(const content::WebContents* contents) OVERRIDE;
+ virtual void DeleteMostVisitedItem(const content::WebContents* contents,
+ const GURL& url) OVERRIDE;
+ virtual void UndoMostVisitedItemDeletion(const content::WebContents* contents,
+ const GURL& url) OVERRIDE;
+ virtual void UndoAllMostVisitedItemDeletions(
+ const content::WebContents* contents) OVERRIDE;
+
+ // Overridden from InstantServiceObserver:
+ virtual void InstantStatusChanged() OVERRIDE;
+ virtual void ThemeInfoChanged() OVERRIDE;
+ virtual void MostVisitedItemsChanged() OVERRIDE;
+ virtual void InstantSupportDecided() OVERRIDE;
+
+ void HideOverlay();
+ void SendPopupBoundsToPage();
+
+ chrome::BrowserInstantController* const browser_;
+ InstantService* const service_;
+ scoped_ptr<InstantOverlay> overlay_;
+ scoped_ptr<InstantModel> model_;
+
+ string16 last_omnibox_text_;
+ bool last_verbatim_;
+ content::PageTransition last_transition_type_;
+ GURL url_for_history_;
+
+ gfx::Rect popup_bounds_; // Current popup bounds.
+ gfx::Rect last_popup_bounds_; // Last popup bounds sent to the page.
+ base::OneShotTimer<InstantControllerImpl> update_bounds_timer_;
+
+ DISALLOW_COPY_AND_ASSIGN(InstantControllerImpl);
+};
+
+#endif // CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_IMPL_H_

Powered by Google App Engine
This is Rietveld 408576698