Jump to content

NotHereToPlayGames

Member
  • Posts

    6,724
  • Joined

  • Last visited

  • Days Won

    83
  • Donations

    0.00 USD 
  • Country

    United States

Everything posted by NotHereToPlayGames

  1. Do you only have the default 62 fonts that come with XP or do you have additional or reduced set? http://thundercloud.net/infoave/premium/tips/xpfonts.htm
  2. My letter M does not get smushed, even with your theme. However, your theme does highlight a very minor difference in letter C and letter P that should be enough for me to track down why this is happening. If my letter M looked like your smushed M, I would have abandoned 360Chrome a long time ago, lol.
  3. I've not witnessed either. Others have reported brightness differences. I have a screencap program that shows the RGB color under the cursor and I have been unable to replicate/confirm brightness differences. I've not tweaked any color palette profiles and use un-hacked graphics drivers. Not the latest-and-greatest driver, just whatever I started using when originally installed the computers over a DECADE ago. Several reinstalls since, of course, but always with the drivers I've been using for over a decade. None of my computers are newer than 8yrs old or so.
  4. It somehow depends on the OS and the fonts installed on that OS. For my XP x86, XP x64, and Win10 x64 systems, all of my 1030, 2022, 2036, and 2044 builds all look EXACTLY the same on ALL of my XPs and 10s. As far as that goes, my 360Chrome v11, v12, v13, and v13.5 builds all look EXACTLY the same on ALL of my XPs and 10s. My systems do a registry font-replace and I avoid Segoe UI font like the bubonic plague! But @verta's image above is not Segoe UI so I am assuming he is on XP. His image appears to be a combination of a larger than normal 96 DPI setting for XP coupled with a ClearType "fattening" of fonts. I hate ClearType and don't normally test any of my releases on any ClearType system config. I'm at a loss at the moment. All of my v11, v12, v13, and v13.5, several builds of each, all look exactly identical on all of my XPs and Win10s.
  5. Download links now included in first post of this thread. Note that even though 360Chrome remains my primary browser even on my Win10 computers, I still use the XP skin. Users that create their own skins or revert to original Chinese skins are of course welcome to do so, it is YOUR computer - it should be disclosed when asking for assistance if your version has been modified.
  6. Unable to replicate here. My monitors turn off when they are supposed to even with 360Chrome in the foreground. They also turn off even if a video is playing, more modern browsers do not.
  7. Thanks. Interestingly, I didn't even see any errors in the console.
  8. Works if you add a "display: none" to that stupid popover that hides the clickable button beneath the popover.
  9. https://www.cvedetails.com/vulnerability-list/vendor_id-8876/product_id-15666/Pandasecurity-Panda-Antivirus.html The Panda version discussed here is v22 and that CVE is for v18. Point is, Panda had to learn from its own mistakes. As did Kaspersky (the anti-Kassperky rants here at MSFN are POLITICAL, period!) That and ALL of you anti-Kaspersky folks won't even ADMIT that you can TURN OFF the "feature" that makes Kaspersky a privacy risk! Malwarebytes gets hit with these security vulnerabilities all the time. https://www.cvedetails.com/vulnerability-list/vendor_id-15027/Malwarebytes.html So does AVG. https://www.cvedetails.com/vulnerability-list/vendor_id-5639/AVG.html?page=1&order=1&trc=31&sha=3f64505c63df246736fcfcbbceb2561459dda9b9 It's political to turn a blind eye to Malwarebytes or AVG yet constantly constantly constantly point a finger at Kaspersky. Turing off the computer for a few days. I've been to this movie and it wasn't worth watching the first three dozen times.
  10. I should add that this wouldn't be the first program I've ran across that doesn't detect .NET "accurately". I've always had better "detection success" with my offline installer (SourceForge? gHacks? I don't recall where I got it) than the official installer from Microsoft. Do we know / can we track down what registry entries or file versions that the Panda installer is hunting for? I don't recall if "Dependency Walker" reveals that. I know that Hex Rays IDA Free will.
  11. Admittedly, I totally forgot that x64 versus x86 was our task at the time. My goal was to compare Kaspersky to Panda. I did not witness anything "negative" with Kaspersky (once you comb through the settings and don't just leave them at "default"), but I did find Panda to be the better of the two. (edit: I only spent a few days on it, more testing would need done.) I meant to compare Panda to AVG but I haven't gotten around to that yet.
  12. I hope I didn't mislead you. My daily XP is x64. My three-partition XP laptop for when I was comparing Panda to Kaspersky on XP is x86. Reading your replies regarding Win7 x64 and .NET reminded me that my laptop is x86. Apologies if I sent any rabbits down the wrong hole.
  13. Agreed! Same here. Despite (finally) moving to Win10 on a few of my computers (which also enables much more advanced chrome.dll decompile/disassembly tools), my XP remains my true workhorse where a good 80% plus of my tasks are performed. 360Chrome even remains my primary browser on even my Win10 computers! Ungoogled v114 is a very close second.
  14. @Jody Thornton and @Cocodile You both present fair and coherent arguments. I'm not "ignoring" that even this browser originally used "favorite" in the context menu being discussed. However, original Chrome v86 does not have this context menu entry, the Chinese added it. This horse is dead and I see no point in discussing further.
  15. Does Edge and IE have a "British" version and a "US" version? ie, does the installer know to use favourite if British and favorite in US? I've never seen favourite with a U and it looks like something a 3rd grader would do as an accident to me, like when my brother would draw an S and an R backwards when he was 4yrs old. At any rate, doesn't matter, I'm sticking with "bookmarks" and I have no problem providing an exact how-to for anyone to change it to whatever they prefer it to be. But no, I'm not going to release three versions just for the sake of one word. Look at it this way, are we asking the creator of Supermium to change favorite to favourite? Or does Supermium use bookmark also? And if so, are we asking bookmark to be changed to favourite in Supermium? So why is it such a "hot" issue here if not for Supermium? Or New Moon? Or Serpent?
  16. I was able to install on XP three weeks ago or so. I recall aborting the install when it started to download/install .net. I dislike automated installs so literally forced a power-off to prevent it, then installed .net manually with an offline installer. Panda installed fine after I manually installed .net.
  17. emoji test -- Okay, this polyfill works for your milk delivery thumbnails without breaking emojis at MSFN - which could be why I already had this in my arsenal as an "all-in-one" polyfill. // ==UserScript== // @name Inject Change Array by Copy All-in-One Polyfill [110] // @version 0.0.1 // @match *://*/* // @run-at document-start // @grant none // ==/UserScript== ((arrayPrototype, typedArrayPrototype) => { "use strict"; const typedArrayLength = Function.call.bind( Object.getOwnPropertyDescriptor(typedArrayPrototype, "length").get ); function toIntegerOrInfinity(arg) { let n = Number(arg); if (Number.isNaN(n) || n === 0) { return 0; } if (n === Number.POSITIVE_INFINITY) { return Number.POSITIVE_INFINITY; } if (n === Number.NEGATIVE_INFINITY) { return Number.NEGATIVE_INFINITY; } let i = Math.floor(Math.abs(n)); if (n < 0) { i = -i; } return i; } function toObject(val) { if (val === null || val === undefined) { throw new TypeError(`${val} is not an object`); } return Object(val); } function lengthOfArrayLike(arr) { if (!(typeof arr === "object" && arr !== null)) { throw new TypeError(); } let len = toIntegerOrInfinity(arr["length"]); if (!Number.isFinite(len)) { len = 0; } return Math.max(0, Math.min(len, Number.MAX_SAFE_INTEGER)); } /** @typedef {Int8Array|Uint8Array|Uint8ClampedArray|Int16Array|Uint16Array|Int32Array|Uint32Array|Float32Array|Float64Array|BigInt64Array|BigUint64Array} TypedArray */ /** * @param {unknown} v * @returns {TypedArray} */ function assertTypedArray(v) { typedArrayPrototype.keys.call(v); // @ts-expect-error return v; } /** * @param {TypedArray} arr * @returns {TypedArray[typeof Symbol.toStringTag]} */ function typedArrayNameInternalSlot(arr) { return Object.getOwnPropertyDescriptor(typedArrayPrototype, Symbol.toStringTag) .get.call(arr); } /** * @param {TypedArray} example * @param {number} length * @returns {TypedArray} */ function typedArrayCreate(example, length) { assertTypedArray(example); const arrayName = typedArrayNameInternalSlot(example); switch (arrayName) { case 'Int8Array': return new Int8Array(length); case 'Uint8Array': return new Uint8Array(length); case 'Uint8ClampedArray': return new Uint8ClampedArray(length); case 'Int16Array': return new Int16Array(length); case 'Uint16Array': return new Uint16Array(length); case 'Int32Array': return new Int32Array(length); case 'Uint32Array': return new Uint32Array(length); case 'Float32Array': return new Float32Array(length); case 'Float64Array': return new Float64Array(length); case 'BigInt64Array': return new BigInt64Array(length); case 'BigUint64Array': return new BigUint64Array(length); default: /** @type {never} */ const n = arrayName; throw new Error(`Unexpected TypedArray name ${n}`); } } /** * @param {TypedArray} example * @returns {boolean} */ function isBigIntArray(example) { assertTypedArray(example); const arrayName = typedArrayNameInternalSlot(example); switch (arrayName) { case 'BigInt64Array': case 'BigUint64Array': return true; } return false; } function transfer({ count, src, srcStart, srcStep = 1, target, targetStart, targetStep = srcStep }) { let from = srcStart; let to = targetStart; for (let i = 0; i < count; i++) { target[to] = src[from]; from += srcStep; to += targetStep; } } /** * @param {TypedArray} example * @param {unknown} value * @description convert `value` to bigint or number based on the the type of array * @returns {bigint | number} * @throws if one of the override methods throws. e.g. `@@toPrimitive`, `valueOf`, `toString` */ function typedArrayNumberConversion(example, value) { let asNumber; { if (isBigIntArray(example)) { asNumber = 0n; } else { asNumber = -0; // important to use `-0` and not `0` } // @ts-ignore : using `+=` to emulate ToBigInt or ToNumber asNumber += value; } return asNumber; } defineArrayMethods({ toReversed() { const o = toObject(this); const len = lengthOfArrayLike(o); const a = new Array(len); transfer({ src: o, srcStart: len - 1, srcStep: -1, target: a, targetStart: 0, targetStep: 1, count: len }); return a; }, }); defineTypedArrayMethods({ toReversed() { const o = assertTypedArray(this); const len = typedArrayLength(o); const a = typedArrayCreate(o, len); transfer({ src: o, srcStart: len - 1, srcStep: -1, target: a, targetStart: 0, targetStep: 1, count: len }); return a; }, }); defineArrayMethods({ toSorted(compareFn) { if (compareFn !== void 0 && typeof compareFn !== "function") { throw new TypeError(); } const o = toObject(this); const len = lengthOfArrayLike(o); const a = new Array(len);; transfer({ src: o, srcStart: 0, target: a, targetStart: 0, count: len }); arrayPrototype.sort.call(a, compareFn); return a; }, }); defineTypedArrayMethods({ toSorted(compareFn) { if (compareFn !== void 0 && typeof compareFn !== "function") { throw new TypeError(); } const o = assertTypedArray(this); const len = typedArrayLength(o); const a = typedArrayCreate(o, len); transfer({ src: o, srcStart: 0, target: a, targetStart: 0, count: len }); typedArrayPrototype.sort.call(a, compareFn); return a; }, }); function calculateSplice({ start, len, deleteCount, values, argsCount }) { const relativeStart = toIntegerOrInfinity(start); let actualStart; if (relativeStart === -Infinity) { actualStart = 0; } else if (relativeStart < 0) { actualStart = Math.max(len + relativeStart, 0); } else { actualStart = Math.min(relativeStart, len); } const insertCount = values.length; let actualDeleteCount; if (/* start is not present */ argsCount === 0) { actualDeleteCount = 0; } else if (/* deleteCount is not present */ argsCount === 1) { actualDeleteCount = len - actualStart; } else { const dc = toIntegerOrInfinity(deleteCount); actualDeleteCount = Math.max(0, Math.min(dc, len - actualStart)); } const newLen = len + insertCount - actualDeleteCount; return { actualStart, newLen, actualDeleteCount }; } function doSplice({ src, target, actualStart, actualDeleteCount, values, newLen }) { let i = 0; while (i < actualStart) { target = src; i++; } for (const E of values) { target = E; i++; } let r = actualStart + actualDeleteCount; while (i < newLen) { let fromValue = src[r]; target = fromValue; i++; r++; } } defineArrayMethods({ toSpliced(start, deleteCount, ...values) { const o = toObject(this); const len = lengthOfArrayLike(o); const { actualStart, actualDeleteCount, newLen } = calculateSplice({ start, deleteCount, len, values, argsCount: arguments.length }); if (newLen > Number.MAX_SAFE_INTEGER) { throw new TypeError(); } const a = new Array(newLen); doSplice({ src: o, target: a, actualStart, actualDeleteCount, values, newLen }); return a; } }); defineArrayMethods({ with(index, value) { const o = toObject(this); const len = lengthOfArrayLike(o); const relativeIndex = toIntegerOrInfinity(index); const actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex; if (actualIndex < 0 || actualIndex >= len) { throw new RangeError(); } const a = new Array(len); for (let k = 0; k < len; k++) { const v = k === actualIndex ? value : o[k]; a[k] = v; } return a; } }); defineTypedArrayMethods({ with(index, value) { const o = assertTypedArray(this); const len = typedArrayLength(o); const relativeIndex = toIntegerOrInfinity(index); const actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex; const asNumber = typedArrayNumberConversion(o, value); if (actualIndex < 0 || actualIndex >= len) { throw new RangeError(); } const a = typedArrayCreate(o, len); for (let k = 0; k < len; k++) { const v = k === actualIndex ? asNumber : o[k]; a[k] = v; } return a; } }); /** @type {(def: { [N in "with" | "toReversed" | "toSorted" | "toSpliced"]?: typeof Array.prototype[N] }) => void} */ function defineArrayMethods(def) { defineMethods(arrayPrototype, def).forEach(name => { if (name !== 'with') { // 'with' is already a keyword arrayPrototype[Symbol.unscopables][name] = true; } }); } /** @type {(def: { [N in "with" | "toReversed" | "toSorted"]?: (this: TypedArray, ...args: Parameters<Uint8Array[N]>) => TypedArray }) => void} */ function defineTypedArrayMethods(def) { defineMethods(typedArrayPrototype, def); } function defineMethods(obj, def) { return Object.entries(def).map(([name, method]) => { Object.defineProperty(obj, name, { value: method, enumerable: false, configurable: true, writable: true, }); return name; }); } })(Array.prototype, Object.getPrototypeOf(Int8Array.prototype));
  18. You could try this ( https://github.com/tc39/proposal-change-array-by-copy/blob/main/polyfill.js ) instead if you want a polyfill that you keep "enabled" all the time for all web sites. Disclaimer that I have not tested this yet.
  19. Interesting. I don't enable any of my polyfills by default. I only have them because of issue web sites posted here at MSFN - I've actually never encountered the need for any of them on my frequently visited web sites. If you find the need for any of them on your frequently visited web site(s), just edit the // @match *://*/* line to match your specific web site(s).
×
×
  • Create New...