Closed
Bug 221669
Opened 22 years ago
Closed 21 years ago
[FIXr]xul-overlay processing instruction pointing to inexistent file make mozilla enter in some kind of loop
Categories
(Core :: XUL, defect, P1)
Core
XUL
Tracking
()
RESOLVED
FIXED
mozilla1.8beta1
People
(Reporter: cstehlin.ml, Assigned: bzbarsky)
Details
Attachments
(1 file)
|
8.39 KB,
patch
|
bugs
:
review+
jst
:
superreview+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624
referencing an inexistent file in a <?xul-overlay ...> Processing Intruction in
a xul file make mozilla unable to load this xul file : mozilla never stops to
load it in fact.
Reproducible: Always
Steps to Reproduce:
drag&drop the linked xul page into the browser.
Actual Results:
It looks like it never finishes to download it. (Sandglass indefinitely, hit
ESCAPE to stop).
Expected Results:
retry without the 2nd line, it's ok.
<?xml version="1.0"?>
<?xul-overlay href="inexistent-file.xul"?>
<window
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
>
</window>
| Assignee | ||
Comment 1•22 years ago
|
||
The XUL code uses Open() to load overlays. Is the original XUL page in chrome?
a file:// url? An http:// url? That is, what's the base URI for the relative
URI resolution?
Also, the implementation of Open() got heavily changed recently, so testing with
anything but a very recent nightly (like today's) is not very useful at this
point...
| Assignee | ||
Comment 2•22 years ago
|
||
.
Assignee: hjtoi-bugzilla → hyatt
Component: XML → XP Toolkit/Widgets: XUL
QA Contact: ashshbhatt → shrir
| Reporter | ||
Comment 3•22 years ago
|
||
the bug also occurs in Mozilla 1.5 (release)
| Reporter | ||
Comment 4•21 years ago
|
||
The bug still can be reproduced in Moz 1.6 (realase)
Comment 5•21 years ago
|
||
I did this with a recent build. I tried to import a overlay from wallet into
calendar. Works fine, expect when wallet isn't there. And firefox/thunderbird
don't have it.
<?xul-overlay href="chrome://wallet/content/walletTasksOverlay.xul"?> is the
thing that fails. so, to answers bz's question: it's a chrome url, and a recent
build.
| Assignee | ||
Comment 6•21 years ago
|
||
Comment 7•21 years ago
|
||
Comment on attachment 153010 [details] [diff] [review]
This should fix the problem
r=ben@mozilla.org
Attachment #153010 -
Flags: review+
| Assignee | ||
Comment 8•21 years ago
|
||
Comment on attachment 153010 [details] [diff] [review]
This should fix the problem
jst, would you sr?
Attachment #153010 -
Flags: superreview?(jst)
| Assignee | ||
Comment 9•21 years ago
|
||
Taking.
Assignee: hyatt → bzbarsky
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Windows 2000 → All
Priority: -- → P1
Hardware: PC → All
Summary: xul-overlay processing instruction pointing to inexistent file make mozilla enter in some kind of loop → [FIX]xul-overlay processing instruction pointing to inexistent file make mozilla enter in some kind of loop
Target Milestone: --- → mozilla1.8beta
Comment 10•21 years ago
|
||
Comment on attachment 153010 [details] [diff] [review]
This should fix the problem
- In nsXULDocument::ReportMissingOverlay():
+ nsresult rv;
+ nsCOMPtr<nsIConsoleService> consoleService =
+ do_GetService(NS_CONSOLESERVICE_CONTRACTID, &rv);
+ if (NS_FAILED(rv))
+ return;
+ nsCOMPtr<nsIScriptError> errorObject =
+ do_CreateInstance(NS_SCRIPTERROR_CONTRACTID, &rv);
+ if (NS_FAILED(rv))
+ return;
+ nsCOMPtr<nsIStringBundleService> stringBundleService =
+ do_GetService(NS_STRINGBUNDLE_CONTRACTID, &rv);
+ if (NS_FAILED(rv))
+ return;
+ nsCOMPtr<nsIStringBundle> bundle;
+ rv = stringBundleService->CreateBundle(
+ "chrome://global/locale/xul.properties", getter_AddRefs(bundle));
+ if (NS_FAILED(rv))
+ return;
+
+ nsCAutoString spec;
+ aURI->GetSpec(spec);
+
+ NS_ConvertUTF8toUTF16 utfSpec(spec);
+ const PRUnichar* params[] = { utfSpec.get() };
+
+ nsXPIDLString errorText;
+ rv =
bundle->FormatStringFromName(NS_LITERAL_STRING("MissingOverlay").get(),
+ params, NS_ARRAY_LENGTH(params),
+ getter_Copies(errorText));
+ if (NS_FAILED(rv))
+ return;
Geez, I mean, could this get any more verbose? If there isn't one already,
wanna file a bug to make a non-pathetic API for our string bundle code (in
nsContentUtils for layout etc to use, if nowhere else), I mean, this is just so
unbelieveably sad.
sr=jst nonetheless tho :-)
Attachment #153010 -
Flags: superreview?(jst) → superreview+
| Assignee | ||
Comment 11•21 years ago
|
||
Dunno about string bundles, but bug 228205 should make the console service api
much easier to use (in particular, it should hide all the intl crap under the
console service).
I can still file a bug on a better stringbundle api if you want, though.
Summary: [FIX]xul-overlay processing instruction pointing to inexistent file make mozilla enter in some kind of loop → [FIXr]xul-overlay processing instruction pointing to inexistent file make mozilla enter in some kind of loop
Comment 12•21 years ago
|
||
Yeah, I think it'd be worth overhauling how we use the stringbundle service etc
too to hide some of its bloatiness behind a less bloaty API, since we use that a
fair bit for non-console service purposes as well. So please file a followup bug
on that (and CC me).
I think that patch should have nsXULDocument.h changes somewhere (now that it
broke the tree). :-)
| Assignee | ||
Comment 14•21 years ago
|
||
Checked in for 1.8a3 or 1.8b or whatever this next milestone is.
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
| Assignee | ||
Comment 15•21 years ago
|
||
And yes, I did check in the nsXULDocument.h change to fix bustage (just declares
the function in the obvious way).
Component: XP Toolkit/Widgets: XUL → XUL
QA Contact: shrir → xptoolkit.widgets
You need to log in
before you can comment on or make changes to this bug.
Description
•