Chromium Code Reviews| Index: components/offline_pages/offline_page_model.cc |
| diff --git a/components/offline_pages/offline_page_model.cc b/components/offline_pages/offline_page_model.cc |
| index 8c2e652c5f8e192094ba0a239e5d1891e32e6151..74590685e518988a353173c16fed1393db3dae01 100644 |
| --- a/components/offline_pages/offline_page_model.cc |
| +++ b/components/offline_pages/offline_page_model.cc |
| @@ -11,6 +11,7 @@ |
| #include "base/files/file_util.h" |
| #include "base/location.h" |
| #include "base/logging.h" |
| +#include "base/memory/weak_ptr.h" |
|
fgorski
2016/05/13 17:49:18
this is already in .h file.
|
| #include "base/metrics/histogram_macros.h" |
| #include "base/optional.h" |
| #include "base/rand_util.h" |
| @@ -22,6 +23,8 @@ |
| #include "components/offline_pages/offline_page_item.h" |
| #include "components/offline_pages/offline_page_storage_manager.h" |
| #include "components/offline_pages/proto/offline_pages.pb.h" |
| +#include "components/rappor/rappor_service.h" |
| +#include "components/rappor/rappor_utils.h" |
| #include "url/gurl.h" |
| using ArchiverResult = offline_pages::OfflinePageArchiver::ArchiverResult; |
| @@ -105,6 +108,16 @@ void EnsureArchivesDirCreated(const base::FilePath& archives_dir) { |
| CHECK(base::CreateDirectory(archives_dir)); |
| } |
| +// Record a sample for the OfflinePages.SavedPage rappor metric. |
| +void SampleOfflinePageURL( |
| + const GURL& url, |
| + const base::WeakPtr<rappor::RapporService>& rappor_service) { |
| + if (rappor_service && url.is_valid()) { |
| + rappor::SampleDomainAndRegistryFromGURL(rappor_service.get(), |
| + "OfflinePages.SavedPage", url); |
| + } |
| +} |
| + |
| } // namespace |
| // static |
| @@ -119,6 +132,7 @@ OfflinePageModel::OfflinePageModel() |
| OfflinePageModel::OfflinePageModel( |
| std::unique_ptr<OfflinePageMetadataStore> store, |
| const base::FilePath& archives_dir, |
| + base::WeakPtr<rappor::RapporService> rappor_service, |
| const scoped_refptr<base::SequencedTaskRunner>& task_runner) |
| : store_(std::move(store)), |
| archives_dir_(archives_dir), |
| @@ -126,6 +140,7 @@ OfflinePageModel::OfflinePageModel( |
| task_runner_(task_runner), |
| policy_controller_(new ClientPolicyController()), |
| storage_manager_(new OfflinePageStorageManager(this)), |
| + rappor_service_(rappor_service), |
| weak_ptr_factory_(this) { |
| task_runner_->PostTaskAndReply( |
| FROM_HERE, base::Bind(EnsureArchivesDirCreated, archives_dir_), |
| @@ -159,6 +174,8 @@ void OfflinePageModel::SavePage(const GURL& url, |
| DCHECK(archiver.get()); |
| + SampleOfflinePageURL(url, rappor_service_); |
| + |
| int64_t offline_id = GenerateOfflineId(); |
| archiver->CreateArchive( |