Certificate Manager: Remove use of iron-pages

iron-pages is a Polymer library element so uses are being removed, see
docs:
https://chromium.googlesource.com/chromium/src/+/main/styleguide/web/web.md#Polymer

Bug: 40943652
Change-Id: I8065cf76d39b59ea9b51b9e1ff7e08956b26820c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5747322
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: Matt Mueller <mattm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1335188}
diff --git a/chrome/test/data/webui/cr_components/certificate_manager/certificate_manager_v2_test.ts b/chrome/test/data/webui/cr_components/certificate_manager/certificate_manager_v2_test.ts
index 5f58f69d..555a996 100644
--- a/chrome/test/data/webui/cr_components/certificate_manager/certificate_manager_v2_test.ts
+++ b/chrome/test/data/webui/cr_components/certificate_manager/certificate_manager_v2_test.ts
@@ -280,8 +280,7 @@
     const linkRow = customSection!.querySelector('cr-link-row');
     linkRow!.click();
     await microtasksFinished();
-    assertTrue(
-        certManager.$.adminCertsSection.classList.contains('iron-selected'));
+    assertTrue(certManager.$.adminCertsSection.classList.contains('selected'));
   });
 
   test('navigate back from admin certs', async () => {
@@ -301,25 +300,22 @@
     const linkRow = customSection!.querySelector('cr-link-row');
     linkRow!.click();
     await microtasksFinished();
-    assertTrue(
-        certManager.$.adminCertsSection.classList.contains('iron-selected'));
+    assertTrue(certManager.$.adminCertsSection.classList.contains('selected'));
     certManager.$.adminCertsSection.$.backButton.click();
     await microtasksFinished();
-    assertFalse(
-        certManager.$.adminCertsSection.classList.contains('iron-selected'));
-    assertTrue(
-        certManager.$.localCertSection.classList.contains('iron-selected'));
+    assertFalse(certManager.$.adminCertsSection.classList.contains('selected'));
+    assertTrue(certManager.$.localCertSection.classList.contains('selected'));
   });
 
   test('show platform certs', async () => {
     initializeElement();
     await microtasksFinished();
     assertFalse(
-        certManager.$.platformCertsSection.classList.contains('iron-selected'));
+        certManager.$.platformCertsSection.classList.contains('selected'));
     certManager.$.viewOsImportedCerts.click();
     await microtasksFinished();
     assertTrue(
-        certManager.$.platformCertsSection.classList.contains('iron-selected'));
+        certManager.$.platformCertsSection.classList.contains('selected'));
   });
 
   test('navigate back from platform certs', async () => {
@@ -328,13 +324,12 @@
     certManager.$.viewOsImportedCerts.click();
     await microtasksFinished();
     assertTrue(
-        certManager.$.platformCertsSection.classList.contains('iron-selected'));
+        certManager.$.platformCertsSection.classList.contains('selected'));
     certManager.$.platformCertsSection.$.backButton.click();
     await microtasksFinished();
     assertFalse(
-        certManager.$.platformCertsSection.classList.contains('iron-selected'));
-    assertTrue(
-        certManager.$.localCertSection.classList.contains('iron-selected'));
+        certManager.$.platformCertsSection.classList.contains('selected'));
+    assertTrue(certManager.$.localCertSection.classList.contains('selected'));
   });
 
   test('show platform client certs then navigate back', async () => {
@@ -342,28 +337,25 @@
     // Go to client section.
     certManager.$.clientMenuItem.click();
     await microtasksFinished();
-    assertTrue(
-        certManager.$.clientCertSection.classList.contains('iron-selected'));
+    assertTrue(certManager.$.clientCertSection.classList.contains('selected'));
     assertFalse(certManager.$.platformClientCertsSection.classList.contains(
-        'iron-selected'));
+        'selected'));
 
     // Click into client platform certs section.
     certManager.$.viewOsImportedClientCerts.click();
     await microtasksFinished();
     assertTrue(
-        certManager.$.platformClientCertsSection.classList.contains(
-            'iron-selected'),
+        certManager.$.platformClientCertsSection.classList.contains('selected'),
         'not visible after click');
 
     // Go back to client certs.
     certManager.$.platformClientCertsSection.$.backButton.click();
     await microtasksFinished();
     assertFalse(
-        certManager.$.platformClientCertsSection.classList.contains(
-            'iron-selected'),
+        certManager.$.platformClientCertsSection.classList.contains('selected'),
         'visible after click');
     assertTrue(
-        certManager.$.clientCertSection.classList.contains('iron-selected'),
+        certManager.$.clientCertSection.classList.contains('selected'),
         'main pane not visible');
   });
 
@@ -371,24 +363,21 @@
     initializeElement();
     certManager.$.localMenuItem.click();
     await microtasksFinished();
-    assertTrue(
-        certManager.$.localCertSection.classList.contains('iron-selected'));
+    assertTrue(certManager.$.localCertSection.classList.contains('selected'));
   });
 
   test('click client certs section', async () => {
     initializeElement();
     certManager.$.clientMenuItem.click();
     await microtasksFinished();
-    assertTrue(
-        certManager.$.clientCertSection.classList.contains('iron-selected'));
+    assertTrue(certManager.$.clientCertSection.classList.contains('selected'));
   });
 
   test('click crs certs section', async () => {
     initializeElement();
     certManager.$.crsMenuItem.click();
     await microtasksFinished();
-    assertTrue(
-        certManager.$.crsCertSection.classList.contains('iron-selected'));
+    assertTrue(certManager.$.crsCertSection.classList.contains('selected'));
   });
 
   // Tests opening the password dialog through the mojo interface and
diff --git a/ui/webui/resources/cr_components/certificate_manager/certificate_manager.html b/ui/webui/resources/cr_components/certificate_manager/certificate_manager.html
index a1bca9aa..6a2414d 100644
--- a/ui/webui/resources/cr_components/certificate_manager/certificate_manager.html
+++ b/ui/webui/resources/cr_components/certificate_manager/certificate_manager.html
@@ -30,7 +30,7 @@
     </template>
 
     <cr-tabs selected="{{selected}}" tab-names="[[tabNames_]]"></cr-tabs>
-    <iron-pages selected="[[selected]]">
+    <cr-page-selector selected="[[selected]]">
       <div>
         <certificate-list id="personalCerts"
             certificates="[[personalCerts]]"
@@ -68,4 +68,4 @@
           </certificate-list>
         </template>
       </div>
-    </iron-pages>
+    </cr-page-selector>
diff --git a/ui/webui/resources/cr_components/certificate_manager/certificate_manager.ts b/ui/webui/resources/cr_components/certificate_manager/certificate_manager.ts
index c0e0a5a..6a8c591 100644
--- a/ui/webui/resources/cr_components/certificate_manager/certificate_manager.ts
+++ b/ui/webui/resources/cr_components/certificate_manager/certificate_manager.ts
@@ -7,7 +7,7 @@
  */
 import '//resources/cr_elements/cr_tabs/cr_tabs.js';
 import '//resources/cr_elements/cr_hidden_style.css.js';
-import '//resources/polymer/v3_0/iron-pages/iron-pages.js';
+import '//resources/cr_elements/cr_page_selector/cr_page_selector.js';
 import './ca_trust_edit_dialog.js';
 import './certificate_delete_confirmation_dialog.js';
 import './certificate_list.js';
diff --git a/ui/webui/resources/cr_components/certificate_manager/certificate_manager_v2.html b/ui/webui/resources/cr_components/certificate_manager/certificate_manager_v2.html
index cbdd704..8fc89e0 100644
--- a/ui/webui/resources/cr_components/certificate_manager/certificate_manager_v2.html
+++ b/ui/webui/resources/cr_components/certificate_manager/certificate_manager_v2.html
@@ -100,9 +100,7 @@
     </cr-menu-selector>
   </div>
 
-  <!-- TODO(crbug.com/40928765): migrate off of iron-pages. See:
-    https://chromium.googlesource.com/chromium/src/+/HEAD/docs/webui_using_lit.md#polymer-iron_paper-elements-alternatives -->
-  <iron-pages id="main" attr-for-selected="path" fallback-selection="localcerts"
+  <cr-page-selector id="main" attr-for-selected="path"
       selected="[[selectedPage_]]">
 
     <div id="clientCertSection" class="cr-centered-card-container" path="clientcerts">
@@ -241,7 +239,7 @@
         subpage-title="[[i18n('certificateManagerV2ClientCertsFromPlatform')]]"
         subpage-cert-lists="[[clientPlatformSubpageLists_]]">
     </certificate-subpage-v2>
-  </iron-pages>
+  </cr-page-selector>
 </div>
 
 <cr-toast id="toast" duration="5000">
diff --git a/ui/webui/resources/cr_components/certificate_manager/certificate_manager_v2.ts b/ui/webui/resources/cr_components/certificate_manager/certificate_manager_v2.ts
index 03295950..3b011ae 100644
--- a/ui/webui/resources/cr_components/certificate_manager/certificate_manager_v2.ts
+++ b/ui/webui/resources/cr_components/certificate_manager/certificate_manager_v2.ts
@@ -23,7 +23,7 @@
 import '//resources/cr_elements/cr_shared_vars.css.js';
 import '//resources/cr_elements/cr_toggle/cr_toggle.js';
 import '//resources/cr_elements/icons_lit.html.js';
-import '//resources/polymer/v3_0/iron-pages/iron-pages.js';
+import '//resources/cr_elements/cr_page_selector/cr_page_selector.js';
 import '//resources/cr_elements/cr_menu_selector/cr_menu_selector.js';
 import '//resources/cr_elements/cr_nav_menu_item_style.css.js';
 import '//resources/cr_elements/cr_page_host_style.css.js';