Index: chrome/browser/guestview/webview/webview_guest.cc |
diff --git a/chrome/browser/guestview/webview/webview_guest.cc b/chrome/browser/guestview/webview/webview_guest.cc |
index d5c66fb66b6028d2bb77833c9d2f90d358626d4a..5e67ebbe7877586270265e5fce7a90f85ed02d02 100644 |
--- a/chrome/browser/guestview/webview/webview_guest.cc |
+++ b/chrome/browser/guestview/webview/webview_guest.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/guestview/webview/webview_guest.h" |
#include "base/command_line.h" |
+#include "base/strings/stringprintf.h" |
#include "chrome/browser/extensions/api/web_request/web_request_api.h" |
#include "chrome/browser/extensions/extension_renderer_state.h" |
#include "chrome/browser/extensions/extension_web_contents_observer.h" |
@@ -27,6 +28,7 @@ |
#include "content/public/browser/web_contents.h" |
#include "content/public/common/content_switches.h" |
#include "content/public/common/result_codes.h" |
+#include "extensions/common/constants.h" |
#include "net/base/net_errors.h" |
#if defined(ENABLE_PLUGINS) |
@@ -107,8 +109,9 @@ void AttachWebViewHelpers(WebContents* contents) { |
} // namespace |
-WebViewGuest::WebViewGuest(WebContents* guest_web_contents) |
- : GuestView(guest_web_contents), |
+WebViewGuest::WebViewGuest(WebContents* guest_web_contents, |
+ const std::string& extension_id) |
+ : GuestView(guest_web_contents, extension_id), |
WebContentsObserver(guest_web_contents), |
script_executor_(new extensions::ScriptExecutor(guest_web_contents, |
&script_observers_)), |
@@ -141,7 +144,6 @@ WebViewGuest* WebViewGuest::FromWebContents(WebContents* contents) { |
} |
void WebViewGuest::Attach(WebContents* embedder_web_contents, |
- const std::string& extension_id, |
const base::DictionaryValue& args) { |
std::string user_agent_override; |
if (args.GetString(webview::kParameterUserAgentOverride, |
@@ -151,8 +153,7 @@ void WebViewGuest::Attach(WebContents* embedder_web_contents, |
SetUserAgentOverride(""); |
} |
- GuestView::Attach( |
- embedder_web_contents, extension_id, args); |
+ GuestView::Attach(embedder_web_contents, args); |
AddWebViewToExtensionRendererState(); |
} |
@@ -552,6 +553,17 @@ void WebViewGuest::RemoveWebViewFromExtensionRendererState( |
web_contents->GetRoutingID())); |
} |
+GURL WebViewGuest::ResolveURL(const std::string& src) { |
+ if (extension_id().empty()) { |
+ NOTREACHED(); |
+ return GURL(src); |
+ } |
+ GURL default_url(base::StringPrintf("%s://%s/", |
+ extensions::kExtensionScheme, |
+ extension_id().c_str())); |
+ return default_url.Resolve(src); |
+} |
+ |
void WebViewGuest::SizeChanged(const gfx::Size& old_size, |
const gfx::Size& new_size) { |
scoped_ptr<DictionaryValue> args(new DictionaryValue()); |