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 #include "content/browser/web_contents/web_contents_impl.h" | 5 #include "content/browser/web_contents/web_contents_impl.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 #include "content/browser/renderer_host/render_widget_host_impl.h" | 35 #include "content/browser/renderer_host/render_widget_host_impl.h" |
36 #include "content/browser/site_instance_impl.h" | 36 #include "content/browser/site_instance_impl.h" |
37 #include "content/browser/web_contents/interstitial_page_impl.h" | 37 #include "content/browser/web_contents/interstitial_page_impl.h" |
38 #include "content/browser/web_contents/navigation_entry_impl.h" | 38 #include "content/browser/web_contents/navigation_entry_impl.h" |
39 #include "content/browser/web_contents/web_contents_view_guest.h" | 39 #include "content/browser/web_contents/web_contents_view_guest.h" |
40 #include "content/browser/webui/generic_handler.h" | 40 #include "content/browser/webui/generic_handler.h" |
41 #include "content/browser/webui/web_ui_controller_factory_registry.h" | 41 #include "content/browser/webui/web_ui_controller_factory_registry.h" |
42 #include "content/browser/webui/web_ui_impl.h" | 42 #include "content/browser/webui/web_ui_impl.h" |
43 #include "content/common/browser_plugin/browser_plugin_constants.h" | 43 #include "content/common/browser_plugin/browser_plugin_constants.h" |
44 #include "content/common/browser_plugin/browser_plugin_messages.h" | 44 #include "content/common/browser_plugin/browser_plugin_messages.h" |
45 #include "content/common/icon_messages.h" | 45 #include "content/common/image_messages.h" |
46 #include "content/common/ssl_status_serialization.h" | 46 #include "content/common/ssl_status_serialization.h" |
47 #include "content/common/view_messages.h" | 47 #include "content/common/view_messages.h" |
48 #include "content/port/browser/render_view_host_delegate_view.h" | 48 #include "content/port/browser/render_view_host_delegate_view.h" |
49 #include "content/port/browser/render_widget_host_view_port.h" | 49 #include "content/port/browser/render_widget_host_view_port.h" |
50 #include "content/public/browser/browser_context.h" | 50 #include "content/public/browser/browser_context.h" |
51 #include "content/public/browser/color_chooser.h" | 51 #include "content/public/browser/color_chooser.h" |
52 #include "content/public/browser/compositor_util.h" | 52 #include "content/public/browser/compositor_util.h" |
53 #include "content/public/browser/content_browser_client.h" | 53 #include "content/public/browser/content_browser_client.h" |
54 #include "content/public/browser/devtools_agent_host.h" | 54 #include "content/public/browser/devtools_agent_host.h" |
55 #include "content/public/browser/download_manager.h" | 55 #include "content/public/browser/download_manager.h" |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 const int kQueryStateDelay = 5000; | 150 const int kQueryStateDelay = 5000; |
151 | 151 |
152 const int kSyncWaitDelay = 40; | 152 const int kSyncWaitDelay = 40; |
153 | 153 |
154 const char kDotGoogleDotCom[] = ".google.com"; | 154 const char kDotGoogleDotCom[] = ".google.com"; |
155 | 155 |
156 static int StartDownload(content::RenderViewHost* rvh, | 156 static int StartDownload(content::RenderViewHost* rvh, |
157 const GURL& url, | 157 const GURL& url, |
158 bool is_favicon, | 158 bool is_favicon, |
159 int image_size) { | 159 int image_size) { |
160 static int g_next_favicon_download_id = 0; | 160 static int g_next_image_download_id = 0; |
161 rvh->Send(new IconMsg_DownloadFavicon(rvh->GetRoutingID(), | 161 rvh->Send(new ImageMsg_DownloadImage(rvh->GetRoutingID(), |
162 ++g_next_favicon_download_id, | 162 ++g_next_image_download_id, |
163 url, | 163 url, |
164 is_favicon, | 164 is_favicon, |
165 image_size)); | 165 image_size)); |
166 return g_next_favicon_download_id; | 166 return g_next_image_download_id; |
167 } | 167 } |
168 | 168 |
169 ViewMsg_Navigate_Type::Value GetNavigationType( | 169 ViewMsg_Navigate_Type::Value GetNavigationType( |
170 BrowserContext* browser_context, const NavigationEntryImpl& entry, | 170 BrowserContext* browser_context, const NavigationEntryImpl& entry, |
171 NavigationController::ReloadType reload_type) { | 171 NavigationController::ReloadType reload_type) { |
172 switch (reload_type) { | 172 switch (reload_type) { |
173 case NavigationControllerImpl::RELOAD: | 173 case NavigationControllerImpl::RELOAD: |
174 return ViewMsg_Navigate_Type::RELOAD; | 174 return ViewMsg_Navigate_Type::RELOAD; |
175 case NavigationControllerImpl::RELOAD_IGNORING_CACHE: | 175 case NavigationControllerImpl::RELOAD_IGNORING_CACHE: |
176 return ViewMsg_Navigate_Type::RELOAD_IGNORING_CACHE; | 176 return ViewMsg_Navigate_Type::RELOAD_IGNORING_CACHE; |
(...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
689 IPC_MESSAGE_HANDLER(ViewHostMsg_SetSelectedColorInColorChooser, | 689 IPC_MESSAGE_HANDLER(ViewHostMsg_SetSelectedColorInColorChooser, |
690 OnSetSelectedColorInColorChooser) | 690 OnSetSelectedColorInColorChooser) |
691 IPC_MESSAGE_HANDLER(ViewHostMsg_PepperPluginHung, OnPepperPluginHung) | 691 IPC_MESSAGE_HANDLER(ViewHostMsg_PepperPluginHung, OnPepperPluginHung) |
692 IPC_MESSAGE_HANDLER(ViewHostMsg_WebUISend, OnWebUISend) | 692 IPC_MESSAGE_HANDLER(ViewHostMsg_WebUISend, OnWebUISend) |
693 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestPpapiBrokerPermission, | 693 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestPpapiBrokerPermission, |
694 OnRequestPpapiBrokerPermission) | 694 OnRequestPpapiBrokerPermission) |
695 IPC_MESSAGE_HANDLER_GENERIC(BrowserPluginHostMsg_AllocateInstanceID, | 695 IPC_MESSAGE_HANDLER_GENERIC(BrowserPluginHostMsg_AllocateInstanceID, |
696 OnBrowserPluginMessage(message)) | 696 OnBrowserPluginMessage(message)) |
697 IPC_MESSAGE_HANDLER_GENERIC(BrowserPluginHostMsg_Attach, | 697 IPC_MESSAGE_HANDLER_GENERIC(BrowserPluginHostMsg_Attach, |
698 OnBrowserPluginMessage(message)) | 698 OnBrowserPluginMessage(message)) |
699 IPC_MESSAGE_HANDLER(IconHostMsg_DidDownloadFavicon, OnDidDownloadFavicon) | 699 IPC_MESSAGE_HANDLER(ImageHostMsg_DidDownloadImage, OnDidDownloadImage) |
700 IPC_MESSAGE_HANDLER(IconHostMsg_UpdateFaviconURL, OnUpdateFaviconURL) | 700 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateFaviconURL, OnUpdateFaviconURL) |
701 #if defined(OS_ANDROID) | 701 #if defined(OS_ANDROID) |
702 IPC_MESSAGE_HANDLER(ViewHostMsg_FindMatchRects_Reply, | 702 IPC_MESSAGE_HANDLER(ViewHostMsg_FindMatchRects_Reply, |
703 OnFindMatchRectsReply) | 703 OnFindMatchRectsReply) |
704 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenDateTimeDialog, | 704 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenDateTimeDialog, |
705 OnOpenDateTimeDialog) | 705 OnOpenDateTimeDialog) |
706 #endif | 706 #endif |
707 IPC_MESSAGE_HANDLER(ViewHostMsg_FrameDetached, OnFrameDetached) | 707 IPC_MESSAGE_HANDLER(ViewHostMsg_FrameDetached, OnFrameDetached) |
708 IPC_MESSAGE_UNHANDLED(handled = false) | 708 IPC_MESSAGE_UNHANDLED(handled = false) |
709 IPC_END_MESSAGE_MAP_EX() | 709 IPC_END_MESSAGE_MAP_EX() |
710 message_source_ = NULL; | 710 message_source_ = NULL; |
(...skipping 1272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1983 GetRoutingID(), color_chooser_id, color)); | 1983 GetRoutingID(), color_chooser_id, color)); |
1984 } | 1984 } |
1985 | 1985 |
1986 void WebContentsImpl::DidEndColorChooser(int color_chooser_id) { | 1986 void WebContentsImpl::DidEndColorChooser(int color_chooser_id) { |
1987 Send(new ViewMsg_DidEndColorChooser(GetRoutingID(), color_chooser_id)); | 1987 Send(new ViewMsg_DidEndColorChooser(GetRoutingID(), color_chooser_id)); |
1988 if (delegate_) | 1988 if (delegate_) |
1989 delegate_->DidEndColorChooser(); | 1989 delegate_->DidEndColorChooser(); |
1990 color_chooser_ = NULL; | 1990 color_chooser_ = NULL; |
1991 } | 1991 } |
1992 | 1992 |
1993 int WebContentsImpl::DownloadFavicon(const GURL& url, | 1993 int WebContentsImpl::DownloadImage(const GURL& url, |
1994 bool is_favicon, | 1994 bool is_favicon, |
1995 int image_size, | 1995 int image_size, |
1996 const FaviconDownloadCallback& callback) { | 1996 const ImageDownloadCallback& callback) { |
1997 RenderViewHost* host = GetRenderViewHost(); | 1997 RenderViewHost* host = GetRenderViewHost(); |
1998 int id = StartDownload(host, url, is_favicon, image_size); | 1998 int id = StartDownload(host, url, is_favicon, image_size); |
1999 favicon_download_map_[id] = callback; | 1999 image_download_map_[id] = callback; |
2000 return id; | 2000 return id; |
2001 } | 2001 } |
2002 | 2002 |
2003 bool WebContentsImpl::FocusLocationBarByDefault() { | 2003 bool WebContentsImpl::FocusLocationBarByDefault() { |
2004 WebUI* web_ui = GetWebUIForCurrentState(); | 2004 WebUI* web_ui = GetWebUIForCurrentState(); |
2005 if (web_ui) | 2005 if (web_ui) |
2006 return web_ui->ShouldFocusLocationBarByDefault(); | 2006 return web_ui->ShouldFocusLocationBarByDefault(); |
2007 NavigationEntry* entry = controller_.GetActiveEntry(); | 2007 NavigationEntry* entry = controller_.GetActiveEntry(); |
2008 if (entry && entry->GetURL() == GURL(chrome::kAboutBlankURL)) | 2008 if (entry && entry->GetURL() == GURL(chrome::kAboutBlankURL)) |
2009 return true; | 2009 return true; |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2401 // This creates a BrowserPluginEmbedder, which handles all the BrowserPlugin | 2401 // This creates a BrowserPluginEmbedder, which handles all the BrowserPlugin |
2402 // specific messages for this WebContents. This means that any message from | 2402 // specific messages for this WebContents. This means that any message from |
2403 // a BrowserPlugin prior to this will be ignored. | 2403 // a BrowserPlugin prior to this will be ignored. |
2404 // For more info, see comment above classes BrowserPluginEmbedder and | 2404 // For more info, see comment above classes BrowserPluginEmbedder and |
2405 // BrowserPluginGuest. | 2405 // BrowserPluginGuest. |
2406 CHECK(!browser_plugin_embedder_.get()); | 2406 CHECK(!browser_plugin_embedder_.get()); |
2407 browser_plugin_embedder_.reset(BrowserPluginEmbedder::Create(this)); | 2407 browser_plugin_embedder_.reset(BrowserPluginEmbedder::Create(this)); |
2408 browser_plugin_embedder_->OnMessageReceived(message); | 2408 browser_plugin_embedder_->OnMessageReceived(message); |
2409 } | 2409 } |
2410 | 2410 |
2411 void WebContentsImpl::OnDidDownloadFavicon( | 2411 void WebContentsImpl::OnDidDownloadImage( |
2412 int id, | 2412 int id, |
2413 const GURL& image_url, | 2413 const GURL& image_url, |
2414 int requested_size, | 2414 int requested_size, |
2415 const std::vector<SkBitmap>& bitmaps) { | 2415 const std::vector<SkBitmap>& bitmaps) { |
2416 FaviconDownloadMap::iterator iter = favicon_download_map_.find(id); | 2416 ImageDownloadMap::iterator iter = image_download_map_.find(id); |
2417 if (iter == favicon_download_map_.end()) { | 2417 if (iter == image_download_map_.end()) { |
2418 // Currently WebContents notifies us of ANY downloads so that it is | 2418 // Currently WebContents notifies us of ANY downloads so that it is |
2419 // possible to get here. | 2419 // possible to get here. |
2420 return; | 2420 return; |
2421 } | 2421 } |
2422 if (!iter->second.is_null()) { | 2422 if (!iter->second.is_null()) { |
2423 iter->second.Run(id, image_url, requested_size, bitmaps); | 2423 iter->second.Run(id, image_url, requested_size, bitmaps); |
2424 } | 2424 } |
2425 favicon_download_map_.erase(id); | 2425 image_download_map_.erase(id); |
2426 } | 2426 } |
2427 | 2427 |
2428 void WebContentsImpl::OnUpdateFaviconURL( | 2428 void WebContentsImpl::OnUpdateFaviconURL( |
2429 int32 page_id, | 2429 int32 page_id, |
2430 const std::vector<FaviconURL>& candidates) { | 2430 const std::vector<FaviconURL>& candidates) { |
2431 FOR_EACH_OBSERVER(WebContentsObserver, observers_, | 2431 FOR_EACH_OBSERVER(WebContentsObserver, observers_, |
2432 DidUpdateFaviconURL(page_id, candidates)); | 2432 DidUpdateFaviconURL(page_id, candidates)); |
2433 } | 2433 } |
2434 | 2434 |
2435 void WebContentsImpl::OnFrameDetached(int64 frame_id) { | 2435 void WebContentsImpl::OnFrameDetached(int64 frame_id) { |
(...skipping 1032 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3468 } | 3468 } |
3469 | 3469 |
3470 BrowserPluginGuestManager* | 3470 BrowserPluginGuestManager* |
3471 WebContentsImpl::GetBrowserPluginGuestManager() const { | 3471 WebContentsImpl::GetBrowserPluginGuestManager() const { |
3472 return static_cast<BrowserPluginGuestManager*>( | 3472 return static_cast<BrowserPluginGuestManager*>( |
3473 GetBrowserContext()->GetUserData( | 3473 GetBrowserContext()->GetUserData( |
3474 browser_plugin::kBrowserPluginGuestManagerKeyName)); | 3474 browser_plugin::kBrowserPluginGuestManagerKeyName)); |
3475 } | 3475 } |
3476 | 3476 |
3477 } // namespace content | 3477 } // namespace content |
OLD | NEW |