title: event.waitUntil throws an error when called in a push event listener
body: <p>I'm getting error in my service-worker.js, when it receive notification from GCM</p>
  
  <pre><code>self.addEventListener('push', function(event) {
    console.log('Received a push message', event);
    registration.pushManager.getSubscription().then(function(subscription) {
      console.log("got subscription id: ", subscription.endpoint)
      var endpointSplit = subscription.endpoint.split('/');
      var endpoint = endpointSplit[endpointSplit.length-1];
      return fetch('/api/notifications/'+endpoint).then(function(res){
        return res.json().then(function(payload){
          return event.waitUntil(
            self.registration.showNotification(payload.title, {
              body: payload.body,
              icon: payload.icon,
              tag: payload.tag,
              data: payload
            })
          );
        }).catch(function(err){
          console.log("Error in notifications ",err)
        })
      })
    });
  });
  </code></pre>
  
  <p>With the above code, I'm able to finish gcm chrome web notification implementation, but I'm getting a error in console.</p>
  
  <pre><code>Uncaught (in promise) DOMException: Failed to execute 'waitUntil' on 'ExtendableEvent': The event handler is already finished.
      at Error (native)
      at http://localhost:9000/service-worker.js:9:18
  </code></pre>