| Index: components/translate/content/browser/data_file_browser_cld_data_provider.cc | 
| diff --git a/components/translate/content/browser/data_file_browser_cld_data_provider.cc b/components/translate/content/browser/data_file_browser_cld_data_provider.cc | 
| index de283b4ed5b0de1d87aab61208424f8a62e8ba2c..18e7b8ea28791cb0b017acb38581eae8a8b4e3e3 100644 | 
| --- a/components/translate/content/browser/data_file_browser_cld_data_provider.cc | 
| +++ b/components/translate/content/browser/data_file_browser_cld_data_provider.cc | 
| @@ -2,16 +2,18 @@ | 
| // Use of this source code is governed by a BSD-style license that can be | 
| // found in the LICENSE file. | 
|  | 
| -#include "data_file_browser_cld_data_provider.h" | 
| +#include "components/translate/content/browser/data_file_browser_cld_data_provider.h" | 
|  | 
| #include "base/basictypes.h" | 
| #include "base/files/file.h" | 
| #include "base/files/file_path.h" | 
| +#include "base/files/file_util.h" | 
| #include "base/lazy_instance.h" | 
| #include "base/logging.h" | 
| #include "base/memory/weak_ptr.h" | 
| #include "base/synchronization/lock.h" | 
| #include "base/task_runner.h" | 
| +#include "components/translate/content/common/cld_data_source.h" | 
| #include "components/translate/content/common/data_file_cld_data_provider_messages.h" | 
| #include "content/public/browser/browser_thread.h" | 
| #include "content/public/browser/render_process_host.h" | 
| @@ -26,8 +28,8 @@ namespace { | 
| // We also track the offset at which the data starts, and its length. | 
| base::FilePath g_cached_filepath;  // guarded by g_file_lock_ | 
| base::File* g_cached_file = NULL;  // guarded by g_file_lock_ | 
| -uint64 g_cached_data_offset = -1;  // guarded by g_file_lock_ | 
| -uint64 g_cached_data_length = -1;  // guarded by g_file_lock_ | 
| +uint64 g_cached_data_offset = 0;  // guarded by g_file_lock_ | 
| +uint64 g_cached_data_length = 0;  // guarded by g_file_lock_ | 
|  | 
| // Guards g_cached_filepath | 
| base::LazyInstance<base::Lock> g_file_lock_; | 
| @@ -35,14 +37,6 @@ base::LazyInstance<base::Lock> g_file_lock_; | 
|  | 
| namespace translate { | 
|  | 
| -// Implementation of the static factory method from BrowserCldDataProvider, | 
| -// hooking up this specific implementation for all of Chromium. | 
| -BrowserCldDataProvider* CreateBrowserCldDataProviderFor( | 
| -    content::WebContents* web_contents) { | 
| -  VLOG(1) << "Creating DataFileBrowserCldDataProvider"; | 
| -  return new DataFileBrowserCldDataProvider(web_contents); | 
| -} | 
| - | 
| void SetCldDataFilePath(const base::FilePath& path) { | 
| VLOG(1) << "Setting CLD data file path to: " << path.value(); | 
| base::AutoLock lock(g_file_lock_.Get()); | 
| @@ -51,12 +45,15 @@ void SetCldDataFilePath(const base::FilePath& path) { | 
| g_cached_filepath = path; | 
| // For sanity, clean these other values up just in case. | 
| g_cached_file = NULL; | 
| -  g_cached_data_length = -1; | 
| -  g_cached_data_offset = -1; | 
| +  g_cached_data_length = 0; | 
| +  g_cached_data_offset = 0; | 
| } | 
|  | 
| base::FilePath GetCldDataFilePath() { | 
| base::AutoLock lock(g_file_lock_.Get()); | 
| +  if (g_cached_filepath.empty()) { | 
| +    g_cached_filepath = translate::CldDataSource::Get()->GetCldDataFilePath(); | 
| +  } | 
| return g_cached_filepath; | 
| } | 
|  | 
| @@ -66,6 +63,7 @@ DataFileBrowserCldDataProvider::DataFileBrowserCldDataProvider( | 
| } | 
|  | 
| DataFileBrowserCldDataProvider::~DataFileBrowserCldDataProvider() { | 
| +  // web_contents_ outlives this object | 
| } | 
|  | 
| bool DataFileBrowserCldDataProvider::OnMessageReceived( | 
| @@ -158,7 +156,7 @@ void DataFileBrowserCldDataProvider::SendCldDataResponseInternal( | 
| } | 
|  | 
| // Data available, respond to the request. | 
| -  const int render_process_handle = render_process_host->GetHandle(); | 
| +  base::ProcessHandle render_process_handle = render_process_host->GetHandle(); | 
| IPC::PlatformFileForTransit ipc_platform_file = | 
| IPC::GetFileHandleForProcess(handle->GetPlatformFile(), | 
| render_process_handle, false); | 
|  |