OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "sky/engine/config.h" | |
6 #include "sky/engine/bindings/scheduled_action.h" | 5 #include "sky/engine/bindings/scheduled_action.h" |
7 | 6 |
8 #include "sky/engine/tonic/dart_api_scope.h" | 7 #include "sky/engine/tonic/dart_api_scope.h" |
9 #include "sky/engine/tonic/dart_error.h" | 8 #include "sky/engine/tonic/dart_error.h" |
10 #include "sky/engine/tonic/dart_invoke.h" | 9 #include "sky/engine/tonic/dart_invoke.h" |
11 #include "sky/engine/tonic/dart_isolate_scope.h" | 10 #include "sky/engine/tonic/dart_isolate_scope.h" |
12 | 11 |
13 namespace blink { | 12 namespace blink { |
14 | 13 |
15 ScheduledAction::ScheduledAction(DartState* dart_state, Dart_Handle closure) | 14 ScheduledAction::ScheduledAction(DartState* dart_state, Dart_Handle closure) |
16 : closure_(dart_state, closure) { | 15 : closure_(dart_state, closure) { |
17 DCHECK(Dart_IsClosure(closure)); | 16 DCHECK(Dart_IsClosure(closure)); |
18 } | 17 } |
19 | 18 |
20 ScheduledAction::~ScheduledAction() { | 19 ScheduledAction::~ScheduledAction() { |
21 } | 20 } |
22 | 21 |
23 void ScheduledAction::Execute(ExecutionContext*) { | 22 void ScheduledAction::Execute(ExecutionContext*) { |
24 if (!closure_.dart_state()) | 23 if (!closure_.dart_state()) |
25 return; | 24 return; |
26 DartIsolateScope scope(closure_.dart_state()->isolate()); | 25 DartIsolateScope scope(closure_.dart_state()->isolate()); |
27 DartApiScope api_scope; | 26 DartApiScope api_scope; |
28 DartInvokeAppClosure(closure_.value(), 0, nullptr); | 27 DartInvokeAppClosure(closure_.value(), 0, nullptr); |
29 } | 28 } |
30 | 29 |
31 } // namespace blink | 30 } // namespace blink |
OLD | NEW |