From 36b643215b78f19caa0a98953bed1154b5555fad Mon Sep 17 00:00:00 2001 From: "akalin@chromium.org" Date: Fri, 7 Sep 2012 12:53:00 +0000 Subject: [Sync] Generalize StringOrdinal to handle ordinal_in_parent field Rename StringOrdinal to Ordinal, move it to sync/, and templatize it. Make StringOrdinal be an instantiation of Ordinal that matches its previous behavior. Create NodeOrdinal, which is another instantiation of Ordinal for the ordinal_in_parent field in SyncEntity. Rework Ordinal to handle arbitrary byte ranges and to simplify the interpolation code a bit. Generalize StringOrdinal unit tests for Ordinal. Update users of StringOrdinal to prepend syncer::. BUG=145412 TBR=estade@chromium.org,jianli@chromium.org,brettw@chromium.org, Review URL: https://chromiumcodereview.appspot.com/10920017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155368 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/extensions/app_process_apitest.cc | 4 +- chrome/browser/extensions/app_sync_data.cc | 12 +- chrome/browser/extensions/app_sync_data.h | 14 +- .../browser/extensions/app_sync_data_unittest.cc | 13 +- chrome/browser/extensions/crx_installer.h | 6 +- chrome/browser/extensions/extension_browsertest.cc | 3 +- chrome/browser/extensions/extension_prefs.cc | 4 +- chrome/browser/extensions/extension_prefs.h | 4 +- .../browser/extensions/extension_prefs_unittest.cc | 10 +- chrome/browser/extensions/extension_service.cc | 2 +- chrome/browser/extensions/extension_service.h | 3 +- .../extensions/extension_service_unittest.cc | 22 ++- chrome/browser/extensions/extension_sorting.cc | 111 +++++------ chrome/browser/extensions/extension_sorting.h | 48 ++--- .../extensions/extension_sorting_unittest.cc | 208 +++++++++++---------- chrome/browser/extensions/extension_sync_data.h | 1 - chrome/browser/extensions/test_extension_prefs.cc | 3 +- chrome/browser/extensions/unpacked_installer.cc | 6 +- .../media_galleries_preferences_unittest.cc | 3 +- .../browser/sync/test/integration/apps_helper.cc | 17 +- chrome/browser/sync/test/integration/apps_helper.h | 13 +- .../sync/test/integration/sync_app_helper.cc | 27 +-- .../sync/test/integration/sync_app_helper.h | 18 +- .../sync/test/integration/sync_extension_helper.cc | 8 +- .../test/integration/two_client_apps_sync_test.cc | 17 +- .../browser/ui/panels/base_panel_browser_test.cc | 4 +- .../ui/panels/old_base_panel_browser_test.cc | 4 +- .../browser/ui/webui/ntp/app_launcher_handler.cc | 10 +- chrome/browser/ui/webui/ntp/app_launcher_handler.h | 4 +- 29 files changed, 318 insertions(+), 281 deletions(-) (limited to 'chrome/browser') diff --git a/chrome/browser/extensions/app_process_apitest.cc b/chrome/browser/extensions/app_process_apitest.cc index 61170fc..4383fa0 100644 --- a/chrome/browser/extensions/app_process_apitest.cc +++ b/chrome/browser/extensions/app_process_apitest.cc @@ -18,7 +18,6 @@ #include "chrome/common/chrome_switches.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_file_util.h" -#include "chrome/common/string_ordinal.h" #include "chrome/test/base/ui_test_utils.h" #include "content/public/browser/navigation_entry.h" #include "content/public/browser/notification_service.h" @@ -28,6 +27,7 @@ #include "content/public/test/browser_test_utils.h" #include "content/public/test/test_navigation_observer.h" #include "net/base/mock_host_resolver.h" +#include "sync/api/string_ordinal.h" using content::NavigationController; using content::RenderViewHost; @@ -253,7 +253,7 @@ IN_PROC_BROWSER_TEST_F(AppApiTest, BookmarkAppGetsNormalProcess) { Extension::FROM_BOOKMARK, &error)); service->OnExtensionInstalled(extension, false, - StringOrdinal::CreateInitialOrdinal()); + syncer::StringOrdinal::CreateInitialOrdinal()); ASSERT_TRUE(extension.get()); ASSERT_TRUE(extension->from_bookmark()); diff --git a/chrome/browser/extensions/app_sync_data.cc b/chrome/browser/extensions/app_sync_data.cc index d4d24b5..f7ce406 100644 --- a/chrome/browser/extensions/app_sync_data.cc +++ b/chrome/browser/extensions/app_sync_data.cc @@ -30,8 +30,8 @@ AppSyncData::AppSyncData(const Extension& extension, bool incognito_enabled, const std::string& notifications_client_id, bool notifications_disabled, - const StringOrdinal& app_launch_ordinal, - const StringOrdinal& page_ordinal) + const syncer::StringOrdinal& app_launch_ordinal, + const syncer::StringOrdinal& page_ordinal) : extension_sync_data_(extension, enabled, incognito_enabled), notifications_client_id_(notifications_client_id), notifications_disabled_(notifications_disabled), @@ -65,9 +65,9 @@ void AppSyncData::PopulateAppSpecifics(sync_pb::AppSpecifics* specifics) const { // Only sync the ordinal values if they are valid. if (app_launch_ordinal_.IsValid()) - specifics->set_app_launch_ordinal(app_launch_ordinal_.ToString()); + specifics->set_app_launch_ordinal(app_launch_ordinal_.ToInternalValue()); if (page_ordinal_.IsValid()) - specifics->set_page_ordinal(page_ordinal_.ToString()); + specifics->set_page_ordinal(page_ordinal_.ToInternalValue()); extension_sync_data_.PopulateExtensionSpecifics( specifics->mutable_extension()); @@ -88,8 +88,8 @@ void AppSyncData::PopulateFromAppSpecifics( specifics.notification_settings().has_disabled() && specifics.notification_settings().disabled(); - app_launch_ordinal_ = StringOrdinal(specifics.app_launch_ordinal()); - page_ordinal_ = StringOrdinal(specifics.page_ordinal()); + app_launch_ordinal_ = syncer::StringOrdinal(specifics.app_launch_ordinal()); + page_ordinal_ = syncer::StringOrdinal(specifics.page_ordinal()); } void AppSyncData::PopulateFromSyncData(const syncer::SyncData& sync_data) { diff --git a/chrome/browser/extensions/app_sync_data.h b/chrome/browser/extensions/app_sync_data.h index 455c64c..7e8d0a4 100644 --- a/chrome/browser/extensions/app_sync_data.h +++ b/chrome/browser/extensions/app_sync_data.h @@ -6,7 +6,7 @@ #define CHROME_BROWSER_EXTENSIONS_APP_SYNC_DATA_H_ #include "chrome/browser/extensions/extension_sync_data.h" -#include "chrome/common/string_ordinal.h" +#include "sync/api/string_ordinal.h" #include "sync/api/sync_change.h" namespace syncer { @@ -33,8 +33,8 @@ class AppSyncData { bool incognito_enabled, const std::string& notifications_client_id, bool notifications_disabled, - const StringOrdinal& app_launch_ordinal, - const StringOrdinal& page_ordinal); + const syncer::StringOrdinal& app_launch_ordinal, + const syncer::StringOrdinal& page_ordinal); ~AppSyncData(); // Retrive sync data from this class. @@ -56,10 +56,10 @@ class AppSyncData { // These ordinals aren't necessarily valid. Some applications don't have // valid ordinals because they don't appear on the new tab page. - const StringOrdinal& app_launch_ordinal() const { + const syncer::StringOrdinal& app_launch_ordinal() const { return app_launch_ordinal_; } - const StringOrdinal& page_ordinal() const { return page_ordinal_; } + const syncer::StringOrdinal& page_ordinal() const { return page_ordinal_; } const ExtensionSyncData& extension_sync_data() const { return extension_sync_data_; @@ -77,8 +77,8 @@ class AppSyncData { ExtensionSyncData extension_sync_data_; std::string notifications_client_id_; bool notifications_disabled_; - StringOrdinal app_launch_ordinal_; - StringOrdinal page_ordinal_; + syncer::StringOrdinal app_launch_ordinal_; + syncer::StringOrdinal page_ordinal_; }; } // namespace extensions diff --git a/chrome/browser/extensions/app_sync_data_unittest.cc b/chrome/browser/extensions/app_sync_data_unittest.cc index 18f676f..64a9ab9 100644 --- a/chrome/browser/extensions/app_sync_data_unittest.cc +++ b/chrome/browser/extensions/app_sync_data_unittest.cc @@ -4,6 +4,7 @@ #include "chrome/browser/extensions/app_sync_data.h" +#include "sync/api/string_ordinal.h" #include "sync/protocol/app_specifics.pb.h" #include "sync/protocol/sync.pb.h" #include "testing/gtest/include/gtest/gtest.h" @@ -41,9 +42,9 @@ TEST_F(AppSyncDataTest, SyncDataToExtensionSyncDataForApp) { sync_pb::EntitySpecifics entity; sync_pb::AppSpecifics* app_specifics = entity.mutable_app(); app_specifics->set_app_launch_ordinal( - StringOrdinal::CreateInitialOrdinal().ToString()); + syncer::StringOrdinal::CreateInitialOrdinal().ToInternalValue()); app_specifics->set_page_ordinal( - StringOrdinal::CreateInitialOrdinal().ToString()); + syncer::StringOrdinal::CreateInitialOrdinal().ToInternalValue()); sync_pb::AppNotificationSettings* notif_settings = app_specifics->mutable_notification_settings(); notif_settings->set_oauth_client_id(kOAuthClientId); @@ -56,9 +57,9 @@ TEST_F(AppSyncDataTest, SyncDataToExtensionSyncDataForApp) { AppSyncData app_sync_data(sync_data); EXPECT_EQ(app_specifics->app_launch_ordinal(), - app_sync_data.app_launch_ordinal().ToString()); + app_sync_data.app_launch_ordinal().ToInternalValue()); EXPECT_EQ(app_specifics->page_ordinal(), - app_sync_data.page_ordinal().ToString()); + app_sync_data.page_ordinal().ToInternalValue()); EXPECT_EQ(notif_settings->oauth_client_id(), app_sync_data.notifications_client_id()); EXPECT_EQ(notif_settings->disabled(), @@ -71,9 +72,9 @@ TEST_F(AppSyncDataTest, ExtensionSyncDataToSyncDataForApp) { sync_pb::EntitySpecifics entity; sync_pb::AppSpecifics* input_specifics = entity.mutable_app(); input_specifics->set_app_launch_ordinal( - StringOrdinal::CreateInitialOrdinal().ToString()); + syncer::StringOrdinal::CreateInitialOrdinal().ToInternalValue()); input_specifics->set_page_ordinal( - StringOrdinal::CreateInitialOrdinal().ToString()); + syncer::StringOrdinal::CreateInitialOrdinal().ToInternalValue()); sync_pb::AppNotificationSettings* notif_settings = input_specifics->mutable_notification_settings(); notif_settings->set_oauth_client_id(kOAuthClientId); diff --git a/chrome/browser/extensions/crx_installer.h b/chrome/browser/extensions/crx_installer.h index 1cad360..5c9a79e 100644 --- a/chrome/browser/extensions/crx_installer.h +++ b/chrome/browser/extensions/crx_installer.h @@ -17,8 +17,8 @@ #include "chrome/browser/extensions/sandboxed_unpacker.h" #include "chrome/browser/extensions/webstore_installer.h" #include "chrome/common/extensions/extension.h" -#include "chrome/common/string_ordinal.h" #include "chrome/common/web_apps.h" +#include "sync/api/string_ordinal.h" class ExtensionService; class SkBitmap; @@ -161,7 +161,7 @@ class CrxInstaller off_store_install_allow_reason_ = reason; } - void set_page_ordinal(const StringOrdinal& page_ordinal) { + void set_page_ordinal(const syncer::StringOrdinal& page_ordinal) { page_ordinal_ = page_ordinal; } @@ -270,7 +270,7 @@ class CrxInstaller scoped_refptr extension_; // The ordinal of the NTP apps page |extension_| will be shown on. - StringOrdinal page_ordinal_; + syncer::StringOrdinal page_ordinal_; // A parsed copy of the unmodified original manifest, before any // transformations like localization have taken place. diff --git a/chrome/browser/extensions/extension_browsertest.cc b/chrome/browser/extensions/extension_browsertest.cc index a529281..7432b42 100644 --- a/chrome/browser/extensions/extension_browsertest.cc +++ b/chrome/browser/extensions/extension_browsertest.cc @@ -37,6 +37,7 @@ #include "content/public/browser/notification_service.h" #include "content/public/browser/render_view_host.h" #include "content/public/test/browser_test_utils.h" +#include "sync/api/string_ordinal.h" using extensions::Extension; using extensions::ExtensionCreator; @@ -128,7 +129,7 @@ const Extension* ExtensionBrowserTest::LoadExtensionWithFlags( // are set up with the defaults. service->extension_prefs()->OnExtensionInstalled( extension, Extension::ENABLED, false, - StringOrdinal::CreateInitialOrdinal()); + syncer::StringOrdinal::CreateInitialOrdinal()); // Toggling incognito or file access will reload the extension, so wait for // the reload and grab the new extension instance. The default state is diff --git a/chrome/browser/extensions/extension_prefs.cc b/chrome/browser/extensions/extension_prefs.cc index 1a84624..3b536c0 100644 --- a/chrome/browser/extensions/extension_prefs.cc +++ b/chrome/browser/extensions/extension_prefs.cc @@ -1401,7 +1401,7 @@ void ExtensionPrefs::OnExtensionInstalled( const Extension* extension, Extension::State initial_state, bool from_webstore, - const StringOrdinal& page_ordinal) { + const syncer::StringOrdinal& page_ordinal) { const std::string& id = extension->id(); CHECK(Extension::IdIsValid(id)); ScopedExtensionPrefUpdate update(prefs_, id); @@ -1439,7 +1439,7 @@ void ExtensionPrefs::OnExtensionInstalled( extension_dict->Remove(kRegisteredEvents, NULL); if (extension->is_app()) { - StringOrdinal new_page_ordinal = page_ordinal.IsValid() ? + syncer::StringOrdinal new_page_ordinal = page_ordinal.IsValid() ? page_ordinal : extension_sorting_->GetNaturalAppPageOrdinal(); if (!extension_sorting_->GetPageOrdinal(id).IsValid()) extension_sorting_->SetPageOrdinal(id, new_page_ordinal); diff --git a/chrome/browser/extensions/extension_prefs.h b/chrome/browser/extensions/extension_prefs.h index 7da47b6..bc9c2c7 100644 --- a/chrome/browser/extensions/extension_prefs.h +++ b/chrome/browser/extensions/extension_prefs.h @@ -19,7 +19,7 @@ #include "chrome/browser/media_gallery/media_galleries_preferences.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/url_pattern_set.h" -#include "chrome/common/string_ordinal.h" +#include "sync/api/string_ordinal.h" class ExtensionPrefValueMap; class ExtensionSorting; @@ -122,7 +122,7 @@ class ExtensionPrefs : public ContentSettingsStore::Observer, void OnExtensionInstalled(const Extension* extension, Extension::State initial_state, bool from_webstore, - const StringOrdinal& page_ordinal); + const syncer::StringOrdinal& page_ordinal); // Called when an extension is uninstalled, so that prefs get cleaned up. void OnExtensionUninstalled(const std::string& extension_id, diff --git a/chrome/browser/extensions/extension_prefs_unittest.cc b/chrome/browser/extensions/extension_prefs_unittest.cc index b3ee126..3629494 100644 --- a/chrome/browser/extensions/extension_prefs_unittest.cc +++ b/chrome/browser/extensions/extension_prefs_unittest.cc @@ -17,12 +17,12 @@ #include "chrome/browser/prefs/scoped_user_pref_update.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/extensions/extension_manifest_constants.h" -#include "chrome/common/extensions/permissions/permissions_info.h" #include "chrome/common/extensions/permissions/permission_set.h" -#include "chrome/common/string_ordinal.h" +#include "chrome/common/extensions/permissions/permissions_info.h" #include "content/public/browser/notification_details.h" #include "content/public/browser/notification_source.h" #include "content/public/test/mock_notification_observer.h" +#include "sync/api/string_ordinal.h" using base::Time; using base::TimeDelta; @@ -741,7 +741,7 @@ class ExtensionPrefsOnExtensionInstalled : public ExtensionPrefsTest { EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id())); prefs()->OnExtensionInstalled( extension_.get(), Extension::DISABLED, false, - StringOrdinal()); + syncer::StringOrdinal()); } virtual void Verify() { @@ -760,7 +760,7 @@ class ExtensionPrefsAppDraggedByUser : public ExtensionPrefsTest { extension_ = prefs_.AddExtension("on_extension_installed"); EXPECT_FALSE(prefs()->WasAppDraggedByUser(extension_->id())); prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, - false, StringOrdinal()); + false, syncer::StringOrdinal()); } virtual void Verify() { @@ -922,7 +922,7 @@ void ExtensionPrefsPrepopulatedTest::EnsureExtensionInstalled(Extension *ext) { for (size_t i = 0; i < arraysize(extensions); ++i) { if (ext == extensions[i] && !installed[i]) { prefs()->OnExtensionInstalled(ext, Extension::ENABLED, - false, StringOrdinal()); + false, syncer::StringOrdinal()); installed[i] = true; break; } diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc index bbff196..d0a6ca8 100644 --- a/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc @@ -2127,7 +2127,7 @@ void ExtensionService::UpdateActiveExtensionsInCrashReporter() { void ExtensionService::OnExtensionInstalled( const Extension* extension, bool from_webstore, - const StringOrdinal& page_ordinal) { + const syncer::StringOrdinal& page_ordinal) { CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); // Ensure extension is deleted unless we transfer ownership. diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h index 0d461da..bc075b3 100644 --- a/chrome/browser/extensions/extension_service.h +++ b/chrome/browser/extensions/extension_service.h @@ -39,6 +39,7 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" +#include "sync/api/string_ordinal.h" #include "sync/api/sync_change.h" #include "sync/api/syncable_service.h" @@ -405,7 +406,7 @@ class ExtensionService void OnExtensionInstalled( const extensions::Extension* extension, bool from_webstore, - const StringOrdinal& page_ordinal); + const syncer::StringOrdinal& page_ordinal); // Initializes the |extension|'s active permission set and disables the // extension if the privilege level has increased (e.g., due to an upgrade). diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc index c8224b9..9bf75f0 100644 --- a/chrome/browser/extensions/extension_service_unittest.cc +++ b/chrome/browser/extensions/extension_service_unittest.cc @@ -63,7 +63,6 @@ #include "chrome/common/extensions/permissions/permission_set.h" #include "chrome/common/extensions/url_pattern.h" #include "chrome/common/pref_names.h" -#include "chrome/common/string_ordinal.h" #include "chrome/common/url_constants.h" #include "chrome/test/base/testing_profile.h" #include "content/public/browser/dom_storage_context.h" @@ -81,6 +80,7 @@ #include "net/cookies/cookie_options.h" #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_getter.h" +#include "sync/api/string_ordinal.h" #include "sync/api/sync_error_factory.h" #include "sync/api/sync_error_factory_mock.h" #include "sync/protocol/app_specifics.pb.h" @@ -2104,8 +2104,9 @@ TEST_F(ExtensionServiceTest, UpdateAppsRetainOrdinals) { ASSERT_EQ(std::string("1"), extension->version()->GetString()); // Modify the ordinals so we can distinguish them from the defaults. - StringOrdinal new_page_ordinal = sorting->GetPageOrdinal(id).CreateAfter(); - StringOrdinal new_launch_ordinal = + syncer::StringOrdinal new_page_ordinal = + sorting->GetPageOrdinal(id).CreateAfter(); + syncer::StringOrdinal new_launch_ordinal = sorting->GetAppLaunchOrdinal(id).CreateBefore(); sorting->SetPageOrdinal(id, new_page_ordinal); @@ -2117,8 +2118,8 @@ TEST_F(ExtensionServiceTest, UpdateAppsRetainOrdinals) { service_->GetExtensionById(id, false)->version()->GetString()); // Verify that the ordinals match. - ASSERT_TRUE(new_page_ordinal.Equal(sorting->GetPageOrdinal(id))); - ASSERT_TRUE(new_launch_ordinal.Equal(sorting->GetAppLaunchOrdinal(id))); + ASSERT_TRUE(new_page_ordinal.Equals(sorting->GetPageOrdinal(id))); + ASSERT_TRUE(new_launch_ordinal.Equals(sorting->GetAppLaunchOrdinal(id))); } // Ensures that the CWS has properly initialized ordinals. @@ -4562,14 +4563,15 @@ TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettings) { scoped_ptr(new TestSyncProcessorStub), scoped_ptr(new syncer::SyncErrorFactoryMock())); - StringOrdinal initial_ordinal = StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal initial_ordinal = + syncer::StringOrdinal::CreateInitialOrdinal(); { syncer::SyncDataList list = service_->GetAllSyncData(syncer::APPS); ASSERT_EQ(list.size(), 1U); extensions::AppSyncData app_sync_data(list[0]); - EXPECT_TRUE(initial_ordinal.Equal(app_sync_data.app_launch_ordinal())); - EXPECT_TRUE(initial_ordinal.Equal(app_sync_data.page_ordinal())); + EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.app_launch_ordinal())); + EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.page_ordinal())); } ExtensionSorting* sorting = service_->extension_prefs()->extension_sorting(); @@ -4580,7 +4582,7 @@ TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettings) { extensions::AppSyncData app_sync_data(list[0]); EXPECT_TRUE(initial_ordinal.LessThan(app_sync_data.app_launch_ordinal())); - EXPECT_TRUE(initial_ordinal.Equal(app_sync_data.page_ordinal())); + EXPECT_TRUE(initial_ordinal.Equals(app_sync_data.page_ordinal())); } sorting->SetPageOrdinal(app->id(), initial_ordinal.CreateAfter()); @@ -4624,7 +4626,7 @@ TEST_F(ExtensionServiceTest, GetSyncAppDataUserSettingsOnExtensionMoved) { // The sync data is not always in the same order our apps were installed in, // so we do that sorting here so we can make sure the values are changed as // expected. - StringOrdinal app_launch_ordinals[kAppCount]; + syncer::StringOrdinal app_launch_ordinals[kAppCount]; for (size_t i = 0; i < kAppCount; ++i) { for (size_t j = 0; j < kAppCount; ++j) { if (apps[i]->id() == data[j].id()) diff --git a/chrome/browser/extensions/extension_sorting.cc b/chrome/browser/extensions/extension_sorting.cc index 07f7de5..9a0dc69 100644 --- a/chrome/browser/extensions/extension_sorting.cc +++ b/chrome/browser/extensions/extension_sorting.cc @@ -54,10 +54,11 @@ void ExtensionSorting::CreateOrdinalsIfNecessary(size_t minimum_size) { // Create StringOrdinal values as required to ensure |ntp_ordinal_map_| has at // least |minimum_size| entries. if (ntp_ordinal_map_.empty() && minimum_size > 0) - ntp_ordinal_map_[StringOrdinal::CreateInitialOrdinal()]; + ntp_ordinal_map_[syncer::StringOrdinal::CreateInitialOrdinal()]; while (ntp_ordinal_map_.size() < minimum_size) { - StringOrdinal filler = ntp_ordinal_map_.rbegin()->first.CreateAfter(); + syncer::StringOrdinal filler = + ntp_ordinal_map_.rbegin()->first.CreateAfter(); AppLaunchOrdinalMap empty_ordinal_map; ntp_ordinal_map_.insert(std::make_pair(filler, empty_ordinal_map)); } @@ -71,13 +72,13 @@ void ExtensionSorting::MigrateAppIndex( // Convert all the page index values to page ordinals. If there are any // app launch values that need to be migrated, inserted them into a sorted // set to be dealt with later. - typedef std::map, - StringOrdinalLessThan> AppPositionToIdMapping; + typedef std::map, + syncer::StringOrdinal::LessThanFn> AppPositionToIdMapping; AppPositionToIdMapping app_launches_to_convert; for (ExtensionPrefs::ExtensionIds::const_iterator ext_id = extension_ids.begin(); ext_id != extension_ids.end(); ++ext_id) { int old_page_index = 0; - StringOrdinal page = GetPageOrdinal(*ext_id); + syncer::StringOrdinal page = GetPageOrdinal(*ext_id); if (extension_scoped_prefs_->ReadExtensionPrefInteger( *ext_id, kPrefPageIndexDeprecated, @@ -141,7 +142,7 @@ void ExtensionSorting::MigrateAppIndex( for (AppPositionToIdMapping::const_iterator page_it = app_launches_to_convert.begin(); page_it != app_launches_to_convert.end(); ++page_it) { - StringOrdinal page = page_it->first; + syncer::StringOrdinal page = page_it->first; for (std::map::const_iterator launch_it = page_it->second.begin(); launch_it != page_it->second.end(); ++launch_it) { @@ -164,7 +165,7 @@ void ExtensionSorting::FixNTPOrdinalCollisions() { continue; } - StringOrdinal repeated_ordinal = app_launch_it->first; + syncer::StringOrdinal repeated_ordinal = app_launch_it->first; // Sort the conflicting keys by their extension id, this is how // the order is decided. @@ -173,15 +174,15 @@ void ExtensionSorting::FixNTPOrdinalCollisions() { conflicting_ids.push_back(app_launch_it->second); std::sort(conflicting_ids.begin(), conflicting_ids.end()); - StringOrdinal upper_bound_ordinal = app_launch_it == page.end() ? - StringOrdinal() : + syncer::StringOrdinal upper_bound_ordinal = app_launch_it == page.end() ? + syncer::StringOrdinal() : app_launch_it->first; - StringOrdinal lower_bound_ordinal = repeated_ordinal; + syncer::StringOrdinal lower_bound_ordinal = repeated_ordinal; // Start at position 1 because the first extension can keep the conflicted // value. for (int i = 1; i < app_count; ++i) { - StringOrdinal unique_app_launch; + syncer::StringOrdinal unique_app_launch; if (upper_bound_ordinal.IsValid()) { unique_app_launch = lower_bound_ordinal.CreateBetween(upper_bound_ordinal); @@ -202,7 +203,7 @@ void ExtensionSorting::FixNTPOrdinalCollisions() { } void ExtensionSorting::EnsureValidOrdinals(const std::string& extension_id) { - StringOrdinal page_ordinal = GetPageOrdinal(extension_id); + syncer::StringOrdinal page_ordinal = GetPageOrdinal(extension_id); if (!page_ordinal.IsValid()) { // The webstore app should always start be on the first page. page_ordinal = extension_id == extension_misc::kWebStoreAppId ? @@ -211,7 +212,7 @@ void ExtensionSorting::EnsureValidOrdinals(const std::string& extension_id) { SetPageOrdinal(extension_id, page_ordinal); } - StringOrdinal app_launch_ordinal = GetAppLaunchOrdinal(extension_id); + syncer::StringOrdinal app_launch_ordinal = GetAppLaunchOrdinal(extension_id); if (!app_launch_ordinal.IsValid()) { // The webstore app should always start in the position. app_launch_ordinal = extension_id == extension_misc::kWebStoreAppId ? @@ -240,9 +241,9 @@ void ExtensionSorting::OnExtensionMoved( GetAppLaunchOrdinal(predecessor_extension_id).CreateAfter()); } else { // Both a successor and predecessor - const StringOrdinal& predecessor_ordinal = + const syncer::StringOrdinal& predecessor_ordinal = GetAppLaunchOrdinal(predecessor_extension_id); - const StringOrdinal& successor_ordinal = + const syncer::StringOrdinal& successor_ordinal = GetAppLaunchOrdinal(successor_extension_id); SetAppLaunchOrdinal(moved_extension_id, predecessor_ordinal.CreateBetween(successor_ordinal)); @@ -256,7 +257,7 @@ void ExtensionSorting::OnExtensionMoved( } -StringOrdinal ExtensionSorting::GetAppLaunchOrdinal( +syncer::StringOrdinal ExtensionSorting::GetAppLaunchOrdinal( const std::string& extension_id) const { std::string raw_value; // If the preference read fails then raw_value will still be unset and we @@ -264,25 +265,25 @@ StringOrdinal ExtensionSorting::GetAppLaunchOrdinal( // was found. extension_scoped_prefs_->ReadExtensionPrefString( extension_id, kPrefAppLaunchOrdinal, &raw_value); - return StringOrdinal(raw_value); + return syncer::StringOrdinal(raw_value); } void ExtensionSorting::SetAppLaunchOrdinal( const std::string& extension_id, - const StringOrdinal& new_app_launch_ordinal) { + const syncer::StringOrdinal& new_app_launch_ordinal) { // No work is required if the old and new values are the same. - if (new_app_launch_ordinal.EqualOrBothInvalid( + if (new_app_launch_ordinal.EqualsOrBothInvalid( GetAppLaunchOrdinal(extension_id))) { return; } - StringOrdinal page_ordinal = GetPageOrdinal(extension_id); + syncer::StringOrdinal page_ordinal = GetPageOrdinal(extension_id); RemoveOrdinalMapping( extension_id, page_ordinal, GetAppLaunchOrdinal(extension_id)); AddOrdinalMapping(extension_id, page_ordinal, new_app_launch_ordinal); Value* new_value = new_app_launch_ordinal.IsValid() ? - Value::CreateStringValue(new_app_launch_ordinal.ToString()) : + Value::CreateStringValue(new_app_launch_ordinal.ToInternalValue()) : NULL; extension_scoped_prefs_->UpdateExtensionPref( @@ -292,48 +293,48 @@ void ExtensionSorting::SetAppLaunchOrdinal( SyncIfNeeded(extension_id); } -StringOrdinal ExtensionSorting::CreateFirstAppLaunchOrdinal( - const StringOrdinal& page_ordinal) const { - const StringOrdinal& min_ordinal = +syncer::StringOrdinal ExtensionSorting::CreateFirstAppLaunchOrdinal( + const syncer::StringOrdinal& page_ordinal) const { + const syncer::StringOrdinal& min_ordinal = GetMinOrMaxAppLaunchOrdinalsOnPage(page_ordinal, ExtensionSorting::MIN_ORDINAL); if (min_ordinal.IsValid()) return min_ordinal.CreateBefore(); else - return StringOrdinal::CreateInitialOrdinal(); + return syncer::StringOrdinal::CreateInitialOrdinal(); } -StringOrdinal ExtensionSorting::CreateNextAppLaunchOrdinal( - const StringOrdinal& page_ordinal) const { - const StringOrdinal& max_ordinal = +syncer::StringOrdinal ExtensionSorting::CreateNextAppLaunchOrdinal( + const syncer::StringOrdinal& page_ordinal) const { + const syncer::StringOrdinal& max_ordinal = GetMinOrMaxAppLaunchOrdinalsOnPage(page_ordinal, ExtensionSorting::MAX_ORDINAL); if (max_ordinal.IsValid()) return max_ordinal.CreateAfter(); else - return StringOrdinal::CreateInitialOrdinal(); + return syncer::StringOrdinal::CreateInitialOrdinal(); } -StringOrdinal ExtensionSorting::CreateFirstAppPageOrdinal() const { +syncer::StringOrdinal ExtensionSorting::CreateFirstAppPageOrdinal() const { const DictionaryValue* extensions = pref_service_->GetDictionary( ExtensionPrefs::kExtensionsPref); CHECK(extensions); if (ntp_ordinal_map_.empty()) - return StringOrdinal::CreateInitialOrdinal(); + return syncer::StringOrdinal::CreateInitialOrdinal(); return ntp_ordinal_map_.begin()->first; } -StringOrdinal ExtensionSorting::GetNaturalAppPageOrdinal() const { +syncer::StringOrdinal ExtensionSorting::GetNaturalAppPageOrdinal() const { const DictionaryValue* extensions = pref_service_->GetDictionary( ExtensionPrefs::kExtensionsPref); CHECK(extensions); if (ntp_ordinal_map_.empty()) - return StringOrdinal::CreateInitialOrdinal(); + return syncer::StringOrdinal::CreateInitialOrdinal(); for (PageOrdinalMap::const_iterator it = ntp_ordinal_map_.begin(); it != ntp_ordinal_map_.end(); ++it) { @@ -342,33 +343,34 @@ StringOrdinal ExtensionSorting::GetNaturalAppPageOrdinal() const { } // Add a new page as all existing pages are full. - StringOrdinal last_element = ntp_ordinal_map_.rbegin()->first; + syncer::StringOrdinal last_element = ntp_ordinal_map_.rbegin()->first; return last_element.CreateAfter(); } -StringOrdinal ExtensionSorting::GetPageOrdinal(const std::string& extension_id) - const { +syncer::StringOrdinal ExtensionSorting::GetPageOrdinal( + const std::string& extension_id) const { std::string raw_data; // If the preference read fails then raw_data will still be unset and we will // return an invalid StringOrdinal to signal that no page ordinal was found. extension_scoped_prefs_->ReadExtensionPrefString( extension_id, kPrefPageOrdinal, &raw_data); - return StringOrdinal(raw_data); + return syncer::StringOrdinal(raw_data); } -void ExtensionSorting::SetPageOrdinal(const std::string& extension_id, - const StringOrdinal& new_page_ordinal) { +void ExtensionSorting::SetPageOrdinal( + const std::string& extension_id, + const syncer::StringOrdinal& new_page_ordinal) { // No work is required if the old and new values are the same. - if (new_page_ordinal.EqualOrBothInvalid(GetPageOrdinal(extension_id))) + if (new_page_ordinal.EqualsOrBothInvalid(GetPageOrdinal(extension_id))) return; - StringOrdinal app_launch_ordinal = GetAppLaunchOrdinal(extension_id); + syncer::StringOrdinal app_launch_ordinal = GetAppLaunchOrdinal(extension_id); RemoveOrdinalMapping( extension_id, GetPageOrdinal(extension_id), app_launch_ordinal); AddOrdinalMapping(extension_id, new_page_ordinal, app_launch_ordinal); Value* new_value = new_page_ordinal.IsValid() ? - Value::CreateStringValue(new_page_ordinal.ToString()) : + Value::CreateStringValue(new_page_ordinal.ToInternalValue()) : NULL; extension_scoped_prefs_->UpdateExtensionPref( @@ -390,7 +392,7 @@ void ExtensionSorting::ClearOrdinals(const std::string& extension_id) { } int ExtensionSorting::PageStringOrdinalAsInteger( - const StringOrdinal& page_ordinal) const { + const syncer::StringOrdinal& page_ordinal) const { if (!page_ordinal.IsValid()) return -1; @@ -399,12 +401,13 @@ int ExtensionSorting::PageStringOrdinalAsInteger( std::distance(ntp_ordinal_map_.begin(), it) : -1; } -StringOrdinal ExtensionSorting::PageIntegerAsStringOrdinal(size_t page_index) { +syncer::StringOrdinal ExtensionSorting::PageIntegerAsStringOrdinal( + size_t page_index) { const DictionaryValue* extensions = pref_service_->GetDictionary( ExtensionPrefs::kExtensionsPref); if (!extensions) - return StringOrdinal(); + return syncer::StringOrdinal(); if (page_index < ntp_ordinal_map_.size()) { PageOrdinalMap::const_iterator it = ntp_ordinal_map_.begin(); @@ -416,12 +419,12 @@ StringOrdinal ExtensionSorting::PageIntegerAsStringOrdinal(size_t page_index) { return ntp_ordinal_map_.rbegin()->first; } -StringOrdinal ExtensionSorting::GetMinOrMaxAppLaunchOrdinalsOnPage( - const StringOrdinal& target_page_ordinal, +syncer::StringOrdinal ExtensionSorting::GetMinOrMaxAppLaunchOrdinalsOnPage( + const syncer::StringOrdinal& target_page_ordinal, AppLaunchOrdinalReturn return_type) const { CHECK(target_page_ordinal.IsValid()); - StringOrdinal return_value; + syncer::StringOrdinal return_value; PageOrdinalMap::const_iterator page = ntp_ordinal_map_.find(target_page_ordinal); @@ -429,7 +432,7 @@ StringOrdinal ExtensionSorting::GetMinOrMaxAppLaunchOrdinalsOnPage( const AppLaunchOrdinalMap& app_list = page->second; if (app_list.empty()) - return StringOrdinal(); + return syncer::StringOrdinal(); if (return_type == ExtensionSorting::MAX_ORDINAL) return_value = app_list.rbegin()->first; @@ -454,7 +457,7 @@ void ExtensionSorting::InitializePageOrdinalMap( } // Include the Web Store App since it is displayed on the NTP. - StringOrdinal web_store_app_page = + syncer::StringOrdinal web_store_app_page = GetPageOrdinal(extension_misc::kWebStoreAppId); if (web_store_app_page.IsValid()) { AddOrdinalMapping(extension_misc::kWebStoreAppId, @@ -465,8 +468,8 @@ void ExtensionSorting::InitializePageOrdinalMap( void ExtensionSorting::AddOrdinalMapping( const std::string& extension_id, - const StringOrdinal& page_ordinal, - const StringOrdinal& app_launch_ordinal) { + const syncer::StringOrdinal& page_ordinal, + const syncer::StringOrdinal& app_launch_ordinal) { if (!page_ordinal.IsValid() || !app_launch_ordinal.IsValid()) return; @@ -476,8 +479,8 @@ void ExtensionSorting::AddOrdinalMapping( void ExtensionSorting::RemoveOrdinalMapping( const std::string& extension_id, - const StringOrdinal& page_ordinal, - const StringOrdinal& app_launch_ordinal) { + const syncer::StringOrdinal& page_ordinal, + const syncer::StringOrdinal& app_launch_ordinal) { if (!page_ordinal.IsValid() || !app_launch_ordinal.IsValid()) return; diff --git a/chrome/browser/extensions/extension_sorting.h b/chrome/browser/extensions/extension_sorting.h index 15d6023..89c19b8 100644 --- a/chrome/browser/extensions/extension_sorting.h +++ b/chrome/browser/extensions/extension_sorting.h @@ -9,9 +9,9 @@ #include #include "base/basictypes.h" -#include "chrome/common/extensions/extension.h" #include "chrome/browser/extensions/extension_prefs.h" -#include "chrome/common/string_ordinal.h" +#include "chrome/common/extensions/extension.h" +#include "sync/api/string_ordinal.h" class ExtensionScopedPrefs; class ExtensionServiceInterface; @@ -53,49 +53,51 @@ class ExtensionSorting { // apps are on the same page). A string value close to |a*| generally // indicates top left. If the extension has no launch ordinal, an invalid // StringOrdinal is returned. - StringOrdinal GetAppLaunchOrdinal(const std::string& extension_id) const; + syncer::StringOrdinal GetAppLaunchOrdinal( + const std::string& extension_id) const; // Sets a specific launch ordinal for an app with |extension_id|. void SetAppLaunchOrdinal(const std::string& extension_id, - const StringOrdinal& new_app_launch_ordinal); + const syncer::StringOrdinal& new_app_launch_ordinal); // Returns a StringOrdinal that is lower than any app launch ordinal for the // given page. - StringOrdinal CreateFirstAppLaunchOrdinal(const StringOrdinal& page_ordinal) - const; + syncer::StringOrdinal CreateFirstAppLaunchOrdinal( + const syncer::StringOrdinal& page_ordinal) const; // Returns a StringOrdinal that is higher than any app launch ordinal for the // given page. - StringOrdinal CreateNextAppLaunchOrdinal(const StringOrdinal& page_ordinal) - const; + syncer::StringOrdinal CreateNextAppLaunchOrdinal( + const syncer::StringOrdinal& page_ordinal) const; // Returns a StringOrdinal that is lower than any existing page ordinal. - StringOrdinal CreateFirstAppPageOrdinal() const; + syncer::StringOrdinal CreateFirstAppPageOrdinal() const; // Gets the page a new app should install to, which is the earliest non-full // page. The returned ordinal may correspond to a page that doesn't yet exist // if all pages are full. - StringOrdinal GetNaturalAppPageOrdinal() const; + syncer::StringOrdinal GetNaturalAppPageOrdinal() const; // Get the page ordinal for an app with |extension_id|. This determines // which page an app will appear on in page-based NTPs. If the app has no // page specified, an invalid StringOrdinal is returned. - StringOrdinal GetPageOrdinal(const std::string& extension_id) const; + syncer::StringOrdinal GetPageOrdinal(const std::string& extension_id) const; // Sets a specific page ordinal for an app with |extension_id|. void SetPageOrdinal(const std::string& extension_id, - const StringOrdinal& new_page_ordinal); + const syncer::StringOrdinal& new_page_ordinal); // Removes the ordinal values for an app. void ClearOrdinals(const std::string& extension_id); // Convert the page StringOrdinal value to its integer equivalent. This takes // O(# of apps) worst-case. - int PageStringOrdinalAsInteger(const StringOrdinal& page_ordinal) const; + int PageStringOrdinalAsInteger( + const syncer::StringOrdinal& page_ordinal) const; // Converts the page index integer to its StringOrdinal equivalent. This takes // O(# of apps) worst-case. - StringOrdinal PageIntegerAsStringOrdinal(size_t page_index); + syncer::StringOrdinal PageIntegerAsStringOrdinal(size_t page_index); private: // Unit tests. @@ -112,8 +114,8 @@ class ExtensionSorting { // the largest ordinal on |page_ordinal|. If there are no apps on the page // then an invalid StringOrdinal is returned. It is an error to call this // function with an invalid |page_ordinal|. - StringOrdinal GetMinOrMaxAppLaunchOrdinalsOnPage( - const StringOrdinal& page_ordinal, + syncer::StringOrdinal GetMinOrMaxAppLaunchOrdinalsOnPage( + const syncer::StringOrdinal& page_ordinal, AppLaunchOrdinalReturn return_type) const; // Initialize the |page_ordinal_map_| with the page ordinals used by the @@ -129,8 +131,8 @@ class ExtensionSorting { // of |page_ordinal| and a app launch ordinal of |app_launch_ordinal|. This // works with valid and invalid StringOrdinals. void AddOrdinalMapping(const std::string& extension_id, - const StringOrdinal& page_ordinal, - const StringOrdinal& app_launch_ordinal); + const syncer::StringOrdinal& page_ordinal, + const syncer::StringOrdinal& app_launch_ordinal); // Ensures |ntp_ordinal_map_| is of |minimum_size| number of entries. void CreateOrdinalsIfNecessary(size_t minimum_size); @@ -140,8 +142,8 @@ class ExtensionSorting { // is not matching map, nothing happens. This works with valid and invalid // StringOrdinals. void RemoveOrdinalMapping(const std::string& extension_id, - const StringOrdinal& page_ordinal, - const StringOrdinal& app_launch_ordinal); + const syncer::StringOrdinal& page_ordinal, + const syncer::StringOrdinal& app_launch_ordinal); // Syncs the extension if needed. It is an error to call this if the // extension is not an application. @@ -161,11 +163,13 @@ class ExtensionSorting { // The StringOrdinal is the app launch ordinal and the string is the extension // id. typedef std::multimap< - StringOrdinal, std::string, StringOrdinalLessThan> AppLaunchOrdinalMap; + syncer::StringOrdinal, std::string, + syncer::StringOrdinal::LessThanFn> AppLaunchOrdinalMap; // The StringOrdinal is the page ordinal and the AppLaunchOrdinalMap is the // contents of that page. typedef std::map< - StringOrdinal, AppLaunchOrdinalMap, StringOrdinalLessThan> PageOrdinalMap; + syncer::StringOrdinal, AppLaunchOrdinalMap, + syncer::StringOrdinal::LessThanFn> PageOrdinalMap; PageOrdinalMap ntp_ordinal_map_; DISALLOW_COPY_AND_ASSIGN(ExtensionSorting); diff --git a/chrome/browser/extensions/extension_sorting_unittest.cc b/chrome/browser/extensions/extension_sorting_unittest.cc index 2388abb..9f14a50 100644 --- a/chrome/browser/extensions/extension_sorting_unittest.cc +++ b/chrome/browser/extensions/extension_sorting_unittest.cc @@ -5,6 +5,7 @@ #include "chrome/browser/extensions/extension_prefs_unittest.h" #include "chrome/browser/extensions/extension_sorting.h" #include "chrome/common/extensions/extension_manifest_constants.h" +#include "sync/api/string_ordinal.h" #include "testing/gtest/include/gtest/gtest.h" using extensions::Extension; @@ -24,7 +25,7 @@ class ExtensionSortingAppLocation : public ExtensionSortingTest { extension_ = prefs_.AddExtension("not_an_app"); // Non-apps should not have any app launch ordinal or page ordinal. prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, - false, StringOrdinal()); + false, syncer::StringOrdinal()); } virtual void Verify() OVERRIDE { @@ -43,20 +44,21 @@ class ExtensionSortingAppLaunchOrdinal : public ExtensionSortingTest { public: virtual void Initialize() OVERRIDE { // No extensions yet. - StringOrdinal page = StringOrdinal::CreateInitialOrdinal(); - EXPECT_TRUE(StringOrdinal::CreateInitialOrdinal().Equal( + syncer::StringOrdinal page = syncer::StringOrdinal::CreateInitialOrdinal(); + EXPECT_TRUE(syncer::StringOrdinal::CreateInitialOrdinal().Equals( extension_sorting()->CreateNextAppLaunchOrdinal(page))); extension_ = prefs_.AddApp("on_extension_installed"); EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id())); prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, - false, StringOrdinal()); + false, syncer::StringOrdinal()); } virtual void Verify() OVERRIDE { - StringOrdinal launch_ordinal = + syncer::StringOrdinal launch_ordinal = extension_sorting()->GetAppLaunchOrdinal(extension_->id()); - StringOrdinal page_ordinal = StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal page_ordinal = + syncer::StringOrdinal::CreateInitialOrdinal(); // Extension should have been assigned a valid StringOrdinal. EXPECT_TRUE(launch_ordinal.IsValid()); @@ -66,13 +68,13 @@ class ExtensionSortingAppLaunchOrdinal : public ExtensionSortingTest { extension_sorting()->SetAppLaunchOrdinal( extension_->id(), extension_sorting()->CreateNextAppLaunchOrdinal(page_ordinal)); - StringOrdinal new_launch_ordinal = + syncer::StringOrdinal new_launch_ordinal = extension_sorting()->GetAppLaunchOrdinal(extension_->id()); EXPECT_TRUE(launch_ordinal.LessThan(new_launch_ordinal)); // This extension doesn't exist, so it should return an invalid // StringOrdinal. - StringOrdinal invalid_app_launch_ordinal = + syncer::StringOrdinal invalid_app_launch_ordinal = extension_sorting()->GetAppLaunchOrdinal("foo"); EXPECT_FALSE(invalid_app_launch_ordinal.IsValid()); EXPECT_EQ(-1, extension_sorting()->PageStringOrdinalAsInteger( @@ -80,10 +82,10 @@ class ExtensionSortingAppLaunchOrdinal : public ExtensionSortingTest { // The second page doesn't have any apps so its next launch ordinal should // be the first launch ordinal. - StringOrdinal next_page = page_ordinal.CreateAfter(); - StringOrdinal next_page_app_launch_ordinal = + syncer::StringOrdinal next_page = page_ordinal.CreateAfter(); + syncer::StringOrdinal next_page_app_launch_ordinal = extension_sorting()->CreateNextAppLaunchOrdinal(next_page); - EXPECT_TRUE(next_page_app_launch_ordinal.Equal( + EXPECT_TRUE(next_page_app_launch_ordinal.Equals( extension_sorting()->CreateFirstAppLaunchOrdinal(next_page))); } @@ -97,27 +99,27 @@ class ExtensionSortingPageOrdinal : public ExtensionSortingTest { virtual void Initialize() OVERRIDE{ extension_ = prefs_.AddApp("page_ordinal"); // Install with a page preference. - first_page_ = StringOrdinal::CreateInitialOrdinal(); + first_page_ = syncer::StringOrdinal::CreateInitialOrdinal(); prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, false, first_page_); - EXPECT_TRUE(first_page_.Equal( + EXPECT_TRUE(first_page_.Equals( extension_sorting()->GetPageOrdinal(extension_->id()))); EXPECT_EQ(0, extension_sorting()->PageStringOrdinalAsInteger(first_page_)); scoped_refptr extension2 = prefs_.AddApp("page_ordinal_2"); // Install without any page preference. prefs()->OnExtensionInstalled(extension2.get(), Extension::ENABLED, - false, StringOrdinal()); - EXPECT_TRUE(first_page_.Equal( + false, syncer::StringOrdinal()); + EXPECT_TRUE(first_page_.Equals( extension_sorting()->GetPageOrdinal(extension2->id()))); } virtual void Verify() OVERRIDE { // Set the page ordinal. - StringOrdinal new_page = first_page_.CreateAfter(); + syncer::StringOrdinal new_page = first_page_.CreateAfter(); extension_sorting()->SetPageOrdinal(extension_->id(), new_page); // Verify the page ordinal. EXPECT_TRUE( - new_page.Equal(extension_sorting()->GetPageOrdinal(extension_->id()))); + new_page.Equals(extension_sorting()->GetPageOrdinal(extension_->id()))); EXPECT_EQ(1, extension_sorting()->PageStringOrdinalAsInteger(new_page)); // This extension doesn't exist, so it should return an invalid @@ -126,7 +128,7 @@ class ExtensionSortingPageOrdinal : public ExtensionSortingTest { } private: - StringOrdinal first_page_; + syncer::StringOrdinal first_page_; scoped_refptr extension_; }; TEST_F(ExtensionSortingPageOrdinal, ExtensionSortingPageOrdinal) {} @@ -179,19 +181,20 @@ class ExtensionSortingInitialize prefs()->extension_sorting()->Initialize(ids); } virtual void Verify() OVERRIDE { - StringOrdinal first_ordinal = StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal first_ordinal = + syncer::StringOrdinal::CreateInitialOrdinal(); ExtensionSorting* extension_sorting = prefs()->extension_sorting(); - EXPECT_TRUE(first_ordinal.Equal( + EXPECT_TRUE(first_ordinal.Equals( extension_sorting->GetAppLaunchOrdinal(ext1_->id()))); EXPECT_TRUE(first_ordinal.LessThan( extension_sorting->GetAppLaunchOrdinal(ext2_->id()))); - EXPECT_TRUE(first_ordinal.Equal( + EXPECT_TRUE(first_ordinal.Equals( extension_sorting->GetAppLaunchOrdinal(ext3_->id()))); - EXPECT_TRUE(first_ordinal.Equal( + EXPECT_TRUE(first_ordinal.Equals( extension_sorting->GetPageOrdinal(ext1_->id()))); - EXPECT_TRUE(first_ordinal.Equal( + EXPECT_TRUE(first_ordinal.Equals( extension_sorting->GetPageOrdinal(ext2_->id()))); EXPECT_TRUE(first_ordinal.LessThan( extension_sorting->GetPageOrdinal(ext3_->id()))); @@ -211,7 +214,8 @@ class ExtensionSortingInitializeWithNoApps ExtensionSorting* extension_sorting = prefs()->extension_sorting(); // Make sure that the web store has valid ordinals. - StringOrdinal initial_ordinal = StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal initial_ordinal = + syncer::StringOrdinal::CreateInitialOrdinal(); extension_sorting->SetPageOrdinal(extension_misc::kWebStoreAppId, initial_ordinal); extension_sorting->SetAppLaunchOrdinal(extension_misc::kWebStoreAppId, @@ -223,7 +227,7 @@ class ExtensionSortingInitializeWithNoApps virtual void Verify() OVERRIDE { ExtensionSorting* extension_sorting = prefs()->extension_sorting(); - StringOrdinal page = + syncer::StringOrdinal page = extension_sorting->GetPageOrdinal(extension_misc::kWebStoreAppId); EXPECT_TRUE(page.IsValid()); @@ -231,7 +235,7 @@ class ExtensionSortingInitializeWithNoApps extension_sorting->ntp_ordinal_map_.find(page); EXPECT_TRUE(page_it != extension_sorting->ntp_ordinal_map_.end()); - StringOrdinal app_launch = + syncer::StringOrdinal app_launch = extension_sorting->GetPageOrdinal(extension_misc::kWebStoreAppId); EXPECT_TRUE(app_launch.IsValid()); @@ -290,7 +294,7 @@ class ExtensionSortingFixNTPCollisionsAllCollide virtual ~ExtensionSortingFixNTPCollisionsAllCollide() {} virtual void Initialize() OVERRIDE { - repeated_ordinal_ = StringOrdinal::CreateInitialOrdinal(); + repeated_ordinal_ = syncer::StringOrdinal::CreateInitialOrdinal(); ExtensionSorting* extension_sorting = prefs()->extension_sorting(); @@ -307,12 +311,12 @@ class ExtensionSortingFixNTPCollisionsAllCollide } virtual void Verify() OVERRIDE { ExtensionSorting* extension_sorting = prefs()->extension_sorting(); - StringOrdinal ext1_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext1_->id()); - StringOrdinal ext2_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext2_->id()); - StringOrdinal ext3_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext3_->id()); + syncer::StringOrdinal ext1_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext1_->id()); + syncer::StringOrdinal ext2_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext2_->id()); + syncer::StringOrdinal ext3_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext3_->id()); // The overlapping extensions should have be adjusted so that they are // sorted by their id. @@ -324,16 +328,16 @@ class ExtensionSortingFixNTPCollisionsAllCollide ext2_app_launch.LessThan(ext3_app_launch)); // The page ordinal should be unchanged. - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equals( repeated_ordinal_)); - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equals( repeated_ordinal_)); - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equals( repeated_ordinal_)); } private: - StringOrdinal repeated_ordinal_; + syncer::StringOrdinal repeated_ordinal_; }; TEST_F(ExtensionSortingFixNTPCollisionsAllCollide, ExtensionSortingFixNTPCollisionsAllCollide) {} @@ -345,8 +349,8 @@ class ExtensionSortingFixNTPCollisionsSomeCollideAtStart virtual ~ExtensionSortingFixNTPCollisionsSomeCollideAtStart() {} virtual void Initialize() OVERRIDE { - first_ordinal_ = StringOrdinal::CreateInitialOrdinal(); - StringOrdinal second_ordinal = first_ordinal_.CreateAfter(); + first_ordinal_ = syncer::StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal second_ordinal = first_ordinal_.CreateAfter(); ExtensionSorting* extension_sorting = prefs()->extension_sorting(); @@ -366,12 +370,12 @@ class ExtensionSortingFixNTPCollisionsSomeCollideAtStart } virtual void Verify() OVERRIDE { ExtensionSorting* extension_sorting = prefs()->extension_sorting(); - StringOrdinal ext1_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext1_->id()); - StringOrdinal ext2_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext2_->id()); - StringOrdinal ext3_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext3_->id()); + syncer::StringOrdinal ext1_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext1_->id()); + syncer::StringOrdinal ext2_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext2_->id()); + syncer::StringOrdinal ext3_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext3_->id()); // The overlapping extensions should have be adjusted so that they are // sorted by their id, but they both should be before ext3, which wasn't @@ -382,16 +386,16 @@ class ExtensionSortingFixNTPCollisionsSomeCollideAtStart EXPECT_TRUE(ext2_app_launch.LessThan(ext3_app_launch)); // The page ordinal should be unchanged. - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equals( first_ordinal_)); - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equals( first_ordinal_)); - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equals( first_ordinal_)); } private: - StringOrdinal first_ordinal_; + syncer::StringOrdinal first_ordinal_; }; TEST_F(ExtensionSortingFixNTPCollisionsSomeCollideAtStart, ExtensionSortingFixNTPCollisionsSomeCollideAtStart) {} @@ -403,8 +407,8 @@ class ExtensionSortingFixNTPCollisionsSomeCollideAtEnd virtual ~ExtensionSortingFixNTPCollisionsSomeCollideAtEnd() {} virtual void Initialize() OVERRIDE { - first_ordinal_ = StringOrdinal::CreateInitialOrdinal(); - StringOrdinal second_ordinal = first_ordinal_.CreateAfter(); + first_ordinal_ = syncer::StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal second_ordinal = first_ordinal_.CreateAfter(); ExtensionSorting* extension_sorting = prefs()->extension_sorting(); @@ -424,12 +428,12 @@ class ExtensionSortingFixNTPCollisionsSomeCollideAtEnd } virtual void Verify() OVERRIDE { ExtensionSorting* extension_sorting = prefs()->extension_sorting(); - StringOrdinal ext1_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext1_->id()); - StringOrdinal ext2_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext2_->id()); - StringOrdinal ext3_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext3_->id()); + syncer::StringOrdinal ext1_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext1_->id()); + syncer::StringOrdinal ext2_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext2_->id()); + syncer::StringOrdinal ext3_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext3_->id()); // The overlapping extensions should have be adjusted so that they are // sorted by their id, but they both should be after ext1, which wasn't @@ -440,16 +444,16 @@ class ExtensionSortingFixNTPCollisionsSomeCollideAtEnd ext2_app_launch.LessThan(ext3_app_launch)); // The page ordinal should be unchanged. - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equals( first_ordinal_)); - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equals( first_ordinal_)); - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equals( first_ordinal_)); } private: - StringOrdinal first_ordinal_; + syncer::StringOrdinal first_ordinal_; }; TEST_F(ExtensionSortingFixNTPCollisionsSomeCollideAtEnd, ExtensionSortingFixNTPCollisionsSomeCollideAtEnd) {} @@ -461,8 +465,8 @@ class ExtensionSortingFixNTPCollisionsTwoCollisions virtual ~ExtensionSortingFixNTPCollisionsTwoCollisions() {} virtual void Initialize() OVERRIDE { - first_ordinal_ = StringOrdinal::CreateInitialOrdinal(); - StringOrdinal second_ordinal = first_ordinal_.CreateAfter(); + first_ordinal_ = syncer::StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal second_ordinal = first_ordinal_.CreateAfter(); ExtensionSorting* extension_sorting = prefs()->extension_sorting(); @@ -483,14 +487,14 @@ class ExtensionSortingFixNTPCollisionsTwoCollisions } virtual void Verify() OVERRIDE { ExtensionSorting* extension_sorting = prefs()->extension_sorting(); - StringOrdinal ext1_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext1_->id()); - StringOrdinal ext2_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext2_->id()); - StringOrdinal ext3_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext3_->id()); - StringOrdinal ext4_app_launch = extension_sorting->GetAppLaunchOrdinal( - ext4_->id()); + syncer::StringOrdinal ext1_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext1_->id()); + syncer::StringOrdinal ext2_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext2_->id()); + syncer::StringOrdinal ext3_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext3_->id()); + syncer::StringOrdinal ext4_app_launch = + extension_sorting->GetAppLaunchOrdinal(ext4_->id()); // The overlapping extensions should have be adjusted so that they are // sorted by their id, with |ext1| and |ext2| appearing before |ext3| and @@ -506,18 +510,18 @@ class ExtensionSortingFixNTPCollisionsTwoCollisions ext3_app_launch.LessThan(ext4_app_launch)); // The page ordinal should be unchanged. - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext1_->id()).Equals( first_ordinal_)); - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext2_->id()).Equals( first_ordinal_)); - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext3_->id()).Equals( first_ordinal_)); - EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext4_->id()).Equal( + EXPECT_TRUE(extension_sorting->GetPageOrdinal(ext4_->id()).Equals( first_ordinal_)); } private: - StringOrdinal first_ordinal_; + syncer::StringOrdinal first_ordinal_; }; TEST_F(ExtensionSortingFixNTPCollisionsTwoCollisions, ExtensionSortingFixNTPCollisionsTwoCollisions) {} @@ -532,10 +536,11 @@ class ExtensionSortingEnsureValidOrdinals : virtual void Verify() { ExtensionSorting* extension_sorting = prefs()->extension_sorting(); - // Give ext1 invalid ordinals and then check that EnsureValidOridnals fixes + // Give ext1 invalid ordinals and then check that EnsureValidOrdinals fixes // them. - extension_sorting->SetAppLaunchOrdinal(ext1_->id(), StringOrdinal()); - extension_sorting->SetPageOrdinal(ext1_->id(), StringOrdinal()); + extension_sorting->SetAppLaunchOrdinal(ext1_->id(), + syncer::StringOrdinal()); + extension_sorting->SetPageOrdinal(ext1_->id(), syncer::StringOrdinal()); extension_sorting->EnsureValidOrdinals(ext1_->id()); @@ -558,7 +563,8 @@ class ExtensionSortingPageOrdinalMapping : std::string ext_2 = "ext_2"; ExtensionSorting* extension_sorting = prefs()->extension_sorting(); - StringOrdinal first_ordinal = StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal first_ordinal = + syncer::StringOrdinal::CreateInitialOrdinal(); // Ensure attempting to removing a mapping with an invalid page doesn't // modify the map. @@ -622,7 +628,7 @@ class ExtensionSortingPreinstalledAppsBase : prefs()->OnExtensionInstalled(app1_scoped_.get(), Extension::ENABLED, false, - StringOrdinal()); + syncer::StringOrdinal()); app2_scoped_ = Extension::Create( prefs_.temp_dir().AppendASCII("app2_"), Extension::EXTERNAL_PREF, @@ -630,7 +636,7 @@ class ExtensionSortingPreinstalledAppsBase : prefs()->OnExtensionInstalled(app2_scoped_.get(), Extension::ENABLED, false, - StringOrdinal()); + syncer::StringOrdinal()); app1_ = app1_scoped_.get(); app2_ = app2_scoped_.get(); @@ -655,23 +661,25 @@ class ExtensionSortingGetMinOrMaxAppLaunchOrdinalsOnPage : virtual void Initialize() OVERRIDE {} virtual void Verify() OVERRIDE { - StringOrdinal page = StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal page = syncer::StringOrdinal::CreateInitialOrdinal(); ExtensionSorting* extension_sorting = prefs()->extension_sorting(); - StringOrdinal min = extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage( - page, - ExtensionSorting::MIN_ORDINAL); - StringOrdinal max = extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage( - page, - ExtensionSorting::MAX_ORDINAL); + syncer::StringOrdinal min = + extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage( + page, + ExtensionSorting::MIN_ORDINAL); + syncer::StringOrdinal max = + extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage( + page, + ExtensionSorting::MAX_ORDINAL); EXPECT_TRUE(min.IsValid()); EXPECT_TRUE(max.IsValid()); EXPECT_TRUE(min.LessThan(max)); // Ensure that the min and max values aren't set for empty pages. - min = StringOrdinal(); - max = StringOrdinal(); - StringOrdinal empty_page = page.CreateAfter(); + min = syncer::StringOrdinal(); + max = syncer::StringOrdinal(); + syncer::StringOrdinal empty_page = page.CreateAfter(); EXPECT_FALSE(min.IsValid()); EXPECT_FALSE(max.IsValid()); min = extension_sorting->GetMinOrMaxAppLaunchOrdinalsOnPage( @@ -698,7 +706,8 @@ class ExtensionSortingKeepEmptyStringOrdinalPages : virtual void Initialize() { ExtensionSorting* extension_sorting = prefs()->extension_sorting(); - StringOrdinal first_page = StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal first_page = + syncer::StringOrdinal::CreateInitialOrdinal(); extension_sorting->SetPageOrdinal(app1_->id(), first_page); EXPECT_EQ(0, extension_sorting->PageStringOrdinalAsInteger(first_page)); @@ -719,11 +728,11 @@ class ExtensionSortingKeepEmptyStringOrdinalPages : extension_sorting->SetPageOrdinal(app2_->id(), last_page_); EXPECT_EQ(2, extension_sorting->PageStringOrdinalAsInteger(last_page_)); EXPECT_TRUE( - last_page_.Equal(extension_sorting->PageIntegerAsStringOrdinal(2))); + last_page_.Equals(extension_sorting->PageIntegerAsStringOrdinal(2))); } private: - StringOrdinal last_page_; + syncer::StringOrdinal last_page_; }; TEST_F(ExtensionSortingKeepEmptyStringOrdinalPages, ExtensionSortingKeepEmptyStringOrdinalPages) {} @@ -737,7 +746,8 @@ class ExtensionSortingMakesFillerOrdinals : virtual void Initialize() { ExtensionSorting* extension_sorting = prefs()->extension_sorting(); - StringOrdinal first_page = StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal first_page = + syncer::StringOrdinal::CreateInitialOrdinal(); extension_sorting->SetPageOrdinal(app1_->id(), first_page); EXPECT_EQ(0, extension_sorting->PageStringOrdinalAsInteger(first_page)); } @@ -748,11 +758,13 @@ class ExtensionSortingMakesFillerOrdinals : // on them, this test simulates dropping of an app on the 1st and 4th empty // pages (3rd and 6th pages by index) to ensure we don't crash and that // filler ordinals are created as needed. See: http://crbug.com/122214 - StringOrdinal page_three = extension_sorting->PageIntegerAsStringOrdinal(2); + syncer::StringOrdinal page_three = + extension_sorting->PageIntegerAsStringOrdinal(2); extension_sorting->SetPageOrdinal(app1_->id(), page_three); EXPECT_EQ(2, extension_sorting->PageStringOrdinalAsInteger(page_three)); - StringOrdinal page_six = extension_sorting->PageIntegerAsStringOrdinal(5); + syncer::StringOrdinal page_six = + extension_sorting->PageIntegerAsStringOrdinal(5); extension_sorting->SetPageOrdinal(app1_->id(), page_six); EXPECT_EQ(5, extension_sorting->PageStringOrdinalAsInteger(page_six)); } diff --git a/chrome/browser/extensions/extension_sync_data.h b/chrome/browser/extensions/extension_sync_data.h index 989924a..cf8ac6d 100644 --- a/chrome/browser/extensions/extension_sync_data.h +++ b/chrome/browser/extensions/extension_sync_data.h @@ -8,7 +8,6 @@ #include #include "base/version.h" -#include "chrome/common/string_ordinal.h" #include "googleurl/src/gurl.h" #include "sync/api/sync_change.h" diff --git a/chrome/browser/extensions/test_extension_prefs.cc b/chrome/browser/extensions/test_extension_prefs.cc index b28c5fb..43f08bb 100644 --- a/chrome/browser/extensions/test_extension_prefs.cc +++ b/chrome/browser/extensions/test_extension_prefs.cc @@ -22,6 +22,7 @@ #include "chrome/common/extensions/extension_manifest_constants.h" #include "chrome/common/json_pref_store.h" #include "content/public/browser/browser_thread.h" +#include "sync/api/string_ordinal.h" #include "testing/gtest/include/gtest/gtest.h" using content::BrowserThread; @@ -146,7 +147,7 @@ scoped_refptr TestExtensionPrefs::AddExtensionWithManifestAndFlags( EXPECT_TRUE(Extension::IdIsValid(extension->id())); prefs_->OnExtensionInstalled(extension, Extension::ENABLED, extra_flags & Extension::FROM_WEBSTORE, - StringOrdinal::CreateInitialOrdinal()); + syncer::StringOrdinal::CreateInitialOrdinal()); return extension; } diff --git a/chrome/browser/extensions/unpacked_installer.cc b/chrome/browser/extensions/unpacked_installer.cc index 00b7c46..80307c0 100644 --- a/chrome/browser/extensions/unpacked_installer.cc +++ b/chrome/browser/extensions/unpacked_installer.cc @@ -15,7 +15,7 @@ #include "chrome/browser/extensions/permissions_updater.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_file_util.h" -#include "chrome/common/string_ordinal.h" +#include "sync/api/string_ordinal.h" using content::BrowserThread; using extensions::Extension; @@ -67,7 +67,7 @@ void SimpleExtensionLoadPrompt::InstallUIProceed() { extensions::PermissionsUpdater perms_updater(service_weak_->profile()); perms_updater.GrantActivePermissions(extension_, false); service_weak_->OnExtensionInstalled( - extension_, false, StringOrdinal()); // Not from web store. + extension_, false, syncer::StringOrdinal()); // Not from web store. } delete this; } @@ -237,7 +237,7 @@ void UnpackedInstaller::OnLoaded( perms_updater.GrantActivePermissions(extension, false); service_weak_->OnExtensionInstalled(extension, false, // Not from web store. - StringOrdinal()); + syncer::StringOrdinal()); } } // namespace extensions diff --git a/chrome/browser/media_gallery/media_galleries_preferences_unittest.cc b/chrome/browser/media_gallery/media_galleries_preferences_unittest.cc index 9d3b856..333e529 100644 --- a/chrome/browser/media_gallery/media_galleries_preferences_unittest.cc +++ b/chrome/browser/media_gallery/media_galleries_preferences_unittest.cc @@ -22,6 +22,7 @@ #include "chrome/common/extensions/extension_manifest_constants.h" #include "chrome/test/base/testing_profile.h" #include "content/public/test/test_browser_thread.h" +#include "sync/api/string_ordinal.h" #include "testing/gtest/include/gtest/gtest.h" namespace chrome { @@ -220,7 +221,7 @@ class MediaGalleriesPreferencesTest : public testing::Test { extension_service_->extension_prefs()->OnExtensionInstalled( extension, extensions::Extension::ENABLED, false, - StringOrdinal::CreateInitialOrdinal()); + syncer::StringOrdinal::CreateInitialOrdinal()); return extension; } diff --git a/chrome/browser/sync/test/integration/apps_helper.cc b/chrome/browser/sync/test/integration/apps_helper.cc index a73c17d..faf0add 100644 --- a/chrome/browser/sync/test/integration/apps_helper.cc +++ b/chrome/browser/sync/test/integration/apps_helper.cc @@ -83,28 +83,29 @@ void InstallAppsPendingForSync(Profile* profile) { profile, extensions::Extension::TYPE_HOSTED_APP); } -StringOrdinal GetPageOrdinalForApp(Profile* profile, - int app_index) { +syncer::StringOrdinal GetPageOrdinalForApp(Profile* profile, + int app_index) { return SyncAppHelper::GetInstance()->GetPageOrdinalForApp( profile, CreateFakeAppName(app_index)); } void SetPageOrdinalForApp(Profile* profile, int app_index, - const StringOrdinal& page_ordinal) { + const syncer::StringOrdinal& page_ordinal) { SyncAppHelper::GetInstance()->SetPageOrdinalForApp( profile, CreateFakeAppName(app_index), page_ordinal); } -StringOrdinal GetAppLaunchOrdinalForApp(Profile* profile, - int app_index) { +syncer::StringOrdinal GetAppLaunchOrdinalForApp(Profile* profile, + int app_index) { return SyncAppHelper::GetInstance()->GetAppLaunchOrdinalForApp( profile, CreateFakeAppName(app_index)); } -void SetAppLaunchOrdinalForApp(Profile* profile, - int app_index, - const StringOrdinal& app_launch_ordinal) { +void SetAppLaunchOrdinalForApp( + Profile* profile, + int app_index, + const syncer::StringOrdinal& app_launch_ordinal) { SyncAppHelper::GetInstance()->SetAppLaunchOrdinalForApp( profile, CreateFakeAppName(app_index), app_launch_ordinal); } diff --git a/chrome/browser/sync/test/integration/apps_helper.h b/chrome/browser/sync/test/integration/apps_helper.h index c98f24b..bd6a968 100644 --- a/chrome/browser/sync/test/integration/apps_helper.h +++ b/chrome/browser/sync/test/integration/apps_helper.h @@ -8,7 +8,7 @@ #include "base/basictypes.h" #include "base/compiler_specific.h" #include "chrome/browser/sync/test/integration/sync_test.h" -#include "chrome/common/string_ordinal.h" +#include "sync/api/string_ordinal.h" class Profile; @@ -50,21 +50,24 @@ void IncognitoDisableApp(Profile* profile, int index); // Gets the page ordinal value for the application at the given index on // |profile|. -StringOrdinal GetPageOrdinalForApp(Profile* profile, int app_index); +syncer::StringOrdinal GetPageOrdinalForApp(Profile* profile, int app_index); // Sets a new |page_ordinal| value for the application at the given index // on |profile|. void SetPageOrdinalForApp( - Profile* profile, int app_index, const StringOrdinal& page_ordinal); + Profile* profile, int app_index, + const syncer::StringOrdinal& page_ordinal); // Gets the app launch ordinal value for the application at the given index on // |profile|. -StringOrdinal GetAppLaunchOrdinalForApp(Profile* profile, int app_index); +syncer::StringOrdinal GetAppLaunchOrdinalForApp( + Profile* profile, int app_index); // Sets a new |page_ordinal| value for the application at the given index // on |profile|. void SetAppLaunchOrdinalForApp( - Profile* profile, int app_index, const StringOrdinal& app_launch_ordinal); + Profile* profile, int app_index, + const syncer::StringOrdinal& app_launch_ordinal); // Copy the page and app launch ordinal value for the application at the given // index on |profile_source| to |profile_destination|. diff --git a/chrome/browser/sync/test/integration/sync_app_helper.cc b/chrome/browser/sync/test/integration/sync_app_helper.cc index 256c1ac..678ef8a 100644 --- a/chrome/browser/sync/test/integration/sync_app_helper.cc +++ b/chrome/browser/sync/test/integration/sync_app_helper.cc @@ -5,13 +5,12 @@ #include "chrome/browser/sync/test/integration/sync_app_helper.h" #include "chrome/browser/extensions/extension_service.h" -#include "chrome/browser/extensions/extension_system.h" #include "chrome/browser/extensions/extension_sorting.h" +#include "chrome/browser/extensions/extension_system.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/sync/test/integration/extensions_helper.h" #include "chrome/browser/sync/test/integration/sync_datatype_helper.h" #include "chrome/browser/sync/test/integration/sync_extension_helper.h" -#include "chrome/common/string_ordinal.h" namespace { @@ -21,8 +20,8 @@ struct AppState { bool IsValid() const; bool Equals(const AppState& other) const; - StringOrdinal app_launch_ordinal; - StringOrdinal page_ordinal; + syncer::StringOrdinal app_launch_ordinal; + syncer::StringOrdinal page_ordinal; }; typedef std::map AppStateMap; @@ -36,8 +35,8 @@ bool AppState::IsValid() const { } bool AppState::Equals(const AppState& other) const { - return app_launch_ordinal.Equal(other.app_launch_ordinal) && - page_ordinal.Equal(other.page_ordinal); + return app_launch_ordinal.Equals(other.app_launch_ordinal) && + page_ordinal.Equals(other.page_ordinal); } // Load all the app specific values for |id| into |app_state|. @@ -142,20 +141,22 @@ bool SyncAppHelper::AppStatesMatch(Profile* profile1, Profile* profile2) { return true; } -StringOrdinal SyncAppHelper::GetPageOrdinalForApp(Profile* profile, - const std::string& name) { +syncer::StringOrdinal SyncAppHelper::GetPageOrdinalForApp( + Profile* profile, + const std::string& name) { return profile->GetExtensionService()->extension_prefs()-> extension_sorting()->GetPageOrdinal(SyncExtensionHelper::NameToId(name)); } -void SyncAppHelper::SetPageOrdinalForApp(Profile* profile, - const std::string& name, - const StringOrdinal& page_ordinal) { +void SyncAppHelper::SetPageOrdinalForApp( + Profile* profile, + const std::string& name, + const syncer::StringOrdinal& page_ordinal) { profile->GetExtensionService()->extension_prefs()->extension_sorting()-> SetPageOrdinal(SyncExtensionHelper::NameToId(name), page_ordinal); } -StringOrdinal SyncAppHelper::GetAppLaunchOrdinalForApp( +syncer::StringOrdinal SyncAppHelper::GetAppLaunchOrdinalForApp( Profile* profile, const std::string& name) { return profile->GetExtensionService()->extension_prefs()-> @@ -166,7 +167,7 @@ StringOrdinal SyncAppHelper::GetAppLaunchOrdinalForApp( void SyncAppHelper::SetAppLaunchOrdinalForApp( Profile* profile, const std::string& name, - const StringOrdinal& app_launch_ordinal) { + const syncer::StringOrdinal& app_launch_ordinal) { profile->GetExtensionService()->extension_prefs()->extension_sorting()-> SetAppLaunchOrdinal(SyncExtensionHelper::NameToId(name), app_launch_ordinal); diff --git a/chrome/browser/sync/test/integration/sync_app_helper.h b/chrome/browser/sync/test/integration/sync_app_helper.h index e76bd89..05398a5 100644 --- a/chrome/browser/sync/test/integration/sync_app_helper.h +++ b/chrome/browser/sync/test/integration/sync_app_helper.h @@ -9,9 +9,9 @@ #include "base/basictypes.h" #include "base/memory/singleton.h" +#include "sync/api/string_ordinal.h" class Profile; -class StringOrdinal; class SyncTest; class SyncAppHelper { @@ -28,24 +28,26 @@ class SyncAppHelper { bool AppStatesMatch(Profile* profile1, Profile* profile2); // Gets the page ordinal value for the applications with |name| in |profile|. - StringOrdinal GetPageOrdinalForApp(Profile* profile, const std::string& name); + syncer::StringOrdinal GetPageOrdinalForApp(Profile* profile, + const std::string& name); // Sets a new |page_ordinal| value for the application with |name| in // |profile|. void SetPageOrdinalForApp(Profile* profile, const std::string& name, - const StringOrdinal& page_ordinal); + const syncer::StringOrdinal& page_ordinal); // Gets the app launch ordinal value for the application with |name| in // |profile|. - StringOrdinal GetAppLaunchOrdinalForApp(Profile* profile, - const std::string& name); + syncer::StringOrdinal GetAppLaunchOrdinalForApp(Profile* profile, + const std::string& name); // Sets a new |app_launch_ordinal| value for the application with |name| in // |profile|. - void SetAppLaunchOrdinalForApp(Profile* profile, - const std::string& name, - const StringOrdinal& app_launch_ordinal); + void SetAppLaunchOrdinalForApp( + Profile* profile, + const std::string& name, + const syncer::StringOrdinal& app_launch_ordinal); // Fix any NTP icon collisions that are currently in |profile|. void FixNTPOrdinalCollisions(Profile* profile); diff --git a/chrome/browser/sync/test/integration/sync_extension_helper.cc b/chrome/browser/sync/test/integration/sync_extension_helper.cc index b4c0f1d..0b05557 100644 --- a/chrome/browser/sync/test/integration/sync_extension_helper.cc +++ b/chrome/browser/sync/test/integration/sync_extension_helper.cc @@ -13,11 +13,11 @@ #include "chrome/browser/extensions/pending_extension_info.h" #include "chrome/browser/extensions/pending_extension_manager.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/sync/test/integration/sync_datatype_helper.h" +#include "chrome/browser/sync/test/integration/sync_test.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_manifest_constants.h" -#include "chrome/common/string_ordinal.h" -#include "chrome/browser/sync/test/integration/sync_test.h" -#include "chrome/browser/sync/test/integration/sync_datatype_helper.h" +#include "sync/api/string_ordinal.h" #include "testing/gtest/include/gtest/gtest.h" using extensions::Extension; @@ -71,7 +71,7 @@ std::string SyncExtensionHelper::InstallExtension( return ""; } profile->GetExtensionService()->OnExtensionInstalled( - extension, extension->UpdatesFromGallery(), StringOrdinal()); + extension, extension->UpdatesFromGallery(), syncer::StringOrdinal()); return extension->id(); } diff --git a/chrome/browser/sync/test/integration/two_client_apps_sync_test.cc b/chrome/browser/sync/test/integration/two_client_apps_sync_test.cc index d12cdd8..d20443b 100644 --- a/chrome/browser/sync/test/integration/two_client_apps_sync_test.cc +++ b/chrome/browser/sync/test/integration/two_client_apps_sync_test.cc @@ -11,6 +11,7 @@ #include "chrome/browser/sync/test/integration/sync_app_helper.h" #include "chrome/browser/sync/test/integration/sync_test.h" #include "chrome/common/extensions/extension_constants.h" +#include "sync/api/string_ordinal.h" using apps_helper::AllProfilesHaveSameAppsAsVerifier; using apps_helper::CopyNTPOrdinals; @@ -337,14 +338,15 @@ IN_PROC_BROWSER_TEST_F(TwoClientAppsSyncTest, UpdatePageOrdinal) { ASSERT_TRUE(SetupSync()); ASSERT_TRUE(AllProfilesHaveSameAppsAsVerifier()); - StringOrdinal initial_page = StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal initial_page = + syncer::StringOrdinal::CreateInitialOrdinal(); InstallApp(GetProfile(0), 0); InstallApp(GetProfile(1), 0); InstallApp(verifier(), 0); ASSERT_TRUE(AwaitQuiescence()); ASSERT_TRUE(AllProfilesHaveSameAppsAsVerifier()); - StringOrdinal second_page = initial_page.CreateAfter(); + syncer::StringOrdinal second_page = initial_page.CreateAfter(); SetPageOrdinalForApp(GetProfile(0), 0, second_page); SetPageOrdinalForApp(verifier(), 0, second_page); ASSERT_TRUE(AwaitQuiescence()); @@ -358,14 +360,15 @@ IN_PROC_BROWSER_TEST_F(TwoClientAppsSyncTest, UpdateAppLaunchOrdinal) { ASSERT_TRUE(SetupSync()); ASSERT_TRUE(AllProfilesHaveSameAppsAsVerifier()); - StringOrdinal initial_position = StringOrdinal::CreateInitialOrdinal(); + syncer::StringOrdinal initial_position = + syncer::StringOrdinal::CreateInitialOrdinal(); InstallApp(GetProfile(0), 0); InstallApp(GetProfile(1), 0); InstallApp(verifier(), 0); ASSERT_TRUE(AwaitQuiescence()); ASSERT_TRUE(AllProfilesHaveSameAppsAsVerifier()); - StringOrdinal second_position = initial_position.CreateAfter(); + syncer::StringOrdinal second_position = initial_position.CreateAfter(); SetAppLaunchOrdinalForApp(GetProfile(0), 0, second_position); SetAppLaunchOrdinalForApp(verifier(), 0, second_position); ASSERT_TRUE(AwaitQuiescence()); @@ -380,7 +383,8 @@ IN_PROC_BROWSER_TEST_F(TwoClientAppsSyncTest, UpdateCWSOrdinals) { ASSERT_TRUE(AllProfilesHaveSameAppsAsVerifier()); // Change the app launch ordinal. - StringOrdinal cws_app_launch_ordinal = GetProfile(0)->GetExtensionService()-> + syncer::StringOrdinal cws_app_launch_ordinal = + GetProfile(0)->GetExtensionService()-> extension_prefs()->extension_sorting()->GetAppLaunchOrdinal( extension_misc::kWebStoreAppId); GetProfile(0)->GetExtensionService()->extension_prefs()->extension_sorting()-> @@ -393,7 +397,8 @@ IN_PROC_BROWSER_TEST_F(TwoClientAppsSyncTest, UpdateCWSOrdinals) { ASSERT_TRUE(AllProfilesHaveSameAppsAsVerifier()); // Change the page ordinal. - StringOrdinal cws_page_ordinal = GetProfile(1)->GetExtensionService()-> + syncer::StringOrdinal cws_page_ordinal = + GetProfile(1)->GetExtensionService()-> extension_prefs()->extension_sorting()->GetPageOrdinal( extension_misc::kWebStoreAppId); GetProfile(1)->GetExtensionService()->extension_prefs()-> diff --git a/chrome/browser/ui/panels/base_panel_browser_test.cc b/chrome/browser/ui/panels/base_panel_browser_test.cc index d127f7b..ca20fc4 100644 --- a/chrome/browser/ui/panels/base_panel_browser_test.cc +++ b/chrome/browser/ui/panels/base_panel_browser_test.cc @@ -24,11 +24,11 @@ #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/extensions/extension_manifest_constants.h" -#include "chrome/common/string_ordinal.h" #include "chrome/test/base/ui_test_utils.h" #include "content/public/browser/notification_service.h" #include "content/public/common/url_constants.h" #include "content/public/test/web_contents_tester.h" +#include "sync/api/string_ordinal.h" #if defined(OS_LINUX) #include "chrome/browser/ui/browser_window.h" @@ -430,7 +430,7 @@ scoped_refptr BasePanelBrowserTest::CreateExtension( EXPECT_TRUE(extension.get()); EXPECT_STREQ("", error.c_str()); browser()->profile()->GetExtensionService()-> - OnExtensionInstalled(extension.get(), false, StringOrdinal()); + OnExtensionInstalled(extension.get(), false, syncer::StringOrdinal()); return extension; } diff --git a/chrome/browser/ui/panels/old_base_panel_browser_test.cc b/chrome/browser/ui/panels/old_base_panel_browser_test.cc index a2b6501b..90923648 100644 --- a/chrome/browser/ui/panels/old_base_panel_browser_test.cc +++ b/chrome/browser/ui/panels/old_base_panel_browser_test.cc @@ -27,11 +27,11 @@ #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/extensions/extension_manifest_constants.h" -#include "chrome/common/string_ordinal.h" #include "chrome/test/base/ui_test_utils.h" #include "content/public/browser/notification_service.h" #include "content/public/common/url_constants.h" #include "content/public/test/web_contents_tester.h" +#include "sync/api/string_ordinal.h" #if defined(OS_LINUX) #include "ui/base/x/x11_util.h" @@ -446,7 +446,7 @@ scoped_refptr OldBasePanelBrowserTest::CreateExtension( EXPECT_TRUE(extension.get()); EXPECT_STREQ("", error.c_str()); browser()->profile()->GetExtensionService()-> - OnExtensionInstalled(extension.get(), false, StringOrdinal()); + OnExtensionInstalled(extension.get(), false, syncer::StringOrdinal()); return extension; } diff --git a/chrome/browser/ui/webui/ntp/app_launcher_handler.cc b/chrome/browser/ui/webui/ntp/app_launcher_handler.cc index 75cda30..2089aa7 100644 --- a/chrome/browser/ui/webui/ntp/app_launcher_handler.cc +++ b/chrome/browser/ui/webui/ntp/app_launcher_handler.cc @@ -165,7 +165,7 @@ void AppLauncherHandler::CreateAppInfo( value->Set("notification", SerializeNotification(*notification)); ExtensionSorting* sorting = prefs->extension_sorting(); - StringOrdinal page_ordinal = sorting->GetPageOrdinal(extension->id()); + syncer::StringOrdinal page_ordinal = sorting->GetPageOrdinal(extension->id()); if (!page_ordinal.IsValid()) { // Make sure every app has a page ordinal (some predate the page ordinal). // The webstore app should be on the first page. @@ -177,7 +177,7 @@ void AppLauncherHandler::CreateAppInfo( value->SetInteger("page_index", sorting->PageStringOrdinalAsInteger(page_ordinal)); - StringOrdinal app_launch_ordinal = + syncer::StringOrdinal app_launch_ordinal = sorting->GetAppLaunchOrdinal(extension->id()); if (!app_launch_ordinal.IsValid()) { // Make sure every app has a launch ordinal (some predate the launch @@ -188,7 +188,7 @@ void AppLauncherHandler::CreateAppInfo( sorting->CreateNextAppLaunchOrdinal(page_ordinal); sorting->SetAppLaunchOrdinal(extension->id(), app_launch_ordinal); } - value->SetString("app_launch_ordinal", app_launch_ordinal.ToString()); + value->SetString("app_launch_ordinal", app_launch_ordinal.ToInternalValue()); } void AppLauncherHandler::RegisterMessages() { @@ -652,7 +652,7 @@ void AppLauncherHandler::HandleSetPageIndex(const ListValue* args) { double page_index; CHECK(args->GetString(0, &extension_id)); CHECK(args->GetDouble(1, &page_index)); - const StringOrdinal& page_ordinal = + const syncer::StringOrdinal& page_ordinal = extension_sorting->PageIntegerAsStringOrdinal( static_cast(page_index)); @@ -687,7 +687,7 @@ void AppLauncherHandler::HandleGenerateAppForLink(const ListValue* args) { CHECK(args->GetDouble(2, &page_index)); ExtensionSorting* extension_sorting = extension_service_->extension_prefs()->extension_sorting(); - const StringOrdinal& page_ordinal = + const syncer::StringOrdinal& page_ordinal = extension_sorting->PageIntegerAsStringOrdinal( static_cast(page_index)); diff --git a/chrome/browser/ui/webui/ntp/app_launcher_handler.h b/chrome/browser/ui/webui/ntp/app_launcher_handler.h index d06b48a..93fee067 100644 --- a/chrome/browser/ui/webui/ntp/app_launcher_handler.h +++ b/chrome/browser/ui/webui/ntp/app_launcher_handler.h @@ -15,10 +15,10 @@ #include "chrome/browser/favicon/favicon_service.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_constants.h" -#include "chrome/common/string_ordinal.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" #include "content/public/browser/web_ui_message_handler.h" +#include "sync/api/string_ordinal.h" class ExtensionService; class PrefChangeRegistrar; @@ -115,7 +115,7 @@ class AppLauncherHandler : public content::WebUIMessageHandler, bool is_bookmark_app; string16 title; GURL app_url; - StringOrdinal page_ordinal; + syncer::StringOrdinal page_ordinal; }; // Reset some instance flags we use to track the currently uninstalling app. -- cgit v1.1