| Index: Source/modules/serviceworkers/NavigatorServiceWorker.cpp
|
| diff --git a/Source/modules/serviceworkers/NavigatorServiceWorker.cpp b/Source/modules/serviceworkers/NavigatorServiceWorker.cpp
|
| index 57ef2a1511c27e672f5c163ede7eaf9076194398..7591f3bd345e56fb0ebee3f2e3d8d2ca4d0f6d61 100644
|
| --- a/Source/modules/serviceworkers/NavigatorServiceWorker.cpp
|
| +++ b/Source/modules/serviceworkers/NavigatorServiceWorker.cpp
|
| @@ -5,6 +5,7 @@
|
| #include "config.h"
|
| #include "modules/serviceworkers/NavigatorServiceWorker.h"
|
|
|
| +#include "core/dom/Document.h"
|
| #include "core/frame/DOMWindow.h"
|
| #include "core/frame/LocalFrame.h"
|
| #include "core/frame/Navigator.h"
|
| @@ -21,12 +22,22 @@ NavigatorServiceWorker::~NavigatorServiceWorker()
|
| {
|
| }
|
|
|
| +NavigatorServiceWorker* NavigatorServiceWorker::from(Document& document)
|
| +{
|
| + if (!document.frame() || !document.frame()->domWindow())
|
| + return 0;
|
| + Navigator& navigator = document.frame()->domWindow()->navigator();
|
| + return &from(navigator);
|
| +}
|
| +
|
| NavigatorServiceWorker& NavigatorServiceWorker::from(Navigator& navigator)
|
| {
|
| NavigatorServiceWorker* supplement = toNavigatorServiceWorker(navigator);
|
| if (!supplement) {
|
| supplement = new NavigatorServiceWorker(navigator);
|
| provideTo(navigator, supplementName(), adoptPtrWillBeNoop(supplement));
|
| + // Initialize ServiceWorkerContainer too.
|
| + supplement->serviceWorker();
|
| }
|
| return *supplement;
|
| }
|
|
|