| // Copyright (c) 2011 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 "chrome/browser/service_process/service_process_control.h" |
| |
| #include "base/bind.h" |
| #include "base/command_line.h" |
| #include "base/mac/scoped_cftyperef.h" |
| #include "chrome/common/service_process_util_posix.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "third_party/google_toolbox_for_mac/src/Foundation/GTMServiceManagement.h" |
| |
| using content::BrowserThread; |
| |
| void ServiceProcessControl::Launcher::DoRun() { |
| base::ScopedCFTypeRef<CFDictionaryRef> launchd_plist( |
| CreateServiceProcessLaunchdPlist(cmd_line_.get(), false)); |
| CFErrorRef error = NULL; |
| if (!GTMSMJobSubmit(launchd_plist, &error)) { |
| LOG(ERROR) << error; |
| CFRelease(error); |
| } else { |
| launched_ = true; |
| } |
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
| base::Bind(&Launcher::Notify, this)); |
| } |