Index: chrome/browser/prerender/prerender_manager.cc |
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc |
index 31e82daade2e19f8227657d18a8b0abbfb687d67..9e9be12bf46d7ea1d5965effad5ce24255cb440a 100644 |
--- a/chrome/browser/prerender/prerender_manager.cc |
+++ b/chrome/browser/prerender/prerender_manager.cc |
@@ -59,6 +59,12 @@ |
#include "net/url_request/url_request_context.h" |
#include "net/url_request/url_request_context_getter.h" |
+#if defined(ENABLE_MANAGED_USERS) |
+#include "chrome/browser/managed_mode/managed_mode_url_filter.h" |
+#include "chrome/browser/managed_mode/managed_user_service.h" |
+#include "chrome/browser/managed_mode/managed_user_service_factory.h" |
+#endif |
+ |
using content::BrowserThread; |
using content::RenderViewHost; |
using content::SessionStorageNamespace; |
@@ -1050,6 +1056,18 @@ PrerenderHandle* PrerenderManager::AddPrerender( |
if (!IsEnabled()) |
return NULL; |
+#if defined(ENABLE_MANAGED_USERS) |
+ // Check if the url would be blocked. If yes, don't add the prerender. |
+ ManagedUserService* service = |
+ ManagedUserServiceFactory::GetForProfile(profile_); |
+ if (service->ProfileIsManaged()) { |
+ ManagedModeURLFilter* filter = service->GetURLFilterForUIThread(); |
+ if (filter->GetFilteringBehaviorForURL(url_arg) == |
+ ManagedModeURLFilter::BLOCK) |
+ return NULL; |
+ } |
+#endif |
+ |
if ((origin == ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN || |
origin == ORIGIN_LINK_REL_PRERENDER_SAMEDOMAIN) && |
IsGoogleSearchResultURL(referrer.url)) { |