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

Unified Diff: goopdate/update3web.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 | « goopdate/update3web.h ('k') | goopdate/update_request_utils.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: goopdate/update3web.cc
diff --git a/goopdate/update3web.cc b/goopdate/update3web.cc
deleted file mode 100644
index 7aefe6942971b0394149063be1e2f3a50f77dd57..0000000000000000000000000000000000000000
--- a/goopdate/update3web.cc
+++ /dev/null
@@ -1,528 +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/goopdate/update3web.h"
-#include "omaha/base/constants.h"
-#include "omaha/base/error.h"
-#include "omaha/base/user_rights.h"
-#include "omaha/common/const_cmd_line.h"
-#include "omaha/common/update3_utils.h"
-#include "omaha/common/lang.h"
-
-namespace omaha {
-
-namespace {
-
-template <typename Base, typename T, typename Z>
-HRESULT ComInitHelper(T data, Z** p) {
- *p = NULL;
- CComObject<Base>* object;
- HRESULT hr = CComObject<Base>::CreateInstance(&object);
- if (FAILED(hr)) {
- return hr;
- }
- CComPtr<IUnknown> object_releaser = object;
- hr = object->Init(data);
- if (FAILED(hr)) {
- return hr;
- }
- return object->QueryInterface(IID_PPV_ARGS(p));
-}
-
-class ATL_NO_VTABLE AppBundleWeb
- : public CComObjectRootEx<CComObjectThreadModel>,
- public IDispatchImpl<IAppBundleWeb,
- &__uuidof(IAppBundleWeb),
- &CAtlModule::m_libid,
- kMajorTypeLibVersion,
- kMinorTypeLibVersion> {
- public:
- AppBundleWeb();
- HRESULT Init(Update3WebBase* update3web);
-
- DECLARE_NOT_AGGREGATABLE(AppBundleWeb);
- DECLARE_NO_REGISTRY();
-
- BEGIN_COM_MAP(AppBundleWeb)
- COM_INTERFACE_ENTRY(IDispatch)
- COM_INTERFACE_ENTRY(IAppBundleWeb)
- END_COM_MAP()
-
- STDMETHOD(createApp)(BSTR app_id, BSTR brand_code, BSTR language, BSTR ap);
- STDMETHOD(createInstalledApp)(BSTR app_id);
- STDMETHOD(createAllInstalledApps)();
- STDMETHOD(get_displayLanguage)(BSTR* language);
- STDMETHOD(put_displayLanguage)(BSTR language);
- STDMETHOD(put_parentHWND)(ULONG_PTR hwnd);
- STDMETHOD(get_length)(int* number);
- STDMETHOD(get_appWeb)(int index, IDispatch** app_web);
- STDMETHOD(initialize)();
- STDMETHOD(checkForUpdate)();
- STDMETHOD(download)();
- STDMETHOD(install)();
- STDMETHOD(pause)();
- STDMETHOD(resume)();
- STDMETHOD(cancel)();
- STDMETHOD(downloadPackage)(BSTR app_id, BSTR package_name);
- STDMETHOD(get_currentState)(VARIANT* current_state);
-
- protected:
- virtual ~AppBundleWeb();
-
- private:
- Update3WebBase* update3web_;
- CComPtr<IAppBundle> app_bundle_;
-
- DISALLOW_COPY_AND_ASSIGN(AppBundleWeb);
-};
-
-class ATL_NO_VTABLE AppWeb
- : public CComObjectRootEx<CComObjectThreadModel>,
- public IDispatchImpl<IAppWeb,
- &__uuidof(IAppWeb),
- &CAtlModule::m_libid,
- kMajorTypeLibVersion,
- kMinorTypeLibVersion> {
- public:
- AppWeb();
- HRESULT Init(IApp* app);
-
- DECLARE_NOT_AGGREGATABLE(AppWeb);
- DECLARE_NO_REGISTRY();
-
- BEGIN_COM_MAP(AppWeb)
- COM_INTERFACE_ENTRY(IDispatch)
- COM_INTERFACE_ENTRY(IAppWeb)
- END_COM_MAP()
-
- STDMETHOD(get_appId)(BSTR* app_id);
- STDMETHOD(get_currentVersionWeb)(IDispatch** current);
- STDMETHOD(get_nextVersionWeb)(IDispatch** next);
- STDMETHOD(cancel)();
- STDMETHOD(get_currentState)(IDispatch** current_state);
- STDMETHOD(launch)();
- STDMETHOD(uninstall)();
-
- protected:
- virtual ~AppWeb();
-
- private:
- CComPtr<IApp> app_;
-
- DISALLOW_COPY_AND_ASSIGN(AppWeb);
-};
-
-class ATL_NO_VTABLE AppVersionWeb
- : public CComObjectRootEx<CComObjectThreadModel>,
- public IDispatchImpl<IAppVersionWeb,
- &__uuidof(IAppVersionWeb),
- &CAtlModule::m_libid,
- kMajorTypeLibVersion,
- kMinorTypeLibVersion> {
- public:
- AppVersionWeb();
- HRESULT Init(IAppVersion* app_version);
-
- DECLARE_NOT_AGGREGATABLE(AppVersionWeb);
- DECLARE_NO_REGISTRY();
-
- BEGIN_COM_MAP(AppVersionWeb)
- COM_INTERFACE_ENTRY(IDispatch)
- COM_INTERFACE_ENTRY(IAppVersionWeb)
- END_COM_MAP()
-
- STDMETHOD(get_version)(BSTR* version);
- STDMETHOD(get_packageCount)(long* count); // NOLINT
- STDMETHOD(get_packageWeb)(long index, IDispatch** package); // NOLINT
-
- protected:
- virtual ~AppVersionWeb();
-
- private:
- CComPtr<IAppVersion> app_version_;
-
- DISALLOW_COPY_AND_ASSIGN(AppVersionWeb);
-};
-
-HRESULT AppBundleWeb::Init(Update3WebBase* update3web) {
- ASSERT1(update3web);
-
- update3web_ = update3web;
- update3web_->AddRef();
-
- HRESULT hr = update3_utils::CreateAppBundle(update3web_->omaha_server(),
- &app_bundle_);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[CreateAppBundle failed][0x%x]"), hr));
- return hr;
- }
-
- // ::CoSetProxyBlanket() settings are per proxy. For Update3Web, after
- // unmarshaling the interface, we need to set the blanket on this new proxy.
- // The proxy blanket on the IAppBundle interface are set explicitly for
- // Update3Web, because Update3Web is a unique case of being a COM server as
- // well as a COM client. The default security settings set for the Update3Web
- // COM server are more restrictive and rightly so, as compared to the settings
- // that we set for a COM client such as the Omaha3 UI. Hence the need to
- // explicitly set the proxy blanket settings and lower the security
- // requirements only when calling out on this interface.
- hr = update3_utils::SetProxyBlanketAllowImpersonate(app_bundle_);
- if (FAILED(hr)) {
- return hr;
- }
-
- hr = app_bundle_->put_originURL(CComBSTR(update3web_->origin_url()));
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[put_originURL failed][0x%x]"), hr));
- return hr;
- }
-
- hr = app_bundle_->put_displayLanguage(
- CComBSTR(lang::GetLanguageForProcess(CString())));
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[put_displayLanguage failed][0x%x]"), hr));
- return hr;
- }
-
- // TODO(omaha3): Expose setting the display name to the plugin client.
- hr = app_bundle_->put_displayName(CComBSTR(_T("App")));
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[put_displayName failed][0x%x]"), hr));
- return hr;
- }
-
- hr = app_bundle_->put_installSource(
- CComBSTR(kCmdLineInstallSource_Update3Web));
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[put_installSource failed][0x%x]"), hr));
- return hr;
- }
-
- if (update3web_->is_machine_install()) {
- hr = app_bundle_->put_altTokens(
- reinterpret_cast<ULONG_PTR>(update3web_->impersonation_token()),
- reinterpret_cast<ULONG_PTR>(update3web_->primary_token()),
- ::GetCurrentProcessId());
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[put_altTokens failed][0x%x]"), hr));
- return hr;
- }
- }
-
- return S_OK;
-}
-
-STDMETHODIMP AppBundleWeb::get_displayLanguage(BSTR* language) {
- return app_bundle_->get_displayLanguage(language);
-}
-
-STDMETHODIMP AppBundleWeb::put_displayLanguage(BSTR language) {
- return app_bundle_->put_displayLanguage(language);
-}
-
-STDMETHODIMP AppBundleWeb::put_parentHWND(ULONG_PTR hwnd) {
- return app_bundle_->put_parentHWND(hwnd);
-}
-
-STDMETHODIMP AppBundleWeb::get_length(int* number) {
- long long_number = 0; // NOLINT(runtime/int)
- HRESULT hr = app_bundle_->get_Count(&long_number);
- *number = long_number;
- return hr;
-}
-
-STDMETHODIMP AppBundleWeb::get_appWeb(int index, IDispatch** app_web) {
- *app_web = NULL;
-
- CComPtr<IApp> app;
- HRESULT hr = update3_utils::GetApp(app_bundle_, index, &app);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[GetApp failed][0x%x]"), hr));
- return hr;
- }
-
- return ComInitHelper<AppWeb>(app.p, app_web);
-}
-
-AppBundleWeb::AppBundleWeb() : update3web_(NULL) {
-}
-
-STDMETHODIMP AppBundleWeb::createApp(BSTR app_id,
- BSTR brand_code,
- BSTR language,
- BSTR ap) {
- CComPtr<IApp> app;
- HRESULT hr = update3_utils::CreateApp(app_id, app_bundle_, &app);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[CreateApp failed][0x%x]"), hr));
- return hr;
- }
-
- hr = app->put_brandCode(brand_code);
- if (FAILED(hr)) {
- return hr;
- }
-
- hr = app->put_language(language);
- if (FAILED(hr)) {
- return hr;
- }
-
- hr = app->put_ap(ap);
- if (FAILED(hr)) {
- return hr;
- }
-
- hr = app->put_isEulaAccepted(VARIANT_TRUE);
- if (FAILED(hr)) {
- return hr;
- }
-
- hr = app_bundle_->put_installSource(
- CComBSTR(kCmdLineInstallSource_Update3Web_NewApps));
- if (FAILED(hr)) {
- return hr;
- }
-
- return S_OK;
-}
-
-STDMETHODIMP AppBundleWeb::createInstalledApp(BSTR app_id) {
- CComPtr<IApp> app;
- HRESULT hr = update3_utils::CreateInstalledApp(app_id, app_bundle_, &app);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[CreateInstalledApp failed][0x%x]"), hr));
- return hr;
- }
-
- hr = app_bundle_->put_installSource(
- CComBSTR(kCmdLineInstallSource_Update3Web_OnDemand));
- if (FAILED(hr)) {
- return hr;
- }
-
- return S_OK;
-}
-
-HRESULT AppBundleWeb::createAllInstalledApps() {
- HRESULT hr = update3_utils::CreateAllInstalledApps(app_bundle_);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[CreateAllInstalledApps failed][0x%x]"), hr));
- return hr;
- }
-
- return S_OK;
-}
-
-AppBundleWeb::~AppBundleWeb() {
- update3web_->Release();
-}
-
-STDMETHODIMP AppBundleWeb::initialize() {
- return app_bundle_->initialize();
-}
-
-STDMETHODIMP AppBundleWeb::checkForUpdate() {
- return app_bundle_->checkForUpdate();
-}
-
-STDMETHODIMP AppBundleWeb::download() {
- return app_bundle_->download();
-}
-
-STDMETHODIMP AppBundleWeb::install() {
- if (update3web_->is_machine_install() &&
- !UserRights::TokenIsAdmin(update3web_->impersonation_token())) {
- CORE_LOG(LE, (_T("[Need to be an admin to call this method]")));
- return E_ACCESSDENIED;
- }
-
- return app_bundle_->install();
-}
-
-STDMETHODIMP AppBundleWeb::pause() {
- return app_bundle_->pause();
-}
-
-STDMETHODIMP AppBundleWeb::resume() {
- return app_bundle_->resume();
-}
-
-STDMETHODIMP AppBundleWeb::cancel() {
- if (update3web_->is_machine_install() &&
- !UserRights::TokenIsAdmin(update3web_->impersonation_token())) {
- CORE_LOG(LE, (_T("[Need to be an admin to cancel]")));
- return E_ACCESSDENIED;
- }
-
- return app_bundle_->stop();
-}
-
-STDMETHODIMP AppBundleWeb::downloadPackage(BSTR app_id, BSTR package_name) {
- CORE_LOG(L1, (_T("[AppBundleWeb::downloadPackage][%s][%s]"),
- app_id, package_name));
-
- HRESULT hr = app_bundle_->put_installSource(
- CComBSTR(kCmdLineInstallSource_Update3Web_Components));
- if (FAILED(hr)) {
- return hr;
- }
-
- return app_bundle_->downloadPackage(app_id, package_name);
-}
-
-STDMETHODIMP AppBundleWeb::get_currentState(VARIANT* current_state) {
- return app_bundle_->get_currentState(current_state);
-}
-
-AppWeb::AppWeb() {
-}
-
-HRESULT AppWeb::Init(IApp* app) {
- app_ = app;
- return S_OK;
-}
-
-STDMETHODIMP AppWeb::get_appId(BSTR* app_id) {
- ASSERT1(app_id);
- return app_->get_appId(app_id);
-}
-
-STDMETHODIMP AppWeb::get_currentVersionWeb(IDispatch** current) {
- ASSERT1(current);
- *current = NULL;
-
- CComPtr<IAppVersion> app_version;
- HRESULT hr = update3_utils::GetCurrentAppVersion(app_, &app_version);
- if (FAILED(hr)) {
- return hr;
- }
-
- return ComInitHelper<AppVersionWeb>(app_version.p, current);
-}
-
-STDMETHODIMP AppWeb::get_nextVersionWeb(IDispatch** next) {
- ASSERT1(next);
- *next = NULL;
-
- CComPtr<IAppVersion> app_version;
- HRESULT hr = update3_utils::GetNextAppVersion(app_, &app_version);
- if (FAILED(hr)) {
- return hr;
- }
-
- return ComInitHelper<AppVersionWeb>(app_version.p, next);
-}
-
-STDMETHODIMP AppWeb::cancel() {
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AppWeb::get_currentState(IDispatch** current_state) {
- *current_state = NULL;
- return app_->get_currentState(current_state);
-}
-
-STDMETHODIMP AppWeb::launch() {
- return E_NOTIMPL;
-}
-
-STDMETHODIMP AppWeb::uninstall() {
- // This method should check for adminness when implemented.
- return E_NOTIMPL;
-}
-
-AppWeb::~AppWeb() {
-}
-
-AppVersionWeb::AppVersionWeb() {
-}
-
-HRESULT AppVersionWeb::Init(IAppVersion* app_version) {
- app_version_ = app_version;
- return S_OK;
-}
-
-STDMETHODIMP AppVersionWeb::get_version(BSTR* version) {
- return app_version_->get_version(version);
-}
-
-STDMETHODIMP AppVersionWeb::get_packageCount(long* count) { // NOLINT
- return app_version_->get_packageCount(count);
-}
-
-STDMETHODIMP AppVersionWeb::get_packageWeb(long index, // NOLINT
- IDispatch** package) {
- UNREFERENCED_PARAMETER(index);
- ASSERT1(package);
- *package = NULL;
-
- // TODO(omaha3): Implement this after a security review.
- return E_NOTIMPL;
-}
-
-AppVersionWeb::~AppVersionWeb() {
-}
-
-} // namespace
-
-HRESULT Update3WebBase::FinalConstruct() {
- HRESULT hr =
- update3_utils::CreateGoogleUpdate3Class(is_machine_, &omaha_server_);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[Update3WebBase::FinalConstruct failed][0x%x]"), hr));
- return hr;
- }
-
- if (!is_machine_) {
- return S_OK;
- }
-
- hr = UserRights::GetCallerToken(&impersonation_token_);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[GetCallerToken failed][0x%x]"), hr));
- return hr;
- }
-
- if (!impersonation_token_.CreatePrimaryToken(&primary_token_)) {
- HRESULT hr = HRESULTFromLastError();
- CORE_LOG(LE, (_T("[CreatePrimaryToken failed][0x%x]"), hr));
- return hr;
- }
-
- return S_OK;
-}
-
-STDMETHODIMP Update3WebBase::createAppBundleWeb(IDispatch** app_bundle_web) {
- ASSERT1(app_bundle_web);
-
- *app_bundle_web = NULL;
-
- return ComInitHelper<AppBundleWeb>(this, app_bundle_web);
-}
-
-STDMETHODIMP Update3WebBase::setOriginURL(BSTR origin_url) {
- CORE_LOG(L3, (_T("[Update3WebBase::setOriginURL][%s]"), origin_url));
-
- if (!origin_url || !wcslen(origin_url)) {
- return E_INVALIDARG;
- }
-
- origin_url_ = origin_url;
- return S_OK;
-}
-
-} // namespace omaha
-
« no previous file with comments | « goopdate/update3web.h ('k') | goopdate/update_request_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698