New issue
Advanced search Search tips

Issue 696822 link

Starred by 17 users

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug


Sign in to add a comment

Extensions: Implement Declarative Net Request API

Project Member Reported by karandeepb@chromium.org, Feb 28 2017

Issue description

This issue tracks the development of the Declarative Net Request API. 
 
Showing comments 11 - 110 of 110 Older
Blockedon: 737847
Project Member

Comment 12 by bugdroid1@chromium.org, Jul 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1cf2ea4a89a3a75e691636d6b6a1a89f33bedd43

commit 1cf2ea4a89a3a75e691636d6b6a1a89f33bedd43
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Tue Jul 25 20:52:00 2017

DNR: Add schema for Declarative Net Request rules.

This CL adds schema specifying the format for rules for the Declarative Net
Request (DNR) API. This will be used in a subsequent CL to accept declarative
rules as part of the extension manifest.

Doc=http://go/declarative-net-request (Internal only)
BUG=696822

Change-Id: I1c8d3056465fdb07c2af26bc0145dec198ebbb97
Reviewed-on: https://chromium-review.googlesource.com/576199
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Pavel Kalinnikov <pkalinnikov@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489421}
[add] https://crrev.com/1cf2ea4a89a3a75e691636d6b6a1a89f33bedd43/extensions/common/api/declarative_net_request.idl
[modify] https://crrev.com/1cf2ea4a89a3a75e691636d6b6a1a89f33bedd43/extensions/common/api/schema.gni

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/56acb5ceeb9255703fe265e3238d728267d7a146

commit 56acb5ceeb9255703fe265e3238d728267d7a146
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Fri Jul 28 05:11:49 2017

DNR: Add manifest key and permission.

This CL adds the "declarative_net_request" manifest key for the
Declarative Net Request API. This key is used to specify a path for a JSON
ruleset containing declarative rules as specified by the schema introduced in
r489421. A manifest handler is introduced for the same which validates
the specified file path. "declarativeNetRequest" permission is also introduced 
and is mandatory to use the "declarative_net_request_rules" manifest key.

Doc=http://go/declarative-net-request (Internal only)
BUG=696822

Change-Id: I2a94d6cd0bb9cf0221ef2c718b902413385bcf3b
Reviewed-on: https://chromium-review.googlesource.com/576468
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490276}
[modify] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/chrome/common/extensions/permissions/permission_set_unittest.cc
[modify] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/BUILD.gn
[modify] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/api/_api_features.json
[modify] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/api/_manifest_features.json
[modify] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/api/_permission_features.json
[add] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/api/declarative_net_request/constants.h
[add] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/api/declarative_net_request/dnr_manifest_data.cc
[add] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/api/declarative_net_request/dnr_manifest_data.h
[add] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/api/declarative_net_request/dnr_manifest_handler.cc
[add] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/api/declarative_net_request/dnr_manifest_handler.h
[add] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/api/declarative_net_request/dnr_manifest_unittest.cc
[add] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/api/declarative_net_request/utils.cc
[add] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/api/declarative_net_request/utils.h
[modify] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/common_manifest_handlers.cc
[modify] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/manifest_constants.cc
[modify] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/manifest_constants.h
[modify] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/permissions/api_permission.h
[modify] https://crrev.com/56acb5ceeb9255703fe265e3238d728267d7a146/extensions/common/permissions/extensions_api_permissions.cc

Blockedon: 753031
Project Member

Comment 15 by bugdroid1@chromium.org, Aug 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9356edc40c0ed673b57a8f08f350e579353ff670

commit 9356edc40c0ed673b57a8f08f350e579353ff670
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Wed Aug 09 04:30:23 2017

DNR: Introduce IndexedRule to store parsed JSON rules.

r489421 added the schema for specifying JSON rules for the Declarative Net
Request API. This CL introduces IndexedRule to store the parsed JSON rules. In a
subsequent CL, this structure will aid in the conversion to a flatbuffer UrlRule
as specified by the url_pattern_index component.

Doc=http://go/declarative-net-request (Internal only)
BUG=696822

Change-Id: I87b55c0266eafddf521bccb3f7d11757f47c2d7b
Reviewed-on: https://chromium-review.googlesource.com/577287
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Pavel Kalinnikov <pkalinnikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492824}
[modify] https://crrev.com/9356edc40c0ed673b57a8f08f350e579353ff670/extensions/browser/BUILD.gn
[modify] https://crrev.com/9356edc40c0ed673b57a8f08f350e579353ff670/extensions/browser/api/BUILD.gn
[add] https://crrev.com/9356edc40c0ed673b57a8f08f350e579353ff670/extensions/browser/api/declarative_net_request/BUILD.gn
[add] https://crrev.com/9356edc40c0ed673b57a8f08f350e579353ff670/extensions/browser/api/declarative_net_request/DEPS
[add] https://crrev.com/9356edc40c0ed673b57a8f08f350e579353ff670/extensions/browser/api/declarative_net_request/constants.h
[add] https://crrev.com/9356edc40c0ed673b57a8f08f350e579353ff670/extensions/browser/api/declarative_net_request/indexed_rule.cc
[add] https://crrev.com/9356edc40c0ed673b57a8f08f350e579353ff670/extensions/browser/api/declarative_net_request/indexed_rule.h
[add] https://crrev.com/9356edc40c0ed673b57a8f08f350e579353ff670/extensions/browser/api/declarative_net_request/indexed_rule_unittest.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Aug 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ac26b6ce1236d9031e45d1db938af73b784485f0

commit ac26b6ce1236d9031e45d1db938af73b784485f0
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Thu Aug 10 05:29:15 2017

DNR: Sort domains as required by the url pattern index component.

This CL sorts domains in an IndexedRule as required by the url pattern index
component. To do this, expose url_pattern_index::CompareDomains. Also, clarify
the expectations for domains in the url pattern index flatbuffer schema.

TBR=pkalinnikov@chromium.org
Doc=http://go/declarative-net-request (Internal only)
BUG=696822

Change-Id: Ia6baf764e2fcfc9e47751df8971207c4a665ba41
Reviewed-on: https://chromium-review.googlesource.com/601438
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#493272}
[modify] https://crrev.com/ac26b6ce1236d9031e45d1db938af73b784485f0/components/url_pattern_index/flat/url_pattern_index.fbs
[modify] https://crrev.com/ac26b6ce1236d9031e45d1db938af73b784485f0/components/url_pattern_index/url_pattern_index.cc
[modify] https://crrev.com/ac26b6ce1236d9031e45d1db938af73b784485f0/components/url_pattern_index/url_pattern_index.h
[modify] https://crrev.com/ac26b6ce1236d9031e45d1db938af73b784485f0/extensions/browser/api/declarative_net_request/indexed_rule.cc
[modify] https://crrev.com/ac26b6ce1236d9031e45d1db938af73b784485f0/extensions/browser/api/declarative_net_request/indexed_rule.h
[modify] https://crrev.com/ac26b6ce1236d9031e45d1db938af73b784485f0/extensions/browser/api/declarative_net_request/indexed_rule_unittest.cc

Blockedon: 754526
Project Member

Comment 19 by bugdroid1@chromium.org, Aug 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a171e446146fe202edc878873db6da1b90c3717e

commit a171e446146fe202edc878873db6da1b90c3717e
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Mon Aug 14 22:08:54 2017

DNR: Introduce flatbuffer schema for declarative rules.

This CL introduces the flatbuffer schema to store rules for the Declarative Net
Request API. The UrlRule flatbuffer schema in the url_pattern_index component is
also modified to include "id" and "priority" fields which will be useful for
extension rules.

TBR=pkalinnikov@chromium.org
Doc=http://go/declarative-net-request (Internal only)
BUG=696822

Change-Id: I7ff8fbf99212488a2a9e7a12225b9bcd18bc47c3
Reviewed-on: https://chromium-review.googlesource.com/595223
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494200}
[modify] https://crrev.com/a171e446146fe202edc878873db6da1b90c3717e/components/url_pattern_index/flat/url_pattern_index.fbs
[modify] https://crrev.com/a171e446146fe202edc878873db6da1b90c3717e/extensions/browser/api/declarative_net_request/BUILD.gn
[add] https://crrev.com/a171e446146fe202edc878873db6da1b90c3717e/extensions/browser/api/declarative_net_request/flat/BUILD.gn
[add] https://crrev.com/a171e446146fe202edc878873db6da1b90c3717e/extensions/browser/api/declarative_net_request/flat/extension_ruleset.fbs

Blockedon: -713774
 Issue 713774  is no longer a blocker.
Project Member

Comment 21 by bugdroid1@chromium.org, Aug 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9400e3ac194de77f5afc95c06292b621fd299ed0

commit 9400e3ac194de77f5afc95c06292b621fd299ed0
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Tue Aug 15 01:09:52 2017

DNR: Introduce FlatRulesetIndexer to index rules to flatbuffer format.

https://chromium-review.googlesource.com/c/595223 introduced the flatbuffer
schema to store rules for the Declarative Net Request API. This CL introduces
FlatRulesetIndexer which takes in IndexedRule(s) and converts them to flatbuffer
format. In a subsequent CL, this will be used to persist rules provided by
extensions as part of its manifest.

TBR=pkalinnikov@chromium.org
Doc=http://go/declarative-net-request (Internal only)
BUG=696822

Change-Id: I9496c381e45681ee18ee21f74a60fa6b8ed4db32
Reviewed-on: https://chromium-review.googlesource.com/595034
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494283}
[modify] https://crrev.com/9400e3ac194de77f5afc95c06292b621fd299ed0/extensions/browser/BUILD.gn
[modify] https://crrev.com/9400e3ac194de77f5afc95c06292b621fd299ed0/extensions/browser/api/declarative_net_request/BUILD.gn
[modify] https://crrev.com/9400e3ac194de77f5afc95c06292b621fd299ed0/extensions/browser/api/declarative_net_request/DEPS
[add] https://crrev.com/9400e3ac194de77f5afc95c06292b621fd299ed0/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.cc
[add] https://crrev.com/9400e3ac194de77f5afc95c06292b621fd299ed0/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h
[add] https://crrev.com/9400e3ac194de77f5afc95c06292b621fd299ed0/extensions/browser/api/declarative_net_request/flat_ruleset_indexer_unittest.cc
[modify] https://crrev.com/9400e3ac194de77f5afc95c06292b621fd299ed0/extensions/browser/api/declarative_net_request/indexed_rule.cc
[modify] https://crrev.com/9400e3ac194de77f5afc95c06292b621fd299ed0/extensions/browser/api/declarative_net_request/indexed_rule.h
[modify] https://crrev.com/9400e3ac194de77f5afc95c06292b621fd299ed0/extensions/common/api/declarative_net_request.idl

Blockedon: 755707
Blockedon: 755717
Project Member

Comment 24 by bugdroid1@chromium.org, Aug 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f01862f0e777dbcf9b224067dee1b5ab9b7193f

commit 2f01862f0e777dbcf9b224067dee1b5ab9b7193f
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Wed Aug 16 00:34:53 2017

DNR: Rename some keys used in JSON rules.

This CL renames the
  - "block" rule action type to "blacklist".
  - "IsUrlFilterCaseSensitive" (Typo) to "isUrlFilterCaseSensitive".

BUG=696822

Change-Id: I3709be2eb51cb6a9fb93c4d1193c6d43bd3ae5c1
Reviewed-on: https://chromium-review.googlesource.com/615751
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494633}
[modify] https://crrev.com/2f01862f0e777dbcf9b224067dee1b5ab9b7193f/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.cc
[modify] https://crrev.com/2f01862f0e777dbcf9b224067dee1b5ab9b7193f/extensions/browser/api/declarative_net_request/indexed_rule_unittest.cc
[modify] https://crrev.com/2f01862f0e777dbcf9b224067dee1b5ab9b7193f/extensions/common/api/declarative_net_request.idl

Blockedon: 760850
Project Member

Comment 26 by bugdroid1@chromium.org, Sep 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f2a23af77b4c198c4110d5828300db54794fdec9

commit f2a23af77b4c198c4110d5828300db54794fdec9
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Wed Sep 06 02:37:29 2017

DNR: Implement indexing and persisting of manifest declarative rules.

This CL implements support for indexing and persisting of manifest declarative
rules. It uses IndexedRule and FlatRulesetIndexer classes to persist the
declarative rules in flatbuffer format.

In a subsequent CL, support will be added to index and persist the rules during 
each load of unpacked extensions and during install time for packed extensions.

Doc=http://go/declarative-net-request (Internal only)
BUG=696822

Change-Id: I7b9034137017cf9e7fdc007e9647c5c8ae434f24
Reviewed-on: https://chromium-review.googlesource.com/625481
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499857}
[modify] https://crrev.com/f2a23af77b4c198c4110d5828300db54794fdec9/extensions/browser/api/declarative_net_request/BUILD.gn
[add] https://crrev.com/f2a23af77b4c198c4110d5828300db54794fdec9/extensions/browser/api/declarative_net_request/constants.cc
[modify] https://crrev.com/f2a23af77b4c198c4110d5828300db54794fdec9/extensions/browser/api/declarative_net_request/constants.h
[add] https://crrev.com/f2a23af77b4c198c4110d5828300db54794fdec9/extensions/browser/api/declarative_net_request/parse_info.cc
[add] https://crrev.com/f2a23af77b4c198c4110d5828300db54794fdec9/extensions/browser/api/declarative_net_request/parse_info.h
[add] https://crrev.com/f2a23af77b4c198c4110d5828300db54794fdec9/extensions/browser/api/declarative_net_request/utils.cc
[add] https://crrev.com/f2a23af77b4c198c4110d5828300db54794fdec9/extensions/browser/api/declarative_net_request/utils.h
[modify] https://crrev.com/f2a23af77b4c198c4110d5828300db54794fdec9/extensions/common/api/declarative_net_request/dnr_manifest_data.h
[modify] https://crrev.com/f2a23af77b4c198c4110d5828300db54794fdec9/tools/metrics/histograms/histograms.xml

Project Member

Comment 27 by bugdroid1@chromium.org, Sep 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/46178663e6ce7174c7e22957fb3a8a167bcdab63

commit 46178663e6ce7174c7e22957fb3a8a167bcdab63
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Mon Sep 11 21:50:45 2017

Extensions: Delete generated _metadata folder before unpacked extension load.

This CL changes how _metadata folder is handled during load for unpacked
extensions. This is done to prevent spurious warnings on extension reload due to
the presence of a generated _metadata folder and to ensure that we are somehow
not tricked into using a flatbuffer file provided by an extension for the
Declarative Net Request API. Currently, presence of the _metadata folder causes
a warning while loading extensions (r492079). This change will remove _metadata
folder on unpacked extension load when it only contains known Extension system
files that are safe to remove.

Loading unpacked extensions with non-reserved filenames in the _metadata folder
should now yield an error. Loading unpacked extensions with only reserved
filenames (eg computed_hashes.json) should work, with the _metadata folder
getting deleted on extension load. Loading a packed extension with a _metadata
folder should still yield a warning.

BUG= 402278 , 696822,  760850 

Change-Id: Ie7daf6450757702353d1d4fc8b96181eba2f669d
Reviewed-on: https://chromium-review.googlesource.com/656567
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501052}
[modify] https://crrev.com/46178663e6ce7174c7e22957fb3a8a167bcdab63/chrome/browser/extensions/extension_service_unittest.cc
[modify] https://crrev.com/46178663e6ce7174c7e22957fb3a8a167bcdab63/chrome/browser/extensions/unpacked_installer.cc
[modify] https://crrev.com/46178663e6ce7174c7e22957fb3a8a167bcdab63/chrome/browser/extensions/unpacked_installer.h
[delete] https://crrev.com/0e2fc3a0b945320fb73188181858661f545af9f3/chrome/test/data/extensions/underscore_metadata_folders/_badfolder/empty_doc
[delete] https://crrev.com/0e2fc3a0b945320fb73188181858661f545af9f3/chrome/test/data/extensions/underscore_metadata_folders/_metadata/empty_doc
[delete] https://crrev.com/0e2fc3a0b945320fb73188181858661f545af9f3/chrome/test/data/extensions/underscore_metadata_folders/manifest.json
[delete] https://crrev.com/0e2fc3a0b945320fb73188181858661f545af9f3/chrome/test/data/extensions/underscore_name/_badfolder/empty_doc
[delete] https://crrev.com/0e2fc3a0b945320fb73188181858661f545af9f3/chrome/test/data/extensions/underscore_name/manifest.json
[modify] https://crrev.com/46178663e6ce7174c7e22957fb3a8a167bcdab63/extensions/browser/api/declarative_net_request/utils.cc
[modify] https://crrev.com/46178663e6ce7174c7e22957fb3a8a167bcdab63/extensions/browser/api/declarative_net_request/utils.h
[modify] https://crrev.com/46178663e6ce7174c7e22957fb3a8a167bcdab63/extensions/common/constants.cc
[modify] https://crrev.com/46178663e6ce7174c7e22957fb3a8a167bcdab63/extensions/common/constants.h
[modify] https://crrev.com/46178663e6ce7174c7e22957fb3a8a167bcdab63/extensions/common/file_util.cc
[modify] https://crrev.com/46178663e6ce7174c7e22957fb3a8a167bcdab63/extensions/common/file_util.h
[modify] https://crrev.com/46178663e6ce7174c7e22957fb3a8a167bcdab63/extensions/common/file_util_unittest.cc

Project Member

Comment 28 by bugdroid1@chromium.org, Sep 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c7bfae1576cfa987693a7e8ae20a94d8cde68810

commit c7bfae1576cfa987693a7e8ae20a94d8cde68810
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Tue Sep 12 00:33:14 2017

DNR: Index and persist manifest declarative rules for unpacked extensions.

This CL builds on r499857 and adds supports for indexing
and persisting the manifest declarative rules on each load of unpacked
extensions. 

Doc=http://go/declarative-net-request (Internal only)
BUG=696822

Change-Id: I58afc054915b1cbbb97420edca5149a343a40fce
Reviewed-on: https://chromium-review.googlesource.com/625482
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501120}
[add] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/chrome/browser/extensions/api/declarative_net_request/rule_indexing_unittest.cc
[modify] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/chrome/browser/extensions/unpacked_installer.cc
[modify] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/chrome/browser/extensions/unpacked_installer.h
[modify] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/chrome/test/BUILD.gn
[modify] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/extensions/browser/BUILD.gn
[modify] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/extensions/browser/api/declarative_net_request/constants.cc
[modify] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/extensions/browser/api/declarative_net_request/constants.h
[modify] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/extensions/common/BUILD.gn
[add] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/extensions/common/api/declarative_net_request/constants.cc
[modify] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/extensions/common/api/declarative_net_request/constants.h
[modify] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/extensions/common/api/declarative_net_request/dnr_manifest_unittest.cc
[add] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/extensions/common/api/declarative_net_request/test_utils.cc
[add] https://crrev.com/c7bfae1576cfa987693a7e8ae20a94d8cde68810/extensions/common/api/declarative_net_request/test_utils.h

Project Member

Comment 29 by bugdroid1@chromium.org, Sep 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2962e4770af44d0b43a35a4f080c70866f6bc882

commit 2962e4770af44d0b43a35a4f080c70866f6bc882
Author: Mitsuru Oshima <oshima@chromium.org>
Date: Thu Sep 14 17:37:11 2017

Revert "DNR: Index and persist manifest declarative rules for unpacked extensions."

This reverts commit c7bfae1576cfa987693a7e8ae20a94d8cde68810.

Reason for revert: The dependent CL (https://chromium-review.googlesource.com/c/chromium/src/+/656567) broke ChromeOS PFQ bots.

Original change's description:
> DNR: Index and persist manifest declarative rules for unpacked extensions.
> 
> This CL builds on r499857 and adds supports for indexing
> and persisting the manifest declarative rules on each load of unpacked
> extensions. 
> 
> Doc=http://go/declarative-net-request (Internal only)
> BUG=696822
> 
> Change-Id: I58afc054915b1cbbb97420edca5149a343a40fce
> Reviewed-on: https://chromium-review.googlesource.com/625482
> Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
> Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#501120}

TBR=lazyboy@chromium.org,rdevlin.cronin@chromium.org,karandeepb@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 696822
Change-Id: I25b9c4884610a1da160968b4dbece7222d400cd5
Reviewed-on: https://chromium-review.googlesource.com/667124
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Commit-Queue: Mitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501983}
[delete] https://crrev.com/e00baa4f51ec239ce3c02b9385c8dc40974302af/chrome/browser/extensions/api/declarative_net_request/rule_indexing_unittest.cc
[modify] https://crrev.com/2962e4770af44d0b43a35a4f080c70866f6bc882/chrome/browser/extensions/unpacked_installer.cc
[modify] https://crrev.com/2962e4770af44d0b43a35a4f080c70866f6bc882/chrome/browser/extensions/unpacked_installer.h
[modify] https://crrev.com/2962e4770af44d0b43a35a4f080c70866f6bc882/chrome/test/BUILD.gn
[modify] https://crrev.com/2962e4770af44d0b43a35a4f080c70866f6bc882/extensions/browser/BUILD.gn
[modify] https://crrev.com/2962e4770af44d0b43a35a4f080c70866f6bc882/extensions/browser/api/declarative_net_request/constants.cc
[modify] https://crrev.com/2962e4770af44d0b43a35a4f080c70866f6bc882/extensions/browser/api/declarative_net_request/constants.h
[modify] https://crrev.com/2962e4770af44d0b43a35a4f080c70866f6bc882/extensions/common/BUILD.gn
[delete] https://crrev.com/e00baa4f51ec239ce3c02b9385c8dc40974302af/extensions/common/api/declarative_net_request/constants.cc
[modify] https://crrev.com/2962e4770af44d0b43a35a4f080c70866f6bc882/extensions/common/api/declarative_net_request/constants.h
[modify] https://crrev.com/2962e4770af44d0b43a35a4f080c70866f6bc882/extensions/common/api/declarative_net_request/dnr_manifest_unittest.cc
[delete] https://crrev.com/e00baa4f51ec239ce3c02b9385c8dc40974302af/extensions/common/api/declarative_net_request/test_utils.cc
[delete] https://crrev.com/e00baa4f51ec239ce3c02b9385c8dc40974302af/extensions/common/api/declarative_net_request/test_utils.h

Project Member

Comment 30 by bugdroid1@chromium.org, Sep 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/63c02145ef64b5cb2de3b2629e9cfd213ec33927

commit 63c02145ef64b5cb2de3b2629e9cfd213ec33927
Author: Alexander Alekseev <alemate@chromium.org>
Date: Thu Sep 14 19:19:19 2017

Revert "Extensions: Delete generated _metadata folder before unpacked extension load."

This reverts commit 46178663e6ce7174c7e22957fb3a8a167bcdab63.

Reason for revert: This breaks Chrome OS PFQ.

See https://crbug.com/764787 for details.

Original change's description:
> Extensions: Delete generated _metadata folder before unpacked extension load.
> 
> This CL changes how _metadata folder is handled during load for unpacked
> extensions. This is done to prevent spurious warnings on extension reload due to
> the presence of a generated _metadata folder and to ensure that we are somehow
> not tricked into using a flatbuffer file provided by an extension for the
> Declarative Net Request API. Currently, presence of the _metadata folder causes
> a warning while loading extensions (r492079). This change will remove _metadata
> folder on unpacked extension load when it only contains known Extension system
> files that are safe to remove.
> 
> Loading unpacked extensions with non-reserved filenames in the _metadata folder
> should now yield an error. Loading unpacked extensions with only reserved
> filenames (eg computed_hashes.json) should work, with the _metadata folder
> getting deleted on extension load. Loading a packed extension with a _metadata
> folder should still yield a warning.
> 
> BUG= 402278 , 696822,  760850 
> 
> Change-Id: Ie7daf6450757702353d1d4fc8b96181eba2f669d
> Reviewed-on: https://chromium-review.googlesource.com/656567
> Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
> Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#501052}

TBR=lazyboy@chromium.org,karandeepb@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 764787,  402278 , 696822,  760850 
Change-Id: Ie489f38d1c08668957e393f31ccabcd6339f49c5
Reviewed-on: https://chromium-review.googlesource.com/666737
Commit-Queue: Mitsuru Oshima <oshima@chromium.org>
Reviewed-by: Alexander Alekseev <alemate@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502012}
[modify] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/chrome/browser/extensions/extension_service_unittest.cc
[modify] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/chrome/browser/extensions/unpacked_installer.cc
[modify] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/chrome/browser/extensions/unpacked_installer.h
[add] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/chrome/test/data/extensions/underscore_metadata_folders/_badfolder/empty_doc
[add] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/chrome/test/data/extensions/underscore_metadata_folders/_metadata/empty_doc
[add] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/chrome/test/data/extensions/underscore_metadata_folders/manifest.json
[add] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/chrome/test/data/extensions/underscore_name/_badfolder/empty_doc
[add] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/chrome/test/data/extensions/underscore_name/manifest.json
[modify] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/extensions/browser/api/declarative_net_request/utils.cc
[modify] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/extensions/browser/api/declarative_net_request/utils.h
[modify] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/extensions/common/constants.cc
[modify] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/extensions/common/constants.h
[modify] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/extensions/common/file_util.cc
[modify] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/extensions/common/file_util.h
[modify] https://crrev.com/63c02145ef64b5cb2de3b2629e9cfd213ec33927/extensions/common/file_util_unittest.cc

Project Member

Comment 31 by bugdroid1@chromium.org, Sep 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fe12281a3f698668a660ef62ee00ae22eca25221

commit fe12281a3f698668a660ef62ee00ae22eca25221
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Sat Sep 16 02:38:18 2017

Reland: Extensions: Delete generated _metadata folder before unpacked extension load.

r501052 started giving a hard error while loading extensions from the command
line, if they contained an illegal file name. This broke Chrome OS autotests and
the CL had to be reverted.

This CL relands it. Command line extensions with illegal file names now no
longer yield a hard error, as was the case before r501052.

Original Description:
> This CL changes how _metadata folder is handled during load for unpacked
> extensions. This is done to prevent spurious warnings on extension reload due to
> the presence of a generated _metadata folder and to ensure that we are somehow
> not tricked into using a flatbuffer file provided by an extension for the
> Declarative Net Request API. Currently, presence of the _metadata folder causes
> a warning while loading extensions (r492079). This change will remove _metadata
> folder on unpacked extension load when it only contains known Extension system
> files that are safe to remove.
> 
> Loading unpacked extensions with non-reserved filenames in the _metadata folder
> should now yield an error. Loading unpacked extensions with only reserved
> filenames (eg computed_hashes.json) should work, with the _metadata folder
> getting deleted on extension load. Loading a packed extension with a _metadata
> folder should still yield a warning.

BUG= 402278 , 696822,  760850 

Change-Id: I413783d4f2c325c0fc834ba27bb1e16c3ce4ff21
Reviewed-on: https://chromium-review.googlesource.com/668163
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502478}
[modify] https://crrev.com/fe12281a3f698668a660ef62ee00ae22eca25221/chrome/browser/extensions/extension_service_unittest.cc
[modify] https://crrev.com/fe12281a3f698668a660ef62ee00ae22eca25221/chrome/browser/extensions/unpacked_installer.cc
[modify] https://crrev.com/fe12281a3f698668a660ef62ee00ae22eca25221/chrome/browser/extensions/unpacked_installer.h
[delete] https://crrev.com/b1e1e775c874eb2a05e8695ecd8e6cc1c36ce5b8/chrome/test/data/extensions/underscore_metadata_folders/_badfolder/empty_doc
[delete] https://crrev.com/b1e1e775c874eb2a05e8695ecd8e6cc1c36ce5b8/chrome/test/data/extensions/underscore_metadata_folders/_metadata/empty_doc
[delete] https://crrev.com/b1e1e775c874eb2a05e8695ecd8e6cc1c36ce5b8/chrome/test/data/extensions/underscore_metadata_folders/manifest.json
[delete] https://crrev.com/b1e1e775c874eb2a05e8695ecd8e6cc1c36ce5b8/chrome/test/data/extensions/underscore_name/_badfolder/empty_doc
[delete] https://crrev.com/b1e1e775c874eb2a05e8695ecd8e6cc1c36ce5b8/chrome/test/data/extensions/underscore_name/manifest.json
[modify] https://crrev.com/fe12281a3f698668a660ef62ee00ae22eca25221/extensions/browser/api/declarative_net_request/utils.cc
[modify] https://crrev.com/fe12281a3f698668a660ef62ee00ae22eca25221/extensions/browser/api/declarative_net_request/utils.h
[modify] https://crrev.com/fe12281a3f698668a660ef62ee00ae22eca25221/extensions/common/constants.cc
[modify] https://crrev.com/fe12281a3f698668a660ef62ee00ae22eca25221/extensions/common/constants.h
[modify] https://crrev.com/fe12281a3f698668a660ef62ee00ae22eca25221/extensions/common/file_util.cc
[modify] https://crrev.com/fe12281a3f698668a660ef62ee00ae22eca25221/extensions/common/file_util.h
[modify] https://crrev.com/fe12281a3f698668a660ef62ee00ae22eca25221/extensions/common/file_util_unittest.cc

Project Member

Comment 32 by bugdroid1@chromium.org, Sep 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/328e31aa4c19663b9e11cd07970e766c844881c1

commit 328e31aa4c19663b9e11cd07970e766c844881c1
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Mon Sep 18 21:46:16 2017

Reland: DNR: Index and persist manifest declarative rules for unpacked extensions.

r501120 had to be reverted, since r501052 on which it depended, was reverted.
This relands r501120 now that r501052 was relanded.

Original description:
>> DNR: Index and persist manifest declarative rules for unpacked extensions.
>>
>> This CL builds on r499857 and adds supports for indexing
>> and persisting the manifest declarative rules on each load of unpacked
>> extensions.
>>
>> Doc=http://go/declarative-net-request (Internal only)
>> BUG=696822
>>
>> Change-Id: I58afc054915b1cbbb97420edca5149a343a40fce
>> Reviewed-on: https://chromium-review.googlesource.com/625482
>> Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
>> Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
>> Cr-Commit-Position: refs/heads/master@{#501120}

Change-Id: I8bdae67bb27f8cb9a0f3bf7862463db25deb09d0
Reviewed-on: https://chromium-review.googlesource.com/668166
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502683}
[add] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/chrome/browser/extensions/api/declarative_net_request/rule_indexing_unittest.cc
[modify] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/chrome/browser/extensions/unpacked_installer.cc
[modify] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/chrome/browser/extensions/unpacked_installer.h
[modify] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/chrome/test/BUILD.gn
[modify] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/extensions/browser/BUILD.gn
[modify] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/extensions/browser/api/declarative_net_request/constants.cc
[modify] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/extensions/browser/api/declarative_net_request/constants.h
[modify] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/extensions/common/BUILD.gn
[add] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/extensions/common/api/declarative_net_request/constants.cc
[modify] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/extensions/common/api/declarative_net_request/constants.h
[modify] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/extensions/common/api/declarative_net_request/dnr_manifest_unittest.cc
[add] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/extensions/common/api/declarative_net_request/test_utils.cc
[add] https://crrev.com/328e31aa4c19663b9e11cd07970e766c844881c1/extensions/common/api/declarative_net_request/test_utils.h

Blockedon: 767605
Blockedon: 767977
Project Member

Comment 35 by bugdroid1@chromium.org, Oct 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/71f6a6228bd43127777a9ae2635cbbe8fb2d703b

commit 71f6a6228bd43127777a9ae2635cbbe8fb2d703b
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Mon Oct 02 19:39:10 2017

DNR: Index and persist manifest declarative rules for packed extensions.

This CL builds on r499857 and adds supports for indexing and persisting the
manifest declarative rules for packed extension installation.

The Unpacker class used in the utility process is modified to also return the
parsed version of the manifest JSON rules. These are then indexed and persisted
in the browser process.

If the packed extension already contains a file/directory at the reserved
indexed ruleset path, it is deleted during installation to ensure that we only
use one which is generated by the Extension system. The indexed ruleset file is
also ignored during content verification, since it is modified during
installation.

Doc=http://go/declarative-net-request (Internal only)
BUG=696822

Change-Id: I4bb7cbd5420d14b93705c0d017f5edbfc3311050
Reviewed-on: https://chromium-review.googlesource.com/625483
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505726}
[add] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/chrome/browser/extensions/api/declarative_net_request/DEPS
[add] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/chrome/browser/extensions/api/declarative_net_request/rule_indexing_unittest.cc
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/chrome/browser/extensions/unpacked_installer.cc
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/chrome/test/BUILD.gn
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/BUILD.gn
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/browser/BUILD.gn
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/browser/api/declarative_net_request/BUILD.gn
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/browser/api/declarative_net_request/constants.cc
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/browser/api/declarative_net_request/constants.h
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/browser/api/declarative_net_request/parse_info.cc
[add] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/browser/api/declarative_net_request/test_utils.cc
[add] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/browser/api/declarative_net_request/test_utils.h
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/browser/api/declarative_net_request/utils.cc
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/browser/api/declarative_net_request/utils.h
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/browser/content_verifier.cc
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/browser/sandboxed_unpacker.cc
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/browser/sandboxed_unpacker.h
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/common/api/declarative_net_request/test_utils.cc
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/common/api/declarative_net_request/test_utils.h
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/common/extension_unpacker.mojom
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/common/manifest_constants.cc
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/common/manifest_constants.h
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/utility/unpacker.cc
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/utility/unpacker.h
[modify] https://crrev.com/71f6a6228bd43127777a9ae2635cbbe8fb2d703b/extensions/utility/utility_handler.cc

Blockedon: 772260
Project Member

Comment 37 by bugdroid1@chromium.org, Oct 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/63b0d516e3510a375cda56fd29cce73d23c7d4ae

commit 63b0d516e3510a375cda56fd29cce73d23c7d4ae
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Mon Oct 09 22:20:26 2017

DNR: Save indexed ruleset checksum as part of Extension preferences.

This CL adds a new extension preference "dnr_ruleset_checksum" to save the
checksum of the indexed ruleset for the Declarative Net Request API. This
preference is saved during extension installation for packed and loading for
unpacked extensions. The checksum is useful to determine whether an indexed
ruleset exists for an extension and to verify the integrity of the ruleset on
disk.

Doc=http://go/declarative-net-request (Internal only)
BUG=696822

Change-Id: I092cc9c113a7ba61562314462f8fcd74bd8a8b11
Reviewed-on: https://chromium-review.googlesource.com/673829
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507510}
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/chromeos/app_mode/kiosk_app_data.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/chromeos/app_mode/kiosk_external_update_validator.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/chromeos/app_mode/kiosk_external_update_validator.h
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/extensions/api/declarative_net_request/rule_indexing_unittest.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/extensions/crx_installer.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/extensions/crx_installer.h
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/extensions/extension_service.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/extensions/extension_service.h
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/extensions/startup_helper.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/extensions/unpacked_installer.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/extensions/unpacked_installer.h
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/chrome/browser/metrics/extensions_metrics_provider_unittest.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/extensions/browser/api/declarative_net_request/test_utils.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/extensions/browser/api/declarative_net_request/test_utils.h
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/extensions/browser/api/declarative_net_request/utils.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/extensions/browser/api/declarative_net_request/utils.h
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/extensions/browser/extension_prefs.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/extensions/browser/extension_prefs.h
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/extensions/browser/sandboxed_unpacker.cc
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/extensions/browser/sandboxed_unpacker.h
[modify] https://crrev.com/63b0d516e3510a375cda56fd29cce73d23c7d4ae/extensions/browser/sandboxed_unpacker_unittest.cc

Project Member

Comment 38 by bugdroid1@chromium.org, Oct 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6f31554ad3bc57047b4576d519dc41efae5a7420

commit 6f31554ad3bc57047b4576d519dc41efae5a7420
Author: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Date: Tue Oct 10 15:09:01 2017

Revert "DNR: Save indexed ruleset checksum as part of Extension preferences."

This reverts commit 63b0d516e3510a375cda56fd29cce73d23c7d4ae.

Reason for revert: Speculative revert for the MSan failures on Linux for including a lot of Extension tests.

See first failure here:
https://uberchromegw.corp.google.com/i/chromium.memory/builders/Linux%20MSan%20Tests/builds/4885


Original change's description:
> DNR: Save indexed ruleset checksum as part of Extension preferences.
> 
> This CL adds a new extension preference "dnr_ruleset_checksum" to save the
> checksum of the indexed ruleset for the Declarative Net Request API. This
> preference is saved during extension installation for packed and loading for
> unpacked extensions. The checksum is useful to determine whether an indexed
> ruleset exists for an extension and to verify the integrity of the ruleset on
> disk.
> 
> Doc=http://go/declarative-net-request (Internal only)
> BUG=696822
> 
> Change-Id: I092cc9c113a7ba61562314462f8fcd74bd8a8b11
> Reviewed-on: https://chromium-review.googlesource.com/673829
> Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#507510}

TBR=sky@chromium.org,lazyboy@chromium.org,karandeepb@chromium.org

Change-Id: Ia33c9729f8ba6c27336d0aae7a5d39d94c448a4a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 696822
Reviewed-on: https://chromium-review.googlesource.com/709494
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Commit-Queue: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507666}
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/chromeos/app_mode/kiosk_app_data.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/chromeos/app_mode/kiosk_external_update_validator.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/chromeos/app_mode/kiosk_external_update_validator.h
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/extensions/api/declarative_net_request/rule_indexing_unittest.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/extensions/crx_installer.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/extensions/crx_installer.h
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/extensions/extension_service.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/extensions/extension_service.h
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/extensions/startup_helper.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/extensions/unpacked_installer.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/extensions/unpacked_installer.h
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/chrome/browser/metrics/extensions_metrics_provider_unittest.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/extensions/browser/api/declarative_net_request/test_utils.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/extensions/browser/api/declarative_net_request/test_utils.h
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/extensions/browser/api/declarative_net_request/utils.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/extensions/browser/api/declarative_net_request/utils.h
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/extensions/browser/extension_prefs.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/extensions/browser/extension_prefs.h
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/extensions/browser/sandboxed_unpacker.cc
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/extensions/browser/sandboxed_unpacker.h
[modify] https://crrev.com/6f31554ad3bc57047b4576d519dc41efae5a7420/extensions/browser/sandboxed_unpacker_unittest.cc

Project Member

Comment 39 by bugdroid1@chromium.org, Oct 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a89306503f799d29220285e415114beb752b65ae

commit a89306503f799d29220285e415114beb752b65ae
Author: Karandeep Bhatia <karandeepb@chromium.org>
Date: Wed Oct 11 17:41:12 2017

Reland "DNR: Save indexed ruleset checksum as part of Extension preferences."

This is a reland of 63b0d516e3510a375cda56fd29cce73d23c7d4ae. It fixes the 
use of uninitialized memory which was detected by the MSan bots.

Original change's description:
> DNR: Save indexed ruleset checksum as part of Extension preferences.
> 
> This CL adds a new extension preference "dnr_ruleset_checksum" to save the
> checksum of the indexed ruleset for the Declarative Net Request API. This
> preference is saved during extension installation for packed and loading for
> unpacked extensions. The checksum is useful to determine whether an indexed
> ruleset exists for an extension and to verify the integrity of the ruleset on
> disk.
> 
> Doc=http://go/declarative-net-request (Internal only)
> BUG=696822
> 
> Change-Id: I092cc9c113a7ba61562314462f8fcd74bd8a8b11
> Reviewed-on: https://chromium-review.googlesource.com/673829
> Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#507510}

Bug: 696822,  773210 
TBR=sky@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_chromeos_msan_rel_ng,linux_chromium_msan_rel_ng

Change-Id: Ic211308a0f9c728e96d34e07117a9eea44d784ff
Reviewed-on: https://chromium-review.googlesource.com/711031
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508022}
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/chromeos/app_mode/kiosk_app_data.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/chromeos/app_mode/kiosk_external_update_validator.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/chromeos/app_mode/kiosk_external_update_validator.h
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/extensions/api/declarative_net_request/rule_indexing_unittest.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/extensions/crx_installer.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/extensions/crx_installer.h
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/extensions/extension_service.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/extensions/extension_service.h
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/extensions/startup_helper.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/extensions/unpacked_installer.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/extensions/unpacked_installer.h
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/chrome/browser/metrics/extensions_metrics_provider_unittest.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/extensions/browser/api/declarative_net_request/test_utils.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/extensions/browser/api/declarative_net_request/test_utils.h
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/extensions/browser/api/declarative_net_request/utils.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/extensions/browser/api/declarative_net_request/utils.h
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/extensions/browser/extension_prefs.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/extensions/browser/extension_prefs.h
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/extensions/browser/sandboxed_unpacker.cc
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/extensions/browser/sandboxed_unpacker.h
[modify] https://crrev.com/a89306503f799d29220285e415114beb752b65ae/extensions/browser/sandboxed_unpacker_unittest.cc

Blockedon: 774271
Project Member

Comment 41 by bugdroid1@chromium.org, Oct 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/12dfeb40195eede443227518e2957f2ab4154331

commit 12dfeb40195eede443227518e2957f2ab4154331
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Sat Oct 21 00:00:17 2017

DNR: Introduce RulesetMatcher to hold an extension ruleset.

This CL introduces RulesetMatcher which will encapsulate a single extension
ruleset. It is responsible for managing a memory mapped ruleset. It uses the
url_pattern_index component to achieve fast matching of network requests against
declarative rules. It will be used subsequently to evaluate network requests for
the DNR API.

BUG=696822

Change-Id: I9566276cec0e18b5862cc25616416172f90a0083
Reviewed-on: https://chromium-review.googlesource.com/717718
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510620}
[modify] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/chrome/browser/extensions/api/declarative_net_request/rule_indexing_unittest.cc
[add] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/chrome/browser/extensions/api/declarative_net_request/ruleset_matcher_unittest.cc
[modify] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/chrome/test/BUILD.gn
[modify] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/components/url_pattern_index/url_pattern_index.h
[modify] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/extensions/browser/api/declarative_net_request/BUILD.gn
[add] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/extensions/browser/api/declarative_net_request/ruleset_matcher.cc
[add] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/extensions/browser/api/declarative_net_request/ruleset_matcher.h
[modify] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/extensions/browser/api/declarative_net_request/test_utils.cc
[modify] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/extensions/browser/api/declarative_net_request/test_utils.h
[modify] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/extensions/browser/api/declarative_net_request/utils.cc
[modify] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/extensions/browser/api/declarative_net_request/utils.h
[modify] https://crrev.com/12dfeb40195eede443227518e2957f2ab4154331/tools/metrics/histograms/histograms.xml

Blockedon: 777714
Project Member

Comment 44 by bugdroid1@chromium.org, Oct 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6bf6c099bdf61f490ac3bc84d44b2539bce1f5a9

commit 6bf6c099bdf61f490ac3bc84d44b2539bce1f5a9
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Wed Oct 25 23:25:45 2017

DNR: Introduce RulesetManager to manage the set of active rulesets.

This CL introduces RulesetManager to manage the set of active rulesets for the
Declarative Net Request API. It is owned by the InfoMap object and accessed on
the IO thread. This will be used subsequently to determine whether a network
request should be blocked as per the Declarative Net Request API.

BUG=696822

Change-Id: I301c479628c8d2e1e2708e0642f72f3c2c7c36cc
Reviewed-on: https://chromium-review.googlesource.com/721853
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511639}
[add] https://crrev.com/6bf6c099bdf61f490ac3bc84d44b2539bce1f5a9/chrome/browser/extensions/api/declarative_net_request/ruleset_manager_unittest.cc
[modify] https://crrev.com/6bf6c099bdf61f490ac3bc84d44b2539bce1f5a9/chrome/test/BUILD.gn
[modify] https://crrev.com/6bf6c099bdf61f490ac3bc84d44b2539bce1f5a9/extensions/browser/api/declarative_net_request/BUILD.gn
[add] https://crrev.com/6bf6c099bdf61f490ac3bc84d44b2539bce1f5a9/extensions/browser/api/declarative_net_request/ruleset_manager.cc
[add] https://crrev.com/6bf6c099bdf61f490ac3bc84d44b2539bce1f5a9/extensions/browser/api/declarative_net_request/ruleset_manager.h
[modify] https://crrev.com/6bf6c099bdf61f490ac3bc84d44b2539bce1f5a9/extensions/browser/info_map.cc
[modify] https://crrev.com/6bf6c099bdf61f490ac3bc84d44b2539bce1f5a9/extensions/browser/info_map.h
[modify] https://crrev.com/6bf6c099bdf61f490ac3bc84d44b2539bce1f5a9/tools/metrics/histograms/histograms.xml

Project Member

Comment 45 by bugdroid1@chromium.org, Nov 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/03368bedc075e9190a17bc9a268a1ce2cb71f050

commit 03368bedc075e9190a17bc9a268a1ce2cb71f050
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Mon Nov 06 22:42:50 2017

UrlPatternIndexMatcher: Support returning highest priority matching rule.

This CL adds support to UrlPatternIndexMatcher to return the highest priority
matching rule. This will be subsequently used by Declarative Net Request to
resolve conflicts for redirect rules within an extension ruleset. When multiple
redirect rules match for a given request, the rule with the highest priority
will be used to determine the redirect url.

BUG=696822

Change-Id: I40a9beb5d0deb637cd4aab39c5f914fafb936cbd
Reviewed-on: https://chromium-review.googlesource.com/748962
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514268}
[modify] https://crrev.com/03368bedc075e9190a17bc9a268a1ce2cb71f050/components/subresource_filter/core/common/indexed_ruleset.cc
[modify] https://crrev.com/03368bedc075e9190a17bc9a268a1ce2cb71f050/components/url_pattern_index/flat/url_pattern_index.fbs
[modify] https://crrev.com/03368bedc075e9190a17bc9a268a1ce2cb71f050/components/url_pattern_index/url_pattern_index.cc
[modify] https://crrev.com/03368bedc075e9190a17bc9a268a1ce2cb71f050/components/url_pattern_index/url_pattern_index.h
[modify] https://crrev.com/03368bedc075e9190a17bc9a268a1ce2cb71f050/components/url_pattern_index/url_pattern_index_unittest.cc
[modify] https://crrev.com/03368bedc075e9190a17bc9a268a1ce2cb71f050/extensions/browser/api/declarative_net_request/ruleset_matcher.cc

Blockedon: 781995
Project Member

Comment 47 by bugdroid1@chromium.org, Nov 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/476511a75daf8f6d803a81d5b17f0946b44b4841

commit 476511a75daf8f6d803a81d5b17f0946b44b4841
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Tue Nov 07 00:15:38 2017

DNR: Introduce RulesMonitorService and use DNR rulesets to intercept requests.

This CL introduces RulesMonitorService, a BrowserContextKeyedAPI, which observes
loading and unloading of extensions to load and unload their rulesets for the
Declarative Net Request API. It lives on the UI thread and forwards the rulesets
to the RulesetManager on the IO thread.

ExtensionWebRequestEventRouter::OnBeforeRequest is used to intercept network
requests. It forwards non-sensitive requests to RulesetManager which decides
whether the request should be blocked. Hence, after this CL network requests are
blocked as per the active DNR rulesets.

BUG=696822

Change-Id: Ie5108bbc92d1b4c91cb6759f59458e50eb7c0a7d
Reviewed-on: https://chromium-review.googlesource.com/737451
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514312}
[modify] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/BUILD.gn
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/cached/page_with_cacheable_script.html
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/cached/script.js
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/cached/script.js.mock-http-headers
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/child_frame.html
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/domain_type_test.html
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/page_with_two_frames.html
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/pages_with_script/index.html
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/pages_with_script/page.html
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/pages_with_script/page2.html
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/pages_with_script/script.js
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/subresources.html
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/subresources/image.png
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/subresources/ping.mp3
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/subresources/script.js
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/subresources/style.css
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/subresources/subframe.html
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/chrome/test/data/extensions/declarative_net_request/subresources/xhr_target.txt
[modify] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/extensions/browser/api/declarative_net_request/BUILD.gn
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/extensions/browser/api/declarative_net_request/rules_monitor_service.cc
[add] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/extensions/browser/api/declarative_net_request/rules_monitor_service.h
[modify] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/extensions/browser/api/declarative_net_request/ruleset_manager.cc
[modify] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/extensions/browser/api/declarative_net_request/ruleset_manager.h
[modify] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/extensions/browser/api/declarative_net_request/ruleset_matcher.h
[modify] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/extensions/browser/api/web_request/BUILD.gn
[modify] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/extensions/browser/api/web_request/web_request_api.cc
[modify] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/extensions/browser/browser_context_keyed_service_factories.cc
[modify] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/tools/metrics/histograms/enums.xml
[modify] https://crrev.com/476511a75daf8f6d803a81d5b17f0946b44b4841/tools/metrics/histograms/histograms.xml

Project Member

Comment 48 by bugdroid1@chromium.org, Nov 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/39ba30acf468daf12b38a2c832dc769fcbff0681

commit 39ba30acf468daf12b38a2c832dc769fcbff0681
Author: Matt Menke <mmenke@chromium.org>
Date: Tue Nov 07 16:35:53 2017

Disable DeclarativeNetRequestBrowserTests with the network service.

A bunch were added in https://chromium-review.googlesource.com/737451,
and most (all?) aren't passing on the mojo network service bot.

TBR=rdsmith@chromium.org
NOTRY=true

Bug: 696822, 769401 
Change-Id: I282229d0c816614ba110d0431326eb1982eed176
Reviewed-on: https://chromium-review.googlesource.com/756861
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514488}
[modify] https://crrev.com/39ba30acf468daf12b38a2c832dc769fcbff0681/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter

Project Member

Comment 49 by bugdroid1@chromium.org, Nov 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dde13d71902816a9582d57cffef8a0cde6f6382c

commit dde13d71902816a9582d57cffef8a0cde6f6382c
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Thu Nov 09 00:27:37 2017

DNR: Re-enable DeclarativeNetRequestBrowserTest.BlockRequests_UrlFilter on win-dbg.

r514562 disabled DeclarativeNetRequestBrowserTest.BlockRequests_UrlFilter on
windows debug bots since the test was flaky. It seems that the test was timing
out most of the times.

This CL splits out DeclarativeNetRequestBrowserTest.BlockRequests_Separator
from it, to decrease its running time and re-enables the test.

BUG= 782326 , 696822

Change-Id: I4932cd9be67cad267ffa085a38d0a551cc8702ab
Reviewed-on: https://chromium-review.googlesource.com/757830
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515031}
[modify] https://crrev.com/dde13d71902816a9582d57cffef8a0cde6f6382c/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc

Project Member

Comment 50 by bugdroid1@chromium.org, Nov 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ee65cbc5de4e52f4e52c1e50a15ae4cc0d9834ec

commit ee65cbc5de4e52f4e52c1e50a15ae4cc0d9834ec
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Sat Nov 11 00:46:55 2017

DNR: Implement simple redirect rule support.

This CL adds support for simple redirect rules to DNR. Rulesets of more recently
installed extensions are given priority while determining the redirect url.
Within a single extension, in case multiple rules match, the matching rule with
the highest priority determines the redirect url. Note: Like the Web request
API, DNR doesn't allow extensions to redirect web socket requests.

This also corrects the
"DeclarativeNetRequest.ShouldBlockRequestTime.SingleExtension" histogram name
and prepends "Extension." to it.

BUG=696822

Change-Id: I73903b782952ee539a82ddd34ae413414400cd69
Reviewed-on: https://chromium-review.googlesource.com/756332
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515769}
[modify] https://crrev.com/ee65cbc5de4e52f4e52c1e50a15ae4cc0d9834ec/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/ee65cbc5de4e52f4e52c1e50a15ae4cc0d9834ec/chrome/browser/extensions/api/declarative_net_request/ruleset_manager_unittest.cc
[modify] https://crrev.com/ee65cbc5de4e52f4e52c1e50a15ae4cc0d9834ec/chrome/browser/extensions/api/declarative_net_request/ruleset_matcher_unittest.cc
[modify] https://crrev.com/ee65cbc5de4e52f4e52c1e50a15ae4cc0d9834ec/extensions/browser/api/declarative_net_request/ruleset_manager.cc
[modify] https://crrev.com/ee65cbc5de4e52f4e52c1e50a15ae4cc0d9834ec/extensions/browser/api/declarative_net_request/ruleset_manager.h
[modify] https://crrev.com/ee65cbc5de4e52f4e52c1e50a15ae4cc0d9834ec/extensions/browser/api/declarative_net_request/ruleset_matcher.cc
[modify] https://crrev.com/ee65cbc5de4e52f4e52c1e50a15ae4cc0d9834ec/extensions/browser/api/declarative_net_request/ruleset_matcher.h
[modify] https://crrev.com/ee65cbc5de4e52f4e52c1e50a15ae4cc0d9834ec/extensions/browser/api/web_request/web_request_api.cc
[modify] https://crrev.com/ee65cbc5de4e52f4e52c1e50a15ae4cc0d9834ec/tools/metrics/histograms/histograms.xml

Project Member

Comment 51 by bugdroid1@chromium.org, Nov 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ae7d2650f7203e0114ab609692f0c2ff6e6c82a2

commit ae7d2650f7203e0114ab609692f0c2ff6e6c82a2
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Tue Nov 14 23:03:28 2017

DNR: Use flat_set to store rulesets in RulesetMatcher.

This CL changes RulesetMatcher to use a flat_set instead of a std::map to store
extension rulesets. The ruleset data can now be traversed in descending order of
installation time. This also allows us to prevent redundant ruleset evaluation
in RulesetMatcher::ShouldRedirectRequest.

This CL should have no behavior change.

BUG=696822

Change-Id: I75bcc2ff7067cd14c07b4be68cf6e9e7038b3b37
Reviewed-on: https://chromium-review.googlesource.com/764951
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516482}
[modify] https://crrev.com/ae7d2650f7203e0114ab609692f0c2ff6e6c82a2/extensions/browser/api/declarative_net_request/ruleset_manager.cc
[modify] https://crrev.com/ae7d2650f7203e0114ab609692f0c2ff6e6c82a2/extensions/browser/api/declarative_net_request/ruleset_manager.h

DeclarativeNetRequestBrowserTest.BlockRequests_ResourceTypes/0 is failing on Win7 bots. https://uberchromegw.corp.google.com/i/chromium.win/builders/Win7%20Tests%20%28dbg%29%281%29/builds/64779
Project Member

Comment 53 by bugdroid1@chromium.org, Dec 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5d30a543e5207ec0b5315dd8e935ff048169e6ae

commit 5d30a543e5207ec0b5315dd8e935ff048169e6ae
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Wed Dec 06 02:32:40 2017

DNR: Fix flaky DeclarativeNetRequestBrowserTest.BlockRequests_ResourceTypes test.

The DeclarativeNetRequestBrowserTest.BlockRequests_ResourceTypes can sometimes
timeout causing it to flake. Take care of this by splitting it into two tests.

BUG= 787957 , 696822

Change-Id: I6245e14ac2ad064d15c06792c5d492606a364d04
Reviewed-on: https://chromium-review.googlesource.com/807745
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521963}
[modify] https://crrev.com/5d30a543e5207ec0b5315dd8e935ff048169e6ae/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc

Comment 54 by jtsil...@gmail.com, Jan 11 2018

Easylist filters include a ##div-element qualifier which allows matching and removal of elements within a document. Are there plans to support this feature or would this be handled by some code in the extension?
Regards c#54, currently there is no plan to support cosmetic/element hiding filters as far as DNR is concerned. 
Project Member

Comment 56 by bugdroid1@chromium.org, Jan 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7adbc196102e6b59f0584f93ab5d8bbd93e78eee

commit 7adbc196102e6b59f0584f93ab5d8bbd93e78eee
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Fri Jan 19 01:48:58 2018

DNR: Remove duplicated dependency from build file.

This CL removes a duplicated dependency in a BUILD.gn file defined for DNR.

BUG=696822

Change-Id: I29772cbd07a09bf630644c11ac977871896ca376
Reviewed-on: https://chromium-review.googlesource.com/875129
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530386}
[modify] https://crrev.com/7adbc196102e6b59f0584f93ab5d8bbd93e78eee/extensions/browser/api/declarative_net_request/BUILD.gn

Project Member

Comment 57 by bugdroid1@chromium.org, Jan 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b9e6a930bcbe67d4aab2febdbbcd25babc5fa7f9

commit b9e6a930bcbe67d4aab2febdbbcd25babc5fa7f9
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Sat Jan 20 01:01:35 2018

DNR: Load ruleset directly in memory instead of mmap-ing it.

This CL changes the ruleset file data to no longer be memory mapped. This was
not ideal since mmap-ing a file on the IO thread can cause it to get de-
scheduled in case of a page fault, which we do not want. This CL changes the
ruleset file data to be copied and available directly in memory.

BUG= 774271 , 696822

Change-Id: I1c8aae2c1d48a7bf68a2c878a227d15344588039
Reviewed-on: https://chromium-review.googlesource.com/874595
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530703}
[modify] https://crrev.com/b9e6a930bcbe67d4aab2febdbbcd25babc5fa7f9/extensions/browser/api/declarative_net_request/ruleset_matcher.cc
[modify] https://crrev.com/b9e6a930bcbe67d4aab2febdbbcd25babc5fa7f9/extensions/browser/api/declarative_net_request/ruleset_matcher.h
[modify] https://crrev.com/b9e6a930bcbe67d4aab2febdbbcd25babc5fa7f9/tools/metrics/histograms/enums.xml

Project Member

Comment 58 by bugdroid1@chromium.org, Feb 1 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/10c92aea9719dadd903c0540968844bd36f103f4

commit 10c92aea9719dadd903c0540968844bd36f103f4
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Thu Feb 01 22:37:09 2018

DNR: Introduce manifest key to specify host permissions.

This CL introduces the "hosts" key within the "declarative_net_request" manifest
key. It is used to specify a list of match patterns. These match patterns will
then be used by DNR to evaluate whether an extension has access to a particular
request for the purpose of DNR.

The parsing of host permissions within PermissionsParser is refactored and a new
static utility method called ParseHostPermissions is introduced on the class to
parse a list of match patterns.

In subsequent CLs, the concept of hosts for DNR will be introduced in the
PermissionsSet class and DNR will start checking these host permissions.

BUG= 777714 , 696822
Doc=go/dnr-hosts

Change-Id: Iee31b634ce5e45c5685ad4264219cb79b70070aa
Reviewed-on: https://chromium-review.googlesource.com/888321
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533838}
[modify] https://crrev.com/10c92aea9719dadd903c0540968844bd36f103f4/extensions/common/api/declarative_net_request/dnr_manifest_handler.cc
[modify] https://crrev.com/10c92aea9719dadd903c0540968844bd36f103f4/extensions/common/api/declarative_net_request/dnr_manifest_unittest.cc
[modify] https://crrev.com/10c92aea9719dadd903c0540968844bd36f103f4/extensions/common/api/declarative_net_request/test_utils.cc
[modify] https://crrev.com/10c92aea9719dadd903c0540968844bd36f103f4/extensions/common/api/declarative_net_request/test_utils.h
[modify] https://crrev.com/10c92aea9719dadd903c0540968844bd36f103f4/extensions/common/manifest_constants.cc
[modify] https://crrev.com/10c92aea9719dadd903c0540968844bd36f103f4/extensions/common/manifest_constants.h
[modify] https://crrev.com/10c92aea9719dadd903c0540968844bd36f103f4/extensions/common/manifest_handlers/permissions_parser.cc
[modify] https://crrev.com/10c92aea9719dadd903c0540968844bd36f103f4/extensions/common/manifest_handlers/permissions_parser.h

Are there any plans to add a "popup" matching option to rules definition?
Project Member

Comment 60 by bugdroid1@chromium.org, Feb 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d2ec3bc618df7e5e7fd7a14eea68d2df62f4d7bf

commit d2ec3bc618df7e5e7fd7a14eea68d2df62f4d7bf
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Mon Feb 05 23:09:28 2018

Revert "DNR: Introduce manifest key to specify host permissions."

This reverts commit 10c92aea9719dadd903c0540968844bd36f103f4.

Reason for revert: Changing the approach as per discussion, don't need DNR specific
host permissions any longer.

Original change's description:
> DNR: Introduce manifest key to specify host permissions.
>
> This CL introduces the "hosts" key within the "declarative_net_request" manifest
> key. It is used to specify a list of match patterns. These match patterns will
> then be used by DNR to evaluate whether an extension has access to a particular
> request for the purpose of DNR.
>
> The parsing of host permissions within PermissionsParser is refactored and a new
> static utility method called ParseHostPermissions is introduced on the class to
> parse a list of match patterns.
>
> In subsequent CLs, the concept of hosts for DNR will be introduced in the
> PermissionsSet class and DNR will start checking these host permissions.
>
> BUG= 777714 , 696822
> Doc=go/dnr-hosts
>
> Change-Id: Iee31b634ce5e45c5685ad4264219cb79b70070aa
> Reviewed-on: https://chromium-review.googlesource.com/888321
> Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
> Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#533838}

TBR=rdevlin.cronin@chromium.org,karandeepb@chromium.org

Change-Id: I63cb84b126de6ba02d604efb4503959e3de6cef7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  777714 , 696822
Reviewed-on: https://chromium-review.googlesource.com/900162
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Karan Bhatia <karandeepb@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534525}
[modify] https://crrev.com/d2ec3bc618df7e5e7fd7a14eea68d2df62f4d7bf/extensions/common/api/declarative_net_request/dnr_manifest_handler.cc
[modify] https://crrev.com/d2ec3bc618df7e5e7fd7a14eea68d2df62f4d7bf/extensions/common/api/declarative_net_request/dnr_manifest_unittest.cc
[modify] https://crrev.com/d2ec3bc618df7e5e7fd7a14eea68d2df62f4d7bf/extensions/common/api/declarative_net_request/test_utils.cc
[modify] https://crrev.com/d2ec3bc618df7e5e7fd7a14eea68d2df62f4d7bf/extensions/common/api/declarative_net_request/test_utils.h
[modify] https://crrev.com/d2ec3bc618df7e5e7fd7a14eea68d2df62f4d7bf/extensions/common/manifest_constants.cc
[modify] https://crrev.com/d2ec3bc618df7e5e7fd7a14eea68d2df62f4d7bf/extensions/common/manifest_constants.h
[modify] https://crrev.com/d2ec3bc618df7e5e7fd7a14eea68d2df62f4d7bf/extensions/common/manifest_handlers/permissions_parser.cc
[modify] https://crrev.com/d2ec3bc618df7e5e7fd7a14eea68d2df62f4d7bf/extensions/common/manifest_handlers/permissions_parser.h

Blockedon: 809680
Regarding c#59: None as of now. The WebRequest API also doesn't have one.
Project Member

Comment 63 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ea2dc902c30310942f19faef732056a843767ef1

commit ea2dc902c30310942f19faef732056a843767ef1
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Wed Feb 07 05:50:23 2018

Extensions: Add ability to check host permissions for initiator as well.

This CL adds the ability to check for host permission access to both the request
url and its initiator. WebRequestPermissions::REQUIRE_HOST_PERMISSION is renamed
to WebRequestPermissions::REQUIRE_HOST_PERMISSION_FOR_URL and
WebRequestPermissions::REQUIRE_HOST_PERMISSION_FOR_URL_AND_INITIATOR is
introduced. This will subsequently be used to check access for the Declarative
Net Request API.

BUG= 777714 , 696822

Change-Id: I8ec9b08be1e8eb240e28328b7c254055e63005f3
Reviewed-on: https://chromium-review.googlesource.com/905405
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534924}
[modify] https://crrev.com/ea2dc902c30310942f19faef732056a843767ef1/chrome/browser/extensions/api/web_request/web_request_permissions_unittest.cc
[modify] https://crrev.com/ea2dc902c30310942f19faef732056a843767ef1/extensions/browser/api/declarative_webrequest/webrequest_action.cc
[modify] https://crrev.com/ea2dc902c30310942f19faef732056a843767ef1/extensions/browser/api/web_request/web_request_api.cc
[modify] https://crrev.com/ea2dc902c30310942f19faef732056a843767ef1/extensions/browser/api/web_request/web_request_permissions.cc
[modify] https://crrev.com/ea2dc902c30310942f19faef732056a843767ef1/extensions/browser/api/web_request/web_request_permissions.h

Comment 64 by jtsil...@gmail.com, Feb 11 2018

I noticed in the code that there is a comment that "main_frame" should be added to the resource type conditions. The url_pattern_index code contains an "activation" option which seems like a better way to implement this. This would require adding an optional "activation" list to the idl. There are currently two activation types defined: "document" and "generic_block". Both of these really only apply to whitelist rules and should probably be ignored or errored for blacklist rules.
c#64: Not sure I get what you are suggesting. Can you elaborate? The ActivationType in url_pattern_index is used to implement frame-whitelisting ($document) rules. Think the main_frame resource type is orthogonal to this and can be implemented by just adding it as a resource type. 
Blockedon: 811460

Comment 68 by jtsil...@gmail.com, Feb 12 2018

I guess I misunderstood what main_frame would be used for. Is it equal to the inverse of sub_frame? It's not clear to me how it would be derived and used.

Are there plans to support the ActivationTypes? That is something that would be very useful.

Thank you for responding to my request.
"main_frame" just refers to the top level frame of the page.

What use cases do you have in mind for ActivationTypes?

Comment 70 by jtsil...@gmail.com, Feb 13 2018

For ActivationTypes I am looking to implement $document and $genericblock whitelist rules you might find in a filter list. 
Oh ok, yeah we haven't yet decided whether we would want to support these.

Also, if you have been testing/using the API, let me know if you have any other feedback, personally or on email. Thanks.
[Correction] *personally on email or on the bug

Comment 73 by jtsil...@gmail.com, Feb 13 2018

So far I have been using the easylist as my source of filters. I use a parser to convert the easylist into a filters.json (attached). This conversion works for 25891/40639 of the easylist resource blacklist filters. Also 4464/5578 of the resource whilelist filters can be converted. The easylist has 18848 element hiding rules which DNR will not support.

More rules can be supported with $document, $genericblock, $~document, $~genericblock. But there are a few options (such as popup and generichide) which I believe are outside the scope of DNR.

I am not seeing any performance or memory issues when loading the filters and the blocking does appear to work.

One thing I would like to see would be a separation of the DNR library from the extension api. Some platforms may not support extensions so it might be useful in the future to build filtering functions right into the browser.
filters.json
3.7 MB View Download
Nice to see you using the API. And yeah let me know if you see any perf issues or bugs.


Project Member

Comment 75 by bugdroid1@chromium.org, Feb 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4821d731a0a380428445d566f0c0b290e36fc027

commit 4821d731a0a380428445d566f0c0b290e36fc027
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Tue Feb 13 20:31:32 2018

DNR: Check host permissions for request and its initiator.

This CL implements host permission checking during ruleset evaluation for the
Declarative Net Request API. Host permissions to the request url and its
initiator are checked while evaluating an extension ruleset.

BUG= 777714 , 696822

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Ic25a3895e61afdf8073618ae65cbcb9c60bb4cff
Reviewed-on: https://chromium-review.googlesource.com/905570
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536450}
[modify] https://crrev.com/4821d731a0a380428445d566f0c0b290e36fc027/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/4821d731a0a380428445d566f0c0b290e36fc027/chrome/browser/extensions/api/declarative_net_request/rule_indexing_unittest.cc
[modify] https://crrev.com/4821d731a0a380428445d566f0c0b290e36fc027/chrome/browser/extensions/api/declarative_net_request/ruleset_manager_unittest.cc
[modify] https://crrev.com/4821d731a0a380428445d566f0c0b290e36fc027/chrome/browser/extensions/api/declarative_net_request/ruleset_matcher_unittest.cc
[add] https://crrev.com/4821d731a0a380428445d566f0c0b290e36fc027/chrome/test/data/extensions/declarative_net_request/page_with_four_frames.html
[modify] https://crrev.com/4821d731a0a380428445d566f0c0b290e36fc027/extensions/browser/api/declarative_net_request/ruleset_manager.cc
[modify] https://crrev.com/4821d731a0a380428445d566f0c0b290e36fc027/extensions/browser/api/declarative_net_request/ruleset_manager.h
[modify] https://crrev.com/4821d731a0a380428445d566f0c0b290e36fc027/extensions/common/api/declarative_net_request/test_utils.cc
[modify] https://crrev.com/4821d731a0a380428445d566f0c0b290e36fc027/extensions/common/api/declarative_net_request/test_utils.h
[modify] https://crrev.com/4821d731a0a380428445d566f0c0b290e36fc027/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter

Project Member

Comment 76 by bugdroid1@chromium.org, Mar 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c3a610ca9d349de254050ea58ac2735db7df7088

commit c3a610ca9d349de254050ea58ac2735db7df7088
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Thu Mar 29 18:57:39 2018

Extensions: Add main frame url info. to extension FrameData.

This CL adds "last_committed_main_frame_url" and "pending_main_frame_url" to the
extension FrameData. "last_committed_main_frame_url" is used to track the the
last committed url of the frames's web contents and "pending_main_frame_url" is
used to track an active main frame navigation. "pending_main_frame_url" will be
required for main frame subresource loads which cannot be reliably mapped to a
single main frame url currently.

In a subsequent CL, a page whitelisting API will be introduced for the
Declarative Net Request API and this information related to the main frame url
will be used to check whether a network request has been whitelisted as per the
API.

BUG= 811460 , 696822
Doc=https://docs.google.com/document/d/1Fhm-t0JCc3dcmwyBX_i7TGyuJ2QjqDechv1-VCRBo5o/edit?usp=sharing

Change-Id: Ie6588955ca5105af0bca4ed4408a141b0d586e44
Reviewed-on: https://chromium-review.googlesource.com/936325
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546910}
[modify] https://crrev.com/c3a610ca9d349de254050ea58ac2735db7df7088/chrome/browser/extensions/web_contents_browsertest.cc
[modify] https://crrev.com/c3a610ca9d349de254050ea58ac2735db7df7088/extensions/browser/extension_api_frame_id_map.cc
[modify] https://crrev.com/c3a610ca9d349de254050ea58ac2735db7df7088/extensions/browser/extension_api_frame_id_map.h
[modify] https://crrev.com/c3a610ca9d349de254050ea58ac2735db7df7088/extensions/browser/extension_api_frame_id_map_unittest.cc
[modify] https://crrev.com/c3a610ca9d349de254050ea58ac2735db7df7088/extensions/browser/extension_navigation_ui_data.cc
[modify] https://crrev.com/c3a610ca9d349de254050ea58ac2735db7df7088/extensions/browser/extension_web_contents_observer.cc
[modify] https://crrev.com/c3a610ca9d349de254050ea58ac2735db7df7088/extensions/browser/extension_web_contents_observer.h

Project Member

Comment 77 by bugdroid1@chromium.org, Apr 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/158b85420b90f2c325a6c71caba992c40b34610e

commit 158b85420b90f2c325a6c71caba992c40b34610e
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Tue Apr 03 07:07:15 2018

DNR: Ensure page whitelisting API can't be called by extensions with no rulesets.

This CL ensures that all the page whitelisting API functions
(chrome.declarativeNetRequest.*) can't be called by extensions which don't have
a declarative ruleset. It doesn't make sense for extensions to whitelist page
patterns if they don't have a registered declarative ruleset.

BUG= 811460 , 696822
Doc=https://docs.google.com/document/d/1Fhm-t0JCc3dcmwyBX_i7TGyuJ2QjqDechv1-VCRBo5o/edit?usp=sharing

Change-Id: Id2822af5f258a32889e9217a3c63e13879984312
Reviewed-on: https://chromium-review.googlesource.com/987314
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547636}
[modify] https://crrev.com/158b85420b90f2c325a6c71caba992c40b34610e/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_apitest.cc
[add] https://crrev.com/158b85420b90f2c325a6c71caba992c40b34610e/chrome/test/data/extensions/api_test/declarative_net_request/extension_with_no_ruleset/background.js
[add] https://crrev.com/158b85420b90f2c325a6c71caba992c40b34610e/chrome/test/data/extensions/api_test/declarative_net_request/extension_with_no_ruleset/manifest.json
[rename] https://crrev.com/158b85420b90f2c325a6c71caba992c40b34610e/chrome/test/data/extensions/api_test/declarative_net_request/page_whitelisting_api/background.js
[rename] https://crrev.com/158b85420b90f2c325a6c71caba992c40b34610e/chrome/test/data/extensions/api_test/declarative_net_request/page_whitelisting_api/manifest.json
[rename] https://crrev.com/158b85420b90f2c325a6c71caba992c40b34610e/chrome/test/data/extensions/api_test/declarative_net_request/page_whitelisting_api/rules_file_empty.json
[modify] https://crrev.com/158b85420b90f2c325a6c71caba992c40b34610e/extensions/browser/api/declarative_net_request/declarative_net_request_api.cc
[modify] https://crrev.com/158b85420b90f2c325a6c71caba992c40b34610e/extensions/browser/api/declarative_net_request/declarative_net_request_api.h
[modify] https://crrev.com/158b85420b90f2c325a6c71caba992c40b34610e/extensions/browser/api/declarative_net_request/rules_monitor_service.cc
[modify] https://crrev.com/158b85420b90f2c325a6c71caba992c40b34610e/extensions/browser/api/declarative_net_request/rules_monitor_service.h

Project Member

Comment 78 by bugdroid1@chromium.org, Apr 4 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/72e12fdc05df67024f7adda2aa8319a33653261f

commit 72e12fdc05df67024f7adda2aa8319a33653261f
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Wed Apr 04 05:04:38 2018

DNR: Impose limit on the max. no. of whitelisted page patterns per extension.

This CL imposes a limit on the maximum number of page patterns an extension can
whitelist using the chrome.declarativeNetRequest.addWhitelistedPages API. This
limit is currently set to 100. A new property MAX_NUMBER_OF_WHITELISTED_PAGES is
introduced in the declarativeNetRequest API for the same.

It is important to limit this since the whitelisted patterns are stored in the
browser memory (and also persisted across sessions using Extension preferences).

BUG= 811460 , 696822
Doc=https://docs.google.com/document/d/1Fhm-t0JCc3dcmwyBX_i7TGyuJ2QjqDechv1-VCRBo5o/edit?usp=sharing

Change-Id: I674da154107ac06269827272576f1af911f13338
Reviewed-on: https://chromium-review.googlesource.com/987392
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547983}
[modify] https://crrev.com/72e12fdc05df67024f7adda2aa8319a33653261f/chrome/test/data/extensions/api_test/declarative_net_request/page_whitelisting_api/background.js
[modify] https://crrev.com/72e12fdc05df67024f7adda2aa8319a33653261f/extensions/browser/api/declarative_net_request/declarative_net_request_api.cc
[modify] https://crrev.com/72e12fdc05df67024f7adda2aa8319a33653261f/extensions/common/api/declarative_net_request.idl

Blockedon: 829225
Blockedon: -754526
Project Member

Comment 81 by bugdroid1@chromium.org, May 1 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6e6741a13720e1298a2d921540c265424155ffb3

commit 6e6741a13720e1298a2d921540c265424155ffb3
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Tue May 01 06:34:35 2018

DNR tests: Use ExtensionTestMessageListener to detect background page load.

This CL changes declarative net request browsertests to use
ExtensionTestMessageListener to detect background page load instead of relying
on the notification system, which is deprecated. Also, add a
extension_id_for_message() method to ExtensionTestMessageListener. This is
useful to detect the extension id, the message was received from.

BUG=696822

Change-Id: Ie1fc74d547d4ee417c5f6b2d5a7082adbc9d164a
Reviewed-on: https://chromium-review.googlesource.com/1034155
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555005}
[modify] https://crrev.com/6e6741a13720e1298a2d921540c265424155ffb3/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/6e6741a13720e1298a2d921540c265424155ffb3/extensions/common/api/declarative_net_request/test_utils.cc
[modify] https://crrev.com/6e6741a13720e1298a2d921540c265424155ffb3/extensions/common/api/declarative_net_request/test_utils.h
[modify] https://crrev.com/6e6741a13720e1298a2d921540c265424155ffb3/extensions/test/extension_test_message_listener.cc
[modify] https://crrev.com/6e6741a13720e1298a2d921540c265424155ffb3/extensions/test/extension_test_message_listener.h

Project Member

Comment 82 by bugdroid1@chromium.org, May 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8a0ab081a7ef10b5d40aa435ba083ec5e727a104

commit 8a0ab081a7ef10b5d40aa435ba083ec5e727a104
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Wed May 02 21:12:24 2018

Extensions: ChromeExtensionWCO::ReadyToCommitNavigation should call its superclass impl.

r551018 introduced an override for ReadyToCommitNavigation method on
ChromeExtensionWebContentsObserver. However it failed to call its superclass
implementation. Fix it.

BUG=696822

Change-Id: I882c8af072f942e65072fb06e3b2209d2e983c1c
Reviewed-on: https://chromium-review.googlesource.com/1039158
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555533}
[modify] https://crrev.com/8a0ab081a7ef10b5d40aa435ba083ec5e727a104/chrome/browser/extensions/chrome_extension_web_contents_observer.cc

Project Member

Comment 83 by bugdroid1@chromium.org, May 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b87349ae1bb658b3d717da72a33611a5118f6a1f

commit b87349ae1bb658b3d717da72a33611a5118f6a1f
Author: Marc Treib <treib@chromium.org>
Date: Thu May 03 11:28:15 2018

Revert "DNR tests: Use ExtensionTestMessageListener to detect background page load."

This reverts commit 6e6741a13720e1298a2d921540c265424155ffb3.

Reason for revert: DeclarativeNetRequestBrowserTest_Packed.PageWhitelistingAPI became flaky on ChromeOS debug and ASan/LSan:
https://ci.chromium.org/buildbot/chromium.memory/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/?limit=100
https://ci.chromium.org/buildbot/chromium.chromiumos/linux-chromeos-dbg/?limit=100
https://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=DeclarativeNetRequestBrowserTest_Packed.*PageWhitelist

Original change's description:
> DNR tests: Use ExtensionTestMessageListener to detect background page load.
>
> This CL changes declarative net request browsertests to use
> ExtensionTestMessageListener to detect background page load instead of relying
> on the notification system, which is deprecated. Also, add a
> extension_id_for_message() method to ExtensionTestMessageListener. This is
> useful to detect the extension id, the message was received from.
>
> BUG=696822
>
> Change-Id: Ie1fc74d547d4ee417c5f6b2d5a7082adbc9d164a
> Reviewed-on: https://chromium-review.googlesource.com/1034155
> Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
> Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#555005}

TBR=lazyboy@chromium.org,karandeepb@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 696822,  838536 
Change-Id: Ic714040d602db9e0a4abb266c0f84adb10029625
Reviewed-on: https://chromium-review.googlesource.com/1041946
Commit-Queue: Marc Treib <treib@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555691}
[modify] https://crrev.com/b87349ae1bb658b3d717da72a33611a5118f6a1f/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/b87349ae1bb658b3d717da72a33611a5118f6a1f/extensions/common/api/declarative_net_request/test_utils.cc
[modify] https://crrev.com/b87349ae1bb658b3d717da72a33611a5118f6a1f/extensions/common/api/declarative_net_request/test_utils.h
[modify] https://crrev.com/b87349ae1bb658b3d717da72a33611a5118f6a1f/extensions/test/extension_test_message_listener.cc
[modify] https://crrev.com/b87349ae1bb658b3d717da72a33611a5118f6a1f/extensions/test/extension_test_message_listener.h

Project Member

Comment 84 by bugdroid1@chromium.org, May 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c4eb630be5fdfef6fe21677d0403d74fd5e8c6ef

commit c4eb630be5fdfef6fe21677d0403d74fd5e8c6ef
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Sat May 05 06:46:07 2018

Reland: DNR tests: Use ExtensionTestMessageListener to detect background page load.

This CL relands r555005 which was reverted since it introduced flakiness. The
flakiness was most probably since we ended up creating the
ExtensionTestMessageListener too late for the
DeclarativeNetRequestBrowserTest_Packed.PageWhitelistingAPI test. The listener
was created in SetUpOnMainThread override while the InstalledLoader ends up
loading all extensions before this (during
BrowserMainLoop::CreateStartupTasks()). Hence a subsequent
ExtensionTestMessageListener::WaitUntilSatisfied() call would end up running
indefinitely. To get around this, only wait for the background page to load if
the background page isn't already ready.

BUG= 696822,  838536 

Change-Id: I2b288c6e6703e5be588d480403b362bf7c30db4e
Reviewed-on: https://chromium-review.googlesource.com/1043271
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556319}
[modify] https://crrev.com/c4eb630be5fdfef6fe21677d0403d74fd5e8c6ef/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/c4eb630be5fdfef6fe21677d0403d74fd5e8c6ef/extensions/common/api/declarative_net_request/test_utils.cc
[modify] https://crrev.com/c4eb630be5fdfef6fe21677d0403d74fd5e8c6ef/extensions/common/api/declarative_net_request/test_utils.h
[modify] https://crrev.com/c4eb630be5fdfef6fe21677d0403d74fd5e8c6ef/extensions/test/extension_test_message_listener.cc
[modify] https://crrev.com/c4eb630be5fdfef6fe21677d0403d74fd5e8c6ef/extensions/test/extension_test_message_listener.h

Project Member

Comment 85 by bugdroid1@chromium.org, May 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e7ba8040dc25a423896c82428dd268b992cb100f

commit e7ba8040dc25a423896c82428dd268b992cb100f
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Sat May 05 07:31:00 2018

DNR: Introduce helpers for the page whitelisting API in tests.

This CL introduces helpers for the page whitelisting API in the
DeclarativeNetRequestBrowserTest test fixture. Existing test code is modified to
use these helpers.

BUG= 811460 , 696822

Change-Id: I7f9ec32d2ec8edc17dc6bd546bb3d804390efbd8
Reviewed-on: https://chromium-review.googlesource.com/1039007
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556321}
[modify] https://crrev.com/e7ba8040dc25a423896c82428dd268b992cb100f/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc

Project Member

Comment 86 by bugdroid1@chromium.org, May 11 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a49cb7d6b76ce6be4a0dd5ab0a0ee8f24c6ed204

commit a49cb7d6b76ce6be4a0dd5ab0a0ee8f24c6ed204
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Fri May 11 21:51:19 2018

DNR: Merge RulesetManager::ShouldBlockRequest and ShouldRedirectRequest functions.

This CL merges RulesetManager::ShouldBlockRequest and
RulesetManager::ShouldRedirectRequest into a single function
RulesetManager::EvaluateRequest. This has the following benefits:
  - Code de-duplication b/w the two functions.
  - It's more efficient since it reduces duplicate computation.
  - Provides a more succint RulesetManager API.

BUG=696822

Change-Id: Ib724063d94ebb2f79b8b3cee7e082c628337974b
Reviewed-on: https://chromium-review.googlesource.com/1053207
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558032}
[modify] https://crrev.com/a49cb7d6b76ce6be4a0dd5ab0a0ee8f24c6ed204/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/a49cb7d6b76ce6be4a0dd5ab0a0ee8f24c6ed204/chrome/browser/extensions/api/declarative_net_request/ruleset_manager_unittest.cc
[modify] https://crrev.com/a49cb7d6b76ce6be4a0dd5ab0a0ee8f24c6ed204/extensions/browser/api/declarative_net_request/ruleset_manager.cc
[modify] https://crrev.com/a49cb7d6b76ce6be4a0dd5ab0a0ee8f24c6ed204/extensions/browser/api/declarative_net_request/ruleset_manager.h
[modify] https://crrev.com/a49cb7d6b76ce6be4a0dd5ab0a0ee8f24c6ed204/extensions/browser/api/web_request/web_request_api.cc
[modify] https://crrev.com/a49cb7d6b76ce6be4a0dd5ab0a0ee8f24c6ed204/tools/metrics/histograms/histograms.xml

Project Member

Comment 87 by bugdroid1@chromium.org, May 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/85ce2d54d31f43bdafa1aa9f7d27ccd87067e9d3

commit 85ce2d54d31f43bdafa1aa9f7d27ccd87067e9d3
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Wed May 16 00:57:19 2018

DNR: Remove test code exception for renderer side navigation.

This CL removes special exceptions made for renderer side navigation for the
DeclarativeNetRequestResourceTypeBrowserTest. This is no longer needed as
renderer side navigation is deprecated.

BUG=696822

Change-Id: I8ef1c2cae5efdbeded1a9d715fbd26b3acb884c7
Reviewed-on: https://chromium-review.googlesource.com/1056495
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558904}
[modify] https://crrev.com/85ce2d54d31f43bdafa1aa9f7d27ccd87067e9d3/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc

Project Member

Comment 88 by bugdroid1@chromium.org, May 17 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c9b93a74e6bb421e22a382fad67f1b6da614bdec

commit c9b93a74e6bb421e22a382fad67f1b6da614bdec
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Thu May 17 23:05:52 2018

DNR tests: Use an ExtensionTestMessageListener member.

This CL adds an an ExtensionTestMessageListener member to
DeclarativeNetRequestBrowserTest fixture, which listens to messages from an
extension's background page. It is initialized before the profile and extensions
are initialized. This ensures we don't miss any messages from the extension.
This removes the need to check IsBackgroundPageReady and resolves an earlier
TODO.

BUG=696822

Change-Id: Icbd9ae321c3a967b8421244acc50ccb5f7cda707
Reviewed-on: https://chromium-review.googlesource.com/1045902
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559721}
[modify] https://crrev.com/c9b93a74e6bb421e22a382fad67f1b6da614bdec/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc

Project Member

Comment 89 by bugdroid1@chromium.org, May 17 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/acb90354cf7a1330e522fab6da73fd45489b57e1

commit acb90354cf7a1330e522fab6da73fd45489b57e1
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Thu May 17 23:56:04 2018

DNR: Change IsAPIAvaible to use Feature::IsAvailableToEnvironment.

This CL resolves an earlier TODO to use Feature::IsAvailableToEnvironment() to
determine if the declarativeNetRequest API is available.

BUG=696822

Change-Id: I4a6216734aa4a434b4feb0188529a2c770ae1c79
Reviewed-on: https://chromium-review.googlesource.com/1065083
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559739}
[modify] https://crrev.com/acb90354cf7a1330e522fab6da73fd45489b57e1/extensions/common/api/declarative_net_request/utils.cc

Project Member

Comment 90 by bugdroid1@chromium.org, May 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7980135263903bea76ea057382962c42a4df1e20

commit 7980135263903bea76ea057382962c42a4df1e20
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Tue May 22 05:46:58 2018

DNR: Support "main_frame", "csp_report" resource types.

This CL adds support to the declarative net request API for "main_frame" and
"csp_report" resource types, thus fixing an existing TODO. Earlier these
resources were classified as the "other" resource type. Necessary plumbing is
added in the url_pattern_index component.

BUG=696822

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Id4528aac69c01556b9ec274fae5274c825a1e78d
Reviewed-on: https://chromium-review.googlesource.com/1056475
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Ned Nguyen <nednguyen@google.com>
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560490}
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/chrome/browser/extensions/api/declarative_net_request/rule_indexing_unittest.cc
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/components/subresource_filter/core/common/indexed_ruleset.cc
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/components/subresource_filter/tools/filter_tool.cc
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/components/subresource_filter/tools/rule_parser/BUILD.gn
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/components/subresource_filter/tools/rule_parser/rule_options.h
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/components/url_pattern_index/flat/url_pattern_index.fbs
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/components/url_pattern_index/url_pattern_index.cc
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/components/url_pattern_index/url_pattern_index.h
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/components/url_pattern_index/url_rule_util.cc
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/components/url_pattern_index/url_rule_util.h
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/components/url_pattern_index/url_rule_util_unittest.cc
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/extensions/browser/api/declarative_net_request/indexed_rule.cc
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/extensions/browser/api/declarative_net_request/indexed_rule_unittest.cc
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/extensions/browser/api/declarative_net_request/ruleset_manager.cc
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/extensions/common/api/declarative_net_request.idl
[modify] https://crrev.com/7980135263903bea76ea057382962c42a4df1e20/tools/perf/core/default_local_state.json

Project Member

Comment 91 by bugdroid1@chromium.org, May 31 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5ef1aba10cff27faa2724eb1bca6b01924ec5526

commit 5ef1aba10cff27faa2724eb1bca6b01924ec5526
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Thu May 31 03:36:55 2018

DNR: Evaluate the set of whitelisted pages for network requests.

This is the final CL implementing the DNR page whitelisting API. This does the
following:

- The set of whitelisted pages for an extension are passed to the RulesetManager
  which lives on the IO thread. This happens whenever an extension is loaded
  (through RulesMonitorService) or when the set of whitelisted pages is updated
  (through a call to chrome.declarativeNetRequest.[add/remove]WhitelistedPages).
- For each pair of (network request, extension ruleset), RulesetManager checks
  if the request is whitelisted as per the page whitelisting API. This happens
  if the top level frame url corresponding to the request has been whitelisted
  by the extension using the page whitelisting API.

BUG= 811460 , 696822
Doc=https://docs.google.com/document/d/1Fhm-t0JCc3dcmwyBX_i7TGyuJ2QjqDechv1-VCRBo5o/edit?usp=sharing

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I910c5b481dc8f0b3283374a37c1351a7d7574372
Reviewed-on: https://chromium-review.googlesource.com/1041279
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563141}
[modify] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/chrome/browser/extensions/api/declarative_net_request/ruleset_manager_unittest.cc
[add] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/chrome/test/data/extensions/declarative_net_request/child_frame_with_subresources.html
[add] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/chrome/test/data/extensions/declarative_net_request/iframe_subresources/image.png
[add] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/chrome/test/data/extensions/declarative_net_request/iframe_subresources/ping.mp3
[add] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/chrome/test/data/extensions/declarative_net_request/iframe_subresources/script.js
[add] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/chrome/test/data/extensions/declarative_net_request/iframe_subresources/style.css
[add] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/chrome/test/data/extensions/declarative_net_request/iframe_subresources/subframe.html
[add] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/chrome/test/data/extensions/declarative_net_request/whitelisting_api.html
[modify] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/extensions/browser/api/declarative_net_request/declarative_net_request_api.cc
[modify] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/extensions/browser/api/declarative_net_request/declarative_net_request_api.h
[modify] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/extensions/browser/api/declarative_net_request/rules_monitor_service.cc
[modify] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/extensions/browser/api/declarative_net_request/ruleset_manager.cc
[modify] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/extensions/browser/api/declarative_net_request/ruleset_manager.h
[modify] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/extensions/browser/api/web_request/web_request_info.cc
[modify] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/testing/buildbot/filters/mash.browser_tests.filter
[modify] https://crrev.com/5ef1aba10cff27faa2724eb1bca6b01924ec5526/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter

Blockedon: 848842
Blockedon: 858848
Blockedon: 852058
Project Member

Comment 95 by bugdroid1@chromium.org, Aug 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/27f76fa210eb8f2fa97405ab077ae9d0a2a50275

commit 27f76fa210eb8f2fa97405ab077ae9d0a2a50275
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Tue Aug 21 02:22:16 2018

Declarative Net Request: Simplify HasValidIndexedRuleset.

This CL simplifies the implementation of HasValidIndexedRuleset. It now
leverages RulesetMatcher::CreateVerifiedMatcher.

BUG=696822

Change-Id: Id12036183d01c1a533d010854590ace99dd2b946
Reviewed-on: https://chromium-review.googlesource.com/1152871
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584598}
[modify] https://crrev.com/27f76fa210eb8f2fa97405ab077ae9d0a2a50275/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc
[modify] https://crrev.com/27f76fa210eb8f2fa97405ab077ae9d0a2a50275/extensions/browser/api/declarative_net_request/test_utils.cc

Project Member

Comment 96 by bugdroid1@chromium.org, Aug 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2d16b3b5017406c70df6b5266840deb722a77076

commit 2d16b3b5017406c70df6b5266840deb722a77076
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Tue Aug 21 03:12:26 2018

Declarative Net Request: Use base::span to pass indexed ruleset data buffer.

This CL consolidates the code to use base::span to pass indexed ruleset data
buffer, doing away with FlatRulesetIndexer::SerializedData. It provides for more
readable code.

BUG=696822

Change-Id: I382eec8328fb82af74bbd49e483304329d8c4bf7
Reviewed-on: https://chromium-review.googlesource.com/1152869
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584621}
[modify] https://crrev.com/2d16b3b5017406c70df6b5266840deb722a77076/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.cc
[modify] https://crrev.com/2d16b3b5017406c70df6b5266840deb722a77076/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h
[modify] https://crrev.com/2d16b3b5017406c70df6b5266840deb722a77076/extensions/browser/api/declarative_net_request/flat_ruleset_indexer_unittest.cc
[modify] https://crrev.com/2d16b3b5017406c70df6b5266840deb722a77076/extensions/browser/api/declarative_net_request/ruleset_matcher.cc
[modify] https://crrev.com/2d16b3b5017406c70df6b5266840deb722a77076/extensions/browser/api/declarative_net_request/utils.cc
[modify] https://crrev.com/2d16b3b5017406c70df6b5266840deb722a77076/extensions/browser/api/declarative_net_request/utils.h

Blockedon: -848842
Blockedon: 878052
Blockedon: 878055
Blockedon: 878138
Blockedon: 878998
Project Member

Comment 102 by bugdroid1@chromium.org, Sep 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7041b440cc4d9e88e70c5f298d76f6d3a794e73e

commit 7041b440cc4d9e88e70c5f298d76f6d3a794e73e
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Thu Sep 20 23:58:58 2018

DNR: Cleanup ruleset manager unittests.

Cleanup ruleset manage unittests by removing the need to use net::URLRequest.
Also, make WebRequestInfo movable.

BUG=696822

Change-Id: I0a0d93406b67ff1a9338b470ef68b03062ae22fd
Reviewed-on: https://chromium-review.googlesource.com/1235331
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593009}
[modify] https://crrev.com/7041b440cc4d9e88e70c5f298d76f6d3a794e73e/chrome/browser/extensions/api/declarative_net_request/ruleset_manager_unittest.cc
[modify] https://crrev.com/7041b440cc4d9e88e70c5f298d76f6d3a794e73e/extensions/browser/api/web_request/web_request_info.cc
[modify] https://crrev.com/7041b440cc4d9e88e70c5f298d76f6d3a794e73e/extensions/browser/api/web_request/web_request_info.h

Blockedon: 889713
Project Member

Comment 104 by bugdroid1@chromium.org, Oct 1

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/106a6daf9bd5ae5a75ba5f4b5fc7ec80d3af48b4

commit 106a6daf9bd5ae5a75ba5f4b5fc7ec80d3af48b4
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Mon Oct 01 22:58:44 2018

Declarative Net Request: Enable the API on dev channel.

BUG=696822

Change-Id: I77b3ed6aba80cf1c41e27148b560fbe7094fb19e
Reviewed-on: https://chromium-review.googlesource.com/1222158
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595618}
[modify] https://crrev.com/106a6daf9bd5ae5a75ba5f4b5fc7ec80d3af48b4/extensions/common/api/_manifest_features.json
[modify] https://crrev.com/106a6daf9bd5ae5a75ba5f4b5fc7ec80d3af48b4/extensions/common/api/_permission_features.json

Blockedon: -772260
Blockedon: 894275
Project Member

Comment 107 by bugdroid1@chromium.org, Oct 31

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c5aec3ce4c12d1b79f6c6063aa41c7953c4bb467

commit c5aec3ce4c12d1b79f6c6063aa41c7953c4bb467
Author: Tsuyoshi Horo <horo@chromium.org>
Date: Wed Oct 31 03:56:17 2018

Disable DeclarativeNetRequestBrowserTest.BlockRequests_UrlFilter on win dbg

TBR=karandeepb@chromium.org

Bug: 900447,696822
Change-Id: I963f072f0c43f644e18fd29adc9d1784ea6b28e7
Reviewed-on: https://chromium-review.googlesource.com/c/1309376
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604142}
[modify] https://crrev.com/c5aec3ce4c12d1b79f6c6063aa41c7953c4bb467/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc

Project Member

Comment 108 by bugdroid1@chromium.org, Nov 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f7024b24aab99068d05d731a930973ee448b367

commit 9f7024b24aab99068d05d731a930973ee448b367
Author: Karandeep Bhatia <karandeepb@chromium.org>
Date: Tue Nov 13 23:51:53 2018

Declarative Net Request: Enable the API on beta channel.

This CL enables the Declarative Net Request API on the beta channel.

BUG=886497, 696822

Change-Id: I86b404504fede646ee5c85fb3a5724dd9e523aaa
Reviewed-on: https://chromium-review.googlesource.com/c/1330914
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607818}
[modify] https://crrev.com/9f7024b24aab99068d05d731a930973ee448b367/extensions/common/api/_manifest_features.json
[modify] https://crrev.com/9f7024b24aab99068d05d731a930973ee448b367/extensions/common/api/_permission_features.json

Project Member

Comment 109 by bugdroid1@chromium.org, Dec 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/370857d87b87cc5b216ff24afb3b682d684d4141

commit 370857d87b87cc5b216ff24afb3b682d684d4141
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Wed Dec 12 01:32:47 2018

DocServer: Increment server version.

Currently the page at
https://developer.chrome.com/extensions/declarativeNetRequest doesn't correctly
show the API availability. The API is available on beta but is's shown as being
available on trunk only.

Increment the server version which should hopefully fix the issue.

BUG=696822

Change-Id: I60b526691d582ea0a32d14cb043c9c2cc114e5b1
Reviewed-on: https://chromium-review.googlesource.com/c/1371819
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615744}
[modify] https://crrev.com/370857d87b87cc5b216ff24afb3b682d684d4141/chrome/common/extensions/docs/server2/app.yaml

Project Member

Comment 110 by bugdroid1@chromium.org, Dec 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c21b0669f4d7f56e584857a84b7be3aefa0603c7

commit c21b0669f4d7f56e584857a84b7be3aefa0603c7
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Thu Dec 13 19:42:09 2018

DNR: Don't log EvaluateRequestTime.AllExtensions w/o any active rulesets.

This CL deprecates
Extensions.DeclarativeNetRequest.EvaluateRequestTime.AllExtensions2 and
introduces a new histogram in its place. Now it is no longer logged when there
are no active rulesets.

BUG=696822

Change-Id: I86894015c176a738881724893cef1f7204aa8466
Reviewed-on: https://chromium-review.googlesource.com/c/1372418
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616397}
[modify] https://crrev.com/c21b0669f4d7f56e584857a84b7be3aefa0603c7/chrome/browser/extensions/api/declarative_net_request/ruleset_manager_unittest.cc
[modify] https://crrev.com/c21b0669f4d7f56e584857a84b7be3aefa0603c7/extensions/browser/api/declarative_net_request/ruleset_manager.cc
[modify] https://crrev.com/c21b0669f4d7f56e584857a84b7be3aefa0603c7/tools/metrics/histograms/histograms.xml

Showing comments 11 - 110 of 110 Older

Sign in to add a comment