Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/browser/frame_host/navigator_impl.h" | 5 #include "content/browser/frame_host/navigator_impl.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
| 9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
| 10 #include "content/browser/frame_host/frame_tree.h" | 10 #include "content/browser/frame_host/frame_tree.h" |
| (...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 555 OpenURLParams params( | 555 OpenURLParams params( |
| 556 dest_url, referrer, frame_tree_node_id, disposition, page_transition, | 556 dest_url, referrer, frame_tree_node_id, disposition, page_transition, |
| 557 true /* is_renderer_initiated */); | 557 true /* is_renderer_initiated */); |
| 558 params.source_site_instance = source_site_instance; | 558 params.source_site_instance = source_site_instance; |
| 559 if (redirect_chain.size() > 0) | 559 if (redirect_chain.size() > 0) |
| 560 params.redirect_chain = redirect_chain; | 560 params.redirect_chain = redirect_chain; |
| 561 params.transferred_global_request_id = transferred_global_request_id; | 561 params.transferred_global_request_id = transferred_global_request_id; |
| 562 params.should_replace_current_entry = should_replace_current_entry; | 562 params.should_replace_current_entry = should_replace_current_entry; |
| 563 params.user_gesture = user_gesture; | 563 params.user_gesture = user_gesture; |
| 564 | 564 |
| 565 if (GetRenderManager(render_frame_host)->web_ui()) { | 565 // Note: extensions don't have bindings, so will not be affected by the |
|
Charlie Reis
2015/07/15 20:38:00
Extensions aren't a concept in content/, so I don'
| |
| 566 // Web UI pages sometimes want to override the page transition type for | 566 // following code. |
| 567 // link clicks (e.g., so the new tab page can specify AUTO_BOOKMARK for | 567 int enabled_bindings = |
|
Charlie Reis
2015/07/15 20:38:00
Looking deeper, this change doesn't look safe.
Ne
kmadhusu
2015/07/17 04:06:47
mathp@/fserb@: Please address this comment.
fserb
2015/07/17 15:59:11
Yep. We still rely on this when we analyse history
| |
| 568 // automatically generated suggestions). We don't override other types | 568 render_frame_host->render_view_host()->GetEnabledBindings(); |
| 569 // like TYPED because they have different implications (e.g., autocomplete). | 569 if (enabled_bindings & content::BINDINGS_POLICY_WEB_UI) { |
| 570 if (ui::PageTransitionCoreTypeIs( | 570 // Note that we hide the referrer for Web UI pages. We don't really |
|
Charlie Reis
2015/07/15 20:37:59
nit: for Web UI pages with bindings.
| |
| 571 params.transition, ui::PAGE_TRANSITION_LINK)) | |
| 572 params.transition = | |
| 573 GetRenderManager(render_frame_host)->web_ui()-> | |
| 574 GetLinkTransitionType(); | |
| 575 | |
| 576 // Note also that we hide the referrer for Web UI pages. We don't really | |
| 577 // want web sites to see a referrer of "chrome://blah" (and some | 571 // want web sites to see a referrer of "chrome://blah" (and some |
| 578 // chrome: URLs might have search terms or other stuff we don't want to | 572 // chrome: URLs might have search terms or other stuff we don't want to |
| 579 // send to the site), so we send no referrer. | 573 // send to the site), so we send no referrer. |
| 580 params.referrer = Referrer(); | 574 params.referrer = Referrer(); |
|
Charlie Reis
2015/07/15 20:38:00
@kalman: Should extension processes be sending a n
not at google - send to devlin
2015/07/15 20:42:03
We should maintain the old, existing behavior.
| |
| 581 | 575 |
| 582 // Navigations in Web UI pages count as browser-initiated navigations. | 576 // Navigations in Web UI pages (with WebUI bindings) count as |
|
Charlie Reis
2015/07/15 20:38:00
nit: Web UI
| |
| 577 // browser-initiated navigations. | |
| 583 params.is_renderer_initiated = false; | 578 params.is_renderer_initiated = false; |
| 584 } | 579 } |
| 585 | 580 |
| 586 if (delegate_) | 581 if (delegate_) |
| 587 delegate_->RequestOpenURL(render_frame_host, params); | 582 delegate_->RequestOpenURL(render_frame_host, params); |
| 588 } | 583 } |
| 589 | 584 |
| 590 // PlzNavigate | 585 // PlzNavigate |
| 591 void NavigatorImpl::OnBeforeUnloadACK(FrameTreeNode* frame_tree_node, | 586 void NavigatorImpl::OnBeforeUnloadACK(FrameTreeNode* frame_tree_node, |
| 592 bool proceed) { | 587 bool proceed) { |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 904 entry->set_should_replace_entry(pending_entry->should_replace_entry()); | 899 entry->set_should_replace_entry(pending_entry->should_replace_entry()); |
| 905 entry->SetRedirectChain(pending_entry->GetRedirectChain()); | 900 entry->SetRedirectChain(pending_entry->GetRedirectChain()); |
| 906 } | 901 } |
| 907 controller_->SetPendingEntry(entry.Pass()); | 902 controller_->SetPendingEntry(entry.Pass()); |
| 908 if (delegate_) | 903 if (delegate_) |
| 909 delegate_->NotifyChangedNavigationState(content::INVALIDATE_TYPE_URL); | 904 delegate_->NotifyChangedNavigationState(content::INVALIDATE_TYPE_URL); |
| 910 } | 905 } |
| 911 } | 906 } |
| 912 | 907 |
| 913 } // namespace content | 908 } // namespace content |
| OLD | NEW |