| Index: sky/sdk/lib/framework/net/image_cache.dart
|
| diff --git a/sky/sdk/lib/framework/net/image_cache.dart b/sky/sdk/lib/framework/net/image_cache.dart
|
| index dcb2ac2e9d63b4eda154d832cf23b35ccd5479b7..ccd69996e022b2d5bd161788674fd8de34583bf1 100644
|
| --- a/sky/sdk/lib/framework/net/image_cache.dart
|
| +++ b/sky/sdk/lib/framework/net/image_cache.dart
|
| @@ -2,17 +2,19 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -import 'dart:sky' as sky;
|
| +import 'dart:sky';
|
| import 'dart:collection';
|
| +import 'fetch.dart';
|
| +import 'package:mojom/mojo/url_response.mojom.dart';
|
|
|
| -final HashMap<String, List<sky.ImageLoaderCallback>> _pendingRequests =
|
| - new HashMap<String, List<sky.ImageLoaderCallback>>();
|
| +final HashMap<String, List<ImageDecoderCallback>> _pendingRequests =
|
| + new HashMap<String, List<ImageDecoderCallback>>();
|
|
|
| -final HashMap<String, sky.Image> _completedRequests =
|
| - new HashMap<String, sky.Image>();
|
| +final HashMap<String, Image> _completedRequests =
|
| + new HashMap<String, Image>();
|
|
|
| -void load(String url, sky.ImageLoaderCallback callback) {
|
| - sky.Image result = _completedRequests[url];
|
| +void load(String url, ImageDecoderCallback callback) {
|
| + Image result = _completedRequests[url];
|
| if (result != null) {
|
| callback(_completedRequests[url]);
|
| return;
|
| @@ -21,13 +23,15 @@ void load(String url, sky.ImageLoaderCallback callback) {
|
| bool newRequest = false;
|
| _pendingRequests.putIfAbsent(url, () {
|
| newRequest = true;
|
| - return new List<sky.ImageLoaderCallback>();
|
| + return new List<ImageDecoderCallback>();
|
| }).add(callback);
|
| if (newRequest) {
|
| - new sky.ImageLoader(url, (image) {
|
| - _completedRequests[url] = image;
|
| - _pendingRequests[url].forEach((c) => c(image));
|
| - _pendingRequests.remove(url);
|
| + fetchUrl(url).then((UrlResponse response) {
|
| + new ImageDecoder(response.body.handle.h, (image) {
|
| + _completedRequests[url] = image;
|
| + _pendingRequests[url].forEach((c) => c(image));
|
| + _pendingRequests.remove(url);
|
| + });
|
| });
|
| }
|
| }
|
|
|