Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: lib/filterComposer.js

Issue 29596637: Issue 5985 - Work around Firefox bug causing Block element dialog to be empty on Linux (Closed) Base URL: https://hg.adblockplus.org/adblockpluschrome
Patch Set: Created Nov. 3, 2017, 1:10 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-present eyeo GmbH 3 * Copyright (C) 2006-present eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 }); 208 });
209 209
210 port.on("composer.ready", (message, sender) => 210 port.on("composer.ready", (message, sender) =>
211 { 211 {
212 readyPages.set(sender.page, null); 212 readyPages.set(sender.page, null);
213 updateContextMenu(sender.page); 213 updateContextMenu(sender.page);
214 }); 214 });
215 215
216 port.on("composer.openDialog", (message, sender) => 216 port.on("composer.openDialog", (message, sender) =>
217 { 217 {
218 return new Promise(resolve => 218 return browser.windows.create({
219 url: browser.extension.getURL("composer.html"),
220 left: 50,
221 top: 50,
222 width: 420,
223 height: 200,
224 type: "popup"
225 }).then(window =>
219 { 226 {
220 ext.windows.create({ 227 let popupPageId = window.tabs[0].id;
kzar 2017/11/03 13:24:06 I think we can remove ext.windows from ext/backgro
Wladimir Palant 2017/11/03 13:49:05 Sure - after the release.
kzar 2017/11/03 13:57:06 Well if we're only doing the bare minimum for the
Wladimir Palant 2017/11/03 13:59:37 Because the ext API only gives us a tab ID but not
kzar 2017/11/03 14:00:56 Ah, OK.
221 url: browser.extension.getURL("composer.html"), 228 function onRemoved(removedPageId)
222 left: 50,
223 top: 50,
224 width: 420,
225 height: 200,
226 type: "popup"
227 },
228 popupPage =>
229 { 229 {
230 let popupPageId = popupPage.id; 230 if (popupPageId == removedPageId)
231 function onRemoved(removedPageId)
232 { 231 {
233 if (popupPageId == removedPageId) 232 sender.page.sendMessage({
234 { 233 type: "composer.content.dialogClosed",
235 sender.page.sendMessage({ 234 popupId: popupPageId
236 type: "composer.content.dialogClosed", 235 });
237 popupId: popupPageId 236 ext.pages.onRemoved.removeListener(onRemoved);
238 });
239 ext.pages.onRemoved.removeListener(onRemoved);
240 }
241 } 237 }
242 ext.pages.onRemoved.addListener(onRemoved); 238 }
243 resolve(popupPageId); 239 ext.pages.onRemoved.addListener(onRemoved);
244 }); 240
241 if (require("info").application == "firefox" &&
242 navigator.oscpu.startsWith("Linux"))
kzar 2017/11/03 13:24:06 (I'll take your word for it that this is the best
Wladimir Palant 2017/11/03 13:49:05 It's not a great way, but it's worse than any othe
kzar 2017/11/03 13:57:06 Acknowledged.
243 {
244 // Work around https://bugzil.la/1408446
245 browser.windows.update(window.id, {width: window.width + 1});
246 }
247 return popupPageId;
245 }); 248 });
246 }); 249 });
247 250
248 port.on("composer.getFilters", (message, sender) => 251 port.on("composer.getFilters", (message, sender) =>
249 { 252 {
250 return composeFilters({ 253 return composeFilters({
251 tagName: message.tagName, 254 tagName: message.tagName,
252 id: message.id, 255 id: message.id,
253 src: message.src, 256 src: message.src,
254 style: message.style, 257 style: message.style,
(...skipping 10 matching lines...) Expand all
265 { 268 {
266 return quoteCSS(message.CSS); 269 return quoteCSS(message.CSS);
267 }); 270 });
268 271
269 ext.pages.onLoading.addListener(page => 272 ext.pages.onLoading.addListener(page =>
270 { 273 {
271 // A newly opened tab that is still loading has its URL set to about:blank 274 // A newly opened tab that is still loading has its URL set to about:blank
272 if (/^https?:/.test(page.url.protocol)) 275 if (/^https?:/.test(page.url.protocol))
273 page.sendMessage({type: "composer.content.finished"}); 276 page.sendMessage({type: "composer.content.finished"});
274 }); 277 });
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld