I'd like to add a vote to the "don't break uBlock Origin or other ad blocking extensions" camp. I believe very, very strongly in maintaining my ability to use ad blocking software on my browser, and I will switch myself to another browser to maintain that capability if required.
I will also switch everyone I support on a technical basis, and begin blocking Google's ads on a DNS level for not only my personal network but also the networks I manage at work. Up until now we've mostly turned a blind eye to ads, since it wasn't worth convincing executives that they should greenlight DNS filtering and it helps to pay for the products we all use in our personal time, but if Chromium and Google begin actively working to subvert user choice in this manner, my team will be much more incentivized to figure out a less-targeted solution than an ad blocker.
I urge the Chromium team to reconsider. I know many of the developers working on this team are interested in building a better browser and providing a better user experience; this, however, will not further those goals.
I urge Google to resurrect a real and active Standardization effort around WebExtensions. This is the *only* part of the Browser space that is not handled that way, and we clearly see today with the v3 proposal that it is not workable for third-party implementors any more. We just cannot cope with deep changes of high magnitude in a timely manner. The financial impact of the proposed changed on extension vendors is vastly underestimated (if estimated at all), and that alone should be a showstopper signal from a strategic point of view.
</Daniel>
--
Privowny, Co-CTO & Vice-President Engineering
Hi
I would also like to raise a concern regarding this. In addition to ad blocking this seems to affect
also security software that rely on extension capabilities of dynamically blocking https traffic that is
rated as malicious or otherwise harmful for user. This includes pages spreading mal/spy/whateverware,
but also for example parental control type of functions, i.e. protecting (child) user from content categorized
as harmful/unwanted for him/her.
1) the 30K rule limit is utterly small. Indeed, some anti-phishing list alone may include millions of entries.
To be clear:
1. This change _IS NOT INTENDED TO GIMP AD BLOCKERS_. Rather, it is designed to make them faster and more secure. (Yes, even despite the limitations that might impact uBlock.)
2. The new proposed content blocking API _is not final_ and can/will be changed.
3. Threatening to switching to Firefox is not helpful and _WILL NOT CHANGE GOOLE'S MIND ABOUT THIS_.
If you don't understand this, please refrain from commenting as you'll only be decreasing the signal-to-noise ratio in this thread and thus making it more likely that the entire thread (including those who are expressing actual legitimate concerns about the limitations of the new API) gets ignored.
If you want to help:
1. Explain a specific use case that the new API can't handle (including a technical explanation of _why_ it can't handle that use-case)
2. Suggest constructive changes to manifest V3's API that will improve its capabilities _while still adhering to the stated goals of manifest V3_
3. If you can't do any of the above, please refrain from commenting so you don't just make things worse
Sorry if I sound aggressive. It just really frustrates me when constructive technical discussions get hijacked by large volumes of unconstructive, uniformed comments. It makes it way harder to get real work done.
Is there a proposed timeline for this change? Will V2 stick around for awhile or will it be deprecated the moment V3 moves to production?
The design doc mentions that the "new declarativeNetRequest API will be used as the primary content-blocking API in extensions" which implies that there will be other means for content blocking. If so, which is it referring to or is it mean to say "only" instead of "primary"?
The design doc states that the primary reason for disabling the blocking-variant of the webRequest API is that extensions could - potentially - take a long time to come up with a response to a request. Considering that this change affects the API that tens, if not hundreds, of millions of Chrome/Chromium users depend on and that the declaractive variant of the webRequest API has never made it out of its experimental phase, which other options have been taken into consideration so far? (e.g. limiting the time an extension can take to handle a request or "punishing" it if it's consistently slow)
Will there be ways for extension developers to extend the built-in content blocking features that the browser provides?
In Manifest V3, host permissions will be granted by the user at runtime (similar to activeTab, but with options for the user to choose to always run on a specific site or all sites)
--
You received this message because you are subscribed to the Google Groups "Chromium Extensions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-extens...@chromium.org.
To post to this group, send email to chromium-...@chromium.org.
Visit this group at https://groups.google.com/a/chromium.org/group/chromium-extensions/.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-extensions/59fd14bd-24b3-44a7-b683-a224fd1c6296%40chromium.org.
The webRequest API offers much more flexibility than the declarative version, and there are some known cases that it won't properly address. Because of this, we are certain that we will need to keep the webRequest API around. We are discussing limiting its capabilities, though these exact limitations are still being discussed (and is the main reason we are gathering feedback about what can/cannot be accomplished today with declarativeNetRequest).
We did think about approaches like this. Overall, a declarative approach offered greater benefits (ensured performance and guaranteed execution) versus potentially allowing content that would have otherwise been blocked in pessimistic performance cases. This is particularly important for privacy-related content blockers, where a user may need absolute guarantees that something will be blocked 100% of the time (and won't be allowed through if an extension took to long to decide - which could even happen based on external factors, like other programs running).
Can you expand on this a bit? Certainly declarativeNetRequest allows developers to specify their own list of sites in addition to the resources already handled by subresource filtering. If you're referring to to expanding API capabilities (offering different matching capabilities or actions to take), these would require updates to Chromium itself.
I cannot guarantee anything i'm just sharing my thoughts .This discussion can last forever but if you ask me the current implementation is really bad, i'm not saying that chrome should brutally restrict everything but some restrictions must be done.And regarding other proposed solutions like what you've mentioned the more granular permissions system , that's still doesn't change anything because third party lists have the ability to manipulate those headers and even if the user agreed to modify the csp header how can you guarantee that the injected header will not be malicious ? or if the extension have a vulnerability that allows CRLF injection which will cause the response to "split" . so if some threat actor compromised one of those lists the results can be catastrophic.LSS in the current implementation the extensions api's introduces huge security concerns .
If you're using/developing an "OS app" that executing/using some sort of logic from a third party lists than yes that's a big security risk and very bad practice.Now If you misunderstood me i'm quite sorry but as i wrote above my concern is the ability of those third party lists to influence the extension logic, the only way to restrict those api properly is to allow only hardcoded manipulation (exactly what this manifest suggests) so google algorithms can properly check them before the end user installs the extension, any dynamic css manipulation is perfectly fine but dynamic manipulation of sensitive headers that can be controlled by third party lists is for me a huge security concern.
If you're using/developing an "OS app" that executing/using some sort of logic from a third party lists than yes that's a big security risk and very bad practice.
Now If you misunderstood me i'm quite sorry but as i wrote above my concern is the ability of those third party lists to influence the extension logic, the only way to restrict those api properly is to allow only hardcoded manipulation (exactly what this manifest suggests) so google algorithms can properly check them before the end user installs the extension, any dynamic css manipulation is perfectly fine but dynamic manipulation of sensitive headers that can be controlled by third party lists is for me a huge security concern.
On Sunday, January 27, 2019 at 11:38:31 AM UTC+2, wOxxOm wrote:
--
You received this message because you are subscribed to a topic in the Google Groups "Chromium Extensions" group.
To unsubscribe from this topic, visit https://groups.google.com/a/chromium.org/d/topic/chromium-extensions/veJy9uAwS00/unsubscribe.
To unsubscribe from this group and all its topics, send an email to chromium-extens...@chromium.org.
To post to this group, send email to chromium-...@chromium.org.
Visit this group at https://groups.google.com/a/chromium.org/group/chromium-extensions/.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-extensions/a81c52f7-60c3-4809-bf5c-3738a4e496f3%40chromium.org.
Seriously, people. Keep it OT and cut the profanity. At this rate, Google won't even consider our side. If you want to be taken seriously, stay focused.
As I see it, by granting so called privacy and speed with the v3 change, you are restricting that and user choices. The plan, as it is now, destroys any content filtering or adblocking. For instance, I use UBlock, NoScript, and https everywhere. Those all will be either rendered non-functional or severely crippled.
Also, you will take away user choice. If I don't want to see ads or malware or whatever, I should not have to. I should not have to look up every single page to see if it's safe. Extensions like UBlock have the ability currently to prevent malicious pages or ads from loading.
That being said, I do think the current system needs improvement. As in update the webRequest API, not severely restrict it. I would also recommend tighter Web store security
If the proposal was modified so these extensions could still function, that would be just as functional. But as it stands now, our choice, privacy, and security potentially provided by these extensions is at risk.
--
You received this message because you are subscribed to a topic in the Google Groups "Chromium Extensions" group.
To unsubscribe from this topic, visit https://groups.google.com/a/chromium.org/d/topic/chromium-extensions/veJy9uAwS00/unsubscribe.
To unsubscribe from this group and all its topics, send an email to chromium-extens...@chromium.org.
To post to this group, send email to chromium-...@chromium.org.
Visit this group at https://groups.google.com/a/chromium.org/group/chromium-extensions/.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-extensions/9fa38309-f094-4a3d-927b-708422038a0e%40chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-extensions/1548598666.25187359%40f29.my.com.
Bromium develops and maintains two cross browser web extensions, Secure Browsing and HP SureClick Secure Browsing. Both extensions share the same code base and feature set, so for the rest of this message I will refer only to Secure Browsing. Secure Browsing is a web extension designed to run on Windows PCs with an installation of the Bromium Secure Platform security product. In particular, Secure Browsing is designed to block navigations to potentially risky websites, and to launch the Chromium-based Bromium Secure Browser to use for those navigations instead. Bromium Secure Browser offers an additional level of security on top of that provided by Google Chrome. Navigations to websites in Bromium Secure Browser take place inside an ephemeral virtual machine, that is isolated from the rest of the operating system. In its current iteration, Secure Browsing uses the webRequest API to deliver this functionality. In its current proposed form, the replacement declarativeNetRequest API will prove insufficient to re-implement this functionality. Logic for determining whether a navigation is potentially risky The logic for determining whether a navigation is potentially risky is based on an engine which works in a similar way to the declarativeNetRequest API, but which is more general in scope. Rather than specifying a set of rules which match a pattern against the URL of a network request, the engine used by Secure Browser specifies a set of rules which match a sequence of patterns against the origins of a sequence of top-level network requests. For example, when a user on mail.gmail.com clicks a link in an email to evil.com, a new tab is opened, and in that tab, a request is first made to google.com, which then redirects to evil.com. This sequence of requests can be expressed by a rule, which matches against each request in turn, and takes an action when every pattern in the sequence, up to and including the last pattern has matched. That action may be to allow the request, to block the request or to redirect the request to a different URL. Both the origin and the Content-Type of the request can be matched against. Origins can be matched literally or named groups of related origins can be referred to by a single group name. Features |
First off, I'd like to reiterate a few points:- The webRequest API is not going to go away in its entirety. It will be affected, but the exact changes are still in discussion.- This design is still in a draft state, and will likely change.- Our goal is not to break extensions. We are working with extension developers to strive to keep this breakage to a minimum, while still advancing the platform to enhance security, privacy, and performance for all users.Transparency and openness is core to the Chromium project, and we welcome feedback because we think having technical discussions in the open is valuable. However, these discussions should be kept productive, and should always follow our code of conduct.For feedback specific to details of the declarativeNetRequest API, such as the 30k rule limit, should be raised on the thread that was sent out in November soliciting feedback on that API.I certainly understand that there are a number of concerns around limiting the power of the webRequest API in favor of a declarative API - it is much more restrictive, and doesn't offer the flexibility the webRequest API does. The most helpful feedback for us is the exact cases that this would impact, their importance, and the reasons they are impossible through either the declarative API or through other extension APIs. A number of these were raised in comment #23 on the bug, including:- increased flexibility for specificity/overrides of rules- blocking elements of certain sizes- disabling JS execution through injection of CSP directives- removal of outgoing cookie headersAnother issue that has been raised here a number of times is the ability to dynamically and instantly update the ruleset.Having a list of the use cases that aren't feasible is incredibly useful for us in moving forward.Please also try to keep discussions on-topic. This is not the right thread for discussions around other aspects of potential Manifest V3 changes, the WebExtensions standardization effort, or non-technical discussions.Cheers,- Devlin
On Wednesday, January 23, 2019 at 8:10:35 AM UTC-8, addisons...@gmail.com wrote:Does anyone outside of the chromium developer circle actually support this? Is there a particular instance where this functionality has been a problem, where neutering the API would prevent such an issue? There are tons of use-cases for blocking using the existing API, but I've yet to see any issues with security that don't involve a user deliberately installing a malicious plug-in or userscripts (I discount these cases because you can't design a safety feature that prevents a user from putting your gun to their head)..
I had a closer look at the declarativeNetRequest API, and wrote a script [1] that converts filter lists (like EasyList). However, due to the limited filter capabilities of delcarativeNetRequest, not all filters can be converted. Here is what is missing in order to support existing filter lists and current ad blocking requirements:
1. In condition.urlFilter, the ^ character should match the end of the URL as well. It seems the developer who wrote the code was aware of that and left a TODO comment [2]. For the time being, I could add another rule using | instead, for each rule ending with ^, in order to get the correct behavior, but that would significantly increase the number of resulting rules which is already extremely limited.
2. There are some filters in EasyList that matches the URL against a regular expression. There are only a few, but the ads they block cannot be targeted with simple glob patterns. It would be great if there would be an option like condition.urlRegExp for cases like that. It might even be OK if the number of regular expression filters is limited.
3. Adblock Plus supports $document exception rules (used in EasyList), which essentially prevent anything from being blocked within a matching document (top-level or iframe) and recursively within any sub-document. This is somewhat similar to using addAllowedPages(), but the pattern accepted by addAllowedPages() is more limited, and it is only applied to top-level documents. It would be great if there would be an "allow-sub-resources" action that, instead of whitelisting the matching request, whitelists everything within the document loaded by that request, just like $document exception rules.
4. There is also the $genericblock filter option, which follows the same semantics as the $document filter option (see above), but instead of whitelisting everything within the document, it only prevents filters without domain restriction from blocking requests. That is useful when generic filters (i.e. filters without domain restriction) cause false positives or other side effects on a page. In order to support the $genericblock filter option, we'd need rule priorities (currently the priority seems to be ignored by block/allow rules), in addition to the aforementioned "allow-sub-resources" action.
5. There are $csp filters (used in EasyList) that inject a Content-Security-Policy header into the response of the matching request. This is very helpful in cases where websites go to quite some length trying to circumvent ad blocking (through workers, inline scripts, plugins, etc.). Therefore it would be great to have a rule action that injects arbitrary headers, or at the very least specifically Content-Security-Policy headers. Note that if multiple Content-Security-Policy headers are given in a response, only the subset allowed by each Content-Security-Policy header will be allowed.
6. Unfortunately, "redirect" actions don't seem to work yet in Chrome beta 72.0.3626.81. But once supported, it would be great if "allow" rules would as well prevent "redirect" actions. According to the documentation this doesn't seem to be the case. This is necessary to support $rewrite/$redirect filter options, without breaking the whitelisting semantics of Adblock Plus.
7. 30,000 rules are just not enough for EasyList alone. My script outputs almost 40K rules for EasyList, once the above limitations are lifted and more filters can be converted, this number will increase. Moreover, users that speak other languages than English have at least one language-specific complementary filter list in addition to EasyList, not to mention other complementary filter lists like EasyPrivacy.
Furthemore, the following limitations of the API make an adoption in Adblock Plus impractical:
8. It is essential for Adblock Plus to be able to update the rules at runtime. Users need to be in control of what is blocked, but even in the default configuration the filter lists vary based on the user's language. Also filter lists need to be updated at a much higher frequency than updating an extension would be practical at, in order to keep up with websites as they change, sometimes at a high frequency specifically to prevent their ads from being blocked.
9. It would be great if there would be an API in order to observe rules as they are applied and the request they were applied to. Otherwise, we can no longer provide filter analysis functionality [3] which is an important tool for filter list authors.
What is the estimated time to release the webRequest changes in Dev/beta/production?
DeclarativeNetRequest does not support adding the block domain at runtime. Same time it supports maximum entries in block list is 30k. Our domain lists are over 30k entries. And that is increasing. If you are forcing us to use only 30k blocked domain, that will reduce the security on Chromebook.
If you are removing blocking options from webRequest API then we are completely blocked. Is there any alternative solution to provide security for more than 30k blocked domain.
What is the estimated time to release the newly introduced DeclarativeNetRequest APIs in production/beta? Any detailed doc for same?
If V3 Applies to App, our APP uses TCP server that serves requests all the time is there a time constraint for the application in the new version. For example, if a process is running more than x hours then will it be terminated?
“Long-running background processes should not be allowed.” How can this impact us as we have App running TCP server?
Manifest V3 update is for Extension and App both?
Is the WebRequest API being deprecated for blocking requests, if yes any detailed documentation available on the same?
Is it possible to hold the request in webRequest API or it is going to become read only.
Is any other alternative available for blocking requests other than DeclarativeNetRequest?
Is it possible to time bound the waiting/holding time of webRequest API instead of removing the blocking option.
I’m Dan Finlay, a lead developer at MetaMask. We’re a chrome extension crypto wallet and account manager with about a million active installs.
We would like the v3 manifest format to not be pushed to production in its current form until support for the FrozenRealms specification has been included, or at least iFrame API support is kept in the background script context.
We have been working on using Agoric’s SES (Secure EcmaScript) to better isolate our dependencies, to reduce the risk of dependency-based thefts like the CoPay Dash event-stream hack, as suggested by Zooko Wilcox. SES was derived from Google’s own Caja project.
Currently Agoric’s SES relies on a polyfill of the Realms API that relies on the iFrame API, which is not available in ServiceWorkers at this time, which the manifest v3 currently requires all background scripts to be.
All we really want is the FrozenRealms API, since it’s the simplest way to truly isolate module code, but keeping iFrame support would at least let us continue using the SES Realms polyfill.
As the extension singleton script, our background script must handle the user keys, which manage their cryptocurrency accounts, often the most security sensitive bits of data on the user’s entire computer, so it should be understandable that we care very much about the security available to the background script in particular.
Thanks for your time,
- Dan Finlay
You received this message because you are subscribed to the Google Groups "Chromium Extensions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-extens...@chromium.org.
To post to this group, send email to chromium-...@chromium.org.
Visit this group at https://groups.google.com/a/chromium.org/group/chromium-extensions/.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-extensions/MN2PR17MB2814B9DA22D49A5B6A27565AAD640%40MN2PR17MB2814.namprd17.prod.outlook.com.
Google has listen before. They sometimes have to. With people like you generating a lot of noise, though, they may ignore this thread. You'll notice that at one point, a chrome developer (Devlin Cronin) was on this thread and participating.
And although it is true you are allowed to express your opinion, this is neither the time nor place.
If you can constructively pose arguments against the change, please express them. Otherwise, find another place to be outraged
From: Darren Govoni <darre...@gmail.com>
Sent: Monday, February 11, 2019 11:28:27 AM
To: INL Owner
Cc: Chromium-extensions; lotn2...@gmail.com; rdevlin...@chromium.org
Subject: Re: [crx] Re: Manifest V3: Web Request Changes
People have a right to say whatever they want and feel and express their concerns here. We don't silence peoples voices and we sure as heck don't need to appease Googles feelings on the matter. They will make their decisions based solely on the merit of their own interests.
On Mon, Feb 11, 2019, 11:17 AM INL Owner <owne...@gmail.com> wrote:
KEEP IT CLEAN!!!!!!
And don't threaten Google. You really think they're afraid of you?
Seriously. If we want our concerns taken seriously, they must be presented in a clear, organized fashion, without a bunch of outraged people making extra noise
If you don't have something thoughtful and insightful, don't write here
From: chromium-...@chromium.org <chromium-...@chromium.org> on behalf of lotn2...@gmail.com <lotn2...@gmail.com>
Sent: Monday, February 11, 2019 11:13:51 AM
To: Chromium Extensions
Subject: [crx] Re: Manifest V3: Web Request Changes
--the below is a pure crock of shit. the only real real for this is to dig deeper into what we do and to shove ads down our throats. google keep this up and you won't exist."This document describes a large set of planned changes to the Chrome Extensions platform, ranging from core features to specific APIs, with the motivation of increasing security, privacy, and performance for extensions. These changes will be bundled with a new manifest version. Once announced and implemented, it will eventually be required for all extensions over a year+ rollout process."
You received this message because you are subscribed to a topic in the Google Groups "Chromium Extensions" group.
To unsubscribe from this topic, visit https://groups.google.com/a/chromium.org/d/topic/chromium-extensions/veJy9uAwS00/unsubscribe.
To unsubscribe from this group and all its topics, send an email to chromium-extensions+unsub...@chromium.org.
To post to this group, send email to chromium-...@chromium.org.
Visit this group at https://groups.google.com/a/chromium.org/group/chromium-extensions/.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-extensions/5039cfed-2677-45c9-a394-db38b92ced01%40chromium.org.
For more options, visit https://groups.google.com/a/chromium.org/d/optout.
--
You received this message because you are subscribed to the Google Groups "Chromium Extensions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-extensions+unsub...@chromium.org.
In Restricting Origin Access, As part of v3 changes activeTab-style host permissions will be the default instead of *://*/*. Can we still use the regex pattern like *://*/* to access the all type of urls?
Is there any doc for Web-Accessible Resource Hardening changes? That may describe how can we test the unique id instead of url.
What are the increased privacy as mentioned here :: “Users should have increased control over their extensions. A user should be able to determine what information is available to an extension, and be able to control that privilege.”
We are currently evaluating all the feedback that has been offered, much of which has been centered on the declarativeNetRequest API. There are a number of additions and changes we plan on making to the declarativeNetRequest API as a result of the concerns raised. These include:
Dynamic Rule Support: We agree that this is valuable in creating sophisticated content blocking extensions, and will be adding support for declarative rules that can be added or removed at runtime to the declarativeNetRequest API.
Increased Ruleset Size: We will raise the rule limit from the draft 30K value. However, an upper limit is still necessary to ensure performance for users. Block lists have tended to be “push-only”, where new rules are added but obsolete rules are rarely, if ever, removed (external research has shown that 90% of EasyList blocking rules provided no benefit in common blocking scenarios). Having this list continue to grow unbounded is problematic.
Additional Actions and Conditions: We plan to add support for matching based on more conditions, such as resource size, and will provide actions to modify parts of a request instead of just blocking it, such as stripping cookies. We are also investigating other conditions and actions that may make sense to add, such as matching based on top-level domain. (One additional note: While we are investigating adding support for CSP modifications, adding a CSP header to disable JavaScript was frequently mentioned as a use-case; this is already possible through the contentSettings API. If this is insufficient, please let us know why.)
We are currently evaluating all the feedback that has been offered, much of which has been centered on the declarativeNetRequest API. There are a number of additions and changes we plan on making to the declarativeNetRequest API as a result of the concerns raised. These include:
Nice list, but it's simply unfeasible for Chromium to reimplement every single current and future use case in their "one-size-fits-all" declarative API.
--
You received this message because you are subscribed to the Google Groups "Chromium Extensions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-extens...@chromium.org.
To post to this group, send email to chromium-...@chromium.org.
Visit this group at https://groups.google.com/a/chromium.org/group/chromium-extensions/.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-extensions/0b87eccf-cc32-4c59-aa97-2acb6f7168bc%40chromium.org.