// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_CACHE_WRITER_H_ #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_CACHE_WRITER_H_ #include <stddef.h> #include <map> #include <memory> #include <set> #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "components/services/storage/public/mojom/service_worker_storage_control.mojom.h" #include "content/common/content_export.h" #include "mojo/public/cpp/bindings/remote.h" #include "net/base/io_buffer.h" #include "net/base/net_errors.h" #include "services/network/public/mojom/url_response_head.mojom.h" namespace crypto { class SecureHash; } // namespace crypto namespace content { // This class is responsible for possibly updating the ServiceWorker script // cache for an installed ServiceWorker main script. If there is no existing // cache entry, this class always writes supplied data back to the cache; if // there is an existing cache entry, this class only writes supplied data back // if there is a cache mismatch. // // Note that writes done by this class cannot be "short" - ie, if they succeed, // they always write all the supplied data back. Therefore completions are // signalled with net::Error without a count of bytes written. // // This class's behavior is modelled as a state machine; see the DoLoop function // for comments about this. class CONTENT_EXPORT ServiceWorkerCacheWriter { … }; } // namespace content #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_CACHE_WRITER_H_