diff --git a/NOTES.txt b/NOTES.txt deleted file mode 100644 index f3505cf..0000000 --- a/NOTES.txt +++ /dev/null @@ -1,10 +0,0 @@ -# TODO - - - Use M54 - - re-add directx 43 for webgl - - google sync - -## NOTES - -1. https://web.archive.org/web/20170921145326/http://browser.taokaizen.com/build.html -2. https://web.archive.org/web/20210914003606/https://github.com/henrypp/chromium diff --git a/README.md b/README.md index ae0fab9..75fd67a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,28 @@ -# Chromium XP +# ![Logo](logos/chromium_xp.png) Chromium XP ![XP Logo](logos/xp_flag.png) Based on M49.0.2623.112 Builds of Chromium for Windows XP, Server 2003, and Windows 2000 (With BlackWingCat's Extended Kernel Patch and latest MSU Update Rollup 4) I will be attempting to fix some things, backport some stuff, and use compiler optimizations from [Thorium](https://thorium.rocks/), except no AVX (will be using SSE3 as the baseline). + +Chromium is an open-source browser project that aims to build a safer, faster, +and more stable way for all users to experience the web. + +The project's web site is https://www.chromium.org. + +To check out the source code locally, don't use `git clone`! Instead, +follow [the instructions on how to get the code](https://web.archive.org/web/20160414155322/https://www.chromium.org/developers/how-tos/get-the-code). + +Documentation in the source is rooted in [docs](https://source.chromium.org/chromium/chromium/src/+/refs/tags/49.0.2623.112:docs/). + +Learn how to [Get Around the Chromium Source Code Directory Structure +](https://web.archive.org/web/20181112101626/https://www.chromium.org/developers/how-tos/getting-around-the-chrome-source-code/). + +For historical reasons, there are some small top level directories. Now the +guidance is that new top level directories are for product (e.g. Chrome, +Android WebView, Ash). Even if these products have multiple executables, the +code should be in subdirectories of the product. + +If you found a bug upstream, please file it at https://crbug.com/new. +If you found a bug in this fork, please file it [Here](https://github.com/Alex313031/chromium-xp/issues). diff --git a/docs/NOTES.md b/docs/NOTES.md new file mode 100644 index 0000000..e85301b --- /dev/null +++ b/docs/NOTES.md @@ -0,0 +1,12 @@ +# TODO + + - Backport M54 patches like Advanced Chrome + - re-add d3dcompiler_43.dll for hardware GPU acceleration + - Add repo wide LTO flags like modern Chromium + - Add prebuilt swiftshader from Chrome binary to installer + - Google Sync + +## NOTES + +1. https://web.archive.org/web/20170921145326/http://browser.taokaizen.com/build.html +2. https://web.archive.org/web/20210914003606/https://github.com/henrypp/chromium diff --git a/args.gn.bak b/docs/args.gn.bak similarity index 100% rename from args.gn.bak rename to docs/args.gn.bak diff --git a/docs/windows_build_instructions.md b/docs/windows_build_instructions.md new file mode 100644 index 0000000..91e21ba --- /dev/null +++ b/docs/windows_build_instructions.md @@ -0,0 +1,106 @@ +# Windows Build Instructions + +## Common checkout instructions + +This page covers Windows-specific setup and configuration. The +[general checkout +instructions](https://web.archive.org/web/20160414155322/https://www.chromium.org/developers/how-tos/get-the-code) cover +installing depot tools and checking out the code via git. + +## Setting up Windows + +You must set your Windows system locale to English, or else you may get +build errors about "The file contains a character that cannot be +represented in the current code page." + +### Setting up the environment for Visual Studio + +You must build with Visual Studio 2015 Update 2; no other version is +supported. + +You must have Windows 7 x64 or later. x86 OSs are unsupported. + +## Getting the compiler toolchain + +Follow the appropriate path below: + +### Open source contributors + +Install Visual Studio 2015 Update 2 or later OR Visual Studio 2015 Update 4 or later. +Community Edition should work if its license is appropriate for you. +Use the Custom Install option and select: + +- Visual C++, which will select three sub-categories including MFC +- Universal Windows Apps Development Tools > Tools +- Universal Windows Apps Development Tools > Windows 10 SDK (10.0.10586) + +You must have the 10586 SDK installed or else you will hit compile errors such +as redefined macros. + +Install Windows Driver Kit (WDK) 10, or use some other method to get the +Debugging Tools for Windows. + +Run `set DEPOT_TOOLS_WIN_TOOLCHAIN=0`, or set that variable in your +global environment. + +Compilation is done through ninja, **not** Visual Studio. + +### Google employees + +Run: `download_from_google_storage --config` and follow the +authentication instructions. **Note that you must authenticate with your +@google.com credentials**, not @chromium.org. Enter "0" if asked for a +project-id. + +Run: `gclient sync` again to download and install the toolchain automatically. + +The toolchain will be in `depot_tools\win_toolchain\vs_files\`, and windbg +can be found in `depot_tools\win_toolchain\vs_files\\win_sdk\Debuggers`. + +If you want the IDE for debugging and editing, you will need to install +it separately, but this is optional and not needed to build Chromium. + +## Using the Visual Studio IDE + +If you want to use the Visual Studio IDE, use the `--ide` command line +argument to `gn gen` when you generate your output directory (as described on +the [get the code](https://web.archive.org/web/20160414155322/https://www.chromium.org/developers/how-tos/get-the-code) +page): + +```gn gen --ide=vs out\Default +devenv out\Default\all.sln +``` + +GN will produce a file `all.sln` in your build directory. It will internally +use Ninja to compile while still allowing most IDE functions to work (there is +no native Visual Studio compilation mode). If you manually run "gen" again you +will need to resupply this argument, but normally GN will keep the build and +IDE files up to date automatically when you build. + +The generated solution will contain several thousand projects and will be very +slow to load. Use the `--filters` argument to restrict generating project files +for only the code you're interested in, although this will also limit what +files appear in the project explorer. A minimal solution that will let you +compile and run Chrome in the IDE but will not show any source files is: + +```gn gen --ide=vs --filters=//chrome out\Default``` + +There are other options for controlling how the solution is generated, run `gn +help gen` for the current documentation. + +## Performance tips + +1. Have a lot of fast CPU cores and enough RAM to keep them all busy. + (Minimum recommended is 4-8 fast cores and 16-32 GB of RAM) +2. Reduce file system overhead by excluding build directories from + antivirus and indexing software. +3. Store the build tree on a fast disk (preferably SSD). +4. If you are primarily going to be doing debug development builds, you + should use the component build. Set the [build + arg](https://web.archive.org/web/20160501005453/https://www.chromium.org/developers/gn-build-configuration) + `is_component_build = true`. + This will generate many DLLs and enable incremental linking, which makes + linking **much** faster in Debug. + +Still, expect build times of 30 minutes to 2 hours when everything has to +be recompiled. diff --git a/infra/Extensions/external_extensions.json b/infra/Extensions/external_extensions.json new file mode 100644 index 0000000..1ef50f3 --- /dev/null +++ b/infra/Extensions/external_extensions.json @@ -0,0 +1,5 @@ +// This json file will contain a list of extensions that will be included +// in the installer. + +{ +} \ No newline at end of file diff --git a/infra/PepperFlash/manifest.json b/infra/PepperFlash/manifest.json new file mode 100644 index 0000000..b50bcd9 --- /dev/null +++ b/infra/PepperFlash/manifest.json @@ -0,0 +1,50 @@ +{ + "description": "Pepper Flash Player", + "name": "Flapper", + "version": "21.0.0.213", + "x-flapper-revision": "45398", + "x-ppapi-arch": "ia32", + "x-ppapi-os": "win", + "x-ppapi-required-interfaces": [ + "PPB_AudioConfig;1.1|PPB_AudioConfig;1.0", + "PPB_AudioInput(Dev);0.4|PPB_AudioInput(Dev);0.3", + "PPB_Audio;1.1|PPB_Audio;1.0", + "PPB_BrowserFont_Trusted;1.0", + "PPB_Buffer(Dev);0.4", + "PPB_CharSet(Dev);0.4", + "PPB_Core;1.0", + "PPB_Crypto(Dev);0.1", + "PPB_CursorControl(Dev);0.4", + "PPB_FileChooser(Dev);0.6|PPB_FileChooser(Dev);0.5", + "PPB_FileChooserTrusted;0.6|PPB_FileChooserTrusted;0.5", + "PPB_FileRef;1.2|PPB_FileRef;1.1|PPB_FileRef;1.0", + "PPB_Flash_Clipboard;5.1|PPB_Flash_Clipboard;5.0|PPB_Flash_Clipboard;4.0", + "PPB_Flash_File_FileRef;2", + "PPB_Flash_File_ModuleLocal;3", + "PPB_Flash_FontFile;0.2|PPB_Flash_FontFile;0.1|PPB_PDF;1", + "PPB_FlashFullscreen;1.0|PPB_FlashFullscreen;0.1", + "PPB_Flash;13.0|PPB_Flash;12.6|PPB_Flash;12.5|PPB_Flash;12.4", + "PPB_Flash_Menu;0.2", + "PPB_Graphics2D;1.1|PPB_Graphics2D;1.0", + "PPB_Graphics3D;1.0", + "PPB_ImageData;1.0", + "PPB_IMEInputEvent(Dev);0.2|PPB_IMEInputEvent(Dev);0.1", + "PPB_InputEvent;1.0", + "PPB_Instance;1.0", + "PPB_Memory(Dev);0.1", + "PPB_NetAddress_Private;1.1|PPB_NetAddress_Private;1.0|PPB_NetAddress_Private;0.1", + "PPB_OpenGLES2ChromiumMapSub;1.0|PPB_OpenGLES2ChromiumMapSub(Dev);1.0|PPB_GLESChromiumTextureMapping(Dev);0.1", + "PPB_OpenGLES2;1.0", + "PPB_TCPSocket_Private;0.5|PPB_TCPSocket_Private;0.4|PPB_TCPSocket_Private;0.3", + "PPB_TextInput(Dev);0.2|PPB_TextInput(Dev);0.1", + "PPB_UDPSocket_Private;0.4|PPB_UDPSocket_Private;0.3", + "PPB_URLLoader;1.0", + "PPB_URLLoaderTrusted;0.3", + "PPB_URLRequestInfo;1.0", + "PPB_URLResponseInfo;1.0", + "PPB_URLUtil(Dev);0.7|PPB_URLUtil(Dev);0.6", + "PPB_Var;1.2|PPB_Var;1.1|PPB_Var;1.0", + "PPB_VideoCapture(Dev);0.3", + "PPB_View;1.2|PPB_View;1.1|PPB_View;1.0" + ] +} diff --git a/infra/PepperFlash/pepflashplayer.dll b/infra/PepperFlash/pepflashplayer.dll new file mode 100644 index 0000000..4eb3893 Binary files /dev/null and b/infra/PepperFlash/pepflashplayer.dll differ diff --git a/infra/default_apps/docs.crx b/infra/default_apps/docs.crx new file mode 100644 index 0000000..6156e31 Binary files /dev/null and b/infra/default_apps/docs.crx differ diff --git a/infra/default_apps/drive.crx b/infra/default_apps/drive.crx new file mode 100644 index 0000000..36e8395 Binary files /dev/null and b/infra/default_apps/drive.crx differ diff --git a/infra/default_apps/external_extensions.json b/infra/default_apps/external_extensions.json new file mode 100644 index 0000000..59a0f9a --- /dev/null +++ b/infra/default_apps/external_extensions.json @@ -0,0 +1,38 @@ +// Dictionary of default apps to install into new profiles. Each entry maps +// the extension's id to its crx's path (relative to this file) and the version +// of the extension contained in the crx. +// +// When an extension is added or removed here, the two lists 'default_apps_list' +// and 'default_apps_list_linux_dest' in build/common.gypi must also be updated. +{ + "blpcfgokakmgnkcojhhkbfbldkacnbeo" : { + "external_crx": "youtube.crx", + "external_version": "4.2.5", + "is_bookmark_app": true + }, + "pjkljhegncpnkpknbcohdijeoejaedia" : { + "external_crx": "gmail.crx", + "external_version": "7" + }, + "apdfllckaahabafndbhieahigkjlhalf" : { + "external_crx": "drive.crx", + "external_version": "6.2" + }, + "aohghmighlieiainnegkcijnfilokake" : { + "external_crx": "docs.crx", + "external_version": "0.0.0.6" + }, + // Google Sheets + "aapocclcgogkmnckokdopfmhonfmgoek" : { + "external_update_url": "https://clients2.google.com/service/update2/crx" + }, + // Google Slides + "felcaaldnbdncclmgdcncolpebgiejap" : { + "external_update_url": "https://clients2.google.com/service/update2/crx" + }, + // Drive extension + "ghbmnnjooekpmoecnnnilnnbdlolhkhi" : { + "external_update_url": "https://clients2.google.com/service/update2/crx" + } +} + diff --git a/infra/default_apps/gmail.crx b/infra/default_apps/gmail.crx new file mode 100644 index 0000000..c9c0cc3 Binary files /dev/null and b/infra/default_apps/gmail.crx differ diff --git a/infra/default_apps/youtube.crx b/infra/default_apps/youtube.crx new file mode 100644 index 0000000..33ba72a Binary files /dev/null and b/infra/default_apps/youtube.crx differ diff --git a/logos/chromium_xp.png b/logos/chromium_xp.png new file mode 100644 index 0000000..54758ef Binary files /dev/null and b/logos/chromium_xp.png differ diff --git a/logos/xp_banner.svg b/logos/xp_banner.svg new file mode 100644 index 0000000..ee0bf73 --- /dev/null +++ b/logos/xp_banner.svg @@ -0,0 +1,1041 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/logos/xp_flag.png b/logos/xp_flag.png new file mode 100644 index 0000000..ace64f7 Binary files /dev/null and b/logos/xp_flag.png differ