From ecabe6eed156a36238888bfd2fdb96ec4906f0a4 Mon Sep 17 00:00:00 2001 From: "cira@chromium.org" Date: Wed, 7 Oct 2009 22:49:10 +0000 Subject: Loads local resources from current locale subtree if available, if not it falls back to extension subtree. We look for ext_root/foo/bar.js under ext_root/_locales/fr/foo/bar.js if current locale is fr. If there is no fr specific resource we load ext_root/foo/bar.js instead. Lots of small refactoring to replace FilePath with ExtensionResource. BUG=12131 TEST=See unittest for sample tree. Review URL: http://codereview.chromium.org/256022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28333 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/extensions/extension_protocols.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'chrome/browser/extensions/extension_protocols.cc') diff --git a/chrome/browser/extensions/extension_protocols.cc b/chrome/browser/extensions/extension_protocols.cc index 3ff9c51..3be8337 100644 --- a/chrome/browser/extensions/extension_protocols.cc +++ b/chrome/browser/extensions/extension_protocols.cc @@ -7,6 +7,7 @@ #include "base/string_util.h" #include "chrome/browser/net/chrome_url_request_context.h" #include "chrome/common/extensions/extension.h" +#include "chrome/common/extensions/extension_resource.h" #include "chrome/common/url_constants.h" #include "googleurl/src/url_util.h" #include "net/base/net_util.h" @@ -26,10 +27,10 @@ static URLRequestJob* CreateExtensionURLRequestJob(URLRequest* request, return NULL; } - std::string resource = request->url().path(); - FilePath path = Extension::GetResourcePath(directory_path, resource); + ExtensionResource resource = + Extension::GetResource(directory_path, request->url().path()); - return new URLRequestFileJob(request, path); + return new URLRequestFileJob(request, resource.GetFilePath()); } // Factory registered with URLRequest to create URLRequestJobs for @@ -41,10 +42,11 @@ static URLRequestJob* CreateUserScriptURLRequestJob(URLRequest* request, // chrome-user-script:/user-script-name.user.js FilePath directory_path = context->user_script_dir_path(); - std::string resource = request->url().path(); - FilePath path = Extension::GetResourcePath(directory_path, resource); - return new URLRequestFileJob(request, path); + ExtensionResource resource = + Extension::GetResource(directory_path, request->url().path()); + + return new URLRequestFileJob(request, resource.GetFilePath()); } void RegisterExtensionProtocols() { -- cgit v1.1