}
void WebContents::Invalidate() {
- if (!IsOffScreen())
- return;
-
- auto* osr_rwhv = static_cast<OffScreenRenderWidgetHostView*>(
+ if (IsOffScreen()) {
+ auto* osr_rwhv = static_cast<OffScreenRenderWidgetHostView*>(
web_contents()->GetRenderWidgetHostView());
- if (osr_rwhv)
- osr_rwhv->Invalidate();
+ if (osr_rwhv)
+ osr_rwhv->Invalidate();
+ } else {
+ const auto owner_window = owner_window();
+ if (owner_window)
+ owner_window->Invalidate();
+ }
}
+void WebContents::SetZoomLevel(double level) {
+ zoom_controller_->SetZoomLevel(level);
+}
+
+double WebContents::GetZoomLevel() {
+ return zoom_controller_->GetZoomLevel();
+}
+
+void WebContents::SetZoomFactor(double factor) {
+ auto level = content::ZoomFactorToZoomLevel(factor);
+ SetZoomLevel(level);
+}
+
+double WebContents::GetZoomFactor() {
+ auto level = GetZoomLevel();
+ return content::ZoomLevelToZoomFactor(level);
+}
+
+void WebContents::OnSetTemporaryZoomLevel(double level,
+ IPC::Message* reply_msg) {
+ zoom_controller_->SetTemporaryZoomLevel(level);
+ double new_level = zoom_controller_->GetZoomLevel();
+ AtomViewHostMsg_SetTemporaryZoomLevel::WriteReplyParams(reply_msg, new_level);
+ Send(reply_msg);
+}
+
+void WebContents::OnGetZoomLevel(IPC::Message* reply_msg) {
+ AtomViewHostMsg_GetZoomLevel::WriteReplyParams(reply_msg, GetZoomLevel());
+ Send(reply_msg);
+}
+
v8::Local<v8::Value> WebContents::GetWebPreferences(v8::Isolate* isolate) {
WebContentsPreferences* web_preferences =
WebContentsPreferences::FromWebContents(web_contents());