Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 (function() { | 5 (function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 cr.define('cr.translateInternals', function() { | 8 cr.define('cr.translateInternals', function() { |
| 9 | 9 |
| 10 var detectionLogs_ = null; | |
|
Evan Stade
2013/05/23 16:48:58
docs
| |
| 11 | |
| 12 function detectionLogs() { | |
| 13 if (detectionLogs_ === null) | |
| 14 detectionLogs_ = []; | |
| 15 return detectionLogs_; | |
| 16 } | |
| 17 | |
| 10 /** | 18 /** |
| 11 * Initializes UI and sends a message to the browser for | 19 * Initializes UI and sends a message to the browser for |
| 12 * initialization. | 20 * initialization. |
| 13 */ | 21 */ |
| 14 function initialize() { | 22 function initialize() { |
| 15 cr.ui.decorate('tabbox', cr.ui.TabBox); | 23 cr.ui.decorate('tabbox', cr.ui.TabBox); |
| 16 chrome.send('requestInfo'); | 24 chrome.send('requestInfo'); |
| 25 | |
| 26 var button = $('detection-logs-dump'); | |
| 27 button.addEventListener('click', onDetectionLogsDump); | |
| 17 } | 28 } |
| 18 | 29 |
| 19 /** | 30 /** |
| 20 * Creates a new LI element with a button to dismiss the item. | 31 * Creates a new LI element with a button to dismiss the item. |
| 21 * | 32 * |
| 22 * @param {string} text The lable of the LI element. | 33 * @param {string} text The lable of the LI element. |
| 23 * @param {Function} func Callback called when the button is clicked. | 34 * @param {Function} func Callback called when the button is clicked. |
| 24 */ | 35 */ |
| 25 function createLIWithDismissingButton(text, func) { | 36 function createLIWithDismissingButton(text, func) { |
| 26 var span = document.createElement('span'); | 37 var span = document.createElement('span'); |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 178 return td; | 189 return td; |
| 179 } | 190 } |
| 180 | 191 |
| 181 /** | 192 /** |
| 182 * Handles the message of 'languageDetectionInfoAdded' from the | 193 * Handles the message of 'languageDetectionInfoAdded' from the |
| 183 * browser. | 194 * browser. |
| 184 * | 195 * |
| 185 * @param {Object} detail The object which represents the logs. | 196 * @param {Object} detail The object which represents the logs. |
| 186 */ | 197 */ |
| 187 function onLanguageDetectionInfoAdded(detail) { | 198 function onLanguageDetectionInfoAdded(detail) { |
| 199 cr.translateInternals.detectionLogs().push(detail); | |
| 200 | |
| 188 var tr = document.createElement('tr'); | 201 var tr = document.createElement('tr'); |
| 189 | 202 |
| 190 var date = new Date(detail['time']); | 203 var date = new Date(detail['time']); |
| 191 [ | 204 [ |
| 192 createTD(formatDate(date), 'detection-logs-time'), | 205 createTD(formatDate(date), 'detection-logs-time'), |
| 193 createTD(detail['url'], 'detection-logs-url'), | 206 createTD(detail['url'], 'detection-logs-url'), |
| 194 createTD(formatLanguageCode(detail['content_language']), | 207 createTD(formatLanguageCode(detail['content_language']), |
| 195 'detection-logs-content-language'), | 208 'detection-logs-content-language'), |
| 196 createTD(formatLanguageCode(detail['cld_language']), | 209 createTD(formatLanguageCode(detail['cld_language']), |
| 197 'detection-logs-cld-language'), | 210 'detection-logs-cld-language'), |
| 198 createTD(detail['is_cld_reliable'], | 211 createTD(detail['is_cld_reliable'], |
| 199 'detection-logs-is-cld-reliable'), | 212 'detection-logs-is-cld-reliable'), |
| 200 createTD(formatLanguageCode(detail['language']), | 213 createTD(formatLanguageCode(detail['language']), |
| 201 'detection-logs-language'), | 214 'detection-logs-language'), |
| 215 createTD(formatLanguageCode(detail['content']), | |
| 216 'detection-logs-content'), | |
| 202 ].forEach(function(td) { | 217 ].forEach(function(td) { |
| 203 tr.appendChild(td); | 218 tr.appendChild(td); |
| 204 }); | 219 }); |
| 205 | 220 |
| 221 // TD (and TR) can't use the CSS property 'max-height', so DIV | |
| 222 // in the content is needed. | |
| 223 var contentTD = tr.querySelector('.detection-logs-content'); | |
| 224 var div = document.createElement('div'); | |
| 225 div.textContent = contentTD.textContent; | |
| 226 contentTD.textContent = ''; | |
| 227 contentTD.appendChild(div); | |
| 228 | |
| 206 var tbody = $('detection-logs').getElementsByTagName('tbody')[0]; | 229 var tbody = $('detection-logs').getElementsByTagName('tbody')[0]; |
| 207 tbody.appendChild(tr); | 230 tbody.appendChild(tr); |
| 208 } | 231 } |
| 209 | 232 |
| 210 /** | 233 /** |
| 211 * The callback entry point from the browser. This function will be | 234 * The callback entry point from the browser. This function will be |
| 212 * called by the browser. | 235 * called by the browser. |
| 213 * | 236 * |
| 214 * @param {string} message The name of the sent message. | 237 * @param {string} message The name of the sent message. |
| 215 * @param {Object} detail The argument of the sent message. | 238 * @param {Object} detail The argument of the sent message. |
| 216 */ | 239 */ |
| 217 function messageHandler(message, detail) { | 240 function messageHandler(message, detail) { |
| 218 switch (message) { | 241 switch (message) { |
| 219 case 'languageDetectionInfoAdded': | 242 case 'languageDetectionInfoAdded': |
| 220 cr.translateInternals.onLanguageDetectionInfoAdded(detail); | 243 cr.translateInternals.onLanguageDetectionInfoAdded(detail); |
| 221 break; | 244 break; |
| 222 case 'prefsUpdated': | 245 case 'prefsUpdated': |
| 223 cr.translateInternals.onPrefsUpdated(detail); | 246 cr.translateInternals.onPrefsUpdated(detail); |
| 224 break; | 247 break; |
| 225 default: | 248 default: |
| 226 console.error('Unknown message:', message); | 249 console.error('Unknown message:', message); |
| 227 break; | 250 break; |
| 228 } | 251 } |
| 229 } | 252 } |
| 230 | 253 |
| 254 /** | |
| 255 * The callback of button#detetion-logs-dump. | |
| 256 */ | |
| 257 function onDetectionLogsDump() { | |
| 258 var data = JSON.stringify(cr.translateInternals.detectionLogs()); | |
| 259 var blob = new Blob([data], {'type': 'text/json'}); | |
| 260 var url = webkitURL.createObjectURL(blob); | |
| 261 var filename = 'translate_internals_detect_logs_dump.json'; | |
| 262 | |
| 263 var a = document.createElement('a'); | |
| 264 a.setAttribute('href', url); | |
| 265 a.setAttribute('download', filename); | |
| 266 | |
| 267 var event = document.createEvent('MouseEvent'); | |
| 268 event.initMouseEvent('click', true, true, window, 0, | |
| 269 0, 0, 0, 0, 0, 0, 0, 0, 0, null); | |
| 270 a.dispatchEvent(event); | |
| 271 } | |
| 272 | |
| 231 return { | 273 return { |
| 274 detectionLogs: detectionLogs, | |
| 232 initialize: initialize, | 275 initialize: initialize, |
| 233 messageHandler: messageHandler, | 276 messageHandler: messageHandler, |
| 234 onLanguageDetectionInfoAdded: onLanguageDetectionInfoAdded, | 277 onLanguageDetectionInfoAdded: onLanguageDetectionInfoAdded, |
| 235 onPrefsUpdated: onPrefsUpdated, | 278 onPrefsUpdated: onPrefsUpdated, |
| 236 }; | 279 }; |
| 237 }); | 280 }); |
| 238 | 281 |
| 239 /** | 282 /** |
| 240 * The entry point of the UI. | 283 * The entry point of the UI. |
| 241 */ | 284 */ |
| 242 function main() { | 285 function main() { |
| 243 cr.doc.addEventListener('DOMContentLoaded', | 286 cr.doc.addEventListener('DOMContentLoaded', |
| 244 cr.translateInternals.initialize); | 287 cr.translateInternals.initialize); |
| 245 } | 288 } |
| 246 | 289 |
| 247 main(); | 290 main(); |
| 248 })(); | 291 })(); |
| OLD | NEW |