Commit 328ceeac authored by Marijn Kruisselbrink's avatar Marijn Kruisselbrink Committed by Commit Bot

[AppCache] Don't null-check a field that can never be null.

We never pass a null ChromeAppCacheService to AppCacheDispatcherHost so
don't bother trying to support that.

Bug: None
Change-Id: Ic8afd00a9ae405c31ca3bcdee8e87ba0beb4a9bd
Reviewed-on: https://chromium-review.googlesource.com/c/1450532
Auto-Submit: Marijn Kruisselbrink <mek@chromium.org>
Commit-Queue: Victor Costan <pwnall@chromium.org>
Reviewed-by: default avatarVictor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#628512}
parent d6943c49
...@@ -19,12 +19,9 @@ namespace content { ...@@ -19,12 +19,9 @@ namespace content {
AppCacheDispatcherHost::AppCacheDispatcherHost( AppCacheDispatcherHost::AppCacheDispatcherHost(
ChromeAppCacheService* appcache_service, ChromeAppCacheService* appcache_service,
int process_id) int process_id)
: appcache_service_(appcache_service), : frontend_proxy_(process_id) {
frontend_proxy_(process_id), DCHECK(appcache_service);
weak_factory_(this) { backend_impl_.Initialize(appcache_service, &frontend_proxy_, process_id);
if (appcache_service) {
backend_impl_.Initialize(appcache_service, &frontend_proxy_, process_id);
}
} }
AppCacheDispatcherHost::~AppCacheDispatcherHost() = default; AppCacheDispatcherHost::~AppCacheDispatcherHost() = default;
...@@ -48,72 +45,56 @@ void AppCacheDispatcherHost::Create( ...@@ -48,72 +45,56 @@ void AppCacheDispatcherHost::Create(
} }
void AppCacheDispatcherHost::RegisterHost(int32_t host_id) { void AppCacheDispatcherHost::RegisterHost(int32_t host_id) {
if (appcache_service_) { // The AppCacheHost could have been precreated in which case we want to
// The AppCacheHost could have been precreated in which case we want to // register it with the backend here.
// register it with the backend here. std::unique_ptr<content::AppCacheHost> host =
std::unique_ptr<content::AppCacheHost> host = AppCacheNavigationHandleCore::GetPrecreatedHost(host_id);
AppCacheNavigationHandleCore::GetPrecreatedHost(host_id); if (host.get()) {
if (host.get()) { backend_impl_.RegisterPrecreatedHost(std::move(host));
backend_impl_.RegisterPrecreatedHost(std::move(host)); return;
return; }
}
if (!backend_impl_.RegisterHost(host_id)) {
if (!backend_impl_.RegisterHost(host_id)) { mojo::ReportBadMessage("ACDH_REGISTER");
mojo::ReportBadMessage("ACDH_REGISTER");
}
} }
} }
void AppCacheDispatcherHost::UnregisterHost(int32_t host_id) { void AppCacheDispatcherHost::UnregisterHost(int32_t host_id) {
if (appcache_service_) { if (!backend_impl_.UnregisterHost(host_id)) {
if (!backend_impl_.UnregisterHost(host_id)) { mojo::ReportBadMessage("ACDH_UNREGISTER");
mojo::ReportBadMessage("ACDH_UNREGISTER");
}
} }
} }
void AppCacheDispatcherHost::SetSpawningHostId(int32_t host_id, void AppCacheDispatcherHost::SetSpawningHostId(int32_t host_id,
int spawning_host_id) { int spawning_host_id) {
if (appcache_service_) { if (!backend_impl_.SetSpawningHostId(host_id, spawning_host_id))
if (!backend_impl_.SetSpawningHostId(host_id, spawning_host_id)) mojo::ReportBadMessage("ACDH_SET_SPAWNING");
mojo::ReportBadMessage("ACDH_SET_SPAWNING");
}
} }
void AppCacheDispatcherHost::SelectCache(int32_t host_id, void AppCacheDispatcherHost::SelectCache(int32_t host_id,
const GURL& document_url, const GURL& document_url,
int64_t cache_document_was_loaded_from, int64_t cache_document_was_loaded_from,
const GURL& opt_manifest_url) { const GURL& opt_manifest_url) {
if (appcache_service_) { if (!backend_impl_.SelectCache(host_id, document_url,
if (!backend_impl_.SelectCache(host_id, document_url, cache_document_was_loaded_from,
cache_document_was_loaded_from, opt_manifest_url)) {
opt_manifest_url)) { mojo::ReportBadMessage("ACDH_SELECT_CACHE");
mojo::ReportBadMessage("ACDH_SELECT_CACHE");
}
} else {
frontend_proxy_.OnCacheSelected(host_id, blink::mojom::AppCacheInfo());
} }
} }
void AppCacheDispatcherHost::SelectCacheForSharedWorker(int32_t host_id, void AppCacheDispatcherHost::SelectCacheForSharedWorker(int32_t host_id,
int64_t appcache_id) { int64_t appcache_id) {
if (appcache_service_) { if (!backend_impl_.SelectCacheForSharedWorker(host_id, appcache_id))
if (!backend_impl_.SelectCacheForSharedWorker(host_id, appcache_id)) mojo::ReportBadMessage("ACDH_SELECT_CACHE_FOR_SHARED_WORKER");
mojo::ReportBadMessage("ACDH_SELECT_CACHE_FOR_SHARED_WORKER");
} else {
frontend_proxy_.OnCacheSelected(host_id, blink::mojom::AppCacheInfo());
}
} }
void AppCacheDispatcherHost::MarkAsForeignEntry( void AppCacheDispatcherHost::MarkAsForeignEntry(
int32_t host_id, int32_t host_id,
const GURL& document_url, const GURL& document_url,
int64_t cache_document_was_loaded_from) { int64_t cache_document_was_loaded_from) {
if (appcache_service_) { if (!backend_impl_.MarkAsForeignEntry(host_id, document_url,
if (!backend_impl_.MarkAsForeignEntry(host_id, document_url, cache_document_was_loaded_from)) {
cache_document_was_loaded_from)) { mojo::ReportBadMessage("ACDH_MARK_AS_FOREIGN_ENTRY");
mojo::ReportBadMessage("ACDH_MARK_AS_FOREIGN_ENTRY");
}
} }
} }
...@@ -121,26 +102,22 @@ void AppCacheDispatcherHost::GetResourceList(int32_t host_id, ...@@ -121,26 +102,22 @@ void AppCacheDispatcherHost::GetResourceList(int32_t host_id,
GetResourceListCallback callback) { GetResourceListCallback callback) {
std::vector<blink::mojom::AppCacheResourceInfo> params; std::vector<blink::mojom::AppCacheResourceInfo> params;
std::vector<blink::mojom::AppCacheResourceInfoPtr> out; std::vector<blink::mojom::AppCacheResourceInfoPtr> out;
if (appcache_service_) { backend_impl_.GetResourceList(host_id, &params);
backend_impl_.GetResourceList(host_id, &params);
// Box up params for output.
// Box up params for output. out.reserve(params.size());
out.reserve(params.size()); for (auto& p : params) {
for (auto& p : params) { out.emplace_back(base::in_place, std::move(p));
out.emplace_back(base::in_place, std::move(p));
}
} }
std::move(callback).Run(std::move(out)); std::move(callback).Run(std::move(out));
} }
void AppCacheDispatcherHost::GetStatus(int32_t host_id, void AppCacheDispatcherHost::GetStatus(int32_t host_id,
GetStatusCallback callback) { GetStatusCallback callback) {
if (appcache_service_) { if (backend_impl_.GetStatusWithCallback(host_id, &callback)) {
if (backend_impl_.GetStatusWithCallback(host_id, &callback)) { return;
return; } else {
} else { mojo::ReportBadMessage("ACDH_GET_STATUS");
mojo::ReportBadMessage("ACDH_GET_STATUS");
}
} }
if (callback) { if (callback) {
std::move(callback).Run( std::move(callback).Run(
...@@ -150,12 +127,10 @@ void AppCacheDispatcherHost::GetStatus(int32_t host_id, ...@@ -150,12 +127,10 @@ void AppCacheDispatcherHost::GetStatus(int32_t host_id,
void AppCacheDispatcherHost::StartUpdate(int32_t host_id, void AppCacheDispatcherHost::StartUpdate(int32_t host_id,
StartUpdateCallback callback) { StartUpdateCallback callback) {
if (appcache_service_) { if (backend_impl_.StartUpdateWithCallback(host_id, &callback)) {
if (backend_impl_.StartUpdateWithCallback(host_id, &callback)) { return;
return; } else {
} else { mojo::ReportBadMessage("ACDH_START_UPDATE");
mojo::ReportBadMessage("ACDH_START_UPDATE");
}
} }
if (callback) if (callback)
std::move(callback).Run(false); std::move(callback).Run(false);
...@@ -163,12 +138,10 @@ void AppCacheDispatcherHost::StartUpdate(int32_t host_id, ...@@ -163,12 +138,10 @@ void AppCacheDispatcherHost::StartUpdate(int32_t host_id,
void AppCacheDispatcherHost::SwapCache(int32_t host_id, void AppCacheDispatcherHost::SwapCache(int32_t host_id,
SwapCacheCallback callback) { SwapCacheCallback callback) {
if (appcache_service_) { if (backend_impl_.SwapCacheWithCallback(host_id, &callback)) {
if (backend_impl_.SwapCacheWithCallback(host_id, &callback)) { return;
return; } else {
} else { mojo::ReportBadMessage("ACDH_SWAP_CACHE");
mojo::ReportBadMessage("ACDH_SWAP_CACHE");
}
} }
if (callback) if (callback)
std::move(callback).Run(false); std::move(callback).Run(false);
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
#include "base/process/process.h" #include "base/process/process.h"
#include "content/browser/appcache/appcache_backend_impl.h" #include "content/browser/appcache/appcache_backend_impl.h"
#include "content/browser/appcache/appcache_frontend_proxy.h" #include "content/browser/appcache/appcache_frontend_proxy.h"
...@@ -56,13 +55,9 @@ class AppCacheDispatcherHost : public blink::mojom::AppCacheBackend { ...@@ -56,13 +55,9 @@ class AppCacheDispatcherHost : public blink::mojom::AppCacheBackend {
void GetResourceList(int32_t host_id, void GetResourceList(int32_t host_id,
GetResourceListCallback callback) override; GetResourceListCallback callback) override;
// This object is owned by the |ChromeAppCacheService|, so this is safe.
ChromeAppCacheService* appcache_service_;
AppCacheFrontendProxy frontend_proxy_; AppCacheFrontendProxy frontend_proxy_;
AppCacheBackendImpl backend_impl_; AppCacheBackendImpl backend_impl_;
base::WeakPtrFactory<AppCacheDispatcherHost> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(AppCacheDispatcherHost); DISALLOW_COPY_AND_ASSIGN(AppCacheDispatcherHost);
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment