| 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_
 | 
| 
 |