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/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 664 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
675 OnRegisterProtocolHandler) | 675 OnRegisterProtocolHandler) |
676 IPC_MESSAGE_HANDLER(ViewHostMsg_Find_Reply, OnFindReply) | 676 IPC_MESSAGE_HANDLER(ViewHostMsg_Find_Reply, OnFindReply) |
677 IPC_MESSAGE_HANDLER(ViewHostMsg_CrashedPlugin, OnCrashedPlugin) | 677 IPC_MESSAGE_HANDLER(ViewHostMsg_CrashedPlugin, OnCrashedPlugin) |
678 IPC_MESSAGE_HANDLER(ViewHostMsg_AppCacheAccessed, OnAppCacheAccessed) | 678 IPC_MESSAGE_HANDLER(ViewHostMsg_AppCacheAccessed, OnAppCacheAccessed) |
679 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenColorChooser, OnOpenColorChooser) | 679 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenColorChooser, OnOpenColorChooser) |
680 IPC_MESSAGE_HANDLER(ViewHostMsg_EndColorChooser, OnEndColorChooser) | 680 IPC_MESSAGE_HANDLER(ViewHostMsg_EndColorChooser, OnEndColorChooser) |
681 IPC_MESSAGE_HANDLER(ViewHostMsg_SetSelectedColorInColorChooser, | 681 IPC_MESSAGE_HANDLER(ViewHostMsg_SetSelectedColorInColorChooser, |
682 OnSetSelectedColorInColorChooser) | 682 OnSetSelectedColorInColorChooser) |
683 IPC_MESSAGE_HANDLER(ViewHostMsg_PepperPluginHung, OnPepperPluginHung) | 683 IPC_MESSAGE_HANDLER(ViewHostMsg_PepperPluginHung, OnPepperPluginHung) |
684 IPC_MESSAGE_HANDLER(ViewHostMsg_WebUISend, OnWebUISend) | 684 IPC_MESSAGE_HANDLER(ViewHostMsg_WebUISend, OnWebUISend) |
| 685 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestPpapiBrokerPermission, |
| 686 OnRequestPpapiBrokerPermission) |
685 IPC_MESSAGE_UNHANDLED(handled = false) | 687 IPC_MESSAGE_UNHANDLED(handled = false) |
686 IPC_END_MESSAGE_MAP_EX() | 688 IPC_END_MESSAGE_MAP_EX() |
687 message_source_ = NULL; | 689 message_source_ = NULL; |
688 | 690 |
689 if (!message_is_ok) { | 691 if (!message_is_ok) { |
690 content::RecordAction(UserMetricsAction("BadMessageTerminate_RVD")); | 692 content::RecordAction(UserMetricsAction("BadMessageTerminate_RVD")); |
691 GetRenderProcessHost()->ReceivedBadMessage(); | 693 GetRenderProcessHost()->ReceivedBadMessage(); |
692 } | 694 } |
693 | 695 |
694 return handled; | 696 return handled; |
(...skipping 1547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2242 | 2244 |
2243 // This exists for render views that don't have a WebUI, but do have WebUI | 2245 // This exists for render views that don't have a WebUI, but do have WebUI |
2244 // bindings enabled. | 2246 // bindings enabled. |
2245 void WebContentsImpl::OnWebUISend(const GURL& source_url, | 2247 void WebContentsImpl::OnWebUISend(const GURL& source_url, |
2246 const std::string& name, | 2248 const std::string& name, |
2247 const base::ListValue& args) { | 2249 const base::ListValue& args) { |
2248 if (delegate_) | 2250 if (delegate_) |
2249 delegate_->WebUISend(this, source_url, name, args); | 2251 delegate_->WebUISend(this, source_url, name, args); |
2250 } | 2252 } |
2251 | 2253 |
| 2254 void WebContentsImpl::OnRequestPpapiBrokerPermission( |
| 2255 int request_id, |
| 2256 const GURL& url, |
| 2257 const FilePath& plugin_path) { |
| 2258 base::Callback<void(bool)> callback = |
| 2259 base::Bind(&WebContentsImpl::OnPpapiBrokerPermissionResult, |
| 2260 base::Unretained(this), request_id); |
| 2261 ObserverListBase<WebContentsObserver>::Iterator it(observers_); |
| 2262 WebContentsObserver* observer; |
| 2263 while ((observer = it.GetNext()) != NULL) { |
| 2264 if (observer->RequestPpapiBrokerPermission(this, url, plugin_path, |
| 2265 callback)) |
| 2266 return; |
| 2267 } |
| 2268 |
| 2269 // Fall back to allowing the request if no observer handled it. |
| 2270 OnPpapiBrokerPermissionResult(request_id, true); |
| 2271 } |
| 2272 |
| 2273 void WebContentsImpl::OnPpapiBrokerPermissionResult(int request_id, |
| 2274 bool result) { |
| 2275 RenderViewHostImpl* rvh = GetRenderViewHostImpl(); |
| 2276 rvh->Send(new ViewMsg_PpapiBrokerPermissionResult(rvh->GetRoutingID(), |
| 2277 request_id, |
| 2278 result)); |
| 2279 } |
| 2280 |
2252 // Notifies the RenderWidgetHost instance about the fact that the page is | 2281 // Notifies the RenderWidgetHost instance about the fact that the page is |
2253 // loading, or done loading and calls the base implementation. | 2282 // loading, or done loading and calls the base implementation. |
2254 void WebContentsImpl::SetIsLoading(bool is_loading, | 2283 void WebContentsImpl::SetIsLoading(bool is_loading, |
2255 LoadNotificationDetails* details) { | 2284 LoadNotificationDetails* details) { |
2256 if (is_loading == is_loading_) | 2285 if (is_loading == is_loading_) |
2257 return; | 2286 return; |
2258 | 2287 |
2259 if (!is_loading) { | 2288 if (!is_loading) { |
2260 load_state_ = net::LoadStateWithParam(net::LOAD_STATE_IDLE, string16()); | 2289 load_state_ = net::LoadStateWithParam(net::LOAD_STATE_IDLE, string16()); |
2261 load_state_host_.clear(); | 2290 load_state_host_.clear(); |
(...skipping 949 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3211 old_browser_plugin_host()->embedder_render_process_host(); | 3240 old_browser_plugin_host()->embedder_render_process_host(); |
3212 *embedder_container_id = old_browser_plugin_host()->instance_id(); | 3241 *embedder_container_id = old_browser_plugin_host()->instance_id(); |
3213 int embedder_process_id = | 3242 int embedder_process_id = |
3214 embedder_render_process_host ? embedder_render_process_host->GetID() : -1; | 3243 embedder_render_process_host ? embedder_render_process_host->GetID() : -1; |
3215 if (embedder_process_id != -1) { | 3244 if (embedder_process_id != -1) { |
3216 *embedder_channel_name = | 3245 *embedder_channel_name = |
3217 StringPrintf("%d.r%d", render_view_host->GetProcess()->GetID(), | 3246 StringPrintf("%d.r%d", render_view_host->GetProcess()->GetID(), |
3218 embedder_process_id); | 3247 embedder_process_id); |
3219 } | 3248 } |
3220 } | 3249 } |
OLD | NEW |