| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/api/developer_private/extension_info_generat
or.h" | 5 #include "chrome/browser/extensions/api/developer_private/extension_info_generat
or.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/base64.h" | 9 #include "base/base64.h" |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 296 FROM_HERE, base::Bind(callback, base::Passed(&list_))); | 296 FROM_HERE, base::Bind(callback, base::Passed(&list_))); |
| 297 list_.clear(); | 297 list_.clear(); |
| 298 } else { | 298 } else { |
| 299 callback_ = callback; | 299 callback_ = callback; |
| 300 } | 300 } |
| 301 } | 301 } |
| 302 | 302 |
| 303 void ExtensionInfoGenerator::CreateExtensionInfoHelper( | 303 void ExtensionInfoGenerator::CreateExtensionInfoHelper( |
| 304 const Extension& extension, | 304 const Extension& extension, |
| 305 developer::ExtensionState state) { | 305 developer::ExtensionState state) { |
| 306 scoped_ptr<developer::ExtensionInfo> info(new developer::ExtensionInfo()); | 306 std::unique_ptr<developer::ExtensionInfo> info( |
| 307 new developer::ExtensionInfo()); |
| 307 | 308 |
| 308 // Don't consider the button hidden with the redesign, because "hidden" | 309 // Don't consider the button hidden with the redesign, because "hidden" |
| 309 // buttons are now just hidden in the wrench menu. | 310 // buttons are now just hidden in the wrench menu. |
| 310 info->action_button_hidden = | 311 info->action_button_hidden = |
| 311 !extension_action_api_->GetBrowserActionVisibility(extension.id()) && | 312 !extension_action_api_->GetBrowserActionVisibility(extension.id()) && |
| 312 !FeatureSwitch::extension_action_redesign()->IsEnabled(); | 313 !FeatureSwitch::extension_action_redesign()->IsEnabled(); |
| 313 | 314 |
| 314 // Blacklist text. | 315 // Blacklist text. |
| 315 int blacklist_text = -1; | 316 int blacklist_text = -1; |
| 316 switch (extension_prefs_->GetExtensionBlacklistState(extension.id())) { | 317 switch (extension_prefs_->GetExtensionBlacklistState(extension.id())) { |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 } | 355 } |
| 355 | 356 |
| 356 bool is_enabled = state == developer::EXTENSION_STATE_ENABLED; | 357 bool is_enabled = state == developer::EXTENSION_STATE_ENABLED; |
| 357 | 358 |
| 358 // Commands. | 359 // Commands. |
| 359 if (is_enabled) | 360 if (is_enabled) |
| 360 ConstructCommands(command_service_, extension.id(), &info->commands); | 361 ConstructCommands(command_service_, extension.id(), &info->commands); |
| 361 | 362 |
| 362 // Dependent extensions. | 363 // Dependent extensions. |
| 363 if (extension.is_shared_module()) { | 364 if (extension.is_shared_module()) { |
| 364 scoped_ptr<ExtensionSet> dependent_extensions = | 365 std::unique_ptr<ExtensionSet> dependent_extensions = |
| 365 extension_system_->extension_service()-> | 366 extension_system_->extension_service() |
| 366 shared_module_service()->GetDependentExtensions(&extension); | 367 ->shared_module_service() |
| 368 ->GetDependentExtensions(&extension); |
| 367 for (const scoped_refptr<const Extension>& dependent : | 369 for (const scoped_refptr<const Extension>& dependent : |
| 368 *dependent_extensions) | 370 *dependent_extensions) |
| 369 info->dependent_extensions.push_back(dependent->id()); | 371 info->dependent_extensions.push_back(dependent->id()); |
| 370 } | 372 } |
| 371 | 373 |
| 372 info->description = extension.description(); | 374 info->description = extension.description(); |
| 373 | 375 |
| 374 // Disable reasons. | 376 // Disable reasons. |
| 375 int disable_reasons = extension_prefs_->GetDisableReasons(extension.id()); | 377 int disable_reasons = extension_prefs_->GetDisableReasons(extension.id()); |
| 376 info->disable_reasons.suspicious_install = | 378 info->disable_reasons.suspicious_install = |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 590 } | 592 } |
| 591 | 593 |
| 592 std::string base_64; | 594 std::string base_64; |
| 593 base::Base64Encode(std::string(data->front_as<char>(), data->size()), | 595 base::Base64Encode(std::string(data->front_as<char>(), data->size()), |
| 594 &base_64); | 596 &base_64); |
| 595 const char kDataUrlPrefix[] = "data:image/png;base64,"; | 597 const char kDataUrlPrefix[] = "data:image/png;base64,"; |
| 596 return GURL(kDataUrlPrefix + base_64).spec(); | 598 return GURL(kDataUrlPrefix + base_64).spec(); |
| 597 } | 599 } |
| 598 | 600 |
| 599 void ExtensionInfoGenerator::OnImageLoaded( | 601 void ExtensionInfoGenerator::OnImageLoaded( |
| 600 scoped_ptr<developer::ExtensionInfo> info, | 602 std::unique_ptr<developer::ExtensionInfo> info, |
| 601 const gfx::Image& icon) { | 603 const gfx::Image& icon) { |
| 602 if (!icon.IsEmpty()) { | 604 if (!icon.IsEmpty()) { |
| 603 info->icon_url = GetIconUrlFromImage( | 605 info->icon_url = GetIconUrlFromImage( |
| 604 icon, info->state != developer::EXTENSION_STATE_ENABLED); | 606 icon, info->state != developer::EXTENSION_STATE_ENABLED); |
| 605 } else { | 607 } else { |
| 606 bool is_app = | 608 bool is_app = |
| 607 info->type == developer::EXTENSION_TYPE_HOSTED_APP || | 609 info->type == developer::EXTENSION_TYPE_HOSTED_APP || |
| 608 info->type == developer::EXTENSION_TYPE_LEGACY_PACKAGED_APP || | 610 info->type == developer::EXTENSION_TYPE_LEGACY_PACKAGED_APP || |
| 609 info->type == developer::EXTENSION_TYPE_PLATFORM_APP; | 611 info->type == developer::EXTENSION_TYPE_PLATFORM_APP; |
| 610 info->icon_url = GetDefaultIconUrl( | 612 info->icon_url = GetDefaultIconUrl( |
| 611 is_app, info->state != developer::EXTENSION_STATE_ENABLED); | 613 is_app, info->state != developer::EXTENSION_STATE_ENABLED); |
| 612 } | 614 } |
| 613 | 615 |
| 614 list_.push_back(std::move(*info)); | 616 list_.push_back(std::move(*info)); |
| 615 | 617 |
| 616 --pending_image_loads_; | 618 --pending_image_loads_; |
| 617 | 619 |
| 618 if (pending_image_loads_ == 0) { // All done! | 620 if (pending_image_loads_ == 0) { // All done! |
| 619 ExtensionInfoList list = std::move(list_); | 621 ExtensionInfoList list = std::move(list_); |
| 620 list_.clear(); | 622 list_.clear(); |
| 621 base::ResetAndReturn(&callback_).Run(std::move(list)); | 623 base::ResetAndReturn(&callback_).Run(std::move(list)); |
| 622 // WARNING: |this| is possibly deleted after this line! | 624 // WARNING: |this| is possibly deleted after this line! |
| 623 } | 625 } |
| 624 } | 626 } |
| 625 | 627 |
| 626 } // namespace extensions | 628 } // namespace extensions |
| OLD | NEW |