diff options
Diffstat (limited to 'chromium/chrome/browser/ui/webui/sandbox_internals_ui.cc')
-rw-r--r-- | chromium/chrome/browser/ui/webui/sandbox_internals_ui.cc | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/chromium/chrome/browser/ui/webui/sandbox_internals_ui.cc b/chromium/chrome/browser/ui/webui/sandbox_internals_ui.cc deleted file mode 100644 index e09f9d4a1e9..00000000000 --- a/chromium/chrome/browser/ui/webui/sandbox_internals_ui.cc +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2017 The Chromium 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 "chrome/browser/ui/webui/sandbox_internals_ui.h" - -#include <string> - -#include "build/build_config.h" -#include "chrome/browser/profiles/profile.h" -#include "chrome/common/url_constants.h" -#include "chrome/grit/browser_resources.h" -#include "content/public/browser/render_frame_host.h" -#include "content/public/browser/web_contents.h" -#include "content/public/browser/web_ui.h" -#include "content/public/browser/web_ui_data_source.h" - -#if defined(OS_ANDROID) -#include "chrome/common/sandbox_status_extension_android.mojom.h" -#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" -#endif - -#if defined(OS_LINUX) -#include "services/service_manager/sandbox/sandbox.h" -#include "services/service_manager/zygote/zygote_host_linux.h" -#endif - -namespace { - -#if defined(OS_LINUX) -static void SetSandboxStatusData(content::WebUIDataSource* source) { - // Get expected sandboxing status of renderers. - const int status = - service_manager::ZygoteHost::GetInstance()->GetRendererSandboxStatus(); - - source->AddBoolean("suid", status & service_manager::SandboxLinux::kSUID); - source->AddBoolean("userNs", status & service_manager::SandboxLinux::kUserNS); - source->AddBoolean("pidNs", status & service_manager::SandboxLinux::kPIDNS); - source->AddBoolean("netNs", status & service_manager::SandboxLinux::kNetNS); - source->AddBoolean("seccompBpf", - status & service_manager::SandboxLinux::kSeccompBPF); - source->AddBoolean("seccompTsync", - status & service_manager::SandboxLinux::kSeccompTSYNC); - source->AddBoolean("yamaBroker", - status & service_manager::SandboxLinux::kYama); - - // Yama does not enforce in user namespaces. - bool enforcing_yama_nonbroker = - status & service_manager::SandboxLinux::kYama && - !(status & service_manager::SandboxLinux::kUserNS); - source->AddBoolean("yamaNonbroker", enforcing_yama_nonbroker); - - // Require either the setuid or namespace sandbox for our first-layer sandbox. - bool good_layer1 = (status & service_manager::SandboxLinux::kSUID || - status & service_manager::SandboxLinux::kUserNS) && - status & service_manager::SandboxLinux::kPIDNS && - status & service_manager::SandboxLinux::kNetNS; - // A second-layer sandbox is also required to be adequately sandboxed. - bool good_layer2 = status & service_manager::SandboxLinux::kSeccompBPF; - source->AddBoolean("sandboxGood", good_layer1 && good_layer2); -} -#endif - -content::WebUIDataSource* CreateDataSource() { - content::WebUIDataSource* source = - content::WebUIDataSource::Create(chrome::kChromeUISandboxHost); - source->SetDefaultResource(IDR_SANDBOX_INTERNALS_HTML); - source->AddResourcePath("sandbox_internals.js", IDR_SANDBOX_INTERNALS_JS); - -#if defined(OS_LINUX) - SetSandboxStatusData(source); - source->UseStringsJs(); -#endif - - return source; -} - -} // namespace - -SandboxInternalsUI::SandboxInternalsUI(content::WebUI* web_ui) - : content::WebUIController(web_ui) { - Profile* profile = Profile::FromWebUI(web_ui); - content::WebUIDataSource::Add(profile, CreateDataSource()); -} - -void SandboxInternalsUI::RenderFrameCreated( - content::RenderFrameHost* render_frame_host) { -#if defined(OS_ANDROID) - chrome::mojom::SandboxStatusExtensionAssociatedPtr sandbox_status; - render_frame_host->GetRemoteAssociatedInterfaces()->GetInterface( - &sandbox_status); - sandbox_status->AddSandboxStatusExtension(); -#endif -} - -SandboxInternalsUI::~SandboxInternalsUI() {} |