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

Side by Side Diff: lib/devtools.js

Issue 29907589: Issue 7054 - Update the adblockpluscore dependency to 5cb695da5a40, adblockplusui to f86abf2efdfd (Closed)
Patch Set: Address PS5 Comments Created Dec. 9, 2018, 4:27 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 | « dependencies ('k') | lib/filterComposer.js » ('j') | 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
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details. 12 * GNU General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU General Public License 14 * You should have received a copy of the GNU General Public License
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 17
18 "use strict"; 18 "use strict";
19 19
20 const {RegExpFilter, 20 const {RegExpFilter,
21 WhitelistFilter, 21 WhitelistFilter,
22 ElemHideFilter} = require("../adblockpluscore/lib/filterClasses"); 22 ElemHideFilter} = require("../adblockpluscore/lib/filterClasses");
23 const {SpecialSubscription} = 23 const {SpecialSubscription, Subscription} =
24 require("../adblockpluscore/lib/subscriptionClasses"); 24 require("../adblockpluscore/lib/subscriptionClasses");
25 const {FilterStorage} = require("../adblockpluscore/lib/filterStorage"); 25 const {filterStorage} = require("../adblockpluscore/lib/filterStorage");
26 const {defaultMatcher} = require("../adblockpluscore/lib/matcher"); 26 const {defaultMatcher} = require("../adblockpluscore/lib/matcher");
27 const {filterNotifier} = require("../adblockpluscore/lib/filterNotifier"); 27 const {filterNotifier} = require("../adblockpluscore/lib/filterNotifier");
28 const {extractHostFromFrame} = require("./url"); 28 const {extractHostFromFrame} = require("./url");
29 const {port} = require("./messaging"); 29 const {port} = require("./messaging");
30 const {HitLogger, nonRequestTypes} = require("./hitLogger"); 30 const {HitLogger, nonRequestTypes} = require("./hitLogger");
31 31
32 let panels = new Map(); 32 let panels = new Map();
33 33
34 function isActivePanel(panel) 34 function isActivePanel(panel)
35 { 35 {
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 // previous URL. 150 // previous URL.
151 if (panel && panel.reload) 151 if (panel && panel.reload)
152 { 152 {
153 browser.tabs.reload(tabId, {bypassCache: true}); 153 browser.tabs.reload(tabId, {bypassCache: true});
154 154
155 panel.reload = false; 155 panel.reload = false;
156 panel.reloading = true; 156 panel.reloading = true;
157 } 157 }
158 } 158 }
159 159
160 function updateFilters(filters, added) 160 function updateFilters(filters, added, subscription = null)
161 { 161 {
162 let includes = filters.includes.bind(filters);
163
164 if (filters instanceof Subscription)
165 includes = filter => filters.searchFilter(filter) != -1;
166
162 for (let panel of panels.values()) 167 for (let panel of panels.values())
163 { 168 {
164 for (let i = 0; i < panel.records.length; i++) 169 for (let i = 0; i < panel.records.length; i++)
165 { 170 {
166 let record = panel.records[i]; 171 let record = panel.records[i];
167 172
168 // If an added filter matches a request shown in the devtools panel, 173 // If an added filter matches a request shown in the devtools panel,
169 // update that record to show the new filter. Ignore filters that aren't 174 // update that record to show the new filter. Ignore filters that aren't
170 // associated with any sub-resource request. There is no record for these 175 // associated with any sub-resource request. There is no record for these
171 // if they don't already match. In particular, in case of element hiding 176 // if they don't already match. In particular, in case of element hiding
172 // filters, we also wouldn't know if any new element matches. 177 // filters, we also wouldn't know if any new element matches.
173 if (added) 178 if (added)
174 { 179 {
175 if (nonRequestTypes.includes(record.request.type)) 180 if (nonRequestTypes.includes(record.request.type))
176 continue; 181 continue;
177 182
178 let filter = matchRequest(record.request); 183 let filter = matchRequest(record.request);
179 if (!filters.includes(filter)) 184 if (!includes(filter))
180 continue; 185 continue;
181 186
182 record.filter = filter; 187 record.filter = filter;
183 } 188 }
184 189
185 // If a filter shown in the devtools panel got removed, update that 190 // If a filter shown in the devtools panel got removed, update that
186 // record to show the filter that matches now, or none, instead. 191 // record to show the filter that matches now, or none, instead.
187 // For filters that aren't associated with any sub-resource request, 192 // For filters that aren't associated with any sub-resource request,
188 // just remove the record. We wouldn't know whether another filter 193 // just remove the record. We wouldn't know whether another filter
189 // matches instead until the page is reloaded. 194 // matches instead until the page is reloaded.
190 else 195 else
191 { 196 {
192 if (!filters.includes(record.filter)) 197 if (!includes(record.filter))
193 continue; 198 continue;
194 199
195 if (nonRequestTypes.includes(record.request.type)) 200 if (nonRequestTypes.includes(record.request.type))
196 { 201 {
197 panel.port.postMessage({ 202 panel.port.postMessage({
198 type: "remove-record", 203 type: "remove-record",
199 index: i 204 index: i
200 }); 205 });
201 panel.records.splice(i--, 1); 206 panel.records.splice(i--, 1);
202 continue; 207 continue;
(...skipping 18 matching lines...) Expand all
221 } 226 }
222 227
223 function onFilterRemoved(filter) 228 function onFilterRemoved(filter)
224 { 229 {
225 updateFilters([filter], false); 230 updateFilters([filter], false);
226 } 231 }
227 232
228 function onSubscriptionAdded(subscription) 233 function onSubscriptionAdded(subscription)
229 { 234 {
230 if (subscription instanceof SpecialSubscription) 235 if (subscription instanceof SpecialSubscription)
231 updateFilters(subscription.filters, true); 236 updateFilters(subscription.filters, true, subscription);
232 } 237 }
233 238
234 browser.runtime.onConnect.addListener(newPort => 239 browser.runtime.onConnect.addListener(newPort =>
235 { 240 {
236 let match = newPort.name.match(/^devtools-(\d+)$/); 241 let match = newPort.name.match(/^devtools-(\d+)$/);
237 if (!match) 242 if (!match)
238 return; 243 return;
239 244
240 let inspectedTabId = parseInt(match[1], 10); 245 let inspectedTabId = parseInt(match[1], 10);
241 let localOnBeforeRequest = onBeforeRequest.bind(); 246 let localOnBeforeRequest = onBeforeRequest.bind();
(...skipping 28 matching lines...) Expand all
270 ext.pages.onLoading.removeListener(onLoading); 275 ext.pages.onLoading.removeListener(onLoading);
271 filterNotifier.off("filter.added", onFilterAdded); 276 filterNotifier.off("filter.added", onFilterAdded);
272 filterNotifier.off("filter.removed", onFilterRemoved); 277 filterNotifier.off("filter.removed", onFilterRemoved);
273 filterNotifier.off("subscription.added", onSubscriptionAdded); 278 filterNotifier.off("subscription.added", onSubscriptionAdded);
274 } 279 }
275 }); 280 });
276 281
277 HitLogger.addListener(inspectedTabId, hitListener); 282 HitLogger.addListener(inspectedTabId, hitListener);
278 panels.set(inspectedTabId, panel); 283 panels.set(inspectedTabId, panel);
279 }); 284 });
OLDNEW
« no previous file with comments | « dependencies ('k') | lib/filterComposer.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld