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

Side by Side Diff: trunk/src/content/browser/web_contents/web_contents_impl.cc

Issue 271863005: Revert 268939 "Pass RenderFrameHost to WebContentObservers' mess..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 #include "net/url_request/url_request_context_getter.h" 89 #include "net/url_request/url_request_context_getter.h"
90 #include "ui/base/layout.h" 90 #include "ui/base/layout.h"
91 #include "ui/gfx/display.h" 91 #include "ui/gfx/display.h"
92 #include "ui/gfx/screen.h" 92 #include "ui/gfx/screen.h"
93 #include "ui/gl/gl_switches.h" 93 #include "ui/gl/gl_switches.h"
94 #include "webkit/common/webpreferences.h" 94 #include "webkit/common/webpreferences.h"
95 95
96 #if defined(OS_ANDROID) 96 #if defined(OS_ANDROID)
97 #include "content/browser/android/date_time_chooser_android.h" 97 #include "content/browser/android/date_time_chooser_android.h"
98 #include "content/browser/media/android/browser_media_player_manager.h" 98 #include "content/browser/media/android/browser_media_player_manager.h"
99 #include "content/browser/renderer_host/java/java_bridge_dispatcher_host_manager .h"
99 #include "content/browser/web_contents/web_contents_android.h" 100 #include "content/browser/web_contents/web_contents_android.h"
101 #include "content/common/java_bridge_messages.h"
100 #include "content/public/browser/android/content_view_core.h" 102 #include "content/public/browser/android/content_view_core.h"
101 #endif 103 #endif
102 104
103 #if defined(OS_MACOSX) 105 #if defined(OS_MACOSX)
104 #include "base/mac/foundation_util.h" 106 #include "base/mac/foundation_util.h"
105 #include "ui/gl/io_surface_support_mac.h" 107 #include "ui/gl/io_surface_support_mac.h"
106 #endif 108 #endif
107 109
108 // Cross-Site Navigations 110 // Cross-Site Navigations
109 // 111 //
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 RenderFrameHost* render_frame_host, 474 RenderFrameHost* render_frame_host,
473 const IPC::Message& message) { 475 const IPC::Message& message) {
474 DCHECK(render_view_host || render_frame_host); 476 DCHECK(render_view_host || render_frame_host);
475 if (GetWebUI() && 477 if (GetWebUI() &&
476 static_cast<WebUIImpl*>(GetWebUI())->OnMessageReceived(message)) { 478 static_cast<WebUIImpl*>(GetWebUI())->OnMessageReceived(message)) {
477 return true; 479 return true;
478 } 480 }
479 481
480 ObserverListBase<WebContentsObserver>::Iterator it(observers_); 482 ObserverListBase<WebContentsObserver>::Iterator it(observers_);
481 WebContentsObserver* observer; 483 WebContentsObserver* observer;
482 if (render_frame_host) { 484 while ((observer = it.GetNext()) != NULL)
483 while ((observer = it.GetNext()) != NULL) 485 if (observer->OnMessageReceived(message))
484 if (observer->OnMessageReceived(message, render_frame_host)) 486 return true;
485 return true;
486 } else {
487 while ((observer = it.GetNext()) != NULL)
488 if (observer->OnMessageReceived(message))
489 return true;
490 }
491 487
492 // Message handlers should be aware of which 488 // Message handlers should be aware of which
493 // RenderViewHost/RenderFrameHost sent the message, which is temporarily 489 // RenderViewHost/RenderFrameHost sent the message, which is temporarily
494 // stored in render_(view|frame)_message_source_. 490 // stored in render_(view|frame)_message_source_.
495 if (render_frame_host) { 491 if (render_frame_host) {
496 if (RenderViewDevToolsAgentHost::DispatchIPCMessage( 492 if (RenderViewDevToolsAgentHost::DispatchIPCMessage(
497 render_frame_host->GetRenderViewHost(), message)) 493 render_frame_host->GetRenderViewHost(), message))
498 return true; 494 return true;
499 render_frame_message_source_ = render_frame_host; 495 render_frame_message_source_ = render_frame_host;
500 } else { 496 } else {
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 OnShowValidationMessage) 546 OnShowValidationMessage)
551 IPC_MESSAGE_HANDLER(ViewHostMsg_HideValidationMessage, 547 IPC_MESSAGE_HANDLER(ViewHostMsg_HideValidationMessage,
552 OnHideValidationMessage) 548 OnHideValidationMessage)
553 IPC_MESSAGE_HANDLER(ViewHostMsg_MoveValidationMessage, 549 IPC_MESSAGE_HANDLER(ViewHostMsg_MoveValidationMessage,
554 OnMoveValidationMessage) 550 OnMoveValidationMessage)
555 #if defined(OS_ANDROID) 551 #if defined(OS_ANDROID)
556 IPC_MESSAGE_HANDLER(ViewHostMsg_FindMatchRects_Reply, 552 IPC_MESSAGE_HANDLER(ViewHostMsg_FindMatchRects_Reply,
557 OnFindMatchRectsReply) 553 OnFindMatchRectsReply)
558 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenDateTimeDialog, 554 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenDateTimeDialog,
559 OnOpenDateTimeDialog) 555 OnOpenDateTimeDialog)
556 IPC_MESSAGE_HANDLER_DELAY_REPLY(JavaBridgeHostMsg_GetChannelHandle,
557 OnJavaBridgeGetChannelHandle)
560 #endif 558 #endif
561 IPC_MESSAGE_UNHANDLED(handled = false) 559 IPC_MESSAGE_UNHANDLED(handled = false)
562 IPC_END_MESSAGE_MAP_EX() 560 IPC_END_MESSAGE_MAP_EX()
563 render_view_message_source_ = NULL; 561 render_view_message_source_ = NULL;
564 render_frame_message_source_ = NULL; 562 render_frame_message_source_ = NULL;
565 563
566 if (!message_is_ok) { 564 if (!message_is_ok) {
567 RecordAction(base::UserMetricsAction("BadMessageTerminate_RVD")); 565 RecordAction(base::UserMetricsAction("BadMessageTerminate_RVD"));
568 GetRenderProcessHost()->ReceivedBadMessage(); 566 GetRenderProcessHost()->ReceivedBadMessage();
569 } 567 }
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after
1094 view_->CreateView(initial_size, params.context); 1092 view_->CreateView(initial_size, params.context);
1095 1093
1096 // Listen for whether our opener gets destroyed. 1094 // Listen for whether our opener gets destroyed.
1097 if (opener_) 1095 if (opener_)
1098 AddDestructionObserver(opener_); 1096 AddDestructionObserver(opener_);
1099 1097
1100 registrar_.Add(this, 1098 registrar_.Add(this,
1101 NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED, 1099 NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED,
1102 NotificationService::AllBrowserContextsAndSources()); 1100 NotificationService::AllBrowserContextsAndSources());
1103 #if defined(OS_ANDROID) 1101 #if defined(OS_ANDROID)
1102 java_bridge_dispatcher_host_manager_.reset(
1103 new JavaBridgeDispatcherHostManager(this));
1104 date_time_chooser_.reset(new DateTimeChooserAndroid()); 1104 date_time_chooser_.reset(new DateTimeChooserAndroid());
1105 #endif 1105 #endif
1106 } 1106 }
1107 1107
1108 void WebContentsImpl::OnWebContentsDestroyed(WebContentsImpl* web_contents) { 1108 void WebContentsImpl::OnWebContentsDestroyed(WebContentsImpl* web_contents) {
1109 RemoveDestructionObserver(web_contents); 1109 RemoveDestructionObserver(web_contents);
1110 1110
1111 // Clear the opener if it has been closed. 1111 // Clear the opener if it has been closed.
1112 if (web_contents == opener_) { 1112 if (web_contents == opener_) {
1113 opener_ = NULL; 1113 opener_ = NULL;
(...skipping 1584 matching lines...) Expand 10 before | Expand all | Expand 10 after
2698 date_time_chooser_->ShowDialog(ContentViewCore::FromWebContents(this), 2698 date_time_chooser_->ShowDialog(ContentViewCore::FromWebContents(this),
2699 GetRenderViewHost(), 2699 GetRenderViewHost(),
2700 value.dialog_type, 2700 value.dialog_type,
2701 value.dialog_value, 2701 value.dialog_value,
2702 value.minimum, 2702 value.minimum,
2703 value.maximum, 2703 value.maximum,
2704 value.step, 2704 value.step,
2705 value.suggestions); 2705 value.suggestions);
2706 } 2706 }
2707 2707
2708 void WebContentsImpl::OnJavaBridgeGetChannelHandle(IPC::Message* reply_msg) {
2709 java_bridge_dispatcher_host_manager_->OnGetChannelHandle(
2710 render_frame_message_source_, reply_msg);
2711 }
2712
2708 #endif 2713 #endif
2709 2714
2710 void WebContentsImpl::OnPepperPluginHung(int plugin_child_id, 2715 void WebContentsImpl::OnPepperPluginHung(int plugin_child_id,
2711 const base::FilePath& path, 2716 const base::FilePath& path,
2712 bool is_hung) { 2717 bool is_hung) {
2713 UMA_HISTOGRAM_COUNTS("Pepper.PluginHung", 1); 2718 UMA_HISTOGRAM_COUNTS("Pepper.PluginHung", 1);
2714 2719
2715 FOR_EACH_OBSERVER(WebContentsObserver, observers_, 2720 FOR_EACH_OBSERVER(WebContentsObserver, observers_,
2716 PluginHungStatusChanged(plugin_child_id, path, is_hung)); 2721 PluginHungStatusChanged(plugin_child_id, path, is_hung));
2717 } 2722 }
(...skipping 1257 matching lines...) Expand 10 before | Expand all | Expand 10 after
3975 3980
3976 void WebContentsImpl::OnPreferredSizeChanged(const gfx::Size& old_size) { 3981 void WebContentsImpl::OnPreferredSizeChanged(const gfx::Size& old_size) {
3977 if (!delegate_) 3982 if (!delegate_)
3978 return; 3983 return;
3979 const gfx::Size new_size = GetPreferredSize(); 3984 const gfx::Size new_size = GetPreferredSize();
3980 if (new_size != old_size) 3985 if (new_size != old_size)
3981 delegate_->UpdatePreferredSize(this, new_size); 3986 delegate_->UpdatePreferredSize(this, new_size);
3982 } 3987 }
3983 3988
3984 } // namespace content 3989 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698