| Index: chrome/browser/browsing_data/cookies_tree_model.cc
|
| diff --git a/chrome/browser/browsing_data/cookies_tree_model.cc b/chrome/browser/browsing_data/cookies_tree_model.cc
|
| index 2d713e285209e28ebb0d1eb13376598d6754a151..bfcf2fb8134b18786bd93347f6bb85882bcc2093 100644
|
| --- a/chrome/browser/browsing_data/cookies_tree_model.cc
|
| +++ b/chrome/browser/browsing_data/cookies_tree_model.cc
|
| @@ -144,6 +144,7 @@ bool TypeIsProtected(CookieTreeNode::DetailedInfo::NodeType type) {
|
| case CookieTreeNode::DetailedInfo::TYPE_QUOTA:
|
| case CookieTreeNode::DetailedInfo::TYPE_CHANNEL_ID:
|
| case CookieTreeNode::DetailedInfo::TYPE_FLASH_LSO:
|
| + case CookieTreeNode::DetailedInfo::TYPE_MEDIA_LICENSE:
|
| return false;
|
| default:
|
| break;
|
| @@ -279,6 +280,15 @@ CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitFlashLSO(
|
| return *this;
|
| }
|
|
|
| +CookieTreeNode::DetailedInfo& CookieTreeNode::DetailedInfo::InitMediaLicense(
|
| + const BrowsingDataMediaLicenseHelper::MediaLicenseInfo*
|
| + media_license_info) {
|
| + Init(TYPE_MEDIA_LICENSE);
|
| + this->media_license_info = media_license_info;
|
| + this->origin = media_license_info->origin;
|
| + return *this;
|
| +}
|
| +
|
| ///////////////////////////////////////////////////////////////////////////////
|
| // CookieTreeNode, public:
|
|
|
| @@ -583,6 +593,32 @@ CookieTreeNode::DetailedInfo CookieTreeCacheStorageNode::GetDetailedInfo()
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
| +// CookieTreeMediaLicenseNode, public:
|
| +
|
| +CookieTreeMediaLicenseNode::CookieTreeMediaLicenseNode(
|
| + const std::list<BrowsingDataMediaLicenseHelper::MediaLicenseInfo>::iterator
|
| + media_license_info)
|
| + : CookieTreeNode(base::UTF8ToUTF16(media_license_info->origin.spec())),
|
| + media_license_info_(media_license_info) {}
|
| +
|
| +CookieTreeMediaLicenseNode::~CookieTreeMediaLicenseNode() {}
|
| +
|
| +void CookieTreeMediaLicenseNode::DeleteStoredObjects() {
|
| + LocalDataContainer* container = GetLocalDataContainerForNode(this);
|
| +
|
| + if (container) {
|
| + container->media_license_helper_->DeleteMediaLicenseOrigin(
|
| + media_license_info_->origin);
|
| + container->media_license_info_list_.erase(media_license_info_);
|
| + }
|
| +}
|
| +
|
| +CookieTreeNode::DetailedInfo CookieTreeMediaLicenseNode::GetDetailedInfo()
|
| + const {
|
| + return DetailedInfo().InitMediaLicense(&*media_license_info_);
|
| +}
|
| +
|
| +///////////////////////////////////////////////////////////////////////////////
|
| // CookieTreeRootNode, public:
|
|
|
| CookieTreeRootNode::CookieTreeRootNode(CookiesTreeModel* model)
|
| @@ -749,6 +785,15 @@ CookieTreeFlashLSONode* CookieTreeHostNode::GetOrCreateFlashLSONode(
|
| return flash_lso_child_;
|
| }
|
|
|
| +CookieTreeMediaLicensesNode*
|
| +CookieTreeHostNode::GetOrCreateMediaLicensesNode() {
|
| + if (media_licenses_child_)
|
| + return media_licenses_child_;
|
| + media_licenses_child_ = new CookieTreeMediaLicensesNode();
|
| + AddChildSortedByTitle(base::WrapUnique(media_licenses_child_));
|
| + return media_licenses_child_;
|
| +}
|
| +
|
| void CookieTreeHostNode::CreateContentException(
|
| content_settings::CookieSettings* cookie_settings,
|
| ContentSetting setting) const {
|
| @@ -935,6 +980,18 @@ CookieTreeNode::DetailedInfo CookieTreeFlashLSONode::GetDetailedInfo() const {
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
| +// CookieTreeMediaLicensesNode
|
| +CookieTreeMediaLicensesNode::CookieTreeMediaLicensesNode()
|
| + : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_MEDIA_LICENSES)) {}
|
| +
|
| +CookieTreeMediaLicensesNode::~CookieTreeMediaLicensesNode() {}
|
| +
|
| +CookieTreeNode::DetailedInfo CookieTreeMediaLicensesNode::GetDetailedInfo()
|
| + const {
|
| + return DetailedInfo().Init(DetailedInfo::TYPE_MEDIA_LICENSES);
|
| +}
|
| +
|
| +///////////////////////////////////////////////////////////////////////////////
|
| // ScopedBatchUpdateNotifier
|
| CookiesTreeModel::ScopedBatchUpdateNotifier::ScopedBatchUpdateNotifier(
|
| CookiesTreeModel* model,
|
| @@ -1028,6 +1085,7 @@ int CookiesTreeModel::GetIconIndex(ui::TreeModelNode* node) {
|
| case CookieTreeNode::DetailedInfo::TYPE_FILE_SYSTEM:
|
| case CookieTreeNode::DetailedInfo::TYPE_SERVICE_WORKER:
|
| case CookieTreeNode::DetailedInfo::TYPE_CACHE_STORAGE:
|
| + case CookieTreeNode::DetailedInfo::TYPE_MEDIA_LICENSE:
|
| return DATABASE;
|
| case CookieTreeNode::DetailedInfo::TYPE_QUOTA:
|
| return -1;
|
| @@ -1171,6 +1229,11 @@ void CookiesTreeModel::PopulateFlashLSOInfo(
|
| PopulateFlashLSOInfoWithFilter(container, ¬ifier, base::string16());
|
| }
|
|
|
| +void CookiesTreeModel::PopulateMediaLicenseInfo(LocalDataContainer* container) {
|
| + ScopedBatchUpdateNotifier notifier(this, GetRoot());
|
| + PopulateMediaLicenseInfoWithFilter(container, ¬ifier, base::string16());
|
| +}
|
| +
|
| void CookiesTreeModel::PopulateAppCacheInfoWithFilter(
|
| LocalDataContainer* container,
|
| ScopedBatchUpdateNotifier* notifier,
|
| @@ -1493,6 +1556,33 @@ void CookiesTreeModel::PopulateFlashLSOInfoWithFilter(
|
| }
|
| }
|
|
|
| +void CookiesTreeModel::PopulateMediaLicenseInfoWithFilter(
|
| + LocalDataContainer* container,
|
| + ScopedBatchUpdateNotifier* notifier,
|
| + const base::string16& filter) {
|
| + CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot());
|
| +
|
| + if (container->media_license_info_list_.empty())
|
| + return;
|
| +
|
| + notifier->StartBatchUpdate();
|
| + for (MediaLicenseInfoList::iterator media_license_info =
|
| + container->media_license_info_list_.begin();
|
| + media_license_info != container->media_license_info_list_.end();
|
| + ++media_license_info) {
|
| + GURL origin(media_license_info->origin);
|
| +
|
| + if (filter.empty() || (CookieTreeHostNode::TitleForUrl(origin).find(
|
| + filter) != base::string16::npos)) {
|
| + CookieTreeHostNode* host_node = root->GetOrCreateHostNode(origin);
|
| + CookieTreeMediaLicensesNode* media_licenses_node =
|
| + host_node->GetOrCreateMediaLicensesNode();
|
| + media_licenses_node->AddMediaLicenseNode(
|
| + base::MakeUnique<CookieTreeMediaLicenseNode>(media_license_info));
|
| + }
|
| + }
|
| +}
|
| +
|
| void CookiesTreeModel::SetBatchExpectation(int batches_expected, bool reset) {
|
| batches_expected_ = batches_expected;
|
| if (reset) {
|
|
|