[desktop-pwas] Implement HostedAppMenuModel commands.

This CL adds implementations for the 3 hosted app menu commands:
- Open Site Settings
- Copy URL
- Open in Chrome

Bug: 762401
Change-Id: Ia9ac52999dfcb2ab1ad2408862843e417bb988fd
Reviewed-on: https://chromium-review.googlesource.com/746047
Reviewed-by: Trent Apted <[email protected]>
Commit-Queue: calamity <[email protected]>
Cr-Commit-Position: refs/heads/master@{#516220}
diff --git a/chrome/browser/ui/page_info/page_info.cc b/chrome/browser/ui/page_info/page_info.cc
index 85b4024..2872b39 100644
--- a/chrome/browser/ui/page_info/page_info.cc
+++ b/chrome/browser/ui/page_info/page_info.cc
@@ -78,6 +78,8 @@
 #endif
 
 #if !defined(OS_ANDROID)
+#include "chrome/browser/ui/browser_finder.h"
+#include "chrome/browser/ui/chrome_pages.h"
 #include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h"
 #include "chrome/browser/ui/page_info/page_info_infobar_delegate.h"
 #endif
@@ -492,32 +494,13 @@
 }
 
 void PageInfo::OpenSiteSettingsView() {
-  // By default, this opens the general Content Settings pane. If the
-  // |kSiteSettings| and/or |kSiteDetails| flags are enabled this opens a
-  // settings page specific to the current origin of the page. crbug.com/655876
-  url::Origin site_origin = url::Origin::Create(site_url());
-  std::string link_destination(chrome::kChromeUIContentSettingsURL);
-  // TODO(https://crbug.com/444047): Site Details should work with file:// urls
-  // when this bug is fixed, so add it to the whitelist when that happens.
-  if ((base::CommandLine::ForCurrentProcess()->HasSwitch(
-           switches::kEnableSiteSettings) ||
-       base::FeatureList::IsEnabled(features::kSiteDetails)) &&
-      !site_origin.unique() &&
-      (site_url().SchemeIsHTTPOrHTTPS() ||
-       site_url().SchemeIs(content_settings::kExtensionScheme))) {
-    std::string origin_string = site_origin.Serialize();
-    url::RawCanonOutputT<char> percent_encoded_origin;
-    url::EncodeURIComponent(origin_string.c_str(), origin_string.length(),
-                            &percent_encoded_origin);
-    link_destination = chrome::kChromeUISiteDetailsPrefixURL +
-                       std::string(percent_encoded_origin.data(),
-                                   percent_encoded_origin.length());
-  }
-  web_contents()->OpenURL(
-      content::OpenURLParams(GURL(link_destination), content::Referrer(),
-                             WindowOpenDisposition::NEW_FOREGROUND_TAB,
-                             ui::PAGE_TRANSITION_LINK, false));
+#if defined(OS_ANDROID)
+  NOTREACHED();
+#else
+  chrome::ShowSiteSettings(chrome::FindBrowserWithWebContents(web_contents()),
+                           site_url());
   RecordPageInfoAction(PageInfo::PAGE_INFO_SITE_SETTINGS_OPENED);
+#endif
 }
 
 void PageInfo::OnChangePasswordButtonPressed(