mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-03 17:58:55 +02:00 
			
		
		
		
	This is adding in the new Windows 11 only version of taskbar pinning. For the new pinning to work, we need to use limited access feature tokens. Those are going to be made private and aren't included with this change. This change will compile, and will work if built against the correct limited access feature tokens, as specified in developer local machine config files, but for every other build, the new taskbar pinning won't work and will fall back to the old methods. I will implement the try / release building machines using the secret limited access feature tokens in a follow-up diff. Differential Revision: https://phabricator.services.mozilla.com/D205004
		
			
				
	
	
		
			110 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 | 
						|
# vim: set filetype=python:
 | 
						|
# This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
# License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
						|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | 
						|
 | 
						|
# For BinaryPath::GetLong for Windows
 | 
						|
LOCAL_INCLUDES += ["/xpcom/build"]
 | 
						|
 | 
						|
BROWSER_CHROME_MANIFESTS += ["test/browser.toml"]
 | 
						|
XPCSHELL_TESTS_MANIFESTS += ["test/unit/xpcshell.toml"]
 | 
						|
 | 
						|
JAR_MANIFESTS += ["jar.mn"]
 | 
						|
 | 
						|
XPIDL_SOURCES += [
 | 
						|
    "nsIShellService.idl",
 | 
						|
]
 | 
						|
 | 
						|
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
 | 
						|
    XPIDL_SOURCES += [
 | 
						|
        "nsIMacShellService.idl",
 | 
						|
    ]
 | 
						|
 | 
						|
    SOURCES += [
 | 
						|
        "nsMacShellService.cpp",
 | 
						|
    ]
 | 
						|
 | 
						|
    LOCAL_INCLUDES += [
 | 
						|
        # For CocoaFileUtils
 | 
						|
        "/xpcom/io"
 | 
						|
    ]
 | 
						|
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
 | 
						|
    XPIDL_SOURCES += [
 | 
						|
        "nsIGNOMEShellService.idl",
 | 
						|
    ]
 | 
						|
 | 
						|
    SOURCES += [
 | 
						|
        "nsGNOMEShellService.cpp",
 | 
						|
    ]
 | 
						|
    if CONFIG["MOZ_ENABLE_DBUS"]:
 | 
						|
        SOURCES += [
 | 
						|
            "nsGNOMEShellDBusHelper.cpp",
 | 
						|
            "nsGNOMEShellSearchProvider.cpp",
 | 
						|
        ]
 | 
						|
        include("/ipc/chromium/chromium-config.mozbuild")
 | 
						|
 | 
						|
elif CONFIG["OS_ARCH"] == "WINNT":
 | 
						|
    XPIDL_SOURCES += [
 | 
						|
        "nsIWindowsShellService.idl",
 | 
						|
    ]
 | 
						|
    SOURCES += [
 | 
						|
        "nsWindowsShellService.cpp",
 | 
						|
        "Windows11LimitedAccessFeatures.cpp",
 | 
						|
        "Windows11TaskbarPinning.cpp",
 | 
						|
        "WindowsDefaultBrowser.cpp",
 | 
						|
        "WindowsUserChoice.cpp",
 | 
						|
    ]
 | 
						|
    LOCAL_INCLUDES += [
 | 
						|
        "../../../other-licenses/nsis/Contrib/CityHash/cityhash",
 | 
						|
        "/toolkit/xre",
 | 
						|
    ]
 | 
						|
    OS_LIBS += [
 | 
						|
        "bcrypt",
 | 
						|
        "crypt32",
 | 
						|
        "propsys",
 | 
						|
    ]
 | 
						|
 | 
						|
XPIDL_MODULE = "shellservice"
 | 
						|
 | 
						|
if SOURCES:
 | 
						|
    FINAL_LIBRARY = "browsercomps"
 | 
						|
 | 
						|
EXTRA_JS_MODULES += [
 | 
						|
    "HeadlessShell.sys.mjs",
 | 
						|
    "ScreenshotChild.sys.mjs",
 | 
						|
    "ShellService.sys.mjs",
 | 
						|
]
 | 
						|
 | 
						|
for var in (
 | 
						|
    "MOZ_APP_DISPLAYNAME",
 | 
						|
    "MOZ_APP_NAME",
 | 
						|
    "MOZ_APP_VERSION",
 | 
						|
    "MOZ_DEFAULT_BROWSER_AGENT",
 | 
						|
):
 | 
						|
    DEFINES[var] = '"%s"' % CONFIG[var]
 | 
						|
 | 
						|
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
 | 
						|
    apiKey = "MOZ_WINDOWS_TASKBAR_PINNING_API_KEY"
 | 
						|
    DEFINES[apiKey] = 'L"%s"' % (
 | 
						|
        CONFIG[apiKey] or "MOZ_WINDOWS_TASKBAR_PINNING_API_KEY_UNDEFINED"
 | 
						|
    )
 | 
						|
 | 
						|
    # Inject these other values here as well, to keep all of the data together
 | 
						|
    # but also to construct the attribution key on the fly
 | 
						|
    # at compile time instead of at runtime.
 | 
						|
    windows_feature = "com.microsoft.windows.taskbar.pin"
 | 
						|
    publisher_id = "pcsmm0jrprpb2"
 | 
						|
 | 
						|
    DEFINES["MOZ_WINDOWS_TASKBAR_PINNING_API_FEATURE"] = 'L"%s"' % windows_feature
 | 
						|
    DEFINES["MOZ_WINDOWS_TASKBAR_PINNING_API_ATTRIBUTION"] = (
 | 
						|
        'L"%s has registered their use of %s with Microsoft and agrees to the terms of use."'
 | 
						|
        % (publisher_id, windows_feature)
 | 
						|
    )
 | 
						|
 | 
						|
 | 
						|
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
 | 
						|
    CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
 | 
						|
 | 
						|
with Files("**"):
 | 
						|
    BUG_COMPONENT = ("Firefox", "Shell Integration")
 |