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

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

Issue 6831016: Profile shouldn't own background page stuff. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 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 | 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"
11 #include "base/utf_string_conversions.h" 11 #include "base/utf_string_conversions.h"
12 #include "chrome/browser/background_contents_service.h" 12 #include "chrome/browser/background_contents_service.h"
13 #include "chrome/browser/background_contents_service_factory.h"
13 #include "chrome/browser/character_encoding.h" 14 #include "chrome/browser/character_encoding.h"
14 #include "chrome/browser/extensions/extension_service.h" 15 #include "chrome/browser/extensions/extension_service.h"
15 #include "chrome/browser/gpu_data_manager.h" 16 #include "chrome/browser/gpu_data_manager.h"
16 #include "chrome/browser/prefs/pref_service.h" 17 #include "chrome/browser/prefs/pref_service.h"
17 #include "chrome/browser/prefs/scoped_user_pref_update.h" 18 #include "chrome/browser/prefs/scoped_user_pref_update.h"
18 #include "chrome/browser/profiles/profile.h" 19 #include "chrome/browser/profiles/profile.h"
19 #include "chrome/browser/tab_contents/background_contents.h" 20 #include "chrome/browser/tab_contents/background_contents.h"
20 #include "chrome/browser/user_style_sheet_watcher.h" 21 #include "chrome/browser/user_style_sheet_watcher.h"
21 #include "chrome/common/chrome_switches.h" 22 #include "chrome/common/chrome_switches.h"
22 #include "chrome/common/pref_names.h" 23 #include "chrome/common/pref_names.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 extensions_service->GetExtensionByWebExtent(opener_url); 58 extensions_service->GetExtensionByWebExtent(opener_url);
58 if (!extension) 59 if (!extension)
59 return NULL; 60 return NULL;
60 61
61 // If the extension manifest specifies a background page, then don't allow one 62 // If the extension manifest specifies a background page, then don't allow one
62 // to be created here. 63 // to be created here.
63 if (extension->background_url().is_valid()) 64 if (extension->background_url().is_valid())
64 return NULL; 65 return NULL;
65 66
66 // Only allow a single background contents per app. 67 // Only allow a single background contents per app.
67 if (!profile->GetBackgroundContentsService() || 68 BackgroundContentsService* service =
68 profile->GetBackgroundContentsService()->GetAppBackgroundContents( 69 BackgroundContentsServiceFactory::GetForProfile(profile);
70 if (!service || service->GetAppBackgroundContents(
69 ASCIIToUTF16(extension->id()))) 71 ASCIIToUTF16(extension->id())))
70 return NULL; 72 return NULL;
71 73
72 // Ensure that we're trying to open this from the extension's process. 74 // Ensure that we're trying to open this from the extension's process.
73 ExtensionProcessManager* process_manager = 75 ExtensionProcessManager* process_manager =
74 profile->GetExtensionProcessManager(); 76 profile->GetExtensionProcessManager();
75 if (!site->GetProcess() || !process_manager || 77 if (!site->GetProcess() || !process_manager ||
76 site->GetProcess() != process_manager->GetExtensionProcess(opener_url)) 78 site->GetProcess() != process_manager->GetExtensionProcess(opener_url))
77 return NULL; 79 return NULL;
78 80
79 // Passed all the checks, so this should be created as a BackgroundContents. 81 // Passed all the checks, so this should be created as a BackgroundContents.
80 return profile->GetBackgroundContentsService()->CreateBackgroundContents( 82 return service->CreateBackgroundContents(site, route_id, profile, frame_name,
81 site, route_id, profile, frame_name, ASCIIToUTF16(extension->id())); 83 ASCIIToUTF16(extension->id()));
82 } 84 }
83 85
84 TabContents* RenderViewHostDelegateViewHelper::CreateNewWindow( 86 TabContents* RenderViewHostDelegateViewHelper::CreateNewWindow(
85 int route_id, 87 int route_id,
86 Profile* profile, 88 Profile* profile,
87 SiteInstance* site, 89 SiteInstance* site,
88 WebUI::TypeID webui_type, 90 WebUI::TypeID webui_type,
89 RenderViewHostDelegate* opener, 91 RenderViewHostDelegate* opener,
90 WindowContainerType window_container_type, 92 WindowContainerType window_container_type,
91 const string16& frame_name) { 93 const string16& frame_name) {
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 DictionaryPrefUpdate update(profile->GetPrefs(), 377 DictionaryPrefUpdate update(profile->GetPrefs(),
376 prefs::kWebKitInspectorSettings); 378 prefs::kWebKitInspectorSettings);
377 DictionaryValue* inspector_settings = update.Get(); 379 DictionaryValue* inspector_settings = update.Get();
378 inspector_settings->SetWithoutPathExpansion(key, 380 inspector_settings->SetWithoutPathExpansion(key,
379 Value::CreateStringValue(value)); 381 Value::CreateStringValue(value));
380 } 382 }
381 383
382 void RenderViewHostDelegateHelper::ClearInspectorSettings(Profile* profile) { 384 void RenderViewHostDelegateHelper::ClearInspectorSettings(Profile* profile) {
383 profile->GetPrefs()->ClearPref(prefs::kWebKitInspectorSettings); 385 profile->GetPrefs()->ClearPref(prefs::kWebKitInspectorSettings);
384 } 386 }
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile_impl.cc ('k') | chrome/browser/task_manager/task_manager_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698