| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 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 | 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 // This code glues the RLZ library DLL with Chrome. It allows Chrome to work | 5 // This code glues the RLZ library DLL with Chrome. It allows Chrome to work |
| 6 // with or without the DLL being present. If the DLL is not present the | 6 // with or without the DLL being present. If the DLL is not present the |
| 7 // functions do nothing and just return false. | 7 // functions do nothing and just return false. |
| 8 | 8 |
| 9 #include "chrome/browser/rlz/rlz.h" | 9 #include "chrome/browser/rlz/rlz.h" |
| 10 | 10 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 ClearAllProductEventsFn clear_all_events = NULL; | 73 ClearAllProductEventsFn clear_all_events = NULL; |
| 74 SendFinancialPingFn send_ping = NULL; | 74 SendFinancialPingFn send_ping = NULL; |
| 75 | 75 |
| 76 template <typename FuncT> | 76 template <typename FuncT> |
| 77 FuncT WireExport(HMODULE module, const char* export_name) { | 77 FuncT WireExport(HMODULE module, const char* export_name) { |
| 78 void* entry_point = ::GetProcAddress(module, export_name); | 78 void* entry_point = ::GetProcAddress(module, export_name); |
| 79 return (module)? reinterpret_cast<FuncT>(entry_point) : NULL; | 79 return (module)? reinterpret_cast<FuncT>(entry_point) : NULL; |
| 80 } | 80 } |
| 81 | 81 |
| 82 HMODULE LoadRLZLibraryInternal(int directory_key) { | 82 HMODULE LoadRLZLibraryInternal(int directory_key) { |
| 83 std::wstring rlz_path; | 83 FilePath rlz_path; |
| 84 if (!PathService::Get(directory_key, &rlz_path)) | 84 if (!PathService::Get(directory_key, &rlz_path)) |
| 85 return NULL; | 85 return NULL; |
| 86 file_util::AppendToPath(&rlz_path, L"rlz.dll"); | 86 rlz_path = rlz_path.AppendASCII("rlz.dll"); |
| 87 return ::LoadLibraryW(rlz_path.c_str()); | 87 return ::LoadLibraryW(rlz_path.value().c_str()); |
| 88 } | 88 } |
| 89 | 89 |
| 90 bool LoadRLZLibrary(int directory_key) { | 90 bool LoadRLZLibrary(int directory_key) { |
| 91 rlz_dll = LoadRLZLibraryInternal(directory_key); | 91 rlz_dll = LoadRLZLibraryInternal(directory_key); |
| 92 if (!rlz_dll) { | 92 if (!rlz_dll) { |
| 93 // As a last resort we can try the EXE directory. | 93 // As a last resort we can try the EXE directory. |
| 94 if (directory_key != base::DIR_EXE) | 94 if (directory_key != base::DIR_EXE) |
| 95 rlz_dll = LoadRLZLibraryInternal(base::DIR_EXE); | 95 rlz_dll = LoadRLZLibraryInternal(base::DIR_EXE); |
| 96 } | 96 } |
| 97 if (rlz_dll) { | 97 if (rlz_dll) { |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 254 // Schedule the daily RLZ ping. | 254 // Schedule the daily RLZ ping. |
| 255 base::Thread* thread = g_browser_process->file_thread(); | 255 base::Thread* thread = g_browser_process->file_thread(); |
| 256 if (thread) | 256 if (thread) |
| 257 thread->message_loop()->PostTask(FROM_HERE, new DailyPingTask()); | 257 thread->message_loop()->PostTask(FROM_HERE, new DailyPingTask()); |
| 258 } | 258 } |
| 259 | 259 |
| 260 private: | 260 private: |
| 261 bool IsGoogleDefaultSearch() { | 261 bool IsGoogleDefaultSearch() { |
| 262 if (!g_browser_process) | 262 if (!g_browser_process) |
| 263 return false; | 263 return false; |
| 264 std::wstring user_data_dir; | 264 FilePath user_data_dir; |
| 265 if (!PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) | 265 if (!PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) |
| 266 return false; | 266 return false; |
| 267 ProfileManager* profile_manager = g_browser_process->profile_manager(); | 267 ProfileManager* profile_manager = g_browser_process->profile_manager(); |
| 268 Profile* profile = profile_manager-> | 268 Profile* profile = profile_manager->GetDefaultProfile(user_data_dir); |
| 269 GetDefaultProfile(FilePath::FromWStringHack(user_data_dir)); | |
| 270 if (!profile) | 269 if (!profile) |
| 271 return false; | 270 return false; |
| 272 const TemplateURL* url_template = | 271 const TemplateURL* url_template = |
| 273 profile->GetTemplateURLModel()->GetDefaultSearchProvider(); | 272 profile->GetTemplateURLModel()->GetDefaultSearchProvider(); |
| 274 if (!url_template) | 273 if (!url_template) |
| 275 return false; | 274 return false; |
| 276 return url_template->url()->HasGoogleBaseURLs(); | 275 return url_template->url()->HasGoogleBaseURLs(); |
| 277 } | 276 } |
| 278 | 277 |
| 279 int directory_key_; | 278 int directory_key_; |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 cached_ommibox_rlz.assign(str_rlz); | 335 cached_ommibox_rlz.assign(str_rlz); |
| 337 } | 336 } |
| 338 *rlz = str_rlz; | 337 *rlz = str_rlz; |
| 339 return true; | 338 return true; |
| 340 } | 339 } |
| 341 | 340 |
| 342 // static | 341 // static |
| 343 void RLZTracker::CleanupRlz() { | 342 void RLZTracker::CleanupRlz() { |
| 344 OmniBoxUsageObserver::DeleteInstance(); | 343 OmniBoxUsageObserver::DeleteInstance(); |
| 345 } | 344 } |
| OLD | NEW |