Changing SandboxedUnpacker image sanitization.
In preparation for moving extension unpacking to the browser process,
making the image sanitization (decoding/reencoding) be triggered by
SandboxedUnpacker in the browser process, using the new ImageSanitizer
class. ImageSanitizer decodes images safely using the data decoder
service and then reencodes them.
Bug: 800540
Change-Id: I40edae3cbd4ab8f03a2494a8d615107bc7feff6d
Tbr: [email protected], [email protected]
Reviewed-on: https://chromium-review.googlesource.com/870744
Reviewed-by: Ken Rockot <[email protected]>
Reviewed-by: Tom Sepez <[email protected]>
Reviewed-by: James Cook <[email protected]>
Reviewed-by: Jay Civelli <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Reilly Grant <[email protected]>
Commit-Queue: Jay Civelli <[email protected]>
Cr-Commit-Position: refs/heads/master@{#531440}
diff --git a/chrome/browser/extensions/test_extension_system.cc b/chrome/browser/extensions/test_extension_system.cc
index beaa4f8a..dbd097f 100644
--- a/chrome/browser/extensions/test_extension_system.cc
+++ b/chrome/browser/extensions/test_extension_system.cc
@@ -10,6 +10,7 @@
#include "base/memory/ptr_util.h"
#include "chrome/browser/extensions/blacklist.h"
#include "chrome/browser/extensions/chrome_app_sorting.h"
+#include "chrome/browser/extensions/crx_installer.h"
#include "chrome/browser/extensions/extension_management.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/shared_module_service.h"
@@ -17,6 +18,7 @@
#include "chrome/common/chrome_switches.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/common/service_manager_connection.h"
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
@@ -72,6 +74,11 @@
profile_, command_line, install_directory, ExtensionPrefs::Get(profile_),
Blacklist::Get(profile_), autoupdate_enabled, extensions_enabled,
&ready_));
+ if (!test_data_decoder_service_) {
+ test_data_decoder_service_ =
+ std::make_unique<data_decoder::TestDataDecoderService>();
+ }
+ CrxInstaller::set_connector_for_test(test_data_decoder_service_->connector());
extension_service_->ClearProvidersForTesting();
return extension_service_.get();
}