#include "content/browser/webui/web_ui_impl.h"
#include <stddef.h>
#include <string>
#include <string_view>
#include <utility>
#include "base/debug/dump_without_crashing.h"
#include "base/functional/callback_helpers.h"
#include "base/json/json_writer.h"
#include "base/strings/strcat.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "build/build_config.h"
#include "content/browser/child_process_security_policy_impl.h"
#include "content/browser/renderer_host/dip_util.h"
#include "content/browser/renderer_host/frame_tree.h"
#include "content/browser/renderer_host/navigation_request.h"
#include "content/browser/renderer_host/render_frame_host_impl.h"
#include "content/browser/renderer_host/render_process_host_impl.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/browser/web_contents/web_contents_view.h"
#include "content/browser/webui/web_ui_controller_factory_registry.h"
#include "content/browser/webui/web_ui_main_frame_observer.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/browser/web_ui_controller.h"
#include "content/public/browser/web_ui_message_handler.h"
#include "content/public/common/bindings_policy.h"
#include "content/public/common/content_client.h"
#include "content/public/common/url_constants.h"
#include "services/service_manager/public/cpp/interface_provider.h"
namespace content {
namespace {
template <typename Range>
std::u16string GetJavascriptCallImpl(std::string_view function_name,
const Range& args) { … }
}
const WebUI::TypeID WebUI::kNoWebUI = …;
std::u16string WebUI::GetJavascriptCall(
std::string_view function_name,
base::span<const base::ValueView> arg_list) { … }
std::u16string WebUI::GetJavascriptCall(std::string_view function_name,
const base::Value::List& arg_list) { … }
WebUIImpl::WebUIImpl(WebContents* web_contents)
: … { … }
WebUIImpl::WebUIImpl(NavigationRequest* request)
: … { … }
WebUIImpl::~WebUIImpl() { … }
void WebUIImpl::SetProperty(const std::string& name, const std::string& value) { … }
void WebUIImpl::Send(const std::string& message, base::Value::List args) { … }
void WebUIImpl::SetRenderFrameHost(RenderFrameHost* render_frame_host) { … }
void WebUIImpl::WebUIRenderFrameCreated(RenderFrameHost* render_frame_host) { … }
void WebUIImpl::RenderFrameHostUnloading() { … }
void WebUIImpl::RenderFrameDeleted() { … }
void WebUIImpl::SetUpMojoConnection() { … }
void WebUIImpl::TearDownMojoConnection() { … }
WebContents* WebUIImpl::GetWebContents() { … }
float WebUIImpl::GetDeviceScaleFactor() { … }
const std::u16string& WebUIImpl::GetOverriddenTitle() { … }
void WebUIImpl::OverrideTitle(const std::u16string& title) { … }
BindingsPolicySet WebUIImpl::GetBindings() { … }
void WebUIImpl::SetBindings(BindingsPolicySet bindings) { … }
const std::vector<std::string>& WebUIImpl::GetRequestableSchemes() { … }
void WebUIImpl::AddRequestableScheme(const char* scheme) { … }
WebUIController* WebUIImpl::GetController() { … }
RenderFrameHost* WebUIImpl::GetRenderFrameHost() { … }
bool WebUIImpl::HasRenderFrameHost() const { … }
void WebUIImpl::SetController(std::unique_ptr<WebUIController> controller) { … }
bool WebUIImpl::CanCallJavascript() { … }
void WebUIImpl::CallJavascriptFunctionUnsafe(
std::string_view function_name,
base::span<const base::ValueView> args) { … }
void WebUIImpl::RegisterMessageCallback(std::string_view message,
MessageCallback callback) { … }
void WebUIImpl::ProcessWebUIMessage(const GURL& source_url,
const std::string& message,
base::Value::List args) { … }
std::vector<std::unique_ptr<WebUIMessageHandler>>*
WebUIImpl::GetHandlersForTesting() { … }
void WebUIImpl::AddMessageHandler(
std::unique_ptr<WebUIMessageHandler> handler) { … }
void WebUIImpl::ExecuteJavascript(const std::u16string& javascript) { … }
void WebUIImpl::DisallowJavascriptOnAllHandlers() { … }
}