OLD | NEW |
---|---|
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/extensions/installed_loader.h" | 5 #include "chrome/browser/extensions/installed_loader.h" |
6 | 6 |
7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
107 } | 107 } |
108 | 108 |
109 BackgroundPageType GetBackgroundPageType(const Extension* extension) { | 109 BackgroundPageType GetBackgroundPageType(const Extension* extension) { |
110 if (!BackgroundInfo::HasBackgroundPage(extension)) | 110 if (!BackgroundInfo::HasBackgroundPage(extension)) |
111 return NO_BACKGROUND_PAGE; | 111 return NO_BACKGROUND_PAGE; |
112 if (BackgroundInfo::HasPersistentBackgroundPage(extension)) | 112 if (BackgroundInfo::HasPersistentBackgroundPage(extension)) |
113 return BACKGROUND_PAGE_PERSISTENT; | 113 return BACKGROUND_PAGE_PERSISTENT; |
114 return EVENT_PAGE; | 114 return EVENT_PAGE; |
115 } | 115 } |
116 | 116 |
117 // Records the creation flags of an extension grouped by | |
118 // Extension::InitFromValueFlags. | |
119 void RecordCreationFlags(const Extension* extension) { | |
120 // Since each flag is a separate bit in an int, this loop is needed to find | |
121 // the number of flags. | |
122 int highest_flag_bit = 0; | |
123 for (int i = 1; i < Extension::LAST_INIT_FROM_VALUE_FLAGS; i <<= 1) | |
124 ++highest_flag_bit; | |
jar (doing other things)
2014/04/29 16:25:56
I didn't read this section of the code carefully..
calamity
2014/05/12 03:39:10
Done.
| |
125 | |
126 int flag = 1; | |
127 for (int i = 1; i <= highest_flag_bit; ++i) { | |
jar (doing other things)
2014/04/29 16:25:56
Since higest_flag_bit == 9, this loop will only re
| |
128 if (extension->creation_flags() & flag) { | |
jar (doing other things)
2014/04/29 16:25:56
Since you're only looking at 9 choices for |flag|,
| |
129 UMA_HISTOGRAM_ENUMERATION( | |
130 "Extensions.LoadCreationFlags", i, highest_flag_bit + 1); | |
jar (doing other things)
2014/04/29 01:32:25
Other than |i| (which is the sample), the other ar
| |
131 } | |
132 flag <<= 1; | |
133 } | |
134 } | |
135 | |
117 } // namespace | 136 } // namespace |
118 | 137 |
119 InstalledLoader::InstalledLoader(ExtensionService* extension_service) | 138 InstalledLoader::InstalledLoader(ExtensionService* extension_service) |
120 : extension_service_(extension_service), | 139 : extension_service_(extension_service), |
121 extension_registry_(ExtensionRegistry::Get(extension_service->profile())), | 140 extension_registry_(ExtensionRegistry::Get(extension_service->profile())), |
122 extension_prefs_(ExtensionPrefs::Get(extension_service->profile())) {} | 141 extension_prefs_(ExtensionPrefs::Get(extension_service->profile())) {} |
123 | 142 |
124 InstalledLoader::~InstalledLoader() { | 143 InstalledLoader::~InstalledLoader() { |
125 } | 144 } |
126 | 145 |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
396 ExtensionActionManager* extension_action_manager = | 415 ExtensionActionManager* extension_action_manager = |
397 ExtensionActionManager::Get(extension_service_->profile()); | 416 ExtensionActionManager::Get(extension_service_->profile()); |
398 if (extension_action_manager->GetPageAction(*ex->get())) | 417 if (extension_action_manager->GetPageAction(*ex->get())) |
399 ++page_action_count; | 418 ++page_action_count; |
400 if (extension_action_manager->GetBrowserAction(*ex->get())) | 419 if (extension_action_manager->GetBrowserAction(*ex->get())) |
401 ++browser_action_count; | 420 ++browser_action_count; |
402 | 421 |
403 if (extensions::ManagedModeInfo::IsContentPack(ex->get())) | 422 if (extensions::ManagedModeInfo::IsContentPack(ex->get())) |
404 ++content_pack_count; | 423 ++content_pack_count; |
405 | 424 |
425 RecordCreationFlags(*ex); | |
426 | |
406 extension_service_->RecordPermissionMessagesHistogram( | 427 extension_service_->RecordPermissionMessagesHistogram( |
407 ex->get(), "Extensions.Permissions_Load"); | 428 ex->get(), "Extensions.Permissions_Load"); |
408 } | 429 } |
409 | 430 |
410 const ExtensionSet& disabled_extensions = | 431 const ExtensionSet& disabled_extensions = |
411 extension_registry_->disabled_extensions(); | 432 extension_registry_->disabled_extensions(); |
412 for (ex = disabled_extensions.begin(); ex != disabled_extensions.end(); | 433 for (ex = disabled_extensions.begin(); ex != disabled_extensions.end(); |
413 ++ex) { | 434 ++ex) { |
414 if (extension_prefs_->DidExtensionEscalatePermissions((*ex)->id())) { | 435 if (extension_prefs_->DidExtensionEscalatePermissions((*ex)->id())) { |
415 ++disabled_for_permissions_count; | 436 ++disabled_for_permissions_count; |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
477 int InstalledLoader::GetCreationFlags(const ExtensionInfo* info) { | 498 int InstalledLoader::GetCreationFlags(const ExtensionInfo* info) { |
478 int flags = extension_prefs_->GetCreationFlags(info->extension_id); | 499 int flags = extension_prefs_->GetCreationFlags(info->extension_id); |
479 if (!Manifest::IsUnpackedLocation(info->extension_location)) | 500 if (!Manifest::IsUnpackedLocation(info->extension_location)) |
480 flags |= Extension::REQUIRE_KEY; | 501 flags |= Extension::REQUIRE_KEY; |
481 if (extension_prefs_->AllowFileAccess(info->extension_id)) | 502 if (extension_prefs_->AllowFileAccess(info->extension_id)) |
482 flags |= Extension::ALLOW_FILE_ACCESS; | 503 flags |= Extension::ALLOW_FILE_ACCESS; |
483 return flags; | 504 return flags; |
484 } | 505 } |
485 | 506 |
486 } // namespace extensions | 507 } // namespace extensions |
OLD | NEW |