Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: chrome/browser/icon_loader_mac.mm

Issue 192883004: linux_aura: run IconLoader::ReadIcon on the UI thread. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "chrome/browser/icon_loader.h" 5 #include "chrome/browser/icon_loader.h"
6 6
7 #import <AppKit/AppKit.h> 7 #import <AppKit/AppKit.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "base/strings/sys_string_conversions.h" 12 #include "base/strings/sys_string_conversions.h"
13 #include "base/threading/thread.h" 13 #include "base/threading/thread.h"
14 #include "ui/gfx/image/image_skia.h" 14 #include "ui/gfx/image/image_skia.h"
15 #include "ui/gfx/image/image_skia_util_mac.h" 15 #include "ui/gfx/image/image_skia_util_mac.h"
16 16
17 // static 17 // static
18 IconGroupID IconLoader::ReadGroupIDFromFilepath( 18 IconGroupID IconLoader::ReadGroupIDFromFilepath(
19 const base::FilePath& filepath) { 19 const base::FilePath& filepath) {
20 return filepath.Extension(); 20 return filepath.Extension();
21 } 21 }
22 22
23 // static
23 bool IconLoader::IsIconMutableFromFilepath(const base::FilePath&) { 24 bool IconLoader::IsIconMutableFromFilepath(const base::FilePath&) {
24 return false; 25 return false;
25 } 26 }
26 27
28 // static
29 content::BrowserThread::ID IconLoader::ReadIconThreadID() {
30 return content::BrowserThread::FILE;
31 }
32
27 void IconLoader::ReadIcon() { 33 void IconLoader::ReadIcon() {
28 NSString* group = base::SysUTF8ToNSString(group_); 34 NSString* group = base::SysUTF8ToNSString(group_);
29 NSWorkspace* workspace = [NSWorkspace sharedWorkspace]; 35 NSWorkspace* workspace = [NSWorkspace sharedWorkspace];
30 NSImage* icon = [workspace iconForFileType:group]; 36 NSImage* icon = [workspace iconForFileType:group];
31 37
32 if (icon_size_ == ALL) { 38 if (icon_size_ == ALL) {
33 // The NSImage already has all sizes. 39 // The NSImage already has all sizes.
34 image_.reset(new gfx::Image([icon retain])); 40 image_.reset(new gfx::Image([icon retain]));
35 } else { 41 } else {
36 NSSize size = NSZeroSize; 42 NSSize size = NSZeroSize;
(...skipping 10 matching lines...) Expand all
47 gfx::ImageSkia image_skia(gfx::ImageSkiaFromResizedNSImage(icon, size)); 53 gfx::ImageSkia image_skia(gfx::ImageSkiaFromResizedNSImage(icon, size));
48 if (!image_skia.isNull()) { 54 if (!image_skia.isNull()) {
49 image_skia.MakeThreadSafe(); 55 image_skia.MakeThreadSafe();
50 image_.reset(new gfx::Image(image_skia)); 56 image_.reset(new gfx::Image(image_skia));
51 } 57 }
52 } 58 }
53 59
54 target_message_loop_->PostTask(FROM_HERE, 60 target_message_loop_->PostTask(FROM_HERE,
55 base::Bind(&IconLoader::NotifyDelegate, this)); 61 base::Bind(&IconLoader::NotifyDelegate, this));
56 } 62 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698