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 2830 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2841 GetReferrerPolicyFromRequest(frame, request)); | 2841 GetReferrerPolicyFromRequest(frame, request)); |
2842 if (policy == WebKit::WebNavigationPolicyDownload) { | 2842 if (policy == WebKit::WebNavigationPolicyDownload) { |
2843 Send(new ViewHostMsg_DownloadUrl(routing_id_, request.url(), referrer, | 2843 Send(new ViewHostMsg_DownloadUrl(routing_id_, request.url(), referrer, |
2844 suggested_name)); | 2844 suggested_name)); |
2845 } else { | 2845 } else { |
2846 OpenURL(frame, request.url(), referrer, policy); | 2846 OpenURL(frame, request.url(), referrer, policy); |
2847 } | 2847 } |
2848 } | 2848 } |
2849 | 2849 |
2850 WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation( | 2850 WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation( |
2851 WebFrame* frame, WebDataSource* dataSource, const WebURLRequest& request, | 2851 WebFrame* frame, WebDataSource::ExtraData* extraData, |
2852 WebNavigationType type, WebNavigationPolicy default_policy, | 2852 const WebURLRequest& request, WebNavigationType type, |
2853 bool is_redirect) { | 2853 WebNavigationPolicy default_policy, bool is_redirect) { |
2854 if (request.url() != GURL(kSwappedOutURL) && | 2854 if (request.url() != GURL(kSwappedOutURL) && |
2855 GetContentClient()->renderer()->HandleNavigation(frame, request, type, | 2855 GetContentClient()->renderer()->HandleNavigation(frame, request, type, |
2856 default_policy, | 2856 default_policy, |
2857 is_redirect)) { | 2857 is_redirect)) { |
2858 return WebKit::WebNavigationPolicyIgnore; | 2858 return WebKit::WebNavigationPolicyIgnore; |
2859 } | 2859 } |
2860 | 2860 |
2861 Referrer referrer( | 2861 Referrer referrer( |
2862 GURL(request.httpHeaderField(WebString::fromUTF8("Referer"))), | 2862 GURL(request.httpHeaderField(WebString::fromUTF8("Referer"))), |
2863 GetReferrerPolicyFromRequest(frame, request)); | 2863 GetReferrerPolicyFromRequest(frame, request)); |
(...skipping 21 matching lines...) Expand all Loading... |
2885 return default_policy; | 2885 return default_policy; |
2886 } | 2886 } |
2887 | 2887 |
2888 // Webkit is asking whether to navigate to a new URL. | 2888 // Webkit is asking whether to navigate to a new URL. |
2889 // This is fine normally, except if we're showing UI from one security | 2889 // This is fine normally, except if we're showing UI from one security |
2890 // context and they're trying to navigate to a different context. | 2890 // context and they're trying to navigate to a different context. |
2891 const GURL& url = request.url(); | 2891 const GURL& url = request.url(); |
2892 | 2892 |
2893 // A content initiated navigation may have originated from a link-click, | 2893 // A content initiated navigation may have originated from a link-click, |
2894 // script, drag-n-drop operation, etc. | 2894 // script, drag-n-drop operation, etc. |
2895 bool is_content_initiated = | 2895 bool is_content_initiated = static_cast<DocumentState*>(extraData)-> |
2896 DocumentState::FromDataSource(dataSource)-> | |
2897 navigation_state()->is_content_initiated(); | 2896 navigation_state()->is_content_initiated(); |
2898 | 2897 |
2899 // Experimental: | 2898 // Experimental: |
2900 // If --enable-strict-site-isolation or --site-per-process is enabled, send | 2899 // If --enable-strict-site-isolation or --site-per-process is enabled, send |
2901 // all top-level navigations to the browser to let it swap processes when | 2900 // all top-level navigations to the browser to let it swap processes when |
2902 // crossing site boundaries. This is currently expected to break some script | 2901 // crossing site boundaries. This is currently expected to break some script |
2903 // calls and navigations, such as form submissions. | 2902 // calls and navigations, such as form submissions. |
2904 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); | 2903 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
2905 bool force_swap_due_to_flag = | 2904 bool force_swap_due_to_flag = |
2906 command_line.HasSwitch(switches::kEnableStrictSiteIsolation) || | 2905 command_line.HasSwitch(switches::kEnableStrictSiteIsolation) || |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3041 OpenURL(frame, url, Referrer(), default_policy); | 3040 OpenURL(frame, url, Referrer(), default_policy); |
3042 return WebKit::WebNavigationPolicyIgnore; | 3041 return WebKit::WebNavigationPolicyIgnore; |
3043 } | 3042 } |
3044 | 3043 |
3045 return default_policy; | 3044 return default_policy; |
3046 } | 3045 } |
3047 | 3046 |
3048 WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation( | 3047 WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation( |
3049 WebFrame* frame, const WebURLRequest& request, WebNavigationType type, | 3048 WebFrame* frame, const WebURLRequest& request, WebNavigationType type, |
3050 WebNavigationPolicy default_policy, bool is_redirect) { | 3049 WebNavigationPolicy default_policy, bool is_redirect) { |
3051 return decidePolicyForNavigation(frame, frame->provisionalDataSource(), | 3050 return decidePolicyForNavigation(frame, |
| 3051 frame->provisionalDataSource()->extraData(), |
3052 request, type, default_policy, is_redirect); | 3052 request, type, default_policy, is_redirect); |
3053 } | 3053 } |
3054 | 3054 |
3055 bool RenderViewImpl::canHandleRequest( | 3055 bool RenderViewImpl::canHandleRequest( |
3056 WebFrame* frame, const WebURLRequest& request) { | 3056 WebFrame* frame, const WebURLRequest& request) { |
3057 // We allow WebKit to think that everything can be handled even though | 3057 // We allow WebKit to think that everything can be handled even though |
3058 // browser-side we limit what we load. | 3058 // browser-side we limit what we load. |
3059 return true; | 3059 return true; |
3060 } | 3060 } |
3061 | 3061 |
(...skipping 3447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6509 WebURL url = icon_urls[i].iconURL(); | 6509 WebURL url = icon_urls[i].iconURL(); |
6510 if (!url.isEmpty()) | 6510 if (!url.isEmpty()) |
6511 urls.push_back(FaviconURL(url, | 6511 urls.push_back(FaviconURL(url, |
6512 ToFaviconType(icon_urls[i].iconType()))); | 6512 ToFaviconType(icon_urls[i].iconType()))); |
6513 } | 6513 } |
6514 SendUpdateFaviconURL(urls); | 6514 SendUpdateFaviconURL(urls); |
6515 } | 6515 } |
6516 | 6516 |
6517 | 6517 |
6518 } // namespace content | 6518 } // namespace content |
OLD | NEW |