Chromium Code Reviews| Index: extensions/browser/guest_view/web_view/web_view_guest.cc |
| diff --git a/extensions/browser/guest_view/web_view/web_view_guest.cc b/extensions/browser/guest_view/web_view/web_view_guest.cc |
| index 453a7fd74a2902633e3727b22108ff2d3fd7ce5f..050f7d0d3bbdd0486dc1e556649705eb138f4794 100644 |
| --- a/extensions/browser/guest_view/web_view/web_view_guest.cc |
| +++ b/extensions/browser/guest_view/web_view/web_view_guest.cc |
| @@ -335,9 +335,6 @@ void WebViewGuest::DidAttachToEmbedder() { |
| // We need to set the background opaque flag after navigation to ensure that |
| // there is a RenderWidgetHostView available. |
| SetAllowTransparency(allow_transparency); |
| - |
| - if (web_view_guest_delegate_) |
| - web_view_guest_delegate_->OnDidAttachToEmbedder(); |
| } |
| void WebViewGuest::DidInitialize() { |
| @@ -370,8 +367,7 @@ void WebViewGuest::DidStopLoading() { |
| } |
| void WebViewGuest::EmbedderWillBeDestroyed() { |
| - if (web_view_guest_delegate_) |
| - web_view_guest_delegate_->OnEmbedderWillBeDestroyed(); |
| + GuestViewBase::EmbedderWillBeDestroyed(); |
|
Fady Samuel
2014/12/09 21:41:42
This should no longer be necessary, I think??
wjmaclean
2014/12/09 22:12:37
Done.
|
| // Clean up rules registries for the webview. |
| RulesRegistryService::Get(browser_context()) |
| @@ -617,12 +613,6 @@ void WebViewGuest::Observe(int type, |
| } |
| } |
| -double WebViewGuest::GetZoom() { |
| - if (!web_view_guest_delegate_) |
| - return 1.0; |
| - return web_view_guest_delegate_->GetZoom(); |
| -} |
| - |
| void WebViewGuest::StartFinding( |
| const base::string16& search_text, |
| const blink::WebFindOptions& options, |
| @@ -709,6 +699,7 @@ WebViewGuest::WebViewGuest(content::BrowserContext* browser_context, |
| is_overriding_user_agent_(false), |
| guest_opaque_(true), |
| javascript_dialog_helper_(this), |
| + current_zoom_factor_(1.0), |
| weak_ptr_factory_(this) { |
| web_view_guest_delegate_.reset( |
| ExtensionsAPIClient::Get()->CreateWebViewGuestDelegate(this)); |
| @@ -742,6 +733,14 @@ void WebViewGuest::DidCommitProvisionalLoadForFrame( |
| new GuestViewBase::Event(webview::kEventLoadCommit, args.Pass())); |
| find_helper_.CancelAllFindSessions(); |
| + |
| + // Update the current zoom factor for the new page. |
| + ui_zoom::ZoomController* zoom_controller = |
| + ui_zoom::ZoomController::FromWebContents(web_contents()); |
| + DCHECK(zoom_controller); |
| + current_zoom_factor_ = |
| + content::ZoomLevelToZoomFactor(zoom_controller->GetZoomLevel()); |
| + |
| if (web_view_guest_delegate_) { |
| web_view_guest_delegate_->OnDidCommitProvisionalLoadForFrame( |
| !render_frame_host->GetParent()); |
| @@ -1062,8 +1061,18 @@ void WebViewGuest::SetName(const std::string& name) { |
| } |
| void WebViewGuest::SetZoom(double zoom_factor) { |
| - if (web_view_guest_delegate_) |
| - web_view_guest_delegate_->OnSetZoom(zoom_factor); |
| + ui_zoom::ZoomController* zoom_controller = |
| + ui_zoom::ZoomController::FromWebContents(web_contents()); |
| + DCHECK(zoom_controller); |
| + double zoom_level = content::ZoomFactorToZoomLevel(zoom_factor); |
| + zoom_controller->SetZoomLevel(zoom_level); |
| + |
| + scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); |
| + args->SetDouble(webview::kOldZoomFactor, current_zoom_factor_); |
| + args->SetDouble(webview::kNewZoomFactor, zoom_factor); |
| + DispatchEventToEmbedder( |
| + new GuestViewBase::Event(webview::kEventZoomChange, args.Pass())); |
| + current_zoom_factor_ = zoom_factor; |
| } |
| void WebViewGuest::SetAllowTransparency(bool allow) { |