#ifndef CHROME_BROWSER_UI_CONTENT_SETTINGS_CONTENT_SETTING_BUBBLE_MODEL_H_
#define CHROME_BROWSER_UI_CONTENT_SETTINGS_CONTENT_SETTING_BUBBLE_MODEL_H_
#include <stdint.h>
#include <map>
#include <string>
#include <vector>
#include "base/gtest_prod_util.h"
#include "base/memory/raw_ptr.h"
#include "base/scoped_observation.h"
#include "build/build_config.h"
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/ui/blocked_content/framebust_block_tab_helper.h"
#include "components/blocked_content/url_list_manager.h"
#include "components/content_settings/browser/page_specific_content_settings.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/custom_handlers/protocol_handler.h"
#include "net/base/schemeful_site.h"
#include "services/device/public/cpp/geolocation/buildflags.h"
#include "third_party/blink/public/common/mediastream/media_stream_request.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/image/image.h"
#include "url/gurl.h"
#include "url/origin.h"
class ContentSettingBubbleModelDelegate;
class Profile;
namespace custom_handlers {
class ProtocolHandlerRegistry;
}
namespace content {
class Page;
class WebContents;
}
namespace ui {
class Event;
}
class ContentSettingSimpleBubbleModel;
class ContentSettingMediaStreamBubbleModel;
class ContentSettingSubresourceFilterBubbleModel;
class ContentSettingDownloadsBubbleModel;
class ContentSettingFramebustBlockBubbleModel;
class ContentSettingQuietRequestBubbleModel;
class ContentSettingBubbleModel { … };
class ContentSettingSimpleBubbleModel : public ContentSettingBubbleModel { … };
class ContentSettingRPHBubbleModel : public ContentSettingSimpleBubbleModel { … };
class ContentSettingMediaStreamBubbleModel : public ContentSettingBubbleModel { … };
class ContentSettingQuietRequestBubbleModel : public ContentSettingBubbleModel { … };
class ContentSettingSubresourceFilterBubbleModel
: public ContentSettingBubbleModel { … };
class ContentSettingDownloadsBubbleModel : public ContentSettingBubbleModel { … };
class ContentSettingSingleRadioGroup : public ContentSettingSimpleBubbleModel { … };
class ContentSettingStorageAccessBubbleModel
: public ContentSettingBubbleModel { … };
class ContentSettingGeolocationBubbleModel
: public ContentSettingSingleRadioGroup { … };
#if BUILDFLAG(IS_MAC)
class ContentSettingNotificationsBubbleModel
: public ContentSettingSimpleBubbleModel {
public:
ContentSettingNotificationsBubbleModel(Delegate* delegate,
content::WebContents* web_contents);
ContentSettingNotificationsBubbleModel(
const ContentSettingNotificationsBubbleModel&) = delete;
ContentSettingNotificationsBubbleModel& operator=(
const ContentSettingNotificationsBubbleModel&) = delete;
~ContentSettingNotificationsBubbleModel() override;
void OnDoneButtonClicked() override;
};
#endif
#if !BUILDFLAG(IS_ANDROID)
class ContentSettingFramebustBlockBubbleModel
: public ContentSettingSingleRadioGroup,
public blocked_content::UrlListManager::Observer { … };
#endif
#endif