OLD | NEW |
1 // Copyright (c) 2011 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 "cloud_print/virtual_driver/posix/printer_driver_util_posix.h" | 5 #include "cloud_print/virtual_driver/posix/printer_driver_util_posix.h" |
6 | 6 |
7 #import <ApplicationServices/ApplicationServices.h> | 7 #import <ApplicationServices/ApplicationServices.h> |
8 #import <CoreServices/CoreServices.h> | 8 #import <CoreServices/CoreServices.h> |
9 #import <Foundation/NSAutoreleasePool.h> | 9 #import <Foundation/NSAutoreleasePool.h> |
10 #import <Foundation/NSAppleEventDescriptor.h> | 10 #import <Foundation/NSAppleEventDescriptor.h> |
11 #import <ScriptingBridge/SBApplication.h> | 11 #import <ScriptingBridge/SBApplication.h> |
12 | 12 |
13 #include "base/logging.h" | 13 #include "base/logging.h" |
14 #include "base/mac/foundation_util.h" | 14 #include "base/mac/foundation_util.h" |
| 15 #include "base/mac/mac_logging.h" |
15 | 16 |
16 #include <cups/backend.h> | 17 #include <cups/backend.h> |
17 | 18 |
18 #include <stdlib.h> | 19 #include <stdlib.h> |
19 #include <string> | 20 #include <string> |
20 | 21 |
21 // Duplicated is chrome/common/cloud_print/cloud_print_class_mac.h | 22 // Duplicated is chrome/common/cloud_print/cloud_print_class_mac.h |
22 const AEEventClass kAECloudPrintClass = 'GCPp'; | 23 const AEEventClass kAECloudPrintClass = 'GCPp'; |
23 | 24 |
24 namespace cloud_print { | 25 namespace cloud_print { |
(...skipping 28 matching lines...) Expand all Loading... |
53 CFStringRef bundleIDCF = CFStringCreateWithCString( | 54 CFStringRef bundleIDCF = CFStringCreateWithCString( |
54 NULL, | 55 NULL, |
55 bundleID.c_str(), | 56 bundleID.c_str(), |
56 kCFStringEncodingUTF8); | 57 kCFStringEncodingUTF8); |
57 CFURLRef* kDontWantURL = NULL; | 58 CFURLRef* kDontWantURL = NULL; |
58 // Locate the service process with the help of the bundle ID. | 59 // Locate the service process with the help of the bundle ID. |
59 status = LSFindApplicationForInfo(kLSUnknownCreator, bundleIDCF, | 60 status = LSFindApplicationForInfo(kLSUnknownCreator, bundleIDCF, |
60 NULL, &ref, kDontWantURL); | 61 NULL, &ref, kDontWantURL); |
61 | 62 |
62 if (status != noErr) { | 63 if (status != noErr) { |
63 LOG(ERROR) << "Couldn't locate the process to send Apple Event"; | 64 OSSTATUS_LOG(ERROR, status) |
| 65 << "Couldn't locate the process to send Apple Event"; |
64 exit(CUPS_BACKEND_CANCEL); | 66 exit(CUPS_BACKEND_CANCEL); |
65 } | 67 } |
66 | 68 |
67 // Create the actual Apple Event. | 69 // Create the actual Apple Event. |
68 NSAppleEventDescriptor* event = | 70 NSAppleEventDescriptor* event = |
69 [NSAppleEventDescriptor appleEventWithEventClass:kAECloudPrintClass | 71 [NSAppleEventDescriptor appleEventWithEventClass:kAECloudPrintClass |
70 eventID:kAECloudPrintClass | 72 eventID:kAECloudPrintClass |
71 targetDescriptor:nil | 73 targetDescriptor:nil |
72 returnID:kAutoGenerateReturnID | 74 returnID:kAutoGenerateReturnID |
73 transactionID:kAnyTransactionID]; | 75 transactionID:kAnyTransactionID]; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 // Set the application launch parameters. | 110 // Set the application launch parameters. |
109 // We are just using launch services to deliver our Apple Event. | 111 // We are just using launch services to deliver our Apple Event. |
110 LSApplicationParameters params = { | 112 LSApplicationParameters params = { |
111 0, kLSLaunchDefaults , &ref, NULL, NULL, NULL, NULL }; | 113 0, kLSLaunchDefaults , &ref, NULL, NULL, NULL, NULL }; |
112 | 114 |
113 AEDesc* initialEvent = const_cast<AEDesc*> ([event aeDesc]); | 115 AEDesc* initialEvent = const_cast<AEDesc*> ([event aeDesc]); |
114 params.initialEvent = static_cast<AppleEvent*> (initialEvent); | 116 params.initialEvent = static_cast<AppleEvent*> (initialEvent); |
115 // Deliver the Apple Event using launch services. | 117 // Deliver the Apple Event using launch services. |
116 status = LSOpenApplication(¶ms, NULL); | 118 status = LSOpenApplication(¶ms, NULL); |
117 if (status != noErr) { | 119 if (status != noErr) { |
118 LOG(ERROR) << "Unable to launch"; | 120 OSSTATUS_LOG(ERROR, status) << "Unable to launch"; |
119 LOG(ERROR) << GetMacOSStatusErrorString(status); | |
120 LOG(ERROR) << GetMacOSStatusCommentString(status); | |
121 exit(CUPS_BACKEND_CANCEL); | 121 exit(CUPS_BACKEND_CANCEL); |
122 } | 122 } |
123 | 123 |
124 [pool release]; | 124 [pool release]; |
125 return; | 125 return; |
126 } | 126 } |
127 | 127 |
128 } // namespace printer_driver_util | 128 } // namespace printer_driver_util |
OLD | NEW |