#include "atom/common/options_switches.h"
#include "base/command_line.h"
#include "base/strings/string_number_conversions.h"
+#include "content/public/common/content_switches.h"
#include "content/public/common/web_preferences.h"
#include "native_mate/dictionary.h"
#include "net/base/filename_util.h"
namespace atom {
-namespace {
-
-// Array of available web runtime features.
-struct FeaturePair {
- const char* name;
- const char* cmd;
-};
-FeaturePair kWebRuntimeFeatures[] = {
- { options::kExperimentalFeatures,
- switches::kExperimentalFeatures },
- { options::kExperimentalCanvasFeatures,
- switches::kExperimentalCanvasFeatures },
-};
-
-} // namespace
-
WebContentsPreferences::WebContentsPreferences(
content::WebContents* web_contents,
const mate::Dictionary& web_preferences) {
if (web_preferences.GetBoolean("plugins", &b) && b)
command_line->AppendSwitch(switches::kEnablePlugins);
- // This set of options are not availabe in WebPreferences, so we have to pass
- // them via command line and enable them in renderer procss.
- for (size_t i = 0; i < arraysize(kWebRuntimeFeatures); ++i) {
- const auto& feature = kWebRuntimeFeatures[i];
- if (web_preferences.GetBoolean(feature.name, &b))
- command_line->AppendSwitchASCII(feature.cmd, b ? "true" : "false");
- }
+ // Experimental flags.
+ if (web_preferences.GetBoolean(options::kExperimentalFeatures, &b) && b)
+ command_line->AppendSwitch(
+ ::switches::kEnableExperimentalWebPlatformFeatures);
+ if (web_preferences.GetBoolean(options::kExperimentalCanvasFeatures, &b) && b)
+ command_line->AppendSwitch(::switches::kEnableExperimentalCanvasFeatures);
// Check if we have node integration specified.
bool node_integration = true;
extern const char kPreloadURL[];
extern const char kNodeIntegration[];
extern const char kGuestInstanceID[];
-extern const char kExperimentalFeatures[];
-extern const char kExperimentalCanvasFeatures[];
extern const char kOpenerID[];
extern const char kWidevineCdmPath[];
namespace {
-bool IsSwitchEnabled(base::CommandLine* command_line,
- const char* switch_string) {
- return command_line->GetSwitchValueASCII(switch_string) == "true";
-}
-
// Helper class to forward the messages to the client.
class AtomRenderFrameObserver : public content::RenderFrameObserver {
public:
}
void AtomRendererClient::WebKitInitialized() {
- EnableWebRuntimeFeatures();
-
blink::WebCustomElement::addEmbedderCustomElementName("webview");
blink::WebCustomElement::addEmbedderCustomElementName("browserplugin");
}
}
-void AtomRendererClient::EnableWebRuntimeFeatures() {
- base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
-
- if (IsSwitchEnabled(command_line, switches::kExperimentalFeatures))
- blink::WebRuntimeFeatures::enableExperimentalFeatures(true);
- if (IsSwitchEnabled(command_line, switches::kExperimentalCanvasFeatures))
- blink::WebRuntimeFeatures::enableExperimentalCanvasFeatures(true);
-}
-
void AtomRendererClient::AddKeySystems(
std::vector<media::KeySystemInfo>* key_systems) {
AddChromeKeySystems(key_systems);