Index: chrome/browser/translate/translate_manager.cc |
diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc |
index 8a8e645f42b6e6038a24d883ce982b92c85382f1..48b3079e7915ff94c7d34ccb88d73cfe09d96039 100644 |
--- a/chrome/browser/translate/translate_manager.cc |
+++ b/chrome/browser/translate/translate_manager.cc |
@@ -129,6 +129,8 @@ const char* const kTranslateScriptHeader = |
const char* const kReportLanguageDetectionErrorURL = |
"http://translate.google.com/translate_error"; |
+const int kTranslateScriptExpirationDelayMS = 24 * 60 * 60 * 1000; // 1 day. |
+ |
} // namespace |
// static |
@@ -268,6 +270,12 @@ void TranslateManager::OnURLFetchComplete(const URLFetcher* source, |
DCHECK(translate_script_.empty()); |
str.CopyToString(&translate_script_); |
translate_script_ += "\n" + data; |
+ // We'll expire the cached script after some time, to make sure long running |
+ // browsers still get fixes that might get pushed with newer scripts. |
+ MessageLoop::current()->PostDelayedTask(FROM_HERE, |
+ method_factory_.NewRunnableMethod( |
+ &TranslateManager::ClearTranslateScript), |
+ translate_script_expiration_delay_); |
} |
// Process any pending requests. |
@@ -307,6 +315,7 @@ bool TranslateManager::IsShowingTranslateInfobar(TabContents* tab) { |
TranslateManager::TranslateManager() |
: ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)), |
+ translate_script_expiration_delay_(kTranslateScriptExpirationDelayMS), |
translate_script_request_pending_(false) { |
notification_registrar_.Add(this, NotificationType::NAV_ENTRY_COMMITTED, |
NotificationService::AllSources()); |
@@ -371,7 +380,7 @@ void TranslateManager::InitiateTranslation(TabContents* tab, |
// Prompts the user if he/she wants the page translated. |
tab->AddInfoBar(TranslateInfoBarDelegate::CreateDelegate( |
- TranslateInfoBarDelegate::kBeforeTranslate, tab, |
+ TranslateInfoBarDelegate::BEFORE_TRANSLATE, tab, |
page_lang, target_lang)); |
} |
@@ -400,7 +409,7 @@ void TranslateManager::TranslatePage(TabContents* tab_contents, |
// showing (that is the case when the translation was triggered by the |
// "always translate" for example). |
infobar = TranslateInfoBarDelegate::CreateDelegate( |
- TranslateInfoBarDelegate::kTranslating, tab_contents, |
+ TranslateInfoBarDelegate::TRANSLATING, tab_contents, |
source_lang, target_lang); |
ShowInfoBar(tab_contents, infobar); |
} |
@@ -489,7 +498,7 @@ void TranslateManager::PageTranslated(TabContents* tab, |
details->source_language, details->target_language); |
} else { |
infobar = TranslateInfoBarDelegate::CreateDelegate( |
- TranslateInfoBarDelegate::kAfterTranslate, tab, |
+ TranslateInfoBarDelegate::AFTER_TRANSLATE, tab, |
details->source_language, details->target_language); |
} |
ShowInfoBar(tab, infobar); |