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

Side by Side Diff: content/browser/media/android/media_resource_getter_impl.cc

Issue 193303002: WeakPtr destruction order cleanup: media edition. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 6 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/media/android/media_resource_getter_impl.h" 5 #include "content/browser/media/android/media_resource_getter_impl.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 cookie_store->GetCookiesWithOptionsAsync( 193 cookie_store->GetCookiesWithOptionsAsync(
194 url, net::CookieOptions(), callback); 194 url, net::CookieOptions(), callback);
195 } else { 195 } else {
196 callback.Run(std::string()); 196 callback.Run(std::string());
197 } 197 }
198 } 198 }
199 199
200 MediaResourceGetterImpl::MediaResourceGetterImpl( 200 MediaResourceGetterImpl::MediaResourceGetterImpl(
201 BrowserContext* browser_context, 201 BrowserContext* browser_context,
202 fileapi::FileSystemContext* file_system_context, 202 fileapi::FileSystemContext* file_system_context,
203 int renderer_id, int routing_id) 203 int renderer_id,
204 int routing_id)
204 : browser_context_(browser_context), 205 : browser_context_(browser_context),
205 file_system_context_(file_system_context), 206 file_system_context_(file_system_context),
206 weak_this_(this),
207 renderer_id_(renderer_id), 207 renderer_id_(renderer_id),
208 routing_id_(routing_id) { 208 routing_id_(routing_id),
209 } 209 weak_factory_(this) {}
210 210
211 MediaResourceGetterImpl::~MediaResourceGetterImpl() {} 211 MediaResourceGetterImpl::~MediaResourceGetterImpl() {}
212 212
213 void MediaResourceGetterImpl::GetCookies( 213 void MediaResourceGetterImpl::GetCookies(
214 const GURL& url, const GURL& first_party_for_cookies, 214 const GURL& url, const GURL& first_party_for_cookies,
215 const GetCookieCB& callback) { 215 const GetCookieCB& callback) {
216 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 216 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
217 scoped_refptr<CookieGetterTask> task = new CookieGetterTask( 217 scoped_refptr<CookieGetterTask> task = new CookieGetterTask(
218 browser_context_, renderer_id_, routing_id_); 218 browser_context_, renderer_id_, routing_id_);
219 219
220 GetCookieCB cb = base::Bind(&MediaResourceGetterImpl::GetCookiesCallback, 220 GetCookieCB cb = base::Bind(&MediaResourceGetterImpl::GetCookiesCallback,
221 weak_this_.GetWeakPtr(), callback); 221 weak_factory_.GetWeakPtr(),
222 callback);
222 BrowserThread::PostTask( 223 BrowserThread::PostTask(
223 BrowserThread::IO, 224 BrowserThread::IO,
224 FROM_HERE, 225 FROM_HERE,
225 base::Bind(&CookieGetterTask::RequestCookies, 226 base::Bind(&CookieGetterTask::RequestCookies,
226 task, url, first_party_for_cookies, 227 task, url, first_party_for_cookies,
227 base::Bind(&ReturnResultOnUIThread, cb))); 228 base::Bind(&ReturnResultOnUIThread, cb)));
228 } 229 }
229 230
230 void MediaResourceGetterImpl::GetCookiesCallback( 231 void MediaResourceGetterImpl::GetCookiesCallback(
231 const GetCookieCB& callback, const std::string& cookies) { 232 const GetCookieCB& callback, const std::string& cookies) {
232 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 233 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
233 callback.Run(cookies); 234 callback.Run(cookies);
234 } 235 }
235 236
236 void MediaResourceGetterImpl::GetPlatformPathFromURL( 237 void MediaResourceGetterImpl::GetPlatformPathFromURL(
237 const GURL& url, const GetPlatformPathCB& callback) { 238 const GURL& url, const GetPlatformPathCB& callback) {
238 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 239 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
239 DCHECK(url.SchemeIsFileSystem() || url.SchemeIs(kBlobScheme)); 240 DCHECK(url.SchemeIsFileSystem() || url.SchemeIs(kBlobScheme));
240 241
241 GetPlatformPathCB cb = base::Bind( 242 GetPlatformPathCB cb =
242 &MediaResourceGetterImpl::GetPlatformPathCallback, 243 base::Bind(&MediaResourceGetterImpl::GetPlatformPathCallback,
243 weak_this_.GetWeakPtr(), callback); 244 weak_factory_.GetWeakPtr(),
245 callback);
244 246
245 if (url.SchemeIs(kBlobScheme)) { 247 if (url.SchemeIs(kBlobScheme)) {
246 BrowserThread::PostTask( 248 BrowserThread::PostTask(
247 BrowserThread::IO, 249 BrowserThread::IO,
248 FROM_HERE, 250 FROM_HERE,
249 base::Bind(&RequestPlatformPathFromBlobURL, url, browser_context_, cb)); 251 base::Bind(&RequestPlatformPathFromBlobURL, url, browser_context_, cb));
250 return; 252 return;
251 } 253 }
252 254
253 scoped_refptr<fileapi::FileSystemContext> context(file_system_context_); 255 scoped_refptr<fileapi::FileSystemContext> context(file_system_context_);
(...skipping 19 matching lines...) Expand all
273 FROM_HERE, 275 FROM_HERE,
274 base::Bind(&GetMediaMetadata, url, cookies, user_agent, callback)); 276 base::Bind(&GetMediaMetadata, url, cookies, user_agent, callback));
275 } 277 }
276 278
277 // static 279 // static
278 bool MediaResourceGetterImpl::RegisterMediaResourceGetter(JNIEnv* env) { 280 bool MediaResourceGetterImpl::RegisterMediaResourceGetter(JNIEnv* env) {
279 return RegisterNativesImpl(env); 281 return RegisterNativesImpl(env);
280 } 282 }
281 283
282 } // namespace content 284 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698