Commit Graph

378 Commits

Author SHA1 Message Date
Michał Gołębiowski-Owczarek
95e34b6955
Docs: Replace #NUMBER Trac issue references with trac-NUMBER
This is a version of gh-4993 for the `3.x-stable` branch.

The GitHub UI treats `#NUMBER` as referring to its own issues which is confusing
when in jQuery source it's usually referring to the old deprecated Trac instance
at https://bugs.jquery.com. This change replaces all such Trac references with
`trac-NUMBER`.

A few of the references came with the Sizzle integration and referred to the
Sizzle GitHub bug tracker. Those have been replaced with full links instead.

A new entry describing issue reference conventions has been added to README.

Closes gh-4994
Ref gh-4993
Ref 5d5ea01511
2022-01-12 23:23:10 +01:00
Michał Gołębiowski-Owczarek
924b515dd3
Manipulation: Don't remove HTML comments from scripts
When evaluating scripts, jQuery strips out the possible wrapping HTML comment
and a CDATA section. However, all supported browsers are already doing that
when loading JS via appending a script tag to the DOM which is how we've been
doing `jQuery.globalEval` since jQuery 3.0.0. jQuery logic was imperfect, e.g.
it just stripped the `<!--` and `-->` markers, respectively at the beginning or
the end of the script contents. However, browsers are also stripping everything
following those markers in the same line, treating them as single-line comments
delimiters; this is now also mandated by ECMAScript 2015 in Annex B. Instead
of fixing the jQuery logic, just let the browser do its thing.

We still need to strip CDATA sections for backwards compatibility. This
shouldn't be needed as in XML documents they're already not visible when
inspecting element contents and in HTML documents they have no meaning but
we're preserving that logic for backwards compatibility. This will be removed
completely in 4.0.

Fixes gh-4904
Closes gh-4905
Ref gh-4906
2021-07-19 19:15:27 +02:00
Michał Gołębiowski-Owczarek
1d61fd9407 Manipulation: Make jQuery.htmlPrefilter an identity function
Closes gh-4642

(cherry picked from 90fed4b453)
2020-03-16 21:59:49 +01:00
Michał Gołębiowski-Owczarek
413ff796ae Data:Event:Manipulation: Prevent collisions with Object.prototype
Make sure events & data keys matching Object.prototype properties work.
A separate fix for such events on cloned elements was added as well.

Fixes gh-3256
Closes gh-4603

(cherry picked from commit 9d76c0b163)
2020-03-02 23:05:58 +01:00
Michał Gołębiowski-Owczarek
3dedc3f2d4 Core: Fire iframe script in its context, add doc param in globalEval
1. Support passing custom document to jQuery.globalEval; the script will be
   invoked in the context of this document.
2. Fire external scripts appended to iframe contents in that iframe context;
   this was already supported & tested for inline scripts but not for external
   ones.

Fixes gh-4518
Closes gh-4601

(cherry picked from commit 4592595b47)
2020-02-10 19:20:50 +01:00
Ahmed.S.ElAfifi
2f666c1dab Core: Use Array.prototype.flat where supported
Calling `Array.prototype.concat.apply( [], inputArray )` to flatten `inputArray`
crashes for large arrays; using `Array.prototype.flat` avoids these issues in
browsers that support it. In case it's necessary to support these large arrays
even in older browsers, a polyfill for `Array.prototype.flat` can be loaded.
This is already being done by many applications.

(cherry picked from 9df4f1de12)

Fixes gh-4320
Closes gh-4459
2019-09-25 17:49:32 +02:00
buddh4
005040379d Core: Preserve CSP nonce on scripts with src attribute in DOM manipulation
Fixes gh-4323
Closes gh-4328
2019-03-25 18:14:24 +01:00
Richard Gibson
669f720edc Event: Leverage native events for focus/blur/click; propagate additional data
Summary of the changes/fixes:
1. Trigger checkbox and radio click events identically (cherry-picked from
   b442abacbb that was reverted before).
2. Manually trigger a native event before checkbox/radio handlers.
3. Add test coverage for triggering namespaced native-backed events.
4. Propagate extra parameters passed when triggering the click event to
   the handlers.
5. Intercept and preserve namespaced native-backed events.
6. Leverage native events for focus and blur.
7. Accept that focusin handlers may fire more than once for now.

Fixes gh-1741
Fixes gh-3423
Fixes gh-3751
Fixes gh-4139
Closes gh-4279
Ref gh-1367
Ref gh-3494
2019-03-20 16:40:16 +01:00
Michał Gołębiowski-Owczarek
5bdc85b82b
Core: Support passing nonce through jQuery.globalEval
Fixes gh-4278
Closes gh-4280
Ref gh-3541
Ref gh-4269
2019-01-21 18:42:39 +01:00
Michał Gołębiowski-Owczarek
e4de8b4626
Manipulation: Respect script nomodule attribute in DOM manipulation
PR #3869 added support for `<script type="module">` & some support for
the `nomodule` attribute but with no tests for `nomodule` and with the
attribute only respected on inline scripts. This commit adds support for
source-based scripts as well. It also adds tests for `nomodule`, including
making sure legacy browsers execute such scripts as they'd natively do - that's
the whole point of `nomodule` scripts, after all.

Fixes gh-4281
Closes gh-4282
Ref gh-3871
Ref gh-3869
2019-01-21 18:34:40 +01:00
Saptak Sengupta
9b77def560 Core: Recognize Shadow DOM in attachment checks
Allow `isAttached` to check Shadow DOM for attachment.

Fixes gh-3504
Closes gh-3996
Ref gh-3977
2018-11-09 12:15:31 +01:00
Saptak Sengupta
662083ed7b Core: Use isAttached to check for attachment of element
This change replaces the use of contains to check for attachment
by isAttached function

Closes gh-3977
Ref gh-3504
2018-03-05 18:57:03 +01:00
basil.belokon
5d3a968e03
Manipulation: Add support for scripts with module type
Fixes gh-3871
Close gh-3869
2018-01-16 11:39:16 -05:00
Jason Bedard
3d732cca6b Core: deprecate jQuery.isFunction
Fixes gh-3609
2018-01-15 09:26:19 -08:00
Timmy Willison
a88b48eab1
Manipulation: use .children to select tbody elements
- selectors beginning with a child combinator are not valid natively.
  This fixes the tests when using selector-native.js
2018-01-08 11:39:29 -05:00
Richard Gibson
0aa832afec
Manipulation: Reduce size by eliminating single-use variable
Closes gh-3851
2017-11-22 14:43:44 -05:00
Michał Gołębiowski
731c501155 Docs:Tests: Update IE/Edge-related support comments & tests
Closes gh-3661
2017-05-15 20:37:14 +02:00
Timmy Willison
4d6b4536b2
Revert "Event: Trigger checkbox and radio click events identically"
This reverts commit b442abacbb.
2017-03-20 12:24:49 -04:00
Timmy Willison
56136897f2
Build: fix tests in AMD mode
- nodeName was included at the wrong spot in dependency lists
2017-03-06 18:31:44 -05:00
karan-96
ac9e301664 Core: Deprecate jQuery.nodeName
Fixes gh-3475
Closes gh-3505
2017-03-01 11:48:11 +01:00
Alex Padilla
b442abacbb Event: Trigger checkbox and radio click events identically
Fixes gh-3423
Closes gh-3494
2017-01-19 16:51:49 -05:00
Richard Gibson
efdb8a46e4 Manipulation: Restrict the tbody search to child nodes
For performance, use a querySelectorAll path instead of Javascript iteration.
http://codepen.io/anon/pen/vywJjx?editors=1010

Fixes gh-3439
Closes gh-3463
2017-01-09 11:37:12 -08:00
Oleg Gaidarenko
58c6ca9822 Build: ESLint details
Use eslint pragmas, fix new errors, etc

Closes gh-3148
2016-06-11 10:41:33 +03:00
Michał Gołębiowski
305f193aa5 Build: Put all AMD modules in "src/" in strict mode
Fixes gh-3073
2016-04-25 20:25:08 +02:00
Michał Gołębiowski
6072d150d6 Docs: Update support comments to follow the new syntax
The changes follow the spec proposed in:
https://github.com/jquery/contribute.jquery.org/issues/95#issuecomment-69379197
2016-03-30 23:45:17 +02:00
Michał Gołębiowski
693f1b537b Docs: Update support comments related to IE
All support comments were checked for Edge applicability.
2016-03-30 11:21:36 +02:00
Jon Dufresne
b0b280cd61 Docs: Updated links to https where they are supported.
Close gh-2746
2016-01-13 13:26:10 -05:00
Leonardo Braga
fb9472c7fb Manipulation: Bring tagname regexes up to spec
Fixes gh-2005
Closes gh-2634
2016-01-07 16:48:49 -05:00
Oleg Gaidarenko
6680c1b29e Core: do not expose second argument of the jQuery.globalEval
Closes jquery/api.jquery.com#831
Closes gh-2718
2015-12-02 17:09:01 +03:00
Timmy Willison
22449eb968 Manipulation: execute scripts from iframe in the iframe's context
Fixes gh-1757
Close gh-2696
2015-11-09 14:14:30 -05:00
Jason Bedard
0e982433eb Data: avoid using delete on DOM nodes
Closes gh-2479
2015-09-08 20:22:54 +02:00
Sean Henderson
d4def22e4c Manipulation: Switch rnoInnerhtml to a version more performant in IE
IE versions greater than 9 do not handle the old regular expression well
with large html content. This is due to the use of a non-capturing group
after a very common html character (<).

Test suite: http://jsfiddle.net/Lwa0t5rp/3/
Microsoft bug: https://connect.microsoft.com/IE/feedback/details/1736512/

Fixes gh-2563
Closes gh-2574
2015-09-08 19:31:57 +02:00
Jason Bedard
224271982e Data: Don't expose jQuery.acceptData
jQuery.acceptData is an undocumented internal API that shouldn't be exposed.

Fixes gh-2555
2015-09-08 01:00:31 +02:00
Oleg Gaidarenko
10fdad742a Build: Update jscs and lint files
Fixes gh-2056
2015-09-07 20:03:50 +03:00
Jason Bedard
5fe76c663f Data: remove user data in cleanData
Fixes gh-2503
Closes gh-2480
2015-07-28 14:22:03 +02:00
Michał Gołębiowski
349edbd6c5 Manipulation: Remove an internal argument to the remove method
Fixes gh-2301
Closes gh-2366
2015-06-14 00:07:31 +02:00
Timmy Willison
62d5579578 Manipulation: privatize internal domManip() function
Fixes gh-2225
2015-05-05 11:53:26 -07:00
Timmy Willison
a74320fca8 Manipulation: privatize buildFragment() function
Fixes gh-2224
2015-05-05 11:44:55 -07:00
Richard Gibson
225bde37c9 Manipulation: Make an HTML interception point
Fixes gh-1747
Closes gh-2203
2015-04-30 13:15:33 -04:00
Richard Gibson
4b27ae16a2 Manipulation: Detect sneaky no-content replaceWith input
Fixes gh-2204
Ref 642e9a4557
Closes gh-1752
Closes gh-2206
2015-04-30 11:36:38 -04:00
Rick Waldron
332fd941b4 Data: restore explicit data removal of private data in cleanData.
Fixes gh-2127
Closes gh-2132
2015-03-09 13:51:16 -04:00
Rick Waldron
d702b7637a Data: move element cache to element[expando]
- avoid explicit data.discard() cleanup calls
- explicitly remove the data.events property, only when private data exists
- reduces code footprint

Fixes gh-1734
Close gh-1428
2015-03-04 17:26:47 -05:00
Oleg Gaidarenko
e984d1c79c Manipulation: don't auto-insert tbody
Fixes gh-1835
Closes gh-2021
2015-02-11 16:49:59 +03:00
Oleg Gaidarenko
0ea342a6a6 Manipulation: simplify html wrappers
Take advantage of html serialization for html wrappers - saves 26 bytes
Plus add additional test for "col" element

Closes gh-2031
Fixes gh-2002
2015-02-10 23:44:01 +03:00
Leonardo Braga
85ffc6d973 Manipulation: add support to tag-hyphenated elements
Fixes #1987
Closes gh-1988
2015-01-13 07:42:59 +03:00
Richard Gibson
53aa87f3bf Core: Standardize indexOf comparisons
not present: `< 0`
present: `> -1`
at index: `=== N`

Closes gh-1984
2015-01-10 23:47:01 -05:00
Michał Gołębiowski
740e190223 Misc: Drop support for older browsers; update support comments
That includes Opera 12.x, Firefox<29, Safari<6.0 and some hacks
for old Blackberry.

Closes gh-1820
Refs gh-1815
2014-11-03 18:37:26 +01:00
Timmy Willison
758fd6cea9 Docs: 1.x-master branch -> compat branch; 2.x branch -> master branch 2014-11-03 12:34:45 -05:00
Richard Gibson
1ae025e24f Manipulation: Tolerate XMLNode host object input to getAll
Fixes #15151
Ref 25712d77c3
Closes gh-1602
2014-09-04 02:41:57 -04:00
Timmy Willison
c869a1ef8a Build: update grunt-jscs-checker and pass with the new rules 2014-07-17 10:25:59 -07:00