Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1637)

Unified Diff: Source/modules/presentation/PresentationSession.cpp

Issue 940503002: [PresentationAPI] Added plumbing for start/joinSession from JS to platform (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Addressed comment Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/modules/presentation/PresentationSession.cpp
diff --git a/Source/modules/presentation/PresentationSession.cpp b/Source/modules/presentation/PresentationSession.cpp
index a7920a0747f08f762c06e42e10cc656b282f16e3..97012e683c7d10462acdf70f8d5fd755cb5c1cf7 100644
--- a/Source/modules/presentation/PresentationSession.cpp
+++ b/Source/modules/presentation/PresentationSession.cpp
@@ -5,12 +5,17 @@
#include "config.h"
#include "modules/presentation/PresentationSession.h"
+#include "core/dom/Document.h"
+#include "core/frame/LocalFrame.h"
#include "modules/EventTargetModules.h"
+#include "public/platform/modules/presentation/WebPresentationSessionClient.h"
namespace blink {
-PresentationSession::PresentationSession(ExecutionContext* executionContext)
- : ContextLifecycleObserver(executionContext)
+PresentationSession::PresentationSession(LocalFrame* frame, WebPresentationSessionClient* client)
+ : DOMWindowProperty(frame)
+ , m_id(client->getId())
mlamouri (slow - plz ping) 2015/02/25 20:51:06 So if you only need the id, maybe you could only p
whywhat 2015/02/25 21:04:14 The client needs to outlive the callback since it
mlamouri (slow - plz ping) 2015/02/25 21:08:54 Understood. That's why you should pass the id only
whywhat 2015/02/25 22:46:52 Ok, I'll pass the presentation id and will use it
+ , m_state("disconnected")
{
}
@@ -19,9 +24,9 @@ PresentationSession::~PresentationSession()
}
// static
-PresentationSession* PresentationSession::create(ExecutionContext* executionContext)
+PresentationSession* PresentationSession::create(LocalFrame* frame, WebPresentationSessionClient* client)
{
- return new PresentationSession(executionContext);
+ return new PresentationSession(frame, client);
}
const AtomicString& PresentationSession::interfaceName() const
@@ -31,13 +36,14 @@ const AtomicString& PresentationSession::interfaceName() const
ExecutionContext* PresentationSession::executionContext() const
{
- return ContextLifecycleObserver::executionContext();
-}
+ if (!frame())
+ return nullptr;
+ return frame()->document();}
DEFINE_TRACE(PresentationSession)
{
RefCountedGarbageCollectedEventTargetWithInlineData<PresentationSession>::trace(visitor);
- ContextLifecycleObserver::trace(visitor);
+ DOMWindowProperty::trace(visitor);
}
void PresentationSession::postMessage(const String& message)

Powered by Google App Engine
This is Rietveld 408576698