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

Side by Side Diff: chrome/renderer/render_view.cc

Issue 181014: Eliminate remaining WebCore dependencies from webplugin_impl.cc... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #include "chrome/renderer/render_view.h" 5 #include "chrome/renderer/render_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 #include "webkit/glue/media/simple_data_source.h" 81 #include "webkit/glue/media/simple_data_source.h"
82 #include "webkit/glue/password_form.h" 82 #include "webkit/glue/password_form.h"
83 #include "webkit/glue/plugins/plugin_list.h" 83 #include "webkit/glue/plugins/plugin_list.h"
84 #include "webkit/glue/searchable_form_data.h" 84 #include "webkit/glue/searchable_form_data.h"
85 #include "webkit/glue/webaccessibilitymanager_impl.h" 85 #include "webkit/glue/webaccessibilitymanager_impl.h"
86 #include "webkit/glue/webdevtoolsagent_delegate.h" 86 #include "webkit/glue/webdevtoolsagent_delegate.h"
87 #include "webkit/glue/webdropdata.h" 87 #include "webkit/glue/webdropdata.h"
88 #include "webkit/glue/webkit_glue.h" 88 #include "webkit/glue/webkit_glue.h"
89 #include "webkit/glue/webmediaplayer_impl.h" 89 #include "webkit/glue/webmediaplayer_impl.h"
90 #include "webkit/glue/webplugin_delegate.h" 90 #include "webkit/glue/webplugin_delegate.h"
91 #include "webkit/glue/webplugin_impl.h"
91 #include "webkit/glue/webview.h" 92 #include "webkit/glue/webview.h"
92 93
93 #if defined(OS_WIN) 94 #if defined(OS_WIN)
94 // TODO(port): these files are currently Windows only because they concern: 95 // TODO(port): these files are currently Windows only because they concern:
95 // * theming 96 // * theming
96 #include "base/gfx/native_theme.h" 97 #include "base/gfx/native_theme.h"
97 #endif 98 #endif
98 99
99 using base::Time; 100 using base::Time;
100 using base::TimeDelta; 101 using base::TimeDelta;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 : RenderWidget(render_thread, true), 185 : RenderWidget(render_thread, true),
185 enabled_bindings_(0), 186 enabled_bindings_(0),
186 target_url_status_(TARGET_NONE), 187 target_url_status_(TARGET_NONE),
187 is_loading_(false), 188 is_loading_(false),
188 navigation_gesture_(NavigationGestureUnknown), 189 navigation_gesture_(NavigationGestureUnknown),
189 page_id_(-1), 190 page_id_(-1),
190 last_page_id_sent_to_browser_(-1), 191 last_page_id_sent_to_browser_(-1),
191 last_indexed_page_id_(-1), 192 last_indexed_page_id_(-1),
192 opened_by_user_gesture_(true), 193 opened_by_user_gesture_(true),
193 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)), 194 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)),
194 first_default_plugin_(NULL),
195 devtools_agent_(NULL), 195 devtools_agent_(NULL),
196 devtools_client_(NULL), 196 devtools_client_(NULL),
197 history_back_list_count_(0), 197 history_back_list_count_(0),
198 history_forward_list_count_(0), 198 history_forward_list_count_(0),
199 has_unload_listener_(false), 199 has_unload_listener_(false),
200 decrement_shared_popup_at_destruction_(false), 200 decrement_shared_popup_at_destruction_(false),
201 form_field_autofill_request_id_(0), 201 form_field_autofill_request_id_(0),
202 popup_notification_visible_(false), 202 popup_notification_visible_(false),
203 delay_seconds_for_form_state_sync_(kDefaultDelaySecondsForFormStateSync), 203 delay_seconds_for_form_state_sync_(kDefaultDelaySecondsForFormStateSync),
204 preferred_width_(0), 204 preferred_width_(0),
205 send_preferred_width_changes_(false), 205 send_preferred_width_changes_(false),
206 determine_page_text_after_loading_stops_(false), 206 determine_page_text_after_loading_stops_(false),
207 view_type_(ViewType::INVALID), 207 view_type_(ViewType::INVALID),
208 browser_window_id_(-1), 208 browser_window_id_(-1),
209 last_top_level_navigation_page_id_(-1), 209 last_top_level_navigation_page_id_(-1),
210 webkit_preferences_(webkit_preferences) { 210 webkit_preferences_(webkit_preferences) {
211 Singleton<RenderViewSet>()->render_view_set_.insert(this); 211 Singleton<RenderViewSet>()->render_view_set_.insert(this);
212 } 212 }
213 213
214 RenderView::~RenderView() { 214 RenderView::~RenderView() {
215 Singleton<RenderViewSet>()->render_view_set_.erase(this); 215 Singleton<RenderViewSet>()->render_view_set_.erase(this);
216 if (decrement_shared_popup_at_destruction_) 216 if (decrement_shared_popup_at_destruction_)
217 shared_popup_counter_->data--; 217 shared_popup_counter_->data--;
218 218
219 // Clear any back-pointers that might still be held by plugins.
220 PluginDelegateList::iterator it = plugin_delegates_.begin();
221 while (it != plugin_delegates_.end()) {
222 (*it)->DropRenderView();
223 it = plugin_delegates_.erase(it);
224 }
225
226 render_thread_->RemoveFilter(audio_message_filter_); 219 render_thread_->RemoveFilter(audio_message_filter_);
227 } 220 }
228 221
229 /*static*/ 222 /*static*/
230 RenderView* RenderView::Create( 223 RenderView* RenderView::Create(
231 RenderThreadBase* render_thread, 224 RenderThreadBase* render_thread,
232 gfx::NativeViewId parent_hwnd, 225 gfx::NativeViewId parent_hwnd,
233 base::WaitableEvent* modal_dialog_event, 226 base::WaitableEvent* modal_dialog_event,
234 int32 opener_id, 227 int32 opener_id,
235 const RendererPreferences& renderer_prefs, 228 const RendererPreferences& renderer_prefs,
(...skipping 13 matching lines...) Expand all
249 242
250 /*static*/ 243 /*static*/
251 void RenderView::SetNextPageID(int32 next_page_id) { 244 void RenderView::SetNextPageID(int32 next_page_id) {
252 // This method should only be called during process startup, and the given 245 // This method should only be called during process startup, and the given
253 // page id had better not exceed our current next page id! 246 // page id had better not exceed our current next page id!
254 DCHECK_EQ(next_page_id_, 1); 247 DCHECK_EQ(next_page_id_, 1);
255 DCHECK(next_page_id >= next_page_id_); 248 DCHECK(next_page_id >= next_page_id_);
256 next_page_id_ = next_page_id; 249 next_page_id_ = next_page_id;
257 } 250 }
258 251
259 void RenderView::PluginDestroyed(WebPluginDelegateProxy* proxy) {
260 PluginDelegateList::iterator it =
261 std::find(plugin_delegates_.begin(), plugin_delegates_.end(), proxy);
262 DCHECK(it != plugin_delegates_.end());
263 plugin_delegates_.erase(it);
264 // If the plugin is deleted, we need to clear our reference in case user
265 // clicks the info bar to install. Unfortunately we are getting
266 // PluginDestroyed in single process mode. However, that is not a huge
267 // concern.
268 if (proxy == first_default_plugin_)
269 first_default_plugin_ = NULL;
270 }
271
272 void RenderView::PluginCrashed(base::ProcessId pid, 252 void RenderView::PluginCrashed(base::ProcessId pid,
273 const FilePath& plugin_path) { 253 const FilePath& plugin_path) {
274 Send(new ViewHostMsg_CrashedPlugin(routing_id_, pid, plugin_path)); 254 Send(new ViewHostMsg_CrashedPlugin(routing_id_, pid, plugin_path));
275 } 255 }
276 256
277
278 void RenderView::JSOutOfMemory() { 257 void RenderView::JSOutOfMemory() {
279 Send(new ViewHostMsg_JSOutOfMemory(routing_id_)); 258 Send(new ViewHostMsg_JSOutOfMemory(routing_id_));
280 } 259 }
281 260
282 void RenderView::Init(gfx::NativeViewId parent_hwnd, 261 void RenderView::Init(gfx::NativeViewId parent_hwnd,
283 base::WaitableEvent* modal_dialog_event, 262 base::WaitableEvent* modal_dialog_event,
284 int32 opener_id, 263 int32 opener_id,
285 const RendererPreferences& renderer_prefs, 264 const RendererPreferences& renderer_prefs,
286 SharedRenderViewCounter* counter, 265 SharedRenderViewCounter* counter,
287 int32 routing_id) { 266 int32 routing_id) {
(...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after
1063 1042
1064 void RenderView::DidStartLoading(WebView* webview) { 1043 void RenderView::DidStartLoading(WebView* webview) {
1065 if (is_loading_) { 1044 if (is_loading_) {
1066 DLOG(WARNING) << "DidStartLoading called while loading"; 1045 DLOG(WARNING) << "DidStartLoading called while loading";
1067 return; 1046 return;
1068 } 1047 }
1069 1048
1070 is_loading_ = true; 1049 is_loading_ = true;
1071 // Clear the pointer so that we can assign it only when there is an unknown 1050 // Clear the pointer so that we can assign it only when there is an unknown
1072 // plugin on a page. 1051 // plugin on a page.
1073 first_default_plugin_ = NULL; 1052 first_default_plugin_.reset();
1074 1053
1075 Send(new ViewHostMsg_DidStartLoading(routing_id_)); 1054 Send(new ViewHostMsg_DidStartLoading(routing_id_));
1076 } 1055 }
1077 1056
1078 void RenderView::DidStopLoading(WebView* webview) { 1057 void RenderView::DidStopLoading(WebView* webview) {
1079 if (!is_loading_) { 1058 if (!is_loading_) {
1080 DLOG(WARNING) << "DidStopLoading called while not loading"; 1059 DLOG(WARNING) << "DidStopLoading called while not loading";
1081 return; 1060 return;
1082 } 1061 }
1083 1062
(...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after
1777 return; 1756 return;
1778 1757
1779 webview()->AutofillSuggestionsForNode(node_id, suggestions, 1758 webview()->AutofillSuggestionsForNode(node_id, suggestions,
1780 default_suggestion_index); 1759 default_suggestion_index);
1781 } 1760 }
1782 1761
1783 void RenderView::OnPopupNotificationVisibilityChanged(bool visible) { 1762 void RenderView::OnPopupNotificationVisibilityChanged(bool visible) {
1784 popup_notification_visible_ = visible; 1763 popup_notification_visible_ = visible;
1785 } 1764 }
1786 1765
1787 void RenderView::ShowModalHTMLDialog(const GURL& url, int width, int height,
1788 const std::string& json_arguments,
1789 std::string* json_retval) {
1790 IPC::SyncMessage* msg = new ViewHostMsg_ShowModalHTMLDialog(
1791 routing_id_, url, width, height, json_arguments, json_retval);
1792
1793 msg->set_pump_messages_event(modal_dialog_event_.get());
1794 Send(msg);
1795 }
1796
1797 uint32 RenderView::GetCPBrowsingContext() { 1766 uint32 RenderView::GetCPBrowsingContext() {
1798 uint32 context = 0; 1767 uint32 context = 0;
1799 Send(new ViewHostMsg_GetCPBrowsingContext(&context)); 1768 Send(new ViewHostMsg_GetCPBrowsingContext(&context));
1800 return context; 1769 return context;
1801 } 1770 }
1802 1771
1803 // Tell the browser to display a destination link. 1772 // Tell the browser to display a destination link.
1804 void RenderView::UpdateTargetURL(WebView* webview, const GURL& url) { 1773 void RenderView::UpdateTargetURL(WebView* webview, const GURL& url) {
1805 if (url != target_url_) { 1774 if (url != target_url_) {
1806 if (target_url_status_ == TARGET_INFLIGHT || 1775 if (target_url_status_ == TARGET_INFLIGHT ||
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
1904 1873
1905 WebWidget* RenderView::CreatePopupWidgetWithInfo(WebView* webview, 1874 WebWidget* RenderView::CreatePopupWidgetWithInfo(WebView* webview,
1906 const WebPopupMenuInfo& info) { 1875 const WebPopupMenuInfo& info) {
1907 RenderWidget* widget = RenderWidget::Create(routing_id_, 1876 RenderWidget* widget = RenderWidget::Create(routing_id_,
1908 render_thread_, 1877 render_thread_,
1909 true); 1878 true);
1910 widget->ConfigureAsExternalPopupMenu(info); 1879 widget->ConfigureAsExternalPopupMenu(info);
1911 return widget->webwidget(); 1880 return widget->webwidget();
1912 } 1881 }
1913 1882
1914 WebPluginDelegate* RenderView::CreatePluginDelegate( 1883 WebKit::WebPlugin* RenderView::CreatePlugin(
1915 WebView* webview, 1884 WebFrame* frame, const WebKit::WebPluginParams& params) {
1916 const GURL& url, 1885 return new webkit_glue::WebPluginImpl(frame, params, AsWeakPtr());
1917 const std::string& mime_type,
1918 const std::string& clsid,
1919 std::string* actual_mime_type) {
1920 if (!PluginChannelHost::IsListening())
1921 return NULL;
1922
1923 GURL policy_url;
1924 if (webview->GetMainFrame())
1925 policy_url = webview->GetMainFrame()->url();
1926
1927 FilePath path;
1928 render_thread_->Send(
1929 new ViewHostMsg_GetPluginPath(url, policy_url, mime_type, clsid, &path,
1930 actual_mime_type));
1931 if (path.value().empty())
1932 return NULL;
1933
1934 std::string mime_type_to_use;
1935 if (!actual_mime_type->empty())
1936 mime_type_to_use = *actual_mime_type;
1937 else
1938 mime_type_to_use = mime_type;
1939
1940 if (RenderProcess::current()->in_process_plugins()) {
1941 #if defined(OS_WIN) // In-proc plugins aren't supported on Linux or Mac.
1942 return WebPluginDelegate::Create(path,
1943 mime_type_to_use,
1944 gfx::NativeViewFromId(host_window_));
1945 #else
1946 NOTIMPLEMENTED();
1947 return NULL;
1948 #endif
1949 }
1950
1951 WebPluginDelegateProxy* proxy =
1952 WebPluginDelegateProxy::Create(url, mime_type_to_use, clsid, this);
1953 if (!proxy)
1954 return NULL;
1955
1956 plugin_delegates_.push_back(proxy);
1957
1958 return proxy;
1959 } 1886 }
1960 1887
1961 WebKit::WebMediaPlayer* RenderView::CreateWebMediaPlayer( 1888 WebKit::WebMediaPlayer* RenderView::CreateWebMediaPlayer(
1962 WebKit::WebMediaPlayerClient* client) { 1889 WebKit::WebMediaPlayerClient* client) {
1963 scoped_refptr<media::FilterFactoryCollection> factory = 1890 scoped_refptr<media::FilterFactoryCollection> factory =
1964 new media::FilterFactoryCollection(); 1891 new media::FilterFactoryCollection();
1965 // Add in any custom filter factories first. 1892 // Add in any custom filter factories first.
1966 const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); 1893 const CommandLine* cmd_line = CommandLine::ForCurrentProcess();
1967 if (!cmd_line->HasSwitch(switches::kDisableAudio)) { 1894 if (!cmd_line->HasSwitch(switches::kDisableAudio)) {
1968 // Add the chrome specific audio renderer. 1895 // Add the chrome specific audio renderer.
(...skipping 17 matching lines...) Expand all
1986 webkit_glue::BufferedDataSource::CreateFactory(MessageLoop::current(), 1913 webkit_glue::BufferedDataSource::CreateFactory(MessageLoop::current(),
1987 bridge_factory)); 1914 bridge_factory));
1988 } else { 1915 } else {
1989 factory->AddFactory( 1916 factory->AddFactory(
1990 webkit_glue::SimpleDataSource::CreateFactory(MessageLoop::current(), 1917 webkit_glue::SimpleDataSource::CreateFactory(MessageLoop::current(),
1991 bridge_factory)); 1918 bridge_factory));
1992 } 1919 }
1993 return new webkit_glue::WebMediaPlayerImpl(client, factory); 1920 return new webkit_glue::WebMediaPlayerImpl(client, factory);
1994 } 1921 }
1995 1922
1996 void RenderView::OnMissingPluginStatus(WebPluginDelegate* delegate, 1923 void RenderView::OnMissingPluginStatus(
1997 int status) { 1924 WebPluginDelegateProxy* delegate,
1925 int status) {
1998 #if defined(OS_WIN) 1926 #if defined(OS_WIN)
1999 if (first_default_plugin_ == NULL) { 1927 if (!first_default_plugin_) {
2000 // Show the InfoBar for the first available plugin. 1928 // Show the InfoBar for the first available plugin.
2001 if (status == default_plugin::MISSING_PLUGIN_AVAILABLE) { 1929 if (status == default_plugin::MISSING_PLUGIN_AVAILABLE) {
2002 first_default_plugin_ = delegate; 1930 first_default_plugin_ = delegate->AsWeakPtr();
2003 Send(new ViewHostMsg_MissingPluginStatus(routing_id_, status)); 1931 Send(new ViewHostMsg_MissingPluginStatus(routing_id_, status));
2004 } 1932 }
2005 } else { 1933 } else {
2006 // Closes the InfoBar if user clicks on the plugin (instead of the InfoBar) 1934 // Closes the InfoBar if user clicks on the plugin (instead of the InfoBar)
2007 // to start the download/install. 1935 // to start the download/install.
2008 if (status == default_plugin::MISSING_PLUGIN_USER_STARTED_DOWNLOAD) { 1936 if (status == default_plugin::MISSING_PLUGIN_USER_STARTED_DOWNLOAD) {
2009 Send(new ViewHostMsg_MissingPluginStatus(routing_id_, status)); 1937 Send(new ViewHostMsg_MissingPluginStatus(routing_id_, status));
2010 } 1938 }
2011 } 1939 }
2012 #else 1940 #else
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
2080 2008
2081 void RenderView::runModal() { 2009 void RenderView::runModal() {
2082 DCHECK(did_show_) << "should already have shown the view"; 2010 DCHECK(did_show_) << "should already have shown the view";
2083 2011
2084 IPC::SyncMessage* msg = new ViewHostMsg_RunModal(routing_id_); 2012 IPC::SyncMessage* msg = new ViewHostMsg_RunModal(routing_id_);
2085 2013
2086 msg->set_pump_messages_event(modal_dialog_event_.get()); 2014 msg->set_pump_messages_event(modal_dialog_event_.get());
2087 Send(msg); 2015 Send(msg);
2088 } 2016 }
2089 2017
2018 webkit_glue::WebPluginDelegate* RenderView::CreatePluginDelegate(
2019 const GURL& url,
2020 const std::string& mime_type,
2021 const std::string& clsid,
2022 std::string* actual_mime_type) {
2023 if (!PluginChannelHost::IsListening())
2024 return NULL;
2025
2026 GURL policy_url;
2027 WebFrame* main_frame = webview()->GetMainFrame();
2028 if (main_frame)
2029 policy_url = main_frame->url();
2030
2031 FilePath path;
2032 render_thread_->Send(
2033 new ViewHostMsg_GetPluginPath(url, policy_url, mime_type, clsid, &path,
2034 actual_mime_type));
2035 if (path.value().empty())
2036 return NULL;
2037
2038 const std::string* mime_type_to_use;
2039 if (!actual_mime_type->empty())
2040 mime_type_to_use = actual_mime_type;
2041 else
2042 mime_type_to_use = &mime_type;
2043
2044 if (RenderProcess::current()->in_process_plugins()) {
2045 #if defined(OS_WIN) // In-proc plugins aren't supported on Linux or Mac.
2046 return webkit_glue::WebPluginDelegate::Create(
2047 path, *mime_type_to_use, gfx::NativeViewFromId(host_window_));
2048 #else
2049 NOTIMPLEMENTED();
2050 return NULL;
2051 #endif
2052 }
2053
2054 return WebPluginDelegateProxy::Create(
2055 url, *mime_type_to_use, clsid, AsWeakPtr());
2056 }
2057
2058 void RenderView::CreatedPluginWindow(gfx::PluginWindowHandle window) {
2059 #if defined(OS_LINUX)
2060 RenderThread::current()->Send(new ViewHostMsg_CreatePluginContainer(
2061 routing_id(), window));
2062 #endif
2063 }
2064
2065 void RenderView::WillDestroyPluginWindow(gfx::PluginWindowHandle window) {
2066 #if defined(OS_LINUX)
2067 RenderThread::current()->Send(new ViewHostMsg_DestroyPluginContainer(
2068 routing_id(), window));
2069 #endif
2070 CleanupWindowInPluginMoves(window);
2071 }
2072
2073 void RenderView::DidMovePlugin(const webkit_glue::WebPluginGeometry& move) {
2074 SchedulePluginMove(move);
2075 }
2076
2077 void RenderView::DidStartLoadingForPlugin() {
2078 // TODO(darin): Make is_loading_ be a counter!
2079 DidStartLoading(webview());
2080 }
2081
2082 void RenderView::DidStopLoadingForPlugin() {
2083 // TODO(darin): Make is_loading_ be a counter!
2084 DidStopLoading(webview());
2085 }
2086
2087 void RenderView::ShowModalHTMLDialogForPlugin(
2088 const GURL& url,
2089 const gfx::Size& size,
2090 const std::string& json_arguments,
2091 std::string* json_retval) {
2092 IPC::SyncMessage* msg = new ViewHostMsg_ShowModalHTMLDialog(
2093 routing_id_, url, size.width(), size.height(), json_arguments,
2094 json_retval);
2095
2096 msg->set_pump_messages_event(modal_dialog_event_.get());
2097 Send(msg);
2098 }
2099
2090 void RenderView::SyncNavigationState() { 2100 void RenderView::SyncNavigationState() {
2091 if (!webview()) 2101 if (!webview())
2092 return; 2102 return;
2093 2103
2094 const WebHistoryItem& item = webview()->GetMainFrame()->currentHistoryItem(); 2104 const WebHistoryItem& item = webview()->GetMainFrame()->currentHistoryItem();
2095 if (item.isNull()) 2105 if (item.isNull())
2096 return; 2106 return;
2097 2107
2098 Send(new ViewHostMsg_UpdateState( 2108 Send(new ViewHostMsg_UpdateState(
2099 routing_id_, page_id_, webkit_glue::HistoryItemToString(item))); 2109 routing_id_, page_id_, webkit_glue::HistoryItemToString(item)));
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
2735 webkit_preferences_ = prefs; 2745 webkit_preferences_ = prefs;
2736 webkit_preferences_.Apply(webview()); 2746 webkit_preferences_.Apply(webview());
2737 } 2747 }
2738 2748
2739 void RenderView::OnSetAltErrorPageURL(const GURL& url) { 2749 void RenderView::OnSetAltErrorPageURL(const GURL& url) {
2740 alternate_error_page_url_ = url; 2750 alternate_error_page_url_ = url;
2741 } 2751 }
2742 2752
2743 void RenderView::OnInstallMissingPlugin() { 2753 void RenderView::OnInstallMissingPlugin() {
2744 // This could happen when the first default plugin is deleted. 2754 // This could happen when the first default plugin is deleted.
2745 if (first_default_plugin_ == NULL) 2755 if (first_default_plugin_)
2746 return; 2756 first_default_plugin_->InstallMissingPlugin();
2747 first_default_plugin_->InstallMissingPlugin();
2748 } 2757 }
2749 2758
2750 void RenderView::OnFileChooserResponse( 2759 void RenderView::OnFileChooserResponse(
2751 const std::vector<FilePath>& file_names) { 2760 const std::vector<FilePath>& file_names) {
2752 // This could happen if we navigated to a different page before the user 2761 // This could happen if we navigated to a different page before the user
2753 // closed the chooser. 2762 // closed the chooser.
2754 if (!file_chooser_.get()) 2763 if (!file_chooser_.get())
2755 return; 2764 return;
2756 2765
2757 file_chooser_->OnFileChoose(file_names); 2766 file_chooser_->OnFileChoose(file_names);
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after
3290 // occurred. 3299 // occurred.
3291 if (acc_obj_id >= 0) 3300 if (acc_obj_id >= 0)
3292 Send(new ViewHostMsg_AccessibilityFocusChange(routing_id_, acc_obj_id)); 3301 Send(new ViewHostMsg_AccessibilityFocusChange(routing_id_, acc_obj_id));
3293 3302
3294 #else // defined(OS_WIN) 3303 #else // defined(OS_WIN)
3295 // TODO(port): accessibility not yet implemented 3304 // TODO(port): accessibility not yet implemented
3296 NOTIMPLEMENTED(); 3305 NOTIMPLEMENTED();
3297 #endif 3306 #endif
3298 } 3307 }
3299 3308
3300 void RenderView::DidMovePlugin(const WebPluginGeometry& move) {
3301 SchedulePluginMove(move);
3302 }
3303
3304 void RenderView::CreatedPluginWindow(gfx::PluginWindowHandle window) {
3305 #if defined(OS_LINUX)
3306 RenderThread::current()->Send(new ViewHostMsg_CreatePluginContainer(
3307 routing_id(), window));
3308 #endif
3309 }
3310
3311 void RenderView::WillDestroyPluginWindow(gfx::PluginWindowHandle window) {
3312 #if defined(OS_LINUX)
3313 RenderThread::current()->Send(new ViewHostMsg_DestroyPluginContainer(
3314 routing_id(), window));
3315 #endif
3316 CleanupWindowInPluginMoves(window);
3317 }
3318
3319 void RenderView::SendPasswordForms(WebFrame* frame) { 3309 void RenderView::SendPasswordForms(WebFrame* frame) {
3320 WebVector<WebForm> forms; 3310 WebVector<WebForm> forms;
3321 frame->forms(forms); 3311 frame->forms(forms);
3322 3312
3323 std::vector<PasswordForm> password_forms; 3313 std::vector<PasswordForm> password_forms;
3324 for (size_t i = 0; i < forms.size(); ++i) { 3314 for (size_t i = 0; i < forms.size(); ++i) {
3325 const WebForm& form = forms[i]; 3315 const WebForm& form = forms[i];
3326 3316
3327 // Respect autocomplete=off. 3317 // Respect autocomplete=off.
3328 if (form.isAutoCompleteEnabled()) { 3318 if (form.isAutoCompleteEnabled()) {
3329 scoped_ptr<PasswordForm> password_form( 3319 scoped_ptr<PasswordForm> password_form(
3330 PasswordFormDomManager::CreatePasswordForm(form)); 3320 PasswordFormDomManager::CreatePasswordForm(form));
3331 if (password_form.get()) 3321 if (password_form.get())
3332 password_forms.push_back(*password_form); 3322 password_forms.push_back(*password_form);
3333 } 3323 }
3334 } 3324 }
3335 3325
3336 if (!password_forms.empty()) 3326 if (!password_forms.empty())
3337 Send(new ViewHostMsg_PasswordFormsSeen(routing_id_, password_forms)); 3327 Send(new ViewHostMsg_PasswordFormsSeen(routing_id_, password_forms));
3338 } 3328 }
3339 3329
3340 void RenderView::Print(WebFrame* frame, bool script_initiated) { 3330 void RenderView::Print(WebFrame* frame, bool script_initiated) {
3341 DCHECK(frame); 3331 DCHECK(frame);
3342 if (print_helper_.get() == NULL) { 3332 if (print_helper_.get() == NULL) {
3343 print_helper_.reset(new PrintWebViewHelper(this)); 3333 print_helper_.reset(new PrintWebViewHelper(this));
3344 } 3334 }
3345 print_helper_->Print(frame, script_initiated); 3335 print_helper_->Print(frame, script_initiated);
3346 } 3336 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698