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

Side by Side Diff: chrome/renderer/translate_helper.cc

Issue 9215005: Revert 117824 - Convert use of int ms to TimeDelta in files owned by brettw. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include "chrome/renderer/translate_helper.h" 5 #include "chrome/renderer/translate_helper.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
11 #include "base/utf_string_conversions.h" 11 #include "base/utf_string_conversions.h"
12 #include "chrome/common/chrome_constants.h" 12 #include "chrome/common/chrome_constants.h"
13 #include "chrome/common/render_messages.h" 13 #include "chrome/common/render_messages.h"
14 #include "content/public/renderer/render_view.h" 14 #include "content/public/renderer/render_view.h"
15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" 15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebElement.h" 16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebElement.h"
17 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" 17 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
18 #include "third_party/WebKit/Source/WebKit/chromium/public/WebScriptSource.h" 18 #include "third_party/WebKit/Source/WebKit/chromium/public/WebScriptSource.h"
19 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" 19 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
20 #include "third_party/cld/encodings/compact_lang_det/win/cld_unicodetext.h" 20 #include "third_party/cld/encodings/compact_lang_det/win/cld_unicodetext.h"
21 #include "v8/include/v8.h" 21 #include "v8/include/v8.h"
22 #include "webkit/glue/dom_operations.h" 22 #include "webkit/glue/dom_operations.h"
23 23
24 using WebKit::WebDocument; 24 using WebKit::WebDocument;
25 using WebKit::WebElement; 25 using WebKit::WebElement;
26 using WebKit::WebFrame; 26 using WebKit::WebFrame;
27 using WebKit::WebScriptSource; 27 using WebKit::WebScriptSource;
28 using WebKit::WebString; 28 using WebKit::WebString;
29 using WebKit::WebView; 29 using WebKit::WebView;
30 30
31 // The delay in milliseconds that we'll wait before checking to see if the 31 // The delay in millliseconds that we'll wait before checking to see if the
32 // translate library injected in the page is ready. 32 // translate library injected in the page is ready.
33 static const int kTranslateInitCheckDelayMs = 150; 33 static const int kTranslateInitCheckDelayMs = 150;
34 34
35 // The maximum number of times we'll check to see if the translate library 35 // The maximum number of times we'll check to see if the translate library
36 // injected in the page is ready. 36 // injected in the page is ready.
37 static const int kMaxTranslateInitCheckAttempts = 5; 37 static const int kMaxTranslateInitCheckAttempts = 5;
38 38
39 // The delay we wait in milliseconds before checking whether the translation has 39 // The delay we wait in milliseconds before checking whether the translation has
40 // finished. 40 // finished.
41 static const int kTranslateStatusCheckDelayMs = 400; 41 static const int kTranslateStatusCheckDelayMs = 400;
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 translation_pending_ = false; 332 translation_pending_ = false;
333 333
334 // Notify the browser we are done. 334 // Notify the browser we are done.
335 render_view()->Send(new ChromeViewHostMsg_PageTranslated( 335 render_view()->Send(new ChromeViewHostMsg_PageTranslated(
336 render_view()->GetRoutingId(), render_view()->GetPageId(), 336 render_view()->GetRoutingId(), render_view()->GetPageId(),
337 actual_source_lang, target_lang_, TranslateErrors::NONE)); 337 actual_source_lang, target_lang_, TranslateErrors::NONE));
338 return; 338 return;
339 } 339 }
340 340
341 // The translation is still pending, check again later. 341 // The translation is still pending, check again later.
342 MessageLoop::current()->PostDelayedTask( 342 MessageLoop::current()->PostDelayedTask(FROM_HERE,
343 FROM_HERE,
344 base::Bind(&TranslateHelper::CheckTranslateStatus, 343 base::Bind(&TranslateHelper::CheckTranslateStatus,
345 weak_method_factory_.GetWeakPtr()), 344 weak_method_factory_.GetWeakPtr()),
346 base::TimeDelta::FromMilliseconds( 345 DontDelayTasks() ? 0 : kTranslateStatusCheckDelayMs);
347 DontDelayTasks() ? 0 : kTranslateStatusCheckDelayMs));
348 } 346 }
349 347
350 bool TranslateHelper::ExecuteScript(const std::string& script) { 348 bool TranslateHelper::ExecuteScript(const std::string& script) {
351 WebFrame* main_frame = GetMainFrame(); 349 WebFrame* main_frame = GetMainFrame();
352 if (!main_frame) 350 if (!main_frame)
353 return false; 351 return false;
354 main_frame->executeScript(WebScriptSource(ASCIIToUTF16(script))); 352 main_frame->executeScript(WebScriptSource(ASCIIToUTF16(script)));
355 return true; 353 return true;
356 } 354 }
357 355
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 if (page_id_ != render_view()->GetPageId() || !render_view()->GetWebView()) 394 if (page_id_ != render_view()->GetPageId() || !render_view()->GetWebView())
397 return; 395 return;
398 396
399 if (!IsTranslateLibReady()) { 397 if (!IsTranslateLibReady()) {
400 // The library is not ready, try again later, unless we have tried several 398 // The library is not ready, try again later, unless we have tried several
401 // times unsucessfully already. 399 // times unsucessfully already.
402 if (++count >= kMaxTranslateInitCheckAttempts) { 400 if (++count >= kMaxTranslateInitCheckAttempts) {
403 NotifyBrowserTranslationFailed(TranslateErrors::INITIALIZATION_ERROR); 401 NotifyBrowserTranslationFailed(TranslateErrors::INITIALIZATION_ERROR);
404 return; 402 return;
405 } 403 }
406 MessageLoop::current()->PostDelayedTask( 404 MessageLoop::current()->PostDelayedTask(FROM_HERE,
407 FROM_HERE,
408 base::Bind(&TranslateHelper::TranslatePageImpl, 405 base::Bind(&TranslateHelper::TranslatePageImpl,
409 weak_method_factory_.GetWeakPtr(), count), 406 weak_method_factory_.GetWeakPtr(), count),
410 base::TimeDelta::FromMilliseconds( 407 DontDelayTasks() ? 0 : count * kTranslateInitCheckDelayMs);
411 DontDelayTasks() ? 0 : count * kTranslateInitCheckDelayMs));
412 return; 408 return;
413 } 409 }
414 410
415 if (!StartTranslation()) { 411 if (!StartTranslation()) {
416 NotifyBrowserTranslationFailed(TranslateErrors::TRANSLATION_ERROR); 412 NotifyBrowserTranslationFailed(TranslateErrors::TRANSLATION_ERROR);
417 return; 413 return;
418 } 414 }
419 // Check the status of the translation. 415 // Check the status of the translation.
420 MessageLoop::current()->PostDelayedTask( 416 MessageLoop::current()->PostDelayedTask(FROM_HERE,
421 FROM_HERE,
422 base::Bind(&TranslateHelper::CheckTranslateStatus, 417 base::Bind(&TranslateHelper::CheckTranslateStatus,
423 weak_method_factory_.GetWeakPtr()), 418 weak_method_factory_.GetWeakPtr()),
424 base::TimeDelta::FromMilliseconds( 419 DontDelayTasks() ? 0 : kTranslateStatusCheckDelayMs);
425 DontDelayTasks() ? 0 : kTranslateStatusCheckDelayMs));
426 } 420 }
427 421
428 void TranslateHelper::NotifyBrowserTranslationFailed( 422 void TranslateHelper::NotifyBrowserTranslationFailed(
429 TranslateErrors::Type error) { 423 TranslateErrors::Type error) {
430 translation_pending_ = false; 424 translation_pending_ = false;
431 // Notify the browser there was an error. 425 // Notify the browser there was an error.
432 render_view()->Send(new ChromeViewHostMsg_PageTranslated( 426 render_view()->Send(new ChromeViewHostMsg_PageTranslated(
433 render_view()->GetRoutingId(), page_id_, source_lang_, 427 render_view()->GetRoutingId(), page_id_, source_lang_,
434 target_lang_, error)); 428 target_lang_, error));
435 } 429 }
436 430
437 WebFrame* TranslateHelper::GetMainFrame() { 431 WebFrame* TranslateHelper::GetMainFrame() {
438 WebView* web_view = render_view()->GetWebView(); 432 WebView* web_view = render_view()->GetWebView();
439 if (!web_view) { 433 if (!web_view) {
440 // When the WebView is going away, the render view should have called 434 // When the WebView is going away, the render view should have called
441 // CancelPendingTranslation() which should have stopped any pending work, so 435 // CancelPendingTranslation() which should have stopped any pending work, so
442 // that case should not happen. 436 // that case should not happen.
443 NOTREACHED(); 437 NOTREACHED();
444 return NULL; 438 return NULL;
445 } 439 }
446 return web_view->mainFrame(); 440 return web_view->mainFrame();
447 } 441 }
OLDNEW
« no previous file with comments | « chrome/renderer/net/renderer_net_predictor.cc ('k') | content/browser/browser_child_process_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698