Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(529)

Side by Side Diff: chrome/browser/ui/intents/web_intent_picker_model.cc

Issue 9649020: [Web Intents] WebIntentPickerModel uses URL instead of index to reference registered services. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: mac fix Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/intents/web_intent_picker_model.h" 5 #include "chrome/browser/ui/intents/web_intent_picker_model.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "chrome/browser/ui/intents/web_intent_picker_model_observer.h" 9 #include "chrome/browser/ui/intents/web_intent_picker_model_observer.h"
10 #include "grit/ui_resources.h" 10 #include "grit/ui_resources.h"
11 #include "ui/base/resource/resource_bundle.h" 11 #include "ui/base/resource/resource_bundle.h"
12 #include "ui/gfx/image/image.h" 12 #include "ui/gfx/image/image.h"
13 13
14 WebIntentPickerModel::WebIntentPickerModel() 14 WebIntentPickerModel::WebIntentPickerModel()
15 : observer_(NULL), 15 : observer_(NULL) {
16 inline_disposition_index_(std::string::npos) {
17 } 16 }
18 17
19 WebIntentPickerModel::~WebIntentPickerModel() { 18 WebIntentPickerModel::~WebIntentPickerModel() {
20 DestroyAll(); 19 DestroyAll();
21 } 20 }
22 21
23 void WebIntentPickerModel::AddInstalledService(const string16& title, 22 void WebIntentPickerModel::AddInstalledService(const string16& title,
24 const GURL& url, 23 const GURL& url,
25 Disposition disposition) { 24 Disposition disposition) {
26 installed_services_.push_back(new InstalledService(title, url, disposition)); 25 installed_services_.push_back(new InstalledService(title, url, disposition));
27 if (observer_) 26 if (observer_)
28 observer_->OnModelChanged(this); 27 observer_->OnModelChanged(this);
29 } 28 }
30 29
31 void WebIntentPickerModel::RemoveInstalledServiceAt(size_t index) { 30 void WebIntentPickerModel::RemoveInstalledServiceAt(size_t index) {
32 DCHECK(index < installed_services_.size()); 31 DCHECK(index < installed_services_.size());
33 std::vector<InstalledService*>::iterator iter = 32 std::vector<InstalledService*>::iterator iter =
34 installed_services_.begin() + index; 33 installed_services_.begin() + index;
35 delete *iter; 34 delete *iter;
36 installed_services_.erase(iter); 35 installed_services_.erase(iter);
37 if (observer_) 36 if (observer_)
38 observer_->OnModelChanged(this); 37 observer_->OnModelChanged(this);
39 } 38 }
40 39
41 void WebIntentPickerModel::Clear() { 40 void WebIntentPickerModel::Clear() {
42 DestroyAll(); 41 DestroyAll();
43 inline_disposition_index_ = std::string::npos; 42 inline_disposition_url_ = GURL::EmptyGURL();
44 if (observer_) 43 if (observer_)
45 observer_->OnModelChanged(this); 44 observer_->OnModelChanged(this);
46 } 45 }
47 46
48 const WebIntentPickerModel::InstalledService& 47 const WebIntentPickerModel::InstalledService&
49 WebIntentPickerModel::GetInstalledServiceAt(size_t index) const { 48 WebIntentPickerModel::GetInstalledServiceAt(size_t index) const {
50 DCHECK(index < installed_services_.size()); 49 DCHECK(index < installed_services_.size());
51 return *installed_services_[index]; 50 return *installed_services_[index];
52 } 51 }
53 52
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 if (extension->id == id) { 99 if (extension->id == id) {
101 extension->icon = image; 100 extension->icon = image;
102 101
103 if (observer_) 102 if (observer_)
104 observer_->OnExtensionIconChanged(this, extension->id); 103 observer_->OnExtensionIconChanged(this, extension->id);
105 break; 104 break;
106 } 105 }
107 } 106 }
108 } 107 }
109 108
110 void WebIntentPickerModel::SetInlineDisposition(size_t index) { 109 void WebIntentPickerModel::SetInlineDisposition(const GURL& url) {
111 DCHECK(index < installed_services_.size()); 110 inline_disposition_url_ = url;
112 inline_disposition_index_ = index;
113 if (observer_) 111 if (observer_)
114 observer_->OnInlineDisposition(this); 112 observer_->OnInlineDisposition(this, url);
115 } 113 }
116 114
117 bool WebIntentPickerModel::IsInlineDisposition() const { 115 bool WebIntentPickerModel::IsInlineDisposition() const {
118 return inline_disposition_index_ != std::string::npos; 116 return !inline_disposition_url_.is_empty();
119 } 117 }
120 118
121 void WebIntentPickerModel::DestroyAll() { 119 void WebIntentPickerModel::DestroyAll() {
122 STLDeleteElements(&installed_services_); 120 STLDeleteElements(&installed_services_);
123 STLDeleteElements(&suggested_extensions_); 121 STLDeleteElements(&suggested_extensions_);
124 } 122 }
125 123
126 WebIntentPickerModel::InstalledService::InstalledService( 124 WebIntentPickerModel::InstalledService::InstalledService(
127 const string16& title, 125 const string16& title,
128 const GURL& url, 126 const GURL& url,
(...skipping 14 matching lines...) Expand all
143 double average_rating) 141 double average_rating)
144 : title(title), 142 : title(title),
145 id(id), 143 id(id),
146 average_rating(average_rating), 144 average_rating(average_rating),
147 icon(ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed( 145 icon(ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(
148 IDR_DEFAULT_FAVICON)) { 146 IDR_DEFAULT_FAVICON)) {
149 } 147 }
150 148
151 WebIntentPickerModel::SuggestedExtension::~SuggestedExtension() { 149 WebIntentPickerModel::SuggestedExtension::~SuggestedExtension() {
152 } 150 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/intents/web_intent_picker_model.h ('k') | chrome/browser/ui/intents/web_intent_picker_model_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698