Closed Bug 746457 Opened 13 years ago Closed 13 years ago

Trunk Hourly disables Adblock Plus and No Script

Categories

(Toolkit :: Startup and Profile System, defect)

x86_64
Windows 7
defect
Not set
critical

Tracking

()

VERIFIED FIXED

People

(Reporter: lh.bennett, Assigned: myk)

References

Details

(Keywords: regression)

http://hg.mozilla.org/mozilla-central/rev/93dfd98900ad For whatever odd reason, the recent hourly build forcefully disables Adblock Plus, all versions including the latest development snapshot. I have not yet traced which m-i merge has caused this yet.
Regression window(m-i) Good: http://hg.mozilla.org/integration/mozilla-inbound/rev/2d345cf4616b Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120417 Firefox/14.0a1 ID:20120417065813 Bad: http://hg.mozilla.org/integration/mozilla-inbound/rev/762911344837 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120417 Firefox/14.0a1 ID:20120417071754 Pushlog: http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=2d345cf4616b&tochange=762911344837 Suspected: ef55c163a23a Myk Melez — bug 725408 - implement WebappRT launcher/shell; r=bsmedberg And also broken Stylish1.2.6, and the following error message popups at startup the browser. Stylish is having problems opening its database. It will be non-functional until this problem is fixed. See http://userstyles.org/help/db for help
Blocks: 725408
Myk - Could any recent patches being pushed affect this bug?
Status: UNCONFIRMED → NEW
Ever confirmed: true
Severity: normal → critical
Adblock Plus is the most popular add-on in Firefox - severity is being to critical.
Component: General → Extension Compatibility
QA Contact: general → extension.compatibility
Keywords: regression
NoScript also appears to be affected.
The error console shows a bunch of stuff like this in the affected build (pastebinned for length): http://pastebin.mozilla.org/1576354 Lots of "(NS_ERROR_UNEXPECTED) [nsIPrefBranch.get*Pref]"s in there...
Summary: Trunk Hourly disables Adblock Plus → Trunk Hourly disables Adblock Plus and No Script
Judging by the error messages, the default prefs (defaults/preferences/adblockplus.js) didn't load.
Blocks: abp
Confirmed, and I'm testing a bustage fix now...
Assignee: nobody → myk
Status: NEW → ASSIGNED
Ok, the issue is here: http://hg.mozilla.org/mozilla-central/diff/ef55c163a23a/toolkit/xre/nsXREDirProvider.cpp#l1.67 The important difference is how files with .xpi extension are treated (meaning that we are not going into the if block there). The old code was adding the XPI file to the list of directories, the new code is completely ignoring it. So extensions that aren't being installed unpacked will be broken. This would be the correct code: > if (!Substring(leaf, leaf.Length() - 4).Equals(NS_LITERAL_CSTRING(".xpi"))) { > for (const char *const *a = aAppendList; *a; ++a) > appended->AppendNative(nsDependentCString(*a)); > LoadDirIntoArray(appended, > aAppendList, > aDirectories); > } > else if (NS_SUCCEEDED(appended->Exists(&exists)) && exists) > aDirectories.AppendObject(appended);
Sorry, copied a bit too much in my comment above, the for loop doesn't belong in there.
Indeed, I was looking at the same code; I'll check in a bustage fix shortly.
I just checked in a bustage fix: http://hg.mozilla.org/mozilla-central/rev/0c7e2911be75 https://tbpl.mozilla.org/?rev=0c7e2911be75 Wladimir: your logic looks more correct, but in the interest of reducing risk to the absolute minimum, I reverted the logic to the way it was before.
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Myk, won't your code append the directory twice now in the non-XPI case? LoadDirIntoArray() modifies its first parameter (appended variable), so your aDirectories.AppendObject() call will have the effect of adding exactly the same directory again. I think that "else" is actually required to reproduce the old logic exactly.
(In reply to Wladimir Palant from comment #13) > Myk, won't your code append the directory twice now in the non-XPI case? > LoadDirIntoArray() modifies its first parameter (appended variable), so your > aDirectories.AppendObject() call will have the effect of adding exactly the > same directory again. I think that "else" is actually required to reproduce > the old logic exactly. Reopening to get this sorted out. Hopefully this will also remind you that r=bustage doesn't make any sense...
Status: RESOLVED → REOPENED
Component: Extension Compatibility → Startup and Profile System
Product: Firefox → Toolkit
QA Contact: extension.compatibility → startup
Resolution: FIXED → ---
(In reply to Wladimir Palant from comment #13) > Myk, won't your code append the directory twice now in the non-XPI case? > LoadDirIntoArray() modifies its first parameter (appended variable), so your > aDirectories.AppendObject() call will have the effect of adding exactly the > same directory again. I think that "else" is actually required to reproduce > the old logic exactly. Erm, indeed, you are correct. Ok, I have pushed a followup bustage fix: http://hg.mozilla.org/mozilla-central/rev/28ebf87f14a9 https://tbpl.mozilla.org/?rev=28ebf87f14a9 If that doesn't completely fix the bustage, I'll revert the original patch.
Status: REOPENED → RESOLVED
Closed: 13 years ago13 years ago
Resolution: --- → FIXED
(In reply to Dão Gottwald [:dao] from comment #14) > (In reply to Wladimir Palant from comment #13) > > Myk, won't your code append the directory twice now in the non-XPI case? > > LoadDirIntoArray() modifies its first parameter (appended variable), so your > > aDirectories.AppendObject() call will have the effect of adding exactly the > > same directory again. I think that "else" is actually required to reproduce > > the old logic exactly. > > Reopening to get this sorted out. Hopefully this will also remind you that > r=bustage doesn't make any sense... Erm, didn't see this comment before checking in the followup... Perhaps I've been away from central development too long, but r=bustage used to mean that fixing bustage to keep the tree green took precedence over getting review for an obvious bustage fix. Having said that, however, clearly the bustage fix wasn't as obvious as I thought it was, given the need for a followup fix. And I just re-read the general tree rules, which don't talk about landing bustage fixes in this way. So point well taken; next time I'll back out the original patch right away rather than checking in a bustage fix without review.
Blocks: 731054
No longer blocks: 731054
Blocks: 731054
We really should have some tests that would catch this, too. Seems like it'd be doable with an xpcshell test?
Status: RESOLVED → VERIFIED
No longer blocks: 731054
You need to log in before you can comment on or make changes to this bug.