OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
5 * 2000 Simon Hausmann <hausmann@kde.org> | 5 * 2000 Simon Hausmann <hausmann@kde.org> |
6 * 2000 Stefan Schimanski <1Stein@gmx.de> | 6 * 2000 Stefan Schimanski <1Stein@gmx.de> |
7 * 2001 George Staikos <staikos@kde.org> | 7 * 2001 George Staikos <staikos@kde.org> |
8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All | 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All |
9 * rights reserved. | 9 * rights reserved. |
10 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> | 10 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
117 | 117 |
118 return tree().parent()->isRemoteFrame(); | 118 return tree().parent()->isRemoteFrame(); |
119 } | 119 } |
120 | 120 |
121 HTMLFrameOwnerElement* Frame::deprecatedLocalOwner() const { | 121 HTMLFrameOwnerElement* Frame::deprecatedLocalOwner() const { |
122 return m_owner && m_owner->isLocal() ? toHTMLFrameOwnerElement(m_owner) | 122 return m_owner && m_owner->isLocal() ? toHTMLFrameOwnerElement(m_owner) |
123 : nullptr; | 123 : nullptr; |
124 } | 124 } |
125 | 125 |
126 static ChromeClient& emptyChromeClient() { | 126 static ChromeClient& emptyChromeClient() { |
127 DEFINE_STATIC_LOCAL(EmptyChromeClient, client, (EmptyChromeClient::create())); | 127 // |ChromeClient| contains a weak reference to a |Node| (which derives |
128 // from |ScriptWrappable|). That reference is only used for unit testing | |
129 // purposes and will not accidentally leak between contexts. Consequently, | |
haraken
2017/02/11 10:25:20
Nit: I don't think "leak between contexts" can hap
sof
2017/02/11 12:09:11
Hmm, doesn't the test from https://codereview.chro
dcheng
2017/02/12 09:33:45
The cross-context leak happens if:
- we have a sta
sof
2017/02/12 21:52:28
Yes, it could be made to work for the unit tests t
haraken
2017/02/12 23:56:47
I think the problem here is *just* (=not security
| |
130 // disable the singleton verification check. | |
131 DEFINE_STATIC_LOCAL(EmptyChromeClient, client, (EmptyChromeClient::create()), | |
132 CheckScriptWrappable::No); | |
128 return client; | 133 return client; |
129 } | 134 } |
130 | 135 |
131 ChromeClient& Frame::chromeClient() const { | 136 ChromeClient& Frame::chromeClient() const { |
132 if (Page* page = this->page()) | 137 if (Page* page = this->page()) |
133 return page->chromeClient(); | 138 return page->chromeClient(); |
134 return emptyChromeClient(); | 139 return emptyChromeClient(); |
135 } | 140 } |
136 | 141 |
137 Frame* Frame::findFrameForNavigation(const AtomicString& name, | 142 Frame* Frame::findFrameForNavigation(const AtomicString& name, |
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
415 | 420 |
416 ASSERT(page()); | 421 ASSERT(page()); |
417 | 422 |
418 if (m_owner) | 423 if (m_owner) |
419 m_owner->setContentFrame(*this); | 424 m_owner->setContentFrame(*this); |
420 else | 425 else |
421 page()->setMainFrame(this); | 426 page()->setMainFrame(this); |
422 } | 427 } |
423 | 428 |
424 } // namespace blink | 429 } // namespace blink |
OLD | NEW |