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

Side by Side Diff: chrome/browser/cld_helper.cc

Issue 523149: Revert 35735 - Relanding the language detection code.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 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
« no previous file with comments | « chrome/browser/cld_helper.h ('k') | chrome/browser/extensions/extension_tabs_module.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/cld_helper.h"
6
7 #include "chrome/browser/chrome_thread.h"
8 #include "chrome/browser/tab_contents/tab_contents.h"
9 #include "chrome/common/notification_service.h"
10
11 #if defined(OS_WIN)
12 // TODO(port): The compact language detection library works only for Windows.
13 #include "third_party/cld/bar/toolbar/cld/i18n/encodings/compact_lang_det/win/cl d_unicodetext.h"
14 #endif
15
16 CLDHelper::CLDHelper(TabContents* tab_contents, int renderer_process_id,
17 int page_id, const std::wstring& page_content)
18 : tab_contents_(tab_contents),
19 renderer_process_id_(renderer_process_id),
20 page_id_(page_id),
21 page_content_(page_content) {
22 }
23
24 void CLDHelper::DetectLanguage() {
25 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
26
27 // Balanced in DetectionDone.
28 AddRef();
29
30 // Do the actual work on the file thread.
31 ChromeThread::PostTask(ChromeThread::FILE, FROM_HERE,
32 NewRunnableMethod(this, &CLDHelper::DoDetectLanguage));
33 }
34
35 void CLDHelper::CancelLanguageDetection() {
36 tab_contents_ = NULL;
37 }
38
39 void CLDHelper::DoDetectLanguage() {
40 if (!tab_contents_) {
41 // If we have already been canceled, no need to perform the detection.
42 Release(); // Balance AddRef from DetectLanguage().
43 return;
44 }
45
46 #if defined(OS_WIN) // Only for windows.
47 int num_languages = 0;
48 bool is_reliable = false;
49
50 const char* language_iso_code = LanguageCodeISO639_1(
51 DetectLanguageOfUnicodeText(NULL, page_content_.c_str(), true,
52 &is_reliable, &num_languages, NULL));
53 language_ = language_iso_code;
54 #else
55 // TODO(jcampan): port the compact language detection library.
56 NOTIMPLEMENTED();
57 #endif
58
59 // Work is done, notify the RenderViewHost on the UI thread.
60 ChromeThread::PostTask(ChromeThread::UI, FROM_HERE,
61 NewRunnableMethod(this, &CLDHelper::DetectionDone));
62 }
63
64 void CLDHelper::DetectionDone() {
65 if (tab_contents_)
66 tab_contents_->PageLanguageDetected();
67
68 // Remove the ref we added to ourself in DetectLanguage().
69 Release();
70 }
OLDNEW
« no previous file with comments | « chrome/browser/cld_helper.h ('k') | chrome/browser/extensions/extension_tabs_module.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698