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

Unified Diff: chrome/common/extensions/docs/examples/extensions/speak_selection/content_script.js

Issue 8114011: Add sample extensions that use the text-to-speech (TTS) API. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 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/common/extensions/docs/examples/extensions/speak_selection/content_script.js
===================================================================
--- chrome/common/extensions/docs/examples/extensions/speak_selection/content_script.js (revision 0)
+++ chrome/common/extensions/docs/examples/extensions/speak_selection/content_script.js (revision 0)
@@ -0,0 +1,50 @@
+var speakKeyStr;
+
+function speakSelection() {
+ var focused = document.activeElement;
+ var selectedText;
+ if (focused) {
+ try {
+ selectedText = focused.value.substring(
+ focused.selectionStart, focused.selectionEnd);
+ } catch (err) {
+ }
+ }
+ if (selectedText == undefined) {
+ var sel = window.getSelection();
+ var selectedText = sel.toString();
+ }
+ chrome.extension.sendRequest({'speak': selectedText});
+}
+
+function onExtensionMessage(request) {
+ if (request['speakSelection'] != undefined) {
+ if (!document.hasFocus()) {
+ return;
+ }
+ speakSelection();
+ } else if (request['key'] != undefined) {
+ speakKeyStr = request['key'];
+ }
+}
+
+function initContentScript() {
+ chrome.extension.onRequest.addListener(onExtensionMessage);
+ chrome.extension.sendRequest({'init': true}, onExtensionMessage);
+
+ document.addEventListener('keydown', function(evt) {
+ if (!document.hasFocus()) {
+ return true;
+ }
+ var keyStr = keyEventToString(evt);
+ if (keyStr == speakKeyStr && speakKeyStr.length > 0) {
+ speakSelection();
+ evt.stopPropagation();
+ evt.preventDefault();
+ return false;
+ }
+ return true;
+ }, false);
+}
+
+initContentScript();
Property changes on: chrome/common/extensions/docs/examples/extensions/speak_selection/content_script.js
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698