Home | History | Annotate | Download | only in browser
      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 
     15 void 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