Commit c306d4da authored by pkasting@chromium.org's avatar pkasting@chromium.org

Instead of passing down a switch to the renderer, storing a member, etc., just...

Instead of passing down a switch to the renderer, storing a member, etc., just implement --disable-popup-blocking in the browser at the point where we make the final policy decision.
Review URL: http://codereview.chromium.org/100132

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14851 0039d316-1c4b-4281-b951-d872f2087c98
parent 66de39d1
...@@ -265,7 +265,6 @@ bool BrowserRenderProcessHost::Init() { ...@@ -265,7 +265,6 @@ bool BrowserRenderProcessHost::Init() {
switches::kMessageLoopHistogrammer, switches::kMessageLoopHistogrammer,
switches::kEnableDCHECK, switches::kEnableDCHECK,
switches::kSilentDumpOnDCHECK, switches::kSilentDumpOnDCHECK,
switches::kDisablePopupBlocking,
switches::kUseLowFragHeapCrt, switches::kUseLowFragHeapCrt,
switches::kEnableWebWorkers, switches::kEnableWebWorkers,
switches::kEnableStatsTable, switches::kEnableStatsTable,
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include "chrome/browser/tab_contents/web_contents.h" #include "chrome/browser/tab_contents/web_contents.h"
#include "chrome/browser/search_engines/template_url_fetcher.h" #include "chrome/browser/search_engines/template_url_fetcher.h"
#include "chrome/browser/search_engines/template_url_model.h" #include "chrome/browser/search_engines/template_url_model.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/l10n_util.h" #include "chrome/common/l10n_util.h"
#include "chrome/common/notification_service.h" #include "chrome/common/notification_service.h"
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
...@@ -786,7 +787,9 @@ void TabContents::AddNewContents(TabContents* new_contents, ...@@ -786,7 +787,9 @@ void TabContents::AddNewContents(TabContents* new_contents,
return; return;
#if defined(OS_WIN) #if defined(OS_WIN)
if ((disposition == NEW_POPUP) && !user_gesture) { if ((disposition == NEW_POPUP) && !user_gesture &&
!CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDisablePopupBlocking)) {
// Unrequested popups from normal pages are constrained. // Unrequested popups from normal pages are constrained.
TabContents* popup_owner = this; TabContents* popup_owner = this;
TabContents* our_owner = delegate_->GetConstrainingContents(this); TabContents* our_owner = delegate_->GetConstrainingContents(this);
......
...@@ -196,7 +196,6 @@ RenderView::RenderView(RenderThreadBase* render_thread) ...@@ -196,7 +196,6 @@ RenderView::RenderView(RenderThreadBase* render_thread)
devtools_client_(NULL), devtools_client_(NULL),
history_back_list_count_(0), history_back_list_count_(0),
history_forward_list_count_(0), history_forward_list_count_(0),
disable_popup_blocking_(false),
has_unload_listener_(false), has_unload_listener_(false),
decrement_shared_popup_at_destruction_(false), decrement_shared_popup_at_destruction_(false),
form_field_autofill_request_id_(0), form_field_autofill_request_id_(0),
...@@ -328,8 +327,6 @@ void RenderView::Init(gfx::NativeViewId parent_hwnd, ...@@ -328,8 +327,6 @@ void RenderView::Init(gfx::NativeViewId parent_hwnd,
if (command_line.HasSwitch(switches::kDomAutomationController)) if (command_line.HasSwitch(switches::kDomAutomationController))
enabled_bindings_ |= BindingsPolicy::DOM_AUTOMATION; enabled_bindings_ |= BindingsPolicy::DOM_AUTOMATION;
disable_popup_blocking_ =
command_line.HasSwitch(switches::kDisablePopupBlocking);
debug_message_handler_ = new DebugMessageHandler(this); debug_message_handler_ = new DebugMessageHandler(this);
render_thread_->AddFilter(debug_message_handler_); render_thread_->AddFilter(debug_message_handler_);
...@@ -1960,9 +1957,8 @@ void RenderView::Show(WebWidget* webwidget, WindowOpenDisposition disposition) { ...@@ -1960,9 +1957,8 @@ void RenderView::Show(WebWidget* webwidget, WindowOpenDisposition disposition) {
// NOTE: initial_pos_ may still have its default values at this point, but // NOTE: initial_pos_ may still have its default values at this point, but
// that's okay. It'll be ignored if disposition is not NEW_POPUP, or the // that's okay. It'll be ignored if disposition is not NEW_POPUP, or the
// browser process will impose a default position otherwise. // browser process will impose a default position otherwise.
Send(new ViewHostMsg_ShowView( Send(new ViewHostMsg_ShowView(opener_id_, routing_id_, disposition,
opener_id_, routing_id_, disposition, initial_pos_, initial_pos_, WasOpenedByUserGesture(NULL)));
WasOpenedByUserGestureHelper()));
} }
void RenderView::CloseWidgetSoon(WebWidget* webwidget) { void RenderView::CloseWidgetSoon(WebWidget* webwidget) {
...@@ -2293,17 +2289,6 @@ void RenderView::ReportFindInPageSelection(int request_id, ...@@ -2293,17 +2289,6 @@ void RenderView::ReportFindInPageSelection(int request_id,
} }
bool RenderView::WasOpenedByUserGesture(WebView* webview) const { bool RenderView::WasOpenedByUserGesture(WebView* webview) const {
return WasOpenedByUserGestureHelper();
}
bool RenderView::WasOpenedByUserGestureHelper() const {
// If pop-up blocking has been disabled, then treat all new windows as if
// they were opened by a user gesture. This will prevent them from being
// blocked. This is a bit of a hack, there should be a more straightforward
// way to disable pop-up blocking.
if (disable_popup_blocking_)
return true;
return opened_by_user_gesture_; return opened_by_user_gesture_;
} }
......
...@@ -619,9 +619,6 @@ class RenderView : public RenderWidget, ...@@ -619,9 +619,6 @@ class RenderView : public RenderWidget,
// Decodes a data: URL image or returns an empty image in case of failure. // Decodes a data: URL image or returns an empty image in case of failure.
SkBitmap ImageFromDataUrl(const GURL&) const; SkBitmap ImageFromDataUrl(const GURL&) const;
// A helper method used by WasOpenedByUserGesture.
bool WasOpenedByUserGestureHelper() const;
void DumpLoadHistograms() const; void DumpLoadHistograms() const;
// Bitwise-ORed set of extra bindings that have been enabled. See // Bitwise-ORed set of extra bindings that have been enabled. See
...@@ -741,9 +738,6 @@ class RenderView : public RenderWidget, ...@@ -741,9 +738,6 @@ class RenderView : public RenderWidget,
int history_back_list_count_; int history_back_list_count_;
int history_forward_list_count_; int history_forward_list_count_;
// True if pop-up blocking is disabled. False by default.
bool disable_popup_blocking_;
// True if the page has any frame-level unload or beforeunload listeners. // True if the page has any frame-level unload or beforeunload listeners.
bool has_unload_listener_; bool has_unload_listener_;
......
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