#include "content/browser/renderer_host/keep_alive_handle_factory.h"
#include <atomic>
#include <memory>
#include <utility>
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "content/browser/renderer_host/render_process_host_impl.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/content_browser_client.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/common/content_client.h"
#include "content/public/common/content_features.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/unique_receiver_set.h"
#include "third_party/blink/public/mojom/loader/keep_alive_handle.mojom.h"
#include "third_party/blink/public/mojom/loader/keep_alive_handle_factory.mojom.h"
namespace content {
namespace {
std::atomic_uint64_t handle_sequence_id{ … };
inline uint64_t GetNextHandleId() { … }
class KeepAliveHandleImpl final : public blink::mojom::KeepAliveHandle { … };
}
class KeepAliveHandleFactory::Context
: public blink::mojom::KeepAliveHandleFactory { … };
KeepAliveHandleFactory::KeepAliveHandleFactory(RenderProcessHost* process_host,
base::TimeDelta timeout)
: … { … }
KeepAliveHandleFactory::~KeepAliveHandleFactory() { … }
void KeepAliveHandleFactory::Bind(
mojo::PendingReceiver<blink::mojom::KeepAliveHandleFactory> receiver) { … }
}