• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)16 CefRefPtr<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