Index: cloud_print/virtual_driver/posix/printer_driver_util_mac.mm |
diff --git a/cloud_print/virtual_driver/posix/printer_driver_util_mac.mm b/cloud_print/virtual_driver/posix/printer_driver_util_mac.mm |
deleted file mode 100644 |
index ddda3dabf54f66a3ece696dfe8e07728e139eb4c..0000000000000000000000000000000000000000 |
--- a/cloud_print/virtual_driver/posix/printer_driver_util_mac.mm |
+++ /dev/null |
@@ -1,128 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "cloud_print/virtual_driver/posix/printer_driver_util_posix.h" |
- |
-#import <ApplicationServices/ApplicationServices.h> |
-#import <CoreServices/CoreServices.h> |
-#import <Foundation/NSAutoreleasePool.h> |
-#import <Foundation/NSAppleEventDescriptor.h> |
-#import <ScriptingBridge/SBApplication.h> |
- |
-#include "base/logging.h" |
-#include "base/mac/foundation_util.h" |
-#include "base/mac/mac_logging.h" |
- |
-#include <cups/backend.h> |
- |
-#include <stdlib.h> |
-#include <string> |
- |
-// Duplicated is chrome/common/cloud_print/cloud_print_class_mac.h |
-const AEEventClass kAECloudPrintClass = 'GCPp'; |
- |
-namespace cloud_print { |
-// Checks to see whether the browser process, whose bundle ID |
-// is specified by bundle ID, is running. |
-bool IsBrowserRunning(std::string bundleID) { |
- SBApplication* app = [SBApplication applicationWithBundleIdentifier: |
- [NSString stringWithUTF8String:bundleID.c_str()]]; |
- if ([app isRunning]) { |
- return true; |
- } |
- return false; |
-} |
-} // namespace cloud_print |
- |
-namespace printer_driver_util { |
-void LaunchPrintDialog(const std::string& outputPath, |
- const std::string& jobTitle, |
- const std::string& user, |
- const std::string& print_ticket) { |
- NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; |
- OSStatus status = noErr; |
- FSRef ref; |
- // Get the bundleID of the browser. |
- std::string bundleID = base::mac::BaseBundleID(); |
- // If the browser is running, send the event to it. |
- // Otherwise, send the event to the service process. |
- if (!cloud_print::IsBrowserRunning(bundleID)) { |
- // Generate the bundle ID for the Service process. |
- bundleID = bundleID + ".helper"; |
- } |
- CFStringRef bundleIDCF = CFStringCreateWithCString( |
- NULL, |
- bundleID.c_str(), |
- kCFStringEncodingUTF8); |
- CFURLRef* kDontWantURL = NULL; |
- // Locate the service process with the help of the bundle ID. |
- status = LSFindApplicationForInfo(kLSUnknownCreator, bundleIDCF, |
- NULL, &ref, kDontWantURL); |
- |
- if (status != noErr) { |
- OSSTATUS_LOG(ERROR, status) |
- << "Couldn't locate the process to send Apple Event"; |
- exit(CUPS_BACKEND_CANCEL); |
- } |
- |
- // Create the actual Apple Event. |
- NSAppleEventDescriptor* event = |
- [NSAppleEventDescriptor appleEventWithEventClass:kAECloudPrintClass |
- eventID:kAECloudPrintClass |
- targetDescriptor:nil |
- returnID:kAutoGenerateReturnID |
- transactionID:kAnyTransactionID]; |
- |
- if(event == nil) { |
- LOG(ERROR) << "Unable to Create Event"; |
- exit(CUPS_BACKEND_CANCEL); |
- } |
- |
- // Create the AppleEvent parameters. |
- NSAppleEventDescriptor* printPath = |
- [NSAppleEventDescriptor descriptorWithString: |
- [NSString stringWithUTF8String:outputPath.c_str()]]; |
- NSAppleEventDescriptor* title = |
- [NSAppleEventDescriptor descriptorWithString: |
- [NSString stringWithUTF8String:jobTitle.c_str()]]; |
- NSAppleEventDescriptor* mime = [NSAppleEventDescriptor |
- descriptorWithString:@"application/pdf"]; |
- NSAppleEventDescriptor* ticket = |
- [NSAppleEventDescriptor descriptorWithString: |
- [NSString stringWithUTF8String:print_ticket.c_str()]]; |
- |
- // Create and populate the list of parameters. |
- // Note that the array starts at index 1. |
- NSAppleEventDescriptor* parameters = [NSAppleEventDescriptor listDescriptor]; |
- |
- if(parameters == nil) { |
- LOG(ERROR) << "Unable to Create Paramters"; |
- exit(CUPS_BACKEND_CANCEL); |
- } |
- |
- [parameters insertDescriptor:mime atIndex:1]; |
- [parameters insertDescriptor:printPath atIndex:2]; |
- [parameters insertDescriptor:title atIndex:3]; |
- [parameters insertDescriptor:ticket atIndex:4]; |
- [event setParamDescriptor:parameters forKeyword:kAECloudPrintClass]; |
- |
- // Set the application launch parameters. |
- // We are just using launch services to deliver our Apple Event. |
- LSApplicationParameters params = { |
- 0, kLSLaunchDefaults , &ref, NULL, NULL, NULL, NULL }; |
- |
- AEDesc* initialEvent = const_cast<AEDesc*> ([event aeDesc]); |
- params.initialEvent = static_cast<AppleEvent*> (initialEvent); |
- // Deliver the Apple Event using launch services. |
- status = LSOpenApplication(¶ms, NULL); |
- if (status != noErr) { |
- OSSTATUS_LOG(ERROR, status) << "Unable to launch"; |
- exit(CUPS_BACKEND_CANCEL); |
- } |
- |
- [pool release]; |
- return; |
-} |
- |
-} // namespace printer_driver_util |