blob: 4ff898e9dd7f9278558463feeef4969c6ed189e3 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.support_lib_glue;
import static org.chromium.support_lib_glue.SupportLibWebViewChromiumFactory.recordApiCall;
import org.chromium.android_webview.AwSettings;
import org.chromium.support_lib_boundary.WebSettingsBoundaryInterface;
import org.chromium.support_lib_glue.SupportLibWebViewChromiumFactory.ApiCall;
/**
* Adapter between WebSettingsBoundaryInterface and AwSettings.
*/
class SupportLibWebSettingsAdapter implements WebSettingsBoundaryInterface {
private final AwSettings mAwSettings;
public SupportLibWebSettingsAdapter(AwSettings awSettings) {
mAwSettings = awSettings;
}
@Override
public void setOffscreenPreRaster(boolean enabled) {
recordApiCall(ApiCall.WEB_SETTINGS_SET_OFFSCREEN_PRE_RASTER);
mAwSettings.setOffscreenPreRaster(enabled);
}
@Override
public boolean getOffscreenPreRaster() {
recordApiCall(ApiCall.WEB_SETTINGS_GET_OFFSCREEN_PRE_RASTER);
return mAwSettings.getOffscreenPreRaster();
}
@Override
public void setSafeBrowsingEnabled(boolean enabled) {
recordApiCall(ApiCall.WEB_SETTINGS_SET_SAFE_BROWSING_ENABLED);
mAwSettings.setSafeBrowsingEnabled(enabled);
}
@Override
public boolean getSafeBrowsingEnabled() {
recordApiCall(ApiCall.WEB_SETTINGS_GET_SAFE_BROWSING_ENABLED);
return mAwSettings.getSafeBrowsingEnabled();
}
@Override
public void setDisabledActionModeMenuItems(int menuItems) {
recordApiCall(ApiCall.WEB_SETTINGS_SET_DISABLED_ACTION_MODE_MENU_ITEMS);
mAwSettings.setDisabledActionModeMenuItems(menuItems);
}
@Override
public int getDisabledActionModeMenuItems() {
recordApiCall(ApiCall.WEB_SETTINGS_GET_DISABLED_ACTION_MODE_MENU_ITEMS);
return mAwSettings.getDisabledActionModeMenuItems();
}
@Override
public boolean getWillSuppressErrorPage() {
recordApiCall(ApiCall.WEB_SETTINGS_GET_WILL_SUPPRESS_ERROR_PAGE);
return mAwSettings.getWillSuppressErrorPage();
}
@Override
public void setWillSuppressErrorPage(boolean suppressed) {
recordApiCall(ApiCall.WEB_SETTINGS_SET_WILL_SUPPRESS_ERROR_PAGE);
mAwSettings.setWillSuppressErrorPage(suppressed);
}
@Override
public void setForceDark(int forceDarkMode) {
recordApiCall(ApiCall.WEB_SETTINGS_SET_FORCE_DARK);
mAwSettings.setForceDarkMode(forceDarkMode);
}
@Override
public int getForceDark() {
recordApiCall(ApiCall.WEB_SETTINGS_GET_FORCE_DARK);
return mAwSettings.getForceDarkMode();
}
@Override
public void setForceDarkBehavior(int forceDarkBehavior) {
recordApiCall(ApiCall.WEB_SETTINGS_SET_FORCE_DARK_BEHAVIOR);
switch (forceDarkBehavior) {
case ForceDarkBehavior.FORCE_DARK_ONLY:
mAwSettings.setForceDarkBehavior(AwSettings.FORCE_DARK_ONLY);
break;
case ForceDarkBehavior.MEDIA_QUERY_ONLY:
mAwSettings.setForceDarkBehavior(AwSettings.MEDIA_QUERY_ONLY);
break;
case ForceDarkBehavior.PREFER_MEDIA_QUERY_OVER_FORCE_DARK:
mAwSettings.setForceDarkBehavior(AwSettings.PREFER_MEDIA_QUERY_OVER_FORCE_DARK);
break;
}
}
@Override
public int getForceDarkBehavior() {
recordApiCall(ApiCall.WEB_SETTINGS_GET_FORCE_DARK_BEHAVIOR);
switch (mAwSettings.getForceDarkBehavior()) {
case AwSettings.FORCE_DARK_ONLY:
return ForceDarkBehavior.FORCE_DARK_ONLY;
case AwSettings.MEDIA_QUERY_ONLY:
return ForceDarkBehavior.MEDIA_QUERY_ONLY;
case AwSettings.PREFER_MEDIA_QUERY_OVER_FORCE_DARK:
return ForceDarkBehavior.PREFER_MEDIA_QUERY_OVER_FORCE_DARK;
}
return ForceDarkBehavior.PREFER_MEDIA_QUERY_OVER_FORCE_DARK;
}
@Override
public void setWebAuthnSupport(int support) {
// Currently a no-op while this functionality is built out.
}
@Override
public int getWebAuthnSupport() {
// Currently a no-op while this functionality is built out.
return WebAuthnSupport.NONE;
}
}