summaryrefslogtreecommitdiffstats
path: root/parser/html/javasrc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:34:50 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:34:50 +0000
commitdef92d1b8e9d373e2f6f27c366d578d97d8960c6 (patch)
tree2ef34b9ad8bb9a9220e05d60352558b15f513894 /parser/html/javasrc
parentAdding debian version 125.0.3-1. (diff)
downloadfirefox-def92d1b8e9d373e2f6f27c366d578d97d8960c6.tar.xz
firefox-def92d1b8e9d373e2f6f27c366d578d97d8960c6.zip
Merging upstream version 126.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'parser/html/javasrc')
-rw-r--r--parser/html/javasrc/Tokenizer.java24
-rw-r--r--parser/html/javasrc/TreeBuilder.java23
2 files changed, 43 insertions, 4 deletions
diff --git a/parser/html/javasrc/Tokenizer.java b/parser/html/javasrc/Tokenizer.java
index 0357cd0155..6d7c349155 100644
--- a/parser/html/javasrc/Tokenizer.java
+++ b/parser/html/javasrc/Tokenizer.java
@@ -511,6 +511,8 @@ public class Tokenizer implements Locator, Locator2 {
private boolean shouldSuspend;
+ private boolean keepBuffer;
+
protected boolean confident;
private int line;
@@ -570,6 +572,7 @@ public class Tokenizer implements Locator, Locator2 {
this.systemIdentifier = null;
this.attributes = null;
this.shouldSuspend = false;
+ this.keepBuffer = false;
this.confident = false;
this.line = 0;
// CPPONLY: this.attributeLine = 0;
@@ -632,6 +635,7 @@ public class Tokenizer implements Locator, Locator2 {
// CPPONLY: this.attributes = tokenHandler.HasBuilder() ? new HtmlAttributes(mappingLangToXmlLang) : null;
// CPPONLY: this.newAttributesEachTime = !tokenHandler.HasBuilder();
this.shouldSuspend = false;
+ this.keepBuffer = false;
this.confident = false;
this.line = 0;
// CPPONLY: this.attributeLine = 0;
@@ -653,6 +657,18 @@ public class Tokenizer implements Locator, Locator2 {
// CPPONLY: return viewingXmlSource;
// CPPONLY: }
+ public void setKeepBuffer(boolean keepBuffer) {
+ this.keepBuffer = keepBuffer;
+ }
+
+ public boolean dropBufferIfLongerThan(int length) {
+ if (strBuf.length > length) {
+ strBuf = null;
+ return true;
+ }
+ return false;
+ }
+
// [NOCPP[
/**
@@ -7225,7 +7241,9 @@ public class Tokenizer implements Locator, Locator2 {
}
public void end() throws SAXException {
- strBuf = null;
+ if (!keepBuffer) {
+ strBuf = null;
+ }
doctypeName = null;
if (systemIdentifier != null) {
Portability.releaseString(systemIdentifier);
@@ -7415,7 +7433,9 @@ public class Tokenizer implements Locator, Locator2 {
public void initializeWithoutStarting() throws SAXException {
confident = false;
- strBuf = null;
+ if (!keepBuffer) {
+ strBuf = null;
+ }
line = 1;
// CPPONLY: attributeLine = 1;
// [NOCPP[
diff --git a/parser/html/javasrc/TreeBuilder.java b/parser/html/javasrc/TreeBuilder.java
index f7b70ee0da..c190b7fd20 100644
--- a/parser/html/javasrc/TreeBuilder.java
+++ b/parser/html/javasrc/TreeBuilder.java
@@ -436,6 +436,8 @@ public abstract class TreeBuilder<T> implements TokenHandler,
private boolean allowDeclarativeShadowRoots = false;
+ private boolean keepBuffer = false;
+
// [NOCPP[
private boolean reportingDoctype = true;
@@ -577,6 +579,18 @@ public abstract class TreeBuilder<T> implements TokenHandler,
// ]NOCPP]
+ public void setKeepBuffer(boolean keepBuffer) {
+ this.keepBuffer = keepBuffer;
+ }
+
+ public boolean dropBufferIfLongerThan(int length) {
+ if (charBuffer.length > length) {
+ charBuffer = null;
+ return true;
+ }
+ return false;
+ }
+
@SuppressWarnings("unchecked") public final void startTokenization(Tokenizer self) throws SAXException {
tokenizer = self;
stackNodes = new StackNode[64];
@@ -598,7 +612,9 @@ public abstract class TreeBuilder<T> implements TokenHandler,
// ]NOCPP]
start(fragment);
charBufferLen = 0;
- charBuffer = null;
+ if (!keepBuffer) {
+ charBuffer = null;
+ }
framesetOk = true;
if (fragment) {
T elt;
@@ -1451,7 +1467,10 @@ public abstract class TreeBuilder<T> implements TokenHandler,
// [NOCPP[
idLocations.clear();
// ]NOCPP]
- charBuffer = null;
+
+ if (!keepBuffer) {
+ charBuffer = null;
+ }
end();
}