OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003, 2006 Apple Computer, Inc. All rights reserved. | 2 * Copyright (C) 2003, 2006 Apple Computer, Inc. All rights reserved. |
3 * Copyright (C) 2009, 2012 Google Inc. All rights reserved. | 3 * Copyright (C) 2009, 2012 Google Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 m_didSetHTTPReferrer = true; | 246 m_didSetHTTPReferrer = true; |
247 } | 247 } |
248 | 248 |
249 void ResourceRequest::clearHTTPReferrer() | 249 void ResourceRequest::clearHTTPReferrer() |
250 { | 250 { |
251 m_httpHeaderFields.remove(HTTPNames::Referer); | 251 m_httpHeaderFields.remove(HTTPNames::Referer); |
252 m_referrerPolicy = ReferrerPolicyDefault; | 252 m_referrerPolicy = ReferrerPolicyDefault; |
253 m_didSetHTTPReferrer = false; | 253 m_didSetHTTPReferrer = false; |
254 } | 254 } |
255 | 255 |
256 void ResourceRequest::setHTTPOrigin(PassRefPtr<SecurityOrigin> origin) | 256 void ResourceRequest::setHTTPOrigin(const SecurityOrigin* origin) |
257 { | 257 { |
258 setHTTPHeaderField(HTTPNames::Origin, origin->toAtomicString()); | 258 setHTTPHeaderField(HTTPNames::Origin, origin->toAtomicString()); |
259 if (origin->hasSuborigin()) | 259 if (origin->hasSuborigin()) |
260 setHTTPHeaderField(HTTPNames::Suborigin, AtomicString(origin->suborigin(
)->name())); | 260 setHTTPHeaderField(HTTPNames::Suborigin, AtomicString(origin->suborigin(
)->name())); |
261 } | 261 } |
262 | 262 |
263 void ResourceRequest::clearHTTPOrigin() | 263 void ResourceRequest::clearHTTPOrigin() |
264 { | 264 { |
265 m_httpHeaderFields.remove(HTTPNames::Origin); | 265 m_httpHeaderFields.remove(HTTPNames::Origin); |
266 m_httpHeaderFields.remove(HTTPNames::Suborigin); | 266 m_httpHeaderFields.remove(HTTPNames::Suborigin); |
267 } | 267 } |
268 | 268 |
269 void ResourceRequest::addHTTPOriginIfNeeded(PassRefPtr<SecurityOrigin> origin) | 269 void ResourceRequest::addHTTPOriginIfNeeded(const SecurityOrigin* origin) |
270 { | 270 { |
271 if (!httpOrigin().isEmpty()) | 271 if (!httpOrigin().isEmpty()) |
272 return; // Request already has an Origin header. | 272 return; // Request already has an Origin header. |
273 | 273 |
274 // Don't send an Origin header for GET or HEAD to avoid privacy issues. | 274 // Don't send an Origin header for GET or HEAD to avoid privacy issues. |
275 // For example, if an intranet page has a hyperlink to an external web | 275 // For example, if an intranet page has a hyperlink to an external web |
276 // site, we don't want to include the Origin of the request because it | 276 // site, we don't want to include the Origin of the request because it |
277 // will leak the internal host name. Similar privacy concerns have lead | 277 // will leak the internal host name. Similar privacy concerns have lead |
278 // to the widespread suppression of the Referer header at the network | 278 // to the widespread suppression of the Referer header at the network |
279 // layer. | 279 // layer. |
280 if (httpMethod() == HTTPNames::GET || httpMethod() == HTTPNames::HEAD) | 280 if (httpMethod() == HTTPNames::GET || httpMethod() == HTTPNames::HEAD) |
281 return; | 281 return; |
282 | 282 |
283 // For non-GET and non-HEAD methods, always send an Origin header so the | 283 // For non-GET and non-HEAD methods, always send an Origin header so the |
284 // server knows we support this feature. | 284 // server knows we support this feature. |
285 | 285 |
286 AtomicString originString = origin->toAtomicString(); | 286 AtomicString originString = origin->toAtomicString(); |
287 if (originString.isEmpty()) { | 287 if (originString.isEmpty()) { |
288 // If we don't know what origin header to attach, we attach the value | 288 // If we don't know what origin header to attach, we attach the value |
289 // for an empty origin. | 289 // for an empty origin. |
290 setHTTPOrigin(SecurityOrigin::createUnique()); | 290 setHTTPOrigin(SecurityOrigin::createUnique().get()); |
291 return; | 291 return; |
292 } | 292 } |
293 setHTTPOrigin(origin); | 293 setHTTPOrigin(origin); |
294 } | 294 } |
295 | 295 |
296 void ResourceRequest::clearHTTPUserAgent() | 296 void ResourceRequest::clearHTTPUserAgent() |
297 { | 297 { |
298 m_httpHeaderFields.remove(HTTPNames::User_Agent); | 298 m_httpHeaderFields.remove(HTTPNames::User_Agent); |
299 } | 299 } |
300 | 300 |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 m_didSetHTTPReferrer = false; | 445 m_didSetHTTPReferrer = false; |
446 m_checkForBrowserSideNavigation = true; | 446 m_checkForBrowserSideNavigation = true; |
447 m_uiStartTime = 0; | 447 m_uiStartTime = 0; |
448 m_isExternalRequest = false; | 448 m_isExternalRequest = false; |
449 m_inputPerfMetricReportPolicy = InputToLoadPerfMetricReportPolicy::NoReport; | 449 m_inputPerfMetricReportPolicy = InputToLoadPerfMetricReportPolicy::NoReport; |
450 m_redirectStatus = RedirectStatus::NoRedirect; | 450 m_redirectStatus = RedirectStatus::NoRedirect; |
451 m_requestorOrigin = SecurityOrigin::createUnique(); | 451 m_requestorOrigin = SecurityOrigin::createUnique(); |
452 } | 452 } |
453 | 453 |
454 } // namespace blink | 454 } // namespace blink |
OLD | NEW |