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

Side by Side Diff: chrome/browser/tab_contents/render_view_host_delegate_helper.cc

Issue 8515027: Define the public version of the browser side RenderProcessHost interface. This interface is not ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 1 month 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/tab_contents/render_view_host_delegate_helper.h" 5 #include "chrome/browser/tab_contents/render_view_host_delegate_helper.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 13 matching lines...) Expand all
24 #include "chrome/browser/profiles/profile.h" 24 #include "chrome/browser/profiles/profile.h"
25 #include "chrome/browser/tab_contents/background_contents.h" 25 #include "chrome/browser/tab_contents/background_contents.h"
26 #include "chrome/browser/user_style_sheet_watcher.h" 26 #include "chrome/browser/user_style_sheet_watcher.h"
27 #include "chrome/common/chrome_switches.h" 27 #include "chrome/common/chrome_switches.h"
28 #include "chrome/common/chrome_view_types.h" 28 #include "chrome/common/chrome_view_types.h"
29 #include "chrome/common/pref_names.h" 29 #include "chrome/common/pref_names.h"
30 #include "content/browser/child_process_security_policy.h" 30 #include "content/browser/child_process_security_policy.h"
31 #include "content/browser/gpu/gpu_data_manager.h" 31 #include "content/browser/gpu/gpu_data_manager.h"
32 #include "content/browser/gpu/gpu_process_host.h" 32 #include "content/browser/gpu/gpu_process_host.h"
33 #include "content/browser/renderer_host/render_view_host.h" 33 #include "content/browser/renderer_host/render_view_host.h"
34 #include "content/browser/renderer_host/render_process_host.h"
35 #include "content/browser/renderer_host/render_widget_fullscreen_host.h" 34 #include "content/browser/renderer_host/render_widget_fullscreen_host.h"
36 #include "content/browser/renderer_host/render_widget_host.h" 35 #include "content/browser/renderer_host/render_widget_host.h"
37 #include "content/browser/renderer_host/render_widget_host_view.h" 36 #include "content/browser/renderer_host/render_widget_host_view.h"
38 #include "content/browser/site_instance.h" 37 #include "content/browser/site_instance.h"
39 #include "content/browser/tab_contents/navigation_details.h" 38 #include "content/browser/tab_contents/navigation_details.h"
40 #include "content/browser/tab_contents/tab_contents.h" 39 #include "content/browser/tab_contents/tab_contents.h"
41 #include "content/browser/tab_contents/tab_contents_delegate.h" 40 #include "content/browser/tab_contents/tab_contents_delegate.h"
42 #include "content/browser/tab_contents/tab_contents_view.h" 41 #include "content/browser/tab_contents/tab_contents_view.h"
43 #include "content/browser/webui/web_ui.h" 42 #include "content/browser/webui/web_ui.h"
44 #include "content/public/browser/notification_service.h" 43 #include "content/public/browser/notification_service.h"
44 #include "content/public/browser/render_process_host.h"
45 #include "content/common/view_messages.h" 45 #include "content/common/view_messages.h"
46 #include "net/base/network_change_notifier.h" 46 #include "net/base/network_change_notifier.h"
47 47
48 namespace { 48 namespace {
49 49
50 // Fills |map| with the per-script font prefs under path |map_name|. 50 // Fills |map| with the per-script font prefs under path |map_name|.
51 void FillFontFamilyMap(const PrefService* prefs, 51 void FillFontFamilyMap(const PrefService* prefs,
52 const char* map_name, 52 const char* map_name,
53 WebPreferences::ScriptFontFamilyMap* map) { 53 WebPreferences::ScriptFontFamilyMap* map) {
54 for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) { 54 for (size_t i = 0; i < prefs::kWebKitScriptsForFontFamilyMapsLength; ++i) {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 111
112 // No BackgroundContents allowed if BackgroundContentsService doesn't exist. 112 // No BackgroundContents allowed if BackgroundContentsService doesn't exist.
113 BackgroundContentsService* service = 113 BackgroundContentsService* service =
114 BackgroundContentsServiceFactory::GetForProfile(profile); 114 BackgroundContentsServiceFactory::GetForProfile(profile);
115 if (!service) 115 if (!service)
116 return NULL; 116 return NULL;
117 117
118 // Ensure that we're trying to open this from the extension's process. 118 // Ensure that we're trying to open this from the extension's process.
119 extensions::ProcessMap* process_map = extensions_service->process_map(); 119 extensions::ProcessMap* process_map = extensions_service->process_map();
120 if (!site->GetProcess() || 120 if (!site->GetProcess() ||
121 !process_map->Contains(extension->id(), site->GetProcess()->id())) { 121 !process_map->Contains(extension->id(), site->GetProcess()->GetID())) {
122 return NULL; 122 return NULL;
123 } 123 }
124 124
125 // Only allow a single background contents per app. If one already exists, 125 // Only allow a single background contents per app. If one already exists,
126 // close it (even if it was specified in the manifest). 126 // close it (even if it was specified in the manifest).
127 BackgroundContents* existing = 127 BackgroundContents* existing =
128 service->GetAppBackgroundContents(ASCIIToUTF16(extension->id())); 128 service->GetAppBackgroundContents(ASCIIToUTF16(extension->id()));
129 if (existing) { 129 if (existing) {
130 DLOG(INFO) << "Closing existing BackgroundContents for " << opener_url; 130 DLOG(INFO) << "Closing existing BackgroundContents for " << opener_url;
131 delete existing; 131 delete existing;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 // TODO(brettw) it seems bogus that we have to call this function on the 182 // TODO(brettw) it seems bogus that we have to call this function on the
183 // newly created object and give it one of its own member variables. 183 // newly created object and give it one of its own member variables.
184 new_view->CreateViewForWidget(new_contents->render_view_host()); 184 new_view->CreateViewForWidget(new_contents->render_view_host());
185 185
186 // Save the created window associated with the route so we can show it later. 186 // Save the created window associated with the route so we can show it later.
187 pending_contents_[route_id] = new_contents->render_view_host(); 187 pending_contents_[route_id] = new_contents->render_view_host();
188 return new_contents; 188 return new_contents;
189 } 189 }
190 190
191 RenderWidgetHostView* RenderViewHostDelegateViewHelper::CreateNewWidget( 191 RenderWidgetHostView* RenderViewHostDelegateViewHelper::CreateNewWidget(
192 int route_id, WebKit::WebPopupType popup_type, RenderProcessHost* process) { 192 int route_id, WebKit::WebPopupType popup_type,
193 content::RenderProcessHost* process) {
193 RenderWidgetHost* widget_host = 194 RenderWidgetHost* widget_host =
194 new RenderWidgetHost(process, route_id); 195 new RenderWidgetHost(process, route_id);
195 RenderWidgetHostView* widget_view = 196 RenderWidgetHostView* widget_view =
196 content::GetContentClient()->browser()->CreateViewForWidget(widget_host); 197 content::GetContentClient()->browser()->CreateViewForWidget(widget_host);
197 // Popups should not get activated. 198 // Popups should not get activated.
198 widget_view->set_popup_type(popup_type); 199 widget_view->set_popup_type(popup_type);
199 // Save the created widget associated with the route so we can show it later. 200 // Save the created widget associated with the route so we can show it later.
200 pending_widget_views_[route_id] = widget_view; 201 pending_widget_views_[route_id] = widget_view;
201 return widget_view; 202 return widget_view;
202 } 203 }
203 204
204 RenderWidgetHostView* 205 RenderWidgetHostView*
205 RenderViewHostDelegateViewHelper::CreateNewFullscreenWidget( 206 RenderViewHostDelegateViewHelper::CreateNewFullscreenWidget(
206 int route_id, RenderProcessHost* process) { 207 int route_id, content::RenderProcessHost* process) {
207 RenderWidgetFullscreenHost* fullscreen_widget_host = 208 RenderWidgetFullscreenHost* fullscreen_widget_host =
208 new RenderWidgetFullscreenHost(process, route_id); 209 new RenderWidgetFullscreenHost(process, route_id);
209 RenderWidgetHostView* widget_view = 210 RenderWidgetHostView* widget_view =
210 content::GetContentClient()->browser()->CreateViewForWidget( 211 content::GetContentClient()->browser()->CreateViewForWidget(
211 fullscreen_widget_host); 212 fullscreen_widget_host);
212 pending_widget_views_[route_id] = widget_view; 213 pending_widget_views_[route_id] = widget_view;
213 return widget_view; 214 return widget_view;
214 } 215 }
215 216
216 TabContents* RenderViewHostDelegateViewHelper::GetCreatedWindow(int route_id) { 217 TabContents* RenderViewHostDelegateViewHelper::GetCreatedWindow(int route_id) {
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 RenderWidgetHostView* widget_host_view = GetCreatedWidget(route_id); 328 RenderWidgetHostView* widget_host_view = GetCreatedWidget(route_id);
328 widget_host_view->InitAsFullscreen(tab_contents->GetRenderWidgetHostView()); 329 widget_host_view->InitAsFullscreen(tab_contents->GetRenderWidgetHostView());
329 widget_host_view->GetRenderWidgetHost()->Init(); 330 widget_host_view->GetRenderWidgetHost()->Init();
330 return widget_host_view; 331 return widget_host_view;
331 } 332 }
332 333
333 // static 334 // static
334 WebPreferences RenderViewHostDelegateHelper::GetWebkitPrefs( 335 WebPreferences RenderViewHostDelegateHelper::GetWebkitPrefs(
335 RenderViewHost* rvh) { 336 RenderViewHost* rvh) {
336 Profile* profile = Profile::FromBrowserContext( 337 Profile* profile = Profile::FromBrowserContext(
337 rvh->process()->browser_context()); 338 rvh->process()->GetBrowserContext());
338 PrefService* prefs = profile->GetPrefs(); 339 PrefService* prefs = profile->GetPrefs();
339 WebPreferences web_prefs; 340 WebPreferences web_prefs;
340 341
341 web_prefs.standard_font_family = 342 web_prefs.standard_font_family =
342 UTF8ToUTF16(prefs->GetString(prefs::kWebKitStandardFontFamily)); 343 UTF8ToUTF16(prefs->GetString(prefs::kWebKitStandardFontFamily));
343 web_prefs.fixed_font_family = 344 web_prefs.fixed_font_family =
344 UTF8ToUTF16(prefs->GetString(prefs::kWebKitFixedFontFamily)); 345 UTF8ToUTF16(prefs->GetString(prefs::kWebKitFixedFontFamily));
345 web_prefs.serif_font_family = 346 web_prefs.serif_font_family =
346 UTF8ToUTF16(prefs->GetString(prefs::kWebKitSerifFontFamily)); 347 UTF8ToUTF16(prefs->GetString(prefs::kWebKitSerifFontFamily));
347 web_prefs.sans_serif_font_family = 348 web_prefs.sans_serif_font_family =
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 web_prefs.default_encoding = 532 web_prefs.default_encoding =
532 CharacterEncoding::GetCanonicalEncodingNameByAliasName( 533 CharacterEncoding::GetCanonicalEncodingNameByAliasName(
533 web_prefs.default_encoding); 534 web_prefs.default_encoding);
534 if (web_prefs.default_encoding.empty()) { 535 if (web_prefs.default_encoding.empty()) {
535 prefs->ClearPref(prefs::kDefaultCharset); 536 prefs->ClearPref(prefs::kDefaultCharset);
536 web_prefs.default_encoding = prefs->GetString(prefs::kDefaultCharset); 537 web_prefs.default_encoding = prefs->GetString(prefs::kDefaultCharset);
537 } 538 }
538 DCHECK(!web_prefs.default_encoding.empty()); 539 DCHECK(!web_prefs.default_encoding.empty());
539 540
540 if (ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( 541 if (ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings(
541 rvh->process()->id())) { 542 rvh->process()->GetID())) {
542 web_prefs.loads_images_automatically = true; 543 web_prefs.loads_images_automatically = true;
543 web_prefs.javascript_enabled = true; 544 web_prefs.javascript_enabled = true;
544 } 545 }
545 546
546 web_prefs.is_online = !net::NetworkChangeNotifier::IsOffline(); 547 web_prefs.is_online = !net::NetworkChangeNotifier::IsOffline();
547 548
548 ExtensionService* service = profile->GetExtensionService(); 549 ExtensionService* service = profile->GetExtensionService();
549 if (service) { 550 if (service) {
550 const Extension* extension = 551 const Extension* extension =
551 service->GetExtensionByURL(rvh->site_instance()->site()); 552 service->GetExtensionByURL(rvh->site_instance()->site());
(...skipping 28 matching lines...) Expand all
580 DictionaryValue* inspector_settings = update.Get(); 581 DictionaryValue* inspector_settings = update.Get();
581 inspector_settings->SetWithoutPathExpansion(key, 582 inspector_settings->SetWithoutPathExpansion(key,
582 Value::CreateStringValue(value)); 583 Value::CreateStringValue(value));
583 } 584 }
584 585
585 void RenderViewHostDelegateHelper::ClearInspectorSettings( 586 void RenderViewHostDelegateHelper::ClearInspectorSettings(
586 content::BrowserContext* browser_context) { 587 content::BrowserContext* browser_context) {
587 Profile::FromBrowserContext(browser_context)->GetPrefs()-> 588 Profile::FromBrowserContext(browser_context)->GetPrefs()->
588 ClearPref(prefs::kWebKitInspectorSettings); 589 ClearPref(prefs::kWebKitInspectorSettings);
589 } 590 }
OLDNEW
« no previous file with comments | « chrome/browser/tab_contents/render_view_host_delegate_helper.h ('k') | chrome/browser/tabs/tab_strip_model.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698