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

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

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.cpp
diff --git a/sky/engine/bindings-dart/core/dart/DartScriptPromiseResolver.cpp b/sky/engine/bindings-dart/core/dart/DartScriptPromiseResolver.cpp
deleted file mode 100644
index f40726ef5cf33b1e9ac0ad6ee45d34ba246d2b9a..0000000000000000000000000000000000000000
--- a/sky/engine/bindings-dart/core/dart/DartScriptPromiseResolver.cpp
+++ /dev/null
@@ -1,116 +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.
-
-#include "config.h"
-#include "bindings/core/dart/DartScriptPromiseResolver.h"
-
-#include "bindings/common/ScriptPromiseResolverIncludes.h"
-
-namespace blink {
-
-DartScriptPromiseResolver::DartScriptPromiseResolver(DartScriptState* scriptState, ScriptPromiseResolver* owner)
- : AbstractScriptPromiseResolver()
- , m_state(Pending)
- , m_scriptState(scriptState)
- , m_owner(owner)
- , m_mode(Default)
- , m_timer(this, &DartScriptPromiseResolver::onTimerFired)
- , m_completer()
-#if ENABLE(ASSERT)
- , m_isPromiseCalled(false)
-#endif
-{
- Dart_Handle asyncLib = Dart_LookupLibrary(Dart_NewStringFromCString("dart:async"));
- Dart_Handle completerClass = Dart_GetType(asyncLib, Dart_NewStringFromCString("Completer"), 0, 0);
- Dart_Handle completer = Dart_New(completerClass, Dart_NewStringFromCString(""), 0, 0);
- m_completer = Dart_NewPersistentHandle(completer);
-
- if (executionContext()->activeDOMObjectsAreStopped())
- m_state = ResolvedOrRejected;
-}
-
-#define DEFINE_RESOLUTION_METHODS(type) \
-void DartScriptPromiseResolver::resolve(type value) { resolveInternal(value); } \
-void DartScriptPromiseResolver::reject(type error) { rejectInternal(error); }
-PROMISE_RESOLUTION_TYPES_LIST(DEFINE_RESOLUTION_METHODS);
-#undef DEFINE_RESOLUTION_METHODS
-
-void DartScriptPromiseResolver::suspend()
-{
- m_timer.stop();
-}
-
-void DartScriptPromiseResolver::resume()
-{
- if (m_state == Resolving || m_state == Rejecting)
- m_timer.startOneShot(0, FROM_HERE);
-}
-
-void DartScriptPromiseResolver::stop()
-{
- m_timer.stop();
- clear();
-}
-
-void DartScriptPromiseResolver::keepAliveWhilePending()
-{
- if (m_state == ResolvedOrRejected || m_mode == KeepAliveWhilePending)
- return;
-
- // Keep |this| while the promise is Pending.
- // deref() will be called in clear().
- m_mode = KeepAliveWhilePending;
- m_owner->ref();
-}
-
-void DartScriptPromiseResolver::onTimerFired(Timer<DartScriptPromiseResolver>*)
-{
- ASSERT(m_state == Resolving || m_state == Rejecting);
- DartIsolateScope scope(m_scriptState->isolate());
- DartApiScope apiScope;
- // FIXMEDART: Remove this.
- V8ScriptState::Scope v8Scope(m_scriptState->v8ScriptState());
- resolveOrRejectImmediately();
-}
-
-void DartScriptPromiseResolver::resolveOrRejectImmediately()
-{
- ASSERT(!executionContext()->activeDOMObjectsAreStopped());
- ASSERT(!executionContext()->activeDOMObjectsAreSuspended());
- {
- if (m_state == Resolving) {
- Dart_Handle value = Dart_HandleFromPersistent(m_value);
- Dart_Invoke(m_completer, Dart_NewStringFromCString("complete"), 1, &value);
- } else {
- ASSERT(m_state == Rejecting);
- Dart_Handle error = Dart_HandleFromPersistent(m_value);
- Dart_Invoke(m_completer, Dart_NewStringFromCString("completeError"), 1, &error);
- }
- }
- clear();
-}
-
-void DartScriptPromiseResolver::clear()
-{
- if (m_state == ResolvedOrRejected)
- return;
- ResolutionState state = m_state;
- m_state = ResolvedOrRejected;
- Dart_DeletePersistentHandle(m_completer);
- Dart_DeletePersistentHandle(m_value);
-
- if (m_mode == KeepAliveWhilePending) {
- // |ref| was called in |keepAliveWhilePending|.
- m_owner->deref();
- }
- // |this| may be deleted here, but it is safe to check |state| because
- // it doesn't depend on |this|. When |this| is deleted, |state| can't be
- // |Resolving| nor |Rejecting| and hence |this->deref()| can't be executed.
- if (state == Resolving || state == Rejecting) {
- // |ref| was called in |resolveOrReject|.
- m_owner->deref();
- }
-}
-
-} // namespace blink
« no previous file with comments | « sky/engine/bindings-dart/core/dart/DartScriptPromiseResolver.h ('k') | sky/engine/bindings-dart/core/dart/DartScriptState.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698