| OLD | NEW |
| 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 Loading... |
| 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" | |
| 100 #include "content/browser/web_contents/web_contents_android.h" | 99 #include "content/browser/web_contents/web_contents_android.h" |
| 101 #include "content/common/java_bridge_messages.h" | |
| 102 #include "content/public/browser/android/content_view_core.h" | 100 #include "content/public/browser/android/content_view_core.h" |
| 103 #endif | 101 #endif |
| 104 | 102 |
| 105 #if defined(OS_MACOSX) | 103 #if defined(OS_MACOSX) |
| 106 #include "base/mac/foundation_util.h" | 104 #include "base/mac/foundation_util.h" |
| 107 #include "ui/gl/io_surface_support_mac.h" | 105 #include "ui/gl/io_surface_support_mac.h" |
| 108 #endif | 106 #endif |
| 109 | 107 |
| 110 // Cross-Site Navigations | 108 // Cross-Site Navigations |
| 111 // | 109 // |
| (...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 474 RenderFrameHost* render_frame_host, | 472 RenderFrameHost* render_frame_host, |
| 475 const IPC::Message& message) { | 473 const IPC::Message& message) { |
| 476 DCHECK(render_view_host || render_frame_host); | 474 DCHECK(render_view_host || render_frame_host); |
| 477 if (GetWebUI() && | 475 if (GetWebUI() && |
| 478 static_cast<WebUIImpl*>(GetWebUI())->OnMessageReceived(message)) { | 476 static_cast<WebUIImpl*>(GetWebUI())->OnMessageReceived(message)) { |
| 479 return true; | 477 return true; |
| 480 } | 478 } |
| 481 | 479 |
| 482 ObserverListBase<WebContentsObserver>::Iterator it(observers_); | 480 ObserverListBase<WebContentsObserver>::Iterator it(observers_); |
| 483 WebContentsObserver* observer; | 481 WebContentsObserver* observer; |
| 484 while ((observer = it.GetNext()) != NULL) | 482 if (render_frame_host) { |
| 485 if (observer->OnMessageReceived(message)) | 483 while ((observer = it.GetNext()) != NULL) |
| 486 return true; | 484 if (observer->OnMessageReceived(message, render_frame_host)) |
| 485 return true; |
| 486 } else { |
| 487 while ((observer = it.GetNext()) != NULL) |
| 488 if (observer->OnMessageReceived(message)) |
| 489 return true; |
| 490 } |
| 487 | 491 |
| 488 // Message handlers should be aware of which | 492 // Message handlers should be aware of which |
| 489 // RenderViewHost/RenderFrameHost sent the message, which is temporarily | 493 // RenderViewHost/RenderFrameHost sent the message, which is temporarily |
| 490 // stored in render_(view|frame)_message_source_. | 494 // stored in render_(view|frame)_message_source_. |
| 491 if (render_frame_host) { | 495 if (render_frame_host) { |
| 492 if (RenderViewDevToolsAgentHost::DispatchIPCMessage( | 496 if (RenderViewDevToolsAgentHost::DispatchIPCMessage( |
| 493 render_frame_host->GetRenderViewHost(), message)) | 497 render_frame_host->GetRenderViewHost(), message)) |
| 494 return true; | 498 return true; |
| 495 render_frame_message_source_ = render_frame_host; | 499 render_frame_message_source_ = render_frame_host; |
| 496 } else { | 500 } else { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 546 OnShowValidationMessage) | 550 OnShowValidationMessage) |
| 547 IPC_MESSAGE_HANDLER(ViewHostMsg_HideValidationMessage, | 551 IPC_MESSAGE_HANDLER(ViewHostMsg_HideValidationMessage, |
| 548 OnHideValidationMessage) | 552 OnHideValidationMessage) |
| 549 IPC_MESSAGE_HANDLER(ViewHostMsg_MoveValidationMessage, | 553 IPC_MESSAGE_HANDLER(ViewHostMsg_MoveValidationMessage, |
| 550 OnMoveValidationMessage) | 554 OnMoveValidationMessage) |
| 551 #if defined(OS_ANDROID) | 555 #if defined(OS_ANDROID) |
| 552 IPC_MESSAGE_HANDLER(ViewHostMsg_FindMatchRects_Reply, | 556 IPC_MESSAGE_HANDLER(ViewHostMsg_FindMatchRects_Reply, |
| 553 OnFindMatchRectsReply) | 557 OnFindMatchRectsReply) |
| 554 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenDateTimeDialog, | 558 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenDateTimeDialog, |
| 555 OnOpenDateTimeDialog) | 559 OnOpenDateTimeDialog) |
| 556 IPC_MESSAGE_HANDLER_DELAY_REPLY(JavaBridgeHostMsg_GetChannelHandle, | |
| 557 OnJavaBridgeGetChannelHandle) | |
| 558 #endif | 560 #endif |
| 559 IPC_MESSAGE_UNHANDLED(handled = false) | 561 IPC_MESSAGE_UNHANDLED(handled = false) |
| 560 IPC_END_MESSAGE_MAP_EX() | 562 IPC_END_MESSAGE_MAP_EX() |
| 561 render_view_message_source_ = NULL; | 563 render_view_message_source_ = NULL; |
| 562 render_frame_message_source_ = NULL; | 564 render_frame_message_source_ = NULL; |
| 563 | 565 |
| 564 if (!message_is_ok) { | 566 if (!message_is_ok) { |
| 565 RecordAction(base::UserMetricsAction("BadMessageTerminate_RVD")); | 567 RecordAction(base::UserMetricsAction("BadMessageTerminate_RVD")); |
| 566 GetRenderProcessHost()->ReceivedBadMessage(); | 568 GetRenderProcessHost()->ReceivedBadMessage(); |
| 567 } | 569 } |
| (...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1092 view_->CreateView(initial_size, params.context); | 1094 view_->CreateView(initial_size, params.context); |
| 1093 | 1095 |
| 1094 // Listen for whether our opener gets destroyed. | 1096 // Listen for whether our opener gets destroyed. |
| 1095 if (opener_) | 1097 if (opener_) |
| 1096 AddDestructionObserver(opener_); | 1098 AddDestructionObserver(opener_); |
| 1097 | 1099 |
| 1098 registrar_.Add(this, | 1100 registrar_.Add(this, |
| 1099 NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED, | 1101 NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED, |
| 1100 NotificationService::AllBrowserContextsAndSources()); | 1102 NotificationService::AllBrowserContextsAndSources()); |
| 1101 #if defined(OS_ANDROID) | 1103 #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 Loading... |
| 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 | |
| 2713 #endif | 2708 #endif |
| 2714 | 2709 |
| 2715 void WebContentsImpl::OnPepperPluginHung(int plugin_child_id, | 2710 void WebContentsImpl::OnPepperPluginHung(int plugin_child_id, |
| 2716 const base::FilePath& path, | 2711 const base::FilePath& path, |
| 2717 bool is_hung) { | 2712 bool is_hung) { |
| 2718 UMA_HISTOGRAM_COUNTS("Pepper.PluginHung", 1); | 2713 UMA_HISTOGRAM_COUNTS("Pepper.PluginHung", 1); |
| 2719 | 2714 |
| 2720 FOR_EACH_OBSERVER(WebContentsObserver, observers_, | 2715 FOR_EACH_OBSERVER(WebContentsObserver, observers_, |
| 2721 PluginHungStatusChanged(plugin_child_id, path, is_hung)); | 2716 PluginHungStatusChanged(plugin_child_id, path, is_hung)); |
| 2722 } | 2717 } |
| (...skipping 1257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3980 | 3975 |
| 3981 void WebContentsImpl::OnPreferredSizeChanged(const gfx::Size& old_size) { | 3976 void WebContentsImpl::OnPreferredSizeChanged(const gfx::Size& old_size) { |
| 3982 if (!delegate_) | 3977 if (!delegate_) |
| 3983 return; | 3978 return; |
| 3984 const gfx::Size new_size = GetPreferredSize(); | 3979 const gfx::Size new_size = GetPreferredSize(); |
| 3985 if (new_size != old_size) | 3980 if (new_size != old_size) |
| 3986 delegate_->UpdatePreferredSize(this, new_size); | 3981 delegate_->UpdatePreferredSize(this, new_size); |
| 3987 } | 3982 } |
| 3988 | 3983 |
| 3989 } // namespace content | 3984 } // namespace content |
| OLD | NEW |