OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CONTENT_SHELL_SHELL_H_ | 5 #ifndef CONTENT_SHELL_SHELL_H_ |
6 #define CONTENT_SHELL_SHELL_H_ | 6 #define CONTENT_SHELL_SHELL_H_ |
7 | 7 |
8 #pragma once | 8 #pragma once |
9 | 9 |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
13 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
14 #include "base/string_piece.h" | 14 #include "base/string_piece.h" |
15 #include "content/public/browser/web_contents_delegate.h" | 15 #include "content/public/browser/web_contents_delegate.h" |
16 #include "content/public/browser/web_contents_observer.h" | 16 #include "content/public/browser/web_contents_observer.h" |
17 #include "ui/gfx/native_widget_types.h" | 17 #include "ui/gfx/native_widget_types.h" |
18 | 18 |
19 #if defined(OS_LINUX) | 19 #if defined(OS_LINUX) |
20 #include <gtk/gtk.h> | 20 #include <gtk/gtk.h> |
21 #include "ui/base/gtk/gtk_signal.h" | 21 #include "ui/base/gtk/gtk_signal.h" |
22 | 22 |
23 typedef struct _GtkToolItem GtkToolItem; | 23 typedef struct _GtkToolItem GtkToolItem; |
24 #endif | 24 #endif |
25 | 25 |
26 class GURL; | 26 class GURL; |
27 class WebContents; | 27 class WebContents; |
28 | 28 |
29 namespace content { | 29 namespace content { |
| 30 |
30 class BrowserContext; | 31 class BrowserContext; |
| 32 class ShellJavaScriptDialogCreator; |
31 class SiteInstance; | 33 class SiteInstance; |
32 | 34 |
33 // This represents one window of the Content Shell, i.e. all the UI including | 35 // This represents one window of the Content Shell, i.e. all the UI including |
34 // buttons and url bar, as well as the web content area. | 36 // buttons and url bar, as well as the web content area. |
35 class Shell : public WebContentsDelegate, | 37 class Shell : public WebContentsDelegate, |
36 public WebContentsObserver { | 38 public WebContentsObserver { |
37 public: | 39 public: |
38 virtual ~Shell(); | 40 virtual ~Shell(); |
39 | 41 |
40 void LoadURL(const GURL& url); | 42 void LoadURL(const GURL& url); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 | 110 |
109 gfx::NativeView GetContentView(); | 111 gfx::NativeView GetContentView(); |
110 | 112 |
111 // content::WebContentsDelegate | 113 // content::WebContentsDelegate |
112 virtual void LoadingStateChanged(WebContents* source) OVERRIDE; | 114 virtual void LoadingStateChanged(WebContents* source) OVERRIDE; |
113 virtual void WebContentsCreated(WebContents* source_contents, | 115 virtual void WebContentsCreated(WebContents* source_contents, |
114 int64 source_frame_id, | 116 int64 source_frame_id, |
115 const GURL& target_url, | 117 const GURL& target_url, |
116 WebContents* new_contents) OVERRIDE; | 118 WebContents* new_contents) OVERRIDE; |
117 virtual void DidNavigateMainFramePostCommit(WebContents* tab) OVERRIDE; | 119 virtual void DidNavigateMainFramePostCommit(WebContents* tab) OVERRIDE; |
| 120 virtual JavaScriptDialogCreator* GetJavaScriptDialogCreator() OVERRIDE; |
118 #if defined(OS_MACOSX) | 121 #if defined(OS_MACOSX) |
119 virtual void HandleKeyboardEvent( | 122 virtual void HandleKeyboardEvent( |
120 const NativeWebKeyboardEvent& event) OVERRIDE; | 123 const NativeWebKeyboardEvent& event) OVERRIDE; |
121 #endif | 124 #endif |
122 | 125 |
123 // content::WebContentsObserver | 126 // content::WebContentsObserver |
124 virtual void DidFinishLoad(int64 frame_id, | 127 virtual void DidFinishLoad(int64 frame_id, |
125 const GURL& validated_url, | 128 const GURL& validated_url, |
126 bool is_main_frame) OVERRIDE; | 129 bool is_main_frame) OVERRIDE; |
127 | 130 |
128 #if defined(OS_WIN) | 131 #if defined(OS_WIN) |
129 static ATOM RegisterWindowClass(); | 132 static ATOM RegisterWindowClass(); |
130 static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); | 133 static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); |
131 static LRESULT CALLBACK EditWndProc(HWND, UINT, WPARAM, LPARAM); | 134 static LRESULT CALLBACK EditWndProc(HWND, UINT, WPARAM, LPARAM); |
132 #elif defined(OS_LINUX) | 135 #elif defined(OS_LINUX) |
133 CHROMEGTK_CALLBACK_0(Shell, void, OnBackButtonClicked); | 136 CHROMEGTK_CALLBACK_0(Shell, void, OnBackButtonClicked); |
134 CHROMEGTK_CALLBACK_0(Shell, void, OnForwardButtonClicked); | 137 CHROMEGTK_CALLBACK_0(Shell, void, OnForwardButtonClicked); |
135 CHROMEGTK_CALLBACK_0(Shell, void, OnReloadButtonClicked); | 138 CHROMEGTK_CALLBACK_0(Shell, void, OnReloadButtonClicked); |
136 CHROMEGTK_CALLBACK_0(Shell, void, OnStopButtonClicked); | 139 CHROMEGTK_CALLBACK_0(Shell, void, OnStopButtonClicked); |
137 CHROMEGTK_CALLBACK_0(Shell, void, OnURLEntryActivate); | 140 CHROMEGTK_CALLBACK_0(Shell, void, OnURLEntryActivate); |
138 CHROMEGTK_CALLBACK_0(Shell, gboolean, OnWindowDestroyed); | 141 CHROMEGTK_CALLBACK_0(Shell, gboolean, OnWindowDestroyed); |
139 | 142 |
140 CHROMEG_CALLBACK_3(Shell, gboolean, OnCloseWindowKeyPressed, GtkAccelGroup*, | 143 CHROMEG_CALLBACK_3(Shell, gboolean, OnCloseWindowKeyPressed, GtkAccelGroup*, |
141 GObject*, guint, GdkModifierType); | 144 GObject*, guint, GdkModifierType); |
142 CHROMEG_CALLBACK_3(Shell, gboolean, OnHighlightURLView, GtkAccelGroup*, | 145 CHROMEG_CALLBACK_3(Shell, gboolean, OnHighlightURLView, GtkAccelGroup*, |
143 GObject*, guint, GdkModifierType); | 146 GObject*, guint, GdkModifierType); |
144 #endif | 147 #endif |
145 | 148 |
| 149 scoped_ptr<ShellJavaScriptDialogCreator> dialog_creator_; |
| 150 |
146 scoped_ptr<WebContents> web_contents_; | 151 scoped_ptr<WebContents> web_contents_; |
147 | 152 |
148 // layoutTestController related variables. | 153 // layoutTestController related variables. |
149 bool wait_until_done_; | 154 bool wait_until_done_; |
150 | 155 |
151 gfx::NativeWindow window_; | 156 gfx::NativeWindow window_; |
152 gfx::NativeEditView url_edit_view_; | 157 gfx::NativeEditView url_edit_view_; |
153 | 158 |
154 #if defined(OS_WIN) | 159 #if defined(OS_WIN) |
155 WNDPROC default_edit_wnd_proc_; | 160 WNDPROC default_edit_wnd_proc_; |
(...skipping 14 matching lines...) Expand all Loading... |
170 #endif | 175 #endif |
171 | 176 |
172 // A container of all the open windows. We use a vector so we can keep track | 177 // A container of all the open windows. We use a vector so we can keep track |
173 // of ordering. | 178 // of ordering. |
174 static std::vector<Shell*> windows_; | 179 static std::vector<Shell*> windows_; |
175 }; | 180 }; |
176 | 181 |
177 } // namespace content | 182 } // namespace content |
178 | 183 |
179 #endif // CONTENT_SHELL_SHELL_H_ | 184 #endif // CONTENT_SHELL_SHELL_H_ |
OLD | NEW |