1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Use of this source code is governed by a BSD-style license that can be 3731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// found in the LICENSE file. 4731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 5731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#ifndef CHROME_BROWSER_INSTANT_INSTANT_LOADER_DELEGATE_H_ 6731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#define CHROME_BROWSER_INSTANT_INSTANT_LOADER_DELEGATE_H_ 7731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#pragma once 8731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 9731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "base/string16.h" 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/common/instant_types.h" 11731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass GURL; 13731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 14731df977c0511bca2206b5f333555b1205ff1f43Iain Merricknamespace gfx { 15731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass Rect; 16731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 17731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 18731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass InstantLoader; 19731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 20731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// InstantLoader's delegate. This interface is implemented by InstantController. 21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass InstantLoaderDelegate { 22731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick public: 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Invoked when the status (either http_status_ok or ready) has changed. 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void InstantStatusChanged(InstantLoader* loader) = 0; 25731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 26731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Invoked when the loader has suggested text. 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void SetSuggestedTextFor( 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen InstantLoader* loader, 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const string16& text, 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen InstantCompleteBehavior behavior) = 0; 31731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 32731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Returns the bounds of instant. 33731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual gfx::Rect GetInstantBounds() = 0; 34731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 35731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Returns true if instant should be committed on mouse up. 36731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual bool ShouldCommitInstantOnMouseUp() = 0; 37731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 38731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Invoked when the the loader should be committed. 39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual void CommitInstantLoader(InstantLoader* loader) = 0; 40731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 41731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Invoked if the loader was created with the intention that the site supports 42201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // instant, but it turned out the site doesn't support instant. 43201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch virtual void InstantLoaderDoesntSupportInstant(InstantLoader* loader) = 0; 44201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 45201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch // Adds the specified url to the set of urls instant won't prefetch for. 46201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch virtual void AddToBlacklist(InstantLoader* loader, const GURL& url) = 0; 47731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 48731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick protected: 49731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual ~InstantLoaderDelegate() {} 50731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}; 51731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 52731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#endif // CHROME_BROWSER_INSTANT_INSTANT_LOADER_DELEGATE_H_ 53