Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1231)

Side by Side Diff: chrome/renderer/render_view.cc

Issue 99203: Second attempt at cleaning up handling of --disable-popup-blocking. I didn't... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/renderer/render_view.h ('k') | chrome/test/automation/automation_proxy_uitest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/render_view.h" 5 #include "chrome/renderer/render_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 page_id_(-1), 189 page_id_(-1),
190 last_page_id_sent_to_browser_(-1), 190 last_page_id_sent_to_browser_(-1),
191 last_indexed_page_id_(-1), 191 last_indexed_page_id_(-1),
192 opened_by_user_gesture_(true), 192 opened_by_user_gesture_(true),
193 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)), 193 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)),
194 first_default_plugin_(NULL), 194 first_default_plugin_(NULL),
195 devtools_agent_(NULL), 195 devtools_agent_(NULL),
196 devtools_client_(NULL), 196 devtools_client_(NULL),
197 history_back_list_count_(0), 197 history_back_list_count_(0),
198 history_forward_list_count_(0), 198 history_forward_list_count_(0),
199 disable_popup_blocking_(false),
200 has_unload_listener_(false), 199 has_unload_listener_(false),
201 decrement_shared_popup_at_destruction_(false), 200 decrement_shared_popup_at_destruction_(false),
202 form_field_autofill_request_id_(0), 201 form_field_autofill_request_id_(0),
203 popup_notification_visible_(false), 202 popup_notification_visible_(false),
204 delay_seconds_for_form_state_sync_(kDefaultDelaySecondsForFormStateSync) { 203 delay_seconds_for_form_state_sync_(kDefaultDelaySecondsForFormStateSync) {
205 } 204 }
206 205
207 RenderView::~RenderView() { 206 RenderView::~RenderView() {
208 if (decrement_shared_popup_at_destruction_) 207 if (decrement_shared_popup_at_destruction_)
209 shared_popup_counter_->data--; 208 shared_popup_counter_->data--;
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 if (opener_id == MSG_ROUTING_NONE) { 320 if (opener_id == MSG_ROUTING_NONE) {
322 did_show_ = true; 321 did_show_ = true;
323 CompleteInit(parent_hwnd); 322 CompleteInit(parent_hwnd);
324 } 323 }
325 324
326 host_window_ = parent_hwnd; 325 host_window_ = parent_hwnd;
327 modal_dialog_event_.reset(modal_dialog_event); 326 modal_dialog_event_.reset(modal_dialog_event);
328 327
329 if (command_line.HasSwitch(switches::kDomAutomationController)) 328 if (command_line.HasSwitch(switches::kDomAutomationController))
330 enabled_bindings_ |= BindingsPolicy::DOM_AUTOMATION; 329 enabled_bindings_ |= BindingsPolicy::DOM_AUTOMATION;
331 disable_popup_blocking_ =
332 command_line.HasSwitch(switches::kDisablePopupBlocking);
333 330
334 debug_message_handler_ = new DebugMessageHandler(this); 331 debug_message_handler_ = new DebugMessageHandler(this);
335 render_thread_->AddFilter(debug_message_handler_); 332 render_thread_->AddFilter(debug_message_handler_);
336 333
337 audio_message_filter_ = new AudioMessageFilter(routing_id_); 334 audio_message_filter_ = new AudioMessageFilter(routing_id_);
338 render_thread_->AddFilter(audio_message_filter_); 335 render_thread_->AddFilter(audio_message_filter_);
339 } 336 }
340 337
341 void RenderView::OnMessageReceived(const IPC::Message& message) { 338 void RenderView::OnMessageReceived(const IPC::Message& message) {
342 WebFrame* main_frame = webview() ? webview()->GetMainFrame() : NULL; 339 WebFrame* main_frame = webview() ? webview()->GetMainFrame() : NULL;
(...skipping 1610 matching lines...) Expand 10 before | Expand all | Expand 10 after
1953 DCHECK(!did_show_) << "received extraneous Show call"; 1950 DCHECK(!did_show_) << "received extraneous Show call";
1954 DCHECK(opener_id_ != MSG_ROUTING_NONE); 1951 DCHECK(opener_id_ != MSG_ROUTING_NONE);
1955 1952
1956 if (did_show_) 1953 if (did_show_)
1957 return; 1954 return;
1958 did_show_ = true; 1955 did_show_ = true;
1959 1956
1960 // NOTE: initial_pos_ may still have its default values at this point, but 1957 // NOTE: initial_pos_ may still have its default values at this point, but
1961 // that's okay. It'll be ignored if disposition is not NEW_POPUP, or the 1958 // that's okay. It'll be ignored if disposition is not NEW_POPUP, or the
1962 // browser process will impose a default position otherwise. 1959 // browser process will impose a default position otherwise.
1963 Send(new ViewHostMsg_ShowView( 1960 Send(new ViewHostMsg_ShowView(opener_id_, routing_id_, disposition,
1964 opener_id_, routing_id_, disposition, initial_pos_, 1961 initial_pos_, WasOpenedByUserGesture(NULL)));
1965 WasOpenedByUserGestureHelper()));
1966 } 1962 }
1967 1963
1968 void RenderView::CloseWidgetSoon(WebWidget* webwidget) { 1964 void RenderView::CloseWidgetSoon(WebWidget* webwidget) {
1969 if (popup_notification_visible_ == false) 1965 if (popup_notification_visible_ == false)
1970 RenderWidget::CloseWidgetSoon(webwidget); 1966 RenderWidget::CloseWidgetSoon(webwidget);
1971 } 1967 }
1972 1968
1973 void RenderView::RunModal(WebWidget* webwidget) { 1969 void RenderView::RunModal(WebWidget* webwidget) {
1974 DCHECK(did_show_) << "should already have shown the view"; 1970 DCHECK(did_show_) << "should already have shown the view";
1975 1971
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
2286 // Send the search result over to the browser process. 2282 // Send the search result over to the browser process.
2287 Send(new ViewHostMsg_Find_Reply(routing_id_, 2283 Send(new ViewHostMsg_Find_Reply(routing_id_,
2288 request_id, 2284 request_id,
2289 -1, 2285 -1,
2290 selection_rect, 2286 selection_rect,
2291 active_match_ordinal, 2287 active_match_ordinal,
2292 false)); 2288 false));
2293 } 2289 }
2294 2290
2295 bool RenderView::WasOpenedByUserGesture(WebView* webview) const { 2291 bool RenderView::WasOpenedByUserGesture(WebView* webview) const {
2296 return WasOpenedByUserGestureHelper();
2297 }
2298
2299 bool RenderView::WasOpenedByUserGestureHelper() const {
2300 // If pop-up blocking has been disabled, then treat all new windows as if
2301 // they were opened by a user gesture. This will prevent them from being
2302 // blocked. This is a bit of a hack, there should be a more straightforward
2303 // way to disable pop-up blocking.
2304 if (disable_popup_blocking_)
2305 return true;
2306
2307 return opened_by_user_gesture_; 2292 return opened_by_user_gesture_;
2308 } 2293 }
2309 2294
2310 void RenderView::SpellCheck(const std::wstring& word, int& misspell_location, 2295 void RenderView::SpellCheck(const std::wstring& word, int& misspell_location,
2311 int& misspell_length) { 2296 int& misspell_length) {
2312 Send(new ViewHostMsg_SpellCheck(routing_id_, word, &misspell_location, 2297 Send(new ViewHostMsg_SpellCheck(routing_id_, word, &misspell_location,
2313 &misspell_length)); 2298 &misspell_length));
2314 } 2299 }
2315 2300
2316 void RenderView::SetInputMethodState(bool enabled) { 2301 void RenderView::SetInputMethodState(bool enabled) {
(...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after
2999 } 2984 }
3000 } 2985 }
3001 UMA_HISTOGRAM_TIMES("Renderer.All.StartToFinishDoc", start_to_finish_doc); 2986 UMA_HISTOGRAM_TIMES("Renderer.All.StartToFinishDoc", start_to_finish_doc);
3002 UMA_HISTOGRAM_TIMES("Renderer.All.FinishDocToFinish", finish_doc_to_finish); 2987 UMA_HISTOGRAM_TIMES("Renderer.All.FinishDocToFinish", finish_doc_to_finish);
3003 UMA_HISTOGRAM_TIMES("Renderer.All.StartToFinish", start_to_finish); 2988 UMA_HISTOGRAM_TIMES("Renderer.All.StartToFinish", start_to_finish);
3004 if (start_to_first_layout.ToInternalValue() >= 0) { 2989 if (start_to_first_layout.ToInternalValue() >= 0) {
3005 UMA_HISTOGRAM_TIMES( 2990 UMA_HISTOGRAM_TIMES(
3006 "Renderer.All.StartToFirstLayout", start_to_first_layout); 2991 "Renderer.All.StartToFirstLayout", start_to_first_layout);
3007 } 2992 }
3008 } 2993 }
OLDNEW
« no previous file with comments | « chrome/renderer/render_view.h ('k') | chrome/test/automation/automation_proxy_uitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698