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

Side by Side Diff: sky/engine/core/script/dart_loader.cc

Issue 1025073003: Add more tracing to Sky (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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 unified diff | Download patch
« no previous file with comments | « sky/engine/core/script/dart_controller.cc ('k') | sky/shell/ui/animator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/script/dart_loader.h" 6 #include "sky/engine/core/script/dart_loader.h"
7 7
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/trace_event/trace_event.h"
9 #include "mojo/common/data_pipe_drainer.h" 10 #include "mojo/common/data_pipe_drainer.h"
10 #include "sky/engine/core/script/dart_dependency_catcher.h" 11 #include "sky/engine/core/script/dart_dependency_catcher.h"
11 #include "sky/engine/core/script/dom_dart_state.h" 12 #include "sky/engine/core/script/dom_dart_state.h"
12 #include "sky/engine/platform/fetcher/MojoFetcher.h" 13 #include "sky/engine/platform/fetcher/MojoFetcher.h"
13 #include "sky/engine/platform/weborigin/KURL.h" 14 #include "sky/engine/platform/weborigin/KURL.h"
14 #include "sky/engine/tonic/dart_api_scope.h" 15 #include "sky/engine/tonic/dart_api_scope.h"
15 #include "sky/engine/tonic/dart_converter.h" 16 #include "sky/engine/tonic/dart_converter.h"
16 #include "sky/engine/tonic/dart_error.h" 17 #include "sky/engine/tonic/dart_error.h"
17 #include "sky/engine/tonic/dart_isolate_scope.h" 18 #include "sky/engine/tonic/dart_isolate_scope.h"
18 #include "sky/engine/wtf/MainThread.h" 19 #include "sky/engine/wtf/MainThread.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 } 73 }
73 // Subclasses must implement OnDataComplete. 74 // Subclasses must implement OnDataComplete.
74 75
75 KURL url_; 76 KURL url_;
76 MojoFetcher fetcher_; 77 MojoFetcher fetcher_;
77 OwnPtr<DataPipeDrainer> drainer_; 78 OwnPtr<DataPipeDrainer> drainer_;
78 }; 79 };
79 80
80 class DartLoader::ImportJob : public Job { 81 class DartLoader::ImportJob : public Job {
81 public: 82 public:
82 using Job::Job; 83 ImportJob(DartLoader* loader, const KURL& url)
84 : Job(loader, url) {
85 TRACE_EVENT_ASYNC_BEGIN1("sky", "DartLoader::ImportJob", this,
86 "url", url.string().ascii().toStdString());
87 }
83 88
84 private: 89 private:
85 // DataPipeDrainer::Client 90 // DataPipeDrainer::Client
86 void OnDataComplete() override { 91 void OnDataComplete() override {
92 TRACE_EVENT_ASYNC_END0("sky", "DartLoader::ImportJob", this);
87 loader_->DidCompleteImportJob(this, buffer_); 93 loader_->DidCompleteImportJob(this, buffer_);
88 } 94 }
89 }; 95 };
90 96
91 class DartLoader::SourceJob : public Job { 97 class DartLoader::SourceJob : public Job {
92 public: 98 public:
93 SourceJob(DartLoader* loader, const KURL& url, Dart_Handle library) 99 SourceJob(DartLoader* loader, const KURL& url, Dart_Handle library)
94 : Job(loader, url), library_(loader->dart_state(), library) {} 100 : Job(loader, url), library_(loader->dart_state(), library) {
101 TRACE_EVENT_ASYNC_BEGIN1("sky", "DartLoader::SourceJob", this,
102 "url", url.string().ascii().toStdString());
103 }
95 104
96 Dart_PersistentHandle library() const { return library_.value(); } 105 Dart_PersistentHandle library() const { return library_.value(); }
97 106
98 private: 107 private:
99 // DataPipeDrainer::Client 108 // DataPipeDrainer::Client
100 void OnDataComplete() override { 109 void OnDataComplete() override {
110 TRACE_EVENT_ASYNC_END0("sky", "DartLoader::SourceJob", this);
101 loader_->DidCompleteSourceJob(this, buffer_); 111 loader_->DidCompleteSourceJob(this, buffer_);
102 } 112 }
103 113
104 DartPersistentValue library_; 114 DartPersistentValue library_;
105 }; 115 };
106 116
107 // A DependencyWatcher represents a request to watch for when a given set of 117 // A DependencyWatcher represents a request to watch for when a given set of
108 // dependencies (either libraries or parts of libraries) have finished loading. 118 // dependencies (either libraries or parts of libraries) have finished loading.
109 // When the dependencies are satisfied (including transitive dependencies), then 119 // When the dependencies are satisfied (including transitive dependencies), then
110 // the |callback| will be invoked. 120 // the |callback| will be invoked.
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 293
284 WatcherSignaler watcher_signaler(*this, job); 294 WatcherSignaler watcher_signaler(*this, job);
285 295
286 LOG(ERROR) << "Library Load failed: " << job->url().string().utf8().data(); 296 LOG(ERROR) << "Library Load failed: " << job->url().string().utf8().data();
287 // TODO(eseidel): Call Dart_LibraryHandleError in the SourceJob case? 297 // TODO(eseidel): Call Dart_LibraryHandleError in the SourceJob case?
288 298
289 jobs_.remove(job); 299 jobs_.remove(job);
290 } 300 }
291 301
292 } // namespace blink 302 } // namespace blink
OLDNEW
« no previous file with comments | « sky/engine/core/script/dart_controller.cc ('k') | sky/shell/ui/animator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698