| 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());
|
|
|