Closed
Bug 209884
Opened 21 years ago
Closed 21 years ago
Fix bad users of JS_GetContextPrivate()
Categories
(Core :: DOM: Core & HTML, defect)
Core
DOM: Core & HTML
Tracking
()
RESOLVED
FIXED
People
(Reporter: jst, Unassigned)
Details
Attachments
(1 file)
44.47 KB,
patch
|
caillon
:
review+
peterv
:
superreview+
|
Details | Diff | Splinter Review |
Some of our JS_GetContextPrivate() callers assume there's an nsIScriptContext as the contexts private, that's not necessarily true, and we have ways to verify that...
Reporter | ||
Comment 1•21 years ago
|
||
This fixes all bad callers, but it makes everyone who depends on the dom's nsIScriptContext now also depend on the js module, kinda lame, but not really. Thoughts?
Reporter | ||
Updated•21 years ago
|
Attachment #125986 -
Flags: superreview?(peterv)
Attachment #125986 -
Flags: review?(caillon)
Comment 2•21 years ago
|
||
Comment on attachment 125986 [details] [diff] [review] Add an inline helper to nsIScriptContext to safely get the nsIScriptContext from a JSContext Is there a way we can get rid of the multiple helpers which do the same thing? E.g. nsContentUtils::GetDynamicScriptContext, nsJSUtils::GetDynamicScriptContext, etc? Would it make sense to make GetScriptContextFromJSContext() a static instead of an inline and get rid of those helpers?
Reporter | ||
Comment 3•21 years ago
|
||
We can't do that due to linkage issues (if we did, we'd need to start making things link with the DOM component, not cool). The idea is to have the logic in an inline helper and in libraries where this is used a lot, we wrap the inline helper in a library-local function to reduce number of copies of the code in the inline helper.
Comment 4•21 years ago
|
||
Comment on attachment 125986 [details] [diff] [review] Add an inline helper to nsIScriptContext to safely get the nsIScriptContext from a JSContext Okay. r=caillon
Attachment #125986 -
Flags: review?(caillon) → review+
Updated•21 years ago
|
Attachment #125986 -
Flags: superreview?(peterv) → superreview+
Reporter | ||
Comment 5•21 years ago
|
||
FIXED.
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Comment 6•21 years ago
|
||
I think this should be changed too: http://lxr.mozilla.org/seamonkey/source/extensions/xmlextras/base/src/nsDOMParser.cpp#472
Reporter | ||
Comment 7•21 years ago
|
||
Good catch, fix checked in.
tbox shown large code size increase libjsdom.so Total: +6704 (+11164/-4460) Code: +6404 (+6408/-4) Data: +300 (+4756/-4456) +6404 (+6408/-4) T (CODE) +6404 (+6408/-4) UNDEF:libjsdom.so:T +1036 ToLowerCase(nsAString const &, nsAString &) +1036 ToUpperCase(nsAString const &, nsAString &) +724 LocaleCompare(JSContext *, JSString *, JSString *, long *) +472 ToLowerCase(nsAString &) +472 ToUpperCase(nsAString &) +416 NS_InitCaseConversion(void) +296 ChangeCase(JSContext *, JSString *, long *, void (*)(nsAString const &, nsAString &)) +248 nsCaseInsensitiveStringComparator::operator()(unsigned short, unsigned short) const +192 nsShutdownObserver::QueryInterface(nsID const &, void **) +156 ToUpperCase(unsigned short) +148 ToLowerCase(unsigned short) +124 nsCaseInsensitiveStringComparator::operator()(unsigned short const *, unsigned short const *, unsigned int) const +120 ToLowerCase(nsASingleFragmentString &) +120 ToUpperCase(nsASingleFragmentString &) +92 nsShutdownObserver::Observe(nsISupports *, char const *, unsigned short const *) +72 ToLowerCase(nsString &) +72 ToUpperCase(nsString &) +68 CaseInsensitiveFindInReadable(nsAString const &, nsReadingIterator<unsigned short> &, nsReadingIterator<unsigned short> &) +60 nsShutdownObserver::Release(void) +60 nsShutdownObserver::~nsShutdownObserver(void) +56 nsShutdownObserver::nsShutdownObserver(void) +52 LocationImpl::SetHrefWithBase(nsAString const &, nsIURI *, int) +44 LocaleToLowerCase(JSContext *, JSString *, long *) +44 LocaleToUpperCase(JSContext *, JSString *, long *) +40 nsJSEnvironment::ShutDown(void) +36 nsJSContext::~nsJSContext(void) +28 nsICaseConversion::GetIID(void) +28 nsICollationFactory::GetIID(void) +28 nsILocaleService::GetIID(void) +24 nsJSUtils::GetDynamicScriptContext(JSContext *, nsIScriptContext **) +20 nsJSContext::nsJSContext(JSRuntime *) +16 nsShutdownObserver::AddRef(void) +8 GlobalWindowImpl::SecurityCheckURL(char const *) -4 GlobalWindowImpl::Close(void) +208 (+1396/-1188) R (DATA) +208 (+1396/-1188) UNDEF:libjsdom.so:R +724 kEventListenerManagerCID.7424 +391 prefix_nsI.5203 +104 format.1908 +96 kWindowMediatorCID +24 kCollationFactoryCID +16 _Q216nsILocaleService29GetIID__16nsILocaleService..0.iid +16 _Q217nsICaseConversion30GetIID__17nsICaseConversion..0.iid +16 _Q219nsICollationFactory32GetIID__19nsICollationFactory..0.iid +7 prefix_nsIDOM.5202 +2 EIGHT_BIT.7306 -2 EIGHT_BIT.7294 -7 prefix_nsIDOM.5199 -27 kJSRuntimeServiceContractID -37 kScriptSecurityManagerContractID -391 prefix_nsI.5200 -724 kEventListenerManagerCID.7412 +56 (+228/-172) D (DATA) +56 (+228/-172) UNDEF:libjsdom.so:D +64 hash_table_ops.2079 +64 nsDOMSOFactory virtual table +32 nsShutdownObserver virtual table +24 first.3881 +24 nsCaseInsensitiveStringComparator virtual table +12 localeCallbacks.3508 +4 count.5652 +4 gCaseConv -4 sSecurityManager -4 sRuntimeService -4 sReadyForGC -4 sGCTimer -4 sDidShutdown -4 sContextCount -4 nsJSEnvironment::sRuntime -4 first.3790 -4 errorDepth.3150 -4 count.5649 -12 gEventArgv -20 isInitialized.3800 -36 force_to_data -64 hash_table_ops.2076 +36 (+3132/-3096) B (DATA) +36 (+3132/-3096) UNDEF:libjsdom.so:B +52 interface_list.5377 +52 interface_list.5415 +52 interface_list.5617 +48 interface_list.5583 +44 interface_list.5511 +40 interface_list.5609 +36 interface_list.5611 +32 interface_list.5357 +32 interface_list.5513 +28 gCollation +28 interface_list.5413 +28 interface_list.5425 +28 interface_list.5429 +28 interface_list.5439 +28 interface_list.5455 +28 interface_list.5457 +28 interface_list.5469 +28 interface_list.5471 +28 interface_list.5473 +28 interface_list.5485 +28 interface_list.5501 +28 interface_list.5519 +28 interface_list.5535 +24 _.tmp_130.5618 +24 interface_list.5411 +24 interface_list.5427 +24 interface_list.5431 +24 interface_list.5433 +24 interface_list.5435 +24 interface_list.5437 +24 interface_list.5441 +24 interface_list.5443 +24 interface_list.5445 +24 interface_list.5447 +24 interface_list.5449 +24 interface_list.5451 +24 interface_list.5453 +24 interface_list.5459 +24 interface_list.5461 +24 interface_list.5463 +24 interface_list.5465 +24 interface_list.5467 +24 interface_list.5475 +24 interface_list.5477 +24 interface_list.5479 +24 interface_list.5481 +24 interface_list.5483 +24 interface_list.5487 +24 interface_list.5489 +24 interface_list.5491 +24 interface_list.5493 +24 interface_list.5495 +24 interface_list.5497 +24 interface_list.5499 +24 interface_list.5503 +24 interface_list.5505 +24 interface_list.5507 +24 interface_list.5509 +24 interface_list.5515 +24 interface_list.5517 +24 interface_list.5521 +24 interface_list.5523 +24 interface_list.5525 +24 interface_list.5527 +24 interface_list.5529 +24 interface_list.5531 +24 interface_list.5533 +24 interface_list.5537 +24 interface_list.5539 +24 interface_list.5541 +24 interface_list.5543 +16 interface_list.5375 +16 interface_list.5387 +16 interface_list.5391 +16 interface_list.5393 +16 interface_list.5395 +16 interface_list.5397 +16 interface_list.5419 +16 interface_list.5565 +16 interface_list.5567 +16 interface_list.5615 +12 interface_list.5359 +12 interface_list.5361 +12 interface_list.5365 +12 interface_list.5373 +12 interface_list.5379 +12 interface_list.5383 +12 interface_list.5385 +12 interface_list.5389 +12 interface_list.5417 +12 interface_list.5421 +12 interface_list.5577 +12 interface_list.5581 +12 interface_list.5585 +12 interface_list.5601 +12 interface_list.5613 +8 interface_list.5363 +8 interface_list.5367 +8 interface_list.5369 +8 interface_list.5371 +8 interface_list.5381 +8 interface_list.5399 +8 interface_list.5401 +8 interface_list.5403 +8 interface_list.5405 +8 interface_list.5407 +8 interface_list.5409 +8 interface_list.5423 +8 interface_list.5545 +8 interface_list.5547 +8 interface_list.5549 +8 interface_list.5551 +8 interface_list.5553 +8 interface_list.5555 +8 interface_list.5557 +8 interface_list.5559 +8 interface_list.5561 +8 interface_list.5563 +8 interface_list.5569 +8 interface_list.5571 +8 interface_list.5573 +8 interface_list.5575 +8 interface_list.5579 +8 interface_list.5587 +8 interface_list.5589 +8 interface_list.5591 +8 interface_list.5593 +8 interface_list.5595 +8 interface_list.5597 +8 interface_list.5599 +8 interface_list.5603 +8 interface_list.5605 +8 interface_list.5607 +4 _.tmp_0.5358 +4 _.tmp_1.5360 +4 _.tmp_10.5378 +4 _.tmp_100.5558 +4 _.tmp_101.5560 +4 _.tmp_102.5562 +4 _.tmp_103.5564 +4 _.tmp_104.5566 +4 _.tmp_105.5568 +4 _.tmp_106.5570 +4 _.tmp_107.5572 +4 _.tmp_108.5574 +4 _.tmp_109.5576 +4 _.tmp_11.5380 +4 _.tmp_110.5578 +4 _.tmp_111.5580 +4 _.tmp_112.5582 +4 _.tmp_113.5584 +4 _.tmp_114.5586 +4 _.tmp_115.5588 +4 _.tmp_116.5590 +4 _.tmp_117.5592 +4 _.tmp_118.5594 +4 _.tmp_119.5596 +4 _.tmp_12.5382 +4 _.tmp_120.5598 +4 _.tmp_121.5600 +4 _.tmp_122.5602 +4 _.tmp_123.5604 +4 _.tmp_124.5606 +4 _.tmp_125.5608 +4 _.tmp_126.5610 +4 _.tmp_127.5612 +4 _.tmp_128.5614 +4 _.tmp_129.5616 +4 _.tmp_13.5384 +4 _.tmp_131.6247 +4 _.tmp_14.5386 +4 _.tmp_15.5388 +4 _.tmp_16.5390 +4 _.tmp_17.5392 +4 _.tmp_18.5394 +4 _.tmp_19.5396 +4 _.tmp_2.5362 +4 _.tmp_20.5398 +4 _.tmp_21.5400 +4 _.tmp_22.5402 +4 _.tmp_23.5404 +4 _.tmp_24.5406 +4 _.tmp_25.5408 +4 _.tmp_26.5410 +4 _.tmp_27.5412 +4 _.tmp_28.5414 +4 _.tmp_29.5416 +4 _.tmp_3.5364 +4 _.tmp_30.5418 +4 _.tmp_31.5420 +4 _.tmp_32.5422 +4 _.tmp_33.5424 +4 _.tmp_34.5426 +4 _.tmp_35.5428 +4 _.tmp_36.5430 +4 _.tmp_37.5432 +4 _.tmp_38.5434 +4 _.tmp_39.5436 +4 _.tmp_4.5366 +4 _.tmp_40.5438 +4 _.tmp_41.5440 +4 _.tmp_42.5442 +4 _.tmp_43.5444 +4 _.tmp_44.5446 +4 _.tmp_45.5448 +4 _.tmp_46.5450 +4 _.tmp_47.5452 +4 _.tmp_48.5454 +4 _.tmp_49.5456 +4 _.tmp_5.5368 +4 _.tmp_50.5458 +4 _.tmp_51.5460 +4 _.tmp_52.5462 +4 _.tmp_53.5464 +4 _.tmp_54.5466 +4 _.tmp_55.5468 +4 _.tmp_56.5470 +4 _.tmp_57.5472 +4 _.tmp_58.5474 +4 _.tmp_59.5476 +4 _.tmp_6.5370 +4 _.tmp_60.5478 +4 _.tmp_61.5480 +4 _.tmp_62.5482 +4 _.tmp_63.5484 +4 _.tmp_64.5486 +4 _.tmp_65.5488 +4 _.tmp_66.5490 +4 _.tmp_67.5492 +4 _.tmp_68.5494 +4 _.tmp_69.5496 +4 _.tmp_7.5372 +4 _.tmp_70.5498 +4 _.tmp_71.5500 +4 _.tmp_72.5502 +4 _.tmp_73.5504 +4 _.tmp_74.5506 +4 _.tmp_75.5508 +4 _.tmp_76.5510 +4 _.tmp_77.5512 +4 _.tmp_78.5514 +4 _.tmp_79.5516 +4 _.tmp_8.5374 +4 _.tmp_80.5518 +4 _.tmp_81.5520 +4 _.tmp_82.5522 +4 _.tmp_83.5524 +4 _.tmp_84.5526 +4 _.tmp_85.5528 +4 _.tmp_86.5530 +4 _.tmp_87.5532 +4 _.tmp_88.5534 +4 _.tmp_89.5536 +4 _.tmp_9.5376 +4 _.tmp_90.5538 +4 _.tmp_91.5540 +4 _.tmp_92.5542 +4 _.tmp_93.5544 +4 _.tmp_94.5546 +4 _.tmp_95.5548 +4 _.tmp_96.5550 +4 _.tmp_97.5552 +4 _.tmp_98.5554 +4 _.tmp_99.5556 +4 errorDepth.3174 +4 isInitialized.3891 +4 nsJSEnvironment::sRuntime +4 sContextCount +4 sDidShutdown +4 sGCTimer +4 sReadyForGC +4 sRuntimeService +4 sSecurityManager +4 sSupportsIID.6246 -4 sSupportsIID.6243 -4 _.tmp_99.5553 -4 _.tmp_98.5551 -4 _.tmp_97.5549 -4 _.tmp_96.5547 -4 _.tmp_95.5545 -4 _.tmp_94.5543 -4 _.tmp_93.5541 -4 _.tmp_92.5539 -4 _.tmp_91.5537 -4 _.tmp_90.5535 -4 _.tmp_9.5373 -4 _.tmp_89.5533 -4 _.tmp_88.5531 -4 _.tmp_87.5529 -4 _.tmp_86.5527 -4 _.tmp_85.5525 -4 _.tmp_84.5523 -4 _.tmp_83.5521 -4 _.tmp_82.5519 -4 _.tmp_81.5517 -4 _.tmp_80.5515 -4 _.tmp_8.5371 -4 _.tmp_79.5513 -4 _.tmp_78.5511 -4 _.tmp_77.5509 -4 _.tmp_76.5507 -4 _.tmp_75.5505 -4 _.tmp_74.5503 -4 _.tmp_73.5501 -4 _.tmp_72.5499 -4 _.tmp_71.5497 -4 _.tmp_70.5495 -4 _.tmp_7.5369 -4 _.tmp_69.5493 -4 _.tmp_68.5491 -4 _.tmp_67.5489 -4 _.tmp_66.5487 -4 _.tmp_65.5485 -4 _.tmp_64.5483 -4 _.tmp_63.5481 -4 _.tmp_62.5479 -4 _.tmp_61.5477 -4 _.tmp_60.5475 -4 _.tmp_6.5367 -4 _.tmp_59.5473 -4 _.tmp_58.5471 -4 _.tmp_57.5469 -4 _.tmp_56.5467 -4 _.tmp_55.5465 -4 _.tmp_54.5463 -4 _.tmp_53.5461 -4 _.tmp_52.5459 -4 _.tmp_51.5457 -4 _.tmp_50.5455 -4 _.tmp_5.5365 -4 _.tmp_49.5453 -4 _.tmp_48.5451 -4 _.tmp_47.5449 -4 _.tmp_46.5447 -4 _.tmp_45.5445 -4 _.tmp_44.5443 -4 _.tmp_43.5441 -4 _.tmp_42.5439 -4 _.tmp_41.5437 -4 _.tmp_40.5435 -4 _.tmp_4.5363 -4 _.tmp_39.5433 -4 _.tmp_38.5431 -4 _.tmp_37.5429 -4 _.tmp_36.5427 -4 _.tmp_35.5425 -4 _.tmp_34.5423 -4 _.tmp_33.5421 -4 _.tmp_32.5419 -4 _.tmp_31.5417 -4 _.tmp_30.5415 -4 _.tmp_3.5361 -4 _.tmp_29.5413 -4 _.tmp_28.5411 -4 _.tmp_27.5409 -4 _.tmp_26.5407 -4 _.tmp_25.5405 -4 _.tmp_24.5403 -4 _.tmp_23.5401 -4 _.tmp_22.5399 -4 _.tmp_21.5397 -4 _.tmp_20.5395 -4 _.tmp_2.5359 -4 _.tmp_19.5393 -4 _.tmp_18.5391 -4 _.tmp_17.5389 -4 _.tmp_16.5387 -4 _.tmp_15.5385 -4 _.tmp_14.5383 -4 _.tmp_131.6244 -4 _.tmp_13.5381 -4 _.tmp_129.5613 -4 _.tmp_128.5611 -4 _.tmp_127.5609 -4 _.tmp_126.5607 -4 _.tmp_125.5605 -4 _.tmp_124.5603 -4 _.tmp_123.5601 -4 _.tmp_122.5599 -4 _.tmp_121.5597 -4 _.tmp_120.5595 -4 _.tmp_12.5379 -4 _.tmp_119.5593 -4 _.tmp_118.5591 -4 _.tmp_117.5589 -4 _.tmp_116.5587 -4 _.tmp_115.5585 -4 _.tmp_114.5583 -4 _.tmp_113.5581 -4 _.tmp_112.5579 -4 _.tmp_111.5577 -4 _.tmp_110.5575 -4 _.tmp_11.5377 -4 _.tmp_109.5573 -4 _.tmp_108.5571 -4 _.tmp_107.5569 -4 _.tmp_106.5567 -4 _.tmp_105.5565 -4 _.tmp_104.5563 -4 _.tmp_103.5561 -4 _.tmp_102.5559 -4 _.tmp_101.5557 -4 _.tmp_100.5555 -4 _.tmp_10.5375 -4 _.tmp_1.5357 -4 _.tmp_0.5355 -8 interface_list.5604 -8 interface_list.5602 -8 interface_list.5600 -8 interface_list.5596 -8 interface_list.5594 -8 interface_list.5592 -8 interface_list.5590 -8 interface_list.5588 -8 interface_list.5586 -8 interface_list.5584 -8 interface_list.5576 -8 interface_list.5572 -8 interface_list.5570 -8 interface_list.5568 -8 interface_list.5566 -8 interface_list.5560 -8 interface_list.5558 -8 interface_list.5556 -8 interface_list.5554 -8 interface_list.5552 -8 interface_list.5550 -8 interface_list.5548 -8 interface_list.5546 -8 interface_list.5544 -8 interface_list.5542 -8 interface_list.5420 -8 interface_list.5406 -8 interface_list.5404 -8 interface_list.5402 -8 interface_list.5400 -8 interface_list.5398 -8 interface_list.5396 -8 interface_list.5378 -8 interface_list.5368 -8 interface_list.5366 -8 interface_list.5364 -8 interface_list.5360 -12 interface_list.5610 -12 interface_list.5598 -12 interface_list.5582 -12 interface_list.5578 -12 interface_list.5574 -12 interface_list.5418 -12 interface_list.5414 -12 interface_list.5386 -12 interface_list.5382 -12 interface_list.5380 -12 interface_list.5376 -12 interface_list.5370 -12 interface_list.5362 -12 interface_list.5358 -12 interface_list.5356 -16 interface_list.5612 -16 interface_list.5564 -16 interface_list.5562 -16 interface_list.5416 -16 interface_list.5394 -16 interface_list.5392 -16 interface_list.5390 -16 interface_list.5388 -16 interface_list.5384 -16 interface_list.5372 -24 interface_list.5540 -24 interface_list.5538 -24 interface_list.5536 -24 interface_list.5534 -24 interface_list.5530 -24 interface_list.5528 -24 interface_list.5526 -24 interface_list.5524 -24 interface_list.5522 -24 interface_list.5520 -24 interface_list.5518 -24 interface_list.5514 -24 interface_list.5512 -24 interface_list.5506 -24 interface_list.5504 -24 interface_list.5502 -24 interface_list.5500 -24 interface_list.5496 -24 interface_list.5494 -24 interface_list.5492 -24 interface_list.5490 -24 interface_list.5488 -24 interface_list.5486 -24 interface_list.5484 -24 interface_list.5480 -24 interface_list.5478 -24 interface_list.5476 -24 interface_list.5474 -24 interface_list.5472 -24 interface_list.5464 -24 interface_list.5462 -24 interface_list.5460 -24 interface_list.5458 -24 interface_list.5456 -24 interface_list.5450 -24 interface_list.5448 -24 interface_list.5446 -24 interface_list.5444 -24 interface_list.5442 -24 interface_list.5440 -24 interface_list.5438 -24 interface_list.5434 -24 interface_list.5432 -24 interface_list.5430 -24 interface_list.5428 -24 interface_list.5424 -24 interface_list.5408 -24 _.tmp_130.5615 -28 interface_list.5532 -28 interface_list.5516 -28 interface_list.5498 -28 interface_list.5482 -28 interface_list.5470 -28 interface_list.5468 -28 interface_list.5466 -28 interface_list.5454 -28 interface_list.5452 -28 interface_list.5436 -28 interface_list.5426 -28 interface_list.5422 -28 interface_list.5410 -28 gOldJSGCCallback -32 interface_list.5510 -32 interface_list.5354 -36 interface_list.5608 -40 interface_list.5606 -44 interface_list.5508 -48 interface_list.5580 -52 interface_list.5614 -52 interface_list.5412 -52 interface_list.5374
Updated•5 years ago
|
Component: DOM → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•