| 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
 | 
| 
 |