| Index: chrome/utility/chrome_content_utility_client.cc
|
| diff --git a/chrome/utility/chrome_content_utility_client.cc b/chrome/utility/chrome_content_utility_client.cc
|
| index b41b878d9009f0ddfe9ed4753530eac13516af1b..44baeb5757f06e0dc6f5043e66847015048ea92c 100644
|
| --- a/chrome/utility/chrome_content_utility_client.cc
|
| +++ b/chrome/utility/chrome_content_utility_client.cc
|
| @@ -4,64 +4,36 @@
|
|
|
| #include "chrome/utility/chrome_content_utility_client.h"
|
|
|
| -#include "base/base64.h"
|
| -#include "base/bind.h"
|
| #include "base/command_line.h"
|
| #include "base/files/file_path.h"
|
| -#include "base/json/json_reader.h"
|
| #include "base/memory/ref_counted.h"
|
| -#include "base/path_service.h"
|
| #include "base/time/time.h"
|
| #include "chrome/common/chrome_utility_messages.h"
|
| -#include "chrome/common/extensions/chrome_extensions_client.h"
|
| -#include "chrome/common/extensions/update_manifest.h"
|
| #include "chrome/common/safe_browsing/zip_analyzer.h"
|
| #include "chrome/utility/chrome_content_utility_ipc_whitelist.h"
|
| -#include "chrome/utility/extensions/unpacker.h"
|
| -#include "chrome/utility/image_writer/image_writer_handler.h"
|
| -#include "chrome/utility/profile_import_handler.h"
|
| +#include "chrome/utility/utility_message_handler.h"
|
| #include "chrome/utility/web_resource_unpacker.h"
|
| #include "content/public/child/image_decoder_utils.h"
|
| -#include "content/public/common/content_paths.h"
|
| #include "content/public/common/content_switches.h"
|
| #include "content/public/utility/utility_thread.h"
|
| #include "courgette/courgette.h"
|
| #include "courgette/third_party/bsdiff.h"
|
| -#include "extensions/common/extension.h"
|
| -#include "extensions/common/extension_l10n_util.h"
|
| -#include "extensions/common/manifest.h"
|
| -#include "media/base/media.h"
|
| -#include "media/base/media_file_checker.h"
|
| #include "third_party/skia/include/core/SkBitmap.h"
|
| #include "third_party/zlib/google/zip.h"
|
| -#include "ui/base/ui_base_switches.h"
|
| #include "ui/gfx/codec/jpeg_codec.h"
|
| -#include "ui/gfx/rect.h"
|
| #include "ui/gfx/size.h"
|
|
|
| -#if defined(OS_WIN)
|
| -#include "chrome/common/extensions/api/networking_private/networking_private_crypto.h"
|
| -#include "chrome/utility/media_galleries/itunes_pref_parser_win.h"
|
| -#include "components/wifi/wifi_service.h"
|
| -#endif // defined(OS_WIN)
|
| -
|
| -#if defined(OS_MACOSX)
|
| -#include "chrome/utility/media_galleries/iphoto_library_parser.h"
|
| -#endif // defined(OS_MACOSX)
|
| -
|
| -#if defined(OS_WIN) || defined(OS_MACOSX)
|
| -#include "chrome/utility/media_galleries/iapps_xml_utils.h"
|
| -#include "chrome/utility/media_galleries/itunes_library_parser.h"
|
| -#include "chrome/utility/media_galleries/picasa_album_table_reader.h"
|
| -#include "chrome/utility/media_galleries/picasa_albums_indexer.h"
|
| -#endif // defined(OS_WIN) || defined(OS_MACOSX)
|
| -
|
| -#if !defined(OS_ANDROID) && !defined(OS_IOS)
|
| -#include "chrome/common/media_galleries/metadata_types.h"
|
| -#include "chrome/utility/media_galleries/image_metadata_extractor.h"
|
| +#if !defined(OS_ANDROID)
|
| +#include "chrome/utility/profile_import_handler.h"
|
| +#endif
|
| +
|
| +#if defined(ENABLE_EXTENSIONS)
|
| +#include "chrome/common/extensions/chrome_utility_extensions_messages.h"
|
| +#include "chrome/utility/extensions/extensions_handler.h"
|
| +#include "chrome/utility/image_writer/image_writer_handler.h"
|
| #include "chrome/utility/media_galleries/ipc_data_source.h"
|
| #include "chrome/utility/media_galleries/media_metadata_parser.h"
|
| -#endif // !defined(OS_ANDROID) && !defined(OS_IOS)
|
| +#endif
|
|
|
| #if defined(ENABLE_FULL_PRINTING)
|
| #include "chrome/utility/printing_handler.h"
|
| @@ -81,16 +53,16 @@ void ReleaseProcessIfNeeded() {
|
| content::UtilityThread::Get()->ReleaseProcessIfNeeded();
|
| }
|
|
|
| -#if !defined(OS_ANDROID) && !defined(OS_IOS)
|
| +#if defined(ENABLE_EXTENSIONS)
|
| void FinishParseMediaMetadata(
|
| - metadata::MediaMetadataParser* parser,
|
| + metadata::MediaMetadataParser* /* parser */,
|
| const extensions::api::media_galleries::MediaMetadata& metadata,
|
| const std::vector<metadata::AttachedImage>& attached_images) {
|
| Send(new ChromeUtilityHostMsg_ParseMediaMetadata_Finished(
|
| true, *metadata.ToValue(), attached_images));
|
| ReleaseProcessIfNeeded();
|
| }
|
| -#endif // !defined(OS_ANDROID) && !defined(OS_IOS)
|
| +#endif
|
|
|
| } // namespace
|
|
|
| @@ -100,33 +72,38 @@ ChromeContentUtilityClient::ChromeContentUtilityClient()
|
| handlers_.push_back(new ProfileImportHandler());
|
| #endif
|
|
|
| +#if defined(ENABLE_EXTENSIONS)
|
| + handlers_.push_back(new extensions::ExtensionsHandler());
|
| + handlers_.push_back(new image_writer::ImageWriterHandler());
|
| +#endif
|
| +
|
| #if defined(ENABLE_FULL_PRINTING)
|
| handlers_.push_back(new PrintingHandler());
|
| #endif
|
|
|
| #if defined(ENABLE_MDNS)
|
| - if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| + if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kUtilityProcessEnableMDns)) {
|
| handlers_.push_back(new local_discovery::ServiceDiscoveryMessageHandler());
|
| }
|
| #endif
|
| -
|
| - handlers_.push_back(new image_writer::ImageWriterHandler());
|
| }
|
|
|
| ChromeContentUtilityClient::~ChromeContentUtilityClient() {
|
| }
|
|
|
| void ChromeContentUtilityClient::UtilityThreadStarted() {
|
| - CommandLine* command_line = CommandLine::ForCurrentProcess();
|
| - std::string lang = command_line->GetSwitchValueASCII(switches::kLang);
|
| - if (!lang.empty())
|
| - extension_l10n_util::SetProcessLocale(lang);
|
| -
|
| - if (command_line->HasSwitch(switches::kUtilityProcessRunningElevated)) {
|
| - message_id_whitelist_.insert(kMessageWhitelist,
|
| - kMessageWhitelist + kMessageWhitelistSize);
|
| - filter_messages_ = true;
|
| +#if defined(ENABLE_EXTENSIONS)
|
| + extensions::ExtensionsHandler::UtilityThreadStarted();
|
| +#endif
|
| +
|
| + if (kMessageWhitelistSize > 0) {
|
| + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
| + if (command_line->HasSwitch(switches::kUtilityProcessRunningElevated)) {
|
| + message_id_whitelist_.insert(kMessageWhitelist,
|
| + kMessageWhitelist + kMessageWhitelistSize);
|
| + filter_messages_ = true;
|
| + }
|
| }
|
| }
|
|
|
| @@ -137,16 +114,11 @@ bool ChromeContentUtilityClient::OnMessageReceived(
|
|
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(ChromeContentUtilityClient, message)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityMsg_UnpackExtension, OnUnpackExtension)
|
| IPC_MESSAGE_HANDLER(ChromeUtilityMsg_UnpackWebResource,
|
| OnUnpackWebResource)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseUpdateManifest,
|
| - OnParseUpdateManifest)
|
| IPC_MESSAGE_HANDLER(ChromeUtilityMsg_DecodeImage, OnDecodeImage)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityMsg_DecodeImageBase64, OnDecodeImageBase64)
|
| IPC_MESSAGE_HANDLER(ChromeUtilityMsg_RobustJPEGDecodeImage,
|
| OnRobustJPEGDecodeImage)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseJSON, OnParseJSON)
|
| IPC_MESSAGE_HANDLER(ChromeUtilityMsg_PatchFileBsdiff,
|
| OnPatchFileBsdiff)
|
| IPC_MESSAGE_HANDLER(ChromeUtilityMsg_PatchFileCourgette,
|
| @@ -154,41 +126,13 @@ bool ChromeContentUtilityClient::OnMessageReceived(
|
| IPC_MESSAGE_HANDLER(ChromeUtilityMsg_StartupPing, OnStartupPing)
|
| IPC_MESSAGE_HANDLER(ChromeUtilityMsg_AnalyzeZipFileForDownloadProtection,
|
| OnAnalyzeZipFileForDownloadProtection)
|
| -
|
| -#if !defined(OS_ANDROID) && !defined(OS_IOS)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityMsg_CheckMediaFile, OnCheckMediaFile)
|
| +#if defined(ENABLE_EXTENSIONS)
|
| IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseMediaMetadata,
|
| OnParseMediaMetadata)
|
| -#endif // !defined(OS_ANDROID) && !defined(OS_IOS)
|
| -
|
| +#endif
|
| #if defined(OS_CHROMEOS)
|
| IPC_MESSAGE_HANDLER(ChromeUtilityMsg_CreateZipFile, OnCreateZipFile)
|
| -#endif // defined(OS_CHROMEOS)
|
| -
|
| -#if defined(OS_WIN)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseITunesPrefXml,
|
| - OnParseITunesPrefXml)
|
| -#endif // defined(OS_WIN)
|
| -
|
| -#if defined(OS_MACOSX)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseIPhotoLibraryXmlFile,
|
| - OnParseIPhotoLibraryXmlFile)
|
| -#endif // defined(OS_MACOSX)
|
| -
|
| -#if defined(OS_WIN) || defined(OS_MACOSX)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParseITunesLibraryXmlFile,
|
| - OnParseITunesLibraryXmlFile)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityMsg_ParsePicasaPMPDatabase,
|
| - OnParsePicasaPMPDatabase)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityMsg_IndexPicasaAlbumsContents,
|
| - OnIndexPicasaAlbumsContents)
|
| -#endif // defined(OS_WIN) || defined(OS_MACOSX)
|
| -
|
| -#if defined(OS_WIN)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_GetAndEncryptWiFiCredentials,
|
| - OnGetAndEncryptWiFiCredentials)
|
| -#endif // defined(OS_WIN)
|
| -
|
| +#endif
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
|
|
| @@ -202,52 +146,33 @@ bool ChromeContentUtilityClient::OnMessageReceived(
|
|
|
| // static
|
| void ChromeContentUtilityClient::PreSandboxStartup() {
|
| +#if defined(ENABLE_EXTENSIONS)
|
| + extensions::ExtensionsHandler::PreSandboxStartup();
|
| +#endif
|
| +
|
| #if defined(ENABLE_FULL_PRINTING)
|
| PrintingHandler::PreSandboxStartup();
|
| #endif
|
|
|
| #if defined(ENABLE_MDNS)
|
| - if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| + if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kUtilityProcessEnableMDns)) {
|
| local_discovery::ServiceDiscoveryMessageHandler::PreSandboxStartup();
|
| }
|
| #endif // ENABLE_MDNS
|
| -
|
| -#if !defined(OS_ANDROID) && !defined(OS_IOS)
|
| - // Initialize libexif for image metadata parsing.
|
| - metadata::ImageMetadataExtractor::InitializeLibrary();
|
| -#endif // !defined(OS_ANDROID) && !defined(OS_IOS)
|
| -
|
| - // Load media libraries for media file validation.
|
| - base::FilePath media_path;
|
| - PathService::Get(content::DIR_MEDIA_LIBS, &media_path);
|
| - if (!media_path.empty())
|
| - media::InitializeMediaLibrary(media_path);
|
| }
|
|
|
| -void ChromeContentUtilityClient::OnUnpackExtension(
|
| - const base::FilePath& extension_path,
|
| - const std::string& extension_id,
|
| - int location,
|
| - int creation_flags) {
|
| - CHECK_GT(location, extensions::Manifest::INVALID_LOCATION);
|
| - CHECK_LT(location, extensions::Manifest::NUM_LOCATIONS);
|
| - extensions::ExtensionsClient::Set(
|
| - extensions::ChromeExtensionsClient::GetInstance());
|
| - extensions::Unpacker unpacker(
|
| - extension_path,
|
| - extension_id,
|
| - static_cast<extensions::Manifest::Location>(location),
|
| - creation_flags);
|
| - if (unpacker.Run() && unpacker.DumpImagesToFile() &&
|
| - unpacker.DumpMessageCatalogsToFile()) {
|
| - Send(new ChromeUtilityHostMsg_UnpackExtension_Succeeded(
|
| - *unpacker.parsed_manifest()));
|
| +// static
|
| +void ChromeContentUtilityClient::DecodeImage(
|
| + const std::vector<unsigned char>& encoded_data) {
|
| + const SkBitmap& decoded_image = content::DecodeImage(&encoded_data[0],
|
| + gfx::Size(),
|
| + encoded_data.size());
|
| + if (decoded_image.empty()) {
|
| + Send(new ChromeUtilityHostMsg_DecodeImage_Failed());
|
| } else {
|
| - Send(new ChromeUtilityHostMsg_UnpackExtension_Failed(
|
| - unpacker.error_message()));
|
| + Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(decoded_image));
|
| }
|
| -
|
| ReleaseProcessIfNeeded();
|
| }
|
|
|
| @@ -268,46 +193,9 @@ void ChromeContentUtilityClient::OnUnpackWebResource(
|
| ReleaseProcessIfNeeded();
|
| }
|
|
|
| -void ChromeContentUtilityClient::OnParseUpdateManifest(const std::string& xml) {
|
| - UpdateManifest manifest;
|
| - if (!manifest.Parse(xml)) {
|
| - Send(new ChromeUtilityHostMsg_ParseUpdateManifest_Failed(
|
| - manifest.errors()));
|
| - } else {
|
| - Send(new ChromeUtilityHostMsg_ParseUpdateManifest_Succeeded(
|
| - manifest.results()));
|
| - }
|
| - ReleaseProcessIfNeeded();
|
| -}
|
| -
|
| void ChromeContentUtilityClient::OnDecodeImage(
|
| const std::vector<unsigned char>& encoded_data) {
|
| - const SkBitmap& decoded_image = content::DecodeImage(&encoded_data[0],
|
| - gfx::Size(),
|
| - encoded_data.size());
|
| - if (decoded_image.empty()) {
|
| - Send(new ChromeUtilityHostMsg_DecodeImage_Failed());
|
| - } else {
|
| - Send(new ChromeUtilityHostMsg_DecodeImage_Succeeded(decoded_image));
|
| - }
|
| - ReleaseProcessIfNeeded();
|
| -}
|
| -
|
| -void ChromeContentUtilityClient::OnDecodeImageBase64(
|
| - const std::string& encoded_string) {
|
| - std::string decoded_string;
|
| -
|
| - if (!base::Base64Decode(encoded_string, &decoded_string)) {
|
| - Send(new ChromeUtilityHostMsg_DecodeImage_Failed());
|
| - return;
|
| - }
|
| -
|
| - std::vector<unsigned char> decoded_vector(decoded_string.size());
|
| - for (size_t i = 0; i < decoded_string.size(); ++i) {
|
| - decoded_vector[i] = static_cast<unsigned char>(decoded_string[i]);
|
| - }
|
| -
|
| - OnDecodeImage(decoded_vector);
|
| + DecodeImage(encoded_data);
|
| }
|
|
|
| #if defined(OS_CHROMEOS)
|
| @@ -356,21 +244,6 @@ void ChromeContentUtilityClient::OnRobustJPEGDecodeImage(
|
| ReleaseProcessIfNeeded();
|
| }
|
|
|
| -void ChromeContentUtilityClient::OnParseJSON(const std::string& json) {
|
| - int error_code;
|
| - std::string error;
|
| - base::Value* value = base::JSONReader::ReadAndReturnError(
|
| - json, base::JSON_PARSE_RFC, &error_code, &error);
|
| - if (value) {
|
| - base::ListValue wrapper;
|
| - wrapper.Append(value);
|
| - Send(new ChromeUtilityHostMsg_ParseJSON_Succeeded(wrapper));
|
| - } else {
|
| - Send(new ChromeUtilityHostMsg_ParseJSON_Failed(error));
|
| - }
|
| - ReleaseProcessIfNeeded();
|
| -}
|
| -
|
| void ChromeContentUtilityClient::OnPatchFileBsdiff(
|
| const base::FilePath& input_file,
|
| const base::FilePath& patch_file,
|
| @@ -423,18 +296,9 @@ void ChromeContentUtilityClient::OnAnalyzeZipFileForDownloadProtection(
|
| ReleaseProcessIfNeeded();
|
| }
|
|
|
| -#if !defined(OS_ANDROID) && !defined(OS_IOS)
|
| -void ChromeContentUtilityClient::OnCheckMediaFile(
|
| - int64 milliseconds_of_decoding,
|
| - const IPC::PlatformFileForTransit& media_file) {
|
| - media::MediaFileChecker checker(
|
| - IPC::PlatformFileForTransitToFile(media_file));
|
| - const bool check_success = checker.Start(
|
| - base::TimeDelta::FromMilliseconds(milliseconds_of_decoding));
|
| - Send(new ChromeUtilityHostMsg_CheckMediaFile_Finished(check_success));
|
| - ReleaseProcessIfNeeded();
|
| -}
|
| -
|
| +#if defined(ENABLE_EXTENSIONS)
|
| +// TODO(thestig) Try to move this to
|
| +// chrome/utility/extensions/extensions_handler.cc.
|
| void ChromeContentUtilityClient::OnParseMediaMetadata(
|
| const std::string& mime_type, int64 total_size, bool get_attached_images) {
|
| // Only one IPCDataSource may be created and added to the list of handlers.
|
| @@ -445,97 +309,4 @@ void ChromeContentUtilityClient::OnParseMediaMetadata(
|
| source, mime_type, get_attached_images);
|
| parser->Start(base::Bind(&FinishParseMediaMetadata, base::Owned(parser)));
|
| }
|
| -#endif // !defined(OS_ANDROID) && !defined(OS_IOS)
|
| -
|
| -#if defined(OS_WIN)
|
| -void ChromeContentUtilityClient::OnParseITunesPrefXml(
|
| - const std::string& itunes_xml_data) {
|
| - base::FilePath library_path(
|
| - itunes::FindLibraryLocationInPrefXml(itunes_xml_data));
|
| - Send(new ChromeUtilityHostMsg_GotITunesDirectory(library_path));
|
| - ReleaseProcessIfNeeded();
|
| -}
|
| -#endif // defined(OS_WIN)
|
| -
|
| -#if defined(OS_MACOSX)
|
| -void ChromeContentUtilityClient::OnParseIPhotoLibraryXmlFile(
|
| - const IPC::PlatformFileForTransit& iphoto_library_file) {
|
| - iphoto::IPhotoLibraryParser parser;
|
| - base::File file = IPC::PlatformFileForTransitToFile(iphoto_library_file);
|
| - bool result = parser.Parse(iapps::ReadFileAsString(file.Pass()));
|
| - Send(new ChromeUtilityHostMsg_GotIPhotoLibrary(result, parser.library()));
|
| - ReleaseProcessIfNeeded();
|
| -}
|
| -#endif // defined(OS_MACOSX)
|
| -
|
| -#if defined(OS_WIN) || defined(OS_MACOSX)
|
| -void ChromeContentUtilityClient::OnParseITunesLibraryXmlFile(
|
| - const IPC::PlatformFileForTransit& itunes_library_file) {
|
| - itunes::ITunesLibraryParser parser;
|
| - base::File file = IPC::PlatformFileForTransitToFile(itunes_library_file);
|
| - bool result = parser.Parse(iapps::ReadFileAsString(file.Pass()));
|
| - Send(new ChromeUtilityHostMsg_GotITunesLibrary(result, parser.library()));
|
| - ReleaseProcessIfNeeded();
|
| -}
|
| -
|
| -void ChromeContentUtilityClient::OnParsePicasaPMPDatabase(
|
| - const picasa::AlbumTableFilesForTransit& album_table_files) {
|
| - picasa::AlbumTableFiles files;
|
| - files.indicator_file =
|
| - IPC::PlatformFileForTransitToFile(album_table_files.indicator_file);
|
| - files.category_file =
|
| - IPC::PlatformFileForTransitToFile(album_table_files.category_file);
|
| - files.date_file =
|
| - IPC::PlatformFileForTransitToFile(album_table_files.date_file);
|
| - files.filename_file =
|
| - IPC::PlatformFileForTransitToFile(album_table_files.filename_file);
|
| - files.name_file =
|
| - IPC::PlatformFileForTransitToFile(album_table_files.name_file);
|
| - files.token_file =
|
| - IPC::PlatformFileForTransitToFile(album_table_files.token_file);
|
| - files.uid_file =
|
| - IPC::PlatformFileForTransitToFile(album_table_files.uid_file);
|
| -
|
| - picasa::PicasaAlbumTableReader reader(files.Pass());
|
| - bool parse_success = reader.Init();
|
| - Send(new ChromeUtilityHostMsg_ParsePicasaPMPDatabase_Finished(
|
| - parse_success,
|
| - reader.albums(),
|
| - reader.folders()));
|
| - ReleaseProcessIfNeeded();
|
| -}
|
| -
|
| -void ChromeContentUtilityClient::OnIndexPicasaAlbumsContents(
|
| - const picasa::AlbumUIDSet& album_uids,
|
| - const std::vector<picasa::FolderINIContents>& folders_inis) {
|
| - picasa::PicasaAlbumsIndexer indexer(album_uids);
|
| - indexer.ParseFolderINI(folders_inis);
|
| -
|
| - Send(new ChromeUtilityHostMsg_IndexPicasaAlbumsContents_Finished(
|
| - indexer.albums_images()));
|
| - ReleaseProcessIfNeeded();
|
| -}
|
| -#endif // defined(OS_WIN) || defined(OS_MACOSX)
|
| -
|
| -#if defined(OS_WIN)
|
| -void ChromeContentUtilityClient::OnGetAndEncryptWiFiCredentials(
|
| - const std::string& network_guid,
|
| - const std::vector<uint8>& public_key) {
|
| - scoped_ptr<wifi::WiFiService> wifi_service(wifi::WiFiService::Create());
|
| - wifi_service->Initialize(NULL);
|
| -
|
| - std::string key_data;
|
| - std::string error;
|
| - wifi_service->GetKeyFromSystem(network_guid, &key_data, &error);
|
| -
|
| - std::vector<uint8> ciphertext;
|
| - bool success = error.empty() && !key_data.empty();
|
| - if (success) {
|
| - NetworkingPrivateCrypto crypto;
|
| - success = crypto.EncryptByteString(public_key, key_data, &ciphertext);
|
| - }
|
| -
|
| - Send(new ChromeUtilityHostMsg_GotEncryptedWiFiCredentials(ciphertext,
|
| - success));
|
| -}
|
| -#endif // defined(OS_WIN)
|
| +#endif
|
|
|