Commit 421b9d3c authored by Lucas Furukawa Gadani's avatar Lucas Furukawa Gadani Committed by Commit Bot

Add temporary check to debug issue 731239.

This check asserts that the main frame's SecurityOrigin hasn't changed
between updating the plugin list and accessing the DOMPluginArray.

Bug: 731239
Change-Id: Ifa247045f1415d6b593fd18f626b1ddc37222aec
Reviewed-on: https://chromium-review.googlesource.com/531994Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Commit-Queue: Lucas Furukawa Gadani <lfg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478830}
parent a7f5acc2
...@@ -47,6 +47,9 @@ unsigned DOMPluginArray::length() const { ...@@ -47,6 +47,9 @@ unsigned DOMPluginArray::length() const {
} }
DOMPlugin* DOMPluginArray::item(unsigned index) { DOMPlugin* DOMPluginArray::item(unsigned index) {
// TODO(lfg): Temporary to track down https://crbug.com/731239.
CHECK(main_frame_origin_->IsSameSchemeHostPort(GetPluginData()->Origin()));
if (index >= dom_plugins_.size()) if (index >= dom_plugins_.size())
return nullptr; return nullptr;
if (!dom_plugins_[index]) { if (!dom_plugins_[index]) {
...@@ -107,6 +110,8 @@ void DOMPluginArray::UpdatePluginData() { ...@@ -107,6 +110,8 @@ void DOMPluginArray::UpdatePluginData() {
return; return;
} }
main_frame_origin_ = data->Origin();
HeapVector<Member<DOMPlugin>> old_dom_plugins(std::move(dom_plugins_)); HeapVector<Member<DOMPlugin>> old_dom_plugins(std::move(dom_plugins_));
dom_plugins_.clear(); dom_plugins_.clear();
dom_plugins_.resize(data->Plugins().size()); dom_plugins_.resize(data->Plugins().size());
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "modules/plugins/DOMPlugin.h" #include "modules/plugins/DOMPlugin.h"
#include "platform/bindings/ScriptWrappable.h" #include "platform/bindings/ScriptWrappable.h"
#include "platform/heap/Handle.h" #include "platform/heap/Handle.h"
#include "platform/weborigin/SecurityOrigin.h"
#include "platform/wtf/Forward.h" #include "platform/wtf/Forward.h"
namespace blink { namespace blink {
...@@ -32,7 +33,7 @@ namespace blink { ...@@ -32,7 +33,7 @@ namespace blink {
class LocalFrame; class LocalFrame;
class PluginData; class PluginData;
class DOMPluginArray final : public GarbageCollected<DOMPluginArray>, class DOMPluginArray final : public GarbageCollectedFinalized<DOMPluginArray>,
public ScriptWrappable, public ScriptWrappable,
public ContextClient { public ContextClient {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
...@@ -57,6 +58,9 @@ class DOMPluginArray final : public GarbageCollected<DOMPluginArray>, ...@@ -57,6 +58,9 @@ class DOMPluginArray final : public GarbageCollected<DOMPluginArray>,
PluginData* GetPluginData() const; PluginData* GetPluginData() const;
HeapVector<Member<DOMPlugin>> dom_plugins_; HeapVector<Member<DOMPlugin>> dom_plugins_;
// TODO(lfg): Temporary to track down https://crbug.com/731239.
RefPtr<const SecurityOrigin> main_frame_origin_;
}; };
} // namespace blink } // namespace blink
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment