Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(374)

Unified Diff: common/update3_utils.cc

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « common/update3_utils.h ('k') | common/update_request.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: common/update3_utils.cc
diff --git a/common/update3_utils.cc b/common/update3_utils.cc
deleted file mode 100644
index 61ff1b176eb2eebf1346f40795ba1332a252c77f..0000000000000000000000000000000000000000
--- a/common/update3_utils.cc
+++ /dev/null
@@ -1,269 +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.
-// ========================================================================
-
-#include "omaha/common/update3_utils.h"
-#include <atlsafe.h>
-#include "goopdate/omaha3_idl.h"
-#include "omaha/base/const_object_names.h"
-#include "omaha/base/debug.h"
-#include "omaha/base/logging.h"
-#include "omaha/base/system.h"
-#include "omaha/base/vistautil.h"
-#include "omaha/goopdate/google_update3.h"
-
-namespace omaha {
-
-namespace update3_utils {
-
-namespace {
-
-template <typename Update3COMClassT>
-HRESULT CreateGoogleUpdate3LocalClass(IGoogleUpdate3** server) {
- CORE_LOG(L3, (_T("[CreateGoogleUpdate3LocalClass]")));
- ASSERT1(server);
-
- typedef CComObject<Update3COMClassT> Update3;
- scoped_ptr<Update3> update3;
- HRESULT hr = Update3::CreateInstance(address(update3));
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[Update3 creation failed][0x%x]"), hr));
- return hr;
- }
-
- hr = update3->QueryInterface(server);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[Update3 QueryInterface failed][0x%x]"), hr));
- return hr;
- }
-
- update3.release();
-
- return S_OK;
-}
-
-} // namespace
-
-HRESULT SetProxyBlanketAllowImpersonate(IUnknown* server) {
- ASSERT1(server);
-
- HRESULT hr = ::CoSetProxyBlanket(server, RPC_C_AUTHN_DEFAULT,
- RPC_C_AUTHZ_DEFAULT, COLE_DEFAULT_PRINCIPAL, RPC_C_AUTHN_LEVEL_DEFAULT,
- RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_DEFAULT);
-
- // E_NOINTERFACE indicates an in-proc intra-apartment call.
- if (FAILED(hr) && hr != E_NOINTERFACE) {
- CORE_LOG(LE, (_T("[::CoSetProxyBlanket failed][0x%x]"), hr));
- return hr;
- }
-
- return S_OK;
-}
-
-HRESULT CreateGoogleUpdate3Class(bool is_machine, IGoogleUpdate3** server) {
- CORE_LOG(L3, (_T("[CreateGoogleUpdate3Class][%d]"), is_machine));
- ASSERT1(server);
-
- CComPtr<IGoogleUpdate3> com_server;
- HRESULT hr = is_machine ? CreateGoogleUpdate3MachineClass(&com_server) :
- CreateGoogleUpdate3UserClass(&com_server);
- if (FAILED(hr)) {
- return hr;
- }
-
- hr = SetProxyBlanketAllowImpersonate(com_server);
- if (FAILED(hr)) {
- return hr;
- }
-
- *server = com_server.Detach();
- return S_OK;
-}
-
-// Tries to CoCreate the service CLSID first. If that fails, tries to create the
-// server in-proc. Finally, sets a security blanket on the interface to allow
-// the server to impersonate the client.
-HRESULT CreateGoogleUpdate3MachineClass(IGoogleUpdate3** machine_server) {
- ASSERT1(machine_server);
- ASSERT1(vista_util::IsUserAdmin());
-
- CComPtr<IGoogleUpdate3> server;
- HRESULT hr = server.CoCreateInstance(__uuidof(GoogleUpdate3ServiceClass));
-
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[CoCreate GoogleUpdate3ServiceClass failed][0x%x]"), hr));
-
- hr = CreateGoogleUpdate3LocalClass<Update3COMClassService>(&server);
- if (hr == GOOPDATE_E_INSTANCES_RUNNING) {
- CORE_LOG(L3, (_T("[Retry CoCreate GoogleUpdate3ServiceClass]")));
- hr = server.CoCreateInstance(__uuidof(GoogleUpdate3ServiceClass));
- }
-
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[Create GoogleUpdate3MachineClass failed][0x%x]"), hr));
- return hr;
- }
- }
-
- ASSERT1(server);
- *machine_server = server.Detach();
- return S_OK;
-}
-
-// Tries to CoCreate the LocalServer CLSID first. If that fails, tries to create
-// the server in-proc.
-HRESULT CreateGoogleUpdate3UserClass(IGoogleUpdate3** user_server) {
- ASSERT1(user_server);
-
- CComPtr<IGoogleUpdate3> server;
- HRESULT hr = server.CoCreateInstance(__uuidof(GoogleUpdate3UserClass));
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[CoCreate GoogleUpdate3UserClass failed][0x%x]"), hr));
-
- // The primary reason for the LocalServer activation failing on Vista/Win7
- // is that COM does not look at HKCU registration when the code is running
- // elevated. We fall back to an in-proc mode. The in-proc mode is limited to
- // one install at a time, so we use it only as a backup mechanism.
- OPT_LOG(LE, (_T("[IsElevatedWithUACMaybeOn][%d]"),
- vista_util::IsElevatedWithUACMaybeOn()));
- hr = CreateGoogleUpdate3LocalClass<Update3COMClassUser>(&server);
- if (FAILED(hr)) {
- return hr;
- }
- }
-
- ASSERT1(server);
- *user_server = server.Detach();
- return S_OK;
-}
-
-HRESULT CreateAppBundle(IGoogleUpdate3* server, IAppBundle** app_bundle) {
- ASSERT1(server);
- ASSERT1(app_bundle);
-
- CComPtr<IDispatch> idispatch;
- HRESULT hr = server->createAppBundle(&idispatch);
- if (FAILED(hr)) {
- return hr;
- }
-
- return idispatch.QueryInterface(app_bundle);
-}
-
-HRESULT CreateApp(BSTR app_id, IAppBundle* app_bundle, IApp** app) {
- ASSERT1(app_id);
- ASSERT1(app_bundle);
- ASSERT1(app);
-
- CComPtr<IDispatch> idispatch;
- HRESULT hr = app_bundle->createApp(app_id, &idispatch);
- if (FAILED(hr)) {
- return hr;
- }
-
- return idispatch.QueryInterface(app);
-}
-
-HRESULT CreateInstalledApp(BSTR app_id, IAppBundle* app_bundle, IApp** app) {
- ASSERT1(app_id);
- ASSERT1(app_bundle);
- ASSERT1(app);
-
- CComPtr<IDispatch> idispatch;
- HRESULT hr = app_bundle->createInstalledApp(app_id, &idispatch);
- if (FAILED(hr)) {
- return hr;
- }
-
- return idispatch.QueryInterface(app);
-}
-
-HRESULT CreateAllInstalledApps(IAppBundle* app_bundle) {
- ASSERT1(app_bundle);
-
- return app_bundle->createAllInstalledApps();
-}
-
-HRESULT GetApp(IAppBundle* app_bundle, long index, IApp** app) { // NOLINT
- ASSERT1(app_bundle);
- ASSERT1(index >= 0);
- ASSERT1(app);
-
- CComPtr<IDispatch> app_idispatch;
- HRESULT hr = app_bundle->get_Item(index, &app_idispatch);
- if (FAILED(hr)) {
- return hr;
- }
- ASSERT1(app_idispatch);
-
- return app_idispatch.QueryInterface(app);
-}
-
-HRESULT GetCurrentAppVersion(IApp* app, IAppVersion** app_version) {
- ASSERT1(app);
- ASSERT1(app_version);
-
- CComPtr<IDispatch> idispatch;
- HRESULT hr = app->get_currentVersion(&idispatch);
- if (FAILED(hr)) {
- return hr;
- }
-
- return idispatch.QueryInterface(app_version);
-}
-
-HRESULT GetNextAppVersion(IApp* app, IAppVersion** app_version) {
- ASSERT1(app);
- ASSERT1(app_version);
-
- CComPtr<IDispatch> idispatch;
- HRESULT hr = app->get_nextVersion(&idispatch);
- if (FAILED(hr)) {
- return hr;
- }
-
- return idispatch.QueryInterface(app_version);
-}
-
-HRESULT GetAppCurrentState(IApp* app,
- CurrentState* current_state,
- ICurrentState** icurrent_state) {
- ASSERT1(app);
- ASSERT1(current_state);
- ASSERT1(icurrent_state);
-
- CComPtr<IDispatch> idispatch;
- HRESULT hr = app->get_currentState(&idispatch);
- if (FAILED(hr)) {
- return hr;
- }
-
- hr = idispatch.QueryInterface(icurrent_state);
- if (FAILED(hr)) {
- return hr;
- }
-
- LONG state = 0;
- hr = (*icurrent_state)->get_stateValue(&state);
- if (FAILED(hr)) {
- return hr;
- }
-
- *current_state = static_cast<CurrentState>(state);
- return S_OK;
-}
-
-} // namespace update3_utils
-
-} // namespace omaha
« no previous file with comments | « common/update3_utils.h ('k') | common/update_request.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698