1 // Copyright (c) 2012 The Chromium Embedded Framework Authors. All rights 2 // reserved. Use of this source code is governed by a BSD-style license that can 3 // be found in the LICENSE file. 4 5 #include "include/cef_urlrequest.h" 6 #include "libcef/browser/net_service/browser_urlrequest_impl.h" 7 #include "libcef/common/app_manager.h" 8 #include "libcef/common/task_runner_impl.h" 9 #include "libcef/features/runtime_checks.h" 10 11 #include "base/logging.h" 12 #include "base/notreached.h" 13 #include "content/public/common/content_client.h" 14 15 // static Create(CefRefPtr<CefRequest> request,CefRefPtr<CefURLRequestClient> client,CefRefPtr<CefRequestContext> request_context)16CefRefPtr<CefURLRequest> CefURLRequest::Create( 17 CefRefPtr<CefRequest> request, 18 CefRefPtr<CefURLRequestClient> client, 19 CefRefPtr<CefRequestContext> request_context) { 20 if (!request.get() || !client.get()) { 21 NOTREACHED() << "called with invalid parameters"; 22 return nullptr; 23 } 24 25 if (!CefTaskRunnerImpl::GetCurrentTaskRunner()) { 26 NOTREACHED() << "called on invalid thread"; 27 return nullptr; 28 } 29 30 auto content_client = CefAppManager::Get()->GetContentClient(); 31 if (content_client->browser()) { 32 // In the browser process. 33 CefRefPtr<CefBrowserURLRequest> impl = 34 new CefBrowserURLRequest(nullptr, request, client, request_context); 35 if (impl->Start()) 36 return impl.get(); 37 return nullptr; 38 } else { 39 NOTREACHED() << "called in unsupported process"; 40 return nullptr; 41 } 42 } 43