| Index: chrome/browser/guest_view/web_view/web_view_guest.cc
|
| diff --git a/chrome/browser/guest_view/web_view/web_view_guest.cc b/chrome/browser/guest_view/web_view/web_view_guest.cc
|
| index 88ff3ddf68abd3f61e9924c69d4e2d4694192a88..6a89a87011d607121906d178e0f3d997e484b622 100644
|
| --- a/chrome/browser/guest_view/web_view/web_view_guest.cc
|
| +++ b/chrome/browser/guest_view/web_view/web_view_guest.cc
|
| @@ -297,6 +297,8 @@ void WebViewGuest::CreateWebContents(
|
| }
|
|
|
| void WebViewGuest::DidAttachToEmbedder() {
|
| + SetupAutoSize();
|
| +
|
| std::string name;
|
| if (extra_params()->GetString(webview::kName, &name)) {
|
| // If the guest window's name is empty, then the WebView tag's name is
|
| @@ -422,6 +424,23 @@ void WebViewGuest::GuestDestroyed() {
|
| RemoveWebViewStateFromIOThread(web_contents());
|
| }
|
|
|
| +void WebViewGuest::GuestReady() {
|
| + // The guest RenderView should always live in an isolated guest process.
|
| + CHECK(guest_web_contents()->GetRenderProcessHost()->IsIsolatedGuest());
|
| + Send(new ChromeViewMsg_SetName(guest_web_contents()->GetRoutingID(), name_));
|
| +}
|
| +
|
| +void WebViewGuest::GuestSizeChangedDueToAutoSize(const gfx::Size& old_size,
|
| + const gfx::Size& new_size) {
|
| + scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
|
| + args->SetInteger(webview::kOldHeight, old_size.height());
|
| + args->SetInteger(webview::kOldWidth, old_size.width());
|
| + args->SetInteger(webview::kNewHeight, new_size.height());
|
| + args->SetInteger(webview::kNewWidth, new_size.width());
|
| + DispatchEventToEmbedder(
|
| + new GuestViewBase::Event(webview::kEventSizeChanged, args.Pass()));
|
| +}
|
| +
|
| bool WebViewGuest::IsDragAndDropEnabled() const {
|
| return true;
|
| }
|
| @@ -798,12 +817,6 @@ void WebViewGuest::UserAgentOverrideSet(const std::string& user_agent) {
|
| guest_web_contents()->GetController().Reload(false);
|
| }
|
|
|
| -void WebViewGuest::RenderViewReady() {
|
| - // The guest RenderView should always live in an isolated guest process.
|
| - CHECK(guest_web_contents()->GetRenderProcessHost()->IsIsolatedGuest());
|
| - Send(new ChromeViewMsg_SetName(guest_web_contents()->GetRoutingID(), name_));
|
| -}
|
| -
|
| void WebViewGuest::ReportFrameNameChange(const std::string& name) {
|
| name_ = name;
|
| scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
|
| @@ -880,17 +893,6 @@ content::WebContents* WebViewGuest::CreateNewGuestWindow(
|
| create_params);
|
| }
|
|
|
| -void WebViewGuest::SizeChanged(const gfx::Size& old_size,
|
| - const gfx::Size& new_size) {
|
| - scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
|
| - args->SetInteger(webview::kOldHeight, old_size.height());
|
| - args->SetInteger(webview::kOldWidth, old_size.width());
|
| - args->SetInteger(webview::kNewHeight, new_size.height());
|
| - args->SetInteger(webview::kNewWidth, new_size.width());
|
| - DispatchEventToEmbedder(
|
| - new GuestViewBase::Event(webview::kEventSizeChanged, args.Pass()));
|
| -}
|
| -
|
| void WebViewGuest::RequestMediaAccessPermission(
|
| content::WebContents* source,
|
| const content::MediaStreamRequest& request,
|
| @@ -1052,6 +1054,28 @@ bool WebViewGuest::HandleKeyboardShortcuts(
|
| return false;
|
| }
|
|
|
| +void WebViewGuest::SetupAutoSize() {
|
| + // Read the autosize parameters passed in from the embedder.
|
| + bool auto_size_enabled;
|
| + extra_params()->GetBoolean(webview::kAttributeAutoSize, &auto_size_enabled);
|
| +
|
| + int max_height = 0;
|
| + int max_width = 0;
|
| + extra_params()->GetInteger(webview::kAttributeMaxHeight, &max_height);
|
| + extra_params()->GetInteger(webview::kAttributeMaxWidth, &max_width);
|
| +
|
| + int min_height = 0;
|
| + int min_width = 0;
|
| + extra_params()->GetInteger(webview::kAttributeMinHeight, &min_height);
|
| + extra_params()->GetInteger(webview::kAttributeMinWidth, &min_width);
|
| +
|
| + // Call SetAutoSize to apply all the appropriate validation and clipping of
|
| + // values.
|
| + SetAutoSize(auto_size_enabled,
|
| + gfx::Size(min_width, min_height),
|
| + gfx::Size(max_width, max_height));
|
| +}
|
| +
|
| void WebViewGuest::ShowContextMenu(int request_id,
|
| const MenuItemVector* items) {
|
| if (!pending_menu_.get())
|
|
|