Index: goopdate/google_update.cc |
diff --git a/goopdate/google_update.cc b/goopdate/google_update.cc |
deleted file mode 100644 |
index cdd66252b288caabf9fc3f5893046ad070bd9c54..0000000000000000000000000000000000000000 |
--- a/goopdate/google_update.cc |
+++ /dev/null |
@@ -1,244 +0,0 @@ |
-// Copyright 2009-2010 Google Inc. |
-// |
-// Licensed under the Apache License, Version 2.0 (the "License"); |
-// you may not use this file except in compliance with the License. |
-// You may obtain a copy of the License at |
-// |
-// http://www.apache.org/licenses/LICENSE-2.0 |
-// |
-// Unless required by applicable law or agreed to in writing, software |
-// distributed under the License is distributed on an "AS IS" BASIS, |
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-// See the License for the specific language governing permissions and |
-// limitations under the License. |
-// ======================================================================== |
-// |
-// Contains the ATL exe server registration. |
- |
-#include "omaha/goopdate/google_update.h" |
-#include "goopdate/omaha3_idl.h" |
-#include "omaha/base/debug.h" |
-#include "omaha/base/error.h" |
-#include "omaha/base/logging.h" |
-#include "omaha/common/goopdate_utils.h" |
-#include "omaha/core/google_update_core.h" |
-#include "omaha/goopdate/broker_class_factory.h" |
-#include "omaha/goopdate/cocreate_async.h" |
-#include "omaha/goopdate/cred_dialog.h" |
-#include "omaha/goopdate/google_update3.h" |
-#include "omaha/goopdate/omaha3_idl_datax.h" |
-#include "omaha/goopdate/ondemand.h" |
-#include "omaha/goopdate/oneclick_process_launcher.h" |
-#include "omaha/goopdate/process_launcher.h" |
-#include "omaha/goopdate/update3web.h" |
-#include "omaha/goopdate/worker.h" |
- |
-namespace omaha { |
- |
-// Template arguments need to be non-const TCHAR arrays. |
-TCHAR kOnDemandMachineBrokerProgId[] = kProgIDOnDemandMachine; |
-TCHAR kUpdate3WebMachineBrokerProgId[] = kProgIDUpdate3WebMachine; |
-TCHAR kHKRootUser[] = _T("HKCU"); |
-TCHAR kHKRootMachine[] = _T("HKLM"); |
-TCHAR kProgIDUpdate3COMClassUserLocal[] = kProgIDUpdate3COMClassUser; |
- |
-BEGIN_OBJECT_MAP(object_map_update3_user_mode) |
- OBJECT_ENTRY(__uuidof(GoogleUpdate3UserClass), Update3COMClassUser) |
-END_OBJECT_MAP() |
- |
-BEGIN_OBJECT_MAP(object_map_broker_machine_mode) |
- OBJECT_ENTRY(__uuidof(OnDemandMachineAppsClass), OnDemandMachineBroker) |
- OBJECT_ENTRY(__uuidof(GoogleUpdate3WebMachineClass), Update3WebMachineBroker) |
- OBJECT_ENTRY(__uuidof(CoCreateAsyncClass), CoCreateAsync) |
- OBJECT_ENTRY(__uuidof(OneClickMachineProcessLauncherClass), |
- OneClickProcessLauncher) |
-END_OBJECT_MAP() |
- |
-BEGIN_OBJECT_MAP(object_map_ondemand_user_mode) |
- OBJECT_ENTRY(__uuidof(GoogleUpdate3WebUserClass), Update3WebUser) |
- OBJECT_ENTRY(__uuidof(OnDemandUserAppsClass), OnDemandUser) |
- OBJECT_ENTRY(__uuidof(CredentialDialogUserClass), CredentialDialogUser) |
- OBJECT_ENTRY(__uuidof(OneClickUserProcessLauncherClass), |
- OneClickProcessLauncher) |
-END_OBJECT_MAP() |
- |
-BEGIN_OBJECT_MAP(object_map_ondemand_machine_mode) |
- OBJECT_ENTRY(__uuidof(ProcessLauncherClass), ProcessLauncher) |
- OBJECT_ENTRY(__uuidof(GoogleUpdateCoreMachineClass), GoogleUpdateCoreMachine) |
- OBJECT_ENTRY(__uuidof(OnDemandMachineAppsFallbackClass), |
- OnDemandMachineFallback) |
- OBJECT_ENTRY(__uuidof(GoogleUpdate3WebMachineFallbackClass), |
- Update3WebMachineFallback) |
- OBJECT_ENTRY(__uuidof(CredentialDialogMachineClass), CredentialDialogMachine) |
-END_OBJECT_MAP() |
- |
-_ATL_OBJMAP_ENTRY* GoogleUpdate::GetObjectMap() { |
- if (mode_ == kUpdate3Mode && !is_machine_) { |
- return object_map_update3_user_mode; |
- } |
- |
- if (mode_ == kBrokerMode && is_machine_) { |
- return object_map_broker_machine_mode; |
- } |
- |
- if (mode_ == kOnDemandMode && !is_machine_) { |
- return object_map_ondemand_user_mode; |
- } |
- |
- if (mode_ == kOnDemandMode && is_machine_) { |
- return object_map_ondemand_machine_mode; |
- } |
- |
- return NULL; |
-} |
- |
-GoogleUpdate::GoogleUpdate(bool is_machine, ComServerMode mode) |
- : is_machine_(is_machine), mode_(mode) { |
- // Disable the delay on shutdown mechanism in CAtlExeModuleT. |
- m_bDelayShutdown = false; |
-} |
- |
-GoogleUpdate::~GoogleUpdate() { |
- // GoogleUpdate is typically created on the stack. We reset the _pAtlModule |
- // here, to allow for cases such as /RegServer, where multiple instances of |
- // GoogleUpdate are created and destroyed serially. |
- _pAtlModule = NULL; |
-} |
- |
-HRESULT GoogleUpdate::Main() { |
- HRESULT hr = E_FAIL; |
- if (!ParseCommandLine(::GetCommandLine(), &hr)) { |
- // This was either /RegServer or /UnregServer. Return early. |
- return hr; |
- } |
- |
- hr = InitializeServerSecurity(is_machine_); |
- if (FAILED(hr)) { |
- return hr; |
- } |
- |
- DisableCOMExceptionHandling(); |
- |
- // TODO(omaha3): We do not call worker_->Run() from anywhere. This means that |
- // the ThreadPool and the ShutdownHandler within the Worker are not |
- // initialized. We need to eventually fix this. |
- |
- CORE_LOG(L2, (_T("[Calling CAtlExeModuleT<GoogleUpdate>::WinMain]"))); |
- return CAtlExeModuleT<GoogleUpdate>::WinMain(0); |
-} |
- |
-HRESULT GoogleUpdate::RegisterClassObjects(DWORD, DWORD) throw() { |
- CORE_LOG(L3, (_T("[RegisterClassObjects]"))); |
- |
- for (_ATL_OBJMAP_ENTRY* entry = GetObjectMap(); |
- entry && entry->pclsid != NULL; |
- entry++) { |
- HRESULT hr = entry->RegisterClassObject(CLSCTX_LOCAL_SERVER, |
- REGCLS_MULTIPLEUSE | |
- REGCLS_SUSPENDED); |
- if (FAILED(hr)) { |
- CORE_LOG(LE, (_T("[RegisterClassObject failed][%s][0x%x]"), |
- GuidToString(*entry->pclsid), hr)); |
- return hr; |
- } |
- } |
- |
- return S_OK; |
-} |
- |
-HRESULT GoogleUpdate::RevokeClassObjects() throw() { |
- CORE_LOG(L3, (_T("[RevokeClassObjects]"))); |
- |
- for (_ATL_OBJMAP_ENTRY* entry = GetObjectMap(); |
- entry && entry->pclsid != NULL; |
- entry++) { |
- HRESULT hr = entry->RevokeClassObject(); |
- if (FAILED(hr)) { |
- CORE_LOG(LE, (_T("[RevokeClassObject failed][%s][0x%x]"), |
- GuidToString(*entry->pclsid), hr)); |
- return hr; |
- } |
- } |
- |
- return S_OK; |
-} |
- |
-HRESULT GoogleUpdate::RegisterOrUnregisterExe(bool is_register) { |
- CORE_LOG(L3, (_T("[RegisterOrUnregisterExe][%d]"), is_register)); |
- |
- for (_ATL_OBJMAP_ENTRY* entry = GetObjectMap(); |
- entry && entry->pclsid != NULL; |
- entry++) { |
- HRESULT hr = entry->pfnUpdateRegistry(is_register); |
- if (FAILED(hr)) { |
- CORE_LOG(LE, (_T("[pfnUpdateRegistry failed][%d][0x%x][%s]"), |
- is_register, hr, GuidToString(*entry->pclsid))); |
- return hr; |
- } |
- } |
- |
- return S_OK; |
-} |
- |
-HRESULT GoogleUpdate::RegisterOrUnregisterExe(void* data, |
- bool is_register) { |
- ASSERT1(data); |
- return reinterpret_cast<GoogleUpdate*>(data)->RegisterOrUnregisterExe( |
- is_register); |
-} |
- |
-HRESULT RegisterOrUnregisterProxies(void* data, bool is_register) { |
- ASSERT1(data); |
- bool is_machine = *reinterpret_cast<bool*>(data); |
- CORE_LOG(L3, (_T("[RegisterOrUnregisterProxies][%d][%d]"), |
- is_machine, is_register)); |
- |
- CPath ps_dll(app_util::GetCurrentModuleDirectory()); |
- if (!ps_dll.Append(is_machine ? kPSFileNameMachine : kPSFileNameUser)) { |
- return HRESULTFromLastError(); |
- } |
- |
- ASSERT1(!is_register || ps_dll.FileExists()); |
- HRESULT hr = is_register ? RegisterDll(ps_dll) : UnregisterDll(ps_dll); |
- CORE_LOG(L3, (_T("[ PS][%s][0x%x]"), ps_dll, hr)); |
- if (FAILED(hr) && is_register) { |
- return hr; |
- } |
- |
- return S_OK; |
-} |
- |
-HRESULT GoogleUpdate::RegisterServer(BOOL, const CLSID*) throw() { |
- HRESULT hr = goopdate_utils::RegisterOrUnregisterModule( |
- is_machine_, true, &RegisterOrUnregisterProxies, &is_machine_); |
- if (FAILED(hr)) { |
- return hr; |
- } |
- |
- return goopdate_utils::RegisterOrUnregisterModule( |
- is_machine_, |
- true, |
- &GoogleUpdate::RegisterOrUnregisterExe, |
- this); |
-} |
- |
-HRESULT GoogleUpdate::UnregisterServer(BOOL, const CLSID*) throw() { |
- HRESULT hr = goopdate_utils::RegisterOrUnregisterModule( |
- is_machine_, false, &GoogleUpdate::RegisterOrUnregisterExe, this); |
- if (FAILED(hr)) { |
- return hr; |
- } |
- |
- return goopdate_utils::RegisterOrUnregisterModule( |
- is_machine_, false, &RegisterOrUnregisterProxies, &is_machine_); |
-} |
- |
-HRESULT GoogleUpdate::PreMessageLoop(int show_cmd) throw() { |
- return CAtlExeModuleT<GoogleUpdate>::PreMessageLoop(show_cmd); |
-} |
- |
-HRESULT GoogleUpdate::PostMessageLoop() throw() { |
- return CAtlExeModuleT<GoogleUpdate>::PostMessageLoop(); |
-} |
- |
-} // namespace omaha |