Diff
Modified: trunk/Source/WTF/wtf/PlatformHave.h (295529 => 295530)
--- trunk/Source/WTF/wtf/PlatformHave.h 2022-06-14 18:05:06 UTC (rev 295529)
+++ trunk/Source/WTF/wtf/PlatformHave.h 2022-06-14 18:06:06 UTC (rev 295530)
@@ -1256,3 +1256,7 @@
|| (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 160000))
#define HAVE_APPLE_PUSH_SERVICE_URL_TOKEN_SUPPORT 1
#endif
+
+#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 130000)
+#define HAVE_POWERLOG_TASK_MODE_QUERY 1
+#endif
Modified: trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj (295529 => 295530)
--- trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj 2022-06-14 18:05:06 UTC (rev 295529)
+++ trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj 2022-06-14 18:06:06 UTC (rev 295530)
@@ -437,6 +437,7 @@
DD20DE6427BC90D80093D175 /* ThreadGlobalData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C5C57DE275719F4003B540D /* ThreadGlobalData.h */; settings = {ATTRIBUTES = (Private, ); }; };
DD20DE6527BC90F90093D175 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C09D0571E31C57E00725F18 /* config.h */; };
DDB04F32278E4F1B008D3678 /* libWebKitAdditions.a in Product Dependencies */ = {isa = PBXBuildFile; fileRef = DDE99300278D07B800F60D26 /* libWebKitAdditions.a */; };
+ E34F26F62846D0D90076E549 /* PowerLogSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E34F26F52846B7550076E549 /* PowerLogSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
F44291641FA52670002CC93E /* FileSizeFormatter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F44291621FA52670002CC93E /* FileSizeFormatter.cpp */; };
F44291681FA52705002CC93E /* FileSizeFormatterCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = F44291661FA52705002CC93E /* FileSizeFormatterCocoa.mm */; };
F46B8C4D26740918007A6554 /* VisionKitCoreSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = F46B8C4C26740918007A6554 /* VisionKitCoreSoftLink.mm */; };
@@ -948,6 +949,7 @@
DDE99300278D07B800F60D26 /* libWebKitAdditions.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libWebKitAdditions.a; sourceTree = BUILT_PRODUCTS_DIR; };
DF83E208263734F1000825EF /* CryptoKitPrivateSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoKitPrivateSPI.h; sourceTree = "<group>"; };
E327C0DE260BDC90002281C5 /* NotifySPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotifySPI.h; sourceTree = "<group>"; };
+ E34F26F52846B7550076E549 /* PowerLogSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PowerLogSPI.h; sourceTree = "<group>"; };
E5D45D112106A07400D2B738 /* NSColorWellSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSColorWellSPI.h; sourceTree = "<group>"; };
E5D45D132106A18700D2B738 /* NSPopoverColorWellSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPopoverColorWellSPI.h; sourceTree = "<group>"; };
EB8A8DC12509E87E00D1BF90 /* MediaToolboxSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaToolboxSPI.h; sourceTree = "<group>"; };
@@ -1163,6 +1165,7 @@
07035D3027A9B32E00FB03E4 /* ScreenCaptureKitSPI.h */,
71B1141F26823ACD004D6701 /* SystemPreviewSPI.h */,
0C7785881F45130F00F4EBB6 /* TelephonyUtilitiesSPI.h */,
+ E34F26F52846B7550076E549 /* PowerLogSPI.h */,
);
path = mac;
sourceTree = "<group>";
@@ -1800,6 +1803,7 @@
DD20DE0527BC90D80093D175 /* QuartzCoreSPI.h in Headers */,
DD20DE3F27BC90D80093D175 /* QuickLookMacSPI.h in Headers */,
DD20DDC127BC90D70093D175 /* QuickLookSoftLink.h in Headers */,
+ E34F26F62846D0D90076E549 /* PowerLogSPI.h in Headers */,
DD20DE1827BC90D80093D175 /* QuickLookSPI.h in Headers */,
DD20DDC727BC90D70093D175 /* QuickLookUISoftLink.h in Headers */,
DD20DDC227BC90D70093D175 /* ReplayKitSoftLink.h in Headers */,
Copied: trunk/Source/WebCore/PAL/pal/spi/mac/PowerLogSPI.h (from rev 295528, trunk/Source/WebKit/UIProcess/Cocoa/GPUProcessProxyCocoa.mm) (0 => 295530)
--- trunk/Source/WebCore/PAL/pal/spi/mac/PowerLogSPI.h (rev 0)
+++ trunk/Source/WebCore/PAL/pal/spi/mac/PowerLogSPI.h 2022-06-14 18:06:06 UTC (rev 295530)
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2022 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#if USE(APPLE_INTERNAL_SDK)
+
+#include <PowerLog/PLClientLogging.h>
+#include <PowerLog/PLXPCClientHeader.h>
+
+#else // USE(APPLE_INTERNAL_SDK)
+
+typedef CF_ENUM(short, PLClientID)
+{
+ PLClientIDWebKit = 132
+};
+
+WTF_EXTERN_C_BEGIN
+
+CFDictionaryRef PLQueryRegistered(PLClientID, CFStringRef queryName, CFDictionaryRef parameters);
+
+WTF_EXTERN_C_END
+
+#endif
+
+extern NSString *const kPLTaskingStartNotification;
Modified: trunk/Source/WebKit/Configurations/WebKit.xcconfig (295529 => 295530)
--- trunk/Source/WebKit/Configurations/WebKit.xcconfig 2022-06-14 18:05:06 UTC (rev 295529)
+++ trunk/Source/WebKit/Configurations/WebKit.xcconfig 2022-06-14 18:06:06 UTC (rev 295530)
@@ -173,8 +173,11 @@
WK_INSTALL_COORDINATION_LDFLAGS_iphoneos = -framework InstallCoordination;
WK_INSTALL_COORDINATION_LDFLAGS_iphonesimulator = $(WK_INSTALL_COORDINATION_LDFLAGS_iphoneos)
-FRAMEWORK_AND_LIBRARY_LDFLAGS = -lobjc -framework CFNetwork -framework CoreAudio -framework CoreFoundation -framework CoreGraphics -framework CoreText -framework Foundation -framework ImageIO -framework IOKit -framework IOSurface -framework WebKitLegacy -lnetwork -framework Metal $(WK_ACCESSIBILITY_LDFLAGS) $(WK_APPKIT_LDFLAGS) $(WK_APPLE_PUSH_SERVICE_LDFLAGS) $(WK_BACKBOARD_SERVICES_LDFLAGS) $(WK_RUNNINGBOARD_SERVICES_LDFLAGS) $(WK_AUTHKIT_LDFLAGS) $(WK_CARBON_LDFLAGS) $(WK_CONTACTS_LDFLAGS) $(WK_CORE_PREDICTION_LDFLAGS) $(WK_CORE_SERVICES_LDFLAGS) $(WK_GRAPHICS_SERVICES_LDFLAGS) $(WK_LIBNETWORKEXTENSION_LDFLAGS) $(WK_LIBSANDBOX_LDFLAGS) $(WK_LIBWEBRTC_LDFLAGS) $(WK_MOBILE_CORE_SERVICES_LDFLAGS) $(WK_MOBILE_GESTALT_LDFLAGS) $(WK_PDFKIT_LDFLAGS) $(WK_PROTOTYPE_TOOLS_LDFLAGS) $(WK_SAFE_BROWSING_LDFLAGS) $(WK_SECURITY_INTERFACE_LDFLAGS) $(WK_UIKIT_LDFLAGS) $(WK_UNIFORM_TYPE_IDENTIFIERS_LDFLAGS) $(WK_URL_FORMATTING_LDFLAGS) $(WK_WEBINSPECTORUI_LDFLAGS) $(WK_COORDINATOR_LDFL
AGS) $(WK_INSTALL_COORDINATION_LDFLAGS) $(WK_APP_STORE_DAEMON_LDFLAGS);
+WK_POWERLOG_LDFLAGS = $(WK_POWERLOG_LDFLAGS_$(WK_PLATFORM_NAME));
+WK_POWERLOG_LDFLAGS_macosx = -weak_framework PowerLog -weak_framework PowerlogCore;
+FRAMEWORK_AND_LIBRARY_LDFLAGS = -lobjc -framework CFNetwork -framework CoreAudio -framework CoreFoundation -framework CoreGraphics -framework CoreText -framework Foundation -framework ImageIO -framework IOKit -framework IOSurface -framework WebKitLegacy -lnetwork -framework Metal $(WK_ACCESSIBILITY_LDFLAGS) $(WK_APPKIT_LDFLAGS) $(WK_APPLE_PUSH_SERVICE_LDFLAGS) $(WK_BACKBOARD_SERVICES_LDFLAGS) $(WK_RUNNINGBOARD_SERVICES_LDFLAGS) $(WK_AUTHKIT_LDFLAGS) $(WK_CARBON_LDFLAGS) $(WK_CONTACTS_LDFLAGS) $(WK_CORE_PREDICTION_LDFLAGS) $(WK_CORE_SERVICES_LDFLAGS) $(WK_GRAPHICS_SERVICES_LDFLAGS) $(WK_LIBNETWORKEXTENSION_LDFLAGS) $(WK_LIBSANDBOX_LDFLAGS) $(WK_LIBWEBRTC_LDFLAGS) $(WK_MOBILE_CORE_SERVICES_LDFLAGS) $(WK_MOBILE_GESTALT_LDFLAGS) $(WK_PDFKIT_LDFLAGS) $(WK_PROTOTYPE_TOOLS_LDFLAGS) $(WK_SAFE_BROWSING_LDFLAGS) $(WK_SECURITY_INTERFACE_LDFLAGS) $(WK_UIKIT_LDFLAGS) $(WK_UNIFORM_TYPE_IDENTIFIERS_LDFLAGS) $(WK_URL_FORMATTING_LDFLAGS) $(WK_WEBINSPECTORUI_LDFLAGS) $(WK_COORDINATOR_LDFL
AGS) $(WK_INSTALL_COORDINATION_LDFLAGS) $(WK_APP_STORE_DAEMON_LDFLAGS) $(WK_POWERLOG_LDFLAGS);
+
// Prevent C++ standard library basic_stringstream, operator new, delete and their related exception types from being exported as weak symbols.
UNEXPORTED_SYMBOL_LDFLAGS = -Wl,-unexported_symbol -Wl,__ZTISt9bad_alloc -Wl,-unexported_symbol -Wl,__ZTISt9exception -Wl,-unexported_symbol -Wl,__ZTSSt9bad_alloc -Wl,-unexported_symbol -Wl,__ZTSSt9exception -Wl,-unexported_symbol -Wl,__ZdlPvS_ -Wl,-unexported_symbol -Wl,__ZnwmPv -Wl,-unexported_symbol -Wl,__Znwm -Wl,-unexported_symbol -Wl,__ZTVNSt3__117bad_function_callE -Wl,-unexported_symbol -Wl,__ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE -Wl,-unexported_symbol -Wl,__ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_14basic_iostreamIcS2_EE -Wl,-unexported_symbol -Wl,__ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE16_NS_13basic_ostreamIcS2_EE -Wl,-unexported_symbol -Wl,__ZTTNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE -Wl,-unexported_symbol -Wl,__ZTVNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE -Wl,-unexport
ed_symbol -Wl,__ZTVNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE -Wl,-unexported_symbol -Wl,__ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE8_NS_13basic_ostreamIcS2_EE;
Modified: trunk/Source/WebKit/GPUProcess/GPUProcess.h (295529 => 295530)
--- trunk/Source/WebKit/GPUProcess/GPUProcess.h 2022-06-14 18:05:06 UTC (rev 295529)
+++ trunk/Source/WebKit/GPUProcess/GPUProcess.h 2022-06-14 18:06:06 UTC (rev 295530)
@@ -201,6 +201,10 @@
void openDirectoryCacheInvalidated(SandboxExtension::Handle&&);
#endif
+#if HAVE(POWERLOG_TASK_MODE_QUERY)
+ void enablePowerLogging(SandboxExtension::Handle&&);
+#endif
+
// Connections to WebProcesses.
HashMap<WebCore::ProcessIdentifier, Ref<GPUConnectionToWebProcess>> m_webProcessConnections;
MonotonicTime m_creationTime { MonotonicTime::now() };
Modified: trunk/Source/WebKit/GPUProcess/GPUProcess.messages.in (295529 => 295530)
--- trunk/Source/WebKit/GPUProcess/GPUProcess.messages.in 2022-06-14 18:05:06 UTC (rev 295529)
+++ trunk/Source/WebKit/GPUProcess/GPUProcess.messages.in 2022-06-14 18:06:06 UTC (rev 295530)
@@ -91,6 +91,10 @@
OpenDirectoryCacheInvalidated(WebKit::SandboxExtension::Handle handle)
#endif
+#if HAVE(POWERLOG_TASK_MODE_QUERY)
+ EnablePowerLogging(WebKit::SandboxExtension::Handle handle)
+#endif
+
WebProcessConnectionCountForTesting() -> (uint64_t count)
}
Modified: trunk/Source/WebKit/GPUProcess/mac/GPUProcessMac.mm (295529 => 295530)
--- trunk/Source/WebKit/GPUProcess/mac/GPUProcessMac.mm 2022-06-14 18:05:06 UTC (rev 295529)
+++ trunk/Source/WebKit/GPUProcess/mac/GPUProcessMac.mm 2022-06-14 18:06:06 UTC (rev 295530)
@@ -105,6 +105,13 @@
#endif
+#if HAVE(POWERLOG_TASK_MODE_QUERY)
+void GPUProcess::enablePowerLogging(SandboxExtension::Handle&& handle)
+{
+ SandboxExtension::consumePermanently(WTFMove(handle));
+}
+#endif // HAVE(POWERLOG_TASK_MODE_QUERY)
+
} // namespace WebKit
#endif // ENABLE(GPU_PROCESS) && (PLATFORM(MAC) || PLATFORM(MACCATALYST))
Modified: trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in (295529 => 295530)
--- trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in 2022-06-14 18:05:06 UTC (rev 295529)
+++ trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in 2022-06-14 18:06:06 UTC (rev 295530)
@@ -652,7 +652,9 @@
#endif
(allow mach-lookup
- (global-name "com.apple.powerlog.plxpclogger.xpc"))
+ (require-all
+ (extension "com.apple.webkit.extension.mach")
+ (global-name "com.apple.powerlog.plxpclogger.xpc")))
(with-filter (uid 0)
(allow mach-lookup
Modified: trunk/Source/WebKit/UIProcess/Cocoa/GPUProcessProxyCocoa.mm (295529 => 295530)
--- trunk/Source/WebKit/UIProcess/Cocoa/GPUProcessProxyCocoa.mm 2022-06-14 18:05:06 UTC (rev 295529)
+++ trunk/Source/WebKit/UIProcess/Cocoa/GPUProcessProxyCocoa.mm 2022-06-14 18:06:06 UTC (rev 295530)
@@ -29,8 +29,13 @@
#if ENABLE(GPU_PROCESS)
#include "GPUProcessCreationParameters.h"
+#include "GPUProcessMessages.h"
#include "MediaPermissionUtilities.h"
+#if HAVE(POWERLOG_TASK_MODE_QUERY)
+#include <pal/spi/mac/PowerLogSPI.h>
+#endif
+
namespace WebKit {
void GPUProcessProxy::platformInitializeGPUProcessParameters(GPUProcessCreationParameters& parameters)
@@ -39,6 +44,31 @@
parameters.applicationVisibleName = applicationVisibleName();
}
+#if HAVE(POWERLOG_TASK_MODE_QUERY)
+bool GPUProcessProxy::isPowerLoggingInTaskMode()
+{
+ PLClientID clientIDWebKit = static_cast<PLClientID>(132); // FIXME: Replace with PLClientIDWebKit when available in SDK
+ auto dictionary = adoptCF(PLQueryRegistered(clientIDWebKit, CFSTR("TaskModeQuery"), nullptr));
+ if (!dictionary)
+ return false;
+ CFNumberRef taskModeRef = static_cast<CFNumberRef>(CFDictionaryGetValue(dictionary.get(), CFSTR("Task Mode")));
+ if (!taskModeRef)
+ return false;
+ int taskMode = 0;
+ if (!CFNumberGetValue(taskModeRef, kCFNumberIntType, &taskMode))
+ return false;
+ return !!taskMode;
}
+void GPUProcessProxy::enablePowerLogging()
+{
+ auto handle = SandboxExtension::createHandleForMachLookup("com.apple.powerlog.plxpclogger.xpc"_s, std::nullopt);
+ if (!handle)
+ return;
+ send(Messages::GPUProcess::EnablePowerLogging(*handle), 0);
+}
+#endif // HAVE(POWERLOG_TASK_MODE_QUERY)
+
+}
+
#endif
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (295529 => 295530)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2022-06-14 18:05:06 UTC (rev 295529)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2022-06-14 18:06:06 UTC (rev 295530)
@@ -95,6 +95,10 @@
#import "UIKitSPI.h"
#endif
+#if HAVE(POWERLOG_TASK_MODE_QUERY)
+#import <pal/spi/mac/PowerLogSPI.h>
+#endif
+
#if PLATFORM(IOS_FAMILY)
#import <pal/spi/ios/MobileGestaltSPI.h>
#endif
@@ -703,6 +707,12 @@
#if HAVE(MEDIA_ACCESSIBILITY_FRAMEWORK)
addCFNotificationObserver(mediaAccessibilityPreferencesChangedCallback, kMAXCaptionAppearanceSettingsChangedNotification);
#endif
+#if HAVE(POWERLOG_TASK_MODE_QUERY) && ENABLE(GPU_PROCESS)
+ m_powerLogObserver = [[NSNotificationCenter defaultCenter] addObserverForName:kPLTaskingStartNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notification) {
+ if (auto* gpuProcess = GPUProcessProxy::singletonIfCreated())
+ gpuProcess->enablePowerLogging();
+ }];
+#endif // HAVE(POWERLOG_TASK_MODE_QUERY) && ENABLE(GPU_PROCESS)
}
void WebProcessPool::unregisterNotificationObservers()
@@ -753,7 +763,9 @@
#if HAVE(MEDIA_ACCESSIBILITY_FRAMEWORK)
removeCFNotificationObserver(kMAXCaptionAppearanceSettingsChangedNotification);
#endif
-
+#if HAVE(POWERLOG_TASK_MODE_QUERY) && ENABLE(GPU_PROCESS)
+ [[NSNotificationCenter defaultCenter] removeObserver:m_powerLogObserver.get()];
+#endif
m_weakObserver = nil;
}
Modified: trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp (295529 => 295530)
--- trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp 2022-06-14 18:05:06 UTC (rev 295529)
+++ trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp 2022-06-14 18:06:06 UTC (rev 295530)
@@ -62,6 +62,10 @@
#include <wtf/FileSystem.h>
#endif
+#if PLATFORM(COCOA)
+#include <wtf/BlockPtr.h>
+#endif
+
#define MESSAGE_CHECK(assertion) MESSAGE_CHECK_BASE(assertion, this->connection())
namespace WebKit {
@@ -470,6 +474,18 @@
for (auto& processPool : WebProcessPool::allProcessPools())
processPool->gpuProcessDidFinishLaunching(processIdentifier());
+
+#if HAVE(POWERLOG_TASK_MODE_QUERY)
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), makeBlockPtr([weakThis = WeakPtr { *this }] () mutable {
+ if (!isPowerLoggingInTaskMode())
+ return;
+ RunLoop::main().dispatch([weakThis = WTFMove(weakThis)] () {
+ if (!weakThis)
+ return;
+ weakThis->enablePowerLogging();
+ });
+ }).get());
+#endif
}
void GPUProcessProxy::updateProcessAssertion()
Modified: trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h (295529 => 295530)
--- trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h 2022-06-14 18:05:06 UTC (rev 295529)
+++ trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h 2022-06-14 18:06:06 UTC (rev 295530)
@@ -102,6 +102,11 @@
void setScreenProperties(const WebCore::ScreenProperties&);
#endif
+#if HAVE(POWERLOG_TASK_MODE_QUERY)
+ void enablePowerLogging();
+ static bool isPowerLoggingInTaskMode();
+#endif
+
void updatePreferences(WebProcessProxy&);
void updateScreenPropertiesIfNeeded();
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.h (295529 => 295530)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.h 2022-06-14 18:05:06 UTC (rev 295529)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.h 2022-06-14 18:06:06 UTC (rev 295530)
@@ -689,6 +689,10 @@
std::unique_ptr<PerActivityStateCPUUsageSampler> m_perActivityStateCPUUsageSampler;
#endif
+#if HAVE(POWERLOG_TASK_MODE_QUERY) && ENABLE(GPU_PROCESS)
+ RetainPtr<NSObject> m_powerLogObserver;
+#endif
+
#if PLATFORM(COCOA)
std::unique_ptr<WebCore::PowerSourceNotifier> m_powerSourceNotifier;
RetainPtr<NSObject> m_activationObserver;