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

Unified Diff: chrome/browser/browsing_data/browsing_data_media_license_helper.h

Issue 2359393002: Adds media license nodes to cookie tree model and cookies view. (Closed)
Patch Set: rebase Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/browsing_data/browsing_data_media_license_helper.h
diff --git a/chrome/browser/browsing_data/browsing_data_media_license_helper.h b/chrome/browser/browsing_data/browsing_data_media_license_helper.h
new file mode 100644
index 0000000000000000000000000000000000000000..d1cecfd6e4f4c663b44fbc42907e66a385a53ab3
--- /dev/null
+++ b/chrome/browser/browsing_data/browsing_data_media_license_helper.h
@@ -0,0 +1,82 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_MEDIA_LICENSE_HELPER_H_
+#define CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_MEDIA_LICENSE_HELPER_H_
+
+#include <stdint.h>
+#include <list>
+
+#include "base/callback.h"
+#include "base/memory/ref_counted.h"
+#include "base/time/time.h"
+#include "url/gurl.h"
+
+namespace storage {
+class FileSystemContext;
+}
+
+// Defines an interface for classes that deal with aggregating and deleting
+// media licenses.
+// BrowsingDataMediaLicenseHelper instances for a specific profile should
+// be created via the static Create method. Each instance will lazily fetch
+// data when a client calls StartFetching from the UI thread, and will
+// notify the client via a supplied callback when the data is available.
+//
+// The client's callback is passed a list of MediaLicenseInfo objects
+// containing usage information for each origin's media licenses.
+class BrowsingDataMediaLicenseHelper
+ : public base::RefCountedThreadSafe<BrowsingDataMediaLicenseHelper> {
+ public:
+ // Detailed information about a media license, including it's origin GURL
+ // and the amount of data (in bytes).
+ struct MediaLicenseInfo {
+ MediaLicenseInfo(const GURL& origin,
+ int64_t size,
+ base::Time last_modified_time);
+ MediaLicenseInfo(const MediaLicenseInfo& other);
+ ~MediaLicenseInfo();
+
+ // The origin for which the information is relevant.
+ GURL origin;
+ // Size (in bytes).
+ int64_t size;
+ // Last modified time.
+ base::Time last_modified_time;
+ };
+
+ using FetchCallback =
+ base::Callback<void(const std::list<MediaLicenseInfo>&)>;
+
+ // Creates a BrowsingDataMediaLicenseHelper instance for the media
+ // licenses stored in |profile|'s user data directory. The
+ // BrowsingDataMediaLicenseHelper object will hold a reference to the
+ // Profile that's passed in, but is not responsible for destroying it.
+ //
+ // The BrowsingDataMediaLicenseHelper will not change the profile itself,
+ // but can modify data it contains (by removing media licenses).
+ static BrowsingDataMediaLicenseHelper* Create(
+ storage::FileSystemContext* file_system_context);
+
+ // Starts the process of fetching media license data, which will call
+ // |callback| upon completion, passing it a constant list of
+ // MediaLicenseInfo objects. StartFetching must be called only in the UI
+ // thread; the provided Callback will likewise be executed asynchronously
+ // on the UI thread. Obtaining the data will occur asynchronously on the
+ // FILE thread.
+ virtual void StartFetching(const FetchCallback& callback) = 0;
+
+ // Deletes any media licenses associated with |origin| from the disk.
+ // Deletion will occur asynchronously on the FILE thread, but this function
+ // must be called only on the UI thread.
+ virtual void DeleteMediaLicenseOrigin(const GURL& origin) = 0;
+
+ protected:
+ friend class base::RefCountedThreadSafe<BrowsingDataMediaLicenseHelper>;
+
+ BrowsingDataMediaLicenseHelper() {}
+ virtual ~BrowsingDataMediaLicenseHelper() {}
+};
+
+#endif // CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_MEDIA_LICENSE_HELPER_H_

Powered by Google App Engine
This is Rietveld 408576698