Commit 774f1e70 authored by Istiaque Ahmed's avatar Istiaque Ahmed Committed by Commit Bot

Revert browserAction.setIcon implementation for Extension Service workers.

This CL partially reverts I1bc55cd5da2cc106e8d74dba172122d2bf943d31
that added support for setIcon from Extension Service workers. This
is because setIcon doesn't work for svg images.

This CL also disables the relevant tests
(*/BrowserActionApiLazyTest.Update with Service workers.)

Bug: 1049214
Test: browser_tests -f *BrowserActionApiLazyTest*:*NavigatingExtensionPopupBrowserTest*:*BrowserActionApiCanvasTest*
Change-Id: Ie3e755c198477b72d27935a54d934bd86dc79c1a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2042142
Auto-Submit: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: default avatarDevlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#739384}
parent fef3e039
...@@ -255,7 +255,8 @@ IN_PROC_BROWSER_TEST_P(BrowserActionApiLazyTest, Basic) { ...@@ -255,7 +255,8 @@ IN_PROC_BROWSER_TEST_P(BrowserActionApiLazyTest, Basic) {
EXPECT_TRUE(catcher.GetNextResult()); EXPECT_TRUE(catcher.GetNextResult());
} }
IN_PROC_BROWSER_TEST_P(BrowserActionApiLazyTest, Update) { using BrowserActionApiUpdateLazyTest = BrowserActionApiLazyTest;
IN_PROC_BROWSER_TEST_P(BrowserActionApiUpdateLazyTest, Update) {
ExtensionTestMessageListener ready_listener("ready", true); ExtensionTestMessageListener ready_listener("ready", true);
ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_TRUE(embedded_test_server()->Start());
const Extension* extension = LoadExtensionWithParamFlags( const Extension* extension = LoadExtensionWithParamFlags(
...@@ -301,6 +302,22 @@ INSTANTIATE_TEST_SUITE_P(ServiceWorkerAndExtensionsMenu, ...@@ -301,6 +302,22 @@ INSTANTIATE_TEST_SUITE_P(ServiceWorkerAndExtensionsMenu,
::testing::Values(kUseServiceWorker | ::testing::Values(kUseServiceWorker |
kUseExtensionsMenuUi)); kUseExtensionsMenuUi));
INSTANTIATE_TEST_SUITE_P(EventPageAndLegacyToolbar,
BrowserActionApiUpdateLazyTest,
::testing::Values(kNone));
INSTANTIATE_TEST_SUITE_P(EventPageAndExtensionsMenu,
BrowserActionApiUpdateLazyTest,
::testing::Values(kUseExtensionsMenuUi));
// TODO(crbug.com/1015136): Enable these once setIcon works in Service worker
// extensions. Also, combine this suite with BrowserActionApiLazyTest.
// INSTANTIATE_TEST_SUITE_P(ServiceWorkerAndLegacyToolbar,
// BrowserActionApiUpdateLazyTest,
// ::testing::Values(kUseServiceWorker));
// INSTANTIATE_TEST_SUITE_P(ServiceWorkerAndExtensionsMenu,
// BrowserActionApiUpdateLazyTest,
// ::testing::Values(kUseServiceWorker |
// kUseExtensionsMenuUi));
IN_PROC_BROWSER_TEST_F(BrowserActionApiCanvasTest, DynamicBrowserAction) { IN_PROC_BROWSER_TEST_F(BrowserActionApiCanvasTest, DynamicBrowserAction) {
ASSERT_TRUE(RunExtensionTest("browser_action/no_icon")) << message_; ASSERT_TRUE(RunExtensionTest("browser_action/no_icon")) << message_;
const Extension* extension = GetSingleLoadedExtension(); const Extension* extension = GetSingleLoadedExtension();
......
...@@ -5,32 +5,22 @@ ...@@ -5,32 +5,22 @@
var SetIconCommon = requireNative('setIcon').SetIconCommon; var SetIconCommon = requireNative('setIcon').SetIconCommon;
function loadImagePath(path, callback) { function loadImagePath(path, callback) {
let fetchPromise = fetch(path); var img = new Image();
img.onerror = function() {
let blobPromise = $Promise.then(fetchPromise, function(response) { console.error('Could not load action icon \'' + path + '\'.');
if (!response.ok) { };
throw new $Error.self('Could not load action icon \'' + path + '\'.'); img.onload = function() {
} var canvas = document.createElement('canvas');
return response.blob(); canvas.width = img.width;
}); canvas.height = img.height
let imagePromise = $Promise.then(blobPromise, function(blob) {
return createImageBitmap(blob);
});
let imageDataPromise = $Promise.then(imagePromise, function(image) {
var canvas = new OffscreenCanvas(image.width, image.height);
var canvas_context = canvas.getContext('2d'); var canvas_context = canvas.getContext('2d');
canvas_context.clearRect(0, 0, canvas.width, canvas.height); canvas_context.clearRect(0, 0, canvas.width, canvas.height);
canvas_context.drawImage(image, 0, 0, canvas.width, canvas.height); canvas_context.drawImage(img, 0, 0, canvas.width, canvas.height);
var imageData = canvas_context.getImageData(0, 0, canvas.width, var imageData = canvas_context.getImageData(0, 0, canvas.width,
canvas.height); canvas.height);
callback(imageData); callback(imageData);
}); };
img.src = path;
$Promise.catch(imageDataPromise, function(error) {
console.error(error);
});
} }
function smellsLikeImageData(imageData) { function smellsLikeImageData(imageData) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment