summaryrefslogtreecommitdiffstats
path: root/src/core/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/net')
-rw-r--r--src/core/net/cookie_monster_delegate_qt.cpp15
-rw-r--r--src/core/net/cookie_monster_delegate_qt.h2
-rw-r--r--src/core/net/custom_url_loader_factory.cpp12
-rw-r--r--src/core/net/proxy_config_monitor.cpp39
-rw-r--r--src/core/net/proxy_config_monitor.h9
-rw-r--r--src/core/net/proxying_restricted_cookie_manager_qt.cpp4
-rw-r--r--src/core/net/proxying_url_loader_factory_qt.cpp44
-rw-r--r--src/core/net/proxying_url_loader_factory_qt.h16
-rw-r--r--src/core/net/system_network_context_manager.cpp9
-rw-r--r--src/core/net/webui_controller_factory_qt.cpp2
10 files changed, 81 insertions, 71 deletions
diff --git a/src/core/net/cookie_monster_delegate_qt.cpp b/src/core/net/cookie_monster_delegate_qt.cpp
index 3e8cced67..cf114406b 100644
--- a/src/core/net/cookie_monster_delegate_qt.cpp
+++ b/src/core/net/cookie_monster_delegate_qt.cpp
@@ -61,10 +61,9 @@ public:
~CookieChangeListener() override = default;
// network::mojom::CookieChangeListener:
- void OnCookieChange(const net::CanonicalCookie &canonical_cookie,
- network::mojom::CookieChangeCause cause) override
+ void OnCookieChange(const net::CookieChangeInfo &change) override
{
- m_delegate->OnCookieChanged(canonical_cookie, net::CookieChangeCause(cause));
+ m_delegate->OnCookieChanged(change);
}
private:
@@ -93,9 +92,9 @@ CookieMonsterDelegateQt::~CookieMonsterDelegateQt()
void CookieMonsterDelegateQt::AddStore(net::CookieStore *store)
{
std::unique_ptr<net::CookieChangeSubscription> sub = store->GetChangeDispatcher().AddCallbackForAllChanges(
- base::Bind(&CookieMonsterDelegateQt::OnCookieChanged,
- // this object's destruction will deregister the subscription.
- base::Unretained(this)));
+ base::BindRepeating(&CookieMonsterDelegateQt::OnCookieChanged,
+ // this object's destruction will deregister the subscription.
+ base::Unretained(this)));
m_subscriptions.push_back(std::move(sub));
}
@@ -217,11 +216,11 @@ bool CookieMonsterDelegateQt::canGetCookies(const QUrl &firstPartyUrl, const QUr
return m_client->d_func()->canAccessCookies(firstPartyUrl, url);
}
-void CookieMonsterDelegateQt::OnCookieChanged(const net::CanonicalCookie &cookie, net::CookieChangeCause cause)
+void CookieMonsterDelegateQt::OnCookieChanged(const net::CookieChangeInfo &change)
{
if (!m_client)
return;
- m_client->d_func()->onCookieChanged(toQt(cookie), cause != net::CookieChangeCause::INSERTED);
+ m_client->d_func()->onCookieChanged(toQt(change.cookie), change.cause != net::CookieChangeCause::INSERTED);
}
void CookieMonsterDelegateQt::GetAllCookiesCallbackOnUIThread(qint64 callbackId, const std::vector<net::CanonicalCookie> &cookies)
diff --git a/src/core/net/cookie_monster_delegate_qt.h b/src/core/net/cookie_monster_delegate_qt.h
index 8b04fe26f..6caaeea94 100644
--- a/src/core/net/cookie_monster_delegate_qt.h
+++ b/src/core/net/cookie_monster_delegate_qt.h
@@ -112,7 +112,7 @@ public:
bool canGetCookies(const QUrl &firstPartyUrl, const QUrl &url) const;
void AddStore(net::CookieStore *store);
- void OnCookieChanged(const net::CanonicalCookie &cookie, net::CookieChangeCause cause);
+ void OnCookieChanged(const net::CookieChangeInfo &change);
private:
void GetAllCookiesCallbackOnUIThread(qint64 callbackId, const std::vector<net::CanonicalCookie> &cookies);
diff --git a/src/core/net/custom_url_loader_factory.cpp b/src/core/net/custom_url_loader_factory.cpp
index 261630cc4..e0ae22bb1 100644
--- a/src/core/net/custom_url_loader_factory.cpp
+++ b/src/core/net/custom_url_loader_factory.cpp
@@ -43,7 +43,9 @@
#include "base/task/post_task.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
-#include "mojo/public/cpp/bindings/binding_set.h"
+#include "mojo/public/cpp/bindings/binding.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "mojo/public/cpp/bindings/receiver_set.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "mojo/public/cpp/system/simple_watcher.h"
#include "net/base/net_errors.h"
@@ -255,7 +257,7 @@ private:
: net::URLRequest::NEVER_CHANGE_FIRST_PARTY_URL;
net::RedirectInfo redirectInfo = net::RedirectInfo::ComputeRedirectInfo(
m_request.method, m_request.url,
- m_request.site_for_cookies, m_request.top_frame_origin,
+ m_request.site_for_cookies,
first_party_url_policy, m_request.referrer_policy,
m_request.referrer.spec(), net::HTTP_SEE_OTHER,
m_redirect, base::nullopt, false /*insecure_scheme_was_upgraded*/);
@@ -425,13 +427,13 @@ public:
}
- void Clone(network::mojom::URLLoaderFactoryRequest request) override
+ void Clone(mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver) override
{
- m_bindings.AddBinding(this, std::move(request));
+ m_receivers.Add(this, std::move(receiver));
}
const scoped_refptr<base::SequencedTaskRunner> m_taskRunner;
- mojo::BindingSet<network::mojom::URLLoaderFactory> m_bindings;
+ mojo::ReceiverSet<network::mojom::URLLoaderFactory> m_receivers;
QPointer<ProfileAdapter> m_profileAdapter;
DISALLOW_COPY_AND_ASSIGN(CustomURLLoaderFactory);
};
diff --git a/src/core/net/proxy_config_monitor.cpp b/src/core/net/proxy_config_monitor.cpp
index ed1802645..a0aaf0c05 100644
--- a/src/core/net/proxy_config_monitor.cpp
+++ b/src/core/net/proxy_config_monitor.cpp
@@ -82,12 +82,13 @@ ProxyConfigMonitor::~ProxyConfigMonitor()
void ProxyConfigMonitor::AddToNetworkContextParams(
network::mojom::NetworkContextParams *network_context_params)
{
- network::mojom::ProxyConfigClientPtr proxy_config_client;
- network_context_params->proxy_config_client_request = mojo::MakeRequest(&proxy_config_client);
- proxy_config_client_set_.AddPtr(std::move(proxy_config_client));
+ mojo::PendingRemote<network::mojom::ProxyConfigClient> proxy_config_client;
+ network_context_params->proxy_config_client_receiver =
+ proxy_config_client.InitWithNewPipeAndPassReceiver();
+ proxy_config_client_set_.Add(std::move(proxy_config_client));
- poller_binding_set_.AddBinding(
- this, mojo::MakeRequest(&network_context_params->proxy_config_poller_client));
+ poller_receiver_set_.Add(this,
+ network_context_params->proxy_config_poller_client.InitWithNewPipeAndPassReceiver());
net::ProxyConfigWithAnnotation proxy_config;
net::ProxyConfigService::ConfigAvailability availability =
@@ -102,21 +103,19 @@ void ProxyConfigMonitor::OnProxyConfigChanged(
{
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)
|| !BrowserThread::IsThreadInitialized(BrowserThread::UI));
- proxy_config_client_set_.ForAllPtrs(
- [config, availability](network::mojom::ProxyConfigClient *proxy_config_client) {
- switch (availability) {
- case net::ProxyConfigService::CONFIG_VALID:
- proxy_config_client->OnProxyConfigUpdated(config);
- break;
- case net::ProxyConfigService::CONFIG_UNSET:
- proxy_config_client->OnProxyConfigUpdated(
- net::ProxyConfigWithAnnotation::CreateDirect());
- break;
- case net::ProxyConfigService::CONFIG_PENDING:
- NOTREACHED();
- break;
- }
- });
+ for (const auto &proxy_config_client : proxy_config_client_set_) {
+ switch (availability) {
+ case net::ProxyConfigService::CONFIG_VALID:
+ proxy_config_client->OnProxyConfigUpdated(config);
+ break;
+ case net::ProxyConfigService::CONFIG_UNSET:
+ proxy_config_client->OnProxyConfigUpdated(net::ProxyConfigWithAnnotation::CreateDirect());
+ break;
+ case net::ProxyConfigService::CONFIG_PENDING:
+ NOTREACHED();
+ break;
+ }
+ }
}
void ProxyConfigMonitor::OnLazyProxyConfigPoll()
diff --git a/src/core/net/proxy_config_monitor.h b/src/core/net/proxy_config_monitor.h
index 23f073a84..fda6a6fb9 100644
--- a/src/core/net/proxy_config_monitor.h
+++ b/src/core/net/proxy_config_monitor.h
@@ -51,8 +51,8 @@
#include "base/macros.h"
#include "build/buildflag.h"
#include "extensions/buildflags/buildflags.h"
-#include "mojo/public/cpp/bindings/binding_set.h"
-#include "mojo/public/cpp/bindings/interface_ptr_set.h"
+#include "mojo/public/cpp/bindings/receiver_set.h"
+#include "mojo/public/cpp/bindings/remote_set.h"
#include "net/proxy_resolution/proxy_config_service.h"
#include "services/network/public/mojom/network_context.mojom-forward.h"
#include "services/network/public/mojom/network_service.mojom-forward.h"
@@ -94,9 +94,8 @@ private:
std::unique_ptr<ProxyConfigServiceQt> proxy_config_service_;
- mojo::BindingSet<network::mojom::ProxyConfigPollerClient> poller_binding_set_;
-
- mojo::InterfacePtrSet<network::mojom::ProxyConfigClient> proxy_config_client_set_;
+ mojo::ReceiverSet<network::mojom::ProxyConfigPollerClient> poller_receiver_set_;
+ mojo::RemoteSet<network::mojom::ProxyConfigClient> proxy_config_client_set_;
DISALLOW_COPY_AND_ASSIGN(ProxyConfigMonitor);
};
diff --git a/src/core/net/proxying_restricted_cookie_manager_qt.cpp b/src/core/net/proxying_restricted_cookie_manager_qt.cpp
index e14ea2375..7ee6c2a15 100644
--- a/src/core/net/proxying_restricted_cookie_manager_qt.cpp
+++ b/src/core/net/proxying_restricted_cookie_manager_qt.cpp
@@ -72,10 +72,10 @@ public:
, client_listener_(std::move(client_listener))
{}
- void OnCookieChange(const net::CanonicalCookie &cookie, network::mojom::CookieChangeCause cause) override
+ void OnCookieChange(const net::CookieChangeInfo &change) override
{
if (restricted_cookie_manager_ && restricted_cookie_manager_->allowCookies(url_, site_for_cookies_))
- client_listener_->OnCookieChange(cookie, cause);
+ client_listener_->OnCookieChange(change);
}
private:
diff --git a/src/core/net/proxying_url_loader_factory_qt.cpp b/src/core/net/proxying_url_loader_factory_qt.cpp
index 429c158a5..29ca02513 100644
--- a/src/core/net/proxying_url_loader_factory_qt.cpp
+++ b/src/core/net/proxying_url_loader_factory_qt.cpp
@@ -63,6 +63,7 @@
#include "type_conversion.h"
#include "web_contents_adapter_client.h"
#include "web_contents_view_qt.h"
+
#include <QVariant>
// originally based on aw_proxying_url_loader_factory.cc:
@@ -93,7 +94,7 @@ class InterceptedRequest : public network::mojom::URLLoader
{
public:
InterceptedRequest(int process_id, uint64_t request_id, int32_t routing_id, uint32_t options,
- const network::ResourceRequest &request,
+ const network::ResourceRequest &request, const GURL &top_document_url,
const net::MutableNetworkTrafficAnnotationTag &traffic_annotation,
ProfileIODataQt *profileData,
network::mojom::URLLoaderRequest loader_request, network::mojom::URLLoaderClientPtr client,
@@ -146,7 +147,7 @@ private:
// That way the destructor can send it to OnReceivedError if safe browsing
// error didn't occur.
int error_status_ = net::OK;
- GURL m_originalUrl;
+ GURL m_topDocumentUrl;
network::ResourceRequest request_;
network::ResourceResponseHead current_response_;
@@ -167,7 +168,7 @@ private:
};
InterceptedRequest::InterceptedRequest(int process_id, uint64_t request_id, int32_t routing_id, uint32_t options,
- const network::ResourceRequest &request,
+ const network::ResourceRequest &request, const GURL &top_document_url,
const net::MutableNetworkTrafficAnnotationTag &traffic_annotation,
ProfileIODataQt *profileData,
network::mojom::URLLoaderRequest loader_request,
@@ -177,6 +178,7 @@ InterceptedRequest::InterceptedRequest(int process_id, uint64_t request_id, int3
, request_id_(request_id)
, routing_id_(routing_id)
, options_(options)
+ , m_topDocumentUrl(top_document_url)
, request_(request)
, traffic_annotation_(traffic_annotation)
, m_profileData(profileData)
@@ -217,16 +219,15 @@ void InterceptedRequest::InterceptOnUIThread()
WebContentsAdapterClient::NavigationType navigationType =
pageTransitionToNavigationType(ui::PageTransition(request_.transition_type));
- m_originalUrl = request_.url;
const QUrl qUrl = toQt(request_.url);
const QUrl initiator = request_.request_initiator.has_value() ? toQt(request_.request_initiator->GetURL()) : QUrl();
QUrl firstPartyUrl;
- if (resourceType == content::ResourceType::kSubFrame)
- firstPartyUrl = toQt(request_.first_party_url);
+ if (!m_topDocumentUrl.is_empty())
+ firstPartyUrl = toQt(m_topDocumentUrl);
else
- firstPartyUrl = toQt(request_.site_for_cookies);
+ firstPartyUrl = toQt(request_.site_for_cookies); // m_topDocumentUrl can be empty for the main-frame.
QWebEngineUrlRequestInfoPrivate *infoPrivate = new QWebEngineUrlRequestInfoPrivate(toQt(resourceType),
toQt(navigationType),
@@ -275,7 +276,7 @@ void InterceptedRequest::InterceptOnUIThread()
request_.update_first_party_url_on_redirect ? net::URLRequest::UPDATE_FIRST_PARTY_URL_ON_REDIRECT
: net::URLRequest::NEVER_CHANGE_FIRST_PARTY_URL;
net::RedirectInfo redirectInfo = net::RedirectInfo::ComputeRedirectInfo(request_.method, request_.url,
- request_.site_for_cookies, request_.top_frame_origin,
+ request_.site_for_cookies,
first_party_url_policy, request_.referrer_policy,
request_.referrer.spec(), net::HTTP_TEMPORARY_REDIRECT,
toGurl(requestInfo.requestUrl()), base::nullopt,
@@ -469,9 +470,10 @@ void InterceptedRequest::SendErrorAndCompleteImmediately(int error_code)
ProxyingURLLoaderFactoryQt::ProxyingURLLoaderFactoryQt(int process_id,
content::ResourceContext *resourceContext,
- network::mojom::URLLoaderFactoryRequest loader_request,
+ content::RenderFrameHostImpl *host,
+ mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_receiver,
network::mojom::URLLoaderFactoryPtrInfo target_factory_info)
- : m_processId(process_id), m_resourceContext(resourceContext), m_weakFactory(this)
+ : m_processId(process_id), m_resourceContext(resourceContext), m_renderFrameHost(host), m_weakFactory(this)
{
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
if (target_factory_info) {
@@ -479,8 +481,8 @@ ProxyingURLLoaderFactoryQt::ProxyingURLLoaderFactoryQt(int process_id,
m_targetFactory.set_connection_error_handler(
base::BindOnce(&ProxyingURLLoaderFactoryQt::OnTargetFactoryError, m_weakFactory.GetWeakPtr()));
}
- m_proxyBindings.AddBinding(this, std::move(loader_request));
- m_proxyBindings.set_connection_error_handler(
+ m_proxyReceivers.Add(this, std::move(loader_receiver));
+ m_proxyReceivers.set_disconnect_handler(
base::BindRepeating(&ProxyingURLLoaderFactoryQt::OnProxyBindingError, m_weakFactory.GetWeakPtr()));
}
@@ -492,13 +494,14 @@ ProxyingURLLoaderFactoryQt::~ProxyingURLLoaderFactoryQt()
// static
void ProxyingURLLoaderFactoryQt::CreateProxy(int process_id,
content::ResourceContext *resourceContext,
- network::mojom::URLLoaderFactoryRequest loader_request,
+ content::RenderFrameHostImpl *host,
+ mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_receiver,
network::mojom::URLLoaderFactoryPtrInfo target_factory_info)
{
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
// Will manage its own lifetime
- new ProxyingURLLoaderFactoryQt(process_id, resourceContext, std::move(loader_request), std::move(target_factory_info));
+ new ProxyingURLLoaderFactoryQt(process_id, resourceContext, host, std::move(loader_receiver), std::move(target_factory_info));
}
void ProxyingURLLoaderFactoryQt::CreateLoaderAndStart(network::mojom::URLLoaderRequest loader, int32_t routing_id,
@@ -523,9 +526,16 @@ void ProxyingURLLoaderFactoryQt::CreateLoaderAndStart(network::mojom::URLLoaderR
if (m_targetFactory)
m_targetFactory->Clone(mojo::MakeRequest(&target_factory_clone));
+ // Follows a similar path to the root as RenderFrameHostImpl::CalculateSiteForCookies()
+ GURL top_document_url;
+ if (m_renderFrameHost)
+ top_document_url = m_renderFrameHost->frame_tree_node()->frame_tree()->root()->current_frame_host()->GetLastCommittedURL();
+ else
+ LOG(INFO) << "ProxyingURLLoaderFactoryQt::CreateLoaderAndStart() - null m_renderFrameHost, shouldn't happen";
// Will manage its own lifetime
InterceptedRequest *req = new InterceptedRequest(m_processId, request_id, routing_id, options, request,
+ top_document_url,
traffic_annotation, profileIOData,
std::move(loader), std::move(client),
std::move(target_factory_clone));
@@ -539,14 +549,14 @@ void ProxyingURLLoaderFactoryQt::OnTargetFactoryError()
void ProxyingURLLoaderFactoryQt::OnProxyBindingError()
{
- if (m_proxyBindings.empty())
+ if (m_proxyReceivers.empty())
delete this;
}
-void ProxyingURLLoaderFactoryQt::Clone(network::mojom::URLLoaderFactoryRequest loader_request)
+void ProxyingURLLoaderFactoryQt::Clone(mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver)
{
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
- m_proxyBindings.AddBinding(this, std::move(loader_request));
+ m_proxyReceivers.Add(this, std::move(receiver));
}
} // namespace QtWebEngineCore
diff --git a/src/core/net/proxying_url_loader_factory_qt.h b/src/core/net/proxying_url_loader_factory_qt.h
index a2f175885..4d913f545 100644
--- a/src/core/net/proxying_url_loader_factory_qt.h
+++ b/src/core/net/proxying_url_loader_factory_qt.h
@@ -46,8 +46,7 @@
#include "base/memory/ref_counted_delete_on_sequence.h"
#include "base/memory/weak_ptr.h"
#include "base/optional.h"
-#include "mojo/public/cpp/bindings/binding.h"
-#include "mojo/public/cpp/bindings/binding_set.h"
+#include "mojo/public/cpp/bindings/receiver_set.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "services/network/public/cpp/resource_request.h"
#include "services/network/public/cpp/resource_response.h"
@@ -61,6 +60,7 @@
// found in the LICENSE file.
namespace content {
+class RenderFrameHostImpl;
class ResourceContext;
}
@@ -70,14 +70,15 @@ class ProxyingURLLoaderFactoryQt : public network::mojom::URLLoaderFactory
{
public:
ProxyingURLLoaderFactoryQt(int process_id, content::ResourceContext *resourceContext,
- network::mojom::URLLoaderFactoryRequest loader_request,
+ content::RenderFrameHostImpl *host,
+ mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_receiver,
network::mojom::URLLoaderFactoryPtrInfo target_factory_info);
~ProxyingURLLoaderFactoryQt() override;
- // static
static void CreateProxy(int process_id, content::ResourceContext *resourceContext,
- network::mojom::URLLoaderFactoryRequest loader,
+ content::RenderFrameHostImpl *host,
+ mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_receiver,
network::mojom::URLLoaderFactoryPtrInfo target_factory_info);
void CreateLoaderAndStart(network::mojom::URLLoaderRequest loader, int32_t routing_id, int32_t request_id,
@@ -85,17 +86,18 @@ public:
network::mojom::URLLoaderClientPtr client,
const net::MutableNetworkTrafficAnnotationTag &traffic_annotation) override;
- void Clone(network::mojom::URLLoaderFactoryRequest loader_request) override;
+ void Clone(mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver) override;
private:
void OnTargetFactoryError();
void OnProxyBindingError();
const int m_processId;
- mojo::BindingSet<network::mojom::URLLoaderFactory> m_proxyBindings;
+ mojo::ReceiverSet<network::mojom::URLLoaderFactory> m_proxyReceivers;
network::mojom::URLLoaderFactoryPtr m_targetFactory;
content::ResourceContext *m_resourceContext;
+ content::RenderFrameHostImpl *m_renderFrameHost;
base::WeakPtrFactory<ProxyingURLLoaderFactoryQt> m_weakFactory;
diff --git a/src/core/net/system_network_context_manager.cpp b/src/core/net/system_network_context_manager.cpp
index 29343df4e..2c5f49615 100644
--- a/src/core/net/system_network_context_manager.cpp
+++ b/src/core/net/system_network_context_manager.cpp
@@ -78,6 +78,7 @@
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "services/network/public/mojom/host_resolver.mojom.h"
+#include "services/network/public/mojom/url_loader_factory.mojom.h"
#include "services/proxy_resolver/public/mojom/proxy_resolver.mojom.h"
#include "url/gurl.h"
@@ -133,11 +134,11 @@ public:
url_request, std::move(client), traffic_annotation);
}
- void Clone(network::mojom::URLLoaderFactoryRequest request) override
+ void Clone(mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver)
{
if (!manager_)
return;
- manager_->GetURLLoaderFactory()->Clone(std::move(request));
+ manager_->GetURLLoaderFactory()->Clone(std::move(receiver));
}
// SharedURLLoaderFactory implementation:
@@ -322,8 +323,6 @@ network::mojom::NetworkContextParamsPtr SystemNetworkContextManager::CreateDefau
network_context_params->ct_logs.push_back(std::move(log_info));
}
- network_context_params->http_09_on_non_default_ports_enabled = false;
-
return network_context_params;
}
@@ -343,7 +342,7 @@ network::mojom::NetworkContextParamsPtr SystemNetworkContextManager::CreateNetwo
network_context_params->enable_ftp_url_support = true;
#endif
- network_context_params->primary_network_context = true;
+ network_context_params->primary_network_context = false;
proxy_config_monitor_.AddToNetworkContextParams(network_context_params.get());
diff --git a/src/core/net/webui_controller_factory_qt.cpp b/src/core/net/webui_controller_factory_qt.cpp
index 8c045bb7b..27e58d75f 100644
--- a/src/core/net/webui_controller_factory_qt.cpp
+++ b/src/core/net/webui_controller_factory_qt.cpp
@@ -65,7 +65,7 @@
#include "url/gurl.h"
#if defined(OS_LINUX) || defined(OS_ANDROID)
-#include "chrome/browser/ui/webui/sandbox_internals_ui.h"
+#include "chrome/browser/ui/webui/sandbox/sandbox_internals_ui.h"
#endif
// The Following WebUIs are disabled because they currently doesn't build