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 646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
657 | 657 |
658 RenderViewImpl::RenderViewImpl(RenderViewImplParams* params) | 658 RenderViewImpl::RenderViewImpl(RenderViewImplParams* params) |
659 : RenderWidget(blink::WebPopupTypeNone, | 659 : RenderWidget(blink::WebPopupTypeNone, |
660 params->screen_info, | 660 params->screen_info, |
661 params->swapped_out, | 661 params->swapped_out, |
662 params->hidden), | 662 params->hidden), |
663 webkit_preferences_(params->webkit_prefs), | 663 webkit_preferences_(params->webkit_prefs), |
664 send_content_state_immediately_(false), | 664 send_content_state_immediately_(false), |
665 enabled_bindings_(0), | 665 enabled_bindings_(0), |
666 send_preferred_size_changes_(false), | 666 send_preferred_size_changes_(false), |
667 is_loading_(false), | |
668 navigation_gesture_(NavigationGestureUnknown), | 667 navigation_gesture_(NavigationGestureUnknown), |
669 opened_by_user_gesture_(true), | 668 opened_by_user_gesture_(true), |
670 opener_suppressed_(false), | 669 opener_suppressed_(false), |
671 suppress_dialogs_until_swap_out_(false), | 670 suppress_dialogs_until_swap_out_(false), |
672 page_id_(-1), | 671 page_id_(-1), |
673 last_page_id_sent_to_browser_(-1), | 672 last_page_id_sent_to_browser_(-1), |
674 next_page_id_(params->next_page_id), | 673 next_page_id_(params->next_page_id), |
675 history_list_offset_(-1), | 674 history_list_offset_(-1), |
676 history_list_length_(0), | 675 history_list_length_(0), |
677 target_url_status_(TARGET_NONE), | 676 target_url_status_(TARGET_NONE), |
(...skipping 1159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1837 WebFileChooserCompletion* chooser_completion) { | 1836 WebFileChooserCompletion* chooser_completion) { |
1838 int id = enumeration_completion_id_++; | 1837 int id = enumeration_completion_id_++; |
1839 enumeration_completions_[id] = chooser_completion; | 1838 enumeration_completions_[id] = chooser_completion; |
1840 return Send(new ViewHostMsg_EnumerateDirectory( | 1839 return Send(new ViewHostMsg_EnumerateDirectory( |
1841 routing_id_, | 1840 routing_id_, |
1842 id, | 1841 id, |
1843 base::FilePath::FromUTF16Unsafe(path))); | 1842 base::FilePath::FromUTF16Unsafe(path))); |
1844 } | 1843 } |
1845 | 1844 |
1846 void RenderViewImpl::didStartLoading(bool to_different_document) { | 1845 void RenderViewImpl::didStartLoading(bool to_different_document) { |
1847 didStartLoading(); | 1846 main_render_frame_->didStartLoading(to_different_document); |
1848 } | 1847 } |
1849 | 1848 |
1850 void RenderViewImpl::didStartLoading() { | 1849 void RenderViewImpl::didStopLoading() { |
1851 if (is_loading_) { | 1850 main_render_frame_->didStopLoading(); |
1852 DVLOG(1) << "didStartLoading called while loading"; | 1851 } |
1853 return; | 1852 |
| 1853 void RenderViewImpl::didStartLoading(WebFrame* frame) { |
| 1854 if (load_progress_tracker_ != NULL) { |
| 1855 load_progress_tracker_->DidStartLoading( |
| 1856 RenderFrameImpl::FromWebFrame(frame)->GetRoutingID()); |
1854 } | 1857 } |
1855 | |
1856 is_loading_ = true; | |
1857 | |
1858 // Send the IPC message through the top-level frame. | |
1859 main_render_frame_->didStartLoading(); | |
1860 | |
1861 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidStartLoading()); | 1858 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidStartLoading()); |
1862 } | 1859 } |
1863 | 1860 |
1864 void RenderViewImpl::didStopLoading() { | 1861 void RenderViewImpl::didStopLoading(WebFrame* frame) { |
1865 if (!is_loading_) { | 1862 if (load_progress_tracker_ != NULL) { |
1866 DVLOG(1) << "DidStopLoading called while not loading"; | 1863 load_progress_tracker_->DidStopLoading( |
1867 return; | 1864 RenderFrameImpl::FromWebFrame(frame)->GetRoutingID()); |
1868 } | 1865 } |
1869 | 1866 |
1870 is_loading_ = false; | |
1871 | |
1872 // NOTE: For now we're doing the safest thing, and sending out notification | |
1873 // when done loading. This currently isn't an issue as the favicon is only | |
1874 // displayed when done loading. Ideally we would send notification when | |
1875 // finished parsing the head, but webkit doesn't support that yet. | |
1876 // The feed discovery code would also benefit from access to the head. | |
1877 // NOTE: Sending of the IPC message happens through the top-level frame. | |
1878 main_render_frame_->didStopLoading(); | |
1879 | |
1880 if (load_progress_tracker_ != NULL) | |
1881 load_progress_tracker_->DidStopLoading(); | |
1882 | |
1883 DidStopLoadingIcons(); | 1867 DidStopLoadingIcons(); |
1884 | 1868 |
1885 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidStopLoading()); | 1869 FOR_EACH_OBSERVER(RenderViewObserver, observers_, DidStopLoading()); |
1886 } | 1870 } |
1887 | 1871 |
1888 void RenderViewImpl::didChangeLoadProgress(WebFrame* frame, | 1872 void RenderViewImpl::didChangeLoadProgress(WebFrame* frame, |
1889 double load_progress) { | 1873 double load_progress) { |
1890 if (load_progress_tracker_ != NULL) | 1874 if (load_progress_tracker_ != NULL) { |
1891 load_progress_tracker_->DidChangeLoadProgress(frame, load_progress); | 1875 load_progress_tracker_->DidChangeLoadProgress( |
| 1876 RenderFrameImpl::FromWebFrame(frame)->GetRoutingID(), load_progress); |
| 1877 } |
1892 } | 1878 } |
1893 | 1879 |
1894 void RenderViewImpl::didCancelCompositionOnSelectionChange() { | 1880 void RenderViewImpl::didCancelCompositionOnSelectionChange() { |
1895 Send(new ViewHostMsg_ImeCancelComposition(routing_id())); | 1881 Send(new ViewHostMsg_ImeCancelComposition(routing_id())); |
1896 } | 1882 } |
1897 | 1883 |
1898 void RenderViewImpl::didChangeSelection(bool is_empty_selection) { | 1884 void RenderViewImpl::didChangeSelection(bool is_empty_selection) { |
1899 if (!handling_input_event_ && !handling_select_range_) | 1885 if (!handling_input_event_ && !handling_select_range_) |
1900 return; | 1886 return; |
1901 | 1887 |
(...skipping 1345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3247 blink::WebPageVisibilityState RenderViewImpl::GetVisibilityState() const { | 3233 blink::WebPageVisibilityState RenderViewImpl::GetVisibilityState() const { |
3248 return visibilityState(); | 3234 return visibilityState(); |
3249 } | 3235 } |
3250 | 3236 |
3251 void RenderViewImpl::RunModalAlertDialog(blink::WebFrame* frame, | 3237 void RenderViewImpl::RunModalAlertDialog(blink::WebFrame* frame, |
3252 const blink::WebString& message) { | 3238 const blink::WebString& message) { |
3253 return runModalAlertDialog(frame, message); | 3239 return runModalAlertDialog(frame, message); |
3254 } | 3240 } |
3255 | 3241 |
3256 void RenderViewImpl::DidStartLoading() { | 3242 void RenderViewImpl::DidStartLoading() { |
3257 didStartLoading(); | 3243 main_render_frame_->didStartLoading(true); |
3258 } | 3244 } |
3259 | 3245 |
3260 void RenderViewImpl::DidStopLoading() { | 3246 void RenderViewImpl::DidStopLoading() { |
3261 didStopLoading(); | 3247 main_render_frame_->didStopLoading(); |
3262 } | 3248 } |
3263 | 3249 |
3264 void RenderViewImpl::DidPlay(blink::WebMediaPlayer* player) { | 3250 void RenderViewImpl::DidPlay(blink::WebMediaPlayer* player) { |
3265 Send(new ViewHostMsg_MediaPlayingNotification(routing_id_, | 3251 Send(new ViewHostMsg_MediaPlayingNotification(routing_id_, |
3266 reinterpret_cast<int64>(player), | 3252 reinterpret_cast<int64>(player), |
3267 player->hasVideo(), | 3253 player->hasVideo(), |
3268 player->hasAudio())); | 3254 player->hasAudio())); |
3269 } | 3255 } |
3270 | 3256 |
3271 void RenderViewImpl::DidPause(blink::WebMediaPlayer* player) { | 3257 void RenderViewImpl::DidPause(blink::WebMediaPlayer* player) { |
(...skipping 1869 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5141 for (size_t i = 0; i < icon_urls.size(); i++) { | 5127 for (size_t i = 0; i < icon_urls.size(); i++) { |
5142 WebURL url = icon_urls[i].iconURL(); | 5128 WebURL url = icon_urls[i].iconURL(); |
5143 if (!url.isEmpty()) | 5129 if (!url.isEmpty()) |
5144 urls.push_back(FaviconURL(url, | 5130 urls.push_back(FaviconURL(url, |
5145 ToFaviconType(icon_urls[i].iconType()))); | 5131 ToFaviconType(icon_urls[i].iconType()))); |
5146 } | 5132 } |
5147 SendUpdateFaviconURL(urls); | 5133 SendUpdateFaviconURL(urls); |
5148 } | 5134 } |
5149 | 5135 |
5150 } // namespace content | 5136 } // namespace content |
OLD | NEW |