[api-minor] Update the minimum supported browsers, and remove the PostCSS logical plugin
				
					
				
			The patch updates the minimum supported browsers/environments as follows: - Chrome 87, which was released on 2020-11-17; see https://en.wikipedia.org/wiki/Google_Chrome_version_history - Firefox ESR (no change); see https://wiki.mozilla.org/Release_Management/Calendar - Safari 14.1, which was released on 2021-04-26; see https://en.wikipedia.org/wiki/Safari_version_history#Safari_14 - Node.js 14 (no change); see https://en.wikipedia.org/wiki/Node.js#Releases The recent *major* release of the PostCSS `logical` plugin effectively removed support for all of the things that we used it for, which includes (but may not be limited to): preserving the original CSS code (for up-to-date browsers), re-writing the `:dir` pseudo-class, and support for re-writing `float: inline-start;`/`float: inline-end;` properties. Please find additional details at https://github.com/csstools/postcss-plugins/blob/main/plugins/postcss-logical/CHANGELOG.md#600-january-24-2023 Hence the primary reason for these changes are related to native support for *logical* CSS properties/values. Currently, in the default viewer, we're using the following ones: - https://developer.mozilla.org/en-US/docs/Web/CSS/inset-inline-start#browser_compatibility - https://developer.mozilla.org/en-US/docs/Web/CSS/inset-inline-end#browser_compatibility - https://developer.mozilla.org/en-US/docs/Web/CSS/margin-inline-start#browser_compatibility - https://developer.mozilla.org/en-US/docs/Web/CSS/margin-inline-end#browser_compatibility - https://developer.mozilla.org/en-US/docs/Web/CSS/padding-inline-start#browser_compatibility - https://developer.mozilla.org/en-US/docs/Web/CSS/padding-inline-end#browser_compatibility - https://developer.mozilla.org/en-US/docs/Web/CSS/text-align#browser_compatibility - https://developer.mozilla.org/en-US/docs/Web/CSS/float#browser_compatibility By updating the minimum supported browsers, we thus only have to worry about the *last* case here. Thankfully there's not that many `float: inline-start;`/`float: inline-end;` occurrences, and we can utilize CSS variables together with the pre-processor to support those in a way that won't affect the Firefox PDF Viewer.
This commit is contained in:
		
							parent
							
								
									f492d96301
								
							
						
					
					
						commit
						ca996d2546
					
				
							
								
								
									
										27
									
								
								gulpfile.js
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								gulpfile.js
									
									
									
									
									
								
							@ -18,7 +18,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const autoprefixer = require("autoprefixer");
 | 
					const autoprefixer = require("autoprefixer");
 | 
				
			||||||
const postcssDirPseudoClass = require("postcss-dir-pseudo-class");
 | 
					const postcssDirPseudoClass = require("postcss-dir-pseudo-class");
 | 
				
			||||||
const postcssLogical = require("postcss-logical");
 | 
					 | 
				
			||||||
const fs = require("fs");
 | 
					const fs = require("fs");
 | 
				
			||||||
const gulp = require("gulp");
 | 
					const gulp = require("gulp");
 | 
				
			||||||
const postcss = require("gulp-postcss");
 | 
					const postcss = require("gulp-postcss");
 | 
				
			||||||
@ -80,9 +79,9 @@ const config = JSON.parse(fs.readFileSync(CONFIG_FILE).toString());
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const ENV_TARGETS = [
 | 
					const ENV_TARGETS = [
 | 
				
			||||||
  "last 2 versions",
 | 
					  "last 2 versions",
 | 
				
			||||||
  "Chrome >= 85",
 | 
					  "Chrome >= 87",
 | 
				
			||||||
  "Firefox ESR",
 | 
					  "Firefox ESR",
 | 
				
			||||||
  "Safari >= 14",
 | 
					  "Safari >= 14.1",
 | 
				
			||||||
  "Node >= 14",
 | 
					  "Node >= 14",
 | 
				
			||||||
  "> 1%",
 | 
					  "> 1%",
 | 
				
			||||||
  "not IE > 0",
 | 
					  "not IE > 0",
 | 
				
			||||||
@ -912,11 +911,7 @@ function buildGeneric(defines, dir) {
 | 
				
			|||||||
    preprocessHTML("web/viewer.html", defines).pipe(gulp.dest(dir + "web")),
 | 
					    preprocessHTML("web/viewer.html", defines).pipe(gulp.dest(dir + "web")),
 | 
				
			||||||
    preprocessCSS("web/viewer.css", defines)
 | 
					    preprocessCSS("web/viewer.css", defines)
 | 
				
			||||||
      .pipe(
 | 
					      .pipe(
 | 
				
			||||||
        postcss([
 | 
					        postcss([postcssDirPseudoClass(), autoprefixer(AUTOPREFIXER_CONFIG)])
 | 
				
			||||||
          postcssLogical({ preserve: true }),
 | 
					 | 
				
			||||||
          postcssDirPseudoClass(),
 | 
					 | 
				
			||||||
          autoprefixer(AUTOPREFIXER_CONFIG),
 | 
					 | 
				
			||||||
        ])
 | 
					 | 
				
			||||||
      )
 | 
					      )
 | 
				
			||||||
      .pipe(gulp.dest(dir + "web")),
 | 
					      .pipe(gulp.dest(dir + "web")),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -993,11 +988,7 @@ function buildComponents(defines, dir) {
 | 
				
			|||||||
    gulp.src(COMPONENTS_IMAGES).pipe(gulp.dest(dir + "images")),
 | 
					    gulp.src(COMPONENTS_IMAGES).pipe(gulp.dest(dir + "images")),
 | 
				
			||||||
    preprocessCSS("web/pdf_viewer.css", defines)
 | 
					    preprocessCSS("web/pdf_viewer.css", defines)
 | 
				
			||||||
      .pipe(
 | 
					      .pipe(
 | 
				
			||||||
        postcss([
 | 
					        postcss([postcssDirPseudoClass(), autoprefixer(AUTOPREFIXER_CONFIG)])
 | 
				
			||||||
          postcssLogical({ preserve: true }),
 | 
					 | 
				
			||||||
          postcssDirPseudoClass(),
 | 
					 | 
				
			||||||
          autoprefixer(AUTOPREFIXER_CONFIG),
 | 
					 | 
				
			||||||
        ])
 | 
					 | 
				
			||||||
      )
 | 
					      )
 | 
				
			||||||
      .pipe(gulp.dest(dir)),
 | 
					      .pipe(gulp.dest(dir)),
 | 
				
			||||||
  ]);
 | 
					  ]);
 | 
				
			||||||
@ -1089,11 +1080,7 @@ function buildMinified(defines, dir) {
 | 
				
			|||||||
    preprocessHTML("web/viewer.html", defines).pipe(gulp.dest(dir + "web")),
 | 
					    preprocessHTML("web/viewer.html", defines).pipe(gulp.dest(dir + "web")),
 | 
				
			||||||
    preprocessCSS("web/viewer.css", defines)
 | 
					    preprocessCSS("web/viewer.css", defines)
 | 
				
			||||||
      .pipe(
 | 
					      .pipe(
 | 
				
			||||||
        postcss([
 | 
					        postcss([postcssDirPseudoClass(), autoprefixer(AUTOPREFIXER_CONFIG)])
 | 
				
			||||||
          postcssLogical({ preserve: true }),
 | 
					 | 
				
			||||||
          postcssDirPseudoClass(),
 | 
					 | 
				
			||||||
          autoprefixer(AUTOPREFIXER_CONFIG),
 | 
					 | 
				
			||||||
        ])
 | 
					 | 
				
			||||||
      )
 | 
					      )
 | 
				
			||||||
      .pipe(gulp.dest(dir + "web")),
 | 
					      .pipe(gulp.dest(dir + "web")),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1435,9 +1422,8 @@ gulp.task(
 | 
				
			|||||||
        preprocessCSS("web/viewer.css", defines)
 | 
					        preprocessCSS("web/viewer.css", defines)
 | 
				
			||||||
          .pipe(
 | 
					          .pipe(
 | 
				
			||||||
            postcss([
 | 
					            postcss([
 | 
				
			||||||
              postcssLogical({ preserve: true }),
 | 
					 | 
				
			||||||
              postcssDirPseudoClass(),
 | 
					              postcssDirPseudoClass(),
 | 
				
			||||||
              autoprefixer({ overrideBrowserslist: ["Chrome >= 85"] }),
 | 
					              autoprefixer({ overrideBrowserslist: ["Chrome >= 87"] }),
 | 
				
			||||||
            ])
 | 
					            ])
 | 
				
			||||||
          )
 | 
					          )
 | 
				
			||||||
          .pipe(gulp.dest(CHROME_BUILD_CONTENT_DIR + "web")),
 | 
					          .pipe(gulp.dest(CHROME_BUILD_CONTENT_DIR + "web")),
 | 
				
			||||||
@ -2005,7 +1991,6 @@ gulp.task("dev-css", function createDevCSS() {
 | 
				
			|||||||
    preprocessCSS("web/viewer.css", defines)
 | 
					    preprocessCSS("web/viewer.css", defines)
 | 
				
			||||||
      .pipe(
 | 
					      .pipe(
 | 
				
			||||||
        postcss([
 | 
					        postcss([
 | 
				
			||||||
          postcssLogical({ preserve: true }),
 | 
					 | 
				
			||||||
          postcssDirPseudoClass(),
 | 
					          postcssDirPseudoClass(),
 | 
				
			||||||
          autoprefixer({ overrideBrowserslist: ["last 1 versions"] }),
 | 
					          autoprefixer({ overrideBrowserslist: ["last 1 versions"] }),
 | 
				
			||||||
        ])
 | 
					        ])
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										20
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										20
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -49,7 +49,6 @@
 | 
				
			|||||||
        "path2d-polyfill": "^2.0.1",
 | 
					        "path2d-polyfill": "^2.0.1",
 | 
				
			||||||
        "postcss": "^8.4.21",
 | 
					        "postcss": "^8.4.21",
 | 
				
			||||||
        "postcss-dir-pseudo-class": "^7.0.0",
 | 
					        "postcss-dir-pseudo-class": "^7.0.0",
 | 
				
			||||||
        "postcss-logical": "^5.0.4",
 | 
					 | 
				
			||||||
        "prettier": "^2.8.3",
 | 
					        "prettier": "^2.8.3",
 | 
				
			||||||
        "puppeteer": "^19.0.0",
 | 
					        "puppeteer": "^19.0.0",
 | 
				
			||||||
        "rimraf": "^4.1.2",
 | 
					        "rimraf": "^4.1.2",
 | 
				
			||||||
@ -14682,18 +14681,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/postcss-logical": {
 | 
					 | 
				
			||||||
      "version": "5.0.4",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": "^12 || ^14 || >=16"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependencies": {
 | 
					 | 
				
			||||||
        "postcss": "^8.4"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/postcss-media-query-parser": {
 | 
					    "node_modules/postcss-media-query-parser": {
 | 
				
			||||||
      "version": "0.2.3",
 | 
					      "version": "0.2.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
 | 
				
			||||||
@ -29617,13 +29604,6 @@
 | 
				
			|||||||
        "yaml": "^1.10.2"
 | 
					        "yaml": "^1.10.2"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "postcss-logical": {
 | 
					 | 
				
			||||||
      "version": "5.0.4",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "requires": {}
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "postcss-media-query-parser": {
 | 
					    "postcss-media-query-parser": {
 | 
				
			||||||
      "version": "0.2.3",
 | 
					      "version": "0.2.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
 | 
				
			||||||
 | 
				
			|||||||
@ -42,7 +42,6 @@
 | 
				
			|||||||
    "path2d-polyfill": "^2.0.1",
 | 
					    "path2d-polyfill": "^2.0.1",
 | 
				
			||||||
    "postcss": "^8.4.21",
 | 
					    "postcss": "^8.4.21",
 | 
				
			||||||
    "postcss-dir-pseudo-class": "^7.0.0",
 | 
					    "postcss-dir-pseudo-class": "^7.0.0",
 | 
				
			||||||
    "postcss-logical": "^5.0.4",
 | 
					 | 
				
			||||||
    "prettier": "^2.8.3",
 | 
					    "prettier": "^2.8.3",
 | 
				
			||||||
    "puppeteer": "^19.0.0",
 | 
					    "puppeteer": "^19.0.0",
 | 
				
			||||||
    "rimraf": "^4.1.2",
 | 
					    "rimraf": "^4.1.2",
 | 
				
			||||||
 | 
				
			|||||||
@ -17,6 +17,14 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
:root {
 | 
					:root {
 | 
				
			||||||
  --dir-factor: 1;
 | 
					  --dir-factor: 1;
 | 
				
			||||||
 | 
					  /*#if MOZCENTRAL*/
 | 
				
			||||||
 | 
					  --inline-start: inline-start;
 | 
				
			||||||
 | 
					  --inline-end: inline-end;
 | 
				
			||||||
 | 
					  /*#else*/
 | 
				
			||||||
 | 
					  --inline-start: left;
 | 
				
			||||||
 | 
					  --inline-end: right;
 | 
				
			||||||
 | 
					  /*#endif*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  --sidebar-width: 200px;
 | 
					  --sidebar-width: 200px;
 | 
				
			||||||
  --sidebar-transition-duration: 200ms;
 | 
					  --sidebar-transition-duration: 200ms;
 | 
				
			||||||
  --sidebar-transition-timing-function: ease;
 | 
					  --sidebar-transition-timing-function: ease;
 | 
				
			||||||
@ -114,6 +122,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
:root:dir(rtl) {
 | 
					:root:dir(rtl) {
 | 
				
			||||||
  --dir-factor: -1;
 | 
					  --dir-factor: -1;
 | 
				
			||||||
 | 
					  /*#if !MOZCENTRAL*/
 | 
				
			||||||
 | 
					  --inline-start: right;
 | 
				
			||||||
 | 
					  --inline-end: left;
 | 
				
			||||||
 | 
					  /*#endif*/
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@media (prefers-color-scheme: dark) {
 | 
					@media (prefers-color-scheme: dark) {
 | 
				
			||||||
@ -658,11 +670,11 @@ body {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#toolbarViewerLeft,
 | 
					#toolbarViewerLeft,
 | 
				
			||||||
#toolbarSidebarLeft {
 | 
					#toolbarSidebarLeft {
 | 
				
			||||||
  float: inline-start;
 | 
					  float: var(--inline-start);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#toolbarViewerRight,
 | 
					#toolbarViewerRight,
 | 
				
			||||||
#toolbarSidebarRight {
 | 
					#toolbarSidebarRight {
 | 
				
			||||||
  float: inline-end;
 | 
					  float: var(--inline-end);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#toolbarViewerLeft > *,
 | 
					#toolbarViewerLeft > *,
 | 
				
			||||||
@ -672,7 +684,7 @@ body {
 | 
				
			|||||||
#toolbarSidebarRight *,
 | 
					#toolbarSidebarRight *,
 | 
				
			||||||
.findbar * {
 | 
					.findbar * {
 | 
				
			||||||
  position: relative;
 | 
					  position: relative;
 | 
				
			||||||
  float: inline-start;
 | 
					  float: var(--inline-start);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#toolbarViewerLeft {
 | 
					#toolbarViewerLeft {
 | 
				
			||||||
@ -690,7 +702,7 @@ body {
 | 
				
			|||||||
  display: inline-block;
 | 
					  display: inline-block;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.splitToolbarButton > .toolbarButton {
 | 
					.splitToolbarButton > .toolbarButton {
 | 
				
			||||||
  float: inline-start;
 | 
					  float: var(--inline-start);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.toolbarButton,
 | 
					.toolbarButton,
 | 
				
			||||||
@ -740,7 +752,7 @@ body {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.splitToolbarButtonSeparator {
 | 
					.splitToolbarButtonSeparator {
 | 
				
			||||||
  float: inline-start;
 | 
					  float: var(--inline-start);
 | 
				
			||||||
  margin: 4px 0;
 | 
					  margin: 4px 0;
 | 
				
			||||||
  width: 1px;
 | 
					  width: 1px;
 | 
				
			||||||
  height: 20px;
 | 
					  height: 20px;
 | 
				
			||||||
@ -1169,7 +1181,7 @@ a.secondaryToolbarButton[href="#"] {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.thumbnail {
 | 
					.thumbnail {
 | 
				
			||||||
  float: inline-start;
 | 
					  float: var(--inline-start);
 | 
				
			||||||
  margin: 0 10px 5px;
 | 
					  margin: 0 10px 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1251,13 +1263,13 @@ a:focus > .thumbnail > .thumbnailSelectionRing,
 | 
				
			|||||||
  padding-inline-start: 4px;
 | 
					  padding-inline-start: 4px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#layersView .treeItem > a > label > input {
 | 
					#layersView .treeItem > a > label > input {
 | 
				
			||||||
  float: inline-start;
 | 
					  float: var(--inline-start);
 | 
				
			||||||
  margin-top: 1px;
 | 
					  margin-top: 1px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.treeItemToggler {
 | 
					.treeItemToggler {
 | 
				
			||||||
  position: relative;
 | 
					  position: relative;
 | 
				
			||||||
  float: inline-start;
 | 
					  float: var(--inline-start);
 | 
				
			||||||
  height: 0;
 | 
					  height: 0;
 | 
				
			||||||
  width: 0;
 | 
					  width: 0;
 | 
				
			||||||
  color: rgba(255, 255, 255, 0.5);
 | 
					  color: rgba(255, 255, 255, 0.5);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user