15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_TEST_BASE_TEST_BROWSER_WINDOW_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_TEST_BASE_TEST_BROWSER_WINDOW_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "build/build_config.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/download/test_download_shelf.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser_window.h"
144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "chrome/browser/ui/omnibox/location_bar.h"
154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class LocationBarTesting;
174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class OmniboxView;
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extensions {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Extension;
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// An implementation of BrowserWindow used for testing. TestBrowserWindow only
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// contains a valid LocationBar, all other getters return NULL.
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// See BrowserWithTestWindowTest for an example of using this class.
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class TestBrowserWindow : public BrowserWindow {
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestBrowserWindow();
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~TestBrowserWindow();
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // BrowserWindow:
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void Show() OVERRIDE {}
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowInactive() OVERRIDE {}
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void Hide() OVERRIDE {}
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE {}
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void Close() OVERRIDE {}
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void Activate() OVERRIDE {}
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void Deactivate() OVERRIDE {}
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsActive() const OVERRIDE;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void FlashFrame(bool flash) OVERRIDE {}
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsAlwaysOnTop() const OVERRIDE;
424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  virtual void SetAlwaysOnTop(bool always_on_top) OVERRIDE {}
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual gfx::NativeWindow GetNativeWindow() OVERRIDE;
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual BrowserWindowTesting* GetBrowserWindowTesting() OVERRIDE;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual StatusBubble* GetStatusBubble() OVERRIDE;
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void UpdateTitleBar() OVERRIDE {}
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void BookmarkBarStateChanged(
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      BookmarkBar::AnimateChangeType change_type) OVERRIDE {}
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void UpdateDevTools() OVERRIDE {}
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void UpdateLoadingAnimations(bool should_animate) OVERRIDE {}
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void SetStarredState(bool is_starred) OVERRIDE {}
52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual void SetTranslateIconToggled(bool is_lit) OVERRIDE {}
5368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  virtual void OnActiveTabChanged(content::WebContents* old_contents,
5468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                                  content::WebContents* new_contents,
5568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                                  int index,
5668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                                  int reason) OVERRIDE {}
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ZoomChangedForActiveTab(bool can_show_bubble) OVERRIDE {}
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual gfx::Rect GetRestoredBounds() const OVERRIDE;
59b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  virtual ui::WindowShowState GetRestoredState() const OVERRIDE;
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual gfx::Rect GetBounds() const OVERRIDE;
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsMaximized() const OVERRIDE;
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsMinimized() const OVERRIDE;
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void Maximize() OVERRIDE {}
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void Minimize() OVERRIDE {}
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void Restore() OVERRIDE {}
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void EnterFullscreen(
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GURL& url, FullscreenExitBubbleType type) OVERRIDE {}
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ExitFullscreen() OVERRIDE {}
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void UpdateFullscreenExitBubbleContent(
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GURL& url,
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      FullscreenExitBubbleType bubble_type) OVERRIDE {}
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool ShouldHideUIForFullscreen() const OVERRIDE;
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsFullscreen() const OVERRIDE;
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN)
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void SetMetroSnapMode(bool enable) OVERRIDE {}
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsInMetroSnapMode() const;
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsFullscreenBubbleVisible() const OVERRIDE;
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual LocationBar* GetLocationBar() const OVERRIDE;
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void SetFocusToLocationBar(bool select_all) OVERRIDE {}
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void UpdateReloadStopState(bool is_loading, bool force) OVERRIDE {}
823551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  virtual void UpdateToolbar(content::WebContents* contents) OVERRIDE {}
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void FocusToolbar() OVERRIDE {}
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void FocusAppMenu() OVERRIDE {}
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void FocusBookmarksToolbar() OVERRIDE {}
86c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual void FocusInfobars() OVERRIDE {}
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void RotatePaneFocus(bool forwards) OVERRIDE {}
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowAppMenu() OVERRIDE {}
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool PreHandleKeyboardEvent(
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const content::NativeWebKeyboardEvent& event,
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      bool* is_keyboard_shortcut) OVERRIDE;
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void HandleKeyboardEvent(
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const content::NativeWebKeyboardEvent& event) OVERRIDE {}
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsBookmarkBarVisible() const OVERRIDE;
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsBookmarkBarAnimating() const OVERRIDE;
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsTabStripEditable() const OVERRIDE;
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsToolbarVisible() const OVERRIDE;
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual gfx::Rect GetRootWindowResizerRect() const OVERRIDE;
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ConfirmAddSearchProvider(TemplateURL* template_url,
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                        Profile* profile) OVERRIDE {}
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowUpdateChromeDialog() OVERRIDE {}
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowBookmarkBubble(const GURL& url,
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                  bool already_bookmarked) OVERRIDE {}
1051e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  virtual void ShowTranslateBubble(
1061e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      content::WebContents* contents,
107a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      TranslateBubbleModel::ViewState view_state,
108a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      TranslateErrors::Type error_type) OVERRIDE {}
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(ENABLE_ONE_CLICK_SIGNIN)
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowOneClickSigninBubble(
1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      OneClickSigninBubbleType type,
112c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      const string16& email,
113c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      const string16& error_message,
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const StartSyncCallback& start_sync_callback) OVERRIDE {}
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsDownloadShelfVisible() const OVERRIDE;
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual DownloadShelf* GetDownloadShelf() OVERRIDE;
1183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  virtual void ConfirmBrowserCloseWithPendingDownloads(
1193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      int download_count,
1203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      Browser::DownloadClosePreventionType dialog_type,
1213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      bool app_modal,
1223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      const base::Callback<void(bool)>& callback) OVERRIDE {}
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void UserChangedTheme() OVERRIDE {}
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual int GetExtraRenderViewHeight() const OVERRIDE;
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void WebContentsFocused(content::WebContents* contents) OVERRIDE {}
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowWebsiteSettings(Profile* profile,
1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                   content::WebContents* web_contents,
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   const GURL& url,
1297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch                                   const content::SSLStatus& ssl) OVERRIDE {}
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void Cut() OVERRIDE {}
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void Copy() OVERRIDE {}
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void Paste() OVERRIDE {}
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void OpenTabpose() OVERRIDE {}
1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void EnterFullscreenWithChrome() OVERRIDE {}
1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool IsFullscreenWithChrome() OVERRIDE;
1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual bool IsFullscreenWithoutChrome() OVERRIDE;
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual WindowOpenDisposition GetDispositionForPopupBounds(
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const gfx::Rect& bounds) OVERRIDE;
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual FindBar* CreateFindBar() OVERRIDE;
14390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  virtual web_modal::WebContentsModalDialogHost*
144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      GetWebContentsModalDialogHost() OVERRIDE;
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowAvatarBubble(content::WebContents* web_contents,
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                const gfx::Rect& rect) OVERRIDE {}
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowAvatarBubbleFromAvatarButton() OVERRIDE {}
1482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void ShowPasswordGenerationBubble(
1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const gfx::Rect& rect,
15058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)      const autofill::PasswordForm& form,
1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      autofill::PasswordGenerator* generator) OVERRIDE {}
152424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  virtual int GetRenderViewHeightInsetWithDetachedBookmarkBar() OVERRIDE;
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected:
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void DestroyBrowser() OVERRIDE {}
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
1584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  class TestLocationBar : public LocationBar {
1594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)   public:
1604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    TestLocationBar() {}
1614e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual ~TestLocationBar() {}
1624e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
1634e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    // LocationBar:
1644e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual void ShowFirstRunBubble() OVERRIDE {}
1654e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual GURL GetDestinationURL() const OVERRIDE;
1664e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual WindowOpenDisposition GetWindowOpenDisposition() const OVERRIDE;
1674e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual content::PageTransition GetPageTransition() const OVERRIDE;
1684e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual void AcceptInput() OVERRIDE {}
1694e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual void FocusLocation(bool select_all) OVERRIDE {}
1704e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual void FocusSearch() OVERRIDE {}
1714e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual void UpdateContentSettingsIcons() OVERRIDE {}
172f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    virtual void UpdateManagePasswordsIconAndBubble() OVERRIDE {}
1734e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual void UpdatePageActions() OVERRIDE {}
1744e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual void InvalidatePageActions() OVERRIDE {}
1754e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual void UpdateOpenPDFInReaderPrompt() OVERRIDE {}
1764e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual void UpdateGeneratedCreditCardView() OVERRIDE {}
1774e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual void SaveStateToContents(content::WebContents* contents) OVERRIDE {}
1784e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual void Revert() OVERRIDE {}
179f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    virtual const OmniboxView* GetOmniboxView() const OVERRIDE;
180f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    virtual OmniboxView* GetOmniboxView() OVERRIDE;
1814e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    virtual LocationBarTesting* GetLocationBarForTesting() OVERRIDE;
1824e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
1834e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)   private:
1844e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    DISALLOW_COPY_AND_ASSIGN(TestLocationBar);
1854e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  };
1864e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestDownloadShelf download_shelf_;
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TestLocationBar location_bar_;
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(TestBrowserWindow);
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chrome {
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Helper that handle the lifetime of TestBrowserWindow instances.
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Browser* CreateBrowserWithTestWindowForParams(Browser::CreateParams* params);
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace chrome
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CHROME_TEST_BASE_TEST_BROWSER_WINDOW_H_
201