Closed
Bug 298478
Opened 19 years ago
Closed 19 years ago
Downloads fail with "..could not be saved, because the source file could not be read" (error in JS Console: "Error: uncaught exception:Permission denied to get property RegExp.constructor")
Categories
(Core :: XUL, defect, P1)
Tracking
()
VERIFIED
FIXED
mozilla1.8beta3
People
(Reporter: mcsmurf, Assigned: jst)
References
Details
(4 keywords, Whiteboard: branch checkins needed)
Attachments
(3 files)
3.40 KB,
patch
|
brendan
:
superreview+
|
Details | Diff | Splinter Review |
9.43 KB,
patch
|
shaver
:
review+
dveditz
:
superreview+
jay
:
approval-aviary1.0.5+
jay
:
approval1.7.9+
|
Details | Diff | Splinter Review |
8.70 KB,
patch
|
Details | Diff | Splinter Review |
First: This is NO dupe of Bug 180672. With current trunk builds, you suddenly (i don't know how to reproduce) get the error "xyz.bla could not be saved, because the source file could not be read". At the same time this error occours in JS Console: "Error: uncaught exception: Permission denied to get property RegExp.constructor" (when clicking a download link). I also got other errors in JS Console (i think those are related) like Error: [Exception... "'Permission denied to get property HTMLDocument.getElementsByTagName' when calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "<unknown>" data: no] I think this a regression since i've never seen this bug happening before like this, also two other people reported seeing this error (one with a current trunk build from today, other unknown). Deleting compreg.dat solved this problem. Maybe this needs to moved somewhere else, i'm not really sure if XPConnect is the right component for this...
Reporter | ||
Comment 1•19 years ago
|
||
*** Bug 298441 has been marked as a duplicate of this bug. ***
Comment 2•19 years ago
|
||
Taking a quick stab in the dark, could this be related to patch for bug 296397 for regexp access?
Updated•19 years ago
|
Severity: normal → major
Reporter | ||
Comment 3•19 years ago
|
||
Ok, way to reproduce is: Clear Cache (observe uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsICacheService.evictEntries]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://communicator/content/pref/pref-cache.js :: prefClearCache :: line 68" data: no] in JS Console) and restart Mozilla/Firefox. Now the bug occours. dbradley: Yeah i also suspect that bug caused this, but brendan or someone else who knows more must comment on this :)
Comment 4•19 years ago
|
||
tested regression window works 20050621 1425 pdt build fails 20050621 2225 pdt build http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=PhoenixTinderbox&branch=HEAD&branchtype=match&filetype=match&whotype=match&sortby=Date&hours=2&date=explicit&mindate=2005-06-21+13%3A55%3A00&maxdate=2005-06-21+21%3A56%3A00&cvsroot=%2Fcvsroot
Reporter | ||
Comment 5•19 years ago
|
||
If it is not yet clear, you have to click a link to a file to trigger this bug (like on kernel.org to the top or any file on the ftp.mozilla.org FTP).
Updated•19 years ago
|
Flags: blocking1.8b3?
Comment 6•19 years ago
|
||
The patch for bug 296397 is in the cvsblame list given in comment 4 Chaning component to JavaScript Engine
Component: XPConnect → JavaScript Engine
Comment 7•19 years ago
|
||
Someone reported that Forecastfox failed with a similar error message: Error: uncaught exception: Permission denied to get property RegExp.constructor Error: [Exception... "Component returned failure code: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]" nsresult: "0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE)" location: "JS frame :: file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Mozilla/Firefox/Profiles/dcni7zsx.default/extensions/%7B0538E3E3-7E9B-4d49-8831-A227C80A7AD3%7D/components/nsForecastfox.js :: anonymous :: line 151" data: no] Source File: File:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Mozilla/Firefox/Profiles/dcni7zsx.default/extensions/%7B0538E3E3-7E9B-4d49-8831-A227C80A7AD3%7D/components/nsForecastfox.js Line: 151 Error: uncaught exception: [Exception... "Component returned failure code: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]" nsresult: "0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE)" location: "JS frame :: file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Mozilla/Firefox/Profiles/dcni7zsx.default/extensions/%7B0538E3E3-7E9B-4d49-8831-A227C80A7AD3%7D/components/nsForecastfox.js :: anonymous :: line 151" data: no]
Comment 8•19 years ago
|
||
What source lines correspond to those line numbers? /be
Assignee: dbradley → brendan
Priority: -- → P1
Target Milestone: --- → mozilla1.8beta3
Comment 9•19 years ago
|
||
try { //set components var pbs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService); LINE 151----> this._ping = Components.classes["@ensolis.com/forecastfox/ping;1"].getService(Components.interfaces.ffIPing); this._parser = Components.classes["@ensolis.com/forecastfox/parser;1"].getService(Components.interfaces.ffIParser); this._profiles = Components.classes["@ensolis.com/forecastfox/profiles;1"].getService(Components.interfaces.ffIProfiles); this._disk = Components.classes["@ensolis.com/forecastfox/disk;1"].getService(Components.interfaces.ffIDisk); this._obs = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService); this._timer = Components.classes["@mozilla.org/timer;1"].createInstance(Components.interfaces.nsITimer); this._branch = pbs.getBranch("forecastfox."); this._bundle = sbs.createBundle("chrome://forecastfox/locale/forecastfox.properties"); //startup components this._disk.start(); this._ping.start(); this._parser.start(); var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService); try { var restart = this._profiles.start(); if (restart.severity != ffIError.SEVERITY_INFO) ps.alert(this._getWindow(), restart.description, restart.tooltip); } catch(e) { ps.alert(this._getWindow(), this._bundle.GetStringFromName("ff.migrate.label"), this._bundle.GetStringFromName("ff.migrate.tooltip")); this._disk.recordErrorMsg("An error occured while trying to load the profiles module. Exception details: "+e); };
Comment 10•19 years ago
|
||
Where's the RegExp.constructor, or any regexp (literal or constructed) usage, on that line? Is the XUL preprocessor messing up line numbers? Can you find any literal or constructed RegExp usage in that extension's source? Please cite all such usage if possible. /be
Comment 11•19 years ago
|
||
I assume RegExp is referring to regular expressions? We only use them in the ffParser component, but getService for that is on line 152.. (plus it wouldn't be created/used at that time). Maybe the actual getService method does something with RegExp?
Comment 12•19 years ago
|
||
Actually.. the String.replace method always uses regex's right? In that case line 180 of ffPing uses a replace: var action = aProperty.ValueUTF8.replace(prefix, ""); It is inside a method of an object though.. so I wouldn't think that would be called. http://www.mozdev.org/source/browse/forecastfox/src/components/ffPing.js?rev=1.7&content-type=text/x-cvsweb-markup
Comment 13•19 years ago
|
||
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8b2) Gecko/20050622 Firefox/1.0+ ID:2005062213 for one or another reason the problem of comment #0 resolved itself. weirder even, I can't reproduce it anymore with the build i confirmed the bug with
Comment 14•19 years ago
|
||
When I enable or disable an extension (no matter what extension), Forecastfox will work and this error-bug will not show up. When I restart Firefox without enabling or disabling an extension, Forecastfox will not show up and I get also an error when clicking on for instance this link: http://www.mdformulations.nl/new2/doc/klst005.doc I tried it 5 times.
Comment 15•19 years ago
|
||
I can confirm the behavior that Ria describes.
Comment 16•19 years ago
|
||
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b2) Gecko/20050622 Firefox/1.0+ No extensions/themes installed. The quicksearch box on the BMO front page gives the following two errors in the console when the Show button is clicked: Error: uncaught exception: Permission denied to get property RegExp.constructor Error: uncaught exception: [Exception... "Factory not registered" nsresult: "0x80040154 (NS_ERROR_FACTORY_NOT_REGISTERED)" location: "JS frame :: https://bugzilla.mozilla.org/quicksearch.js :: go_to :: line 53" data: no] This occured on another machine earlier today but I can no longer reproduce it there (I had temporarily reverted to an older build before reinstalling today's build).
Comment 17•19 years ago
|
||
On a very new profile (first run) I get no error but a download window. The error seems to occur on second and next start with the same profile.
Comment 18•19 years ago
|
||
Talking about the new profile without extensions: When I remove everytime the file "extensions.ini" out of the profile, the error seems not to occur. When I restart Firefox without removing this file, I get the error.
Comment 19•19 years ago
|
||
The full error in a debug build is: JS Component Loader: ERROR (null):0 uncaught exception: Permission denied to get property RegExp.constructor I can reproduce this with a stack to the printf, if you want to see it.
Assignee | ||
Comment 20•19 years ago
|
||
The case I've looked into so far is what happens when this error is triggerd from the Forecastfox extension. With it, we get the exception while compiling the script for a JS component. That compilation happens on the safe context, and the principal we're compiling for is the system principal. But while compiling, we end up looking up RegExp.constructor and that throws the exception. The reason is that we don't find any principals in the running code (in the JS stack frames on the safe context), there are two frames, neither of which have a function object or a script, so we end up getting the principal from the global object in the context we're compiling in, and that, beeing the safe context, gets us the about:blank principal. Shaver and I looked this over a bit and our thinking from short investigation was that we probably need to make the compilation code push a stack frame before compiling to carry the principals we're compiling for (in an empty script object or whatever). That way we'd find the right principals while compiling and we wouldn't get security exceptions while compiling scripts. Or maybe we could even have a special stack frame flag that'd tell the caps code that we're compiling code and it wouldn't throw exceptions at us... Thoughts?
Assignee | ||
Comment 21•19 years ago
|
||
Stack where the error is thrown: nsScriptSecurityManager::CheckObjectAccess(JSContext * cx=0x01a45a20, JSObject * obj=0x028c76d0, long id=0x00b7350c, JSAccessMode mode=JSACC_READ, long * vp=0x0012bd18) Line 456 + 0x2e js_CheckAccess(JSContext * cx=0x01a45a20, JSObject * obj=0x028c76d0, long id=0x00b76b38, JSAccessMode mode=JSACC_READ, long * vp=0x0012bd18, unsigned int * attrsp=0x0012bc40) Line 3449 + 0x4c CheckCtorGetAccess(JSContext * cx=0x01a45a20, JSObject * obj=0x028c76d0, long id=0x00b7350c, long * vp=0x0012bd18) Line 3710 + 0x21 js_GetProperty(JSContext * cx=0x01a45a20, JSObject * obj=0x028c76d0, long id=0x00b76b38, long * vp=0x0012bd18) Line 2808 + 0xf8 JS_GetConstructor(JSContext * cx=0x01a45a20, JSObject * proto=0x028c76d0) Line 2222 + 0x24 js_InitRegExpClass(JSContext * cx=0x01a45a20, JSObject * obj=0x028c7220) Line 3767 + 0x13 JS_ResolveStandardClass(JSContext * cx=0x01a45a20, JSObject * obj=0x028c7220, long id=0x00b734bc, int * resolved=0x0012bd80) Line 1427 + 0xb BackstagePass::NewResolve(nsIXPConnectWrappedNative * wrapper=0x0300d490, JSContext * cx=0x01a45a20, JSObject * obj=0x028c7220, long id=0x00b734bc, unsigned int flags=0x00000010, JSObject * * objp=0x0012be8c, int * _retval=0x0012be08) Line 71 + 0x16 XPC_WN_Helper_NewResolve(JSContext * cx=0x01a45a20, JSObject * obj=0x028c7220, long idval=0x00b734bc, unsigned int flags=0x00000010, JSObject * * objp=0x0012bf0c) Line 967 + 0x45 js_LookupPropertyWithFlags(JSContext * cx=0x01a45a20, JSObject * obj=0x028c7220, long id=0x00b764b0, unsigned int flags=0x00000010, JSObject * * objp=0x0012bf60, JSProperty * * propp=0x0012bf54) Line 2545 + 0x4c js_FindConstructor(JSContext * cx=0x01a45a20, JSObject * start=0x00000000, const char * name=0x100d20c8, long * vp=0x0012bf90) Line 1959 + 0x1b GetClassPrototype(JSContext * cx=0x01a45a20, JSObject * scope=0x00000000, const char * name=0x100d20c8, JSObject * * protop=0x0012bff4) Line 3671 + 0x15 js_NewObject(JSContext * cx=0x01a45a20, JSClass * clasp=0x1010ba28, JSObject * proto=0x00000000, JSObject * parent=0x00000000) Line 1839 + 0x17 js_NewRegExpObject(JSContext * cx=0x01a45a20, JSTokenStream * ts=0x03008bb0, unsigned short * chars=0x03008eb0, unsigned int length=0x0000000c, unsigned int flags=0x00000002) Line 3802 + 0x12 js_GetToken(JSContext * cx=0x01a45a20, JSTokenStream * ts=0x03008bb0) Line 1873 + 0x33 js_MatchToken(JSContext * cx=0x01a45a20, JSTokenStream * ts=0x03008bb0, JSTokenType tt=TOK_RP) Line 2031 + 0xd [...] Statements(JSContext * cx=0x01a45a20, JSTokenStream * ts=0x03008bb0, JSTreeContext * tc=0x0012cfe0) Line 1025 + 0x11 js_CompileTokenStream(JSContext * cx=0x01a45a20, JSObject * chain=0x028c7220, JSTokenStream * ts=0x03008bb0, JSCodeGenerator * cg=0x0012cfe0) Line 468 + 0x11 CompileTokenStream(JSContext * cx=0x01a45a20, JSObject * obj=0x028c7220, JSTokenStream * ts=0x03008bb0, void * tempMark=0x01a45a68, int * eofp=0x00000000) Line 3336 + 0x1a JS_CompileFileHandleForPrincipals(JSContext * cx=0x01a45a20, JSObject * obj=0x028c7220, const char * filename=0x0318f600, _iobuf * file=0x1027c898, JSPrincipals * principals=0x00b9493c) Line 3518 + 0x17 mozJSComponentLoader::GlobalForLocation(const char * aLocation=0x00afb6b8, nsIFile * component=0x03129750) Line 1054 + 0x2a mozJSComponentLoader::ModuleForLocation(const char * registryLocation=0x00afb6b8, nsIFile * component=0x00000000) Line 837 + 0x13 mozJSComponentLoader::GetFactory(const nsID & aCID={...}, const char * aLocation=0x00afb6b8, const char * aType=0x00af90b8, nsIFactory * * _retval=0x0012d320) Line 384 + 0xe nsFactoryEntry::GetFactory(nsIFactory * * aFactory=0x0012d320, nsComponentManagerImpl * mgr=0x003ebaf0) Line 302 + 0x3a nsComponentManagerImpl::CreateInstance(const nsID & aClass={...}, nsISupports * aDelegate=0x00000000, const nsID & aIID={...}, void * * aResult=0x0012d3d0) Line 1906 + 0x10 nsJSCID::CreateInstance(nsISupports * * _retval=0x0012d53c) Line 809 + 0x4a XPTC_InvokeByIndex(nsISupports * that=0x0303d000, unsigned int methodIndex=0x0000000a, unsigned int paramCount=0x00000001, nsXPTCVariant * params=0x0012d53c) Line 102 XPCWrappedNative::CallMethod(XPCCallContext & ccx={...}, XPCWrappedNative::CallMode mode=CALL_METHOD) Line 2105 + 0x1e XPC_WN_CallMethod(JSContext * cx=0x0283f790, JSObject * obj=0x028972c0, unsigned int argc=0x00000001, long * argv=0x0312212c, long * vp=0x0012d810) Line 1348 + 0xe js_Invoke(JSContext * cx=0x0283f790, unsigned int argc=0x00000001, unsigned int flags=0x00000000) Line 1178 + 0x20 js_Interpret(JSContext * cx=0x0283f790, unsigned char * pc=0x031c94a7, long * result=0x0012e2fc) Line 3468 + 0xf js_Invoke(JSContext * cx=0x0283f790, unsigned int argc=0x00000001, unsigned int flags=0x00000002) Line 1198 + 0x13 nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS * wrapper=0x031c2f68, unsigned short methodIndex=0x000b, const nsXPTMethodInfo * info=0x031c1f30, nsXPTCMiniVariant * nativeParams=0x0012e618) Line 1339 + 0x14 nsXPCWrappedJS::CallMethod(unsigned short methodIndex=0x000b, const nsXPTMethodInfo * info=0x031c1f30, nsXPTCMiniVariant * params=0x0012e618) Line 462 PrepareAndDispatch(nsXPTCStubBase * self=0x031c2f68, unsigned int methodIndex=0x0000000b, unsigned int * args=0x0012e6e0, unsigned int * stackBytesToPop=0x0012e6d0) Line 117 + 0x1c SharedStub() Line 147 XPTC_InvokeByIndex(nsISupports * that=0x031c2f68, unsigned int methodIndex=0x0000000b, unsigned int paramCount=0x00000001, nsXPTCVariant * params=0x0012e820) Line 102 XPCWrappedNative::CallMethod(XPCCallContext & ccx={...}, XPCWrappedNative::CallMode mode=CALL_METHOD) Line 2105 + 0x1e XPC_WN_CallMethod(JSContext * cx=0x0283f790, JSObject * obj=0x0294b118, unsigned int argc=0x00000001, long * argv=0x0312204c, long * vp=0x0012eaf4) Line 1348 + 0xe js_Invoke(JSContext * cx=0x0283f790, unsigned int argc=0x00000001, unsigned int flags=0x00000000) Line 1178 + 0x20 js_Interpret(JSContext * cx=0x0283f790, unsigned char * pc=0x03014d5b, long * result=0x0012f508) Line 3468 + 0xf js_Execute(JSContext * cx=0x0283f790, JSObject * chain=0x01b38580, JSScript * script=0x03014d20, JSStackFrame * down=0x00000000, unsigned int flags=0x00000000, long * result=0x0012f610) Line 1408 + 0x13 JS_EvaluateUCScriptForPrincipals(JSContext * cx=0x0283f790, JSObject * obj=0x01b38580, JSPrincipals * principals=0x00b9493c, const unsigned short * chars=0x02b54aa8, unsigned int length=0x00000022, const char * filename=0x031bbad0, unsigned int lineno=0x00000068, long * rval=0x0012f610) Line 3855 + 0x19 nsJSContext::EvaluateString(const nsAString & aScript={...}, void * aScopeObject=0x01b38580, nsIPrincipal * aPrincipal=0x00b94938, const char * aURL=0x031bbad0, unsigned int aLineNo=0x00000068, const char * aVersion=0x100d284c, nsAString * aRetValue=0x00000000, int * aIsUndefined=0x0012f6b4) Line 1075 + 0x43 nsGlobalWindow::RunTimeout(nsTimeout * aTimeout=0x030c2130) Line 5239 + 0x6c
Bug 297536 could be related.
Comment 23•19 years ago
|
||
We shouldn't hack things around this case if it's just a bug. I mean, if the safe context is for the hidden window only, and code compiled on the safe context should always be trusted, then the hidden window should have the system principal. If that's too scary because we also use the hidden window for some other purpose than precompilation, then we need a different context/window. /be
Comment 24•19 years ago
|
||
bug 298555 could be related.
Comment 25•19 years ago
|
||
This is not Windows specific. Bug also lies under Linux, however there is no error, clicking on a link using the right mouse button, simply does nothing. Workaround works.
Comment 26•19 years ago
|
||
There's a problem with that workaround though. That works fine for actual links, but some pages use a javascript triggering system, like a button that says "Click Here to Begin Download". In those cases right clicking and "save link as" doesn't work unfortunately. IGN has several pages like that I believe.
Comment 27•19 years ago
|
||
I think this should be raised to "Blocker". The work-around works on some pages certainly, but there are MANY MANY MANY pages where it doesn't. Not being able to download files via a web browser is definitely a show-stopping bug.
Comment 28•19 years ago
|
||
Raising to critical for the time being to get on the radar. I think this is warranted since the workaround is clearly not universal. Nominating for blocker for Firefox as well.
Severity: major → critical
Flags: blocking-aviary1.1?
Comment 29•19 years ago
|
||
(In reply to comment #25) > This is not Windows specific. Bug also lies under Linux, however there is no > error, clicking on a link using the right mouse button, simply does nothing. > Workaround works. setting os from win2k (i'm on winxp and this happens here...) to all
OS: Windows 2000 → All
Comment 30•19 years ago
|
||
This is defintely affecting other extensions it seems. Gmail Notifier (which two days ago stopped working due to a URL change by Google), for which I'm running the fixed 0.4.3 version, has stopped working as of yesterday it seems. It is no longer able to login successfully to Gmail. If you start Firefox (currently running the Win32 20050623 build) with ONLY Gmail Notifier enabled, it throws the RegExp error that is mentioned in this bug. There are no further JSConsole messages in this extension's case unfortunately though.
Comment 31•19 years ago
|
||
If this is really about the hidden window principal, then this bug should not be reproducable on mac, since mac uses a chrome window for the hidden window, unlike win/unix which use about:blank. Is there a good reason we couldn't use a chrome version of about:blank for the win/unix hidden window?
OS: All → Windows 2000
Comment 32•19 years ago
|
||
Wouldn't "XP" be better though? "2000" sorta gives the impression that it doesn't happen on XP, which it does.
Comment 33•19 years ago
|
||
This bug should bite all but Mac, so I'm leaving it set to PC / All. /be
Severity: critical → major
OS: Windows 2000 → All
Comment 34•19 years ago
|
||
Well, at least on 10.3.9, I can confirm that it does work fine on the Mac. I just installed the latest Cadence machine build, 20050623 around 9AM, and installed Forecastfox and GMail Notifier only. Both work fine, and no JSConsole errors.
Updated•19 years ago
|
Assignee: brendan → benjamin
Flags: blocking1.8b3?
Flags: blocking1.8b3+
Flags: blocking-aviary1.1?
Updated•19 years ago
|
Component: JavaScript Engine → XP Toolkit/Widgets
Flags: blocking1.8b3+ → blocking1.8b3?
Updated•19 years ago
|
Flags: blocking1.8b3? → blocking1.8b3+
Comment 35•19 years ago
|
||
This needs to get onto the branches as well.
Flags: blocking1.7.9+
Flags: blocking-aviary1.0.5+
Comment 36•19 years ago
|
||
I don't know if this is relevant information, but when I empty or delete the extensions folder in the program directory and there are no extensions in the profile, I get only errors when trying to leftclick-download. When I delete the extensions.ini this has no effect. Workaround (for one browser-session) is to install an extension. Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b2) Gecko/20050623 Firefox/1.0+ ID:2005062305
Comment 37•19 years ago
|
||
Jay, is it affecting the branches at all though? Is it wise to make a big code change (even though it might technically be broken on the branch as well) when the RegExp error isn't showing up in the current branch? I would think, since everything is currently working on the branch (links, Forecastfox, GM Notifier) that this should really only be the focus of Firefox 1.1. Am I wrong about that?
Comment 38•19 years ago
|
||
Expanding on comment #36: if you merely disable an extension then restart, it seems to fix it for that new session (at least initially). You can get Forcastfox to show up properly, as well as have GM Notifier login properly by doing this. Links don't work though. Upon the next restart, the problem resurfaces though.
Comment 39•19 years ago
|
||
This needs testing on linux or windows, as I'm stuck with mainly mac right now.
Attachment #187142 -
Flags: superreview?(brendan)
Attachment #187142 -
Flags: review?(mconnor)
Comment 40•19 years ago
|
||
The patch for bug 296397 landed on the branches, and that's the culprit for this trunk regression. If it didn't have the same effect on the branches, we need to understand what's different. But if the branches, as my memory tells me, have the same hidden window / safe content architecture, and the same principal associated with the hidden window, then they'll need the fix for this bug too. /be
Reporter | ||
Comment 41•19 years ago
|
||
Ok, the patch fixes (at least) the testcase with Clear Cache/try to download file afterwards on Windows with Mozilla.
Comment 42•19 years ago
|
||
Benjamin, since we can't view the details of the bug you mentioned, when exactly was that patch checked in? Since I'm doubtful that many download the nightly branch releases for testing purposes, perhaps it is happening, and just no one's downloaded it yet to try. I'm running the Release Candidate of 1.0.5 at home (the one that asa linked to), and like I said, it's not showing any of these problems. Would the patch have gone in before or after that? Thanks.
Comment 43•19 years ago
|
||
Bug 296397 landed on the branches on 21-June-2005.
Comment 44•19 years ago
|
||
Hmmm, yeah, the build id I have at home says 20050621. But if it landed on June 21st, I guess it wouldn't be in until the 22nd build. I'll try that later and let you know.
Comment 45•19 years ago
|
||
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.9) Gecko/20050623 Firefox/1.0.5 Downloaded a file fine. Have a few extensions installed though, but the same thing that failed at home (i'm not upgrading trunk until this is fixed here at work), the link to dl the new firefox trunk in my bookmarks toolbar, works on 1.0.5 The file I downloaded successfully here and not on newer trunk builds: ftp://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/pacifica-trunk/firefox-1.0+.en-US.win32.installer.exe Looks like it's fine for aviary 1.0.1 branch.
Comment 46•19 years ago
|
||
Using Win 98SE. Have both 1.0.5 (tinderbox from 23 June) and tinderbox Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.8b2) Gecko/20050623 Firefox/1.0+ . Both are zip versions / both are running from the same old 1.0.4 profile I've been using for 10 days or so. This is reproducible every time: Unzip FF trunk over existing version, can't download as per bug description. Erase the existing FF folder and unzip into "new" folder, download works fine indefinitely; can download anything as many times as desired. Close and re-start program; download problem as described.
Comment 47•19 years ago
|
||
Can confirm now on the aviary branch as well. Just downloaded the 20050623 branch tinderbox exe. After install, on the first startup of Firefox, everything works fine. After that though, every other restart, GM Notifier isn't working, nor is Forecastfox, and clicking the link in comment #45 (while not producing a pop-up error message as it does on the trunk) does not work. It just says the "Transferring data" message in the status bar, but nothing happens. If you look at the JSConsole though, the same RegExp error has been thrown. Jay, my apologies for jumping the gun.
Reporter | ||
Comment 48•19 years ago
|
||
tmeader: Can you please stop commenting here if you don't have anything useful to say (some comments are useful but most are not)? This is like the 16th comment on you, please summarize your comments more or don't comment.
Comment 49•19 years ago
|
||
(In reply to comment #47) > and clicking the link in comment #45 (while not producing a > pop-up error message as it does on the trunk) does not work. It just says the > "Transferring data" message in the status bar, but nothing happens. Yep, that happens now. I installed over a previous 1.0.4 tinderbox build, and it worked the first time, and now doesn't. I clicked the link in the toolbar just like before, too. Interesting, so it does happen on 1.0.5. Blocker it is.
Comment 50•19 years ago
|
||
Comment on attachment 187142 [details] [diff] [review] Make the win/unix hiddenwindow a blank chrome window, rev. 1 sr=me provided there are no Ts regressions on sensitive platforms (ones with sucky filesystem i/o). /be
Attachment #187142 -
Flags: superreview?(brendan) → superreview+
Comment 51•19 years ago
|
||
*** Bug 298634 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 52•19 years ago
|
||
This seems like a safer approach here, it doesn't change the safe context's principal (which sort of scares me), but in stead gives the component loader its own compilation context that it uses for compiling code, and that gives the compiled code the right principals and we don't get this exception any more.
Attachment #187169 -
Flags: superreview?(brendan)
Attachment #187169 -
Flags: review?(shaver)
Comment 53•19 years ago
|
||
(In reply to comment #39) > Created an attachment (id=187142) [edit] > Make the win/unix hiddenwindow a blank chrome window, rev. 1 > > This needs testing on linux or windows, as I'm stuck with mainly mac right now. This patch fixes the problem on linux.
Comment 54•19 years ago
|
||
*** Bug 298662 has been marked as a duplicate of this bug. ***
Comment 55•19 years ago
|
||
Since the bug seems to have as much effects on both DOWNLOADING and xtension icons disapearing, I think both should be written in the "summary" for the bug. It took me time to understand that both the bugs were the same.
Comment 56•19 years ago
|
||
jst: I'm not sure why we're worried about the hiddenwindow principal, considering that on mac the hiddenwindow already has chrome privileges. I like the idea of keeping the js componentloader script context entirely within xpconnect, but at least to my eyes it seems like a significantly more regression-prone solution.
Comment 57•19 years ago
|
||
I don't think jst's patch is regression-prone. It's arguably safer for xpconnect to roll its own context, than to conserve/reuse the hidden window in a fit of frugality (I was involved). It looks like jst's patch also reduces codesighs. /be
Comment 58•19 years ago
|
||
I should add that maybe we want Benjamin's patch too, for cross-platform consistency. Given that patch, we don't require jst's, but jst's makes xpconnect not depend on the principal of a window object whose context it is apprised of as a "safe context" -- which turned out to be a bum steer, as this bug demonstrates. I'm in favor of decoupling xpconnect here, making it fend for itself better. Benjamin, what do you say? /be
Comment 59•19 years ago
|
||
dbradley and shaver should weigh in too. /be
Comment 60•19 years ago
|
||
Maybe an option would be to apply Benjamin's patch to the branches, and apply both to the trunk. From what I saw of jst's patch there doesn't appear to be a great risk, but it's not a trivial change. Someone who knows the state of the branches and how risk adverse a branch is should make that call.
Assignee | ||
Comment 61•19 years ago
|
||
(In reply to comment #56) > jst: I'm not sure why we're worried about the hiddenwindow principal, > considering that on mac the hiddenwindow already has chrome privileges. I like > the idea of keeping the js componentloader script context entirely within > xpconnect, but at least to my eyes it seems like a significantly more > regression-prone solution. I didn't know the Mac's hidden window already had chrome privs. That scares me becuase the hidden window's context is what's used to execute JS when no other context is avaliable, as in when executing event handlers registered with addEventListener() or other callback functions where we're dealing with wrapped JS objects and no context is available through wich we find the JS context where the code came from. Given that, it seems possible that there are cases where we'd be running untrusted code in a context with chrome privs, which in and of itself should be fine, but if there are other bugs that leads to caps getting the privs from the context (as happens in this case), we'd be giving untrusted script chrome privs. Why does the Mac's hidden window have chrome privs?
Comment 62•19 years ago
|
||
(In reply to comment #52) > Created an attachment (id=187169) [edit] > Alternative approach, give the component loader its own compilation context > > This seems like a safer approach here, it doesn't change the safe context's > principal (which sort of scares me), but in stead gives the component loader > its own compilation context that it uses for compiling code, and that gives the > compiled code the right principals and we don't get this exception any more. I can confirm this patch works on linux.
Comment 63•19 years ago
|
||
(In reply to comment #35) > This needs to get onto the branches as well. Right, this affects also Mozilla 1.7 branch. I've just installed Mozilla 1.7.9 build 2005062406 on WinXP and got the errors from comment 0 (first two errors). Because I know Bug 180672 I deleted compreg.dat and this helped me immediately. Build 2005062107 worked as expected. Expanding summary.
Summary: Downloads fail with "..could not be saved, because the source file could not be read" → Downloads fail with "..could not be saved, because the source file could not be read" (error in JS Console: "Error: uncaught exception:Permission denied to get property RegExp.constructor")
Comment 64•19 years ago
|
||
*** Bug 298759 has been marked as a duplicate of this bug. ***
Comment 65•19 years ago
|
||
The mac hidden window is used to form the menu that is displayed to the user when there are no other windows open on mac. See http://lxr.mozilla.org/mozilla/source/xpfe/appshell/src/nsAppShellService.cpp#157
Comment 66•19 years ago
|
||
I'm definitely in favor of decoupling xpconnect, by the way; I was just concerned about the branch-worthiness of that decoupling. But if it's safer than handing out chrome privs, let's go for it.
Comment 67•19 years ago
|
||
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b2) Gecko/20050626 Firefox/1.0+ ID:2005062621 This seems to WFM now......
Comment 68•19 years ago
|
||
*** Bug 298907 has been marked as a duplicate of this bug. ***
Comment 69•19 years ago
|
||
(In reply to comment #67) > Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b2) Gecko/20050626 > Firefox/1.0+ ID:2005062621 > > This seems to WFM now...... Actually, in this build I have now the Gmail Notifier extension started working, and so did the file downloads. But after pressing the Clear Cache button in the preferences I get this in the JS Console: Error: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsICacheService.evictEntries]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://browser/content/sanitize.js :: anonymous :: line 40" data: no]
Comment 70•19 years ago
|
||
(In reply to comment #67) > This seems to WFM now...... Yes but when I click cancel I get 3: Error: dialog has no properties Source File: chrome://mozapps/content/downloads/unknownContentType.xul Line: 1 (Pacifica 2005062705)
Comment 71•19 years ago
|
||
(In reply to comment #70) > Yes but when I click cancel I get 3: > Error: dialog has no properties That would be bug 294827. Until these patches are landed there isn't much point in testing this any further.
Comment 72•19 years ago
|
||
Comment on attachment 187169 [details] [diff] [review] Alternative approach, give the component loader its own compilation context r=shaver. I think this is the right thing for the branch as well: it's easier to analyze the effects of the changes, and the failure modes worry me less than with granting more privileges to more windows.
Attachment #187169 -
Flags: review?(shaver) → review+
Updated•19 years ago
|
Attachment #187169 -
Flags: approval1.8b3?
Updated•19 years ago
|
Attachment #187169 -
Flags: approval1.8b3?
Comment 73•19 years ago
|
||
I'm pretty sure this bug fix will also fix Bug 298860 where you can't open attachments in e-mail messages for thundebird right now.
Blocks: 298860
Updated•19 years ago
|
Attachment #187169 -
Flags: superreview?(brendan) → superreview?(dveditz)
Comment 74•19 years ago
|
||
Comment on attachment 187169 [details] [diff] [review] Alternative approach, give the component loader its own compilation context a=jay for the branches, pending the final sr= from dveditz
Attachment #187169 -
Flags: approval1.7.9+
Attachment #187169 -
Flags: approval-aviary1.0.5+
Comment 75•19 years ago
|
||
Comment on attachment 187169 [details] [diff] [review] Alternative approach, give the component loader its own compilation context sr=dveditz
Attachment #187169 -
Flags: superreview?(dveditz) → superreview+
Comment 76•19 years ago
|
||
*** Bug 298999 has been marked as a duplicate of this bug. ***
Updated•19 years ago
|
Whiteboard: [cb] ready to land for 1.8b3?
Comment 77•19 years ago
|
||
Comment on attachment 187142 [details] [diff] [review] Make the win/unix hiddenwindow a blank chrome window, rev. 1 Seems consensus is to go the other way, though jst's concerns about the Mac hidden window should maybe be addressed in a followup bug.
Attachment #187142 -
Flags: review?(mconnor)
Comment 78•19 years ago
|
||
fix checked in with a=drivers per bsmedberg, respins requested for BFT day/smoketesting
Assignee: benjamin → jst
Whiteboard: [cb] ready to land for 1.8b3?
Updated•19 years ago
|
Flags: blocking-aviary1.1?
Comment 79•19 years ago
|
||
jst, I landed this on trunk for BFT day, I left the branch landings for you
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Whiteboard: branch checkins needed
Updated•19 years ago
|
Flags: blocking-aviary1.1?
Comment 80•19 years ago
|
||
bugs.mano@sent.com changed: What |Removed |Added ---------------------------------------------------------------------------- Flag|blocking-aviary1.1? | ^^^^^^^^ Why? And why isn't it just minused?
Comment 81•19 years ago
|
||
(In reply to comment #80) > Why? And why isn't it just minused? Because it's fixed.
Comment 82•19 years ago
|
||
*** Bug 299075 has been marked as a duplicate of this bug. ***
Comment 83•19 years ago
|
||
How do I do to apply this patch??? Please.....
Comment 84•19 years ago
|
||
Today's build works fine. I think the patch is already applied.
Comment 85•19 years ago
|
||
I've install the build 2005062807 to Linux, but appear same error, when download. This error was not resolved with patch?
Comment 86•19 years ago
|
||
(In reply to comment #85) > I've install the build 2005062807 to Linux, but appear same error, when Compare your build id 2005 06 28 07 with the timestamp on comment 78. 2005-06-28 08:52 PDT...
Comment 87•19 years ago
|
||
I'm terribly sorry for spamming, I'm using the branch 1.0.5 nughlties. When will this fix go into the branch as I still see it.
Reporter | ||
Comment 88•19 years ago
|
||
Read Comment 79, it will be fixed on the branches soon now.
Assignee | ||
Comment 89•19 years ago
|
||
*** Bug 299429 has been marked as a duplicate of this bug. ***
Verified FIXED using build Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b2) Gecko/20050702 on Windows XP Seamonkey trunk. Note that bug 180672 still exists in the wild, and isn't this bug... This is a trunk verification only. jst: shouldn't we remove 'branch checkins needed' due to you landing on branches in comment 90?
Status: RESOLVED → VERIFIED
Comment 93•19 years ago
|
||
Please create an explicit dependency on bug # 296397 , as distributor experienced issue after only applying critical security issues .
Depends on: 296397
Comment 94•19 years ago
|
||
*** Bug 298700 has been marked as a duplicate of this bug. ***
Comment 95•19 years ago
|
||
*** Bug 323541 has been marked as a duplicate of this bug. ***
You need to log in
before you can comment on or make changes to this bug.
Description
•