Index: chrome/test/data/prerender/prerender_plugin_power_saver.html |
diff --git a/chrome/test/data/prerender/prerender_plugin_power_saver.html b/chrome/test/data/prerender/prerender_plugin_power_saver.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0c0a3ed5f199b3ac6d21453205a37b0b0ca5b53e |
--- /dev/null |
+++ b/chrome/test/data/prerender/prerender_plugin_power_saver.html |
@@ -0,0 +1,53 @@ |
+<html> |
+<!-- |
+This test checks the interaction between prerender and the Plugin Power Saver |
+feature. It expects: |
+ - The plugin is not loaded during prerender. |
+ - It is loaded (briefly) during the preroll of the plugin. |
+ - It is replaced by the placeholder after the preroll is over. |
+ |
+This test relies on the Pepper plugin (but not the placeholder) implementing |
+the postMessage() function on the plugin object. |
+--> |
+<head> |
+<title>Prerender Plugin Delay Loading</title> |
+ |
+<script> |
+// Make sure plugin was not loaded while prerendering. |
+function DidPrerenderPass() { |
+ // |plugin| should be the blocked plugin placeholder, rather than the |
+ // test plugin. |
+ var plugin = window.document['plugin']; |
Bernhard Bauer
2015/04/29 09:42:36
Use getElementById? Named properties on the docume
tommycli
2015/04/29 20:25:47
Done.
|
+ return plugin.postMessage == undefined; |
Bernhard Bauer
2015/04/29 09:42:36
Use `===` maybe? `==` can have some weird effects
tommycli
2015/04/29 20:25:47
Done.
|
+} |
+ |
+// Make sure the plugin briefly exists, then is replaced with a placeholder. |
+function AwaitPluginPrerollAndPlaceholder() { |
tommycli
2015/04/28 18:43:16
This is the new test 'repros' the old problem and
|
+ var plugin = window.document['plugin']; |
+ function handleEvent(event) { |
+ // We should eventually get a message indicating that the plugin has been |
+ // throttled and replaced with a static placeholder. |
+ if (event.data.isThrottled) { |
+ plugin.removeEventListener('message', handleEvent); |
+ window.domAutomationController.send(plugin.postMessage == undefined); |
+ } |
+ } |
+ |
+ // The plugin should (briefly) exist for the preroll phase. |
+ if (plugin.postMessage == undefined) { |
+ window.domAutomationController.send(false); |
+ } |
+ |
+ plugin.addEventListener('message', handleEvent); |
+ plugin.postMessage('getPowerSaverStatus'); |
+} |
+</script> |
+ |
+</head> |
+<body> |
+ |
+<object name="plugin" type="application/x-ppapi-tests" height='100' width='100'> |
+</object> |
+ |
+</body> |
+</html> |