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

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

Issue 6677051: fav icon -> favicon. Pass 8: content/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 9 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
« no previous file with comments | « chrome/renderer/render_view.h ('k') | content/browser/renderer_host/render_view_host.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <cmath> 8 #include <cmath>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 1020 matching lines...) Expand 10 before | Expand all | Expand 10 after
1031 IPC_MESSAGE_HANDLER(ViewMsg_Zoom, OnZoom) 1031 IPC_MESSAGE_HANDLER(ViewMsg_Zoom, OnZoom)
1032 IPC_MESSAGE_HANDLER(ViewMsg_SetContentSettingsForLoadingURL, 1032 IPC_MESSAGE_HANDLER(ViewMsg_SetContentSettingsForLoadingURL,
1033 OnSetContentSettingsForLoadingURL) 1033 OnSetContentSettingsForLoadingURL)
1034 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevel, OnSetZoomLevel) 1034 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevel, OnSetZoomLevel)
1035 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForLoadingURL, 1035 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForLoadingURL,
1036 OnSetZoomLevelForLoadingURL) 1036 OnSetZoomLevelForLoadingURL)
1037 IPC_MESSAGE_HANDLER(ViewMsg_SetPageEncoding, OnSetPageEncoding) 1037 IPC_MESSAGE_HANDLER(ViewMsg_SetPageEncoding, OnSetPageEncoding)
1038 IPC_MESSAGE_HANDLER(ViewMsg_ResetPageEncodingToDefault, 1038 IPC_MESSAGE_HANDLER(ViewMsg_ResetPageEncodingToDefault,
1039 OnResetPageEncodingToDefault) 1039 OnResetPageEncodingToDefault)
1040 IPC_MESSAGE_HANDLER(ViewMsg_SetupDevToolsClient, OnSetupDevToolsClient) 1040 IPC_MESSAGE_HANDLER(ViewMsg_SetupDevToolsClient, OnSetupDevToolsClient)
1041 IPC_MESSAGE_HANDLER(ViewMsg_DownloadFavIcon, OnDownloadFavIcon) 1041 IPC_MESSAGE_HANDLER(ViewMsg_DownloadFavicon, OnDownloadFavicon)
1042 IPC_MESSAGE_HANDLER(ViewMsg_ScriptEvalRequest, OnScriptEvalRequest) 1042 IPC_MESSAGE_HANDLER(ViewMsg_ScriptEvalRequest, OnScriptEvalRequest)
1043 IPC_MESSAGE_HANDLER(ViewMsg_CSSInsertRequest, OnCSSInsertRequest) 1043 IPC_MESSAGE_HANDLER(ViewMsg_CSSInsertRequest, OnCSSInsertRequest)
1044 IPC_MESSAGE_HANDLER(ViewMsg_AddMessageToConsole, OnAddMessageToConsole) 1044 IPC_MESSAGE_HANDLER(ViewMsg_AddMessageToConsole, OnAddMessageToConsole)
1045 IPC_MESSAGE_HANDLER(ViewMsg_ReservePageIDRange, OnReservePageIDRange) 1045 IPC_MESSAGE_HANDLER(ViewMsg_ReservePageIDRange, OnReservePageIDRange)
1046 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDragEnter, OnDragTargetDragEnter) 1046 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDragEnter, OnDragTargetDragEnter)
1047 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDragOver, OnDragTargetDragOver) 1047 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDragOver, OnDragTargetDragOver)
1048 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDragLeave, OnDragTargetDragLeave) 1048 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDragLeave, OnDragTargetDragLeave)
1049 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDrop, OnDragTargetDrop) 1049 IPC_MESSAGE_HANDLER(ViewMsg_DragTargetDrop, OnDragTargetDrop)
1050 IPC_MESSAGE_HANDLER(ViewMsg_AllowBindings, OnAllowBindings) 1050 IPC_MESSAGE_HANDLER(ViewMsg_AllowBindings, OnAllowBindings)
1051 IPC_MESSAGE_HANDLER(ViewMsg_SetWebUIProperty, OnSetWebUIProperty) 1051 IPC_MESSAGE_HANDLER(ViewMsg_SetWebUIProperty, OnSetWebUIProperty)
(...skipping 1126 matching lines...) Expand 10 before | Expand all | Expand 10 after
2178 2178
2179 is_loading_ = false; 2179 is_loading_ = false;
2180 2180
2181 // NOTE: For now we're doing the safest thing, and sending out notification 2181 // NOTE: For now we're doing the safest thing, and sending out notification
2182 // when done loading. This currently isn't an issue as the favicon is only 2182 // when done loading. This currently isn't an issue as the favicon is only
2183 // displayed when done loading. Ideally we would send notification when 2183 // displayed when done loading. Ideally we would send notification when
2184 // finished parsing the head, but webkit doesn't support that yet. 2184 // finished parsing the head, but webkit doesn't support that yet.
2185 // The feed discovery code would also benefit from access to the head. 2185 // The feed discovery code would also benefit from access to the head.
2186 GURL favicon_url(webview()->mainFrame()->favIconURL()); 2186 GURL favicon_url(webview()->mainFrame()->favIconURL());
2187 if (!favicon_url.is_empty()) 2187 if (!favicon_url.is_empty())
2188 Send(new ViewHostMsg_UpdateFavIconURL(routing_id_, page_id_, favicon_url)); 2188 Send(new ViewHostMsg_UpdateFaviconURL(routing_id_, page_id_, favicon_url));
2189 2189
2190 AddGURLSearchProvider(webview()->mainFrame()->openSearchDescriptionURL(), 2190 AddGURLSearchProvider(webview()->mainFrame()->openSearchDescriptionURL(),
2191 ViewHostMsg_PageHasOSDD_Type::Autodetected()); 2191 ViewHostMsg_PageHasOSDD_Type::Autodetected());
2192 2192
2193 Send(new ViewHostMsg_DidStopLoading(routing_id_)); 2193 Send(new ViewHostMsg_DidStopLoading(routing_id_));
2194 2194
2195 if (load_progress_tracker_ != NULL) 2195 if (load_progress_tracker_ != NULL)
2196 load_progress_tracker_->DidStopLoading(); 2196 load_progress_tracker_->DidStopLoading();
2197 2197
2198 MessageLoop::current()->PostDelayedTask( 2198 MessageLoop::current()->PostDelayedTask(
(...skipping 1288 matching lines...) Expand 10 before | Expand all | Expand 10 after
3487 3487
3488 void RenderView::didReceiveTitle(WebFrame* frame, const WebString& title) { 3488 void RenderView::didReceiveTitle(WebFrame* frame, const WebString& title) {
3489 UpdateTitle(frame, title); 3489 UpdateTitle(frame, title);
3490 3490
3491 // Also check whether we have new encoding name. 3491 // Also check whether we have new encoding name.
3492 UpdateEncoding(frame, frame->view()->pageEncoding().utf8()); 3492 UpdateEncoding(frame, frame->view()->pageEncoding().utf8());
3493 } 3493 }
3494 3494
3495 void RenderView::didChangeIcons(WebFrame* frame) { 3495 void RenderView::didChangeIcons(WebFrame* frame) {
3496 if (!frame->parent()) { 3496 if (!frame->parent()) {
3497 Send(new ViewHostMsg_UpdateFavIconURL( 3497 Send(new ViewHostMsg_UpdateFaviconURL(
3498 routing_id_, 3498 routing_id_,
3499 page_id_, 3499 page_id_,
3500 frame->favIconURL())); 3500 frame->favIconURL()));
3501 } 3501 }
3502 } 3502 }
3503 3503
3504 void RenderView::didFinishDocumentLoad(WebFrame* frame) { 3504 void RenderView::didFinishDocumentLoad(WebFrame* frame) {
3505 WebDataSource* ds = frame->dataSource(); 3505 WebDataSource* ds = frame->dataSource();
3506 NavigationState* navigation_state = NavigationState::FromDataSource(ds); 3506 NavigationState* navigation_state = NavigationState::FromDataSource(ds);
3507 DCHECK(navigation_state); 3507 DCHECK(navigation_state);
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
3992 image_fetchers_.push_back(linked_ptr<ImageResourceFetcher>( 3992 image_fetchers_.push_back(linked_ptr<ImageResourceFetcher>(
3993 new ImageResourceFetcher( 3993 new ImageResourceFetcher(
3994 image_url, webview()->mainFrame(), id, image_size, 3994 image_url, webview()->mainFrame(), id, image_size,
3995 NewCallback(this, &RenderView::DidDownloadImage)))); 3995 NewCallback(this, &RenderView::DidDownloadImage))));
3996 return true; 3996 return true;
3997 } 3997 }
3998 3998
3999 void RenderView::DidDownloadImage(ImageResourceFetcher* fetcher, 3999 void RenderView::DidDownloadImage(ImageResourceFetcher* fetcher,
4000 const SkBitmap& image) { 4000 const SkBitmap& image) {
4001 // Notify requester of image download status. 4001 // Notify requester of image download status.
4002 Send(new ViewHostMsg_DidDownloadFavIcon(routing_id_, 4002 Send(new ViewHostMsg_DidDownloadFavicon(routing_id_,
4003 fetcher->id(), 4003 fetcher->id(),
4004 fetcher->image_url(), 4004 fetcher->image_url(),
4005 image.isNull(), 4005 image.isNull(),
4006 image)); 4006 image));
4007 4007
4008 // Remove the image fetcher from our pending list. We're in the callback from 4008 // Remove the image fetcher from our pending list. We're in the callback from
4009 // ImageResourceFetcher, best to delay deletion. 4009 // ImageResourceFetcher, best to delay deletion.
4010 for (ImageResourceFetcherList::iterator iter = image_fetchers_.begin(); 4010 for (ImageResourceFetcherList::iterator iter = image_fetchers_.begin();
4011 iter != image_fetchers_.end(); ++iter) { 4011 iter != image_fetchers_.end(); ++iter) {
4012 if (iter->get() == fetcher) { 4012 if (iter->get() == fetcher) {
4013 iter->release(); 4013 iter->release();
4014 image_fetchers_.erase(iter); 4014 image_fetchers_.erase(iter);
4015 break; 4015 break;
4016 } 4016 }
4017 } 4017 }
4018 MessageLoop::current()->DeleteSoon(FROM_HERE, fetcher); 4018 MessageLoop::current()->DeleteSoon(FROM_HERE, fetcher);
4019 } 4019 }
4020 4020
4021 void RenderView::OnDownloadFavIcon(int id, 4021 void RenderView::OnDownloadFavicon(int id,
4022 const GURL& image_url, 4022 const GURL& image_url,
4023 int image_size) { 4023 int image_size) {
4024 bool data_image_failed = false; 4024 bool data_image_failed = false;
4025 if (image_url.SchemeIs("data")) { 4025 if (image_url.SchemeIs("data")) {
4026 SkBitmap data_image = ImageFromDataUrl(image_url); 4026 SkBitmap data_image = ImageFromDataUrl(image_url);
4027 data_image_failed = data_image.empty(); 4027 data_image_failed = data_image.empty();
4028 if (!data_image_failed) { 4028 if (!data_image_failed) {
4029 Send(new ViewHostMsg_DidDownloadFavIcon(routing_id_, id, image_url, false, 4029 Send(new ViewHostMsg_DidDownloadFavicon(routing_id_, id, image_url, false,
4030 data_image)); 4030 data_image));
4031 } 4031 }
4032 } 4032 }
4033 4033
4034 if (data_image_failed || 4034 if (data_image_failed ||
4035 !DownloadImage(id, image_url, image_size)) { 4035 !DownloadImage(id, image_url, image_size)) {
4036 Send(new ViewHostMsg_DidDownloadFavIcon(routing_id_, id, image_url, true, 4036 Send(new ViewHostMsg_DidDownloadFavicon(routing_id_, id, image_url, true,
4037 SkBitmap())); 4037 SkBitmap()));
4038 } 4038 }
4039 } 4039 }
4040 4040
4041 SkBitmap RenderView::ImageFromDataUrl(const GURL& url) const { 4041 SkBitmap RenderView::ImageFromDataUrl(const GURL& url) const {
4042 std::string mime_type, char_set, data; 4042 std::string mime_type, char_set, data;
4043 if (net::DataURL::Parse(url, &mime_type, &char_set, &data) && !data.empty()) { 4043 if (net::DataURL::Parse(url, &mime_type, &char_set, &data) && !data.empty()) {
4044 // Decode the favicon using WebKit's image decoder. 4044 // Decode the favicon using WebKit's image decoder.
4045 webkit_glue::ImageDecoder decoder(gfx::Size(kFaviconSize, kFaviconSize)); 4045 webkit_glue::ImageDecoder decoder(gfx::Size(kFaviconSize, kFaviconSize));
4046 const unsigned char* src_data = 4046 const unsigned char* src_data =
(...skipping 1558 matching lines...) Expand 10 before | Expand all | Expand 10 after
5605 const webkit_glue::CustomContextMenuContext& custom_context) { 5605 const webkit_glue::CustomContextMenuContext& custom_context) {
5606 if (custom_context.is_pepper_menu) 5606 if (custom_context.is_pepper_menu)
5607 pepper_delegate_.OnContextMenuClosed(custom_context); 5607 pepper_delegate_.OnContextMenuClosed(custom_context);
5608 else 5608 else
5609 context_menu_node_.reset(); 5609 context_menu_node_.reset();
5610 } 5610 }
5611 5611
5612 void RenderView::OnNetworkStateChanged(bool online) { 5612 void RenderView::OnNetworkStateChanged(bool online) {
5613 WebNetworkStateNotifier::setOnLine(online); 5613 WebNetworkStateNotifier::setOnLine(online);
5614 } 5614 }
OLDNEW
« no previous file with comments | « chrome/renderer/render_view.h ('k') | content/browser/renderer_host/render_view_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698