| 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 6dc4b2180bc29db3eaaf4c604531a8cad016befb..f4992eac2723f8a0a80d53b6961334b7729972a4 100644
|
| --- a/third_party/WebKit/Source/core/page/Page.cpp
|
| +++ b/third_party/WebKit/Source/core/page/Page.cpp
|
| @@ -116,6 +116,7 @@ Page::Page(PageClients& page_clients)
|
| overscroll_controller_(
|
| OverscrollController::Create(GetVisualViewport(), GetChromeClient())),
|
| main_frame_(nullptr),
|
| + plugin_data_(nullptr),
|
| editor_client_(page_clients.editor_client),
|
| spell_checker_client_(page_clients.spell_checker_client),
|
| use_counter_(page_clients.chrome_client &&
|
| @@ -290,14 +291,18 @@ void Page::RefreshPlugins() {
|
| for (const Page* page : AllPages()) {
|
| // Clear out the page's plugin data.
|
| if (page->plugin_data_)
|
| - page->plugin_data_ = nullptr;
|
| + page->plugin_data_->ResetPluginData();
|
| }
|
| }
|
|
|
| -PluginData* Page::GetPluginData(SecurityOrigin* main_frame_origin) const {
|
| - if (!plugin_data_ ||
|
| +PluginData* Page::GetPluginData(SecurityOrigin* main_frame_origin) {
|
| + if (!plugin_data_)
|
| + plugin_data_ = PluginData::Create();
|
| +
|
| + if (!plugin_data_->Origin() ||
|
| !main_frame_origin->IsSameSchemeHostPort(plugin_data_->Origin()))
|
| - plugin_data_ = PluginData::Create(main_frame_origin);
|
| + plugin_data_->UpdatePluginList(main_frame_origin);
|
| +
|
| return plugin_data_.Get();
|
| }
|
|
|
| @@ -628,6 +633,7 @@ DEFINE_TRACE(Page) {
|
| visitor->Trace(visual_viewport_);
|
| visitor->Trace(overscroll_controller_);
|
| visitor->Trace(main_frame_);
|
| + visitor->Trace(plugin_data_);
|
| visitor->Trace(validation_message_client_);
|
| visitor->Trace(use_counter_);
|
| Supplementable<Page>::Trace(visitor);
|
|
|