Skip to content

Commit

Permalink
Merge pull request #2106 from WPO-Foundation/adr3
Browse files Browse the repository at this point in the history
Added ADR #3 re: jQuery
  • Loading branch information
stoyan authored Aug 18, 2022
2 parents f0f27af + be4c674 commit 59871a6
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions docs/adr/0003-remove-jquery-dependency.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Remove jQuery and jQuery UI dependencies

πŸ“† **Updated**: Aug 17, 2022

πŸ™‹πŸ½β€β™€οΈ **Status** Proposed

## ℹ️ Context

- The current use of jQuery 1.7.1 is a low vulnerability (XSS)
- The version is old and new changes are a bit of a pain (e.g. need to read old API docs)
- The version can be upgraded but that takes effort (same as above, APIs have changed)
- It's currently responsible for 80%+ (LOC) in `site.js`
- We don't support legacy browsers, such as IE, anymore

## πŸ€” Decision

Remove jQuery and jQuery UI dependencies. We will be using vanilla JavaScript, rather than immediately switching to another framework, to keep the performance overhead to a minimum.

## 🎬 Consequences

- Remove XSS vulnerability
- Lighter pages
- We can take advantage of everything the web platform had to offer without a layer of a polyfill-style library

## Process

We need to move each jQuery/jQueryUI piece one at a time and once we're done, delete the jQ\* code. A list of features we currently use (possibly incomplete):

- dialogs
- tabs
- dragging and resizing
- viewport offsets
- sizing elements
- getting OS scrollbar width
- displaying local time
- tooltips
- scroll handling and animation
- editting test labels via async requests (`$.ajax`)
- sortable tables (Request Details) which is implementation #3 in addition to a new DIY one and one from Google JS APIs

As prep work, move all jQ* dependencies out of `site.js` so it's easier to tell application callsites vs internal dependencies. Some of the jQ* code is not minified so it's not immediately obvious if this is application code.

## πŸ“ Changelog

- 07/07/2022 Proposed
- 08/17/2022 Comments addressed

0 comments on commit 59871a6

Please sign in to comment.