summaryrefslogtreecommitdiff
path: root/libcef/common/urlrequest_impl.cc
diff options
context:
space:
mode:
authorInna Palant <ipalant@google.com>2023-12-12 19:56:22 -0800
committerInna Palant <ipalant@google.com>2023-12-12 19:56:22 -0800
commit1ee1f36e3b492d7a6a0bf2367fe509365853aeaa (patch)
treea5790e155ff0d998639beb6172dfa0feb294aac9 /libcef/common/urlrequest_impl.cc
parent1e76199e6f0ded437fca14eb9e512e0c6bd0fc1e (diff)
parentc33b736614ef77e4048cee551999a656a5ef465f (diff)
downloadcef-main.tar.gz
Merge remote-tracking branch 'origin/upstream'main
Import b/312293934
Diffstat (limited to 'libcef/common/urlrequest_impl.cc')
-rw-r--r--libcef/common/urlrequest_impl.cc43
1 files changed, 43 insertions, 0 deletions
diff --git a/libcef/common/urlrequest_impl.cc b/libcef/common/urlrequest_impl.cc
new file mode 100644
index 00000000..98688975
--- /dev/null
+++ b/libcef/common/urlrequest_impl.cc
@@ -0,0 +1,43 @@
+// Copyright (c) 2012 The Chromium Embedded Framework Authors. All rights
+// reserved. Use of this source code is governed by a BSD-style license that can
+// be found in the LICENSE file.
+
+#include "include/cef_urlrequest.h"
+#include "libcef/browser/net_service/browser_urlrequest_impl.h"
+#include "libcef/common/app_manager.h"
+#include "libcef/common/task_runner_impl.h"
+#include "libcef/features/runtime_checks.h"
+
+#include "base/logging.h"
+#include "base/notreached.h"
+#include "content/public/common/content_client.h"
+
+// static
+CefRefPtr<CefURLRequest> CefURLRequest::Create(
+ CefRefPtr<CefRequest> request,
+ CefRefPtr<CefURLRequestClient> client,
+ CefRefPtr<CefRequestContext> request_context) {
+ if (!request.get() || !client.get()) {
+ NOTREACHED() << "called with invalid parameters";
+ return nullptr;
+ }
+
+ if (!CefTaskRunnerImpl::GetCurrentTaskRunner()) {
+ NOTREACHED() << "called on invalid thread";
+ return nullptr;
+ }
+
+ auto content_client = CefAppManager::Get()->GetContentClient();
+ if (content_client->browser()) {
+ // In the browser process.
+ CefRefPtr<CefBrowserURLRequest> impl =
+ new CefBrowserURLRequest(nullptr, request, client, request_context);
+ if (impl->Start()) {
+ return impl.get();
+ }
+ return nullptr;
+ } else {
+ NOTREACHED() << "called in unsupported process";
+ return nullptr;
+ }
+}