diff options
Diffstat (limited to 'chromium/content/shell/browser/shell.h')
-rw-r--r-- | chromium/content/shell/browser/shell.h | 290 |
1 files changed, 0 insertions, 290 deletions
diff --git a/chromium/content/shell/browser/shell.h b/chromium/content/shell/browser/shell.h deleted file mode 100644 index 1434b76c119..00000000000 --- a/chromium/content/shell/browser/shell.h +++ /dev/null @@ -1,290 +0,0 @@ -// 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 CONTENT_SHELL_BROWSER_SHELL_H_ -#define CONTENT_SHELL_BROWSER_SHELL_H_ - - -#include <vector> - -#include "base/basictypes.h" -#include "base/callback_forward.h" -#include "base/memory/scoped_ptr.h" -#include "base/strings/string_piece.h" -#include "build/build_config.h" -#include "content/public/browser/web_contents_delegate.h" -#include "content/public/browser/web_contents_observer.h" -#include "ipc/ipc_channel.h" -#include "ui/gfx/native_widget_types.h" -#include "ui/gfx/size.h" - -#if defined(TOOLKIT_GTK) -#include <gtk/gtk.h> -#include "ui/base/gtk/gtk_signal.h" - -typedef struct _GtkToolItem GtkToolItem; -#elif defined(OS_ANDROID) -#include "base/android/scoped_java_ref.h" -#elif defined(USE_AURA) -#if defined(OS_CHROMEOS) -namespace wm { -class WMTestHelper; -} -#endif // defined(OS_CHROMEOS) -namespace views { -class Widget; -class ViewsDelegate; -} -#endif // defined(USE_AURA) - -class GURL; -namespace content { - -#if defined(USE_AURA) -class ShellAuraPlatformData; -#endif - -class BrowserContext; -class ShellDevToolsFrontend; -class ShellJavaScriptDialogManager; -class SiteInstance; -class WebContents; - -// This represents one window of the Content Shell, i.e. all the UI including -// buttons and url bar, as well as the web content area. -class Shell : public WebContentsDelegate, - public WebContentsObserver { - public: - static const int kDefaultTestWindowWidthDip; - static const int kDefaultTestWindowHeightDip; - - virtual ~Shell(); - - void LoadURL(const GURL& url); - void LoadURLForFrame(const GURL& url, const std::string& frame_name); - void GoBackOrForward(int offset); - void Reload(); - void Stop(); - void UpdateNavigationControls(); - void Close(); - void ShowDevTools(); - void CloseDevTools(); -#if (defined(OS_WIN) && !defined(USE_AURA)) || \ - defined(TOOLKIT_GTK) || defined(OS_MACOSX) - // Resizes the main window to the given dimensions. - void SizeTo(const gfx::Size& content_size); -#endif - - // Do one time initialization at application startup. - static void Initialize(); - - static Shell* CreateNewWindow(BrowserContext* browser_context, - const GURL& url, - SiteInstance* site_instance, - int routing_id, - const gfx::Size& initial_size); - - // Returns the Shell object corresponding to the given RenderViewHost. - static Shell* FromRenderViewHost(RenderViewHost* rvh); - - // Returns the currently open windows. - static std::vector<Shell*>& windows() { return windows_; } - - // Closes all windows and returns. This runs a message loop. - static void CloseAllWindows(); - - // Used for content_browsertests. Called once. - static void SetShellCreatedCallback( - base::Callback<void(Shell*)> shell_created_callback); - - WebContents* web_contents() const { return web_contents_.get(); } - gfx::NativeWindow window() { return window_; } - -#if defined(OS_MACOSX) - // Public to be called by an ObjC bridge object. - void ActionPerformed(int control); - void URLEntered(std::string url_string); -#elif defined(OS_ANDROID) - // Registers the Android Java to native methods. - static bool Register(JNIEnv* env); -#endif - - // WebContentsDelegate - virtual WebContents* OpenURLFromTab(WebContents* source, - const OpenURLParams& params) OVERRIDE; - virtual void AddNewContents(WebContents* source, - WebContents* new_contents, - WindowOpenDisposition disposition, - const gfx::Rect& initial_pos, - bool user_gesture, - bool* was_blocked) OVERRIDE; - virtual void LoadingStateChanged(WebContents* source) OVERRIDE; -#if defined(OS_ANDROID) - virtual void LoadProgressChanged(WebContents* source, - double progress) OVERRIDE; -#endif - virtual void ToggleFullscreenModeForTab(WebContents* web_contents, - bool enter_fullscreen) OVERRIDE; - virtual bool IsFullscreenForTabOrPending( - const WebContents* web_contents) const OVERRIDE; - virtual void RequestToLockMouse(WebContents* web_contents, - bool user_gesture, - bool last_unlocked_by_target) OVERRIDE; - virtual void CloseContents(WebContents* source) OVERRIDE; - virtual bool CanOverscrollContent() const OVERRIDE; - virtual void DidNavigateMainFramePostCommit( - WebContents* web_contents) OVERRIDE; - virtual JavaScriptDialogManager* GetJavaScriptDialogManager() OVERRIDE; -#if defined(OS_MACOSX) - virtual void HandleKeyboardEvent( - WebContents* source, - const NativeWebKeyboardEvent& event) OVERRIDE; -#endif - virtual bool AddMessageToConsole(WebContents* source, - int32 level, - const base::string16& message, - int32 line_no, - const base::string16& source_id) OVERRIDE; - virtual void RendererUnresponsive(WebContents* source) OVERRIDE; - virtual void ActivateContents(WebContents* contents) OVERRIDE; - virtual void DeactivateContents(WebContents* contents) OVERRIDE; - virtual void WorkerCrashed(WebContents* source) OVERRIDE; - - private: - enum UIControl { - BACK_BUTTON, - FORWARD_BUTTON, - STOP_BUTTON - }; - - class DevToolsWebContentsObserver; - - explicit Shell(WebContents* web_contents); - - // Helper to create a new Shell given a newly created WebContents. - static Shell* CreateShell(WebContents* web_contents, - const gfx::Size& initial_size); - - // Helper for one time initialization of application - static void PlatformInitialize(const gfx::Size& default_window_size); - // Helper for one time deinitialization of platform specific state. - static void PlatformExit(); - - // Adjust the size when Blink sends 0 for width and/or height. - // This happens when Blink requests a default-sized window. - static gfx::Size AdjustWindowSize(const gfx::Size& initial_size); - - // All the methods that begin with Platform need to be implemented by the - // platform specific Shell implementation. - // Called from the destructor to let each platform do any necessary cleanup. - void PlatformCleanUp(); - // Creates the main window GUI. - void PlatformCreateWindow(int width, int height); - // Links the WebContents into the newly created window. - void PlatformSetContents(); - // Resize the content area and GUI. - void PlatformResizeSubViews(); - // Enable/disable a button. - void PlatformEnableUIControl(UIControl control, bool is_enabled); - // Updates the url in the url bar. - void PlatformSetAddressBarURL(const GURL& url); - // Sets whether the spinner is spinning. - void PlatformSetIsLoading(bool loading); - // Set the title of shell window - void PlatformSetTitle(const base::string16& title); -#if defined(OS_ANDROID) - void PlatformToggleFullscreenModeForTab(WebContents* web_contents, - bool enter_fullscreen); - bool PlatformIsFullscreenForTabOrPending( - const WebContents* web_contents) const; -#endif - - gfx::NativeView GetContentView(); - - // WebContentsObserver - virtual void TitleWasSet(NavigationEntry* entry, bool explicit_set) OVERRIDE; - - void OnDevToolsWebContentsDestroyed(); - -#if defined(OS_WIN) && !defined(USE_AURA) - static ATOM RegisterWindowClass(); - static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); - static LRESULT CALLBACK EditWndProc(HWND, UINT, WPARAM, LPARAM); -#elif defined(TOOLKIT_GTK) - CHROMEGTK_CALLBACK_0(Shell, void, OnBackButtonClicked); - CHROMEGTK_CALLBACK_0(Shell, void, OnForwardButtonClicked); - CHROMEGTK_CALLBACK_0(Shell, void, OnReloadButtonClicked); - CHROMEGTK_CALLBACK_0(Shell, void, OnStopButtonClicked); - CHROMEGTK_CALLBACK_0(Shell, void, OnURLEntryActivate); - CHROMEGTK_CALLBACK_0(Shell, gboolean, OnWindowDestroyed); - - CHROMEG_CALLBACK_3(Shell, gboolean, OnCloseWindowKeyPressed, GtkAccelGroup*, - GObject*, guint, GdkModifierType); - CHROMEG_CALLBACK_3(Shell, gboolean, OnNewWindowKeyPressed, GtkAccelGroup*, - GObject*, guint, GdkModifierType); - CHROMEG_CALLBACK_3(Shell, gboolean, OnHighlightURLView, GtkAccelGroup*, - GObject*, guint, GdkModifierType); - CHROMEG_CALLBACK_3(Shell, gboolean, OnReloadKeyPressed, GtkAccelGroup*, - GObject*, guint, GdkModifierType); -#endif - - scoped_ptr<ShellJavaScriptDialogManager> dialog_manager_; - - scoped_ptr<WebContents> web_contents_; - - scoped_ptr<DevToolsWebContentsObserver> devtools_observer_; - ShellDevToolsFrontend* devtools_frontend_; - - bool is_fullscreen_; - - gfx::NativeWindow window_; - gfx::NativeEditView url_edit_view_; - - gfx::Size content_size_; - -#if defined(OS_WIN) && !defined(USE_AURA) - WNDPROC default_edit_wnd_proc_; - static HINSTANCE instance_handle_; -#elif defined(TOOLKIT_GTK) - GtkWidget* vbox_; - - GtkToolItem* back_button_; - GtkToolItem* forward_button_; - GtkToolItem* reload_button_; - GtkToolItem* stop_button_; - - GtkWidget* spinner_; - GtkToolItem* spinner_item_; - - int ui_elements_height_; // height of menubar, toolbar, etc. -#elif defined(OS_ANDROID) - base::android::ScopedJavaGlobalRef<jobject> java_object_; -#elif defined(USE_AURA) -#if defined(OS_CHROMEOS) - static wm::WMTestHelper* wm_test_helper_; -#endif -#if defined(TOOLKIT_VIEWS) - static views::ViewsDelegate* views_delegate_; - - views::Widget* window_widget_; -#else // defined(TOOLKIT_VIEWS) - static ShellAuraPlatformData* platform_; -#endif // defined(TOOLKIT_VIEWS) -#endif - - bool headless_; - - // A container of all the open windows. We use a vector so we can keep track - // of ordering. - static std::vector<Shell*> windows_; - - static base::Callback<void(Shell*)> shell_created_callback_; - - // True if the destructur of Shell should post a quit closure on the current - // message loop if the destructed Shell object was the last one. - static bool quit_message_loop_; -}; - -} // namespace content - -#endif // CONTENT_SHELL_BROWSER_SHELL_H_ |