summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/loader/private/prerender_handle.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/loader/private/prerender_handle.h')
-rw-r--r--chromium/third_party/blink/renderer/core/loader/private/prerender_handle.h36
1 files changed, 27 insertions, 9 deletions
diff --git a/chromium/third_party/blink/renderer/core/loader/private/prerender_handle.h b/chromium/third_party/blink/renderer/core/loader/private/prerender_handle.h
index b9d4a97460a..18df853e178 100644
--- a/chromium/third_party/blink/renderer/core/loader/private/prerender_handle.h
+++ b/chromium/third_party/blink/renderer/core/loader/private/prerender_handle.h
@@ -33,18 +33,21 @@
#include "base/macros.h"
#include "base/memory/scoped_refptr.h"
-#include "third_party/blink/renderer/core/execution_context/context_lifecycle_observer.h"
+#include "base/util/type_safety/pass_key.h"
+#include "mojo/public/cpp/bindings/remote.h"
+#include "third_party/blink/public/mojom/prerender/prerender.mojom-blink.h"
+#include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
#include "third_party/blink/renderer/platform/heap/handle.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
namespace blink {
class Document;
-class Prerender;
class PrerenderClient;
class PrerenderHandle final : public GarbageCollected<PrerenderHandle>,
- public ContextLifecycleObserver {
+ public ExecutionContextLifecycleObserver,
+ public mojom::blink::PrerenderHandleClient {
USING_GARBAGE_COLLECTED_MIXIN(PrerenderHandle);
USING_PRE_FINALIZER(PrerenderHandle, Dispose);
@@ -54,22 +57,37 @@ class PrerenderHandle final : public GarbageCollected<PrerenderHandle>,
const KURL&,
unsigned prerender_rel_types);
- PrerenderHandle(Document&, Prerender*);
- virtual ~PrerenderHandle();
+ using PassKey = util::PassKey<PrerenderHandle>;
+ PrerenderHandle(PassKey,
+ Document&,
+ PrerenderClient*,
+ const KURL&,
+ mojo::Remote<mojom::blink::PrerenderHandle>,
+ mojo::PendingReceiver<mojom::blink::PrerenderHandleClient>);
+ ~PrerenderHandle() override;
void Dispose();
void Cancel();
const KURL& Url() const;
- // ContextLifecycleObserver:
- void ContextDestroyed(ExecutionContext*) override;
+ // ExecutionContextLifecycleObserver:
+ void ContextDestroyed() override;
- void Trace(blink::Visitor*) override;
+ // mojom::blink::PrerenderHandleClient:
+ void OnPrerenderStart() override;
+ void OnPrerenderStopLoading() override;
+ void OnPrerenderDomContentLoaded() override;
+ void OnPrerenderStop() override;
+
+ void Trace(Visitor*) override;
private:
void Detach();
- Member<Prerender> prerender_;
+ KURL url_;
+ WeakMember<PrerenderClient> client_;
+ mojo::Remote<mojom::blink::PrerenderHandle> remote_handle_;
+ mojo::Receiver<mojom::blink::PrerenderHandleClient> receiver_;
DISALLOW_COPY_AND_ASSIGN(PrerenderHandle);
};