Jump to content

Recommended Posts

Posted (edited)
On 6/17/2024 at 4:31 AM, schwups said:

maybe we need a way to detect kernelex and make a special codepath for it.

EDIT: alright GetSystemDirectoryA() returns C:\WINDOWS\SYSTEM and not system32, this can be used.

EDIT2: changed sqlite3_win32_is_nt() to check return of GetSystemDirectoryA() so if should use non-NT codepath no matter KernelEx setting is, but still getting SQLITE_BUSY in my firefox38-vc2010.

Edited by roytam1

Posted
On 6/16/2024 at 5:57 AM, roytam1 said:

So I wonder if file locking (i.e. LockFileEx(), which SQLite uses when it detects non-9x from KernelEx) is getting problem.

I wonder if KernelEx emulates LockFileEx correctly?

[Moz]sqlite.dll only version checks for Windows 2.x, not 9x. Hexing that one byte from 2 to 5 should cause it to use the fallback method when compatibility is set to XP.

I'm also working on more robust versions of LockFileEx and UnlockFileEx that support both shared and exclusive locks. Full emulation is not possible, but sufficient emulation might be.

 

Posted
4 hours ago, jumper said:

[Moz]sqlite.dll only version checks for Windows 2.x, not 9x. Hexing that one byte from 2 to 5 should cause it to use the fallback method when compatibility is set to XP.

I'm also working on more robust versions of LockFileEx and UnlockFileEx that support both shared and exclusive locks. Full emulation is not possible, but sufficient emulation might be.

 

no, it checks for dwPlatformId == VER_PLATFORM_WIN32_NT:

/*
** This function determines if the machine is running a version of Windows
** based on the NT kernel.
*/
SQLITE_API int SQLITE_STDCALL sqlite3_win32_is_nt(void){
#if SQLITE_OS_WINRT
  /*
  ** NOTE: The WinRT sub-platform is always assumed to be based on the NT
  **       kernel.
  */
  return 1;
#elif defined(SQLITE_WIN32_GETVERSIONEX) && SQLITE_WIN32_GETVERSIONEX
  if( osInterlockedCompareExchange(&sqlite3_os_type, 0, 0)==0 ){
#if defined(SQLITE_WIN32_HAS_ANSI)
    OSVERSIONINFOA sInfo;
    sInfo.dwOSVersionInfoSize = sizeof(sInfo);
    osGetVersionExA(&sInfo);
    osInterlockedCompareExchange(&sqlite3_os_type,
        (sInfo.dwPlatformId == VER_PLATFORM_WIN32_NT) ? 2 : 1, 0);
#elif defined(SQLITE_WIN32_HAS_WIDE)
    OSVERSIONINFOW sInfo;
    sInfo.dwOSVersionInfoSize = sizeof(sInfo);
    osGetVersionExW(&sInfo);
    osInterlockedCompareExchange(&sqlite3_os_type,
        (sInfo.dwPlatformId == VER_PLATFORM_WIN32_NT) ? 2 : 1, 0);
#endif
  }
  return osInterlockedCompareExchange(&sqlite3_os_type, 2, 2)==2;
#elif SQLITE_TEST
  return osInterlockedCompareExchange(&sqlite3_os_type, 2, 2)==2;
#else
  /*
  ** NOTE: All sub-platforms where the GetVersionEx[AW] functions are
  **       deprecated are always assumed to be based on the NT kernel.
  */
  return 1;
#endif
}

 

Posted
On 6/27/2024 at 3:05 PM, roytam1 said:

maybe we need a way to detect kernelex and make a special codepath for it.

EDIT: alright GetSystemDirectoryA() returns C:\WINDOWS\SYSTEM and not system32, this can be used.

EDIT2: changed sqlite3_win32_is_nt() to check return of GetSystemDirectoryA() so if should use non-NT codepath no matter KernelEx setting is, but still getting SQLITE_BUSY in my firefox38-vc2010.

ah, mozilla always defining SQLITE_WIN32_GETVERSIONEX=0 when compiling SQLite3, so non-NT codepath are never executed.

trying to remove this, and SQLite3 no longer returning SQLITE_BUSY, but it crashes when starting in next time, with no hints to debug.

  • 1 month later...
Posted

Youtube: The button "Remind ME Later" on request page for Browser update doesn't work anymore. Now also version 52 and Mypal 29.3 is affected. One solution is to change the useragent (Firefox 68 or higher). Or use RT's forks like Basilisk or Palemoon.

Posted

Serpent/Newmoon latest Versions 20250617:

Restore Previous Session, Recently Closed Tabs and Recently Closed Windows seem to be not functional and the History and the Bookmarks created on XP+ can't be used on ME/98 anymore - now empty. So Library could be almost completely broken on Win ME now. Probably the passwords aren't saved anymore and auto fill is broken, too. Maybe even more broke. The next days will show that.

Posted

The same applies to IceAPE-UXP (current version, dated 2025.06.21). As a temporary workaround, I have rolled back the two files "xul.dll" and "mozsqlite3.dll" to previous versions (dated 2025.05.31).

Posted (edited)

Yes, the files for Serpent and Newmoon are XUL and nss3. I already assumed that the problem is related to the Sqlite lib update 3.50.1. I wondered, whether it is possible to edit XUL, but I didn't find the sqlite identifier in it. So that it is possible to avoid the Sqlite update error message on start, if using the new xul file. For me IceAPE-UXP is really not my first choice, because of the 0bit download problem. Or is there a fix out there?

Edited by schwups
Posted
24 minutes ago, schwups said:

For me IceAPE-UXP is really not my first choice, because of the 0bit download problem. Or is there a fix out there?

No. I use a temporary workaround - when I need to download something, I copy the download link to another program (for example, Mypal29 or OperaPresto 12.02). I assume that Serpent/Newmoon doesn't have this error? Well, that's quite interesting, and I'll try it out.

Posted (edited)

The 0bit download is a Seamonkey problem and its forks. Firefox and PM aren't affected.

Edited by schwups
Posted

After a further check, I realised that at least "Restore Previous Session, Recently Closed Tabs and Recently Closed Windows" still works with IceApe and Newmoon here. :) So I see a different behaviour to Serpent.

Posted

That's right, I've already checked it. In "palemoon-28" (From 2025.05.31) and "basilisk52" (From 2025.05.31), the files are downloading correctly. I've added them to my programs. Thank you. As you mentioned, this is the cause of the new problem: "- import from UXP: No issue - Update SQLite lib to 3.50.1 and require it as syslib. (5ae40cfe) (6c4f2fc44)" For some reason, this new "SQLite 3.50.1" can't work properly anymore. What is missing? I also tested it on a clean version of XP (SP2, from 2004), and there was no issue. Dependency Walker under Windows 98 doesn't show any new dependencies for "mozsqlite3.dll," and I didn't notice any new requirements for "xul.dll." Is there any internal fundamental change in "SQLite" itself that doesn't take into account the features of 9x? I don't understand, as I'm not very familiar with all of this. For now, I'll stick to the previous (stable) versions.

 

1 hour ago, schwups said:

After a further check, I realised that at least "Restore Previous Session, Recently Closed Tabs and Recently Closed Windows" still works with IceApe and Newmoon here. :) So I see a different behaviour to Serpent.

 

How did you manage to do this? In IceApe, it only works after rolling back the two files mentioned earlier.

Posted
8 minutes ago, defuser said:

How did you manage to do this? In IceApe, it only works after rolling back the two files mentioned earlier.

I didn't make something special. I tested on two machines and also with fresh profiles. I can only guess. I could test on a more reduced system, maybe I could try with the Kext files I provide on the first page here.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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