Chromium Code Reviews| Index: Source/modules/presentation/PresentationSessionClientCallbacks.cpp |
| diff --git a/Source/modules/presentation/PresentationSessionClientCallbacks.cpp b/Source/modules/presentation/PresentationSessionClientCallbacks.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..93e082132a16da9cc0ed9ada663f19afde064117 |
| --- /dev/null |
| +++ b/Source/modules/presentation/PresentationSessionClientCallbacks.cpp |
| @@ -0,0 +1,51 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "config.h" |
| +#include "modules/presentation/PresentationSessionClientCallbacks.h" |
| + |
| +#include "bindings/core/v8/ScriptPromiseResolver.h" |
| +#include "core/dom/DOMException.h" |
| +#include "core/dom/ExceptionCode.h" |
| +#include "modules/presentation/Presentation.h" |
| +#include "modules/presentation/PresentationSession.h" |
| +#include "public/platform/WebString.h" |
| +#include "public/platform/modules/presentation/WebPresentationError.h" |
| + |
| +namespace blink { |
| + |
| +PresentationSessionClientCallbacks::PresentationSessionClientCallbacks( |
| + PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver, |
| + Presentation* presentation) |
| + : m_resolver(resolver) |
| + , m_presentation(presentation) |
| +{ |
| + ASSERT(m_resolver); |
| + ASSERT(m_presentation); |
| +} |
| + |
| +PresentationSessionClientCallbacks::~PresentationSessionClientCallbacks() |
| +{ |
| +} |
| + |
| +// |session| takes ownership of |client| and |m_presentation| takes ownership of the session. |
| +void PresentationSessionClientCallbacks::onSuccess(WebPresentationSessionClient* client) |
| +{ |
| + ASSERT(client); |
| + PresentationSession* session = PresentationSession::create(m_presentation->frame(), client); |
|
mlamouri (slow - plz ping)
2015/02/25 20:51:06
Could you rewrite that so it follows the same patt
whywhat
2015/02/25 22:46:52
I added the checks and fixed ownership of the para
|
| + m_presentation->didCreateSession(session); |
| + m_resolver->resolve(session); |
| +} |
| + |
| +void PresentationSessionClientCallbacks::onError(WebPresentationError* error) |
| +{ |
| + ASSERT(error); |
| + // TODO(avayvod): figure out the mapping between WebPresentationError and |
| + // DOMException error codes. |
| + m_resolver->reject(DOMException::create(InvalidAccessError, error->message)); |
|
mlamouri (slow - plz ping)
2015/02/25 20:51:06
ditto.
whywhat
2015/02/25 22:46:52
Done.
|
| + |
| + delete error; |
| +} |
| + |
| +} // namespace blink |