| // Copyright 2015 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. |
| |
| part of dart_controller_service_isolate; |
| |
| String detectMimeType(String name) { |
| var extensionStart = name.lastIndexOf('.'); |
| var extension = name.substring(extensionStart+1); |
| switch (extension) { |
| case 'html': |
| return 'text/html; charset=UTF-8'; |
| case 'dart': |
| return 'application/dart; charset=UTF-8'; |
| case 'js': |
| return 'application/javascript; charset=UTF-8'; |
| case 'css': |
| return 'text/css; charset=UTF-8'; |
| case 'gif': |
| return 'image/gif'; |
| case 'png': |
| return 'image/png'; |
| case 'jpg': |
| return 'image/jpeg'; |
| case 'jpeg': |
| return 'image/jpeg'; |
| case 'svg': |
| return 'image/svg+xml'; |
| default: |
| return 'text/plain'; |
| } |
| } |
| |
| |
| class Resource { |
| final String name; |
| final String mimeType; |
| final List<int> data; |
| Resource(this.name, this.mimeType, this.data); |
| static final Map<String, Resource> resources = new Map<String, Resource>(); |
| } |
| |
| |
| _addResource(String name, List<int> data) { |
| var mimeType = detectMimeType(name); |
| Resource resource = new Resource(name, mimeType, data); |
| Resource.resources[name] = resource; |
| } |
| |
| _triggerResourceLoad() native "ServiceIsolate_TriggerResourceLoad"; |