michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: BOOL LaunchWinPostProcess(const WCHAR *installationDir, michael@0: const WCHAR *updateInfoDir, michael@0: bool forceSync, michael@0: HANDLE userToken); michael@0: BOOL StartServiceUpdate(LPCWSTR installDir); michael@0: BOOL GetUpdateDirectoryPath(LPWSTR path); michael@0: DWORD LaunchServiceSoftwareUpdateCommand(int argc, LPCWSTR *argv); michael@0: BOOL WriteStatusFailure(LPCWSTR updateDirPath, int errorCode); michael@0: BOOL WriteStatusPending(LPCWSTR updateDirPath); michael@0: DWORD WaitForServiceStop(LPCWSTR serviceName, DWORD maxWaitSeconds); michael@0: DWORD WaitForProcessExit(LPCWSTR filename, DWORD maxSeconds); michael@0: BOOL DoesFallbackKeyExist(); michael@0: BOOL IsLocalFile(LPCWSTR file, BOOL &isLocal); michael@0: DWORD StartServiceCommand(int argc, LPCWSTR* argv); michael@0: BOOL IsUnpromptedElevation(BOOL &isUnpromptedElevation); michael@0: michael@0: #define SVC_NAME L"MozillaMaintenance" michael@0: michael@0: #define BASE_SERVICE_REG_KEY \ michael@0: L"SOFTWARE\\Mozilla\\MaintenanceService" michael@0: michael@0: // The test only fallback key, as its name implies, is only present on machines michael@0: // that will use automated tests. Since automated tests always run from a michael@0: // different directory for each test, the presence of this key bypasses the michael@0: // "This is a valid installation directory" check. This key also stores michael@0: // the allowed name and issuer for cert checks so that the cert check michael@0: // code can still be run unchanged. michael@0: #define TEST_ONLY_FALLBACK_KEY_PATH \ michael@0: BASE_SERVICE_REG_KEY L"\\3932ecacee736d366d6436db0f55bce4" michael@0: michael@0: #ifdef MOZ_METRO michael@0: bool GetDefaultBrowserAppModelID(WCHAR* aIDBuffer, long aCharLength); michael@0: HRESULT LaunchDefaultMetroBrowser(); michael@0: #endif michael@0: