Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2000 Simon Hausmann <hausmann@kde.org> | 4 * (C) 2000 Simon Hausmann <hausmann@kde.org> |
| 5 * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. | 5 * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. |
| 6 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 6 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 419 ResourceRequest request(completedURL); | 419 ResourceRequest request(completedURL); |
| 420 request.setUIStartTime(event->platformTimeStamp()); | 420 request.setUIStartTime(event->platformTimeStamp()); |
| 421 request.setInputPerfMetricReportPolicy(InputToLoadPerfMetricReportPolicy::Re portLink); | 421 request.setInputPerfMetricReportPolicy(InputToLoadPerfMetricReportPolicy::Re portLink); |
| 422 | 422 |
| 423 ReferrerPolicy policy; | 423 ReferrerPolicy policy; |
| 424 if (hasAttribute(referrerpolicyAttr) && SecurityPolicy::referrerPolicyFromSt ringWithLegacyKeywords(fastGetAttribute(referrerpolicyAttr), &policy) && !hasRel (RelationNoReferrer)) { | 424 if (hasAttribute(referrerpolicyAttr) && SecurityPolicy::referrerPolicyFromSt ringWithLegacyKeywords(fastGetAttribute(referrerpolicyAttr), &policy) && !hasRel (RelationNoReferrer)) { |
| 425 request.setHTTPReferrer(SecurityPolicy::generateReferrer(policy, complet edURL, document().outgoingReferrer())); | 425 request.setHTTPReferrer(SecurityPolicy::generateReferrer(policy, complet edURL, document().outgoingReferrer())); |
| 426 } | 426 } |
| 427 | 427 |
| 428 if (hasAttribute(downloadAttr)) { | 428 if (hasAttribute(downloadAttr)) { |
| 429 request.setRequestContext(WebURLRequest::RequestContextDownload); | 429 if (event->isTrusted()) { |
| 430 bool isSameOrigin = completedURL.protocolIsData() || document().getSecur ityOrigin()->canRequest(completedURL); | 430 request.setRequestContext(WebURLRequest::RequestContextDownload); |
| 431 const AtomicString& suggestedName = (isSameOrigin ? fastGetAttribute(dow nloadAttr) : nullAtom); | 431 bool isSameOrigin = completedURL.protocolIsData() || document().getS ecurityOrigin()->canRequest(completedURL); |
| 432 const AtomicString& suggestedName = (isSameOrigin ? fastGetAttribute (downloadAttr) : nullAtom); | |
| 432 | 433 |
| 433 frame->loader().client()->loadURLExternally(request, NavigationPolicyDow nload, suggestedName, false); | 434 frame->loader().client()->loadURLExternally(request, NavigationPolic yDownload, suggestedName, false); |
| 435 } else { | |
| 436 // TODO: Throw an "InvalidAccessError" DOMException. | |
|
Rick Byers
2016/09/28 22:31:56
I'm OK leaving this as follow-up work (it's probab
| |
| 437 } | |
| 434 } else { | 438 } else { |
| 435 request.setRequestContext(WebURLRequest::RequestContextHyperlink); | 439 request.setRequestContext(WebURLRequest::RequestContextHyperlink); |
| 436 FrameLoadRequest frameRequest(&document(), request, getAttribute(targetA ttr)); | 440 FrameLoadRequest frameRequest(&document(), request, getAttribute(targetA ttr)); |
| 437 frameRequest.setTriggeringEvent(event); | 441 frameRequest.setTriggeringEvent(event); |
| 438 if (hasRel(RelationNoReferrer)) { | 442 if (hasRel(RelationNoReferrer)) { |
| 439 frameRequest.setShouldSendReferrer(NeverSendReferrer); | 443 frameRequest.setShouldSendReferrer(NeverSendReferrer); |
| 440 frameRequest.setShouldSetOpener(NeverSetOpener); | 444 frameRequest.setShouldSetOpener(NeverSetOpener); |
| 441 } | 445 } |
| 442 if (hasRel(RelationNoOpener)) | 446 if (hasRel(RelationNoOpener)) |
| 443 frameRequest.setShouldSetOpener(NeverSetOpener); | 447 frameRequest.setShouldSetOpener(NeverSetOpener); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 476 } | 480 } |
| 477 | 481 |
| 478 HTMLAnchorElement::NavigationHintSender* HTMLAnchorElement::ensureNavigationHint Sender() | 482 HTMLAnchorElement::NavigationHintSender* HTMLAnchorElement::ensureNavigationHint Sender() |
| 479 { | 483 { |
| 480 if (!m_navigationHintSender) | 484 if (!m_navigationHintSender) |
| 481 m_navigationHintSender = NavigationHintSender::create(this); | 485 m_navigationHintSender = NavigationHintSender::create(this); |
| 482 return m_navigationHintSender; | 486 return m_navigationHintSender; |
| 483 } | 487 } |
| 484 | 488 |
| 485 } // namespace blink | 489 } // namespace blink |
| OLD | NEW |