| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
| Commit-Queue | +1 | 
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
| Commit-Queue | +1 | 
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
| Commit-Queue | +1 | 
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
| Commit-Queue | +1 | 
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
| Commit-Queue | +1 | 
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
| Commit-Queue | +1 | 
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
| Commit-Queue | +1 | 
                        .with(AppMenuItemProperties.TITLE_CONDENSED, getContentDescription(id))Masa FujitaThis method checks if the id is `preferences_id` so this is effectively always null.
It seems that I was misunderstanding what TITLE_CONDENSED was doing, but it seems like we actually don't need this for menu items. I removed it.
                        R.id.extensions_menu_id,Masa Fujita`buildManageExtensionsItem` uses the same menu ID as `buildExtensionsItem`. Can you please add an assert (checking ChromeFeatureList.SUBMENUS_IN_APP_MENU) to make sure they are not misused?
Done
            SubmenuHeaderFactory submenuHeaderFactory) {Masa Fujitanit: @param javadoc
Done
            SubmenuHeaderFactory submenuHeaderFactory) {Masa Fujitanit: @param javadoc
Done
            SubmenuHeaderFactory submenuHeaderFactory) {Masa Fujitanit: @param javadoc
Done
        mHierarchicalMenuController =Masa Fujitanit: Let's check the feature flag here before create the controller.
Done
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
                        .createNewTab(params, TabLaunchType.FROM_CHROME_UI, null);nit: add comment containing the parameter name so we know what parameter is being set to null
                        shouldShowIconBeforeItem() ? R.drawable.ic_extension_24dp : 0,Maybe use Resources.ID_NULL instead of 0? (here and elsewhere)
    private void assertSubMenuItemsAreEqual(nit: `assertHasSubMenuItemIds` might be a more descriptive name?
                ENABLED,why is TITLE_CONDENSED being deleted?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
| Commit-Queue | +1 | 
                        .createNewTab(params, TabLaunchType.FROM_CHROME_UI, null);nit: add comment containing the parameter name so we know what parameter is being set to null
Done
                        shouldShowIconBeforeItem() ? R.drawable.ic_extension_24dp : 0,Maybe use Resources.ID_NULL instead of 0? (here and elsewhere)
Done
nit: `assertHasSubMenuItemIds` might be a more descriptive name?
agreed, thanks!
                ENABLED,why is TITLE_CONDENSED being deleted?
It seems that TITLE_CONDENSED was meant for the icons in the icon row, so I think it was a mistake to have added it. But I'm not too confident - let me know if you know more (+ @wen...@chromium.org)
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
| Code-Review | +1 | 
Looks good in general.
Please get Jenna's +1 before submit
            if (currentTab == null) {nitty nit: Maybe also confirm with UX if it make sense to show the extension store item when the tab is null (e.g. in tab switcher)
                ENABLED,Masa Fujitawhy is TITLE_CONDENSED being deleted?
It seems that TITLE_CONDENSED was meant for the icons in the icon row, so I think it was a mistake to have added it. But I'm not too confident - let me know if you know more (+ @wen...@chromium.org)
It seems that TITLE_CONDENSED was meant for the icons in the icon row
I don't have too much context here, but according to the code in `buildModelForIcon`, it seems to be the case (provide content description for buttons without text).
Tf it's not being used, Im fine with removing. We can add that back later if we decided to.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
            if (currentTab == null) {nitty nit: Maybe also confirm with UX if it make sense to show the extension store item when the tab is null (e.g. in tab switcher)
We only show the extensions item in `MenuGroup.PAGE_MENU` (which excludes things like the tab switcher), so it should be rare for `currentTab` to be null.
                ENABLED,Masa Fujitawhy is TITLE_CONDENSED being deleted?
Wenyu FuIt seems that TITLE_CONDENSED was meant for the icons in the icon row, so I think it was a mistake to have added it. But I'm not too confident - let me know if you know more (+ @wen...@chromium.org)
It seems that TITLE_CONDENSED was meant for the icons in the icon row
I don't have too much context here, but according to the code in `buildModelForIcon`, it seems to be the case (provide content description for buttons without text).
Tf it's not being used, Im fine with removing. We can add that back later if we decided to.
sg, thanks! Done
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | 
| Code-Review | +1 | 
Looks good! Thank you for doing this work. Sorry for the delay!
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |