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/renderer/render_view_impl.h" | 5 #include "content/renderer/render_view_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 2305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2316 for (size_t i = 0; i < icon_urls.size(); i++) { | 2316 for (size_t i = 0; i < icon_urls.size(); i++) { |
2317 std::vector<gfx::Size> sizes; | 2317 std::vector<gfx::Size> sizes; |
2318 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); | 2318 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); |
2319 urls.push_back(FaviconURL( | 2319 urls.push_back(FaviconURL( |
2320 icon_urls[i].iconURL(), ToFaviconType(icon_urls[i].iconType()), sizes)); | 2320 icon_urls[i].iconURL(), ToFaviconType(icon_urls[i].iconType()), sizes)); |
2321 } | 2321 } |
2322 SendUpdateFaviconURL(urls); | 2322 SendUpdateFaviconURL(urls); |
2323 } | 2323 } |
2324 | 2324 |
2325 void RenderViewImpl::didHandleOnloadEvents(WebLocalFrame* frame) { | 2325 void RenderViewImpl::didHandleOnloadEvents(WebLocalFrame* frame) { |
2326 if (webview()->mainFrame() == frame) { | 2326 if (webview()->mainFrame() == frame) |
2327 Send(new ViewHostMsg_DocumentOnLoadCompletedInMainFrame(routing_id_, | 2327 Send(new ViewHostMsg_DocumentOnLoadCompletedInMainFrame(routing_id_)); |
2328 page_id_)); | |
2329 } | |
2330 } | 2328 } |
2331 | 2329 |
2332 void RenderViewImpl::didUpdateCurrentHistoryItem(WebLocalFrame* frame) { | 2330 void RenderViewImpl::didUpdateCurrentHistoryItem(WebLocalFrame* frame) { |
2333 StartNavStateSyncTimerIfNecessary(); | 2331 StartNavStateSyncTimerIfNecessary(); |
2334 } | 2332 } |
2335 | 2333 |
2336 void RenderViewImpl::CheckPreferredSize() { | 2334 void RenderViewImpl::CheckPreferredSize() { |
2337 // We don't always want to send the change messages over IPC, only if we've | 2335 // We don't always want to send the change messages over IPC, only if we've |
2338 // been put in that mode by getting a |ViewMsg_EnablePreferredSizeChangedMode| | 2336 // been put in that mode by getting a |ViewMsg_EnablePreferredSizeChangedMode| |
2339 // message. | 2337 // message. |
(...skipping 998 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3338 // If we have a provisional frame we are between the start and commit stages | 3336 // If we have a provisional frame we are between the start and commit stages |
3339 // of loading and we don't want to save stats. | 3337 // of loading and we don't want to save stats. |
3340 if (!main_frame->provisionalDataSource()) { | 3338 if (!main_frame->provisionalDataSource()) { |
3341 WebDataSource* ds = main_frame->dataSource(); | 3339 WebDataSource* ds = main_frame->dataSource(); |
3342 DocumentState* document_state = DocumentState::FromDataSource(ds); | 3340 DocumentState* document_state = DocumentState::FromDataSource(ds); |
3343 InternalDocumentStateData* data = | 3341 InternalDocumentStateData* data = |
3344 InternalDocumentStateData::FromDocumentState(document_state); | 3342 InternalDocumentStateData::FromDocumentState(document_state); |
3345 if (data->did_first_visually_non_empty_layout() && | 3343 if (data->did_first_visually_non_empty_layout() && |
3346 !data->did_first_visually_non_empty_paint()) { | 3344 !data->did_first_visually_non_empty_paint()) { |
3347 data->set_did_first_visually_non_empty_paint(true); | 3345 data->set_did_first_visually_non_empty_paint(true); |
3348 Send(new ViewHostMsg_DidFirstVisuallyNonEmptyPaint(routing_id_, | 3346 Send(new ViewHostMsg_DidFirstVisuallyNonEmptyPaint(routing_id_)); |
3349 page_id_)); | |
3350 } | 3347 } |
3351 | 3348 |
3352 // TODO(jar): The following code should all be inside a method, probably in | 3349 // TODO(jar): The following code should all be inside a method, probably in |
3353 // NavigatorState. | 3350 // NavigatorState. |
3354 Time now = Time::Now(); | 3351 Time now = Time::Now(); |
3355 if (document_state->first_paint_time().is_null()) { | 3352 if (document_state->first_paint_time().is_null()) { |
3356 document_state->set_first_paint_time(now); | 3353 document_state->set_first_paint_time(now); |
3357 } | 3354 } |
3358 if (document_state->first_paint_after_load_time().is_null() && | 3355 if (document_state->first_paint_after_load_time().is_null() && |
3359 !document_state->finish_load_time().is_null()) { | 3356 !document_state->finish_load_time().is_null()) { |
(...skipping 946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4306 disambiguation_bitmaps_.erase(it); | 4303 disambiguation_bitmaps_.erase(it); |
4307 } | 4304 } |
4308 | 4305 |
4309 void RenderViewImpl::DidCommitCompositorFrame() { | 4306 void RenderViewImpl::DidCommitCompositorFrame() { |
4310 RenderWidget::DidCommitCompositorFrame(); | 4307 RenderWidget::DidCommitCompositorFrame(); |
4311 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidCommitCompositorFrame()); | 4308 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidCommitCompositorFrame()); |
4312 } | 4309 } |
4313 | 4310 |
4314 void RenderViewImpl::SendUpdateFaviconURL(const std::vector<FaviconURL>& urls) { | 4311 void RenderViewImpl::SendUpdateFaviconURL(const std::vector<FaviconURL>& urls) { |
4315 if (!urls.empty()) | 4312 if (!urls.empty()) |
4316 Send(new ViewHostMsg_UpdateFaviconURL(routing_id_, page_id_, urls)); | 4313 Send(new ViewHostMsg_UpdateFaviconURL(routing_id_, urls)); |
4317 } | 4314 } |
4318 | 4315 |
4319 void RenderViewImpl::DidStopLoadingIcons() { | 4316 void RenderViewImpl::DidStopLoadingIcons() { |
4320 int icon_types = WebIconURL::TypeFavicon; | 4317 int icon_types = WebIconURL::TypeFavicon; |
4321 if (TouchEnabled()) | 4318 if (TouchEnabled()) |
4322 icon_types |= WebIconURL::TypeTouchPrecomposed | WebIconURL::TypeTouch; | 4319 icon_types |= WebIconURL::TypeTouchPrecomposed | WebIconURL::TypeTouch; |
4323 | 4320 |
4324 WebVector<WebIconURL> icon_urls = | 4321 WebVector<WebIconURL> icon_urls = |
4325 webview()->mainFrame()->iconURLs(icon_types); | 4322 webview()->mainFrame()->iconURLs(icon_types); |
4326 | 4323 |
4327 std::vector<FaviconURL> urls; | 4324 std::vector<FaviconURL> urls; |
4328 for (size_t i = 0; i < icon_urls.size(); i++) { | 4325 for (size_t i = 0; i < icon_urls.size(); i++) { |
4329 WebURL url = icon_urls[i].iconURL(); | 4326 WebURL url = icon_urls[i].iconURL(); |
4330 std::vector<gfx::Size> sizes; | 4327 std::vector<gfx::Size> sizes; |
4331 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); | 4328 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); |
4332 if (!url.isEmpty()) | 4329 if (!url.isEmpty()) |
4333 urls.push_back( | 4330 urls.push_back( |
4334 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); | 4331 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); |
4335 } | 4332 } |
4336 SendUpdateFaviconURL(urls); | 4333 SendUpdateFaviconURL(urls); |
4337 } | 4334 } |
4338 | 4335 |
4339 } // namespace content | 4336 } // namespace content |
OLD | NEW |