15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/content_settings/mock_settings_observer.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/chrome_notification_types.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/content_settings/host_content_settings_map.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/content_settings/core/browser/content_settings_details.h" 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "url/gurl.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)MockSettingsObserver::MockSettingsObserver(HostContentSettingsMap* map) 1303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) : map_(map), observer_(this) { 1403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) observer_.Add(map_); 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockSettingsObserver::~MockSettingsObserver() {} 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)void MockSettingsObserver::OnContentSettingChanged( 2003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const ContentSettingsPattern& primary_pattern, 2103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const ContentSettingsPattern& secondary_pattern, 2203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) ContentSettingsType content_type, 2303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) std::string resource_identifier) { 2403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const ContentSettingsDetails details( 2503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) primary_pattern, secondary_pattern, content_type, resource_identifier); 2603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) OnContentSettingsChanged(map_, 2703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) details.type(), 2803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) details.update_all_types(), 2903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) details.primary_pattern(), 3003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) details.secondary_pattern(), 3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) details.update_all()); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This checks that calling a Get function from an observer doesn't 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // deadlock. 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL url("http://random-hostname.com/"); 3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) map_->GetContentSetting( 3603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) url, url, CONTENT_SETTINGS_TYPE_IMAGES, std::string()); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 38