Chromium Code Reviews| Index: third_party/WebKit/Source/core/page/Page.cpp |
| diff --git a/third_party/WebKit/Source/core/page/Page.cpp b/third_party/WebKit/Source/core/page/Page.cpp |
| index 4e2a89a2e20ff22690e5f00de814170cd6d4b0ce..6b4cdb884e8b106fa1e259e6469c66fa9c4f5619 100644 |
| --- a/third_party/WebKit/Source/core/page/Page.cpp |
| +++ b/third_party/WebKit/Source/core/page/Page.cpp |
| @@ -54,6 +54,7 @@ |
| #include "platform/plugins/PluginData.h" |
| #include "platform/text/CompressibleString.h" |
| #include "public/platform/Platform.h" |
| +#include "public/platform/WebSecurityOrigin.h" |
| namespace blink { |
| @@ -243,10 +244,17 @@ void Page::refreshPlugins() |
| } |
| } |
| -PluginData* Page::pluginData() const |
| +PluginData* Page::pluginData() |
| { |
| - if (!m_pluginData) |
| - m_pluginData = PluginData::create(this); |
| + SecurityContext* context = mainFrame()->securityContext(); |
| + // Frame::securityContext() may return null in tests. For that reason, |
| + // whenever it's null, an unique SecurityOrigin is created instead. |
|
dcheng
2016/08/03 14:34:58
Which tests? Can we fix the tests? Putting test-on
trizzofo
2016/08/03 19:11:18
There are quite a few of them. You can see it in P
tommycli
2016/08/03 20:53:39
I agree it would be ideal to fix the tests. dcheng
alexmos
2016/08/04 05:32:03
LocalFrame::securityContext() just returns the Loc
trizzofo
2016/08/05 02:04:26
Yes, you're right. I took a better look at DOMImpl
|
| + RefPtr<SecurityOrigin> mainFrameOrigin = context ? context->getSecurityOrigin() : SecurityOrigin::createUnique().get(); |
| + WebSecurityOrigin webOrigin(mainFrameOrigin.get()); |
| + |
| + if (!m_pluginData || !mainFrameOrigin->isSameSchemeHostPort(m_mainFrameOrigin.get())) |
| + m_pluginData = PluginData::create(webOrigin); |
| + m_mainFrameOrigin = mainFrameOrigin; |
| return m_pluginData.get(); |
| } |