Changeset 228069 in webkit


Ignore:
Timestamp:
Feb 4, 2018 9:30:30 PM (6 years ago)
Author:
jmarcell@apple.com
Message:

Cherry-pick r228015. rdar://problem/37220133

Location:
branches/safari-605-branch
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-605-branch/LayoutTests/imported/w3c/ChangeLog

    r228067 r228069  
     12018-02-04  Jason Marcell  <jmarcell@apple.com>
     2
     3        Cherry-pick r228015. rdar://problem/37220133
     4
     5    2018-02-02  Chris Dumez  <cdumez@apple.com>
     6
     7            Clearing a registration should null out its workers before setting their state to "redundant"
     8            https://bugs.webkit.org/show_bug.cgi?id=182418
     9            <rdar://problem/37142874>
     10
     11            Reviewed by Youenn Fablet.
     12
     13            Rebaseline WPT test now that all checks are passing. I verified that this test is passing
     14            in both Firefox and Chrome.
     15
     16            * web-platform-tests/service-workers/service-worker/activation.https-expected.txt:
     17
    1182018-02-04  Jason Marcell  <jmarcell@apple.com>
    219
  • branches/safari-605-branch/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/activation.https-expected.txt

    r225537 r228069  
    44PASS finishing a request triggers activation
    55PASS skipWaiting bypasses no controllee requirement
    6 FAIL finishing a request triggers unregister assert_equals: expected null but got object "[object ServiceWorker]"
     6PASS finishing a request triggers unregister
    77
  • branches/safari-605-branch/Source/WebCore/ChangeLog

    r228067 r228069  
     12018-02-04  Jason Marcell  <jmarcell@apple.com>
     2
     3        Cherry-pick r228015. rdar://problem/37220133
     4
     5    2018-02-02  Chris Dumez  <cdumez@apple.com>
     6
     7            Clearing a registration should null out its workers before setting their state to "redundant"
     8            https://bugs.webkit.org/show_bug.cgi?id=182418
     9            <rdar://problem/37142874>
     10
     11            Reviewed by Youenn Fablet.
     12
     13            Clearing a registration should null out its workers before setting their state to "redundant".
     14            This seems to match Firefox and Chrome.
     15
     16            No new tests, rebaselined existing test.
     17
     18            * workers/service/server/SWServerRegistration.cpp:
     19            (WebCore::SWServerRegistration::clear):
     20            (WebCore::clearRegistrationWorker): Deleted.
     21
    1222018-02-04  Jason Marcell  <jmarcell@apple.com>
    223
  • branches/safari-605-branch/Source/WebCore/workers/service/server/SWServerRegistration.cpp

    r227923 r228069  
    229229
    230230// https://w3c.github.io/ServiceWorker/#clear-registration
    231 static void clearRegistrationWorker(SWServerRegistration& registration, SWServerWorker* worker, ServiceWorkerRegistrationState state)
    232 {
    233     if (!worker)
    234         return;
    235 
    236     worker->terminate();
    237     registration.updateWorkerState(*worker, ServiceWorkerState::Redundant);
    238     registration.updateRegistrationState(state, nullptr);
    239 }
    240 
    241 // https://w3c.github.io/ServiceWorker/#clear-registration
    242231void SWServerRegistration::clear()
    243232{
     
    248237    }
    249238
    250     clearRegistrationWorker(*this, installingWorker(), ServiceWorkerRegistrationState::Installing);
    251     clearRegistrationWorker(*this, waitingWorker(), ServiceWorkerRegistrationState::Waiting);
    252     clearRegistrationWorker(*this, activeWorker(), ServiceWorkerRegistrationState::Active);
     239    RefPtr<SWServerWorker> installingWorker = this->installingWorker();
     240    if (installingWorker) {
     241        installingWorker->terminate();
     242        updateRegistrationState(ServiceWorkerRegistrationState::Installing, nullptr);
     243    }
     244    RefPtr<SWServerWorker> waitingWorker = this->waitingWorker();
     245    if (waitingWorker) {
     246        waitingWorker->terminate();
     247        updateRegistrationState(ServiceWorkerRegistrationState::Waiting, nullptr);
     248    }
     249    RefPtr<SWServerWorker> activeWorker = this->activeWorker();
     250    if (activeWorker) {
     251        activeWorker->terminate();
     252        updateRegistrationState(ServiceWorkerRegistrationState::Active, nullptr);
     253    }
     254
     255    if (installingWorker)
     256        updateWorkerState(*installingWorker, ServiceWorkerState::Redundant);
     257    if (waitingWorker)
     258        updateWorkerState(*waitingWorker, ServiceWorkerState::Redundant);
     259    if (activeWorker)
     260        updateWorkerState(*activeWorker, ServiceWorkerState::Redundant);
    253261
    254262    // Remove scope to registration map[scopeString].
Note: See TracChangeset for help on using the changeset viewer.