Skip to content

Commit

Permalink
add more dirs
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex313031 committed Oct 1, 2023
1 parent 102eaa6 commit 90c8700
Show file tree
Hide file tree
Showing 16 changed files with 1,274 additions and 11 deletions.
10 changes: 0 additions & 10 deletions NOTES.txt

This file was deleted.

23 changes: 22 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -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).
12 changes: 12 additions & 0 deletions docs/NOTES.md
Original file line number Diff line number Diff line change
@@ -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
File renamed without changes.
106 changes: 106 additions & 0 deletions docs/windows_build_instructions.md
Original file line number Diff line number Diff line change
@@ -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\<hash>`, and windbg
can be found in `depot_tools\win_toolchain\vs_files\<hash>\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.
5 changes: 5 additions & 0 deletions infra/Extensions/external_extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// This json file will contain a list of extensions that will be included
// in the installer.

{
}
50 changes: 50 additions & 0 deletions infra/PepperFlash/manifest.json
Original file line number Diff line number Diff line change
@@ -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"
]
}
Binary file added infra/PepperFlash/pepflashplayer.dll
Binary file not shown.
Binary file added infra/default_apps/docs.crx
Binary file not shown.
Binary file added infra/default_apps/drive.crx
Binary file not shown.
38 changes: 38 additions & 0 deletions infra/default_apps/external_extensions.json
Original file line number Diff line number Diff line change
@@ -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"
}
}

Binary file added infra/default_apps/gmail.crx
Binary file not shown.
Binary file added infra/default_apps/youtube.crx
Binary file not shown.
Binary file added logos/chromium_xp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 90c8700

Please sign in to comment.