Skip to content

Commit

Permalink
Cherry-pick a869bc0. rdar://122517471
Browse files Browse the repository at this point in the history
    Remove runtime check for using extensions when USE(EXTENSIONKIT) is true
    https://bugs.webkit.org/show_bug.cgi?id=268944

    Reviewed by Per Arne Vollan.

    The runtime check is no longer needed.
    This also fixes some issues when you use a WKWebsiteDataStore and the network process
    before a WKProcessPool has been allocated.

    * Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:
    * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h:
    (WebKit::AuxiliaryProcessProxy::setManageProcessesAsExtensions): Deleted.
    (WebKit::AuxiliaryProcessProxy::manageProcessesAsExtensions): Deleted.
    * Source/WebKit/UIProcess/Cocoa/AuxiliaryProcessProxyCocoa.mm:
    (WebKit::AuxiliaryProcessProxy::platformGetLaunchOptions):
    * Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
    (WebKit::WebPageProxy::updateMediaCapability):
    * Source/WebKit/UIProcess/WebProcessPool.cpp:
    * Source/WebKit/UIProcess/ios/WKContentView.mm:
    (-[WKContentView _setupVisibilityPropagationForWebProcess]):
    (-[WKContentView _setupVisibilityPropagationForGPUProcess]):
    (-[WKContentView _createVisibilityPropagationView]):

    Canonical link: https://commits.webkit.org/274267@main

Identifier: 272448.555@safari-7618-branch
  • Loading branch information
achristensen07 authored and Dan Robson committed Feb 13, 2024
1 parent 6ef640f commit 22199d4
Show file tree
Hide file tree
Showing 8 changed files with 14 additions and 59 deletions.
10 changes: 0 additions & 10 deletions Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,6 @@ static Seconds adjustedTimeoutForThermalState(Seconds timeout)
#endif
}

#if USE(EXTENSIONKIT)
bool AuxiliaryProcessProxy::s_manageProcessesAsExtensions = false;
#endif

AuxiliaryProcessProxy::AuxiliaryProcessProxy(bool alwaysRunsAtBackgroundPriority, Seconds responsivenessTimeout)
: m_responsivenessTimer(*this, adjustedTimeoutForThermalState(responsivenessTimeout))
, m_alwaysRunsAtBackgroundPriority(alwaysRunsAtBackgroundPriority)
Expand Down Expand Up @@ -159,12 +155,6 @@ void AuxiliaryProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& lau
platformGetLaunchOptions(launchOptions);
}

#if !PLATFORM(COCOA)
void AuxiliaryProcessProxy::platformGetLaunchOptions(ProcessLauncher::LaunchOptions&)
{
}
#endif

void AuxiliaryProcessProxy::connect()
{
ASSERT(!m_processLauncher);
Expand Down
7 changes: 1 addition & 6 deletions Source/WebKit/UIProcess/AuxiliaryProcessProxy.h
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,6 @@ class AuxiliaryProcessProxy

#if USE(EXTENSIONKIT)
RetainPtr<_SEExtensionProcess> extensionProcess() const;
static void setManageProcessesAsExtensions(bool manageProcessesAsExtensions) { s_manageProcessesAsExtensions = manageProcessesAsExtensions; }
static bool manageProcessesAsExtensions() { return s_manageProcessesAsExtensions; }
#endif

#if ENABLE(EXTENSION_CAPABILITIES)
Expand All @@ -207,7 +205,7 @@ class AuxiliaryProcessProxy
virtual ASCIILiteral processName() const = 0;

virtual void getLaunchOptions(ProcessLauncher::LaunchOptions&);
virtual void platformGetLaunchOptions(ProcessLauncher::LaunchOptions&);
virtual void platformGetLaunchOptions(ProcessLauncher::LaunchOptions&) { }

struct PendingMessage {
UniqueRef<IPC::Encoder> encoder;
Expand Down Expand Up @@ -259,9 +257,6 @@ class AuxiliaryProcessProxy
#if ENABLE(EXTENSION_CAPABILITIES)
ExtensionCapabilityGrantMap m_extensionCapabilityGrants;
#endif
#if USE(EXTENSIONKIT)
static bool s_manageProcessesAsExtensions;
#endif
};

template<typename T>
Expand Down
9 changes: 0 additions & 9 deletions Source/WebKit/UIProcess/Cocoa/AuxiliaryProcessProxyCocoa.mm
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,4 @@
}
#endif

void AuxiliaryProcessProxy::platformGetLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions)
{
#if USE(EXTENSIONKIT)
launchOptions.launchAsExtensions = s_manageProcessesAsExtensions;
#else
UNUSED_PARAM(launchOptions);
#endif
}

} // namespace WebKit
5 changes: 0 additions & 5 deletions Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
Original file line number Diff line number Diff line change
Expand Up @@ -1019,11 +1019,6 @@ static bool exceedsRenderTreeSizeSizeThreshold(uint64_t thresholdSize, uint64_t

void WebPageProxy::updateMediaCapability()
{
#if USE(EXTENSIONKIT)
if (!AuxiliaryProcessProxy::manageProcessesAsExtensions())
return;
#endif

if (!preferences().mediaCapabilityGrantsEnabled())
return;

Expand Down
3 changes: 0 additions & 3 deletions Source/WebKit/UIProcess/Launcher/ProcessLauncher.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,6 @@ class ProcessLauncher : public ThreadSafeRefCountedAndCanMakeThreadSafeWeakPtr<P
HashMap<String, String> extraInitializationData;
bool nonValidInjectedCodeAllowed { false };
bool shouldMakeProcessLaunchFailForTesting { false };
#if USE(EXTENSIONKIT)
bool launchAsExtensions { false };
#endif

#if PLATFORM(GTK) || PLATFORM(WPE)
HashMap<CString, SandboxPermission> extraSandboxPaths;
Expand Down
10 changes: 5 additions & 5 deletions Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ static void launchWithExtensionKit(ProcessLauncher& processLauncher, ProcessLaun
}
#endif // USE(EXTENSIONKIT)

#if !USE(EXTENSIONKIT) || !PLATFORM(IOS)
static const char* webContentServiceName(const ProcessLauncher::LaunchOptions& launchOptions, ProcessLauncher::Client* client)
{
if (client && client->shouldEnableLockdownMode())
Expand All @@ -138,6 +139,7 @@ static void launchWithExtensionKit(ProcessLauncher& processLauncher, ProcessLaun
#endif
}
}
#endif // !USE(EXTENSIONKIT) || !PLATFORM(IOS)

ProcessLauncher::~ProcessLauncher()
{
Expand Down Expand Up @@ -206,14 +208,12 @@ static void launchWithExtensionKit(ProcessLauncher& processLauncher, ProcessLaun
});
};

if (m_launchOptions.launchAsExtensions) {
launchWithExtensionKit(*this, m_launchOptions.processType, m_client, handler);
return;
}
#endif
launchWithExtensionKit(*this, m_launchOptions.processType, m_client, handler);
#else
const char* name = serviceName(m_launchOptions, m_client);
m_xpcConnection = adoptOSObject(xpc_connection_create(name, nullptr));
finishLaunchingProcess(name);
#endif
}

void ProcessLauncher::finishLaunchingProcess(const char* name)
Expand Down
5 changes: 0 additions & 5 deletions Source/WebKit/UIProcess/WebProcessPool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -236,11 +236,6 @@ WebProcessPool::WebProcessPool(API::ProcessPoolConfiguration& configuration)
, m_audibleActivityTimer(RunLoop::main(), this, &WebProcessPool::clearAudibleActivity)
, m_webProcessWithMediaStreamingCounter([this](RefCounterEvent) { updateMediaStreamingActivity(); })
{
#if USE(EXTENSIONKIT)
bool manageProcessesAsExtensions = !CFPreferencesGetAppBooleanValue(CFSTR("disableProcessesAsExtensions"), kCFPreferencesCurrentApplication, nullptr);
AuxiliaryProcessProxy::setManageProcessesAsExtensions(manageProcessesAsExtensions);
#endif

static auto s_needsGlobalStaticInitialization = NeedsGlobalStaticInitialization::Yes;
auto needsGlobalStaticInitialization = std::exchange(s_needsGlobalStaticInitialization, NeedsGlobalStaticInitialization::No);
if (needsGlobalStaticInitialization == NeedsGlobalStaticInitialization::Yes) {
Expand Down
24 changes: 8 additions & 16 deletions Source/WebKit/UIProcess/ios/WKContentView.mm
Original file line number Diff line number Diff line change
Expand Up @@ -292,12 +292,9 @@ - (void)_setupVisibilityPropagationForWebProcess
return;

#if USE(EXTENSIONKIT)
if (WebKit::AuxiliaryProcessProxy::manageProcessesAsExtensions()) {
for (WKVisibilityPropagationView *visibilityPropagationView in _visibilityPropagationViews.get())
[visibilityPropagationView propagateVisibilityToProcess:_page->process()];
return;
}
#endif
for (WKVisibilityPropagationView *visibilityPropagationView in _visibilityPropagationViews.get())
[visibilityPropagationView propagateVisibilityToProcess:_page->process()];
#else

auto processID = _page->process().processID();
auto contextID = _page->contextIDForVisibilityPropagationInWebProcess();
Expand All @@ -318,6 +315,7 @@ - (void)_setupVisibilityPropagationForWebProcess
#endif
RELEASE_LOG(Process, "Created visibility propagation view %p (contextID=%u) for WebContent process with PID=%d", _visibilityPropagationViewForWebProcess.get(), contextID, processID);
[self addSubview:_visibilityPropagationViewForWebProcess.get()];
#endif // USE(EXTENSIONKIT)
}

#if ENABLE(GPU_PROCESS)
Expand All @@ -328,13 +326,9 @@ - (void)_setupVisibilityPropagationForGPUProcess
return;

#if USE(EXTENSIONKIT)
if (WebKit::AuxiliaryProcessProxy::manageProcessesAsExtensions()) {
for (WKVisibilityPropagationView *visibilityPropagationView in _visibilityPropagationViews.get())
[visibilityPropagationView propagateVisibilityToProcess:*gpuProcess];
return;
}
#endif

for (WKVisibilityPropagationView *visibilityPropagationView in _visibilityPropagationViews.get())
[visibilityPropagationView propagateVisibilityToProcess:*gpuProcess];
#else
auto processID = gpuProcess->processID();
auto contextID = _page->contextIDForVisibilityPropagationInGPUProcess();
if (!processID || !contextID)
Expand All @@ -347,6 +341,7 @@ - (void)_setupVisibilityPropagationForGPUProcess
_visibilityPropagationViewForGPUProcess = adoptNS([[_UILayerHostView alloc] initWithFrame:CGRectZero pid:processID contextID:contextID]);
RELEASE_LOG(Process, "Created visibility propagation view %p (contextID=%u) for GPU process with PID=%d", _visibilityPropagationViewForGPUProcess.get(), contextID, processID);
[self addSubview:_visibilityPropagationViewForGPUProcess.get()];
#endif // USE(EXTENSIONKIT)
}
#endif // ENABLE(GPU_PROCESS)

Expand Down Expand Up @@ -842,9 +837,6 @@ - (void)_gpuProcessDidCreateContextForVisibilityPropagation
#if USE(EXTENSIONKIT)
- (WKVisibilityPropagationView *)_createVisibilityPropagationView
{
if (!WebKit::AuxiliaryProcessProxy::manageProcessesAsExtensions())
return nil;

if (!_visibilityPropagationViews)
_visibilityPropagationViews = [NSHashTable weakObjectsHashTable];

Expand Down

0 comments on commit 22199d4

Please sign in to comment.