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

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 218993014: Call currently unimplemented history shims on WebView (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 1389 matching lines...) Expand 10 before | Expand all | Expand 10 after
1400 blink::WebDataSource::ExtraData* extra_data, 1400 blink::WebDataSource::ExtraData* extra_data,
1401 const blink::WebURLRequest& request, 1401 const blink::WebURLRequest& request,
1402 blink::WebNavigationType type, 1402 blink::WebNavigationType type,
1403 blink::WebNavigationPolicy default_policy, 1403 blink::WebNavigationPolicy default_policy,
1404 bool is_redirect) { 1404 bool is_redirect) {
1405 DCHECK(!frame_ || frame_ == frame); 1405 DCHECK(!frame_ || frame_ == frame);
1406 return DecidePolicyForNavigation( 1406 return DecidePolicyForNavigation(
1407 this, frame, extra_data, request, type, default_policy, is_redirect); 1407 this, frame, extra_data, request, type, default_policy, is_redirect);
1408 } 1408 }
1409 1409
1410 blink::WebHistoryItem RenderFrameImpl::historyItemForNewChildFrame(
1411 blink::WebFrame* frame) {
1412 return render_view_->webview()->itemForNewChildFrame(frame);
Charlie Reis 2014/04/02 17:52:59 Should this be on WebFrame rather than WebView?
1413 }
1414
1410 void RenderFrameImpl::willSendSubmitEvent(blink::WebFrame* frame, 1415 void RenderFrameImpl::willSendSubmitEvent(blink::WebFrame* frame,
1411 const blink::WebFormElement& form) { 1416 const blink::WebFormElement& form) {
1412 DCHECK(!frame_ || frame_ == frame); 1417 DCHECK(!frame_ || frame_ == frame);
1413 // Call back to RenderViewImpl for observers to be notified. 1418 // Call back to RenderViewImpl for observers to be notified.
1414 // TODO(nasko): Remove once we have RenderFrameObserver. 1419 // TODO(nasko): Remove once we have RenderFrameObserver.
1415 render_view_->willSendSubmitEvent(frame, form); 1420 render_view_->willSendSubmitEvent(frame, form);
1416 } 1421 }
1417 1422
1418 void RenderFrameImpl::willSubmitForm(blink::WebFrame* frame, 1423 void RenderFrameImpl::willSubmitForm(blink::WebFrame* frame,
1419 const blink::WebFormElement& form) { 1424 const blink::WebFormElement& form) {
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
1510 1515
1511 int parent_routing_id = frame->parent() ? 1516 int parent_routing_id = frame->parent() ?
1512 FromWebFrame(frame->parent())->GetRoutingID() : -1; 1517 FromWebFrame(frame->parent())->GetRoutingID() : -1;
1513 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( 1518 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame(
1514 routing_id_, parent_routing_id, ds->request().url())); 1519 routing_id_, parent_routing_id, ds->request().url()));
1515 } 1520 }
1516 1521
1517 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad( 1522 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad(
1518 blink::WebFrame* frame) { 1523 blink::WebFrame* frame) {
1519 DCHECK(!frame_ || frame_ == frame); 1524 DCHECK(!frame_ || frame_ == frame);
1525 render_view_->webview()->removeChildrenForRedirect(frame);
Charlie Reis 2014/04/02 17:52:59 Just curious, why is this on the WebView rather th
1520 if (frame->parent()) 1526 if (frame->parent())
1521 return; 1527 return;
1522 // Received a redirect on the main frame. 1528 // Received a redirect on the main frame.
1523 WebDataSource* data_source = frame->provisionalDataSource(); 1529 WebDataSource* data_source = frame->provisionalDataSource();
1524 if (!data_source) { 1530 if (!data_source) {
1525 // Should only be invoked when we have a data source. 1531 // Should only be invoked when we have a data source.
1526 NOTREACHED(); 1532 NOTREACHED();
1527 return; 1533 return;
1528 } 1534 }
1529 std::vector<GURL> redirects; 1535 std::vector<GURL> redirects;
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
1631 document_state->request_time(); 1637 document_state->request_time();
1632 render_view_->pending_navigation_params_->should_replace_current_entry = 1638 render_view_->pending_navigation_params_->should_replace_current_entry =
1633 replace; 1639 replace;
1634 } 1640 }
1635 1641
1636 // Load an error page. 1642 // Load an error page.
1637 render_view_->LoadNavigationErrorPage( 1643 render_view_->LoadNavigationErrorPage(
1638 frame, failed_request, error, replace); 1644 frame, failed_request, error, replace);
1639 } 1645 }
1640 1646
1641 void RenderFrameImpl::didCommitProvisionalLoad(blink::WebFrame* frame, 1647 void RenderFrameImpl::didCommitProvisionalLoad(blink::WebFrame* frame,
Charlie Reis 2014/04/02 17:52:59 nit: frame should be on its own line, aligned with
Nate Chapin 2014/04/02 17:58:35 Done.
1648 const blink::WebHistoryItem& item,
1649 blink::WebHistoryCommitType commit_type) {
1650 DocumentState* document_state =
1651 DocumentState::FromDataSource(frame->dataSource());
1652 render_view_->webview()->updateForCommit(frame, item, commit_type,
Charlie Reis 2014/04/02 17:52:59 updateForCommit should also be on WebFrame rather
1653 document_state->navigation_state()->was_within_same_page());
1654
1655 didCommitProvisionalLoad(frame, commit_type == blink::WebStandardCommit);
1656 }
1657
1658 void RenderFrameImpl::didCommitProvisionalLoad(blink::WebFrame* frame,
1642 bool is_new_navigation) { 1659 bool is_new_navigation) {
1643 DCHECK(!frame_ || frame_ == frame); 1660 DCHECK(!frame_ || frame_ == frame);
1644 DocumentState* document_state = 1661 DocumentState* document_state =
1645 DocumentState::FromDataSource(frame->dataSource()); 1662 DocumentState::FromDataSource(frame->dataSource());
1646 NavigationState* navigation_state = document_state->navigation_state(); 1663 NavigationState* navigation_state = document_state->navigation_state();
1647 InternalDocumentStateData* internal_data = 1664 InternalDocumentStateData* internal_data =
1648 InternalDocumentStateData::FromDocumentState(document_state); 1665 InternalDocumentStateData::FromDocumentState(document_state);
1649 1666
1650 if (document_state->commit_load_time().is_null()) 1667 if (document_state->commit_load_time().is_null())
1651 document_state->set_commit_load_time(Time::Now()); 1668 document_state->set_commit_load_time(Time::Now());
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
1852 1869
1853 // Don't send this message while the frame is swapped out. 1870 // Don't send this message while the frame is swapped out.
1854 if (is_swapped_out()) 1871 if (is_swapped_out())
1855 return; 1872 return;
1856 1873
1857 Send(new FrameHostMsg_DidFinishLoad(routing_id_, 1874 Send(new FrameHostMsg_DidFinishLoad(routing_id_,
1858 ds->request().url())); 1875 ds->request().url()));
1859 } 1876 }
1860 1877
1861 void RenderFrameImpl::didNavigateWithinPage(blink::WebFrame* frame, 1878 void RenderFrameImpl::didNavigateWithinPage(blink::WebFrame* frame,
1879 const blink::WebHistoryItem& item,
1880 blink::WebHistoryCommitType commit_type) {
1881 DCHECK(!frame_ || frame_ == frame);
1882 // If this was a reference fragment navigation that we initiated, then we
1883 // could end up having a non-null pending navigation params. We just need to
1884 // update the ExtraData on the datasource so that others who read the
1885 // ExtraData will get the new NavigationState. Similarly, if we did not
1886 // initiate this navigation, then we need to take care to reset any pre-
1887 // existing navigation state to a content-initiated navigation state.
1888 // DidCreateDataSource conveniently takes care of this for us.
1889 didCreateDataSource(frame, frame->dataSource());
1890
1891 DocumentState* document_state =
1892 DocumentState::FromDataSource(frame->dataSource());
1893 NavigationState* new_state = document_state->navigation_state();
1894 new_state->set_was_within_same_page(true);
1895
1896 didCommitProvisionalLoad(frame, item, commit_type);
1897 }
1898
1899 void RenderFrameImpl::didNavigateWithinPage(blink::WebFrame* frame,
1862 bool is_new_navigation) { 1900 bool is_new_navigation) {
1863 DCHECK(!frame_ || frame_ == frame); 1901 DCHECK(!frame_ || frame_ == frame);
1864 // If this was a reference fragment navigation that we initiated, then we 1902 // If this was a reference fragment navigation that we initiated, then we
1865 // could end up having a non-null pending navigation params. We just need to 1903 // could end up having a non-null pending navigation params. We just need to
1866 // update the ExtraData on the datasource so that others who read the 1904 // update the ExtraData on the datasource so that others who read the
1867 // ExtraData will get the new NavigationState. Similarly, if we did not 1905 // ExtraData will get the new NavigationState. Similarly, if we did not
1868 // initiate this navigation, then we need to take care to reset any pre- 1906 // initiate this navigation, then we need to take care to reset any pre-
1869 // existing navigation state to a content-initiated navigation state. 1907 // existing navigation state to a content-initiated navigation state.
1870 // DidCreateDataSource conveniently takes care of this for us. 1908 // DidCreateDataSource conveniently takes care of this for us.
1909
Charlie Reis 2014/04/02 17:52:59 nit: No extra line here.
Nate Chapin 2014/04/02 17:58:35 Done.
1871 didCreateDataSource(frame, frame->dataSource()); 1910 didCreateDataSource(frame, frame->dataSource());
1872 1911
1873 DocumentState* document_state = 1912 DocumentState* document_state =
1874 DocumentState::FromDataSource(frame->dataSource()); 1913 DocumentState::FromDataSource(frame->dataSource());
1875 NavigationState* new_state = document_state->navigation_state(); 1914 NavigationState* new_state = document_state->navigation_state();
1876 new_state->set_was_within_same_page(true); 1915 new_state->set_was_within_same_page(true);
1877 1916
1878 didCommitProvisionalLoad(frame, is_new_navigation); 1917 didCommitProvisionalLoad(frame, is_new_navigation);
1879 } 1918 }
1880 1919
(...skipping 1084 matching lines...) Expand 10 before | Expand all | Expand 10 after
2965 selection_text_offset_ = offset; 3004 selection_text_offset_ = offset;
2966 selection_range_ = range; 3005 selection_range_ = range;
2967 // This IPC is dispatched by RenderWidetHost, so use its routing ID. 3006 // This IPC is dispatched by RenderWidetHost, so use its routing ID.
2968 Send(new ViewHostMsg_SelectionChanged( 3007 Send(new ViewHostMsg_SelectionChanged(
2969 GetRenderWidget()->routing_id(), text, offset, range)); 3008 GetRenderWidget()->routing_id(), text, offset, range));
2970 } 3009 }
2971 GetRenderWidget()->UpdateSelectionBounds(); 3010 GetRenderWidget()->UpdateSelectionBounds();
2972 } 3011 }
2973 3012
2974 } // namespace content 3013 } // namespace content
OLDNEW
« content/renderer/render_frame_impl.h ('K') | « content/renderer/render_frame_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698