Closed Bug 1275746 Opened 8 years ago Closed 8 years ago

Don't allow empty host name for URLTYPE_AUTHORITY URLs

Categories

(Core :: Networking, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla54
Tracking Status
firefox50 --- wontfix
firefox51 --- wontfix
firefox52 --- wontfix
firefox53 --- wontfix
firefox54 --- fixed

People

(Reporter: valentin, Assigned: valentin)

References

(Depends on 1 open bug)

Details

(Keywords: addon-compat, dev-doc-needed, site-compat, Whiteboard: [necko-active])

Attachments

(4 files, 2 obsolete files)

The following calls should throw an error.
> new URL("http:") // without a base
> new URL("http://")
* Return NS_ERROR_MALFORMED_URI if mURLType is URLTYPE_AUTHORITY and the hostname is empty.
* Make sure nsStandardURL::SetFile calls init with the correct arguments

MozReview-Commit-ID: 7t3mZtAbMF3
Attachment #8756600 - Flags: review?(mcmanus)
Comment on attachment 8756600 [details] [diff] [review]
Don't allow empty host name for URLTYPE_AUTHORITY URLs

We can hold off on the review for now. There are a bunch of tests I need to fix first.
Attachment #8756600 - Flags: review?(mcmanus)
* Return NS_ERROR_MALFORMED_URI if mURLType is URLTYPE_AUTHORITY and the hostname is empty.
* Make sure nsStandardURL::SetFile calls init with the correct arguments

MozReview-Commit-ID: 7t3mZtAbMF3
Attachment #8768771 - Flags: review?(mcmanus)
Attachment #8756600 - Attachment is obsolete: true
Comment on attachment 8768772 [details] [diff] [review]
Fix tests that assume a HTTP url without a hostname is valid

:jrgm for services/fxaccounts
:jdm for extensions/cookie/
:smaug for docshell and dom
:MattN for toolkit/
Attachment #8768772 - Flags: review?(jrgm)
Attachment #8768772 - Flags: review?(josh)
Attachment #8768772 - Flags: review?(bugs)
Attachment #8768772 - Flags: review?(MattN+bmo)
I'm not really sure how this test works. This patch makes it pass again, but I need you to confirm if the new values are correct.
Attachment #8768783 - Flags: review?(MattN+bmo)
Comment on attachment 8768772 [details] [diff] [review]
Fix tests that assume a HTTP url without a hostname is valid

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

Looks absolutely awesome!!!!!


Um, what is it? Probably intended someome else to review this. But I'm r+
Attachment #8768772 - Flags: review?(jrgm) → review+
(In reply to John Morrison [:jrgm] from comment #12)
> Comment on attachment 8768772 [details] [diff] [review]
> Fix tests that assume a HTTP url without a hostname is valid
> 
> Review of attachment 8768772 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> Looks absolutely awesome!!!!!
> 
> 
> Um, what is it? Probably intended someome else to review this. But I'm r+

This changes tests that use http:// as a valid URL. The services/fxaccount tests now use http://domain.dummy instead.
Comment on attachment 8768772 [details] [diff] [review]
Fix tests that assume a HTTP url without a hostname is valid

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

r=me for toolkit/components/passwordmgr/test/unit/test_logins_search.js.

I'll review test_avoid_middle_complete.js in the other attachment (which should be folded into this commit before landing to avoid the intermediate TODO)
Attachment #8768772 - Flags: review?(MattN+bmo) → review+
Comment on attachment 8768783 [details] [diff] [review]
Fix and enable test_searchEngine_different_scheme_noautofill

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

::: toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js
@@ +118,5 @@
>    do_print("Should not autoFill search engine if search string has a different scheme.");
>    yield check_autocomplete({
>      search: "http://pie",
> +    autofilled: "http://pie.search",
> +    completed: "https://pie.search"

I think this is incorrect (or at least a change in behaviour) and I don't have enough context so I think :mak should review it.
Attachment #8768783 - Flags: review?(MattN+bmo) → review?(mak77)
Attachment #8768772 - Flags: review?(josh) → review+
Comment on attachment 8768772 [details] [diff] [review]
Fix tests that assume a HTTP url without a hostname is valid

gijs should review the docshell part (test_nsDefaultURIFixup_info.js).
(all that stuff should really live somewhere in browser/ or toolkit/)
Attachment #8768772 - Flags: review?(gijskruitbosch+bugs)
Attachment #8768772 - Flags: review?(bugs)
Attachment #8768772 - Flags: review+
Comment on attachment 8768772 [details] [diff] [review]
Fix tests that assume a HTTP url without a hostname is valid

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

Test changes to nsDefaultURIFixup_info.js look OK to me.

For moving to browser: bug 1057531.
Attachment #8768772 - Flags: review?(gijskruitbosch+bugs) → review+
Marco, I'd also appreciate your help with a test that fails with my patch, and I don't understand why:
The test is test_sort-date-site-grouping.js | test_sort_date_site_grouping()
 07:19:13     INFO -  "Found children:"
 07:19:13     INFO -  "file:///directory/1"
 07:19:13     INFO -  "Expected:"
 07:19:13     INFO -  "file:///directory/1"
 07:19:13     INFO -  "file:///directory/3" 

https://treeherder.mozilla.org/logviewer.html#?job_id=23495414&repo=try#L8116

I'm not exactly sure why this would be affected.
Flags: needinfo?(mak77)
Attachment #8768771 - Flags: review?(mcmanus) → review+
Comment on attachment 8768783 [details] [diff] [review]
Fix and enable test_searchEngine_different_scheme_noautofill

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

::: toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js
@@ +118,5 @@
>    do_print("Should not autoFill search engine if search string has a different scheme.");
>    yield check_autocomplete({
>      search: "http://pie",
> +    autofilled: "http://pie.search",
> +    completed: "https://pie.search"

I think there is a problem here:
http://searchfox.org/mozilla-central/source/toolkit/components/places/UnifiedComplete.js#1155

let prefixURI = NetUtil.newURI(this._strippedPrefix);
Will try to build an "http://" url, that your code disallows. it could instead do
let prefixURI = NetUtil.newURI(this._strippedPrefix + match.token);

Does this fix the test?
Now, I would have expected the newURI call to throw and the test to hang, rather than completing... Is this URI not expected to throw?

(fwiw, this specific feature is disabled by default, so not a blocking bug for release)
Attachment #8768783 - Flags: review?(mak77) → review-
ah wait, we have a blind try/catch there. We should also return false in the catch clause.
(In reply to Valentin Gosu [:valentin] from comment #18)
> Marco, I'd also appreciate your help with a test that fails with my patch,
> and I don't understand why:
> The test is test_sort-date-site-grouping.js | test_sort_date_site_grouping()
>  07:19:13     INFO -  "Found children:"
>  07:19:13     INFO -  "file:///directory/1"
>  07:19:13     INFO -  "Expected:"
>  07:19:13     INFO -  "file:///directory/1"
>  07:19:13     INFO -  "file:///directory/3" 
> 
> https://treeherder.mozilla.org/logviewer.html#?job_id=23495414&repo=try#L8116
> 
> I'm not exactly sure why this would be affected.

The log is pointing at a problem at
http://searchfox.org/mozilla-central/source/toolkit/components/places/nsNavHistory.cpp#957 (NS_ENSURE_SUCCESS FTW!) and indeed
  nsAutoCString fakeURL("http://");
  fakeURL.Append(aHostName);
  nsCOMPtr<nsIURI> uri;
  nsresult rv = NS_NewURI(getter_AddRefs(uri), fakeURL);

We are entering this with an empty aHostName.
I think we should bailout early in AsciiHostNameFromHostString, that should return an empty string that is what we were doing before.
if (aHostName.isEmpty()) {
  return NS_OK;
}
Flags: needinfo?(mak77)
Comment on attachment 8768783 [details] [diff] [review]
Fix and enable test_searchEngine_different_scheme_noautofill

(In reply to Marco Bonardo [::mak] from comment #19)

Thanks a lot for your help with this.

> let prefixURI = NetUtil.newURI(this._strippedPrefix);
> Will try to build an "http://" url, that your code disallows. it could
> instead do
> let prefixURI = NetUtil.newURI(this._strippedPrefix + match.token);

Unfortunately this breaks other tests.

(In reply to Marco Bonardo [::mak] from comment #20)
> ah wait, we have a blind try/catch there. We should also return false in the
> catch clause.

This also breaks some of the tests.

I'll land this as it is, and file a new bug for fixing this.
Thanks!
Attachment #8768783 - Attachment is obsolete: true
Attachment #8770509 - Flags: review?(mak77) → review+
(In reply to Valentin Gosu [:valentin] from comment #24)
> (In reply to Marco Bonardo [::mak] from comment #20)
> > ah wait, we have a blind try/catch there. We should also return false in the
> > catch clause.
> 
> This also breaks some of the tests.
> 
> I'll land this as it is, and file a new bug for fixing this.

Strange. But it's fine, please file the bug and we can handle it apart.
https://hg.mozilla.org/integration/mozilla-inbound/rev/a324f9f97bf5a7d5d54844fcffacc2fecaff6605
Bug 1275746 - Don't allow empty host name for URLTYPE_AUTHORITY URLs r=mcmanus

https://hg.mozilla.org/integration/mozilla-inbound/rev/759531230ceca953b4a737cd9e2cb43a3f7c9607
Bug 1275746 - Fix tests that assume a HTTP url without a hostname is valid r=jrgm,MattN,jdm,gijs,smaug

https://hg.mozilla.org/integration/mozilla-inbound/rev/b31c2afa920a8f74ddddf0dc8d3eed7fef4ce795
Bug 1275746 - nsNavHistory::AsciiHostNameFromHostString return empty string if host is empty r=mak
Blocks: 1286525
Depends on: 1305204
Depends on: 1305316
See bug 1305316. This might need to show up in the list of things add-on devs should be aware of in Firefox 50. Andreas, can you help make sure that happens? Thanks!
Flags: needinfo?(awagner)
Keywords: addon-compat
I think the `addon-compat` keyword is enough for Jorge to track this.
Flags: needinfo?(awagner)
I added a note to the compat blog post: https://blog.mozilla.org/addons/2016/09/01/compatibility-for-firefox-50/. It's been out for about a month, though. On the other hand, it looks like this would affect a small amount of add-ons.
Blocks: 918735
This was backed out in bug 1305204.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: mozilla50 → ---
Depends on: 1319078
https://hg.mozilla.org/integration/mozilla-inbound/rev/97214e3bf73dbd6a11857f3fd2c2719148cfbc30
Bug 1275746 - Don't allow empty host name for URLTYPE_AUTHORITY URLs r=mcmanus

https://hg.mozilla.org/integration/mozilla-inbound/rev/0b09769075afeffe18d71e41d15911f9cfeeaa5f
Bug 1275746 - Fix tests that assume a HTTP url without a hostname is valid r=bz,MattN,jdm,markh

https://hg.mozilla.org/integration/mozilla-inbound/rev/ccf75f2fa112601fad892b26118381b0634ed381
Bug 1275746 - nsNavHistory::AsciiHostNameFromHostString return empty string if host is empty r=mak
Backed out for failing xpcshell test test_avoid_middle_complete.js:

https://hg.mozilla.org/integration/mozilla-inbound/rev/8fa9b9b607ff63adc8307ffabf483dd974ace080
https://hg.mozilla.org/integration/mozilla-inbound/rev/d63f6985b41e8b950e7d905a3e9d7442d5009b5b
https://hg.mozilla.org/integration/mozilla-inbound/rev/706512864869a1652db3538f82f037e7da782b18

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=ccf75f2fa112601fad892b26118381b0634ed381
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=69937918&repo=mozilla-inbound

[task 2017-01-18T13:50:06.312379Z] 13:50:06     INFO -  TEST-START | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js
[task 2017-01-18T13:50:11.168068Z] 13:50:11  WARNING -  TEST-UNEXPECTED-FAIL | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | xpcshell return code: 0
[task 2017-01-18T13:50:11.168356Z] 13:50:11     INFO -  TEST-INFO took 4855ms
[task 2017-01-18T13:50:11.171223Z] 13:50:11     INFO -  >>>>>>>
[task 2017-01-18T13:50:11.176454Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file /home/worker/workspace/build/src/toolkit/crashreporter/nsExceptionHandler.cpp, line 2861
[task 2017-01-18T13:50:11.178181Z] 13:50:11     INFO -  (xpcshell/head.js) | test MAIN run_test pending (1)
[task 2017-01-18T13:50:11.179838Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 0 pending (2)
[task 2017-01-18T13:50:11.181455Z] 13:50:11     INFO -  (xpcshell/head.js) | test MAIN run_test finished (2)
[task 2017-01-18T13:50:11.182995Z] 13:50:11     INFO -  running event loop
[task 2017-01-18T13:50:11.184645Z] 13:50:11     INFO -  PROCESS | 9031 | Couldn't convert chrome URL: chrome://branding/locale/brand.properties
[task 2017-01-18T13:50:11.186340Z] 13:50:11     INFO -  PROCESS | 9031 | Couldn't convert chrome URL: chrome://branding/locale/brand.properties
[task 2017-01-18T13:50:11.188135Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520012: file /home/worker/workspace/build/src/netwerk/base/nsIOService.cpp, line 793
[task 2017-01-18T13:50:11.189971Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520012: file /home/worker/workspace/build/src/netwerk/base/nsNetUtilInlines.h, line 180
[task 2017-01-18T13:50:11.196177Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: Could not get the program name for a cubeb stream.: 'NS_SUCCEEDED(rv)', file /home/worker/workspace/build/src/dom/media/CubebUtils.cpp, line 203
[task 2017-01-18T13:50:11.197960Z] 13:50:11     INFO -  toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | Starting ensure_search_engine
[task 2017-01-18T13:50:11.199624Z] 13:50:11     INFO -  (xpcshell/head.js) | test ensure_search_engine pending (2)
[task 2017-01-18T13:50:11.201234Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 0 finished (2)
[task 2017-01-18T13:50:11.202892Z] 13:50:11     INFO -  "CONSOLE_MESSAGE: (info) No chrome package registered for chrome://branding/locale/brand.properties"
[task 2017-01-18T13:50:11.204759Z] 13:50:11     INFO -  "CONSOLE_MESSAGE: (info) No chrome package registered for chrome://branding/locale/brand.properties"
[task 2017-01-18T13:50:11.206734Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80040111: file /home/worker/workspace/build/src/netwerk/protocol/res/SubstitutingProtocolHandler.cpp, line 251
[task 2017-01-18T13:50:11.208733Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80040111: file /home/worker/workspace/build/src/netwerk/protocol/res/SubstitutingProtocolHandler.cpp, line 251
[task 2017-01-18T13:50:11.210645Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80040111: file /home/worker/workspace/build/src/netwerk/base/nsIOService.cpp, line 793
[task 2017-01-18T13:50:11.212541Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: GetDefaultCharsetForLocale: need to add multi locale support: file /home/worker/workspace/build/src/intl/locale/unix/nsUNIXCharset.cpp, line 98
[task 2017-01-18T13:50:11.214719Z] 13:50:11     INFO -  PROCESS | 9031 | JavaScript strict warning: resource://gre/components/nsSearchService.js, line 809: ReferenceError: reference to undefined property "name"
[task 2017-01-18T13:50:11.220035Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 1 pending (2)
[task 2017-01-18T13:50:11.221785Z] 13:50:11     INFO -  (xpcshell/head.js) | test ensure_search_engine finished (2)
[task 2017-01-18T13:50:11.223740Z] 13:50:11     INFO -  "CONSOLE_MESSAGE: (warn) [JavaScript Warning: "ReferenceError: reference to undefined property "name"" {file: "resource://gre/components/nsSearchService.js" line: 809}]"
[task 2017-01-18T13:50:11.225610Z] 13:50:11     INFO -  toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | Starting test_prefix_space_noautofill
[task 2017-01-18T13:50:11.227335Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_prefix_space_noautofill pending (2)
[task 2017-01-18T13:50:11.229015Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 1 finished (2)
[task 2017-01-18T13:50:11.230672Z] 13:50:11     INFO -  "Should not try to autoFill if search string contains a space"
[task 2017-01-18T13:50:11.232560Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_prefix_space_noautofill - [test_prefix_space_noautofill : 159] Selection starts at end - 3 == 3
[task 2017-01-18T13:50:11.234547Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_prefix_space_noautofill - [test_prefix_space_noautofill : 160] Selection ends at the end - 3 == 3
[task 2017-01-18T13:50:11.236309Z] 13:50:11     INFO -  "Searching for: ' mo'"
[task 2017-01-18T13:50:11.243958Z] 13:50:11     INFO -  "onSearchBegin received"
[task 2017-01-18T13:50:11.245552Z] 13:50:11     INFO -  "onSearchComplete received"
[task 2017-01-18T13:50:11.247495Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_prefix_space_noautofill - [test_prefix_space_noautofill : 187] All searches started - 1 == 1
[task 2017-01-18T13:50:11.249511Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_prefix_space_noautofill - [test_prefix_space_noautofill : 254] Autofilled value is correct - " mo" == " mo"
[task 2017-01-18T13:50:11.251540Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_prefix_space_noautofill - [test_prefix_space_noautofill : 261] Completed value is correct - " mo" == " mo"
[task 2017-01-18T13:50:11.253441Z] 13:50:11     INFO -  PROCESS | 9031 | JavaScript strict warning: resource://gre/modules/Bookmarks.jsm, line 1595: ReferenceError: reference to undefined property "source"
[task 2017-01-18T13:50:11.255263Z] 13:50:11     INFO -  "CONSOLE_MESSAGE: (warn) [JavaScript Warning: "ReferenceError: reference to undefined property "source"" {file: "resource://gre/modules/Bookmarks.jsm" line: 1595}]"
[task 2017-01-18T13:50:11.257142Z] 13:50:11     INFO -  PROCESS | 9031 | JavaScript strict warning: resource://gre/modules/Bookmarks.jsm, line 489: ReferenceError: reference to undefined property "source"
[task 2017-01-18T13:50:11.259116Z] 13:50:11     INFO -  "CONSOLE_MESSAGE: (warn) [JavaScript Warning: "ReferenceError: reference to undefined property "source"" {file: "resource://gre/modules/Bookmarks.jsm" line: 489}]"
[task 2017-01-18T13:50:11.260778Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 2 pending (2)
[task 2017-01-18T13:50:11.262456Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_prefix_space_noautofill finished (2)
[task 2017-01-18T13:50:11.264293Z] 13:50:11     INFO -  toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | Starting test_trailing_space_noautofill
[task 2017-01-18T13:50:11.266016Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_trailing_space_noautofill pending (2)
[task 2017-01-18T13:50:11.267659Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 2 finished (2)
[task 2017-01-18T13:50:11.269329Z] 13:50:11     INFO -  "Should not try to autoFill if search string contains a space"
[task 2017-01-18T13:50:11.271557Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_trailing_space_noautofill - [test_trailing_space_noautofill : 159] Selection starts at end - 3 == 3
[task 2017-01-18T13:50:11.273802Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_trailing_space_noautofill - [test_trailing_space_noautofill : 160] Selection ends at the end - 3 == 3
[task 2017-01-18T13:50:11.275788Z] 13:50:11     INFO -  "Searching for: 'mo '"
[task 2017-01-18T13:50:11.277732Z] 13:50:11     INFO -  "onSearchBegin received"
[task 2017-01-18T13:50:11.283941Z] 13:50:11     INFO -  "onSearchComplete received"
[task 2017-01-18T13:50:11.285917Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_trailing_space_noautofill - [test_trailing_space_noautofill : 187] All searches started - 1 == 1
[task 2017-01-18T13:50:11.287936Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_trailing_space_noautofill - [test_trailing_space_noautofill : 254] Autofilled value is correct - "mo " == "mo "
[task 2017-01-18T13:50:11.289956Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_trailing_space_noautofill - [test_trailing_space_noautofill : 261] Completed value is correct - "mo " == "mo "
[task 2017-01-18T13:50:11.291632Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 3 pending (2)
[task 2017-01-18T13:50:11.293391Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_trailing_space_noautofill finished (2)
[task 2017-01-18T13:50:11.295164Z] 13:50:11     INFO -  toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | Starting test_searchEngine_autofill
[task 2017-01-18T13:50:11.297050Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_searchEngine_autofill pending (2)
[task 2017-01-18T13:50:11.298746Z] 13:50:11     INFO -  "Should autoFill search engine if search string does not contains a space"
[task 2017-01-18T13:50:11.300443Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 3 finished (2)
[task 2017-01-18T13:50:11.302373Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_autofill - [test_searchEngine_autofill : 159] Selection starts at end - 2 == 2
[task 2017-01-18T13:50:11.304337Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_autofill - [test_searchEngine_autofill : 160] Selection ends at the end - 2 == 2
[task 2017-01-18T13:50:11.310448Z] 13:50:11     INFO -  "Searching for: 'ca'"
[task 2017-01-18T13:50:11.312156Z] 13:50:11     INFO -  "onSearchBegin received"
[task 2017-01-18T13:50:11.313736Z] 13:50:11     INFO -  "onSearchComplete received"
[task 2017-01-18T13:50:11.315734Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_autofill - [test_searchEngine_autofill : 187] All searches started - 1 == 1
[task 2017-01-18T13:50:11.317736Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_autofill - [test_searchEngine_autofill : 254] Autofilled value is correct - "cake.search" == "cake.search"
[task 2017-01-18T13:50:11.319790Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_autofill - [test_searchEngine_autofill : 261] Completed value is correct - "http://cake.search" == "http://cake.search"
[task 2017-01-18T13:50:11.321483Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 4 pending (2)
[task 2017-01-18T13:50:11.323230Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_searchEngine_autofill finished (2)
[task 2017-01-18T13:50:11.325076Z] 13:50:11     INFO -  toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | Starting test_searchEngine_prefix_space_noautofill
[task 2017-01-18T13:50:11.326823Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_searchEngine_prefix_space_noautofill pending (2)
[task 2017-01-18T13:50:11.328519Z] 13:50:11     INFO -  "Should not try to autoFill search engine if search string contains a space"
[task 2017-01-18T13:50:11.330394Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 4 finished (2)
[task 2017-01-18T13:50:11.332992Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_prefix_space_noautofill - [test_searchEngine_prefix_space_noautofill : 159] Selection starts at end - 3 == 3
[task 2017-01-18T13:50:11.335406Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_prefix_space_noautofill - [test_searchEngine_prefix_space_noautofill : 160] Selection ends at the end - 3 == 3
[task 2017-01-18T13:50:11.339957Z] 13:50:11     INFO -  "Searching for: ' cu'"
[task 2017-01-18T13:50:11.341651Z] 13:50:11     INFO -  "onSearchBegin received"
[task 2017-01-18T13:50:11.343264Z] 13:50:11     INFO -  "onSearchComplete received"
[task 2017-01-18T13:50:11.345292Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_prefix_space_noautofill - [test_searchEngine_prefix_space_noautofill : 187] All searches started - 1 == 1
[task 2017-01-18T13:50:11.347332Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_prefix_space_noautofill - [test_searchEngine_prefix_space_noautofill : 254] Autofilled value is correct - " cu" == " cu"
[task 2017-01-18T13:50:11.349369Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_prefix_space_noautofill - [test_searchEngine_prefix_space_noautofill : 261] Completed value is correct - " cu" == " cu"
[task 2017-01-18T13:50:11.351066Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 5 pending (2)
[task 2017-01-18T13:50:11.353172Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_searchEngine_prefix_space_noautofill finished (2)
[task 2017-01-18T13:50:11.356124Z] 13:50:11     INFO -  toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | Starting test_searchEngine_trailing_space_noautofill
[task 2017-01-18T13:50:11.357916Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_searchEngine_trailing_space_noautofill pending (2)
[task 2017-01-18T13:50:11.359809Z] 13:50:11     INFO -  "Should not try to autoFill search engine if search string contains a space"
[task 2017-01-18T13:50:11.361741Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 5 finished (2)
[task 2017-01-18T13:50:11.364290Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_trailing_space_noautofill - [test_searchEngine_trailing_space_noautofill : 159] Selection starts at end - 3 == 3
[task 2017-01-18T13:50:11.366543Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_trailing_space_noautofill - [test_searchEngine_trailing_space_noautofill : 160] Selection ends at the end - 3 == 3
[task 2017-01-18T13:50:11.371914Z] 13:50:11     INFO -  "Searching for: 'ba '"
[task 2017-01-18T13:50:11.373580Z] 13:50:11     INFO -  "onSearchBegin received"
[task 2017-01-18T13:50:11.375167Z] 13:50:11     INFO -  "onSearchComplete received"
[task 2017-01-18T13:50:11.377226Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_trailing_space_noautofill - [test_searchEngine_trailing_space_noautofill : 187] All searches started - 1 == 1
[task 2017-01-18T13:50:11.379280Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_trailing_space_noautofill - [test_searchEngine_trailing_space_noautofill : 254] Autofilled value is correct - "ba " == "ba "
[task 2017-01-18T13:50:11.381347Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_trailing_space_noautofill - [test_searchEngine_trailing_space_noautofill : 261] Completed value is correct - "ba " == "ba "
[task 2017-01-18T13:50:11.383033Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 6 pending (2)
[task 2017-01-18T13:50:11.384789Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_searchEngine_trailing_space_noautofill finished (2)
[task 2017-01-18T13:50:11.386587Z] 13:50:11     INFO -  toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | Starting test_searchEngine_www_noautofill
[task 2017-01-18T13:50:11.388483Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_searchEngine_www_noautofill pending (2)
[task 2017-01-18T13:50:11.390502Z] 13:50:11     INFO -  "Should not autoFill search engine if search string contains www. but engine doesn't"
[task 2017-01-18T13:50:11.392503Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 6 finished (2)
[task 2017-01-18T13:50:11.396253Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_www_noautofill - [test_searchEngine_www_noautofill : 159] Selection starts at end - 7 == 7
[task 2017-01-18T13:50:11.398305Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_www_noautofill - [test_searchEngine_www_noautofill : 160] Selection ends at the end - 7 == 7
[task 2017-01-18T13:50:11.399881Z] 13:50:11     INFO -  "Searching for: 'www.ham'"
[task 2017-01-18T13:50:11.401400Z] 13:50:11     INFO -  "onSearchBegin received"
[task 2017-01-18T13:50:11.403106Z] 13:50:11     INFO -  "onSearchComplete received"
[task 2017-01-18T13:50:11.407878Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_www_noautofill - [test_searchEngine_www_noautofill : 187] All searches started - 1 == 1
[task 2017-01-18T13:50:11.409950Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_www_noautofill - [test_searchEngine_www_noautofill : 254] Autofilled value is correct - "www.ham" == "www.ham"
[task 2017-01-18T13:50:11.412023Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_www_noautofill - [test_searchEngine_www_noautofill : 261] Completed value is correct - "www.ham" == "www.ham"
[task 2017-01-18T13:50:11.414180Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 7 pending (2)
[task 2017-01-18T13:50:11.415903Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_searchEngine_www_noautofill finished (2)
[task 2017-01-18T13:50:11.418008Z] 13:50:11     INFO -  TEST-SKIP | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_different_scheme_noautofill - test_searchEngine_different_scheme_noautofill skipped because the following conditions were met: (true)
[task 2017-01-18T13:50:11.419643Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test pending (2)
[task 2017-01-18T13:50:11.428318Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 7 finished (2)
[task 2017-01-18T13:50:11.430054Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 8 pending (2)
[task 2017-01-18T13:50:11.432126Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_searchEngine_different_scheme_noautofill finished (2)
[task 2017-01-18T13:50:11.435978Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test finished (1)
[task 2017-01-18T13:50:11.437567Z] 13:50:11     INFO -  exiting test
[task 2017-01-18T13:50:11.439383Z] 13:50:11     INFO -  toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | Starting test_searchEngine_matching_prefix_autofill
[task 2017-01-18T13:50:11.441168Z] 13:50:11     INFO -  (xpcshell/head.js) | test test_searchEngine_matching_prefix_autofill pending (1)
[task 2017-01-18T13:50:11.442864Z] 13:50:11     INFO -  "Should autoFill search engine if search string has matching prefix."
[task 2017-01-18T13:50:11.444902Z] 13:50:11     INFO -  (xpcshell/head.js) | test run_next_test 8 finished (1)
[task 2017-01-18T13:50:11.446799Z] 13:50:11     INFO -  exiting test
[task 2017-01-18T13:50:11.450001Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_matching_prefix_autofill - [test_searchEngine_matching_prefix_autofill : 159] Selection starts at end - 13 == 13
[task 2017-01-18T13:50:11.452064Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_matching_prefix_autofill - [test_searchEngine_matching_prefix_autofill : 160] Selection ends at the end - 13 == 13
[task 2017-01-18T13:50:11.453675Z] 13:50:11     INFO -  "Searching for: 'http://www.be'"
[task 2017-01-18T13:50:11.455557Z] 13:50:11     INFO -  "onSearchBegin received"
[task 2017-01-18T13:50:11.457520Z] 13:50:11     INFO -  "onSearchComplete received"
[task 2017-01-18T13:50:11.459913Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_matching_prefix_autofill - [test_searchEngine_matching_prefix_autofill : 187] All searches started - 1 == 1
[task 2017-01-18T13:50:11.468338Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_matching_prefix_autofill - [test_searchEngine_matching_prefix_autofill : 254] Autofilled value is correct - "http://www.bean.search" == "http://www.bean.search"
[task 2017-01-18T13:50:11.470445Z] 13:50:11     INFO -  TEST-PASS | toolkit/components/places/tests/unifiedcomplete/test_avoid_middle_complete.js | test_searchEngine_matching_prefix_autofill - [test_searchEngine_matching_prefix_autofill : 261] Completed value is correct - "http://www.bean.search" == "http://www.bean.search"
[task 2017-01-18T13:50:11.472165Z] 13:50:11     INFO -  "Should autoFill search engine if search string has www prefix."
[task 2017-01-18T13:50:11.474081Z] 13:50:11     INFO -  Unexpected exception Error: places.sqlite#0: cannot execute operation promiseAsyncUpdates, the connection is already closing at resource://gre/modules/Sqlite.jsm:321
[task 2017-01-18T13:50:11.475770Z] 13:50:11     INFO -  executeBeforeShutdown@resource://gre/modules/Sqlite.jsm:321:13
[task 2017-01-18T13:50:11.477451Z] 13:50:11     INFO -  executeBeforeShutdown@resource://gre/modules/Sqlite.jsm:1240:12
[task 2017-01-18T13:50:11.479159Z] 13:50:11     INFO -  withConnectionWrapper/<@resource://gre/modules/PlacesUtils.jsm:1455:14
[task 2017-01-18T13:50:11.480876Z] 13:50:11     INFO -  withConnectionWrapper@resource://gre/modules/PlacesUtils.jsm:1453:12
[task 2017-01-18T13:50:11.482583Z] 13:50:11     INFO -  promiseAsyncUpdates@resource://testing-common/PlacesTestUtils.jsm:114:12
[task 2017-01-18T13:50:11.484455Z] 13:50:11     INFO -  check_autocomplete@/home/worker/workspace/build/tests/xpcshell/tests/toolkit/components/places/tests/unifiedcomplete/head_autocomplete.js:147:9
[task 2017-01-18T13:50:11.486224Z] 13:50:11     INFO -  process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:917:23
[task 2017-01-18T13:50:11.488020Z] 13:50:11     INFO -  walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:801:7
[task 2017-01-18T13:50:11.489807Z] 13:50:11     INFO -  Promise*scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:734:11
[task 2017-01-18T13:50:11.491590Z] 13:50:11     INFO -  schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:765:7
[task 2017-01-18T13:50:11.493369Z] 13:50:11     INFO -  completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:702:7
[task 2017-01-18T13:50:11.495079Z] 13:50:11     INFO -  _run_next_test@/home/worker/workspace/build/tests/xpcshell/head.js:1566:9
[task 2017-01-18T13:50:11.496751Z] 13:50:11     INFO -  run@/home/worker/workspace/build/tests/xpcshell/head.js:713:9
[task 2017-01-18T13:50:11.504002Z] 13:50:11     INFO -  _do_main@/home/worker/workspace/build/tests/xpcshell/head.js:213:5
[task 2017-01-18T13:50:11.505789Z] 13:50:11     INFO -  _execute_test@/home/worker/workspace/build/tests/xpcshell/head.js:545:5
[task 2017-01-18T13:50:11.507418Z] 13:50:11     INFO -  @-e:1:1
[task 2017-01-18T13:50:11.508984Z] 13:50:11     INFO -  exiting test
[task 2017-01-18T13:50:11.510979Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: NS_ENSURE_TRUE(popup != nullptr) failed: file /home/worker/workspace/build/src/toolkit/components/autocomplete/nsAutoCompleteController.cpp, line 1735
[task 2017-01-18T13:50:11.512919Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: '!compMgr', file /home/worker/workspace/build/src/xpcom/glue/nsComponentManagerUtils.cpp, line 63
[task 2017-01-18T13:50:11.514781Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: OOPDeinit() without successful OOPInit(): file /home/worker/workspace/build/src/toolkit/crashreporter/nsExceptionHandler.cpp, line 3561
[task 2017-01-18T13:50:11.516717Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /home/worker/workspace/build/src/xpcom/base/nsTraceRefcnt.cpp, line 172
[task 2017-01-18T13:50:11.518627Z] 13:50:11     INFO -  PROCESS | 9031 | [9031] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /home/worker/workspace/build/src/xpcom/base/nsTraceRefcnt.cpp, line 172
[task 2017-01-18T13:50:11.520260Z] 13:50:11     INFO -  PROCESS | 9031 | nsStringStats
[task 2017-01-18T13:50:11.521956Z] 13:50:11     INFO -  PROCESS | 9031 |  => mAllocCount:          11205
[task 2017-01-18T13:50:11.523570Z] 13:50:11     INFO -  PROCESS | 9031 |  => mReallocCount:          122
[task 2017-01-18T13:50:11.525255Z] 13:50:11     INFO -  PROCESS | 9031 |  => mFreeCount:           11205
[task 2017-01-18T13:50:11.527018Z] 13:50:11     INFO -  PROCESS | 9031 |  => mShareCount:           8982
[task 2017-01-18T13:50:11.529438Z] 13:50:11     INFO -  PROCESS | 9031 |  => mAdoptCount:           1295
[task 2017-01-18T13:50:11.535941Z] 13:50:11     INFO -  PROCESS | 9031 |  => mAdoptFreeCount:       1295
[task 2017-01-18T13:50:11.537727Z] 13:50:11     INFO -  PROCESS | 9031 |  => Process ID: 9031, Thread ID: 140652378692352
[task 2017-01-18T13:50:11.539358Z] 13:50:11     INFO -  <<<<<<<
[task 2017-01-18T13:50:11.541039Z] 13:50:11     INFO -  Node moz-http2 server shutting down ...
[task 2017-01-18T13:50:11.542622Z] 13:50:11     INFO -  INFO | Result summary:
[task 2017-01-18T13:50:11.544199Z] 13:50:11     INFO -  INFO | Passed: 300
[task 2017-01-18T13:50:11.545863Z] 13:50:11  WARNING -  INFO | Failed: 1
[task 2017-01-18T13:50:11.547539Z] 13:50:11  WARNING -  One or more unittests failed.
[task 2017-01-18T13:50:11.549224Z] 13:50:11     INFO -  INFO | Todo: 0
[task 2017-01-18T13:50:11.550852Z] 13:50:11     INFO -  INFO | Retried: 1
[task 2017-01-18T13:50:11.552398Z] 13:50:11     INFO -  SUITE-END | took 979s
Flags: needinfo?(valentin.gosu)
Also, looks like this landed with test_sort_date_site_grouping disabled, but I don't see a reason for that after AsciiHostNameFromHostString was fixed. did it still fail after such a fix?

The failure in test_avoid_middle_complete.js looks like something fishy with TEST-SKIP, as if the test was finished (shutdown notifications fired) but still going on. Maybe a bug in the skip implementation?
Depends on: 1332263
The latest try push seems to be all green. Interestingly, the fixes you suggested in the previous comments now work, and I didn't have to disable any tests.
Attachment #8834742 - Flags: review?(mak77)
Comment on attachment 8834742 [details] [diff] [review]
Fix UnifiedComplete::_matchSearchEngineUrl creating URL with no hostname

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

thank you
Attachment #8834742 - Flags: review?(mak77) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/4d8ea16976d159ffb95e07e524ad5186ecafe714
Bug 1275746 - Don't allow empty host name for URLTYPE_AUTHORITY URLs r=mcmanus

https://hg.mozilla.org/integration/mozilla-inbound/rev/89b5e454ca73ca5ffb772cfec606ab78a9f4ba9b
Bug 1275746 - Fix tests that assume a HTTP url without a hostname is valid r=bz,MattN,jdm,markh

https://hg.mozilla.org/integration/mozilla-inbound/rev/0224380866d46ab1a45ad55dcae27bd5864a1bfd
Bug 1275746 - Fix UnifiedComplete::_matchSearchEngineUrl creating URL with no hostname r=mak

https://hg.mozilla.org/integration/mozilla-inbound/rev/08f0cf02c96cc6c6819bc5d336c9338583aa6f21
Bug 1275746 - nsNavHistory::AsciiHostNameFromHostString return empty string if host is empty r=mak
Flags: needinfo?(valentin.gosu)
I'm assuming this won't be in 53, feel free to reset status and request uplift if that assumption is wrong.
I'm fine with letting this ride the release trains again.
I don't expect us to discover any other regressions such as bug 1319078, since this has been on release before, but you never know.
Depends on: 1373327
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: