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

Side by Side 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, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_IMPL_H_
6 #define CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_IMPL_H_
7
8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "base/string16.h"
12 #include "base/timer.h"
13 #include "chrome/browser/instant/instant_controller.h"
14 #include "chrome/browser/instant/instant_service_observer.h"
15 #include "content/public/common/page_transition_types.h"
16 #include "googleurl/src/gurl.h"
17 #include "ui/gfx/rect.h"
18
19 class InstantModel;
20 class InstantOverlay;
21 class InstantService;
22 class Profile;
23
24 namespace chrome {
25 class BrowserInstantController;
26 }
27
28 class InstantControllerImpl : public InstantController,
29 public InstantServiceObserver {
30 public:
31 InstantControllerImpl(chrome::BrowserInstantController* browser,
32 Profile* profile);
33
34 private:
35 virtual ~InstantControllerImpl();
36
37 // Overridden from InstantController:
38 virtual bool Update(const AutocompleteMatch& match,
39 const string16& user_text,
40 const string16& full_text,
41 size_t selection_start,
42 size_t selection_end,
43 bool verbatim,
44 bool user_input_in_progress,
45 bool omnibox_popup_is_open,
46 bool escape_pressed) OVERRIDE;
47 virtual void HandleAutocompleteResults(
48 const std::vector<AutocompleteProvider*>& providers) OVERRIDE;
49 virtual bool OnUpOrDownKeyPressed(int count) OVERRIDE;
50 virtual void OnCancel(const AutocompleteMatch& match,
51 const string16& full_text) OVERRIDE;
52 virtual const InstantModel* model() const OVERRIDE;
53 virtual bool IsOverlayingSearchResults() const OVERRIDE;
54 virtual content::WebContents* GetOverlayContents() const OVERRIDE;
55 virtual bool CommitIfPossible(InstantCommitType type) OVERRIDE;
56 virtual scoped_ptr<content::WebContents> ReleaseNTPContents() OVERRIDE;
57 virtual void AddModelObserver(InstantModelObserver* observer) OVERRIDE;
58 virtual void RemoveModelObserver(InstantModelObserver* observer) OVERRIDE;
59 virtual void SetPopupBounds(const gfx::Rect& bounds) OVERRIDE;
60 virtual void SetOmniboxBounds(const gfx::Rect& bounds) OVERRIDE;
61 virtual void BookmarkBarStateChanged(bool is_detached) OVERRIDE;
62 virtual void OmniboxFocusChanged(OmniboxFocusState state,
63 OmniboxFocusChangeReason reason,
64 gfx::NativeView view_gaining_focus) OVERRIDE;
65 virtual void TabDeactivated(content::WebContents* contents) OVERRIDE;
66 virtual void SearchModeChanged(const chrome::search::Mode& old_mode,
67 const chrome::search::Mode& new_mode) OVERRIDE;
68 virtual void ActiveTabChanged() OVERRIDE;
69 virtual void SwappedOverlayContents() OVERRIDE;
70 virtual void FocusedOverlayContents() OVERRIDE;
71 virtual void RenderViewGone(const content::WebContents* contents) OVERRIDE;
72 virtual void InitSearchBox(const content::WebContents* contents) OVERRIDE;
73 virtual void InstantSupportDetermined(
74 const content::WebContents* contents) OVERRIDE;
75 virtual void SetSuggestion(const content::WebContents* contents,
76 const InstantSuggestion& suggestion) OVERRIDE;
77 virtual void NavigateToURL(const content::WebContents* contents,
78 const GURL& url,
79 content::PageTransition transition,
80 WindowOpenDisposition disposition) OVERRIDE;
81 virtual void ShowOverlay(const content::WebContents* contents,
82 int height,
83 bool is_height_in_pixels) OVERRIDE;
84 virtual void StartKeyCapture(const content::WebContents* contents) OVERRIDE;
85 virtual void StopKeyCapture(const content::WebContents* contents) OVERRIDE;
86 virtual void DeleteMostVisitedItem(const content::WebContents* contents,
87 const GURL& url) OVERRIDE;
88 virtual void UndoMostVisitedItemDeletion(const content::WebContents* contents,
89 const GURL& url) OVERRIDE;
90 virtual void UndoAllMostVisitedItemDeletions(
91 const content::WebContents* contents) OVERRIDE;
92
93 // Overridden from InstantServiceObserver:
94 virtual void InstantStatusChanged() OVERRIDE;
95 virtual void ThemeInfoChanged() OVERRIDE;
96 virtual void MostVisitedItemsChanged() OVERRIDE;
97 virtual void InstantSupportDecided() OVERRIDE;
98
99 void HideOverlay();
100 void SendPopupBoundsToPage();
101
102 chrome::BrowserInstantController* const browser_;
103 InstantService* const service_;
104 scoped_ptr<InstantOverlay> overlay_;
105 scoped_ptr<InstantModel> model_;
106
107 string16 last_omnibox_text_;
108 bool last_verbatim_;
109 content::PageTransition last_transition_type_;
110 GURL url_for_history_;
111
112 gfx::Rect popup_bounds_; // Current popup bounds.
113 gfx::Rect last_popup_bounds_; // Last popup bounds sent to the page.
114 base::OneShotTimer<InstantControllerImpl> update_bounds_timer_;
115
116 DISALLOW_COPY_AND_ASSIGN(InstantControllerImpl);
117 };
118
119 #endif // CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698