Jump to content

My Browser Builds (Part 3)


Recommended Posts

8 hours ago, VistaLover said:

Here's my copy of file "polyfills.js" inside my local fork of your extension:

var actualCode = `
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis
// implemented in Chrome 71
// https://mathiasbynens.be/notes/globalthis
(function() {
	if (typeof globalThis === 'object') return;
	Object.defineProperty(Object.prototype, '__magic__', {
		get: function() {
			return this;
		},
		configurable: true
	});
	__magic__.globalThis = __magic__;
	delete Object.prototype.__magic__;
}());
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries
// implemented in Chrome 73
// https://stackoverflow.com/a/68655198
// https://gitlab.com/moongoal/js-polyfill-object.fromentries/-/blob/master/index.js
// -> https://vanillajstoolkit.com/polyfills/objectfromentries/
if (!Object.fromEntries) {
	Object.fromEntries = function (entries) {
		if (!entries || !entries[Symbol.iterator]) { 
      throw new Error('Object.fromEntries() requires a single iterable argument');
    }
		let obj = {};
		for (let [key, value] of entries) {
			obj[key] = value;
		}
		return obj;
	};
}
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/any
// implemented in Chrome 85 
// https://github.com/ungap/promise-any
// copied from github-wc-polyfill
if (!('any' in Promise && typeof Promise.any == 'function')) Promise.any = function($) {
  return new Promise(function(D, E, A, L) {
    A = [];
    L = $.map(function($, i) {
      return Promise.resolve($).then(D, function(O) {
        return ((A[i] = O), --L) || E({
          errors: A
        });
      });
    }).length;
  });
};
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled
// implemented in Chrome 76
// https://95yashsharma.medium.com/polyfill-for-promise-allsettled-965f9f2a003
if (!('allSettled' in Promise && typeof Promise.allSettled == 'function')) Promise.allSettled = function (promises) {
  let mappedPromises = promises.map((p) => {
    return p
      .then((value) => {
        return {
          status: 'fulfilled',
          value,
        };
      })
      .catch((reason) => {
        return {
          status: 'rejected',
          reason,
        };
      });
  });
  return Promise.all(mappedPromises);
};
// https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask
// implemented in Chrome 71
// https://stackoverflow.com/a/61569775
(function() {
'use strict';
// lazy get globalThis, there might be better ways
const globalObj = typeof globalThis === "object" ? globalThis :
  typeof global === "object" ? global :
  typeof window === "object" ? window :
  typeof self === 'object' ? self :
  Function('return this')();

if (typeof queueMicrotask !== "function") {

  const checkIsCallable = (callback) => {
    if (typeof callback !== "function") {
      throw new TypeError("Failed to execute 'queueMicrotask': the callback provided as parameter 1 is not a function");
    }  
  };

  if (typeof Promise === "function" && typeof Promise.resolve === "function") {
    globalObj.queueMicrotask = (callback) => {
      checkIsCallable(callback);
      Promise.resolve()
        .then(() => callback()) // call with no arguments
        // if any error occurs during callback execution,
        // throw it back to globalObj (using setTimeout to get out of Promise chain)
        .catch((err) => setTimeout(() => {throw err;}));
   };
  }
  else if (typeof MutationObserver === "function") {
    globalObj.queueMicrotask = (callback) => {
      checkIsCallable(callback);
      const observer = new MutationObserver(function() {
        callback();
        observer.disconnect();
      });
      const target = document.createElement('div');
      observer.observe(target, {attributes: true});
      target.setAttribute('data-foo', '');
    };
  }
  else if (typeof process === "object" && typeof process.nextTick === "function") {
    globalObj.queueMicrotask = (callback) => {
      checkIsCallable(callback);
      process.nextTick(callback);
    };
  }
  else {
    globalObj.queueMicrotask = (callback) => {
      checkIsCallable(callback);
      setTimeout(callback, 0);
    }
  }
}
})();

queueMicrotask(() => console.log('microtask'));
console.log('sync');
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll
// implemented in Chrome 85
// https://vanillajstoolkit.com/polyfills/stringreplaceall/
if (!String.prototype.replaceAll) {
  String.prototype.replaceAll = function(str, newStr) {
    // If a regex pattern
    if (Object.prototype.toString.call(str).toLowerCase() === '[object regexp]') {
      return this.replace(str, newStr);
    }
    // If a string
    return this.replace(new RegExp(str, 'g'), newStr);
  };
};
// https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/replaceChildren
// implemented in Chrome 86
// https://github.com/XboxYan/dom-polyfill
// copied from github-wc-polyfill
(function() {
  if (Element.prototype.replaceChildren === undefined) {
    Element.prototype.replaceChildren = function(...nodesOrDOMStrings) {
      while (this.lastChild) {
        this.removeChild(this.lastChild)
      }
      if (nodesOrDOMStrings.length) {
        this.append(...nodesOrDOMStrings)
      }
    }
  }
}());
`;

var script = document.createElement('script');
script.textContent = actualCode;
(document.head||document.documentElement).appendChild(script);
script.remove();

As you can see, it's a patchwork of code "borrowed" from you, various polyfill authors and portions from github-wc-polyfill extension, by JustOff; I couldn't be arsed to make a proper fork and publish on GH... FWIW, I use a different (smaller) version of that file for my 360EEv12 (Chromium-78-based) copy (only the polyfills for JS code implemented in Chromium > 78.0). But I fear I'm derailing this thread... :P

All right, I didn't just want to include your additions without your permission/acknowledgement. I take it it's okay to go ahead and add these?

I can say "incorporated contributions from VistaLover" in the commit message.

Link to comment
Share on other sites


8 hours ago, VistaLover said:

Here's my copy of file "polyfills.js" inside my local fork of your extension:

var actualCode = `
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis
// implemented in Chrome 71
// https://mathiasbynens.be/notes/globalthis
(function() {
	if (typeof globalThis === 'object') return;
	Object.defineProperty(Object.prototype, '__magic__', {
		get: function() {
			return this;
		},
		configurable: true
	});
	__magic__.globalThis = __magic__;
	delete Object.prototype.__magic__;
}());
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries
// implemented in Chrome 73
// https://stackoverflow.com/a/68655198
// https://gitlab.com/moongoal/js-polyfill-object.fromentries/-/blob/master/index.js
// -> https://vanillajstoolkit.com/polyfills/objectfromentries/
if (!Object.fromEntries) {
	Object.fromEntries = function (entries) {
		if (!entries || !entries[Symbol.iterator]) { 
      throw new Error('Object.fromEntries() requires a single iterable argument');
    }
		let obj = {};
		for (let [key, value] of entries) {
			obj[key] = value;
		}
		return obj;
	};
}
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/any
// implemented in Chrome 85 
// https://github.com/ungap/promise-any
// copied from github-wc-polyfill
if (!('any' in Promise && typeof Promise.any == 'function')) Promise.any = function($) {
  return new Promise(function(D, E, A, L) {
    A = [];
    L = $.map(function($, i) {
      return Promise.resolve($).then(D, function(O) {
        return ((A[i] = O), --L) || E({
          errors: A
        });
      });
    }).length;
  });
};
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled
// implemented in Chrome 76
// https://95yashsharma.medium.com/polyfill-for-promise-allsettled-965f9f2a003
if (!('allSettled' in Promise && typeof Promise.allSettled == 'function')) Promise.allSettled = function (promises) {
  let mappedPromises = promises.map((p) => {
    return p
      .then((value) => {
        return {
          status: 'fulfilled',
          value,
        };
      })
      .catch((reason) => {
        return {
          status: 'rejected',
          reason,
        };
      });
  });
  return Promise.all(mappedPromises);
};
// https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask
// implemented in Chrome 71
// https://stackoverflow.com/a/61569775
(function() {
'use strict';
// lazy get globalThis, there might be better ways
const globalObj = typeof globalThis === "object" ? globalThis :
  typeof global === "object" ? global :
  typeof window === "object" ? window :
  typeof self === 'object' ? self :
  Function('return this')();

if (typeof queueMicrotask !== "function") {

  const checkIsCallable = (callback) => {
    if (typeof callback !== "function") {
      throw new TypeError("Failed to execute 'queueMicrotask': the callback provided as parameter 1 is not a function");
    }  
  };

  if (typeof Promise === "function" && typeof Promise.resolve === "function") {
    globalObj.queueMicrotask = (callback) => {
      checkIsCallable(callback);
      Promise.resolve()
        .then(() => callback()) // call with no arguments
        // if any error occurs during callback execution,
        // throw it back to globalObj (using setTimeout to get out of Promise chain)
        .catch((err) => setTimeout(() => {throw err;}));
   };
  }
  else if (typeof MutationObserver === "function") {
    globalObj.queueMicrotask = (callback) => {
      checkIsCallable(callback);
      const observer = new MutationObserver(function() {
        callback();
        observer.disconnect();
      });
      const target = document.createElement('div');
      observer.observe(target, {attributes: true});
      target.setAttribute('data-foo', '');
    };
  }
  else if (typeof process === "object" && typeof process.nextTick === "function") {
    globalObj.queueMicrotask = (callback) => {
      checkIsCallable(callback);
      process.nextTick(callback);
    };
  }
  else {
    globalObj.queueMicrotask = (callback) => {
      checkIsCallable(callback);
      setTimeout(callback, 0);
    }
  }
}
})();

queueMicrotask(() => console.log('microtask'));
console.log('sync');
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll
// implemented in Chrome 85
// https://vanillajstoolkit.com/polyfills/stringreplaceall/
if (!String.prototype.replaceAll) {
  String.prototype.replaceAll = function(str, newStr) {
    // If a regex pattern
    if (Object.prototype.toString.call(str).toLowerCase() === '[object regexp]') {
      return this.replace(str, newStr);
    }
    // If a string
    return this.replace(new RegExp(str, 'g'), newStr);
  };
};
// https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/replaceChildren
// implemented in Chrome 86
// https://github.com/XboxYan/dom-polyfill
// copied from github-wc-polyfill
(function() {
  if (Element.prototype.replaceChildren === undefined) {
    Element.prototype.replaceChildren = function(...nodesOrDOMStrings) {
      while (this.lastChild) {
        this.removeChild(this.lastChild)
      }
      if (nodesOrDOMStrings.length) {
        this.append(...nodesOrDOMStrings)
      }
    }
  }
}());
`;

var script = document.createElement('script');
script.textContent = actualCode;
(document.head||document.documentElement).appendChild(script);
script.remove();

As you can see, it's a patchwork of code "borrowed" from you, various polyfill authors and portions from github-wc-polyfill extension, by JustOff; I couldn't be arsed to make a proper fork and publish on GH... FWIW, I use a different (smaller) version of that file for my 360EEv12 (Chromium-78-based) copy (only the polyfills for JS code implemented in Chromium > 78.0). But I fear I'm derailing this thread... :P

Thanks, I'm trying it out locally, and yeah, I think the ?? and ?. stuff is really getting me, StackOverflow is still broken, but otherwise seems to be working at least as well as before.

About those last two things that "can't" be polyfilled....

they CAN be transpiled!

Take a look: https://javascript.info/polyfills

Transpilers
A transpiler is a special piece of software that translates source code to another source code. It can parse (“read and understand”) modern code and rewrite it using older syntax constructs, so that it’ll also work in outdated engines.

E.g. JavaScript before year 2020 didn’t have the “nullish coalescing operator” ??. So, if a visitor uses an outdated browser, it may fail to understand the code like height = height ?? 100.

A transpiler would analyze our code and rewrite height ?? 100 into (height !== undefined && height !== null) ? height : 100.

 

So I think what we really need to do is have this extension auto-transpile this bleeding edge JS into "vanilla JS" that "any" normal browser can run.

This, in theory, should solve not just the issue but probably a large number.

 

My understanding is that transpiling something is something the *web developers* are supposed to do before packing their JS into the actual website source, so unlike a polyfill which runs in the browser itself.

That said, I'm sure it's possible, but not sure how slow it would be if feasible. Thoughts, anyone?

Link to comment
Share on other sites

I put the code of the problematic file of the problematic web app at work in https://babeljs.io/repl and got the modified code, which I saved on the server side and sure enough after reloading it in the browser, it was suddenly compatible once again! If I remove ", not ie 11, not ie_mob 11" from the TARGETS field, then I get the code that also works in Internet Explorer 11. :D

You'd need to have something like that locally which would process the code before it was handed to browser's JS interpreter.

Edited by UCyborg
Link to comment
Share on other sites

10 hours ago, VistaLover said:

Here's my copy of file "polyfills.js" inside my local fork of your extension:

I'm a bit at a loss.  "How" do I use this?  What is the "your extension" being referenced and "how" do I use that also?

I'm asking specifically towards 360Chrome v11 - I have very limited interest in any browser "newer" than 360Chrome v11.

Link to comment
Share on other sites

2 hours ago, NotHereToPlayGames said:

I'm a bit at a loss.  "How" do I use this?  What is the "your extension" being referenced and "how" do I use that also?

I'm asking specifically towards 360Chrome v11 - I have very limited interest in any browser "newer" than 360Chrome v11.

Follow the usage instructions at: https://github.com/InterLinked1/chromefill

You just need to load the extension in developer mode, and then you don't need to do anything.

Link to comment
Share on other sites

3 hours ago, UCyborg said:

I put the code of the problematic file of the problematic web app at work in https://babeljs.io/repl and got the modified code, which I saved on the server side and sure enough after reloading it in the browser, it was suddenly compatible once again! If I remove ", not ie 11, not ie_mob 11" from the TARGETS field, then I get the code that also works in Internet Explorer 11. :D

You'd need to have something like that locally which would process the code before it was handed to browser's JS interpreter.

Yes, exactly! I think if we could figure how that would work and what it would entail, we could basically unbreak everything and rewind the JS ten years or so. Then you could use a 10-year old browser, no compatibility worries at all!

Question is, what and how? Does such a tool even exist?

Presumably there could be an "API" somewhere to do this, like the one you referenced, and you could make an AJAX call with the JS contents of everything and then replace them somehow with the response, but something self-contained would probably perform a LOT better.

Link to comment
Share on other sites

Just tested PM 30 and nothing much has changed. If you use twitter for a while or go to a hotmail account it causes performance issues and that's just the ones I know of. The scrolling on all sites and tabs starts to stick until the browser eventually becomes unresponsive and you're forced to reboot. This was with a fresh install and no addons.

Interesting that roytam's 45 and 55 versions don't do this so for XP I'll continue relying on these. Until they take it seriously their browser will have limited usage since millions of people visit these sites. 

Link to comment
Share on other sites

New NewMoon 27 Build!

32bit https://o.rthost.win/palemoon/palemoon-27.10.0.win32-git-20220319-36b2354fd-xpmod.7z
32bit SSE https://o.rthost.win/palemoon/palemoon-27.10.0.win32-git-20220319-36b2354fd-xpmod-sse.7z
32bit noSSE https://o.rthost.win/palemoon/palemoon-27.10.0.win32-git-20220319-36b2354fd-xpmod-ia32.7z

64bit https://o.rthost.win/palemoon/palemoon-27.10.0.win64-git-20220319-36b2354fd-xpmod.7z

source repo: https://github.com/roytam1/palemoon27

repo changes since my last build:
- import changes from `dev' branch of rmottola/Arctic-Fox:
 - Bug 1181382: move declaration into namespace to resolve conflict. r=hsinyi (b1cbc67344)
 - Bug 1131470 - Part 3: Implement ScreenOrientation interface. r=baku (805ffd4d18)
 - Bug 1131470 - Part 4: Check sandboxing flag for orientation lock. r=baku (2896c9af4c)
 - Bug 1131470 - Part 5: Handle changes to active orientation lock. r=smaug (2550433007)
 - Bug 1131470 - Part 6: ScreenOrientation tests. r=baku (53e088ab98)
 - Bug 1193133 - Drop the document and window references from ServiceWorker. r=bkelly (ce09f526b8)
 - Bug 1186307 - part 1 - Unify the StructuredCloneCallbacks in WorkerPrivate.cpp, r=smaug (a109da831d)
 - pointer style (c26fa45b91)
 - Bug 1174971 - Introduce two variants of getOwnPropertyFromTargetIfSafe. r=gabor,r=arai (4bec0627ce)
 - reapply Bug 1131802 part 2. Allocate functions with reserved slots for DOM Xrays so we can store the Xray wrapper reference in those slots instead of as the function parent. r=peterv (ff39e220a3)
 - No bug - Add a bug number to the expected failure in message-event.html. (398f3e500a)
 - Bug 1164834: MessageEvents coming from postMessage should not be cancelable. r=Ms2ger (380ce180bf) (38ceaed34)
- import changes from `dev' branch of rmottola/Arctic-Fox:
 - Bug 1176288 - Part 4: Fix octane regression, r=bbouvier (3ae04863c9)
 - Bug 1199417- Scale skia paths up before hit testing to workaround coordinate resolution limits. r=mattwoodrow (b3ec1288e8)
 - Bug 1117338 - Blow up if we can't convert a cairo format to a gfx one r=milan (be268bf93a)
 - Bug 1161642 - Cross compilation fixup. (58da4778e4)
 - Bug 1190705 - Ensure that canvas 2d matrix transforms are finite. r=Bas, r=jrmuizel (ec3a6a510e)
 - Bug 1204824. Make Matrix4x4::PreScale scale all values in the first three rows. r=bas (457cc10f80)
 - namespace (a341cb46be)
 - Bug 1162726 - Make RoundedToInt() snap the rect properly. r=roc (7fd0a19105)
 - Bug 1178965 - Check if Factory::GetD2D1Device fails in SourceSurfaceD2D1. r=nical (cad95d7703)
 - Bug 1163735 - Ensure that we don't hand out a destroyed TabChild from WorkerPrivate::InterfaceRequestor (r=khuey) (270cf6ae33)
 - Bug 1198451 - Disambiguate mozilla::dom::Function from mozilla::Function. r=froydnj (d08622cbd4)- reorder (eea96d09ee)
 - reorder (eea96d09ee)
 - Bug 1147990 - websocket test suite - patch 2 - webSocket.url should be the spec of nsIURI, r=smaug (a983655514)
 - Bug 1147990 - websocket test suite - patch 1 - URL with #ref should not be accepted, r=smaug (7af5e9528d)
 - Bug 1147990 - websocket test suite - patch 3 - Not all the ports are accepted, r=smaug (a34d69e29b)
 - Bug 1147990 - websocket test suite - patch 4 - web-platform-test suite fixed, a=tomcat CLOSED TREE (f2966f52d0)
 - Bug 1147990 - websocket test suite - patch 5 - web-platform-test suite - js error fixed, r=jgraham (1b52d4853e) (0ca97f19b)
- import changes from `dev' branch of rmottola/Arctic-Fox:
 - Bug 1179242 - Avoid unnecessary moves to dead stack slots, tweak regalloc heuristics for bundles required to be in a specific register, r=sunfish. (aa0174e817)
 - No bug - Fix bug1106719.js jit-test to allow overrecursion on a CLOSED TREE. r=me (5cc971608d)
 - Bug 1186424: Rename FunctionBuilder into FunctionValidator; r=luke (8925748a65)
 - Bug 1192401 - Do not capture SavedFrame stacks before Object.prototype has been initialized. r=shu (e26c24664b)
 - Bug 1194838 - Make Cell a GCType for the hazard analysis, r=terrence (92f429798f)
 - Bug 1194829 - Rename sweep to sweepChildren because shu said so, r=shu (0a80d997ae)
 - Bug 1183487 - Fix sorting in check_macroassembler_style.py. r=nbp (659d3b5dd3)
 - pointer and spacing style (9e2b14652c)
 - Bug 1186693 - Add exhaustive matching to mozilla::Variant; r=Waldo (ec1defe3c4)
 - Bug 1186650 - Do not mark mozilla::Variant copy and move constructors as explicit. r=Waldo (76bb7e8051)
 - Bug 1195297 - Fix OOM handling in ExecutableAllocator r=terrence (f9b9727ac8)
 - Bug 1195208 - Fix ArrayBuffer.transfer isNeutered check. r=luke (d45393ca24)
 - Bug 836658 - Use -arch:IA32 on VS2012 to avoid requiring SSE2. r=glandium Bug 1193467: Allow SSE2 on clang-cl builds. r=glandium (7c6fd7a785)
 - Bug 1183195 - Fix assertion at the start of InnerViewTable::sweepAfterMinorGC() r=sfink (df395675e3)
 - Bug 1185959 - Properly handle static constructor method in classes. (r=Waldo) (8a6919155f)
 - Bug 1180054 - Fix bogus assert. (r=jandem) (94b9988568)
 - Bug 1197377 - Read callgraph.txt line by line to avoid string size limits, r=terrence (6b2d110d65)
 - Bug 1195588: IonMonkey - Actually convert number to double during recovering ToDouble, r=nbp (de43a2e4b9) (a06231e9d)
- import changes from `dev' branch of rmottola/Arctic-Fox:
 - Bug 1186307 - StructuredCloneHelper in workers.postMessage(), r=smaug (0d3c817afa)
 - Bug 1183824 - Remove NS_ENSURE_TRUE(mCallback, NS_ERROR_NOT_INITIALIZED) warning from nsFrameMessageManager::DispatchAsyncMessageInternal. r=smaug (64dfd50f7f)
 - Bug 1167189: Use a size annotation on the OOM abort. r=bholley (5e7fb331a0)
 - missing crash reporter (47f183fab4)
 - Bug 1137151: Marked destructor of |nsClipboard| as protected, r=mwu (5655bf8862)
 - Bug 1194497 - Convert a few remaining PRUnichar to char16_t. r=roc (1554ffcec2)
 - Bug 952456 - Part 1: Implement gonk/nsClipboard for rich text and raw image. r=fabrice (419381f7af)
 - Bug 1198795 - ipc/StructuredCloneUtils should be merged with StructuredCloneHelper, r=smaug (02183262bd)
 - Bug 1201806 - part 1 - Remove OwningSerializedStructuredCloneBuffer and use StructuredCloneIPCHelper everywhere in IPC code, r=smaug (6dc69151b4)
 - Bug 1201806 - part 2 - nsStructuredCloneContainer should use StructuredCloneIPCHelper, r=smaug (b6ebaa8e95)
 - Bug 1202028 - Implement range based for loops for SavedFrame stacks. r=terrence (57c198910c)
 - missing bit of  Bug 1106264 (fa67f8ab56)
 - Bug 1168806: Configurable I/O thread for socket IPC classes, r=kmachulis (213a8fb2b9)
 - Bug 1159209: Remove template parameters from |DataSocketIO|, r=kmachulis (0d658c5cf8)
 - Bug 1168806: Configurable consumer thread for socket IPC classes, r=kmachulis (ee054dd6b0)
 - Bug 1167207: Add |BluetoothDaemonConnectionConsumer|, r=shuang (b8b89290df)
 - Bug 1154281: Remove |UnixSocketConsumer| and its helpers, r=kmachulis (d40430b10f)
 - Bug 1166638: Add |StreamSocketConsumer|, r=kmachulis (59b5c1abf3)
 - Bug 1166638: Add |ListenSocketConsumer|, r=kmachulis (d119bcaa2a)
 - Bug 1168806: Use 'consumer thread' in socket interface, r=kmachulis (65d232d21c)
 - Bug 1170466: Inherit |ConnectionOrientedSocketIO| from |UnixSocketWatcher|, r=kmachulis (b91d0c624a)
 - Bug 1170466: Share socket I/O methods in |ConnectionOrientedSocketIO|, r=kmachulis (108fb6696e)
 - Bug 1170466: Implement accept and connect in |ConnectionOrientedSocketIO|, r=kmachulis (590b3b4617)
 - Bug 1172479: Replace |nsIThread| by |MessageLoop| in socket I/O code, r=kmachulis (618073dcef)
 - Bug 1203426 - Rename StructuredCloneIPCHelper to StructuredCloneData, r=smaug (dc31124113)
 - Bug 1167392 - Change nsFrameMessageManager::mParentManager to a smart pointer. r=ehsan (98d60c0398)
 - Bug 1186843 - Always cache delayed scripts in message manager (b0ab501959)
 - Bug 1189550 - In parent process, cpmm.initialProcessData should be same as ppmm.initialProcessData (r=smaug) (7a8ab62432)
 - Bug 1196057 - Use channel->Open2() in dom/base/nsFrameMessageManager.cpp (r=sicking) (a032d483d6)
 - missing parts of Bug 1132072 - Tab switch refactoring (r=mconley) (e6fbbb722a)
 - Bug 1175736 - Implement the iframe referrer attribute. r=ckerschb, r=bz (a5fc4e683b)
 - Bug 1171017: Rename |BluetoothDaemonConnectionConsumer| to |DaemonSocketConsumer|, r=shuang (0af5957609)
 - Bug 1170993: Manage socket buffers in sub-classes of |UnixSocketBuffer|, r=kmachulis (960de8be45)
 - Bug 1171017: Rename |BluetoothDaemonPDUConsumer| to |DaemonSocketIOConsumer|, r=shuang (eea1681ab8)
 - Bug 1171100 - Fix incorrect logic of handling Bluetooth Gatt Responses in daemon backend. r=tzimmermann (c385364d1e)
 - Bug 1171866 - Remove ReversedUuidToString; f=tzimmermann, r=jocelyn (9b58176c39)
 - Bug 1171017: Rename |BluetoothSocketPDU| to |DaemonSocketPDU|, r=shuang (ce1bbd9d4a)
 - Bug 1171017: Rename |BluetoothDaemonConnectionIO| to |DaemonSocketIO|, r=shuang (00f2a38220)
 - Bug 1171017: Rename |BluetoothDaemonConnection| to |DaemonSocket|, r=shuang (b3c3522719)
 - Bug 1171017: Move classes from ipc/bluetooth to ipc/hal, r=shuang (047714aee4)
 - Bug 1171994: Add |RilSocket| and |RilSocketConsumer|, r=htsai (276211bbb7)
 - Bug 1171994: Forward received RIL socket I/O via |WorkerCrossThreadDispatcher|, r=htsai (7825d1c837)
 - Bug 1185478: Add leak checks to socket I/O classes (40e2c01ce4)
 - Bug 1185478: Remove strong references from socket I/O class to socket classes (6fa94f34ff)
 - Bug 1163912: Set |Type| property of BluetoothDevice a initial value during LeScan; f=elin, r=jocelyn (bda66689ed)
 - Bug 1166215 - Cast 'BluetoothTypeOfDevice' to uint32_t before the BT signal is distributed to BluetoothAdapter. r=joliu (d38ad4e55f)
 - Bug 1170086 - Fix the parameter type of DispatchReplyError() in StartLeScan result handler. r=joliu (a24e23e02f)
 - Bug 1161956 - Fix crashes while using GATT client functions. r=jocelyn (cebfb8c700)
 - Bug 1171868 - Remove GeneratePathFromGattId(aId, aPath, aUuidStr); r=jocelyn (0eac291b3c)
 - Bug 1161945 - Fix empty characteristics and descriptors after searching services. f=elin, r=jocelyn (a0d816fee4)
 - Bug 1164387 - Use |btgatt_client_interface_t.get_device_type| to get the device type. r=jocelyn (c7b5c97a00)
 - Bug 1173139 - Reorder global creation on workers, r=khuey. (acb79ae54e)
 - Bug 1170071 - Part 1: Revise BluetoothGattInterface, result handler, and interface helper for daemon support of gatt server. r=shuang (0ad0c9244e)
 - Bug 1170071 - Part 2: Add helpers for Bluetooth daemon GATT server support. r=shuang (46a4062579)
 - Bug 1170071 - Part 3: Add gatt server support to GATT module for Bluetooth daemon. r=shuang (71d80aabea)
 - Bug 1170071 - Part 4: Add Gatt server interfaces for Bluetooth daemon. r=shuang (a556aaf048)
 - Bug 1187230: Convert Bluetooth to use daemon runnables, r=shuang (9be6501225)
 - Bug 1204382: Add #include for nsIInputStream.h to MediaParent.cpp, to fix a build error in --disable-webrtc builds. r=jib (8b20e934) (36b2354fd)

Link to comment
Share on other sites

New regular/weekly KM-Goanna release:
https://o.rthost.win/kmeleon/KM76.4.6-Goanna-20220319.7z

Changelog:

Out-of-tree changes:
* update Goanna3 to git ff1df7517...36b2354fd:- import changes from `dev' branch of rmottola/Arctic-Fox:
 - Bug 1181382: move declaration into namespace to resolve conflict. r=hsinyi (b1cbc67344)
 - Bug 1131470 - Part 3: Implement ScreenOrientation interface. r=baku (805ffd4d18)
 - Bug 1131470 - Part 4: Check sandboxing flag for orientation lock. r=baku (2896c9af4c)
 - Bug 1131470 - Part 5: Handle changes to active orientation lock. r=smaug (2550433007)
 - Bug 1131470 - Part 6: ScreenOrientation tests. r=baku (53e088ab98)
 - Bug 1193133 - Drop the document and window references from ServiceWorker. r=bkelly (ce09f526b8)
 - Bug 1186307 - part 1 - Unify the StructuredCloneCallbacks in WorkerPrivate.cpp, r=smaug (a109da831d)
 - pointer style (c26fa45b91)
 - Bug 1174971 - Introduce two variants of getOwnPropertyFromTargetIfSafe. r=gabor,r=arai (4bec0627ce)
 - reapply Bug 1131802 part 2. Allocate functions with reserved slots for DOM Xrays so we can store the Xray wrapper reference in those slots instead of as the function parent. r=peterv (ff39e220a3)
 - No bug - Add a bug number to the expected failure in message-event.html. (398f3e500a)
 - Bug 1164834: MessageEvents coming from postMessage should not be cancelable. r=Ms2ger (380ce180bf) (38ceaed34)
- import changes from `dev' branch of rmottola/Arctic-Fox:
 - Bug 1176288 - Part 4: Fix octane regression, r=bbouvier (3ae04863c9)
 - Bug 1199417- Scale skia paths up before hit testing to workaround coordinate resolution limits. r=mattwoodrow (b3ec1288e8)
 - Bug 1117338 - Blow up if we can't convert a cairo format to a gfx one r=milan (be268bf93a)
 - Bug 1161642 - Cross compilation fixup. (58da4778e4)
 - Bug 1190705 - Ensure that canvas 2d matrix transforms are finite. r=Bas, r=jrmuizel (ec3a6a510e)
 - Bug 1204824. Make Matrix4x4::PreScale scale all values in the first three rows. r=bas (457cc10f80)
 - namespace (a341cb46be)
 - Bug 1162726 - Make RoundedToInt() snap the rect properly. r=roc (7fd0a19105)
 - Bug 1178965 - Check if Factory::GetD2D1Device fails in SourceSurfaceD2D1. r=nical (cad95d7703)
 - Bug 1163735 - Ensure that we don't hand out a destroyed TabChild from WorkerPrivate::InterfaceRequestor (r=khuey) (270cf6ae33)
 - Bug 1198451 - Disambiguate mozilla::dom::Function from mozilla::Function. r=froydnj (d08622cbd4)- reorder (eea96d09ee)
 - reorder (eea96d09ee)
 - Bug 1147990 - websocket test suite - patch 2 - webSocket.url should be the spec of nsIURI, r=smaug (a983655514)
 - Bug 1147990 - websocket test suite - patch 1 - URL with #ref should not be accepted, r=smaug (7af5e9528d)
 - Bug 1147990 - websocket test suite - patch 3 - Not all the ports are accepted, r=smaug (a34d69e29b)
 - Bug 1147990 - websocket test suite - patch 4 - web-platform-test suite fixed, a=tomcat CLOSED TREE (f2966f52d0)
 - Bug 1147990 - websocket test suite - patch 5 - web-platform-test suite - js error fixed, r=jgraham (1b52d4853e) (0ca97f19b)
- import changes from `dev' branch of rmottola/Arctic-Fox:
 - Bug 1179242 - Avoid unnecessary moves to dead stack slots, tweak regalloc heuristics for bundles required to be in a specific register, r=sunfish. (aa0174e817)
 - No bug - Fix bug1106719.js jit-test to allow overrecursion on a CLOSED TREE. r=me (5cc971608d)
 - Bug 1186424: Rename FunctionBuilder into FunctionValidator; r=luke (8925748a65)
 - Bug 1192401 - Do not capture SavedFrame stacks before Object.prototype has been initialized. r=shu (e26c24664b)
 - Bug 1194838 - Make Cell a GCType for the hazard analysis, r=terrence (92f429798f)
 - Bug 1194829 - Rename sweep to sweepChildren because shu said so, r=shu (0a80d997ae)
 - Bug 1183487 - Fix sorting in check_macroassembler_style.py. r=nbp (659d3b5dd3)
 - pointer and spacing style (9e2b14652c)
 - Bug 1186693 - Add exhaustive matching to mozilla::Variant; r=Waldo (ec1defe3c4)
 - Bug 1186650 - Do not mark mozilla::Variant copy and move constructors as explicit. r=Waldo (76bb7e8051)
 - Bug 1195297 - Fix OOM handling in ExecutableAllocator r=terrence (f9b9727ac8)
 - Bug 1195208 - Fix ArrayBuffer.transfer isNeutered check. r=luke (d45393ca24)
 - Bug 836658 - Use -arch:IA32 on VS2012 to avoid requiring SSE2. r=glandium Bug 1193467: Allow SSE2 on clang-cl builds. r=glandium (7c6fd7a785)
 - Bug 1183195 - Fix assertion at the start of InnerViewTable::sweepAfterMinorGC() r=sfink (df395675e3)
 - Bug 1185959 - Properly handle static constructor method in classes. (r=Waldo) (8a6919155f)
 - Bug 1180054 - Fix bogus assert. (r=jandem) (94b9988568)
 - Bug 1197377 - Read callgraph.txt line by line to avoid string size limits, r=terrence (6b2d110d65)
 - Bug 1195588: IonMonkey - Actually convert number to double during recovering ToDouble, r=nbp (de43a2e4b9) (a06231e9d)
- import changes from `dev' branch of rmottola/Arctic-Fox:
 - Bug 1186307 - StructuredCloneHelper in workers.postMessage(), r=smaug (0d3c817afa)
 - Bug 1183824 - Remove NS_ENSURE_TRUE(mCallback, NS_ERROR_NOT_INITIALIZED) warning from nsFrameMessageManager::DispatchAsyncMessageInternal. r=smaug (64dfd50f7f)
 - Bug 1167189: Use a size annotation on the OOM abort. r=bholley (5e7fb331a0)
 - missing crash reporter (47f183fab4)
 - Bug 1137151: Marked destructor of |nsClipboard| as protected, r=mwu (5655bf8862)
 - Bug 1194497 - Convert a few remaining PRUnichar to char16_t. r=roc (1554ffcec2)
 - Bug 952456 - Part 1: Implement gonk/nsClipboard for rich text and raw image. r=fabrice (419381f7af)
 - Bug 1198795 - ipc/StructuredCloneUtils should be merged with StructuredCloneHelper, r=smaug (02183262bd)
 - Bug 1201806 - part 1 - Remove OwningSerializedStructuredCloneBuffer and use StructuredCloneIPCHelper everywhere in IPC code, r=smaug (6dc69151b4)
 - Bug 1201806 - part 2 - nsStructuredCloneContainer should use StructuredCloneIPCHelper, r=smaug (b6ebaa8e95)
 - Bug 1202028 - Implement range based for loops for SavedFrame stacks. r=terrence (57c198910c)
 - missing bit of  Bug 1106264 (fa67f8ab56)
 - Bug 1168806: Configurable I/O thread for socket IPC classes, r=kmachulis (213a8fb2b9)
 - Bug 1159209: Remove template parameters from |DataSocketIO|, r=kmachulis (0d658c5cf8)
 - Bug 1168806: Configurable consumer thread for socket IPC classes, r=kmachulis (ee054dd6b0)
 - Bug 1167207: Add |BluetoothDaemonConnectionConsumer|, r=shuang (b8b89290df)
 - Bug 1154281: Remove |UnixSocketConsumer| and its helpers, r=kmachulis (d40430b10f)
 - Bug 1166638: Add |StreamSocketConsumer|, r=kmachulis (59b5c1abf3)
 - Bug 1166638: Add |ListenSocketConsumer|, r=kmachulis (d119bcaa2a)
 - Bug 1168806: Use 'consumer thread' in socket interface, r=kmachulis (65d232d21c)
 - Bug 1170466: Inherit |ConnectionOrientedSocketIO| from |UnixSocketWatcher|, r=kmachulis (b91d0c624a)
 - Bug 1170466: Share socket I/O methods in |ConnectionOrientedSocketIO|, r=kmachulis (108fb6696e)
 - Bug 1170466: Implement accept and connect in |ConnectionOrientedSocketIO|, r=kmachulis (590b3b4617)
 - Bug 1172479: Replace |nsIThread| by |MessageLoop| in socket I/O code, r=kmachulis (618073dcef)
 - Bug 1203426 - Rename StructuredCloneIPCHelper to StructuredCloneData, r=smaug (dc31124113)
 - Bug 1167392 - Change nsFrameMessageManager::mParentManager to a smart pointer. r=ehsan (98d60c0398)
 - Bug 1186843 - Always cache delayed scripts in message manager (b0ab501959)
 - Bug 1189550 - In parent process, cpmm.initialProcessData should be same as ppmm.initialProcessData (r=smaug) (7a8ab62432)
 - Bug 1196057 - Use channel->Open2() in dom/base/nsFrameMessageManager.cpp (r=sicking) (a032d483d6)
 - missing parts of Bug 1132072 - Tab switch refactoring (r=mconley) (e6fbbb722a)
 - Bug 1175736 - Implement the iframe referrer attribute. r=ckerschb, r=bz (a5fc4e683b)
 - Bug 1171017: Rename |BluetoothDaemonConnectionConsumer| to |DaemonSocketConsumer|, r=shuang (0af5957609)
 - Bug 1170993: Manage socket buffers in sub-classes of |UnixSocketBuffer|, r=kmachulis (960de8be45)
 - Bug 1171017: Rename |BluetoothDaemonPDUConsumer| to |DaemonSocketIOConsumer|, r=shuang (eea1681ab8)
 - Bug 1171100 - Fix incorrect logic of handling Bluetooth Gatt Responses in daemon backend. r=tzimmermann (c385364d1e)
 - Bug 1171866 - Remove ReversedUuidToString; f=tzimmermann, r=jocelyn (9b58176c39)
 - Bug 1171017: Rename |BluetoothSocketPDU| to |DaemonSocketPDU|, r=shuang (ce1bbd9d4a)
 - Bug 1171017: Rename |BluetoothDaemonConnectionIO| to |DaemonSocketIO|, r=shuang (00f2a38220)
 - Bug 1171017: Rename |BluetoothDaemonConnection| to |DaemonSocket|, r=shuang (b3c3522719)
 - Bug 1171017: Move classes from ipc/bluetooth to ipc/hal, r=shuang (047714aee4)
 - Bug 1171994: Add |RilSocket| and |RilSocketConsumer|, r=htsai (276211bbb7)
 - Bug 1171994: Forward received RIL socket I/O via |WorkerCrossThreadDispatcher|, r=htsai (7825d1c837)
 - Bug 1185478: Add leak checks to socket I/O classes (40e2c01ce4)
 - Bug 1185478: Remove strong references from socket I/O class to socket classes (6fa94f34ff)
 - Bug 1163912: Set |Type| property of BluetoothDevice a initial value during LeScan; f=elin, r=jocelyn (bda66689ed)
 - Bug 1166215 - Cast 'BluetoothTypeOfDevice' to uint32_t before the BT signal is distributed to BluetoothAdapter. r=joliu (d38ad4e55f)
 - Bug 1170086 - Fix the parameter type of DispatchReplyError() in StartLeScan result handler. r=joliu (a24e23e02f)
 - Bug 1161956 - Fix crashes while using GATT client functions. r=jocelyn (cebfb8c700)
 - Bug 1171868 - Remove GeneratePathFromGattId(aId, aPath, aUuidStr); r=jocelyn (0eac291b3c)
 - Bug 1161945 - Fix empty characteristics and descriptors after searching services. f=elin, r=jocelyn (a0d816fee4)
 - Bug 1164387 - Use |btgatt_client_interface_t.get_device_type| to get the device type. r=jocelyn (c7b5c97a00)
 - Bug 1173139 - Reorder global creation on workers, r=khuey. (acb79ae54e)
 - Bug 1170071 - Part 1: Revise BluetoothGattInterface, result handler, and interface helper for daemon support of gatt server. r=shuang (0ad0c9244e)
 - Bug 1170071 - Part 2: Add helpers for Bluetooth daemon GATT server support. r=shuang (46a4062579)
 - Bug 1170071 - Part 3: Add gatt server support to GATT module for Bluetooth daemon. r=shuang (71d80aabea)
 - Bug 1170071 - Part 4: Add Gatt server interfaces for Bluetooth daemon. r=shuang (a556aaf048)
 - Bug 1187230: Convert Bluetooth to use daemon runnables, r=shuang (9be6501225)
 - Bug 1204382: Add #include for nsIInputStream.h to MediaParent.cpp, to fix a build error in --disable-webrtc builds. r=jib (8b20e934) (36b2354fd)

* Notice: the changelog above may not always applicable to XULRunner code which K-Meleon uses.

A goanna3 source tree that has kmeleon adaption patch applied is available here: https://github.com/roytam1/palemoon27/tree/kmeleon76

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...