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

Unified Diff: chrome/browser/extensions/component_loader.cc

Issue 141733008: Use incognito split for ChromeVox and TTS in Guest mode (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: added guest manifests for ChromeVox and TTS Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/component_loader.cc
diff --git a/chrome/browser/extensions/component_loader.cc b/chrome/browser/extensions/component_loader.cc
index 0ef7a9f06ac1ebf687cedc88c247795aa21abe19..b27a1306c0db7c2fb3fd6dcf11a1b0cbf140a8d8 100644
--- a/chrome/browser/extensions/component_loader.cc
+++ b/chrome/browser/extensions/component_loader.cc
@@ -335,8 +335,12 @@ void ComponentLoader::AddNetworkSpeechSynthesisExtension() {
#if defined(OS_CHROMEOS)
void ComponentLoader::AddChromeOsSpeechSynthesisExtension() {
- Add(IDR_SPEECH_SYNTHESIS_MANIFEST,
+ const CommandLine* command_line = CommandLine::ForCurrentProcess();
+ int idr = command_line->HasSwitch(chromeos::switches::kGuestSession) ?
+ IDR_SPEECH_SYNTHESIS_GUEST_MANIFEST : IDR_SPEECH_SYNTHESIS_MANIFEST;
+ std::string id = Add(idr,
base::FilePath(extension_misc::kSpeechSynthesisExtensionPath));
+ EnbaleFileSystemInGuestMode(id);
}
#endif
@@ -490,21 +494,7 @@ void ComponentLoader::AddDefaultComponentExtensionsWithBackgroundPages(
chromeos::switches::kDisableQuickofficeComponentApp)) {
std::string id = Add(IDR_QUICKOFFICE_MANIFEST, base::FilePath(
FILE_PATH_LITERAL("/usr/share/chromeos-assets/quick_office")));
- if (command_line->HasSwitch(chromeos::switches::kGuestSession)) {
- // TODO(dpolukhin): Hack to enable HTML5 temporary file system for
- // Quickoffice. It doesn't work without temporary file system access.
- // Make sure temporary file system is enabled in the off the record
- // browser context (as that is the one used in guest session).
- content::BrowserContext* off_the_record_context =
- ExtensionsBrowserClient::Get()->GetOffTheRecordContext(
- browser_context_);
- GURL site = content::SiteInstance::GetSiteForURL(
- off_the_record_context, Extension::GetBaseURLFromExtensionId(id));
- fileapi::FileSystemContext* file_system_context =
- content::BrowserContext::GetStoragePartitionForSite(
- off_the_record_context, site)->GetFileSystemContext();
- file_system_context->EnableTemporaryFileSystemInIncognito();
- }
+ EnbaleFileSystemInGuestMode(id);
}
#endif // defined(GOOGLE_CHROME_BUILD)
@@ -538,9 +528,9 @@ void ComponentLoader::AddDefaultComponentExtensionsWithBackgroundPages(
// Load ChromeVox extension now if spoken feedback is enabled.
if (chromeos::AccessibilityManager::Get() &&
chromeos::AccessibilityManager::Get()->IsSpokenFeedbackEnabled()) {
- base::FilePath path =
- base::FilePath(extension_misc::kChromeVoxExtensionPath);
- Add(IDR_CHROMEVOX_MANIFEST, path);
+ int idr = command_line->HasSwitch(chromeos::switches::kGuestSession) ?
+ IDR_CHROMEVOX_GUEST_MANIFEST : IDR_CHROMEVOX_MANIFEST;
+ Add(idr, base::FilePath(extension_misc::kChromeVoxExtensionPath));
}
#endif // defined(OS_CHROMEOS)
@@ -609,4 +599,25 @@ void ComponentLoader::UnloadComponent(ComponentExtensionInfo* component) {
}
}
+void ComponentLoader::EnbaleFileSystemInGuestMode(const std::string& id) {
+#if defined(OS_CHROMEOS)
+ const CommandLine* command_line = CommandLine::ForCurrentProcess();
+ if (command_line->HasSwitch(chromeos::switches::kGuestSession)) {
+ // TODO(dpolukhin): Hack to enable HTML5 temporary file system for
asargent_no_longer_on_chrome 2014/02/07 00:09:50 Please file a bug to fix this (is this an extensio
Dmitry Polukhin 2014/02/07 00:20:00 It is not extensions issue. Root of the problem th
+ // the extension. Some component extensions don't work without temporary
+ // file system access. Make sure temporary file system is enabled in the off
+ // the record browser context (as that is the one used in guest session).
+ content::BrowserContext* off_the_record_context =
+ ExtensionsBrowserClient::Get()->GetOffTheRecordContext(
+ browser_context_);
+ GURL site = content::SiteInstance::GetSiteForURL(
+ off_the_record_context, Extension::GetBaseURLFromExtensionId(id));
+ fileapi::FileSystemContext* file_system_context =
+ content::BrowserContext::GetStoragePartitionForSite(
+ off_the_record_context, site)->GetFileSystemContext();
+ file_system_context->EnableTemporaryFileSystemInIncognito();
+ }
+#endif
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698