| Index: third_party/WebKit/Source/modules/notifications/Notification.h
 | 
| diff --git a/third_party/WebKit/Source/modules/notifications/Notification.h b/third_party/WebKit/Source/modules/notifications/Notification.h
 | 
| index 771751f9a274416ccb3d084cb7db7dfc70229534..e3e0b628dab804689b65fa9979f03b04573123e7 100644
 | 
| --- a/third_party/WebKit/Source/modules/notifications/Notification.h
 | 
| +++ b/third_party/WebKit/Source/modules/notifications/Notification.h
 | 
| @@ -54,6 +54,7 @@ class ExecutionContext;
 | 
|  class NotificationAction;
 | 
|  class NotificationOptions;
 | 
|  class NotificationPermissionCallback;
 | 
| +class NotificationResourcesLoader;
 | 
|  class ScriptState;
 | 
|  
 | 
|  class MODULES_EXPORT Notification final : public EventTargetWithInlineData, public ActiveScriptWrappable, public ActiveDOMObject, public WebNotificationDelegate {
 | 
| @@ -124,14 +125,17 @@ protected:
 | 
|  private:
 | 
|      Notification(ExecutionContext*, const WebNotificationData&);
 | 
|  
 | 
| -    void scheduleShow();
 | 
| +    // Schedules an asynchronous call to |prepareShow|, allowing the constructor
 | 
| +    // to return so that events can be fired on the notification object.
 | 
| +    void schedulePrepareShow();
 | 
|  
 | 
| -    // Calling show() may start asynchronous operation. If this object has
 | 
| -    // a V8 wrapper, hasPendingActivity() prevents the wrapper from being
 | 
| -    // collected while m_state is Showing, and so this instance stays alive
 | 
| -    // until the operation completes. Otherwise, you need to hold a ref on this
 | 
| -    // instance until the operation completes.
 | 
| -    void show();
 | 
| +    // Checks permission and loads any necessary resources (this may be async)
 | 
| +    // before showing the notification.
 | 
| +    void prepareShow();
 | 
| +
 | 
| +    // Shows the notification, using the resources loaded by the
 | 
| +    // NotificationResourcesLoader.
 | 
| +    void didLoadResources(NotificationResourcesLoader*);
 | 
|  
 | 
|      void setPersistentId(int64_t persistentId) { m_persistentId = persistentId; }
 | 
|  
 | 
| @@ -158,7 +162,9 @@ private:
 | 
|  
 | 
|      NotificationState m_state;
 | 
|  
 | 
| -    Member<AsyncMethodRunner<Notification>> m_asyncRunner;
 | 
| +    Member<AsyncMethodRunner<Notification>> m_prepareShowMethodRunner;
 | 
| +
 | 
| +    Member<NotificationResourcesLoader> m_loader;
 | 
|  };
 | 
|  
 | 
|  } // namespace blink
 | 
| 
 |