summaryrefslogtreecommitdiff
path: root/chromium/components/image_fetcher
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/image_fetcher')
-rw-r--r--chromium/components/image_fetcher/BUILD.gn3
-rw-r--r--chromium/components/image_fetcher/DEPS3
-rw-r--r--chromium/components/image_fetcher/image_data_fetcher.cc12
-rw-r--r--chromium/components/image_fetcher/image_data_fetcher.h8
-rw-r--r--chromium/components/image_fetcher/image_fetcher.h7
-rw-r--r--chromium/components/image_fetcher/image_fetcher_impl.cc5
-rw-r--r--chromium/components/image_fetcher/image_fetcher_impl.h3
7 files changed, 39 insertions, 2 deletions
diff --git a/chromium/components/image_fetcher/BUILD.gn b/chromium/components/image_fetcher/BUILD.gn
index 19063d0f865..cd60562577b 100644
--- a/chromium/components/image_fetcher/BUILD.gn
+++ b/chromium/components/image_fetcher/BUILD.gn
@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-source_set("image_fetcher") {
+static_library("image_fetcher") {
sources = [
"image_data_fetcher.cc",
"image_data_fetcher.h",
@@ -15,6 +15,7 @@ source_set("image_fetcher") {
public_deps = [
"//base",
+ "//components/data_use_measurement/core",
"//net",
"//url",
]
diff --git a/chromium/components/image_fetcher/DEPS b/chromium/components/image_fetcher/DEPS
index 31148e3f08c..a07acff5466 100644
--- a/chromium/components/image_fetcher/DEPS
+++ b/chromium/components/image_fetcher/DEPS
@@ -1,4 +1,5 @@
include_rules = [
- "+url",
+ "+components/data_use_measurement/core",
"+net",
+ "+url",
]
diff --git a/chromium/components/image_fetcher/image_data_fetcher.cc b/chromium/components/image_fetcher/image_data_fetcher.cc
index 2100fb5472c..318e755ce65 100644
--- a/chromium/components/image_fetcher/image_data_fetcher.cc
+++ b/chromium/components/image_fetcher/image_data_fetcher.cc
@@ -11,6 +11,8 @@
#include "net/url_request/url_request_status.h"
#include "url/gurl.h"
+using data_use_measurement::DataUseUserData;
+
namespace image_fetcher {
// An active image URL fetcher request. The struct contains the related requests
@@ -33,16 +35,26 @@ struct ImageDataFetcher::ImageDataFetcherRequest {
ImageDataFetcher::ImageDataFetcher(
net::URLRequestContextGetter* url_request_context_getter)
: url_request_context_getter_(url_request_context_getter),
+ data_use_service_name_(DataUseUserData::NOT_TAGGED),
next_url_fetcher_id_(0) {}
ImageDataFetcher::~ImageDataFetcher() {}
+void ImageDataFetcher::SetDataUseServiceName(
+ DataUseServiceName data_use_service_name) {
+ data_use_service_name_ = data_use_service_name;
+}
+
void ImageDataFetcher::FetchImageData(
const GURL& url, const ImageDataFetcherCallback& callback) {
std::unique_ptr<net::URLFetcher> url_fetcher =
net::URLFetcher::Create(
next_url_fetcher_id_++, url, net::URLFetcher::GET, this);
+ if (data_use_service_name_ != DataUseUserData::NOT_TAGGED) {
+ DataUseUserData::AttachToFetcher(url_fetcher.get(), data_use_service_name_);
+ }
+
std::unique_ptr<ImageDataFetcherRequest> request(
new ImageDataFetcherRequest(callback, std::move(url_fetcher)));
request->url_fetcher->SetRequestContext(url_request_context_getter_.get());
diff --git a/chromium/components/image_fetcher/image_data_fetcher.h b/chromium/components/image_fetcher/image_data_fetcher.h
index 94432311f34..92c5a5cf0dc 100644
--- a/chromium/components/image_fetcher/image_data_fetcher.h
+++ b/chromium/components/image_fetcher/image_data_fetcher.h
@@ -12,6 +12,7 @@
#include "base/callback.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
+#include "components/data_use_measurement/core/data_use_user_data.h"
#include "net/url_request/url_fetcher_delegate.h"
#include "url/gurl.h"
@@ -27,10 +28,15 @@ class ImageDataFetcher : public net::URLFetcherDelegate {
using ImageDataFetcherCallback =
base::Callback<void(const std::string& image_data)>;
+ using DataUseServiceName = data_use_measurement::DataUseUserData::ServiceName;
+
explicit ImageDataFetcher(
net::URLRequestContextGetter* url_request_context_getter);
~ImageDataFetcher() override;
+ // Sets a service name against which to track data usage.
+ void SetDataUseServiceName(DataUseServiceName data_use_service_name);
+
// Fetches the raw image bytes from the given |image_url| and calls the given
// |callback|. The callback is run even if fetching the URL fails. In case
// of an error an empty string is passed to the callback.
@@ -49,6 +55,8 @@ class ImageDataFetcher : public net::URLFetcherDelegate {
scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_;
+ DataUseServiceName data_use_service_name_;
+
// The next ID to use for a newly created URLFetcher. Each URLFetcher gets an
// id when it is created. The |url_fetcher_id_| is incremented by one for each
// newly created URLFetcher. The URLFetcher ID can be used during testing to
diff --git a/chromium/components/image_fetcher/image_fetcher.h b/chromium/components/image_fetcher/image_fetcher.h
index f6d380f8492..69836385acf 100644
--- a/chromium/components/image_fetcher/image_fetcher.h
+++ b/chromium/components/image_fetcher/image_fetcher.h
@@ -9,6 +9,7 @@
#include "base/callback.h"
#include "base/macros.h"
+#include "components/data_use_measurement/core/data_use_user_data.h"
#include "components/image_fetcher/image_fetcher_delegate.h"
#include "url/gurl.h"
@@ -25,8 +26,14 @@ class ImageFetcher {
ImageFetcher() {}
virtual ~ImageFetcher() {}
+ using DataUseServiceName = data_use_measurement::DataUseUserData::ServiceName;
+
virtual void SetImageFetcherDelegate(ImageFetcherDelegate* delegate) = 0;
+ // Sets a service name against which to track data usage.
+ virtual void SetDataUseServiceName(
+ DataUseServiceName data_use_service_name) = 0;
+
// An empty gfx::Image will be returned to the callback in case the image
// could not be fetched.
virtual void StartOrQueueNetworkRequest(
diff --git a/chromium/components/image_fetcher/image_fetcher_impl.cc b/chromium/components/image_fetcher/image_fetcher_impl.cc
index a40059bf07c..d260b2cdd2a 100644
--- a/chromium/components/image_fetcher/image_fetcher_impl.cc
+++ b/chromium/components/image_fetcher/image_fetcher_impl.cc
@@ -34,6 +34,11 @@ void ImageFetcherImpl::SetImageFetcherDelegate(ImageFetcherDelegate* delegate) {
delegate_ = delegate;
}
+void ImageFetcherImpl::SetDataUseServiceName(
+ DataUseServiceName data_use_service_name) {
+ image_data_fetcher_->SetDataUseServiceName(data_use_service_name);
+}
+
void ImageFetcherImpl::StartOrQueueNetworkRequest(
const std::string& id,
const GURL& image_url,
diff --git a/chromium/components/image_fetcher/image_fetcher_impl.h b/chromium/components/image_fetcher/image_fetcher_impl.h
index 86334301f66..05856e8b8fd 100644
--- a/chromium/components/image_fetcher/image_fetcher_impl.h
+++ b/chromium/components/image_fetcher/image_fetcher_impl.h
@@ -42,6 +42,9 @@ class ImageFetcherImpl : public image_fetcher::ImageFetcher {
// responsibility to ensure this.
void SetImageFetcherDelegate(ImageFetcherDelegate* delegate) override;
+ // Sets a service name against which to track data usage.
+ void SetDataUseServiceName(DataUseServiceName data_use_service_name) override;
+
void StartOrQueueNetworkRequest(
const std::string& id,
const GURL& image_url,