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" | 5 #include "sky/engine/config.h" |
6 #include "sky/engine/core/app/AbstractModule.h" | 6 #include "sky/engine/core/app/AbstractModule.h" |
7 | 7 |
8 #include "sky/engine/core/app/Module.h" | 8 #include "sky/engine/core/app/Module.h" |
9 | 9 |
10 namespace blink { | 10 namespace blink { |
11 | 11 |
12 AbstractModule::AbstractModule(ExecutionContext* context, | 12 AbstractModule::AbstractModule(ExecutionContext* context, |
13 PassRefPtr<Document> document, | 13 PassRefPtr<Document> document, |
14 const String& url) | 14 const String& url) |
15 : ContextLifecycleObserver(context), | 15 : ContextLifecycleObserver(context), |
16 document_(document), | 16 document_(document), |
17 url_(url) { | 17 url_(url) { |
18 document_->setModule(this); | 18 document_->setModule(this); |
19 } | 19 } |
20 | 20 |
21 AbstractModule::~AbstractModule() { | 21 AbstractModule::~AbstractModule() { |
22 document_->setModule(nullptr); | 22 document_->setModule(nullptr); |
23 } | 23 } |
24 | 24 |
| 25 void AbstractModule::AddLibrary(RefPtr<DartValue> library, |
| 26 TextPosition position) { |
| 27 libraries_.append(LibraryEntry(library, position)); |
| 28 } |
| 29 |
| 30 String AbstractModule::UrlForLibraryAt(TextPosition position) { |
| 31 // TODO(eseidel): This could produce invalid urls? |
| 32 // TODO(abarth): Mangle these library names to they're not predictable. |
| 33 // Otherwise you could 'import url.sky' in dart and it could magically work! |
| 34 int line = position.m_line.zeroBasedInt(); |
| 35 int column = position.m_column.zeroBasedInt(); |
| 36 return url() + String::format("#l%d,c%d", line, column); |
| 37 } |
| 38 |
25 ExecutionContext* AbstractModule::executionContext() const { | 39 ExecutionContext* AbstractModule::executionContext() const { |
26 return ContextLifecycleObserver::executionContext(); | 40 return ContextLifecycleObserver::executionContext(); |
27 } | 41 } |
28 | 42 |
29 } // namespace blink | 43 } // namespace blink |
OLD | NEW |