1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
// Copyright 2015 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/toolbar/mock_component_toolbar_actions_factory.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/toolbar/test_toolbar_action_view_controller.h"
#include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h"
#include "extensions/common/feature_switch.h"
// static
const char MockComponentToolbarActionsFactory::kActionIdForTesting[] =
"mock_action";
MockComponentToolbarActionsFactory::MockComponentToolbarActionsFactory(
Browser* browser)
: migrated_feature_enabled_(false) {
ComponentToolbarActionsFactory::SetTestingFactory(this);
}
MockComponentToolbarActionsFactory::~MockComponentToolbarActionsFactory() {
ComponentToolbarActionsFactory::SetTestingFactory(nullptr);
}
std::set<std::string>
MockComponentToolbarActionsFactory::GetInitialComponentIds(Profile* profile) {
std::set<std::string> ids;
// kActionIdForTesting is installed by default if we are not testing
// a migration scenario.
if (extensions::FeatureSwitch::extension_action_redesign()->IsEnabled() &&
migrated_extension_id_.empty()) {
ids.insert(kActionIdForTesting);
}
return ids;
}
std::unique_ptr<ToolbarActionViewController>
MockComponentToolbarActionsFactory::GetComponentToolbarActionForId(
const std::string& id,
Browser* browser,
ToolbarActionsBar* bar) {
DCHECK_EQ(kActionIdForTesting, id);
return std::unique_ptr<ToolbarActionViewController>(
new TestToolbarActionViewController(
MockComponentToolbarActionsFactory::kActionIdForTesting));
}
void MockComponentToolbarActionsFactory::RegisterComponentMigrations(
extensions::ComponentMigrationHelper* helper) const {
if (!migrated_extension_id_.empty()) {
helper->Register(kActionIdForTesting, migrated_extension_id_);
}
}
void MockComponentToolbarActionsFactory::HandleComponentMigrations(
extensions::ComponentMigrationHelper* helper,
Profile* profile) const {
if (migrated_extension_id_.empty())
return;
if (migrated_feature_enabled_) {
helper->OnFeatureEnabled(kActionIdForTesting);
} else {
helper->OnFeatureDisabled(kActionIdForTesting);
}
}
|