#13743 closed feature (fixed)
Remove jQuery.support.boxModel
Reported by: | m_gol | Owned by: | m_gol |
---|---|---|---|
Priority: | low | Milestone: | 1.10/2.0 |
Component: | support | Version: | 2.0b2 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
jQuery.support.boxModel has been deprecated since 1.3 (!), is there anything stopping us from removing it?
Saves 23 bytes in the minified & gzipped code.
Change History (18)
comment:1 Changed 10 years ago by
comment:2 Changed 10 years ago by
It'll break compatibility with 1.9, though (in a very minor way, but still). I've read about soon 1.10 plans so I suspect there were some decision changes in the roadmap?
comment:3 Changed 10 years ago by
Ref #13743. Remove support.boxModel, deprecated 1.3. Close gh-1230.
Changeset: 1233fc77883c26eeeea4847f9f0b90e07d189b90
comment:4 Changed 10 years ago by
Owner: | set to m_gol |
---|---|
Status: | new → assigned |
comment:5 Changed 10 years ago by
Milestone: | None → 1.10 |
---|
comment:6 Changed 10 years ago by
Priority: | undecided → low |
---|
comment:7 Changed 10 years ago by
Component: | unfiled → support |
---|
comment:8 Changed 10 years ago by
Milestone: | 1.10 → 1.10/2.0 |
---|
comment:9 Changed 10 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Landed in 1.x-master at https://github.com/jquery/jquery/commit/35784a824456bf87bbe2fadad2717ad4f4000d14
comment:10 Changed 10 years ago by
Umm, this is just wrong!!
jQuery.support.boxModel was NOT deprecated in v1.3
jQuery.boxModel is what was deprecated in v1.3... http://api.jquery.com/jQuery.boxModel/
The jQuery.support() function with the boxModel test was never deprecated, and is in fact the example used to show how one uses jQuery.support() in your own API Documentation!!! http://api.jquery.com/jQuery.support/
This needs to be corrected as jQuery.support.boxModel() is one of the new fallback methods developers are using to detect for old IE since $.browser is now gone!!!
comment:11 Changed 10 years ago by
As the jQuery.support
documentation says:
Since jQuery requires these tests internally, they must be performed on every page load. Although some of these properties are documented below, they are not subject to a long deprecation/removal cycle and may be removed once internal jQuery code no longer needs them.
We have not used either boxModel
property for many releases.
comment:12 Changed 10 years ago by
I definitely can't understand why $.support.boxModel has been removed in 1.10. Though this feature detection isn't used anymore in jQuery internal code, it still makes huge sense for user code, especially as the 1.x version remains for legacy browsers.
comment:13 Changed 10 years ago by
jQuery never supported quirks mode. If you are using .boxModel
you're already doing something that jQuery never supported. You can check document.compatMode === "BackCompat"
if you want to know you're in quirks.
Would it help to have that in the jQuery Migrate plugin?
comment:14 Changed 10 years ago by
@props I really don't understand what's the issue here. Are we supposed to support every little detail that has been introduced to jQuery codebase at any point in time? It's not feasible and it would seriously hamper any improvements.
It's not that we cut out any significant feature, too. Come on, the whole support.boxModel
definition was one line of code, is it that hard to replicate it in your code if you really need it? I bet 99% people using jQuery didn't use that option (which is a good practice if you ask me).
comment:15 Changed 10 years ago by
Thank you for your replies... I know of course this was not a key feature, and is easy to replace with the document.compatMode test. You may say all the developpers like you and me hate quirks mode, BUT unfortunately this is not always a choice. There are still many business apps to maintain that rely on old standards, and we can't help decide anything on this point. So yes, I often use .boxModel, as well as the (awful) $.browser... My aim is to be efficient, while keep on focusing on evolution, and that is your main idea too with the two branches. Imho the 1.x should then really keep this legendary efficiency... Anyway, having it in the migrate plugin would be a good idea. Thank you very much
comment:16 Changed 10 years ago by
I tend to agree that if one of our goals with the Migrate plugin is to allow people to be ready to transition to 2.0 and otherwise warn about things we don't want people doing, warning when people access $.support in general, in addition to just boxModel, might be a good idea to add to Migrate.
Thoughts?
comment:17 Changed 10 years ago by
I already created a ticket to add jQuery.support.boxModel
to Migrate this morning. https://github.com/jquery/jquery-migrate/issues/41
The problem with warning about any access to jQuery.support
is that we use it legitimately inside jQuery, and any warning coming from inside jQuery itself will cause problems as far as spurious messages and user confusion.
Eventually all those properties will be broken off into their corresponding modules and don't even need to be exposed, and many won't be run until they're needed. That can prevent some expensive at-ready-time reflows.
There is already a docs ticket to make the message about jQuery.support
more urgent. https://github.com/jquery/api.jquery.com/issues/315
Removing the jQuery.support
property is a possibility but would break code outside core that decided their own private feature detects should go there as well.
https://github.com/jquery/jquery-mobile/blob/master/js/jquery.mobile.support.js#L188
If we eliminated internal uses we could fully warn on *any* use of jQuery.support
and move the property to be handled and always warned by Migrate.
comment:18 Changed 10 years ago by
Also, the jQuery Migrate plugin already *warns* about quirks mode. This new feature will generate a second warning about jQuery.support.boxModel
and also restore the setting so the old code continues to work to some extent, although it's hard to say how well since we don't test with quirks so behavior isn't guaranteed across versions.
Pull requests:
1.x-master: https://github.com/jquery/jquery/pull/1231
master: https://github.com/jquery/jquery/pull/1230