Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: third_party/WebKit/Source/core/html/HTMLIFrameElement.cpp

Issue 2394473002: iframes with allowpaymentrequest attribute are allowed to make payment requests. (Closed)
Patch Set: Rebase issues fixed Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 * (C) 2001 Dirk Mueller (mueller@kde.org) 5 * (C) 2001 Dirk Mueller (mueller@kde.org)
6 * Copyright (C) 2004, 2006, 2008, 2009 Apple Inc. All rights reserved. 6 * Copyright (C) 2004, 2006, 2008, 2009 Apple Inc. All rights reserved.
7 * Copyright (C) 2009 Ericsson AB. All rights reserved. 7 * Copyright (C) 2009 Ericsson AB. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 30 matching lines...) Expand all
41 m_didLoadNonEmptyDocument(false), 41 m_didLoadNonEmptyDocument(false),
42 m_sandbox(HTMLIFrameElementSandbox::create(this)), 42 m_sandbox(HTMLIFrameElementSandbox::create(this)),
43 m_referrerPolicy(ReferrerPolicyDefault) {} 43 m_referrerPolicy(ReferrerPolicyDefault) {}
44 44
45 DEFINE_NODE_FACTORY(HTMLIFrameElement) 45 DEFINE_NODE_FACTORY(HTMLIFrameElement)
46 46
47 DEFINE_TRACE(HTMLIFrameElement) { 47 DEFINE_TRACE(HTMLIFrameElement) {
48 visitor->trace(m_sandbox); 48 visitor->trace(m_sandbox);
49 visitor->trace(m_permissions); 49 visitor->trace(m_permissions);
50 HTMLFrameElementBase::trace(visitor); 50 HTMLFrameElementBase::trace(visitor);
51 Supplementable<HTMLIFrameElement>::trace(visitor);
51 } 52 }
52 53
53 HTMLIFrameElement::~HTMLIFrameElement() {} 54 HTMLIFrameElement::~HTMLIFrameElement() {}
54 55
55 DOMTokenList* HTMLIFrameElement::sandbox() const { 56 DOMTokenList* HTMLIFrameElement::sandbox() const {
56 return m_sandbox.get(); 57 return m_sandbox.get();
57 } 58 }
58 59
59 DOMTokenList* HTMLIFrameElement::permissions() const { 60 DOMTokenList* HTMLIFrameElement::permissions() const {
60 if (!const_cast<HTMLIFrameElement*>(this)->initializePermissionsAttribute()) 61 if (!const_cast<HTMLIFrameElement*>(this)->initializePermissionsAttribute())
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 } else if (name == referrerpolicyAttr) { 113 } else if (name == referrerpolicyAttr) {
113 m_referrerPolicy = ReferrerPolicyDefault; 114 m_referrerPolicy = ReferrerPolicyDefault;
114 if (!value.isNull()) 115 if (!value.isNull())
115 SecurityPolicy::referrerPolicyFromStringWithLegacyKeywords( 116 SecurityPolicy::referrerPolicyFromStringWithLegacyKeywords(
116 value, &m_referrerPolicy); 117 value, &m_referrerPolicy);
117 } else if (name == allowfullscreenAttr) { 118 } else if (name == allowfullscreenAttr) {
118 bool oldAllowFullscreen = m_allowFullscreen; 119 bool oldAllowFullscreen = m_allowFullscreen;
119 m_allowFullscreen = !value.isNull(); 120 m_allowFullscreen = !value.isNull();
120 if (m_allowFullscreen != oldAllowFullscreen) 121 if (m_allowFullscreen != oldAllowFullscreen)
121 frameOwnerPropertiesChanged(); 122 frameOwnerPropertiesChanged();
123 } else if (name == allowpaymentrequestAttr) {
124 bool oldAllowPaymentRequest = m_allowPaymentRequest;
125 m_allowPaymentRequest = !value.isNull();
126 if (m_allowPaymentRequest != oldAllowPaymentRequest)
127 frameOwnerPropertiesChanged();
122 } else if (name == permissionsAttr) { 128 } else if (name == permissionsAttr) {
123 if (initializePermissionsAttribute()) 129 if (initializePermissionsAttribute())
124 m_permissions->setValue(value); 130 m_permissions->setValue(value);
125 } else if (RuntimeEnabledFeatures::embedderCSPEnforcementEnabled() && 131 } else if (RuntimeEnabledFeatures::embedderCSPEnforcementEnabled() &&
126 name == cspAttr) { 132 name == cspAttr) {
127 // TODO(amalika): add more robust validation of the value 133 // TODO(amalika): add more robust validation of the value
128 if (!value.getString().containsOnlyASCII()) { 134 if (!value.getString().containsOnlyASCII()) {
129 m_csp = nullAtom; 135 m_csp = nullAtom;
130 document().addConsoleMessage(ConsoleMessage::create( 136 document().addConsoleMessage(ConsoleMessage::create(
131 OtherMessageSource, ErrorMessageLevel, 137 OtherMessageSource, ErrorMessageLevel,
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 bool HTMLIFrameElement::initializePermissionsAttribute() { 212 bool HTMLIFrameElement::initializePermissionsAttribute() {
207 if (!RuntimeEnabledFeatures::permissionDelegationEnabled()) 213 if (!RuntimeEnabledFeatures::permissionDelegationEnabled())
208 return false; 214 return false;
209 215
210 if (!m_permissions) 216 if (!m_permissions)
211 m_permissions = HTMLIFrameElementPermissions::create(this); 217 m_permissions = HTMLIFrameElementPermissions::create(this);
212 return true; 218 return true;
213 } 219 }
214 220
215 } // namespace blink 221 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698