OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/webui/shared_resources_data_source.h" | 5 #include "content/browser/webui/shared_resources_data_source.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/memory/ref_counted_memory.h" | 8 #include "base/memory/ref_counted_memory.h" |
9 #include "base/threading/thread_restrictions.h" | 9 #include "base/threading/thread_restrictions.h" |
10 #include "content/public/common/content_client.h" | 10 #include "content/public/common/content_client.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 void SharedResourcesDataSource::StartDataRequest( | 41 void SharedResourcesDataSource::StartDataRequest( |
42 const std::string& path, | 42 const std::string& path, |
43 int render_process_id, | 43 int render_process_id, |
44 int render_view_id, | 44 int render_view_id, |
45 const content::URLDataSource::GotDataCallback& callback) { | 45 const content::URLDataSource::GotDataCallback& callback) { |
46 int idr = PathToIDR(path); | 46 int idr = PathToIDR(path); |
47 DCHECK_NE(-1, idr) << " path: " << path; | 47 DCHECK_NE(-1, idr) << " path: " << path; |
48 scoped_refptr<base::RefCountedStaticMemory> bytes( | 48 scoped_refptr<base::RefCountedStaticMemory> bytes( |
49 content::GetContentClient()->GetDataResourceBytes(idr)); | 49 content::GetContentClient()->GetDataResourceBytes(idr)); |
50 | 50 |
51 callback.Run(bytes); | 51 callback.Run(bytes.get()); |
52 } | 52 } |
53 | 53 |
54 std::string SharedResourcesDataSource::GetMimeType( | 54 std::string SharedResourcesDataSource::GetMimeType( |
55 const std::string& path) const { | 55 const std::string& path) const { |
56 // Requests should not block on the disk! On POSIX this goes to disk. | 56 // Requests should not block on the disk! On POSIX this goes to disk. |
57 // http://code.google.com/p/chromium/issues/detail?id=59849 | 57 // http://code.google.com/p/chromium/issues/detail?id=59849 |
58 | 58 |
59 base::ThreadRestrictions::ScopedAllowIO allow_io; | 59 base::ThreadRestrictions::ScopedAllowIO allow_io; |
60 std::string mime_type; | 60 std::string mime_type; |
61 net::GetMimeTypeFromFile(base::FilePath().AppendASCII(path), &mime_type); | 61 net::GetMimeTypeFromFile(base::FilePath().AppendASCII(path), &mime_type); |
62 return mime_type; | 62 return mime_type; |
63 } | 63 } |
OLD | NEW |