| Index: chrome/common/extensions/extension.cc
|
| ===================================================================
|
| --- chrome/common/extensions/extension.cc (revision 28272)
|
| +++ chrome/common/extensions/extension.cc (working copy)
|
| @@ -13,6 +13,7 @@
|
| #include "base/stl_util-inl.h"
|
| #include "base/third_party/nss/blapi.h"
|
| #include "base/third_party/nss/sha256.h"
|
| +#include "chrome/browser/extensions/extension_l10n_util.h"
|
| #include "chrome/common/chrome_constants.h"
|
| #include "chrome/common/extensions/extension_constants.h"
|
| #include "chrome/common/extensions/extension_error_reporter.h"
|
| @@ -21,7 +22,6 @@
|
| #include "chrome/common/notification_service.h"
|
| #include "chrome/common/url_constants.h"
|
| #include "net/base/base64.h"
|
| -#include "net/base/net_util.h"
|
|
|
| #if defined(OS_WIN)
|
| #include "base/registry.h"
|
| @@ -282,8 +282,8 @@
|
| }
|
| // TODO(georged): Make GetResourceURL accept wstring too
|
| GURL url = GetResourceURL(WideToUTF8(relative));
|
| - FilePath path = GetResourcePath(WideToUTF8(relative));
|
| - result->js_scripts().push_back(UserScript::File(path, url));
|
| + ExtensionResource resource = GetResource(WideToUTF8(relative));
|
| + result->js_scripts().push_back(UserScript::File(resource, url));
|
| }
|
| }
|
|
|
| @@ -299,8 +299,8 @@
|
| }
|
| // TODO(georged): Make GetResourceURL accept wstring too
|
| GURL url = GetResourceURL(WideToUTF8(relative));
|
| - FilePath path = GetResourcePath(WideToUTF8(relative));
|
| - result->css_scripts().push_back(UserScript::File(path, url));
|
| + ExtensionResource resource = GetResource(WideToUTF8(relative));
|
| + result->css_scripts().push_back(UserScript::File(resource, url));
|
| }
|
| }
|
|
|
| @@ -427,37 +427,11 @@
|
| }
|
|
|
| // static
|
| -FilePath Extension::GetResourcePath(const FilePath& extension_path,
|
| - const std::string& relative_path) {
|
| - // Build up a file:// URL and convert that back to a FilePath. This avoids
|
| - // URL encoding and path separator issues.
|
| -
|
| - // Convert the extension's root to a file:// URL.
|
| - GURL extension_url = net::FilePathToFileURL(extension_path);
|
| - if (!extension_url.is_valid())
|
| - return FilePath();
|
| -
|
| - // Append the requested path.
|
| - GURL::Replacements replacements;
|
| - std::string new_path(extension_url.path());
|
| - new_path += "/";
|
| - new_path += relative_path;
|
| - replacements.SetPathStr(new_path);
|
| - GURL file_url = extension_url.ReplaceComponents(replacements);
|
| - if (!file_url.is_valid())
|
| - return FilePath();
|
| -
|
| - // Convert the result back to a FilePath.
|
| - FilePath ret_val;
|
| - if (!net::FileURLToFilePath(file_url, &ret_val))
|
| - return FilePath();
|
| -
|
| - // Double-check that the path we ended up with is actually inside the
|
| - // extension root.
|
| - if (!extension_path.IsParent(ret_val))
|
| - return FilePath();
|
| -
|
| - return ret_val;
|
| +ExtensionResource Extension::GetResource(const FilePath& extension_path,
|
| + const std::string& relative_path) {
|
| + FilePath relative_resource_path;
|
| + return ExtensionResource(extension_path,
|
| + relative_resource_path.AppendASCII(relative_path));
|
| }
|
|
|
| Extension::Extension(const FilePath& path)
|
| @@ -1119,12 +1093,12 @@
|
| NotificationService::NoDetails());
|
| }
|
|
|
| -FilePath Extension::GetIconPath(Icons icon) {
|
| +ExtensionResource Extension::GetIconPath(Icons icon) {
|
| std::map<int, std::string>::const_iterator iter =
|
| icons_.find(Extension::EXTENSION_ICON_LARGE);
|
| if (iter == icons_.end())
|
| - return FilePath();
|
| - return GetResourcePath(iter->second);
|
| + return ExtensionResource();
|
| + return GetResource(iter->second);
|
| }
|
|
|
| bool Extension::CanAccessHost(const GURL& url) const {
|
|
|