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

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

Issue 10978028: Propagate storage partition id and persistence to the browser. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merging with incoming changes (159475). Created 8 years, 2 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/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 722 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 IPC_MESSAGE_HANDLER(ViewHostMsg_CrashedPlugin, OnCrashedPlugin) 733 IPC_MESSAGE_HANDLER(ViewHostMsg_CrashedPlugin, OnCrashedPlugin)
734 IPC_MESSAGE_HANDLER(ViewHostMsg_AppCacheAccessed, OnAppCacheAccessed) 734 IPC_MESSAGE_HANDLER(ViewHostMsg_AppCacheAccessed, OnAppCacheAccessed)
735 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenColorChooser, OnOpenColorChooser) 735 IPC_MESSAGE_HANDLER(ViewHostMsg_OpenColorChooser, OnOpenColorChooser)
736 IPC_MESSAGE_HANDLER(ViewHostMsg_EndColorChooser, OnEndColorChooser) 736 IPC_MESSAGE_HANDLER(ViewHostMsg_EndColorChooser, OnEndColorChooser)
737 IPC_MESSAGE_HANDLER(ViewHostMsg_SetSelectedColorInColorChooser, 737 IPC_MESSAGE_HANDLER(ViewHostMsg_SetSelectedColorInColorChooser,
738 OnSetSelectedColorInColorChooser) 738 OnSetSelectedColorInColorChooser)
739 IPC_MESSAGE_HANDLER(ViewHostMsg_PepperPluginHung, OnPepperPluginHung) 739 IPC_MESSAGE_HANDLER(ViewHostMsg_PepperPluginHung, OnPepperPluginHung)
740 IPC_MESSAGE_HANDLER(ViewHostMsg_WebUISend, OnWebUISend) 740 IPC_MESSAGE_HANDLER(ViewHostMsg_WebUISend, OnWebUISend)
741 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestPpapiBrokerPermission, 741 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestPpapiBrokerPermission,
742 OnRequestPpapiBrokerPermission) 742 OnRequestPpapiBrokerPermission)
743 IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_NavigateGuest, 743 IPC_MESSAGE_HANDLER(BrowserPluginHostMsg_CreateGuest,
744 OnBrowserPluginNavigateGuest) 744 OnBrowserPluginCreateGuest)
745 IPC_MESSAGE_UNHANDLED(handled = false) 745 IPC_MESSAGE_UNHANDLED(handled = false)
746 IPC_END_MESSAGE_MAP_EX() 746 IPC_END_MESSAGE_MAP_EX()
747 message_source_ = NULL; 747 message_source_ = NULL;
748 748
749 if (!message_is_ok) { 749 if (!message_is_ok) {
750 content::RecordAction(UserMetricsAction("BadMessageTerminate_RVD")); 750 content::RecordAction(UserMetricsAction("BadMessageTerminate_RVD"));
751 GetRenderProcessHost()->ReceivedBadMessage(); 751 GetRenderProcessHost()->ReceivedBadMessage();
752 } 752 }
753 753
754 return handled; 754 return handled;
(...skipping 1606 matching lines...) Expand 10 before | Expand all | Expand 10 after
2361 } 2361 }
2362 2362
2363 void WebContentsImpl::OnPpapiBrokerPermissionResult(int request_id, 2363 void WebContentsImpl::OnPpapiBrokerPermissionResult(int request_id,
2364 bool result) { 2364 bool result) {
2365 RenderViewHostImpl* rvh = GetRenderViewHostImpl(); 2365 RenderViewHostImpl* rvh = GetRenderViewHostImpl();
2366 rvh->Send(new ViewMsg_PpapiBrokerPermissionResult(rvh->GetRoutingID(), 2366 rvh->Send(new ViewMsg_PpapiBrokerPermissionResult(rvh->GetRoutingID(),
2367 request_id, 2367 request_id,
2368 result)); 2368 result));
2369 } 2369 }
2370 2370
2371 void WebContentsImpl::OnBrowserPluginCreateGuest(
2372 int instance_id,
2373 const std::string& storage_partition_id,
2374 bool persist_storage) {
2375 // This creates a BrowserPluginEmbedder, which handles all the BrowserPlugin
2376 // specific messages for this WebContents (through its
2377 // BrowserPluginEmbedderHelper). This means that any message from browser
2378 // plugin renderer prior to CreateGuest will be ignored.
2379 // For more info, see comment above classes BrowserPluginEmbedder and
2380 // BrowserPluginGuest.
2381 CHECK(!browser_plugin_embedder_.get());
2382
2383 browser_plugin_embedder_.reset(
2384 content::BrowserPluginEmbedder::Create(this, GetRenderViewHost()));
2385 browser_plugin_embedder_->CreateGuest(GetRenderViewHost(),
2386 instance_id,
2387 storage_partition_id,
2388 persist_storage);
2389 }
2390
2371 void WebContentsImpl::OnBrowserPluginNavigateGuest( 2391 void WebContentsImpl::OnBrowserPluginNavigateGuest(
2372 int instance_id, 2392 int instance_id,
2373 const std::string& src, 2393 const std::string& src,
2374 const BrowserPluginHostMsg_ResizeGuest_Params& resize_params) { 2394 const BrowserPluginHostMsg_ResizeGuest_Params& resize_params) {
2375 // This is the first 'navigate' to a browser plugin, before WebContents has/is
2376 // an 'Embedder'; subsequent navigate messages for this WebContents will
2377 // be handled by the BrowserPluginEmbedderHelper of the embedder itself (this
2378 // also means any message from browser plugin renderer prior to NavigateGuest
2379 // which is not NavigateGuest will be ignored). Therefore
2380 // |browser_plugin_embedder_| should not be set.
2381 // For more info, see comment above classes BrowserPluginEmbedder and
2382 // BrowserPluginGuest.
2383 CHECK(!browser_plugin_embedder_.get());
2384
2385 browser_plugin_embedder_.reset(
2386 content::BrowserPluginEmbedder::Create(this, GetRenderViewHost()));
2387 browser_plugin_embedder_->NavigateGuest(GetRenderViewHost(), 2395 browser_plugin_embedder_->NavigateGuest(GetRenderViewHost(),
2388 instance_id, 2396 instance_id,
2389 src, 2397 src,
2390 resize_params); 2398 resize_params);
2391 } 2399 }
2392 2400
2393 // Notifies the RenderWidgetHost instance about the fact that the page is 2401 // Notifies the RenderWidgetHost instance about the fact that the page is
2394 // loading, or done loading and calls the base implementation. 2402 // loading, or done loading and calls the base implementation.
2395 void WebContentsImpl::SetIsLoading(bool is_loading, 2403 void WebContentsImpl::SetIsLoading(bool is_loading,
2396 LoadNotificationDetails* details) { 2404 LoadNotificationDetails* details) {
(...skipping 985 matching lines...) Expand 10 before | Expand all | Expand 10 after
3382 } 3390 }
3383 } 3391 }
3384 3392
3385 content::BrowserPluginGuest* WebContentsImpl::GetBrowserPluginGuest() { 3393 content::BrowserPluginGuest* WebContentsImpl::GetBrowserPluginGuest() {
3386 return browser_plugin_guest_.get(); 3394 return browser_plugin_guest_.get();
3387 } 3395 }
3388 3396
3389 content::BrowserPluginEmbedder* WebContentsImpl::GetBrowserPluginEmbedder() { 3397 content::BrowserPluginEmbedder* WebContentsImpl::GetBrowserPluginEmbedder() {
3390 return browser_plugin_embedder_.get(); 3398 return browser_plugin_embedder_.get();
3391 } 3399 }
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/common/browser_plugin_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698