Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(535)

Unified Diff: chrome/browser/chrome_content_browser_client.cc

Issue 2377603002: Disable ServiceWorker when JS is disabled (Closed)
Patch Set: Added browser tests Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chrome_content_browser_client.cc
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 5a03ae340327b199b86239b4e4e323f9dcdfba88..5433eaa614d3a6dfe9702972826e6978a34fc503 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1783,10 +1783,20 @@ bool ChromeContentBrowserClient::AllowServiceWorker(
}
#endif
+ // Check if cookies are allowed
ProfileIOData* io_data = ProfileIOData::FromResourceContext(context);
bool allow = io_data->GetCookieSettings()->IsSettingCookieAllowed(
scope, first_party_url);
+ // Check if javascripts are allowed
+ content_settings::SettingInfo info;
+ std::unique_ptr<base::Value> value =
+ io_data->GetHostContentSettingsMap()->GetWebsiteSetting(
+ first_party_url, first_party_url, CONTENT_SETTINGS_TYPE_JAVASCRIPT,
+ std::string(), &info);
+ ContentSetting setting = content_settings::ValueToContentSetting(value.get());
+ allow = allow && (setting == CONTENT_SETTING_ALLOW);
+
// Record access to database for potential display in UI.
// Only post the task if this is for a specific frame.
if (render_process_id != -1 && render_frame_id != -1) {

Powered by Google App Engine
This is Rietveld 408576698