OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 initiatorInfo.name = FetchInitiatorTypeNames::ping; | 81 initiatorInfo.name = FetchInitiatorTypeNames::ping; |
82 PingLoader::start(frame, request, initiatorInfo); | 82 PingLoader::start(frame, request, initiatorInfo); |
83 } | 83 } |
84 | 84 |
85 // http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperl
ink-auditing | 85 // http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperl
ink-auditing |
86 void PingLoader::sendLinkAuditPing(LocalFrame* frame, const KURL& pingURL, const
KURL& destinationURL) | 86 void PingLoader::sendLinkAuditPing(LocalFrame* frame, const KURL& pingURL, const
KURL& destinationURL) |
87 { | 87 { |
88 ResourceRequest request(pingURL); | 88 ResourceRequest request(pingURL); |
89 request.setHTTPMethod("POST"); | 89 request.setHTTPMethod("POST"); |
90 request.setHTTPContentType("text/ping"); | 90 request.setHTTPContentType("text/ping"); |
91 request.setHTTPBody(FormData::create("PING")); | 91 request.setHTTPBody(EncodedFormData::create("PING")); |
92 request.setHTTPHeaderField("Cache-Control", "max-age=0"); | 92 request.setHTTPHeaderField("Cache-Control", "max-age=0"); |
93 finishPingRequestInitialization(request, frame); | 93 finishPingRequestInitialization(request, frame); |
94 | 94 |
95 RefPtr<SecurityOrigin> pingOrigin = SecurityOrigin::create(pingURL); | 95 RefPtr<SecurityOrigin> pingOrigin = SecurityOrigin::create(pingURL); |
96 // addAdditionalRequestHeaders() will have added a referrer for same origin
requests, | 96 // addAdditionalRequestHeaders() will have added a referrer for same origin
requests, |
97 // but the spec omits the referrer for same origin. | 97 // but the spec omits the referrer for same origin. |
98 if (frame->document()->securityOrigin()->isSameSchemeHostPort(pingOrigin.get
())) | 98 if (frame->document()->securityOrigin()->isSameSchemeHostPort(pingOrigin.get
())) |
99 request.clearHTTPReferrer(); | 99 request.clearHTTPReferrer(); |
100 | 100 |
101 request.setHTTPHeaderField("Ping-To", AtomicString(destinationURL.string()))
; | 101 request.setHTTPHeaderField("Ping-To", AtomicString(destinationURL.string()))
; |
102 | 102 |
103 // Ping-From follows the same rules as the default referrer beahavior for su
bresource requests. | 103 // Ping-From follows the same rules as the default referrer beahavior for su
bresource requests. |
104 // FIXME: Should Ping-From obey ReferrerPolicy? | 104 // FIXME: Should Ping-From obey ReferrerPolicy? |
105 if (!SecurityPolicy::shouldHideReferrer(pingURL, frame->document()->url().st
ring())) | 105 if (!SecurityPolicy::shouldHideReferrer(pingURL, frame->document()->url().st
ring())) |
106 request.setHTTPHeaderField("Ping-From", AtomicString(frame->document()->
url().string())); | 106 request.setHTTPHeaderField("Ping-From", AtomicString(frame->document()->
url().string())); |
107 | 107 |
108 FetchInitiatorInfo initiatorInfo; | 108 FetchInitiatorInfo initiatorInfo; |
109 initiatorInfo.name = FetchInitiatorTypeNames::ping; | 109 initiatorInfo.name = FetchInitiatorTypeNames::ping; |
110 PingLoader::start(frame, request, initiatorInfo); | 110 PingLoader::start(frame, request, initiatorInfo); |
111 } | 111 } |
112 | 112 |
113 void PingLoader::sendViolationReport(LocalFrame* frame, const KURL& reportURL, P
assRefPtr<FormData> report, ViolationReportType type) | 113 void PingLoader::sendViolationReport(LocalFrame* frame, const KURL& reportURL, P
assRefPtr<EncodedFormData> report, ViolationReportType type) |
114 { | 114 { |
115 ResourceRequest request(reportURL); | 115 ResourceRequest request(reportURL); |
116 request.setHTTPMethod("POST"); | 116 request.setHTTPMethod("POST"); |
117 request.setHTTPContentType(type == ContentSecurityPolicyViolationReport ? "a
pplication/csp-report" : "application/json"); | 117 request.setHTTPContentType(type == ContentSecurityPolicyViolationReport ? "a
pplication/csp-report" : "application/json"); |
118 request.setHTTPBody(report); | 118 request.setHTTPBody(report); |
119 finishPingRequestInitialization(request, frame); | 119 finishPingRequestInitialization(request, frame); |
120 | 120 |
121 FetchInitiatorInfo initiatorInfo; | 121 FetchInitiatorInfo initiatorInfo; |
122 initiatorInfo.name = FetchInitiatorTypeNames::violationreport; | 122 initiatorInfo.name = FetchInitiatorTypeNames::violationreport; |
123 PingLoader::start(frame, request, initiatorInfo, SecurityOrigin::create(repo
rtURL)->isSameSchemeHostPort(frame->document()->securityOrigin()) ? AllowStoredC
redentials : DoNotAllowStoredCredentials); | 123 PingLoader::start(frame, request, initiatorInfo, SecurityOrigin::create(repo
rtURL)->isSameSchemeHostPort(frame->document()->securityOrigin()) ? AllowStoredC
redentials : DoNotAllowStoredCredentials); |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 InspectorInstrumentation::didFailLoading(frame, m_identifier, ResourceError:
:cancelledError(m_url)); | 222 InspectorInstrumentation::didFailLoading(frame, m_identifier, ResourceError:
:cancelledError(m_url)); |
223 frame->console().didFailLoading(m_identifier, ResourceError::cancelledError(
m_url)); | 223 frame->console().didFailLoading(m_identifier, ResourceError::cancelledError(
m_url)); |
224 } | 224 } |
225 | 225 |
226 DEFINE_TRACE(PingLoader) | 226 DEFINE_TRACE(PingLoader) |
227 { | 227 { |
228 LocalFrameLifecycleObserver::trace(visitor); | 228 LocalFrameLifecycleObserver::trace(visitor); |
229 } | 229 } |
230 | 230 |
231 } // namespace blink | 231 } // namespace blink |
OLD | NEW |