Closed Bug 1167053 Opened 9 years ago Closed 9 years ago

Convert NetUtil.newChannel2 callsites to use new API

Categories

(Core :: DOM: Security, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla41
Tracking Status
firefox41 --- fixed

People

(Reporter: ckerschb, Assigned: ckerschb)

References

Details

Attachments

(3 files, 2 obsolete files)

We should convert all callsites of NetUtil.newChannel2 to actually use the new API [1] and eliminate newChannel2. We should further remove asyncFetch2 before people start using it.

Further, once we start moving security checks into AsyncOpen2 (see Bug 1143922) we need to pass a security flag (e.g. REQUIRE_SAME_ORIGIN, REQUIRE_CORS, etc). Using the API defined here [1] allows us to use a default security flag without for most of the callsites without having to update all the callsites over and over.

[1] http://mxr.mozilla.org/mozilla-central/source/netwerk/base/NetUtil.jsm#372
Assignee: nobody → mozilla
Status: NEW → ASSIGNED
Depends on: 1125618, 1087720
Attachment #8608502 - Flags: review?(paolo.mozmail)
Attachment #8608502 - Flags: review?(jonas)
Attachment #8608503 - Flags: review?(paolo.mozmail)
Attachment #8608503 - Flags: review?(jonas)
Attachment #8608504 - Flags: review?(paolo.mozmail)
Attachment #8608504 - Flags: review?(jonas)
Comment on attachment 8608502 [details] [diff] [review]
bug_1167053_convert_netutiljsm.patch

Thanks for doing this work. Much improved code base!

If you're landing this as multiple changesets, ideally this one should land last.
Attachment #8608502 - Flags: review?(paolo.mozmail) → review+
Comment on attachment 8608503 [details] [diff] [review]
bug_1167053_convert_netutiljsm_asyncFetch2_callsites.patch

Review of attachment 8608503 [details] [diff] [review]:
-----------------------------------------------------------------

r+ with changes.

::: toolkit/devtools/transport/tests/unit/test_client_server_bulk.js
@@ +249,5 @@
>  
>    // Ensure output file contents actually match
>    let compareDeferred = promise.defer();
> +  NetUtil.asyncFetch({
> +    uri: NetUtil.newURI(getTestTempFile("bulk-input")),

That should be "bulk-output".

::: toolkit/devtools/transport/tests/unit/test_queue.js
@@ +151,5 @@
>  
>    // Ensure output file contents actually match
>    let compareDeferred = promise.defer();
> +  NetUtil.asyncFetch({
> +    uri: NetUtil.newURI(getTestTempFile("bulk-input")),

Also here.
Attachment #8608503 - Flags: review?(paolo.mozmail) → review+
Comment on attachment 8608504 [details] [diff] [review]
bug_1167053_convert_netutiljsm_newChannel2_callsites.patch

Review of attachment 8608504 [details] [diff] [review]:
-----------------------------------------------------------------

r+ with changes.

::: addon-sdk/source/lib/sdk/net/url.js
@@ +34,5 @@
>  function readURI(uri, options) {
>    options = options || {};
>    let charset = options.charset || 'UTF-8';
>  
> +  let channel = NetUtil.newChannel({uri: uri, loadUsingSystemPrincipal: true});

In this case (and below) you need NetUtil.newURI(uri, charset) to honor the charset option.

(I'm not sure how may callsites use it however, it's probably close to zero).

::: addon-sdk/source/lib/toolkit/loader.js
@@ +178,5 @@
>      uri = proto.resolveURI(nsURI);
>    }
>  
> +  let stream = NetUtil.newChannel(
> +    {uri: uri, loadUsingSystemPrincipal: true}).open();

nit: In cases like this you may use the shorthand { uri, loadUsingSystemPrincipal: true }.

::: browser/devtools/performance/modules/io.js
@@ +77,5 @@
>      let deferred = promise.defer();
>  
> +    let channel = NetUtil.newChannel({
> +      uri: NetUtil.newURI(file),
> +      loadUsingSystemPrincipal: true});

Hehe, it's curious how this module called "performance/modules/io.js" still does main-thread I/O itself :-)

Can you file a "[good next bug]" to convert this (and maybe other devtools sites) to use OS.File? The functions are already async so it should be easy for a new contributor.

::: browser/extensions/pdfjs/content/PdfStreamConverter.jsm
@@ +158,5 @@
>  
>  function createNewChannel(uri, node, principal) {
> +  return NetUtil.newChannel({
> +    uri: uri,
> +    loadingPrincipal: principal,

Missing loadingNode.

::: dom/apps/TrustedHostedAppsUtils.jsm
@@ +206,5 @@
> +    let mRequestChannel = NetUtil.newChannel({
> +      uri: aApp.manifestURL,
> +      loadingPrincipal: principal,
> +      contentPolicyType: Ci.nsIContentPolicy.TYPE_OTHER})
> +      .QueryInterface(Ci.nsIHttpChannel);

nit: closing brace on next line aligned with "let" (same below)

::: dom/apps/Webapps.jsm
@@ +3527,5 @@
>                        appURI, aNewApp.localId, false);
>  
>      if (aIsLocalFileInstall) {
> +      requestChannel = NetUtil.newChannel({
> +        uri: aFullPackagePath,

I assume aFullPackagePath is an nsIURI or URI string?
Attachment #8608504 - Flags: review?(paolo.mozmail) → review+
Thanks Paolo for the quick turnaround time - incorporated all of your suggestions.
Attachment #8608503 - Attachment is obsolete: true
Attachment #8608504 - Attachment is obsolete: true
Attachment #8608503 - Flags: review?(jonas)
Attachment #8608504 - Flags: review?(jonas)
Attachment #8608830 - Flags: review?(jonas)
Comment on attachment 8608502 [details] [diff] [review]
bug_1167053_convert_netutiljsm.patch

Review of attachment 8608502 [details] [diff] [review]:
-----------------------------------------------------------------

Push this last
Attachment #8608502 - Flags: review?(jonas) → review+
Comment on attachment 8608830 [details] [diff] [review]
bug_1167053_convert_netutiljsm_asyncFetch2_callsites.patch

Chattet with Jonas on IRC - he is fine with what we are doing here and the reviews of Paolo.
Attachment #8608830 - Flags: review?(jonas) → review+
Attachment #8608832 - Flags: review?(jonas) → review+
Commits pushed to master at https://github.com/mozilla/addon-sdk

https://github.com/mozilla/addon-sdk/commit/137928d76afd4e95860629370d5481bf9ad44754
Bug 1167053 - Convert NetUtil.newChannel2 callsites to use new API - update asyncFetch2 (r=sicking,paolo)

https://github.com/mozilla/addon-sdk/commit/749b2b7fe5901ef1fd90e08e1c331f88420e422d
Bug 1167053 - Convert NetUtil.newChannel2 callsites to use new API - update newChannel2 (r=sicking,paolo)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: