summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/ui/intents/web_intent_picker_model.cc10
-rw-r--r--chrome/browser/ui/intents/web_intent_picker_model.h5
-rw-r--r--chrome/browser/ui/intents/web_intent_picker_model_unittest.cc10
3 files changed, 24 insertions, 1 deletions
diff --git a/chrome/browser/ui/intents/web_intent_picker_model.cc b/chrome/browser/ui/intents/web_intent_picker_model.cc
index 349b2f6..f2f6b88c 100644
--- a/chrome/browser/ui/intents/web_intent_picker_model.cc
+++ b/chrome/browser/ui/intents/web_intent_picker_model.cc
@@ -52,6 +52,16 @@ const WebIntentPickerModel::InstalledService&
return *installed_services_[index];
}
+const WebIntentPickerModel::InstalledService*
+ WebIntentPickerModel::GetInstalledServiceWithURL(const GURL& url) const {
+ for (size_t i = 0; i < installed_services_.size(); ++i) {
+ InstalledService* service = installed_services_[i];
+ if (service->url == url)
+ return service;
+ }
+ return NULL;
+}
+
size_t WebIntentPickerModel::GetInstalledServiceCount() const {
return installed_services_.size();
}
diff --git a/chrome/browser/ui/intents/web_intent_picker_model.h b/chrome/browser/ui/intents/web_intent_picker_model.h
index 148a682..57acb6d 100644
--- a/chrome/browser/ui/intents/web_intent_picker_model.h
+++ b/chrome/browser/ui/intents/web_intent_picker_model.h
@@ -96,9 +96,12 @@ class WebIntentPickerModel {
// observer.
void Clear();
- // Return the intent service installed service at |index|.
+ // Return the intent service installed at |index|.
const InstalledService& GetInstalledServiceAt(size_t index) const;
+ // Return the intent service that uses |url| as its service url, or NULL.
+ const InstalledService* GetInstalledServiceWithURL(const GURL& url) const;
+
// Return the number of intent services in the picker.
size_t GetInstalledServiceCount() const;
diff --git a/chrome/browser/ui/intents/web_intent_picker_model_unittest.cc b/chrome/browser/ui/intents/web_intent_picker_model_unittest.cc
index d738a94..e6afcf4 100644
--- a/chrome/browser/ui/intents/web_intent_picker_model_unittest.cc
+++ b/chrome/browser/ui/intents/web_intent_picker_model_unittest.cc
@@ -94,6 +94,16 @@ TEST_F(WebIntentPickerModelTest, Clear) {
EXPECT_EQ(0U, model_.GetInstalledServiceCount());
}
+TEST_F(WebIntentPickerModelTest, GetInstalledServiceWithURL) {
+ EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(2);
+
+ model_.AddInstalledService(kTitle1, kUrl1, kWindowDisposition);
+ model_.AddInstalledService(kTitle2, kUrl2, kWindowDisposition);
+
+ EXPECT_EQ(kTitle2, model_.GetInstalledServiceWithURL(kUrl2)->title);
+ EXPECT_EQ(NULL, model_.GetInstalledServiceWithURL(kUrl3));
+}
+
TEST_F(WebIntentPickerModelTest, UpdateFaviconAt) {
EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(2);
EXPECT_CALL(observer_, OnFaviconChanged(&model_, 1U)).Times(1);