⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 287066 in webkit


Ignore:
Timestamp:
Dec 15, 2021, 1:16:02 AM (5 years ago)
Author:
graouts@webkit.org
Message:

ActiveDOMObject::suspendIfNeeded() should not be called within constructors
https://bugs.webkit.org/show_bug.cgi?id=233945

Reviewed by Chris Dumez and Darin Adler.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::create):

  • Modules/applepay/ApplePaySetup.cpp:

(WebCore::ApplePaySetup::create):
(WebCore::ApplePaySetup::ApplePaySetup):

  • Modules/applepay/ApplePaySetupWebCore.h:

(WebCore::ApplePaySetup::create): Deleted.

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::create):
(WebCore::DOMCache::DOMCache):

  • Modules/cache/DOMCache.h:
  • Modules/cache/DOMCacheStorage.cpp:

(WebCore::DOMCacheStorage::create):
(WebCore::DOMCacheStorage::DOMCacheStorage):

  • Modules/cache/DOMCacheStorage.h:

(WebCore::DOMCacheStorage::create): Deleted.

  • Modules/entriesapi/FileSystemDirectoryReader.cpp:

(WebCore::FileSystemDirectoryReader::create):
(WebCore::FileSystemDirectoryReader::FileSystemDirectoryReader):

  • Modules/entriesapi/FileSystemDirectoryReader.h:
  • Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:

(WebCore::FileSystemSyncAccessHandle::create):
(WebCore::FileSystemSyncAccessHandle::FileSystemSyncAccessHandle):

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::create):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::create):
(WebCore::MediaStream::MediaStream):

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::create):

  • Modules/remoteplayback/RemotePlayback.cpp:

(WebCore::RemotePlayback::create):
(WebCore::RemotePlayback::RemotePlayback):

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::create):
(WebCore::ScriptProcessorNode::ScriptProcessorNode):

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::create):
(WebCore::WebXRSession::WebXRSession):

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::create):
(WebCore::WebXRSystem::WebXRSystem):

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::create):
(WebCore::m_version):

  • css/CSSFontSelector.h:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::create):
(WebCore::MessagePort::MessagePort):

  • workers/WorkerAnimationController.cpp:

(WebCore::WorkerAnimationController::create):
(WebCore::WorkerAnimationController::WorkerAnimationController):

  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::getOrCreate):
(WebCore::ServiceWorker::ServiceWorker):

  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::getOrCreate):
(WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):

Location:
trunk/Source/WebCore
Files:
25 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r287065 r287066  
     12021-12-15  Antoine Quint  <graouts@webkit.org>
     2
     3        ActiveDOMObject::suspendIfNeeded() should not be called within constructors
     4        https://bugs.webkit.org/show_bug.cgi?id=233945
     5
     6        Reviewed by Chris Dumez and Darin Adler.
     7
     8        * Modules/applepay/ApplePaySession.cpp:
     9        (WebCore::ApplePaySession::create):
     10        * Modules/applepay/ApplePaySetup.cpp:
     11        (WebCore::ApplePaySetup::create):
     12        (WebCore::ApplePaySetup::ApplePaySetup):
     13        * Modules/applepay/ApplePaySetupWebCore.h:
     14        (WebCore::ApplePaySetup::create): Deleted.
     15        * Modules/cache/DOMCache.cpp:
     16        (WebCore::DOMCache::create):
     17        (WebCore::DOMCache::DOMCache):
     18        * Modules/cache/DOMCache.h:
     19        * Modules/cache/DOMCacheStorage.cpp:
     20        (WebCore::DOMCacheStorage::create):
     21        (WebCore::DOMCacheStorage::DOMCacheStorage):
     22        * Modules/cache/DOMCacheStorage.h:
     23        (WebCore::DOMCacheStorage::create): Deleted.
     24        * Modules/entriesapi/FileSystemDirectoryReader.cpp:
     25        (WebCore::FileSystemDirectoryReader::create):
     26        (WebCore::FileSystemDirectoryReader::FileSystemDirectoryReader):
     27        * Modules/entriesapi/FileSystemDirectoryReader.h:
     28        * Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:
     29        (WebCore::FileSystemSyncAccessHandle::create):
     30        (WebCore::FileSystemSyncAccessHandle::FileSystemSyncAccessHandle):
     31        * Modules/geolocation/Geolocation.cpp:
     32        (WebCore::Geolocation::create):
     33        * Modules/mediastream/MediaStream.cpp:
     34        (WebCore::MediaStream::create):
     35        (WebCore::MediaStream::MediaStream):
     36        * Modules/paymentrequest/PaymentRequest.cpp:
     37        (WebCore::PaymentRequest::create):
     38        * Modules/remoteplayback/RemotePlayback.cpp:
     39        (WebCore::RemotePlayback::create):
     40        (WebCore::RemotePlayback::RemotePlayback):
     41        * Modules/webaudio/ScriptProcessorNode.cpp:
     42        (WebCore::ScriptProcessorNode::create):
     43        (WebCore::ScriptProcessorNode::ScriptProcessorNode):
     44        * Modules/webxr/WebXRSession.cpp:
     45        (WebCore::WebXRSession::create):
     46        (WebCore::WebXRSession::WebXRSession):
     47        * Modules/webxr/WebXRSystem.cpp:
     48        (WebCore::WebXRSystem::create):
     49        (WebCore::WebXRSystem::WebXRSystem):
     50        * css/CSSFontSelector.cpp:
     51        (WebCore::CSSFontSelector::create):
     52        (WebCore::m_version):
     53        * css/CSSFontSelector.h:
     54        * dom/MessagePort.cpp:
     55        (WebCore::MessagePort::create):
     56        (WebCore::MessagePort::MessagePort):
     57        * workers/WorkerAnimationController.cpp:
     58        (WebCore::WorkerAnimationController::create):
     59        (WebCore::WorkerAnimationController::WorkerAnimationController):
     60        * workers/service/ServiceWorker.cpp:
     61        (WebCore::ServiceWorker::getOrCreate):
     62        (WebCore::ServiceWorker::ServiceWorker):
     63        * workers/service/ServiceWorkerRegistration.cpp:
     64        (WebCore::ServiceWorkerRegistration::getOrCreate):
     65        (WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):
     66
    1672021-12-15  Diego Pino Garcia  <dpino@igalia.com>
    268
  • trunk/Source/WebCore/Modules/applepay/ApplePaySession.cpp

    r286452 r287066  
    334334        return convertedPaymentRequest.releaseException();
    335335
    336     return adoptRef(*new ApplePaySession(document, version, convertedPaymentRequest.releaseReturnValue()));
     336    auto session = adoptRef(*new ApplePaySession(document, version, convertedPaymentRequest.releaseReturnValue()));
     337    session->suspendIfNeeded();
     338    return session;
    337339}
    338340
     
    343345{
    344346    ASSERT(document.page()->paymentCoordinator().supportsVersion(document, version));
    345     suspendIfNeeded();
    346347}
    347348
  • trunk/Source/WebCore/Modules/applepay/ApplePaySetup.cpp

    r286496 r287066  
    116116}
    117117
     118Ref<ApplePaySetup> ApplePaySetup::create(ScriptExecutionContext& context, ApplePaySetupConfiguration&& configuration)
     119{
     120    auto setup = adoptRef(*new ApplePaySetup(context, WTFMove(configuration)));
     121    setup->suspendIfNeeded();
     122    return setup;
     123}
     124
    118125ApplePaySetup::ApplePaySetup(ScriptExecutionContext& context, ApplePaySetupConfiguration&& configuration)
    119126    : ActiveDOMObject(&context)
    120127    , m_configuration(WTFMove(configuration))
    121128{
    122     suspendIfNeeded();
    123129}
    124130
  • trunk/Source/WebCore/Modules/applepay/ApplePaySetupWebCore.h

    r278253 r287066  
    4444class ApplePaySetup : public ActiveDOMObject, public RefCounted<ApplePaySetup> {
    4545public:
    46     static Ref<ApplePaySetup> create(ScriptExecutionContext& context, ApplePaySetupConfiguration&& configuration)
    47     {
    48         return adoptRef(*new ApplePaySetup(context, WTFMove(configuration)));
    49     }
     46    static Ref<ApplePaySetup> create(ScriptExecutionContext&, ApplePaySetupConfiguration&&);
    5047
    5148    using SetupFeaturesPromise = DOMPromiseDeferred<IDLSequence<IDLInterface<ApplePaySetupFeature>>>;
  • trunk/Source/WebCore/Modules/cache/DOMCache.cpp

    r287021 r287066  
    4141using namespace WebCore::DOMCacheEngine;
    4242
     43Ref<DOMCache> DOMCache::create(ScriptExecutionContext& context, String&& name, uint64_t identifier, Ref<CacheStorageConnection>&& connection)
     44{
     45    auto cache = adoptRef(*new DOMCache(context, WTFMove(name), identifier, WTFMove(connection)));
     46    cache->suspendIfNeeded();
     47    return cache;
     48}
     49
    4350DOMCache::DOMCache(ScriptExecutionContext& context, String&& name, uint64_t identifier, Ref<CacheStorageConnection>&& connection)
    4451    : ActiveDOMObject(&context)
     
    4754    , m_connection(WTFMove(connection))
    4855{
    49     suspendIfNeeded();
    5056    m_connection->reference(m_identifier);
    5157}
  • trunk/Source/WebCore/Modules/cache/DOMCache.h

    r287021 r287066  
    3838class DOMCache final : public RefCounted<DOMCache>, public ActiveDOMObject {
    3939public:
    40     static Ref<DOMCache> create(ScriptExecutionContext& context, String&& name, uint64_t identifier, Ref<CacheStorageConnection>&& connection) { return adoptRef(*new DOMCache(context, WTFMove(name), identifier, WTFMove(connection))); }
     40    static Ref<DOMCache> create(ScriptExecutionContext&, String&&, uint64_t, Ref<CacheStorageConnection>&&);
    4141    ~DOMCache();
    4242
  • trunk/Source/WebCore/Modules/cache/DOMCacheStorage.cpp

    r278253 r287066  
    3737namespace WebCore {
    3838
     39Ref<DOMCacheStorage> DOMCacheStorage::create(ScriptExecutionContext& context, Ref<CacheStorageConnection>&& connection)
     40{
     41    auto cacheStorage = adoptRef(*new DOMCacheStorage(context, WTFMove(connection)));
     42    cacheStorage->suspendIfNeeded();
     43    return cacheStorage;
     44}
     45
    3946DOMCacheStorage::DOMCacheStorage(ScriptExecutionContext& context, Ref<CacheStorageConnection>&& connection)
    4047    : ActiveDOMObject(&context)
    4148    , m_connection(WTFMove(connection))
    4249{
    43     suspendIfNeeded();
    4450}
    4551
  • trunk/Source/WebCore/Modules/cache/DOMCacheStorage.h

    r278253 r287066  
    3535class DOMCacheStorage : public RefCounted<DOMCacheStorage>, public ActiveDOMObject {
    3636public:
    37     static Ref<DOMCacheStorage> create(ScriptExecutionContext& context, Ref<CacheStorageConnection>&& connection) { return adoptRef(*new DOMCacheStorage(context, WTFMove(connection))); }
     37    static Ref<DOMCacheStorage> create(ScriptExecutionContext&, Ref<CacheStorageConnection>&&);
    3838    ~DOMCacheStorage();
    3939
  • trunk/Source/WebCore/Modules/entriesapi/FileSystemDirectoryReader.cpp

    r282860 r287066  
    4242WTF_MAKE_ISO_ALLOCATED_IMPL(FileSystemDirectoryReader);
    4343
     44Ref<FileSystemDirectoryReader> FileSystemDirectoryReader::create(ScriptExecutionContext& context, FileSystemDirectoryEntry& directory)
     45{
     46    auto reader = adoptRef(*new FileSystemDirectoryReader(context, directory));
     47    reader->suspendIfNeeded();
     48    return reader;
     49}
     50
    4451FileSystemDirectoryReader::FileSystemDirectoryReader(ScriptExecutionContext& context, FileSystemDirectoryEntry& directory)
    4552    : ActiveDOMObject(&context)
    4653    , m_directory(directory)
    4754{
    48     suspendIfNeeded();
    4955}
    5056
  • trunk/Source/WebCore/Modules/entriesapi/FileSystemDirectoryReader.h

    r278253 r287066  
    4242    WTF_MAKE_ISO_ALLOCATED(FileSystemDirectoryReader);
    4343public:
    44     static Ref<FileSystemDirectoryReader> create(ScriptExecutionContext& context, FileSystemDirectoryEntry& directory)
    45     {
    46         return adoptRef(*new FileSystemDirectoryReader(context, directory));
    47     }
     44    static Ref<FileSystemDirectoryReader> create(ScriptExecutionContext&, FileSystemDirectoryEntry&);
    4845
    4946    ~FileSystemDirectoryReader();
  • trunk/Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp

    r286414 r287066  
    3838Ref<FileSystemSyncAccessHandle> FileSystemSyncAccessHandle::create(ScriptExecutionContext& context, FileSystemFileHandle& source, FileSystemSyncAccessHandleIdentifier identifier, FileSystem::PlatformFileHandle file)
    3939{
    40     return adoptRef(*new FileSystemSyncAccessHandle(context, source, identifier, file));
     40    auto handle = adoptRef(*new FileSystemSyncAccessHandle(context, source, identifier, file));
     41    handle->suspendIfNeeded();
     42    return handle;
    4143}
    4244
     
    4850{
    4951    ASSERT(m_file != FileSystem::invalidPlatformFileHandle);
    50     suspendIfNeeded();
    5152
    5253    m_source->registerSyncAccessHandle(m_identifier, *this);
  • trunk/Source/WebCore/Modules/geolocation/Geolocation.cpp

    r286918 r287066  
    135135{
    136136    auto geolocation = adoptRef(*new Geolocation(navigator));
    137     geolocation.get().suspendIfNeeded();
     137    geolocation->suspendIfNeeded();
    138138    return geolocation;
    139139}
  • trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp

    r284080 r287066  
    5151Ref<MediaStream> MediaStream::create(Document& document, MediaStream& stream)
    5252{
    53     return adoptRef(*new MediaStream(document, stream.getTracks()));
     53    auto mediaStream = adoptRef(*new MediaStream(document, stream.getTracks()));
     54    mediaStream->suspendIfNeeded();
     55    return mediaStream;
    5456}
    5557
    5658Ref<MediaStream> MediaStream::create(Document& document, const MediaStreamTrackVector& tracks)
    5759{
    58     return adoptRef(*new MediaStream(document, tracks));
     60    auto mediaStream = adoptRef(*new MediaStream(document, tracks));
     61    mediaStream->suspendIfNeeded();
     62    return mediaStream;
    5963}
    6064
    6165Ref<MediaStream> MediaStream::create(Document& document, Ref<MediaStreamPrivate>&& streamPrivate)
    6266{
    63     return adoptRef(*new MediaStream(document, WTFMove(streamPrivate)));
     67    auto mediaStream = adoptRef(*new MediaStream(document, WTFMove(streamPrivate)));
     68    mediaStream->suspendIfNeeded();
     69    return mediaStream;
    6470}
    6571
     
    8389    setIsActive(m_private->active());
    8490    m_private->addObserver(*this);
    85     suspendIfNeeded();
    8691}
    8792
     
    97102    setIsActive(m_private->active());
    98103    m_private->addObserver(*this);
    99     suspendIfNeeded();
    100104}
    101105
  • trunk/Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp

    r284057 r287066  
    5252        onTonePlayed();
    5353    });
     54
    5455    suspendIfNeeded();
    5556}
  • trunk/Source/WebCore/Modules/paymentrequest/PaymentRequest.cpp

    r286452 r287066  
    345345
    346346    auto shippingOptionAndModifierData = detailsResult.releaseReturnValue();
    347     return adoptRef(*new PaymentRequest(document, WTFMove(options), WTFMove(details), WTFMove(std::get<1>(shippingOptionAndModifierData)), WTFMove(serializedMethodData), WTFMove(std::get<0>(shippingOptionAndModifierData))));
     347    auto request = adoptRef(*new PaymentRequest(document, WTFMove(options), WTFMove(details), WTFMove(std::get<1>(shippingOptionAndModifierData)), WTFMove(serializedMethodData), WTFMove(std::get<0>(shippingOptionAndModifierData))));
     348    request->suspendIfNeeded();
     349    return request;
    348350}
    349351
     
    361363    , m_shippingOption { WTFMove(selectedShippingOption) }
    362364{
    363     suspendIfNeeded();
    364365}
    365366
  • trunk/Source/WebCore/Modules/remoteplayback/RemotePlayback.cpp

    r284057 r287066  
    4646Ref<RemotePlayback> RemotePlayback::create(HTMLMediaElement& element)
    4747{
    48     return adoptRef(*new RemotePlayback(element));
     48    auto remotePlayback = adoptRef(*new RemotePlayback(element));
     49    remotePlayback->suspendIfNeeded();
     50    return remotePlayback;
    4951}
    5052
     
    5355    , m_mediaElement(element)
    5456{
    55     suspendIfNeeded();
    5657}
    5758
  • trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp

    r283237 r287066  
    4848Ref<ScriptProcessorNode> ScriptProcessorNode::create(BaseAudioContext& context, size_t bufferSize, unsigned numberOfInputChannels, unsigned numberOfOutputChannels)
    4949{
    50     return adoptRef(*new ScriptProcessorNode(context, bufferSize, numberOfInputChannels, numberOfOutputChannels));
     50    auto node = adoptRef(*new ScriptProcessorNode(context, bufferSize, numberOfInputChannels, numberOfOutputChannels));
     51    node->suspendIfNeeded();
     52    return node;
    5153}
    5254
     
    7072
    7173    initialize();
    72     suspendIfNeeded();
    7374}
    7475
  • trunk/Source/WebCore/Modules/webxr/WebXRSession.cpp

    r284057 r287066  
    4848Ref<WebXRSession> WebXRSession::create(Document& document, WebXRSystem& system, XRSessionMode mode, PlatformXR::Device& device, FeatureList&& requestedFeatures)
    4949{
    50     return adoptRef(*new WebXRSession(document, system, mode, device, WTFMove(requestedFeatures)));
     50    auto session = adoptRef(*new WebXRSession(document, system, mode, device, WTFMove(requestedFeatures)));
     51    session->suspendIfNeeded();
     52    return session;
    5153}
    5254
     
    6971    // Every session MUST support viewer XRReferenceSpaces.
    7072    m_device->initializeReferenceSpace(XRReferenceSpaceType::Viewer);
    71 
    72     suspendIfNeeded();
    7373}
    7474
  • trunk/Source/WebCore/Modules/webxr/WebXRSystem.cpp

    r286918 r287066  
    5757Ref<WebXRSystem> WebXRSystem::create(Navigator& navigator)
    5858{
    59     return adoptRef(*new WebXRSystem(navigator));
     59    auto system = adoptRef(*new WebXRSystem(navigator));
     60    system->suspendIfNeeded();
     61    return system;
    6062}
    6163
     
    6668{
    6769    m_inlineXRDevice = m_defaultInlineDevice;
    68     suspendIfNeeded();
    6970}
    7071
  • trunk/Source/WebCore/css/CSSFontSelector.cpp

    r286625 r287066  
    6363static unsigned fontSelectorId;
    6464
     65Ref<CSSFontSelector> CSSFontSelector::create(ScriptExecutionContext& context)
     66{
     67    auto fontSelector = adoptRef(*new CSSFontSelector(context));
     68    fontSelector->suspendIfNeeded();
     69    return fontSelector;
     70}
     71
    6572CSSFontSelector::CSSFontSelector(ScriptExecutionContext& context)
    6673    : ActiveDOMObject(&context)
     
    8491    m_cssFontFaceSet->addFontModifiedObserver(m_fontModifiedObserver);
    8592    LOG(Fonts, "CSSFontSelector %p ctor", this);
    86 
    87     suspendIfNeeded();
    8893}
    8994
  • trunk/Source/WebCore/css/CSSFontSelector.h

    r286625 r287066  
    5252class CSSFontSelector final : public FontSelector, public CSSFontFace::Client, public CanMakeWeakPtr<CSSFontSelector>, public ActiveDOMObject {
    5353public:
    54     static Ref<CSSFontSelector> create(ScriptExecutionContext& context)
    55     {
    56         return adoptRef(*new CSSFontSelector(context));
    57     }
     54    static Ref<CSSFontSelector> create(ScriptExecutionContext&);
    5855    virtual ~CSSFontSelector();
    5956   
  • trunk/Source/WebCore/dom/MessagePort.cpp

    r286918 r287066  
    9494Ref<MessagePort> MessagePort::create(ScriptExecutionContext& scriptExecutionContext, const MessagePortIdentifier& local, const MessagePortIdentifier& remote)
    9595{
    96     return adoptRef(*new MessagePort(scriptExecutionContext, local, remote));
     96    auto messagePort = adoptRef(*new MessagePort(scriptExecutionContext, local, remote));
     97    messagePort->suspendIfNeeded();
     98    return messagePort;
    9799}
    98100
     
    111113
    112114    scriptExecutionContext.createdMessagePort(*this);
    113     suspendIfNeeded();
    114115
    115116    // Don't need to call processMessageWithMessagePortsSoon() here, because the port will not be opened until start() is invoked.
  • trunk/Source/WebCore/workers/WorkerAnimationController.cpp

    r277560 r287066  
    4040Ref<WorkerAnimationController> WorkerAnimationController::create(WorkerGlobalScope& workerGlobalScope)
    4141{
    42     return adoptRef(*new WorkerAnimationController(workerGlobalScope));
     42    auto controller = adoptRef(*new WorkerAnimationController(workerGlobalScope));
     43    controller->suspendIfNeeded();
     44    return controller;
    4345}
    4446
     
    4850    , m_animationTimer(*this, &WorkerAnimationController::animationTimerFired)
    4951{
    50     suspendIfNeeded();
    5152}
    5253
  • trunk/Source/WebCore/workers/service/ServiceWorker.cpp

    r286012 r287066  
    5858    if (auto existingServiceWorker = context.serviceWorker(data.identifier))
    5959        return *existingServiceWorker;
    60     return adoptRef(*new ServiceWorker(context, WTFMove(data)));
     60    auto serviceWorker = adoptRef(*new ServiceWorker(context, WTFMove(data)));
     61    serviceWorker->suspendIfNeeded();
     62    return serviceWorker;
    6163}
    6264
     
    6567    , m_data(WTFMove(data))
    6668{
    67     suspendIfNeeded();
    68 
    6969    context.registerServiceWorker(*this);
    7070
  • trunk/Source/WebCore/workers/service/ServiceWorkerRegistration.cpp

    r286419 r287066  
    5555    }
    5656
    57     return adoptRef(*new ServiceWorkerRegistration(context, WTFMove(container), WTFMove(data)));
     57    auto registration = adoptRef(*new ServiceWorkerRegistration(context, WTFMove(container), WTFMove(data)));
     58    registration->suspendIfNeeded();
     59    return registration;
    5860}
    5961
     
    6466{
    6567    LOG(ServiceWorker, "Creating registration %p for registration key %s", this, m_registrationData.key.loggingString().utf8().data());
    66     suspendIfNeeded();
    6768
    6869    if (m_registrationData.installingWorker)
Note: See TracChangeset for help on using the changeset viewer.