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

Unified Diff: common/webplugin_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/webplugin_utils.h ('k') | common/webplugin_utils_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: common/webplugin_utils.cc
diff --git a/common/webplugin_utils.cc b/common/webplugin_utils.cc
deleted file mode 100644
index 168199bc3001379fc10e8dcf5659bb25102b0646..0000000000000000000000000000000000000000
--- a/common/webplugin_utils.cc
+++ /dev/null
@@ -1,224 +0,0 @@
-// Copyright 2008-2009 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/webplugin_utils.h"
-
-#include "omaha/base/app_util.h"
-#include "omaha/base/debug.h"
-#include "omaha/base/error.h"
-#include "omaha/base/file.h"
-#include "omaha/base/logging.h"
-#include "omaha/base/path.h"
-#include "omaha/base/safe_format.h"
-#include "omaha/base/string.h"
-#include "omaha/base/system.h"
-#include "omaha/base/utils.h"
-#include "omaha/base/xml_utils.h"
-#include "omaha/common/command_line_builder.h"
-#include "omaha/common/const_goopdate.h"
-#include "omaha/common/goopdate_utils.h"
-#include "omaha/common/lang.h"
-#include "omaha/net/browser_request.h"
-#include "omaha/net/cup_request.h"
-#include "omaha/net/network_request.h"
-#include "omaha/net/simple_request.h"
-
-namespace omaha {
-
-namespace webplugin_utils {
-
-HRESULT BuildOneClickRequestString(const CommandLineArgs& args,
- CString* request_str) {
- if (NULL == request_str) {
- return E_INVALIDARG;
- }
-
- // If we're not /webplugin or the urldomain is empty, something's wrong.
- if (args.mode != COMMANDLINE_MODE_WEBPLUGIN ||
- args.webplugin_urldomain.IsEmpty()) {
- return E_UNEXPECTED;
- }
-
- const TCHAR* request_string_template = _T("?du=%s&args=%s");
- CString request;
-
- CString urldomain_escaped;
- CString pluginargs_escaped;
-
- StringEscape(args.webplugin_urldomain, false, &urldomain_escaped);
- StringEscape(args.webplugin_args, false, &pluginargs_escaped);
-
- SafeCStringFormat(&request, request_string_template,
- urldomain_escaped,
- pluginargs_escaped);
-
- *request_str = request;
- return S_OK;
-}
-
-HRESULT IsLanguageSupported(const CString& webplugin_args) {
- CString cmd_line;
- SafeCStringFormat(&cmd_line, _T("gu.exe %s"), webplugin_args);
- CommandLineArgs parsed_args;
- HRESULT hr = ParseCommandLine(cmd_line, &parsed_args);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[ParseCommandLine failed][0x%08x]"), hr));
- return hr;
- }
-
-
- if (!lang::IsLanguageSupported(parsed_args.extra.language)) {
- CORE_LOG(LE, (_T("Language not supported][%s]"),
- parsed_args.extra.language));
- return GOOPDATE_E_ONECLICK_LANGUAGE_NOT_SUPPORTED;
- }
-
- return S_OK;
-}
-
-HRESULT BuildOneClickWorkerArgs(const CommandLineArgs& args,
- CString* oneclick_args) {
- ASSERT1(oneclick_args);
-
- // Since this is being called via WebPlugin only, we can rebuild the
- // command line arguments from the valid params we can send on.
- // For example, the web plugin will not send crash_cmd or debug_cmd
- // or reg_server or unreg_server so we don't have to worry about those here.
- CString cmd_line_args;
- CommandLineArgs webplugin_cmdline_args;
-
- // ParseCommandLine assumes the first argument is the program being run.
- // Don't want to enforce that constraint on our callers, so we prepend with a
- // fake exe name.
- CString args_to_parse;
- SafeCStringFormat(&args_to_parse, _T("%s %s"),
- kOmahaShellFileName,
- args.webplugin_args);
-
- // Parse the arguments we received as the second parameter to /webplugin.
- HRESULT hr = ParseCommandLine(args_to_parse, &webplugin_cmdline_args);
- if (FAILED(hr)) {
- return hr;
- }
-
- // Silent and other non-standard installs could be malicious. Prevent them.
- if (webplugin_cmdline_args.mode != COMMANDLINE_MODE_INSTALL) {
- return E_INVALIDARG;
- }
- if (webplugin_cmdline_args.is_silent_set ||
- webplugin_cmdline_args.is_eula_required_set) {
- return E_INVALIDARG;
- }
-
- CommandLineBuilder builder(COMMANDLINE_MODE_INSTALL);
- builder.set_extra_args(webplugin_cmdline_args.extra_args_str);
-
- // We expect this value from the plugin.
- ASSERT1(!args.install_source.IsEmpty());
- if (args.install_source.IsEmpty()) {
- return E_INVALIDARG;
- }
-
- builder.set_install_source(args.install_source);
-
- *oneclick_args = builder.GetCommandLineArgs();
-
- return S_OK;
-}
-
-// It is important that current_goopdate_path be the version path and not the
-// Update\ path.
-HRESULT CopyGoopdateToTempDir(const CPath& current_goopdate_path,
- CPath* goopdate_temp_path) {
- ASSERT1(goopdate_temp_path);
-
- // Create a unique directory in the user's temp directory.
- TCHAR pathbuf[MAX_PATH] = {0};
- DWORD ret = ::GetTempPath(arraysize(pathbuf), pathbuf);
- if (0 == ret) {
- return HRESULTFromLastError();
- }
- if (ret >= arraysize(pathbuf)) {
- return E_FAIL;
- }
-
- GUID guid = GUID_NULL;
- HRESULT hr = ::CoCreateGuid(&guid);
- if (FAILED(hr)) {
- return hr;
- }
-
- CString guid_str = GuidToString(guid);
- CPath temp_path = pathbuf;
- temp_path.Append(guid_str);
- temp_path.Canonicalize();
-
- hr = CreateDir(temp_path, NULL);
- if (FAILED(hr)) {
- return hr;
- }
-
- hr = File::CopyTree(current_goopdate_path, temp_path, true);
- if (FAILED(hr)) {
- return hr;
- }
-
- CORE_LOG(L2, (_T("[CopyGoopdateToTempDir][temp_path = %s]"), temp_path));
- *goopdate_temp_path = temp_path;
- return S_OK;
-}
-
-HRESULT DoOneClickInstall(const CommandLineArgs& args) {
- CString cmd_line_args;
- HRESULT hr = BuildOneClickWorkerArgs(args, &cmd_line_args);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[BuildOneClickWorkerArgs failed][0x%08x]"), hr));
- return hr;
- }
-
- CORE_LOG(L2, (_T("[DoOneClickInstall][cmd_line_args: %s]"), cmd_line_args));
-
- // Check if we're running from the machine dir.
- // If we're not, we must be running from user directory since OneClick only
- // works against installed versions of Omaha.
- CPath current_goopdate_path(app_util::GetCurrentModuleDirectory());
- CPath goopdate_temp_path;
- hr = CopyGoopdateToTempDir(current_goopdate_path, &goopdate_temp_path);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[CopyGoopdateToTempDir failed][0x%08x]"), hr));
- return hr;
- }
-
- CPath goopdate_temp_exe_path = goopdate_temp_path;
- goopdate_temp_exe_path.Append(kOmahaShellFileName);
-
- // Launch goopdate again with the updated command line arguments.
- hr = System::ShellExecuteProcess(goopdate_temp_exe_path,
- cmd_line_args,
- NULL,
- NULL);
- if (FAILED(hr)) {
- CORE_LOG(LE, (_T("[ShellExecuteProcess failed][%s][0x%08x]"),
- goopdate_temp_exe_path, hr));
- return hr;
- }
-
- return S_OK;
-}
-
-} // namespace webplugin_utils
-
-} // namespace omaha
-
« no previous file with comments | « common/webplugin_utils.h ('k') | common/webplugin_utils_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698