| Index: chrome/renderer/render_view.cc
|
| diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
|
| index 0c2eb5a73dfd7289b84bf4a361753179386b4972..30281bd6d2871d330ca69f03ecd45b17007e6d82 100644
|
| --- a/chrome/renderer/render_view.cc
|
| +++ b/chrome/renderer/render_view.cc
|
| @@ -50,6 +50,7 @@
|
| #include "chrome/renderer/devtools_agent.h"
|
| #include "chrome/renderer/devtools_client.h"
|
| #include "chrome/renderer/extension_groups.h"
|
| +#include "chrome/renderer/extensions/bindings_utils.h"
|
| #include "chrome/renderer/extensions/extension_renderer_info.h"
|
| #include "chrome/renderer/extensions/event_bindings.h"
|
| #include "chrome/renderer/extensions/extension_process_bindings.h"
|
| @@ -2280,6 +2281,13 @@ void RenderView::show(WebNavigationPolicy policy) {
|
| return;
|
| did_show_ = true;
|
|
|
| + // Extensions and apps always allowed to create unrequested popups. The second
|
| + // check is necessary to include content scripts.
|
| + if (ExtensionRendererInfo::GetByURL(creator_url_) ||
|
| + bindings_utils::GetInfoForCurrentContext()) {
|
| + opened_by_user_gesture_ = true;
|
| + }
|
| +
|
| // Force new windows to a popup if they were not opened with a user gesture.
|
| if (!opened_by_user_gesture_) {
|
| // We exempt background tabs for compat with older versions of Chrome.
|
|
|