Commit 2ae44760 authored by nancy's avatar nancy Committed by Commit Bot

Remove internal_app_item.

AppServiceAppItem is used to replace InternalAppItem. Update the unit
test to use AppServiceAppItem.

BUG=1016159

Change-Id: I659cd43fea543578ab4b6d7df6c1e7f57941cbdd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2037175Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Reviewed-by: default avatarJeevan Shikaram <jshikaram@chromium.org>
Commit-Queue: Nancy Wang <nancylingwang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#738376}
parent 6300266d
......@@ -15,7 +15,6 @@
#include "chrome/browser/apps/app_service/menu_util.h"
#include "chrome/browser/chromeos/plugin_vm/plugin_vm_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/app_list/internal_app/internal_app_item.h"
#include "chrome/browser/ui/app_list/internal_app/internal_app_metadata.h"
#include "chrome/grit/generated_resources.h"
#include "chrome/services/app_service/public/mojom/types.mojom.h"
......
......@@ -3697,8 +3697,6 @@ jumbo_static_library("ui") {
"app_list/extension_uninstaller.h",
"app_list/internal_app/internal_app_context_menu.cc",
"app_list/internal_app/internal_app_context_menu.h",
"app_list/internal_app/internal_app_item.cc",
"app_list/internal_app/internal_app_item.h",
"app_list/internal_app/internal_app_metadata.cc",
"app_list/internal_app/internal_app_metadata.h",
"app_list/md_icon_normalizer.cc",
......
......@@ -16,21 +16,24 @@
#include "base/strings/utf_string_conversions.h"
#include "base/test/bind_test_util.h"
#include "base/test/scoped_feature_list.h"
#include "chrome/browser/apps/app_service/app_service_proxy.h"
#include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
#include "chrome/browser/chromeos/arc/icon_decode_request.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/extensions/menu_manager_factory.h"
#include "chrome/browser/ui/app_list/app_context_menu_delegate.h"
#include "chrome/browser/ui/app_list/app_list_controller_delegate.h"
#include "chrome/browser/ui/app_list/app_list_test_util.h"
#include "chrome/browser/ui/app_list/app_service/app_service_app_item.h"
#include "chrome/browser/ui/app_list/arc/arc_app_item.h"
#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
#include "chrome/browser/ui/app_list/arc/arc_app_test.h"
#include "chrome/browser/ui/app_list/chrome_app_list_item.h"
#include "chrome/browser/ui/app_list/extension_app_context_menu.h"
#include "chrome/browser/ui/app_list/internal_app/internal_app_item.h"
#include "chrome/browser/ui/app_list/internal_app/internal_app_metadata.h"
#include "chrome/browser/ui/app_list/test/fake_app_list_model_updater.h"
#include "chrome/browser/ui/app_list/test/test_app_list_controller_delegate.h"
#include "chrome/services/app_service/public/cpp/app_update.h"
#include "chrome/test/base/testing_profile.h"
#include "components/arc/test/fake_app_instance.h"
#include "components/keyed_service/core/keyed_service.h"
......@@ -577,14 +580,18 @@ TEST_F(AppContextMenuTest, CommandIdsMatchEnumsForHistograms) {
// Tests that internal app's context menu is correct.
TEST_F(AppContextMenuTest, InternalAppMenu) {
for (const auto& internal_app : app_list::GetInternalAppList(profile())) {
if (!internal_app.show_in_launcher)
continue;
controller()->SetAppPinnable(internal_app.app_id,
AppListControllerDelegate::PIN_EDITABLE);
InternalAppItem item(profile(), nullptr /* model_updater */,
nullptr /* sync_item */, internal_app);
std::unique_ptr<ui::MenuModel> menu = GetContextMenuModel(&item);
apps::AppServiceProxy* proxy =
apps::AppServiceProxyFactory::GetForProfile(profile());
std::unique_ptr<AppServiceAppItem> item;
proxy->AppRegistryCache().ForOneApp(
internal_app.app_id, [this, &item](const apps::AppUpdate& update) {
item = std::make_unique<AppServiceAppItem>(profile(), nullptr,
nullptr, update);
});
std::unique_ptr<ui::MenuModel> menu = GetContextMenuModel(item.get());
ASSERT_NE(nullptr, menu);
EXPECT_EQ(1, menu->GetItemCount());
ValidateItemState(menu.get(), 0, MenuState(ash::TOGGLE_PIN));
......
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/app_list/internal_app/internal_app_item.h"
#include "ash/public/cpp/app_list/app_list_config.h"
#include "base/metrics/histogram_macros.h"
#include "chrome/browser/apps/app_service/app_service_metrics.h"
#include "chrome/browser/ui/app_list/app_list_model_updater.h"
#include "chrome/browser/ui/app_list/internal_app/internal_app_context_menu.h"
#include "chrome/browser/ui/app_list/internal_app/internal_app_metadata.h"
#include "ui/base/l10n/l10n_util.h"
// static
const char InternalAppItem::kItemType[] = "InternalAppItem";
InternalAppItem::InternalAppItem(
Profile* profile,
AppListModelUpdater* model_updater,
const app_list::AppListSyncableService::SyncItem* sync_item,
const app_list::InternalApp& internal_app)
: ChromeAppListItem(profile, internal_app.app_id) {
SetIcon(app_list::GetIconForResourceId(
internal_app.icon_resource_id,
ash::AppListConfig::instance().grid_icon_dimension()));
SetName(l10n_util::GetStringUTF8(internal_app.name_string_resource_id));
if (sync_item && sync_item->item_ordinal.IsValid())
UpdateFromSync(sync_item);
else
SetDefaultPositionIfApplicable(model_updater);
// Set model updater last to avoid being called during construction.
set_model_updater(model_updater);
}
InternalAppItem::~InternalAppItem() = default;
const char* InternalAppItem::GetItemType() const {
return InternalAppItem::kItemType;
}
void InternalAppItem::Activate(int event_flags) {
apps::RecordAppLaunch(id(), apps::mojom::LaunchSource::kFromAppListGrid);
app_list::OpenInternalApp(id(), profile(), event_flags);
}
void InternalAppItem::GetContextMenuModel(GetMenuModelCallback callback) {
if (!context_menu_) {
context_menu_ = std::make_unique<InternalAppContextMenu>(profile(), id(),
GetController());
}
context_menu_->GetMenuModel(std::move(callback));
}
app_list::AppContextMenu* InternalAppItem::GetAppContextMenu() {
return context_menu_.get();
}
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_APP_LIST_INTERNAL_APP_INTERNAL_APP_ITEM_H_
#define CHROME_BROWSER_UI_APP_LIST_INTERNAL_APP_INTERNAL_APP_ITEM_H_
#include "base/macros.h"
#include "chrome/browser/ui/app_list/chrome_app_list_item.h"
namespace app_list {
class AppContextMenu;
struct InternalApp;
} // namespace app_list
// A class that represents an internal app in launcher.
class InternalAppItem : public ChromeAppListItem {
public:
static const char kItemType[];
static void RecordActiveHistogram(const std::string& app_id);
InternalAppItem(Profile* profile,
AppListModelUpdater* model_updater,
const app_list::AppListSyncableService::SyncItem* sync_item,
const app_list::InternalApp& internal_app);
~InternalAppItem() override;
// ChromeAppListItem:
void Activate(int event_flags) override;
const char* GetItemType() const override;
void GetContextMenuModel(GetMenuModelCallback callback) override;
app_list::AppContextMenu* GetAppContextMenu() override;
private:
std::unique_ptr<app_list::AppContextMenu> context_menu_;
DISALLOW_COPY_AND_ASSIGN(InternalAppItem);
};
#endif // CHROME_BROWSER_UI_APP_LIST_INTERNAL_APP_INTERNAL_APP_ITEM_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment