Index: chrome/browser/webshare/share_service_impl.cc |
diff --git a/chrome/browser/webshare/share_service_impl.cc b/chrome/browser/webshare/share_service_impl.cc |
index 051bb65c364dad989fdb1038e1723e73991d76d0..40eaf625005159d8a4f13dff495f0ba9bf60e171 100644 |
--- a/chrome/browser/webshare/share_service_impl.cc |
+++ b/chrome/browser/webshare/share_service_impl.cc |
@@ -115,8 +115,8 @@ bool ShareServiceImpl::ReplacePlaceholders(base::StringPiece url_template, |
void ShareServiceImpl::ShowPickerDialog( |
const std::vector<base::string16>& targets, |
- const base::Callback<void(SharePickerResult)>& callback) { |
- // TODO(mgiuca): Get the browser window as |parent_window|. |
+ const base::Callback<void(base::Optional<base::string16>)>& callback) { |
+// TODO(mgiuca): Get the browser window as |parent_window|. |
#if defined(OS_LINUX) || defined(OS_WIN) |
chrome::ShowWebShareTargetPickerDialog(nullptr /* parent_window */, targets, |
callback); |
@@ -139,8 +139,8 @@ void ShareServiceImpl::Share(const std::string& title, |
const GURL& share_url, |
const ShareCallback& callback) { |
// TODO(constantina): Replace hard-coded name with the registered target list. |
- constexpr char kTargetName[] = "Web Share Target Test App"; |
- std::vector<base::string16> targets{base::ASCIIToUTF16(kTargetName)}; |
+ constexpr char kUrlBase[] = "https://wicg.github.io/web-share-target/demos/"; |
+ std::vector<base::string16> targets{base::ASCIIToUTF16(kUrlBase)}; |
ShowPickerDialog(targets, base::Bind(&ShareServiceImpl::OnPickerClosed, |
base::Unretained(this), title, text, |
@@ -151,16 +151,14 @@ void ShareServiceImpl::OnPickerClosed(const std::string& title, |
const std::string& text, |
const GURL& share_url, |
const ShareCallback& callback, |
- SharePickerResult result) { |
- if (result == SharePickerResult::CANCEL) { |
+ base::Optional<base::string16> result) { |
+ if (!result.has_value()) { |
callback.Run(base::Optional<std::string>("Share was cancelled")); |
sky
2017/01/31 05:22:32
Shouldn't this run the callback with no value and
Matt Giuca
2017/01/31 07:28:02
There are two different callbacks at play here wit
|
return; |
} |
- // TODO(constantina): replace hard-coded URL with one from user-chosen site. |
- constexpr char kUrlBase[] = "https://wicg.github.io/web-share-target/"; |
constexpr char kUrlTemplate[] = |
- "demos/sharetarget.html?title={title}&text={text}&url={url}"; |
+ "sharetarget.html?title={title}&text={text}&url={url}"; |
std::string url_template_filled; |
if (!ReplacePlaceholders(kUrlTemplate, title, text, share_url, |
@@ -170,7 +168,8 @@ void ShareServiceImpl::OnPickerClosed(const std::string& title, |
return; |
} |
- GURL target_url(kUrlBase + url_template_filled); |
+ std::string url_base = base::UTF16ToASCII(result.value()); |
+ GURL target_url(url_base + url_template_filled); |
if (!target_url.is_valid()) { |
callback.Run(base::Optional<std::string>( |
"Error: url of share target is not a valid url.")); |