#include "content/child/blink_platform_impl.h"
#include <math.h>
#include <memory>
#include <string_view>
#include <vector>
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/singleton.h"
#include "base/metrics/user_metrics_action.h"
#include "base/rand_util.h"
#include "base/run_loop.h"
#include "base/sequence_checker.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/synchronization/lock.h"
#include "base/system/sys_info.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/single_thread_task_runner.h"
#include "base/task/thread_pool.h"
#include "base/time/time.h"
#include "base/trace_event/memory_allocator_dump_guid.h"
#include "base/trace_event/memory_dump_manager.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
#include "content/child/child_thread_impl.h"
#include "content/common/child_process.mojom.h"
#include "content/public/common/content_client.h"
#include "content/public/common/content_features.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/url_utils.h"
#include "mojo/public/cpp/bindings/shared_remote.h"
#include "net/base/net_errors.h"
#include "services/network/public/cpp/features.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h"
#include "third_party/blink/public/platform/user_metrics_action.h"
#include "third_party/blink/public/platform/web_data.h"
#include "third_party/blink/public/platform/web_security_origin.h"
#include "third_party/blink/public/platform/web_string.h"
#include "third_party/blink/public/platform/web_url.h"
#include "third_party/blink/public/resources/grit/blink_image_resources.h"
#include "third_party/blink/public/resources/grit/blink_resources.h"
#include "third_party/blink/public/strings/grit/blink_strings.h"
#include "ui/base/resource/resource_scale_factor.h"
#include "ui/base/ui_base_features.h"
#include "ui/events/gestures/blink/web_gesture_curve_impl.h"
WebData;
WebString;
WebURL;
WebURLError;
namespace content {
namespace {
struct DataResource { … };
class NestedMessageLoopRunnerImpl
: public blink::Platform::NestedMessageLoopRunner { … };
mojo::SharedRemote<mojom::ChildProcessHost> GetChildProcessHost() { … }
class ThreadSafeBrowserInterfaceBrokerProxyImpl
: public blink::ThreadSafeBrowserInterfaceBrokerProxy { … };
}
BlinkPlatformImpl::BlinkPlatformImpl() : … { … }
BlinkPlatformImpl::BlinkPlatformImpl(
scoped_refptr<base::SingleThreadTaskRunner> io_thread_task_runner)
: … { … }
BlinkPlatformImpl::~BlinkPlatformImpl() = default;
void BlinkPlatformImpl::RecordAction(const blink::UserMetricsAction& name) { … }
WebData BlinkPlatformImpl::GetDataResource(
int resource_id,
ui::ResourceScaleFactor scale_factor) { … }
std::string BlinkPlatformImpl::GetDataResourceString(int resource_id) { … }
WebString BlinkPlatformImpl::QueryLocalizedString(int resource_id) { … }
WebString BlinkPlatformImpl::QueryLocalizedString(int resource_id,
const WebString& value) { … }
WebString BlinkPlatformImpl::QueryLocalizedString(int resource_id,
const WebString& value1,
const WebString& value2) { … }
blink::WebCrypto* BlinkPlatformImpl::Crypto() { … }
blink::ThreadSafeBrowserInterfaceBrokerProxy*
BlinkPlatformImpl::GetBrowserInterfaceBroker() { … }
bool BlinkPlatformImpl::IsURLSavableForSavableResource(
const blink::WebURL& url) { … }
size_t BlinkPlatformImpl::MaxDecodedImageBytes() { … }
bool BlinkPlatformImpl::IsLowEndDevice() { … }
scoped_refptr<base::SingleThreadTaskRunner> BlinkPlatformImpl::GetIOTaskRunner()
const { … }
scoped_refptr<base::SequencedTaskRunner>
BlinkPlatformImpl::GetMediaStreamVideoSourceVideoTaskRunner() const { … }
std::unique_ptr<blink::Platform::NestedMessageLoopRunner>
BlinkPlatformImpl::CreateNestedMessageLoopRunner() const { … }
}