Chromium Code Reviews| 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/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| (...skipping 3129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3140 } | 3140 } |
| 3141 } | 3141 } |
| 3142 | 3142 |
| 3143 void WebContentsImpl::OnPpapiBrokerPermissionResult(int routing_id, | 3143 void WebContentsImpl::OnPpapiBrokerPermissionResult(int routing_id, |
| 3144 bool result) { | 3144 bool result) { |
| 3145 Send(new ViewMsg_PpapiBrokerPermissionResult(routing_id, result)); | 3145 Send(new ViewMsg_PpapiBrokerPermissionResult(routing_id, result)); |
| 3146 } | 3146 } |
| 3147 | 3147 |
| 3148 void WebContentsImpl::OnBrowserPluginMessage(RenderFrameHost* render_frame_host, | 3148 void WebContentsImpl::OnBrowserPluginMessage(RenderFrameHost* render_frame_host, |
| 3149 const IPC::Message& message) { | 3149 const IPC::Message& message) { |
| 3150 // This creates a BrowserPluginEmbedder, which handles all the BrowserPlugin | 3150 CreateBrowserPluginEmbedderIfNecessary(); |
| 3151 // specific messages for this WebContents. This means that any message from | |
| 3152 // a BrowserPlugin prior to this will be ignored. | |
| 3153 // For more info, see comment above classes BrowserPluginEmbedder and | |
| 3154 // BrowserPluginGuest. | |
| 3155 CHECK(!browser_plugin_embedder_.get()); | |
|
Charlie Reis
2015/03/04 20:08:36
Why not keep this CHECK before the CreateBrowserPl
Fady Samuel
2015/03/05 20:56:23
Good point. If a BrowserPluginEmbedder already exi
| |
| 3156 browser_plugin_embedder_.reset(BrowserPluginEmbedder::Create(this)); | |
| 3157 browser_plugin_embedder_->OnMessageReceived(message, render_frame_host); | 3151 browser_plugin_embedder_->OnMessageReceived(message, render_frame_host); |
| 3158 } | 3152 } |
| 3159 #endif // defined(ENABLE_PLUGINS) | 3153 #endif // defined(ENABLE_PLUGINS) |
| 3160 | 3154 |
| 3161 void WebContentsImpl::OnDidDownloadImage( | 3155 void WebContentsImpl::OnDidDownloadImage( |
| 3162 int id, | 3156 int id, |
| 3163 int http_status_code, | 3157 int http_status_code, |
| 3164 const GURL& image_url, | 3158 const GURL& image_url, |
| 3165 const std::vector<SkBitmap>& bitmaps, | 3159 const std::vector<SkBitmap>& bitmaps, |
| 3166 const std::vector<gfx::Size>& original_bitmap_sizes) { | 3160 const std::vector<gfx::Size>& original_bitmap_sizes) { |
| (...skipping 814 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3981 RenderViewHost* rvh, | 3975 RenderViewHost* rvh, |
| 3982 const ViewMsg_PostMessage_Params& params) { | 3976 const ViewMsg_PostMessage_Params& params) { |
| 3983 // Only deliver the message to the active RenderViewHost if the request | 3977 // Only deliver the message to the active RenderViewHost if the request |
| 3984 // came from a RenderViewHost in the same BrowsingInstance or if this | 3978 // came from a RenderViewHost in the same BrowsingInstance or if this |
| 3985 // WebContents is dedicated to a browser plugin guest. | 3979 // WebContents is dedicated to a browser plugin guest. |
| 3986 // Note: This check means that an embedder could theoretically receive a | 3980 // Note: This check means that an embedder could theoretically receive a |
| 3987 // postMessage from anyone (not just its own guests). However, this is | 3981 // postMessage from anyone (not just its own guests). However, this is |
| 3988 // probably not a risk for apps since other pages won't have references | 3982 // probably not a risk for apps since other pages won't have references |
| 3989 // to App windows. | 3983 // to App windows. |
| 3990 if (!rvh->GetSiteInstance()->IsRelatedSiteInstance(GetSiteInstance()) && | 3984 if (!rvh->GetSiteInstance()->IsRelatedSiteInstance(GetSiteInstance()) && |
| 3991 !GetBrowserPluginGuest() && !GetBrowserPluginEmbedder()) | 3985 !GetBrowserPluginGuest() && !GetBrowserPluginEmbedder()) { |
|
Charlie Reis
2015/03/04 20:08:36
This change isn't necessary, and it's not related
Fady Samuel
2015/03/05 20:56:23
Done.
| |
| 3992 return; | 3986 return; |
| 3987 } | |
| 3993 | 3988 |
| 3994 ViewMsg_PostMessage_Params new_params(params); | 3989 ViewMsg_PostMessage_Params new_params(params); |
| 3995 | 3990 |
| 3996 // If there is a source_routing_id, translate it to the routing ID for | 3991 // If there is a source_routing_id, translate it to the routing ID for |
| 3997 // the equivalent swapped out RVH in the target process. If we need | 3992 // the equivalent swapped out RVH in the target process. If we need |
| 3998 // to create a swapped out RVH for the source tab, we create its opener | 3993 // to create a swapped out RVH for the source tab, we create its opener |
| 3999 // chain as well, since those will also be accessible to the target page. | 3994 // chain as well, since those will also be accessible to the target page. |
| 4000 if (new_params.source_routing_id != MSG_ROUTING_NONE) { | 3995 if (new_params.source_routing_id != MSG_ROUTING_NONE) { |
| 4001 // Try to look up the WebContents for the source page. | 3996 // Try to look up the WebContents for the source page. |
| 4002 WebContentsImpl* source_contents = NULL; | 3997 WebContentsImpl* source_contents = NULL; |
| (...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4436 | 4431 |
| 4437 void WebContentsImpl::SetBrowserPluginGuest(BrowserPluginGuest* guest) { | 4432 void WebContentsImpl::SetBrowserPluginGuest(BrowserPluginGuest* guest) { |
| 4438 CHECK(!browser_plugin_guest_); | 4433 CHECK(!browser_plugin_guest_); |
| 4439 browser_plugin_guest_.reset(guest); | 4434 browser_plugin_guest_.reset(guest); |
| 4440 } | 4435 } |
| 4441 | 4436 |
| 4442 BrowserPluginEmbedder* WebContentsImpl::GetBrowserPluginEmbedder() const { | 4437 BrowserPluginEmbedder* WebContentsImpl::GetBrowserPluginEmbedder() const { |
| 4443 return browser_plugin_embedder_.get(); | 4438 return browser_plugin_embedder_.get(); |
| 4444 } | 4439 } |
| 4445 | 4440 |
| 4441 void WebContentsImpl::CreateBrowserPluginEmbedderIfNecessary() { | |
| 4442 if (browser_plugin_embedder_) | |
| 4443 return; | |
| 4444 browser_plugin_embedder_.reset(BrowserPluginEmbedder::Create(this)); | |
| 4445 } | |
| 4446 | |
| 4446 void WebContentsImpl::ClearPowerSaveBlockers( | 4447 void WebContentsImpl::ClearPowerSaveBlockers( |
| 4447 RenderFrameHost* render_frame_host) { | 4448 RenderFrameHost* render_frame_host) { |
| 4448 RemoveAllMediaPlayerEntries(render_frame_host, &active_audio_players_); | 4449 RemoveAllMediaPlayerEntries(render_frame_host, &active_audio_players_); |
| 4449 RemoveAllMediaPlayerEntries(render_frame_host, &active_video_players_); | 4450 RemoveAllMediaPlayerEntries(render_frame_host, &active_video_players_); |
| 4450 MaybeReleasePowerSaveBlockers(); | 4451 MaybeReleasePowerSaveBlockers(); |
| 4451 } | 4452 } |
| 4452 | 4453 |
| 4453 void WebContentsImpl::ClearAllPowerSaveBlockers() { | 4454 void WebContentsImpl::ClearAllPowerSaveBlockers() { |
| 4454 active_audio_players_.clear(); | 4455 active_audio_players_.clear(); |
| 4455 active_video_players_.clear(); | 4456 active_video_players_.clear(); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4529 node->render_manager()->ResumeResponseDeferredAtStart(); | 4530 node->render_manager()->ResumeResponseDeferredAtStart(); |
| 4530 } | 4531 } |
| 4531 | 4532 |
| 4532 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { | 4533 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { |
| 4533 force_disable_overscroll_content_ = force_disable; | 4534 force_disable_overscroll_content_ = force_disable; |
| 4534 if (view_) | 4535 if (view_) |
| 4535 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); | 4536 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); |
| 4536 } | 4537 } |
| 4537 | 4538 |
| 4538 } // namespace content | 4539 } // namespace content |
| OLD | NEW |