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

Side by Side Diff: chrome/browser/ui/content_settings/content_setting_image_model.cc

Issue 2668833003: DialogBrowserTest implementation to invoke Content settings bubble dialogs. (Closed)
Patch Set: Merged in suggestions from reviewers Created 3 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/content_settings/content_setting_image_model.h" 5 #include "chrome/browser/ui/content_settings/content_setting_image_model.h"
6 6
7 #include "base/feature_list.h" 7 #include "base/feature_list.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 85
86 void UpdateFromWebContents(WebContents* web_contents) override; 86 void UpdateFromWebContents(WebContents* web_contents) override;
87 }; 87 };
88 88
89 class ContentSettingMIDISysExImageModel 89 class ContentSettingMIDISysExImageModel
90 : public ContentSettingSimpleImageModel { 90 : public ContentSettingSimpleImageModel {
91 public: 91 public:
92 ContentSettingMIDISysExImageModel(); 92 ContentSettingMIDISysExImageModel();
93 93
94 void UpdateFromWebContents(WebContents* web_contents) override; 94 void UpdateFromWebContents(WebContents* web_contents) override;
95
96 private: 95 private:
97 DISALLOW_COPY_AND_ASSIGN(ContentSettingMIDISysExImageModel); 96 DISALLOW_COPY_AND_ASSIGN(ContentSettingMIDISysExImageModel);
98 }; 97 };
99 98
100 namespace { 99 namespace {
101 100
102 struct ContentSettingsImageDetails { 101 struct ContentSettingsImageDetails {
103 ContentSettingsType type; 102 ContentSettingsType type;
104 gfx::VectorIconId icon_id; 103 gfx::VectorIconId icon_id;
105 int blocked_tooltip_id; 104 int blocked_tooltip_id;
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 return gfx::Image( 513 return gfx::Image(
515 gfx::CreateVectorIconWithBadge(icon_id_, 16, icon_color, icon_badge_id_)); 514 gfx::CreateVectorIconWithBadge(icon_id_, 16, icon_color, icon_badge_id_));
516 } 515 }
517 516
518 ContentSettingImageModel::ContentSettingImageModel() 517 ContentSettingImageModel::ContentSettingImageModel()
519 : is_visible_(false), 518 : is_visible_(false),
520 icon_id_(gfx::VectorIconId::VECTOR_ICON_NONE), 519 icon_id_(gfx::VectorIconId::VECTOR_ICON_NONE),
521 icon_badge_id_(gfx::VectorIconId::VECTOR_ICON_NONE), 520 icon_badge_id_(gfx::VectorIconId::VECTOR_ICON_NONE),
522 explanatory_string_id_(0) {} 521 explanatory_string_id_(0) {}
523 522
523 // The ordering of the models here influences the order in which icons are
524 // shown in the omnibox.
525 static constexpr ContentSettingsType content_types[] = {
tapted 2017/02/07 01:23:31 nit: Might be your C roots showing again ;). It's
Peter Kasting 2017/02/07 01:34:06 Don't generalize too hard -- see e.g. https://grou
526 CONTENT_SETTINGS_TYPE_COOKIES,
527 CONTENT_SETTINGS_TYPE_IMAGES,
528 CONTENT_SETTINGS_TYPE_JAVASCRIPT,
529 CONTENT_SETTINGS_TYPE_PPAPI_BROKER,
530 CONTENT_SETTINGS_TYPE_PLUGINS,
531 CONTENT_SETTINGS_TYPE_POPUPS,
532 CONTENT_SETTINGS_TYPE_GEOLOCATION,
533 CONTENT_SETTINGS_TYPE_MIXEDSCRIPT,
534 CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS,
535 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC,
536 CONTENT_SETTINGS_TYPE_DEFAULT,
tapted 2017/02/07 01:23:31 This at least needs a comment, but.. although I us
kylix_rd 2017/02/07 18:25:21 I started down this path, but it's going to requir
537 CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS,
538 CONTENT_SETTINGS_TYPE_MIDI_SYSEX,
539 };
540
524 // static 541 // static
525 std::vector<std::unique_ptr<ContentSettingImageModel>> 542 std::vector<std::unique_ptr<ContentSettingImageModel>>
526 ContentSettingImageModel::GenerateContentSettingImageModels() { 543 ContentSettingImageModel::GenerateContentSettingImageModels() {
527 std::vector<std::unique_ptr<ContentSettingImageModel>> result; 544 std::vector<std::unique_ptr<ContentSettingImageModel>> result;
528 545
529 // The ordering of the models here influences the order in which icons are 546 for (auto content_type : content_types) {
tapted 2017/02/07 01:23:31 (with the above, my preference would be auto -> in
530 // shown in the omnibox. 547 switch (content_type) {
531 result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>( 548 case CONTENT_SETTINGS_TYPE_GEOLOCATION:
532 CONTENT_SETTINGS_TYPE_COOKIES)); 549 result.push_back(
533 result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>( 550 base::MakeUnique<ContentSettingGeolocationImageModel>());
534 CONTENT_SETTINGS_TYPE_IMAGES)); 551 break;
535 result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>( 552 case CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS:
536 CONTENT_SETTINGS_TYPE_JAVASCRIPT)); 553 result.push_back(base::MakeUnique<ContentSettingRPHImageModel>());
537 result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>( 554 break;
538 CONTENT_SETTINGS_TYPE_PPAPI_BROKER)); 555 case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC:
539 result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>( 556 result.push_back(base::MakeUnique<ContentSettingMediaImageModel>());
540 CONTENT_SETTINGS_TYPE_PLUGINS)); 557 break;
541 result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>( 558 case CONTENT_SETTINGS_TYPE_DEFAULT:
542 CONTENT_SETTINGS_TYPE_POPUPS)); 559 result.push_back(
543 result.push_back(base::MakeUnique<ContentSettingGeolocationImageModel>()); 560 base::MakeUnique<ContentSettingSubresourceFilterImageModel>());
544 result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>( 561 break;
545 CONTENT_SETTINGS_TYPE_MIXEDSCRIPT)); 562 case CONTENT_SETTINGS_TYPE_MIDI_SYSEX:
546 result.push_back(base::MakeUnique<ContentSettingRPHImageModel>()); 563 result.push_back(base::MakeUnique<ContentSettingMIDISysExImageModel>());
547 result.push_back(base::MakeUnique<ContentSettingMediaImageModel>()); 564 break;
548 result.push_back( 565 default:
549 base::MakeUnique<ContentSettingSubresourceFilterImageModel>()); 566 result.push_back(
tapted 2017/02/07 01:23:31 Comment here, e.g. // All other content settings
kylix_rd 2017/02/07 18:25:21 Done.
550 result.push_back(base::MakeUnique<ContentSettingBlockedImageModel>( 567 base::MakeUnique<ContentSettingBlockedImageModel>(content_type));
551 CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS)); 568 break;
552 result.push_back(base::MakeUnique<ContentSettingMIDISysExImageModel>()); 569 }
570 }
571 return result;
572 }
553 573
554 return result; 574 // static
575 size_t ContentSettingImageModel::GetContentSettingImageModelIndexForTesting(
tapted 2017/02/07 01:23:31 I would actually just expose kContentTypeIconOrder
kylix_rd 2017/02/07 18:25:21 Hmmm... I think keeping it internal and private is
tapted 2017/02/08 00:31:49 Although this is likely true, I've never seen it u
576 ContentSettingsType content_type) {
577 size_t result = 0;
578 if (content_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)
579 content_type = CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC;
580 for (size_t i = 0; i < ARRAYSIZE(content_types); ++i) {
581 if (content_type == content_types[i])
582 return result;
583 ++result;
584 }
585 NOTREACHED();
586 return ARRAYSIZE(content_types);
tapted 2017/02/07 01:23:31 ARRAYSIZE -> arraysize (I'm not sure where ARRAYSI
kylix_rd 2017/02/07 18:25:21 Done.
555 } 587 }
556 588
557 #if defined(OS_MACOSX) 589 #if defined(OS_MACOSX)
558 bool ContentSettingImageModel::UpdateFromWebContentsAndCheckIfIconChanged( 590 bool ContentSettingImageModel::UpdateFromWebContentsAndCheckIfIconChanged(
559 content::WebContents* web_contents) { 591 content::WebContents* web_contents) {
560 gfx::VectorIconId old_icon = icon_id_; 592 gfx::VectorIconId old_icon = icon_id_;
561 gfx::VectorIconId old_badge_icon = icon_badge_id_; 593 gfx::VectorIconId old_badge_icon = icon_badge_id_;
562 UpdateFromWebContents(web_contents); 594 UpdateFromWebContents(web_contents);
563 return old_icon != icon_id_ && old_badge_icon != icon_badge_id_; 595 return old_icon != icon_id_ && old_badge_icon != icon_badge_id_;
564 } 596 }
565 #endif 597 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698