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

Side by Side Diff: content/renderer/image_downloader/single_image_downloader.cc

Issue 2538853002: Media Remoting: Draw remoting interstitial on poster image. (Closed)
Patch Set: Addressed comments. Created 4 years 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/renderer/image_downloader/single_image_downloader.h"
6
7 #include "base/bind.h"
8 #include "base/logging.h"
9
10 namespace content {
11
12 // Static
13 void SingleImageDownloader::DownloadImage(
14 const base::WeakPtr<RenderFrame>& render_frame,
15 const GURL& url,
16 const DownloadImageCallback& cb) {
17 if (cb.is_null())
miu 2016/12/03 01:05:31 Should be DCHECK().
xjz 2016/12/06 19:50:55 Done.
18 return;
19
20 if (!render_frame)
21 cb.Run(SkBitmap());
miu 2016/12/03 01:05:31 ditto: Should be DCHECK().
xjz 2016/12/06 19:50:55 Done.
22
23 // Will request to download the image and run |cb| when done. This will be
24 // self-destructed after done or when |this| is destructed.
25 new SingleImageDownloader(render_frame.get(), url, false, false, cb);
26 }
27
28 SingleImageDownloader::SingleImageDownloader(
29 RenderFrame* render_frame,
30 const GURL& url,
31 bool is_favicon,
32 bool bypass_cache,
33 const DownloadImageCallback& callback)
34 : RenderFrameObserver(render_frame), image_downloader_(render_frame) {
35 DCHECK(render_frame);
36 DCHECK(callback);
37 image_downloader_.DownloadImage(
38 url, is_favicon, bypass_cache,
39 base::Bind(&SingleImageDownloader::DidDownloadImage,
40 base::Unretained(this), callback));
41 }
42
43 SingleImageDownloader::~SingleImageDownloader() {}
44
45 void SingleImageDownloader::DidDownloadImage(
46 const DownloadImageCallback& callback,
47 int http_status_code,
48 const std::vector<SkBitmap>& images) {
49 DCHECK(callback);
50 callback.Run(images[0]);
miu 2016/12/03 01:05:31 Can the |images| vector ever be empty? How about:
xjz 2016/12/06 19:50:55 Done.
51 delete this;
52 }
53
54 void SingleImageDownloader::OnDestruct() {
55 delete this;
miu 2016/12/03 01:05:30 This second path-to-delete is dangerous and could
xjz 2016/12/06 19:50:55 I don't think this will cause duplicated delete. T
xjz 2016/12/06 23:58:17 Now after making ImageDownloaderBase run callbacks
56 }
57
58 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698