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

Side by Side Diff: chrome/browser/extensions/extension_web_ui.cc

Issue 8827013: Move/replace/rename URL-based extension getters from ExtensionService to/in ExtensionSet. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: id Created 9 years 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/extensions/extension_web_ui.h" 5 #include "chrome/browser/extensions/extension_web_ui.h"
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 ExtensionWebUIImageLoadingTracker(Profile* profile, 60 ExtensionWebUIImageLoadingTracker(Profile* profile,
61 FaviconService::GetFaviconRequest* request, 61 FaviconService::GetFaviconRequest* request,
62 const GURL& page_url) 62 const GURL& page_url)
63 : ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)), 63 : ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)),
64 request_(request), 64 request_(request),
65 extension_(NULL) { 65 extension_(NULL) {
66 // Even when the extensions service is enabled by default, it's still 66 // Even when the extensions service is enabled by default, it's still
67 // disabled in incognito mode. 67 // disabled in incognito mode.
68 ExtensionService* service = profile->GetExtensionService(); 68 ExtensionService* service = profile->GetExtensionService();
69 if (service) 69 if (service)
70 extension_ = service->GetExtensionByURL(page_url); 70 extension_ = service->extensions()->GetByID(page_url.host());
71 } 71 }
72 72
73 void Init() { 73 void Init() {
74 if (extension_) { 74 if (extension_) {
75 ExtensionResource icon_resource = 75 ExtensionResource icon_resource =
76 extension_->GetIconResource(Extension::EXTENSION_ICON_BITTY, 76 extension_->GetIconResource(Extension::EXTENSION_ICON_BITTY,
77 ExtensionIconSet::MATCH_EXACTLY); 77 ExtensionIconSet::MATCH_EXACTLY);
78 78
79 tracker_.LoadImage(extension_, icon_resource, 79 tracker_.LoadImage(extension_, icon_resource,
80 gfx::Size(gfx::kFaviconSize, gfx::kFaviconSize), 80 gfx::Size(gfx::kFaviconSize, gfx::kFaviconSize),
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 123
124 const char ExtensionWebUI::kExtensionURLOverrides[] = 124 const char ExtensionWebUI::kExtensionURLOverrides[] =
125 "extensions.chrome_url_overrides"; 125 "extensions.chrome_url_overrides";
126 126
127 ExtensionWebUI::ExtensionWebUI(TabContents* tab_contents, const GURL& url) 127 ExtensionWebUI::ExtensionWebUI(TabContents* tab_contents, const GURL& url)
128 : ChromeWebUI(tab_contents), 128 : ChromeWebUI(tab_contents),
129 url_(url) { 129 url_(url) {
130 Profile* profile = 130 Profile* profile =
131 Profile::FromBrowserContext(tab_contents->browser_context()); 131 Profile::FromBrowserContext(tab_contents->browser_context());
132 ExtensionService* service = profile->GetExtensionService(); 132 ExtensionService* service = profile->GetExtensionService();
133 const Extension* extension = service->GetExtensionByURL(url); 133 const Extension* extension =
134 if (!extension) 134 service->extensions()->GetExtensionOrAppByURL(ExtensionURLInfo(url));
135 extension = service->GetExtensionByWebExtent(url);
136 DCHECK(extension); 135 DCHECK(extension);
137 // Only hide the url for internal pages (e.g. chrome-extension or packaged 136 // Only hide the url for internal pages (e.g. chrome-extension or packaged
138 // component apps like bookmark manager. 137 // component apps like bookmark manager.
139 should_hide_url_ = !extension->is_hosted_app(); 138 should_hide_url_ = !extension->is_hosted_app();
140 139
141 // The base class defaults to enabling web ui bindings, but we don't need 140 // The base class defaults to enabling web ui bindings, but we don't need
142 // those. 141 // those.
143 bindings_ = 0; 142 bindings_ = 0;
144 143
145 // Bind externalHost to Extension WebUI loaded in Chrome Frame. 144 // Bind externalHost to Extension WebUI loaded in Chrome Frame.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 if (!url->ref().empty()) 216 if (!url->ref().empty())
218 override += "#" + url->ref(); 217 override += "#" + url->ref();
219 GURL extension_url(override); 218 GURL extension_url(override);
220 if (!extension_url.is_valid()) { 219 if (!extension_url.is_valid()) {
221 NOTREACHED(); 220 NOTREACHED();
222 UnregisterChromeURLOverride(page, profile, val); 221 UnregisterChromeURLOverride(page, profile, val);
223 continue; 222 continue;
224 } 223 }
225 224
226 // Verify that the extension that's being referred to actually exists. 225 // Verify that the extension that's being referred to actually exists.
227 const Extension* extension = service->GetExtensionByURL(extension_url); 226 const Extension* extension =
227 service->extensions()->GetByID(extension_url.host());
228 if (!extension) { 228 if (!extension) {
229 // This can currently happen if you use --load-extension one run, and 229 // This can currently happen if you use --load-extension one run, and
230 // then don't use it the next. It could also happen if an extension 230 // then don't use it the next. It could also happen if an extension
231 // were deleted directly from the filesystem, etc. 231 // were deleted directly from the filesystem, etc.
232 LOG(WARNING) << "chrome URL override present for non-existant extension"; 232 LOG(WARNING) << "chrome URL override present for non-existant extension";
233 UnregisterChromeURLOverride(page, profile, val); 233 UnregisterChromeURLOverride(page, profile, val);
234 continue; 234 continue;
235 } 235 }
236 236
237 // We can't handle chrome-extension URLs in incognito mode unless the 237 // We can't handle chrome-extension URLs in incognito mode unless the
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 } 401 }
402 402
403 // static 403 // static
404 void ExtensionWebUI::GetFaviconForURL(Profile* profile, 404 void ExtensionWebUI::GetFaviconForURL(Profile* profile,
405 FaviconService::GetFaviconRequest* request, const GURL& page_url) { 405 FaviconService::GetFaviconRequest* request, const GURL& page_url) {
406 // tracker deletes itself when done. 406 // tracker deletes itself when done.
407 ExtensionWebUIImageLoadingTracker* tracker = 407 ExtensionWebUIImageLoadingTracker* tracker =
408 new ExtensionWebUIImageLoadingTracker(profile, request, page_url); 408 new ExtensionWebUIImageLoadingTracker(profile, request, page_url);
409 tracker->Init(); 409 tracker->Init();
410 } 410 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service.cc ('k') | chrome/browser/extensions/extension_webstore_private_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698