| Index: chrome/browser/content_settings/tab_specific_content_settings.cc | 
| diff --git a/chrome/browser/content_settings/tab_specific_content_settings.cc b/chrome/browser/content_settings/tab_specific_content_settings.cc | 
| index cbb29ea9f2c664cdb2ac7e2c740e9887e586449d..89d968c54e6e377c29f3ba17f05f606c84f2328b 100644 | 
| --- a/chrome/browser/content_settings/tab_specific_content_settings.cc | 
| +++ b/chrome/browser/content_settings/tab_specific_content_settings.cc | 
| @@ -237,6 +237,20 @@ void TabSpecificContentSettings::FileSystemAccessed(int render_process_id, | 
| settings->OnFileSystemAccessed(url, blocked_by_policy); | 
| } | 
|  | 
| +// static | 
| +void TabSpecificContentSettings::ServiceWorkerAccessed(int render_process_id, | 
| +                                                       int render_frame_id, | 
| +                                                       const GURL& scope, | 
| +                                                       bool blocked_by_policy) { | 
| +  DCHECK_CURRENTLY_ON(BrowserThread::UI); | 
| +  DCHECK(scope.is_valid()); | 
| + | 
| +  TabSpecificContentSettings* settings = | 
| +      GetForFrame(render_process_id, render_frame_id); | 
| +  if (settings) | 
| +    settings->OnServiceWorkerAccessed(scope, blocked_by_policy); | 
| +} | 
| + | 
| bool TabSpecificContentSettings::IsContentBlocked( | 
| ContentSettingsType content_type) const { | 
| DCHECK(content_type != CONTENT_SETTINGS_TYPE_GEOLOCATION) | 
| @@ -462,6 +476,21 @@ void TabSpecificContentSettings::OnLocalStorageAccessed( | 
| NotifySiteDataObservers(); | 
| } | 
|  | 
| +void TabSpecificContentSettings::OnServiceWorkerAccessed( | 
| +    const GURL& scope, | 
| +    bool blocked_by_policy) { | 
| +  DCHECK(scope.is_valid()); | 
| +  if (blocked_by_policy) { | 
| +    blocked_local_shared_objects_.service_workers()->AddServiceWorker( | 
| +        scope.GetOrigin(), std::vector<GURL>(1, scope)); | 
| +    OnContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES); | 
| +  } else { | 
| +    allowed_local_shared_objects_.service_workers()->AddServiceWorker( | 
| +        scope.GetOrigin(), std::vector<GURL>(1, scope)); | 
| +    OnContentAllowed(CONTENT_SETTINGS_TYPE_COOKIES); | 
| +  } | 
| +} | 
| + | 
| void TabSpecificContentSettings::OnWebDatabaseAccessed( | 
| const GURL& url, | 
| const base::string16& name, | 
|  |