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

Side by Side Diff: content/renderer/render_view_impl.cc

Issue 972313002: Make <webview> use out-of-process iframe architecture. (Closed) Base URL: ssh://saopaulo.wat/mnt/dev/shared/src@testoopif2z-better-chrome
Patch Set: some review comments addressed Created 5 years, 8 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
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/renderer/render_view_impl.h" 5 #include "content/renderer/render_view_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after
722 ApplyWebPreferences(webkit_preferences_, webview()); 722 ApplyWebPreferences(webkit_preferences_, webview());
723 723
724 RenderFrameProxy* proxy = NULL; 724 RenderFrameProxy* proxy = NULL;
725 if (params.proxy_routing_id != MSG_ROUTING_NONE) { 725 if (params.proxy_routing_id != MSG_ROUTING_NONE) {
726 CHECK(params.swapped_out); 726 CHECK(params.swapped_out);
727 proxy = RenderFrameProxy::CreateProxyToReplaceFrame( 727 proxy = RenderFrameProxy::CreateProxyToReplaceFrame(
728 main_render_frame_.get(), params.proxy_routing_id); 728 main_render_frame_.get(), params.proxy_routing_id);
729 main_render_frame_->set_render_frame_proxy(proxy); 729 main_render_frame_->set_render_frame_proxy(proxy);
730 } 730 }
731 731
732 // This breaks postMessage otherwise.
733 //
734 // The following assumption that we can use the WebRemoteFrame as the
735 // main frame doesn't hold for <webview>, because our top level frame
736 // is the guest's main frame. The proxy that created this WebRemoteFrame
737 // is merely a proxy to the guest and is not part of the frame tree.
738 // TODO(lazyboy): Find a solution here since this breaks regular OOPIF.
739 webview()->setMainFrame(main_render_frame_->GetWebFrame());
740 /*
732 // In --site-per-process, just use the WebRemoteFrame as the main frame. 741 // In --site-per-process, just use the WebRemoteFrame as the main frame.
733 if (command_line.HasSwitch(switches::kSitePerProcess) && proxy) { 742 if (command_line.HasSwitch(switches::kSitePerProcess) && proxy) {
734 webview()->setMainFrame(proxy->web_frame()); 743 webview()->setMainFrame(proxy->web_frame());
735 // Initialize the WebRemoteFrame with information replicated from the 744 // Initialize the WebRemoteFrame with information replicated from the
736 // browser process. 745 // browser process.
737 proxy->SetReplicatedState(params.replicated_frame_state); 746 proxy->SetReplicatedState(params.replicated_frame_state);
738 } else { 747 } else {
739 webview()->setMainFrame(main_render_frame_->GetWebFrame()); 748 webview()->setMainFrame(main_render_frame_->GetWebFrame());
740 } 749 }
750 */
741 main_render_frame_->Initialize(); 751 main_render_frame_->Initialize();
742 752
743 if (switches::IsTouchDragDropEnabled()) 753 if (switches::IsTouchDragDropEnabled())
744 webview()->settings()->setTouchDragDropEnabled(true); 754 webview()->settings()->setTouchDragDropEnabled(true);
745 755
746 if (switches::IsTouchEditingEnabled()) 756 if (switches::IsTouchEditingEnabled())
747 webview()->settings()->setTouchEditingEnabled(true); 757 webview()->settings()->setTouchEditingEnabled(true);
748 758
749 if (!params.frame_name.empty()) 759 if (!params.frame_name.empty())
750 webview()->mainFrame()->setName(params.frame_name); 760 webview()->mainFrame()->setName(params.frame_name);
(...skipping 3049 matching lines...) Expand 10 before | Expand all | Expand 10 after
3800 std::vector<gfx::Size> sizes; 3810 std::vector<gfx::Size> sizes;
3801 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); 3811 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes);
3802 if (!url.isEmpty()) 3812 if (!url.isEmpty())
3803 urls.push_back( 3813 urls.push_back(
3804 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); 3814 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes));
3805 } 3815 }
3806 SendUpdateFaviconURL(urls); 3816 SendUpdateFaviconURL(urls);
3807 } 3817 }
3808 3818
3809 } // namespace content 3819 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698