Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / content_settings / mock_settings_observer.cc
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/content_settings/mock_settings_observer.h"
6
7 #include "chrome/browser/chrome_notification_types.h"
8 #include "components/content_settings/core/browser/content_settings_details.h"
9 #include "components/content_settings/core/browser/host_content_settings_map.h"
10 #include "url/gurl.h"
11
12 MockSettingsObserver::MockSettingsObserver(HostContentSettingsMap* map)
13     : map_(map), observer_(this) {
14   observer_.Add(map_);
15 }
16
17 MockSettingsObserver::~MockSettingsObserver() {}
18
19 void MockSettingsObserver::OnContentSettingChanged(
20     const ContentSettingsPattern& primary_pattern,
21     const ContentSettingsPattern& secondary_pattern,
22     ContentSettingsType content_type,
23     std::string resource_identifier) {
24   const ContentSettingsDetails details(
25       primary_pattern, secondary_pattern, content_type, resource_identifier);
26   OnContentSettingsChanged(map_,
27                            details.type(),
28                            details.update_all_types(),
29                            details.primary_pattern(),
30                            details.secondary_pattern(),
31                            details.update_all());
32   // This checks that calling a Get function from an observer doesn't
33   // deadlock.
34   GURL url("http://random-hostname.com/");
35   map_->GetContentSetting(
36       url, url, CONTENT_SETTINGS_TYPE_IMAGES, std::string());
37 }