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

Unified Diff: chrome/browser/instant/instant_loader.cc

Issue 6724014: Moves instant related tab contents messages into instant and out of (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | content/browser/tab_contents/tab_contents.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/instant/instant_loader.cc
diff --git a/chrome/browser/instant/instant_loader.cc b/chrome/browser/instant/instant_loader.cc
index 167a84f1f7c655d0599edfdf9d12f014d47ce36c..fc8a84f64af905676c7ee83c6858ded43f03bdb4 100644
--- a/chrome/browser/instant/instant_loader.cc
+++ b/chrome/browser/instant/instant_loader.cc
@@ -137,7 +137,8 @@ void InstantLoader::FrameLoadObserver::Observe(
class InstantLoader::TabContentsDelegateImpl
: public TabContentsDelegate,
- public NotificationObserver {
+ public NotificationObserver,
+ public TabContentsObserver {
public:
explicit TabContentsDelegateImpl(InstantLoader* loader);
@@ -212,17 +213,25 @@ class InstantLoader::TabContentsDelegateImpl
virtual bool ShouldAddNavigationToHistory(
const history::HistoryAddPageArgs& add_page_args,
NavigationType::Type navigation_type) OVERRIDE;
- virtual void OnSetSuggestions(
- int32 page_id,
- const std::vector<std::string>& suggestions,
- InstantCompleteBehavior behavior) OVERRIDE;
- virtual void OnInstantSupportDetermined(int32 page_id, bool result) OVERRIDE;
virtual bool ShouldShowHungRendererDialog() OVERRIDE;
+ // TabContentsObserver:
+ virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
+
private:
typedef std::vector<scoped_refptr<history::HistoryAddPageArgs> >
AddPageVector;
+ // Message from renderer indicating the page has suggestions.
+ void OnSetSuggestions(
+ int32 page_id,
+ const std::vector<std::string>& suggestions,
+ InstantCompleteBehavior behavior);
+
+ // Messages from the renderer when we've determined whether the page supports
+ // instant.
+ void OnInstantSupportDetermined(int32 page_id, bool result);
+
void CommitFromMouseReleaseIfNecessary();
InstantLoader* loader_;
@@ -254,7 +263,8 @@ class InstantLoader::TabContentsDelegateImpl
InstantLoader::TabContentsDelegateImpl::TabContentsDelegateImpl(
InstantLoader* loader)
- : loader_(loader),
+ : TabContentsObserver(loader->preview_contents()->tab_contents()),
+ loader_(loader),
registered_render_widget_host_(NULL),
waiting_for_new_page_(true),
is_mouse_down_from_activate_(false),
@@ -523,6 +533,25 @@ bool InstantLoader::TabContentsDelegateImpl::ShouldAddNavigationToHistory(
return false;
}
+bool InstantLoader::TabContentsDelegateImpl::ShouldShowHungRendererDialog() {
+ // If we allow the hung renderer dialog to be shown it'll gain focus,
+ // stealing focus from the omnibox causing instant to be cancelled. Return
+ // false so that doesn't happen.
+ return false;
+}
+
+bool InstantLoader::TabContentsDelegateImpl::OnMessageReceived(
+ const IPC::Message& message) {
+ bool handled = true;
+ IPC_BEGIN_MESSAGE_MAP(TabContentsDelegateImpl, message)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_SetSuggestions, OnSetSuggestions)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_InstantSupportDetermined,
+ OnInstantSupportDetermined)
+ IPC_MESSAGE_UNHANDLED(handled = false)
+ IPC_END_MESSAGE_MAP()
+ return handled;
+}
+
void InstantLoader::TabContentsDelegateImpl::OnSetSuggestions(
int32 page_id,
const std::vector<std::string>& suggestions,
@@ -558,13 +587,6 @@ void InstantLoader::TabContentsDelegateImpl::OnInstantSupportDetermined(
loader_->PageDoesntSupportInstant(user_typed_before_load_);
}
-bool InstantLoader::TabContentsDelegateImpl::ShouldShowHungRendererDialog() {
- // If we allow the hung renderer dialog to be shown it'll gain focus,
- // stealing focus from the omnibox causing instant to be cancelled. Return
- // false so that doesn't happen.
- return false;
-}
-
void InstantLoader::TabContentsDelegateImpl
::CommitFromMouseReleaseIfNecessary() {
bool was_down = is_mouse_down_from_activate_;
« no previous file with comments | « no previous file | content/browser/tab_contents/tab_contents.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698