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

Unified Diff: sky/engine/bindings-dart/core/dart/DartScriptPromiseResolver.h

Issue 918273002: Remove bindings-dart (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: 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: sky/engine/bindings-dart/core/dart/DartScriptPromiseResolver.h
diff --git a/sky/engine/bindings-dart/core/dart/DartScriptPromiseResolver.h b/sky/engine/bindings-dart/core/dart/DartScriptPromiseResolver.h
deleted file mode 100644
index 2d873003814c7a48dc7a77f4069b8c2c1d52571b..0000000000000000000000000000000000000000
--- a/sky/engine/bindings-dart/core/dart/DartScriptPromiseResolver.h
+++ /dev/null
@@ -1,154 +0,0 @@
-// Copyright 2014 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.
-
-#ifndef DartScriptPromiseResolver_h
-#define DartScriptPromiseResolver_h
-
-#include "bindings/common/ScriptPromiseResolver.h"
-#include "bindings/common/ScriptState.h"
-#include "bindings/core/dart/DartDOMException.h"
-#include "bindings/core/dart/DartDOMWrapper.h"
-#include "bindings/core/dart/DartScriptPromise.h"
-#include "bindings/core/dart/DartUtilities.h"
-#include "bindings/core/v8/V8ScriptState.h"
-#include "core/dom/ActiveDOMObject.h"
-#include "core/dom/ExecutionContext.h"
-#include "platform/Timer.h"
-#include "wtf/RefCounted.h"
-#include <dart_api.h>
-
-namespace blink {
-
-class ScriptPromiseResolver;
-
-class DartScriptPromiseResolver : public AbstractScriptPromiseResolver {
- WTF_MAKE_NONCOPYABLE(DartScriptPromiseResolver);
-
-public:
- static PassOwnPtr<DartScriptPromiseResolver> create(DartScriptState* scriptState, ScriptPromiseResolver* owner)
- {
- return adoptPtr(new DartScriptPromiseResolver(scriptState, owner));
- }
-
- virtual ~DartScriptPromiseResolver()
- {
- // This assertion fails if:
- // - promise() is called at least once and
- // - this resolver is destructed before it is resolved, rejected or
- // the associated ExecutionContext is stopped.
- ASSERT(m_state == ResolvedOrRejected || !m_isPromiseCalled);
- }
-
- ExecutionContext* executionContext() { return m_scriptState->executionContext(); }
-
-#define DECLARE_RESOLUTION_METHODS(type) \
- void resolve(type); \
- void reject(type);
-PROMISE_RESOLUTION_TYPES_LIST(DECLARE_RESOLUTION_METHODS);
-#undef DECLARE_RESOLUTION_METHODS
-
- // Anything that can be passed to toV8Value can be passed to this function.
- template <typename T>
- void resolveInternal(T value)
- {
- resolveOrReject(value, Resolving);
- }
-
- // Anything that can be passed to toV8Value can be passed to this function.
- template <typename T>
- void rejectInternal(T value)
- {
- resolveOrReject(value, Rejecting);
- }
-
- void resolve() { resolve(V8UndefinedType()); }
- void reject() { reject(V8UndefinedType()); }
-
- ScriptState* scriptState() { return m_scriptState.get(); }
-
- // Note that an empty ScriptPromise will be returned after resolve or
- // reject is called.
- PassRefPtr<AbstractScriptPromise> promise()
- {
-#if ENABLE(ASSERT)
- m_isPromiseCalled = true;
-#endif
- ASSERT(m_completer);
- Dart_Handle future = Dart_GetField(m_completer, Dart_NewStringFromCString("future"));
- return DartScriptPromise::create(m_scriptState.get(), future);
- }
-
- ScriptState* scriptState() const { return m_scriptState.get(); }
-
- // ActiveDOMObject implementation.
- virtual void suspend();
- virtual void resume();
- virtual void stop();
-
- // Once this function is called this resolver stays alive while the
- // promise is pending and the associated ExecutionContext isn't stopped.
- void keepAliveWhilePending();
-
-protected:
- // You need to call suspendIfNeeded after the construction because
- // this is an ActiveDOMObject.
- explicit DartScriptPromiseResolver(DartScriptState*, ScriptPromiseResolver*);
-
-private:
- enum ResolutionState {
- Pending,
- Resolving,
- Rejecting,
- ResolvedOrRejected,
- };
- enum LifetimeMode {
- Default,
- KeepAliveWhilePending,
- };
-
- template <typename T>
- void resolveOrReject(T value, ResolutionState newState)
- {
- if (m_state != Pending || !executionContext() || executionContext()->activeDOMObjectsAreStopped())
- return;
- ASSERT(newState == Resolving || newState == Rejecting);
- m_state = newState;
- // Retain this object until it is actually resolved or rejected.
- // |deref| will be called in |clear|.
- m_owner->ref();
-
- DartIsolateScope scope(m_scriptState->isolate());
- DartApiScope apiScope;
- // FIXMEDART: Remove this.
- V8ScriptState::Scope v8Scope(m_scriptState->v8ScriptState());
-
- // FIXMEDART: Should be able to get DartDOMData from a DartScriptState instead of TLS.
- Dart_Handle v = DartValueTraits<T>::toDartValue(value, DartDOMData::current());
- m_value = Dart_NewPersistentHandle(v);
- if (!executionContext()->activeDOMObjectsAreSuspended())
- resolveOrRejectImmediately();
- }
-
- void resolveOrRejectImmediately();
- void onTimerFired(Timer<DartScriptPromiseResolver>*);
- void clear();
-
- ResolutionState m_state;
- const RefPtr<DartScriptState> m_scriptState;
- ScriptPromiseResolver* m_owner;
- LifetimeMode m_mode;
- Timer<DartScriptPromiseResolver> m_timer;
-
- Dart_PersistentHandle m_completer;
- Dart_PersistentHandle m_value;
-
-#if ENABLE(ASSERT)
- // True if promise() is called.
- bool m_isPromiseCalled;
-#endif
-};
-
-} // namespace blink
-
-#endif // #ifndef DartScriptPromiseResolver_h

Powered by Google App Engine
This is Rietveld 408576698