summaryrefslogtreecommitdiffstats
path: root/chrome/browser/speech/speech_input_manager.cc
diff options
context:
space:
mode:
authorsatish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-06 20:36:43 +0000
committersatish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-06 20:36:43 +0000
commit96fd9e0e732f69917a6037b195081c3cbd614421 (patch)
tree496fdfca8f2b8c45bd96bfb10f3cf4c4dbfcb7f8 /chrome/browser/speech/speech_input_manager.cc
parent609387ae10880c332c705b6065c664b7f7e00966 (diff)
downloadchromium_src-96fd9e0e732f69917a6037b195081c3cbd614421.zip
chromium_src-96fd9e0e732f69917a6037b195081c3cbd614421.tar.gz
chromium_src-96fd9e0e732f69917a6037b195081c3cbd614421.tar.bz2
If speech input is disabled and we receive IPC calls, terminate the renderer.
BUG=68666 TEST=none Review URL: http://codereview.chromium.org/6128001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70634 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/speech/speech_input_manager.cc')
-rw-r--r--chrome/browser/speech/speech_input_manager.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/chrome/browser/speech/speech_input_manager.cc b/chrome/browser/speech/speech_input_manager.cc
index b370da4..ef7a758 100644
--- a/chrome/browser/speech/speech_input_manager.cc
+++ b/chrome/browser/speech/speech_input_manager.cc
@@ -8,11 +8,14 @@
#include <string>
#include "app/l10n_util.h"
+#include "base/command_line.h"
#include "base/lock.h"
#include "base/ref_counted.h"
#include "base/lazy_instance.h"
+#include "base/threading/thread_restrictions.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/browser_thread.h"
+#include "chrome/common/chrome_switches.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/speech/speech_input_bubble_controller.h"
#include "chrome/browser/speech/speech_recognizer.h"
@@ -150,6 +153,26 @@ SpeechInputManager* SpeechInputManager::Get() {
return g_speech_input_manager_impl.Pointer();
}
+bool SpeechInputManager::IsFeatureEnabled() {
+ bool enabled = true;
+ const CommandLine& command_line = *CommandLine::ForCurrentProcess();
+
+ if (command_line.HasSwitch(switches::kDisableSpeechInput)) {
+ enabled = false;
+#if defined(GOOGLE_CHROME_BUILD)
+ } else if (!command_line.HasSwitch(switches::kEnableSpeechInput)) {
+ // We need to evaluate whether IO is OK here. http://crbug.com/63335.
+ base::ThreadRestrictions::ScopedAllowIO allow_io;
+ // Official Chrome builds have speech input enabled by default only in the
+ // dev channel.
+ std::string channel = platform_util::GetVersionStringModifier();
+ enabled = (channel == "dev");
+#endif
+ }
+
+ return enabled;
+}
+
SpeechInputManagerImpl::SpeechInputManagerImpl()
: recording_caller_id_(0),
bubble_controller_(new SpeechInputBubbleController(