OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #import "ios/chrome/browser/voice/text_to_speech_parser.h" | 5 #import "ios/chrome/browser/voice/text_to_speech_parser.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #import "ios/web/public/web_state/js/crw_js_injection_receiver.h" | 8 #import "ios/web/public/web_state/js/crw_js_injection_receiver.h" |
9 #include "ios/web/public/web_state/web_state.h" | 9 #include "ios/web/public/web_state/web_state.h" |
10 #import "third_party/google_toolbox_for_mac/src/Foundation/GTMStringEncoding.h" | 10 #import "third_party/google_toolbox_for_mac/src/Foundation/GTMStringEncoding.h" |
11 | 11 |
| 12 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 13 #error "This file requires ARC support." |
| 14 #endif |
| 15 |
12 namespace { | 16 namespace { |
13 | 17 |
14 // The start and end tags that delimit TTS audio data. | 18 // The start and end tags that delimit TTS audio data. |
15 NSString* const kTTSStartTag = @"function(){var _a_tts='"; | 19 NSString* const kTTSStartTag = @"function(){var _a_tts='"; |
16 NSString* const kTTSEndTag = @"'"; | 20 NSString* const kTTSEndTag = @"'"; |
17 | 21 |
18 // When |kTTSAudioDataExtractorScriptFormat| is evaluated on a Google voice | 22 // When |kTTSAudioDataExtractorScriptFormat| is evaluated on a Google voice |
19 // search results page, this script will extract the innerHTML from the script | 23 // search results page, this script will extract the innerHTML from the script |
20 // element containing TTS data. The format takes one parameter, which is the | 24 // element containing TTS data. The format takes one parameter, which is the |
21 // start tag from the TTS config singleton. | 25 // start tag from the TTS config singleton. |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 DCHECK(webState); | 104 DCHECK(webState); |
101 DCHECK(completion); | 105 DCHECK(completion); |
102 NSString* tts_extraction_script = [NSString | 106 NSString* tts_extraction_script = [NSString |
103 stringWithFormat:kTTSAudioDataExtractorScriptFormat, kTTSStartTag]; | 107 stringWithFormat:kTTSAudioDataExtractorScriptFormat, kTTSStartTag]; |
104 [webState->GetJSInjectionReceiver() | 108 [webState->GetJSInjectionReceiver() |
105 executeJavaScript:tts_extraction_script | 109 executeJavaScript:tts_extraction_script |
106 completionHandler:^(id result, NSError* error) { | 110 completionHandler:^(id result, NSError* error) { |
107 completion(ExtractVoiceSearchAudioDataFromPageHTML(result)); | 111 completion(ExtractVoiceSearchAudioDataFromPageHTML(result)); |
108 }]; | 112 }]; |
109 } | 113 } |
OLD | NEW |