• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/icon_loader.h"
6
7#import <AppKit/AppKit.h>
8
9#include "base/message_loop.h"
10#include "base/threading/thread.h"
11#include "base/sys_string_conversions.h"
12#include "skia/ext/skia_utils_mac.h"
13#include "third_party/skia/include/core/SkBitmap.h"
14
15void IconLoader::ReadIcon() {
16  NSString* group = base::SysUTF8ToNSString(group_);
17  NSWorkspace* workspace = [NSWorkspace sharedWorkspace];
18  NSImage* icon = [workspace iconForFileType:group];
19
20  // Mac will ignore the size because icons have multiple size representations
21  // and NSImage choses the best at draw-time.
22  image_.reset(new gfx::Image([icon retain]));
23
24  target_message_loop_->PostTask(FROM_HERE,
25      NewRunnableMethod(this, &IconLoader::NotifyDelegate));
26}
27