OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 var util = {}; | 5 var util = {}; |
6 var embedder = {}; | 6 var embedder = {}; |
7 embedder.baseGuestURL = ''; | 7 embedder.baseGuestURL = ''; |
8 embedder.emptyGuestURL = ''; | 8 embedder.emptyGuestURL = ''; |
9 embedder.windowOpenGuestURL = ''; | 9 embedder.windowOpenGuestURL = ''; |
10 embedder.noReferrerGuestURL = ''; | 10 embedder.noReferrerGuestURL = ''; |
11 embedder.redirectGuestURL = ''; | 11 embedder.redirectGuestURL = ''; |
12 embedder.redirectGuestURLDest = ''; | 12 embedder.redirectGuestURLDest = ''; |
13 embedder.closeSocketURL = ''; | 13 embedder.closeSocketURL = ''; |
14 embedder.tests = {}; | 14 embedder.tests = {}; |
15 | 15 |
16 embedder.setUp_ = function(config) { | 16 embedder.setUp_ = function(config) { |
17 if (!config || !config.testServer) { | 17 if (!config || !config.testServer) { |
18 return; | 18 return; |
19 } | 19 } |
20 embedder.baseGuestURL = 'http://localhost:' + config.testServer.port; | 20 embedder.baseGuestURL = 'http://localhost:' + config.testServer.port; |
21 embedder.emptyGuestURL = embedder.baseGuestURL + | 21 embedder.emptyGuestURL = embedder.baseGuestURL + |
22 '/extensions/platform_apps/web_view/shim/empty_guest.html'; | 22 '/extensions/platform_apps/web_view/shim/empty_guest.html'; |
23 embedder.windowOpenGuestURL = embedder.baseGuestURL + | 23 embedder.windowOpenGuestURL = embedder.baseGuestURL + |
24 '/extensions/platform_apps/web_view/shim/guest.html'; | 24 '/extensions/platform_apps/web_view/shim/guest.html'; |
25 embedder.windowOpenGuestFromSameURL = embedder.baseGuestURL + | |
26 '/extensions/platform_apps/web_view/shim/guest_from_opener.html'; | |
25 embedder.noReferrerGuestURL = embedder.baseGuestURL + | 27 embedder.noReferrerGuestURL = embedder.baseGuestURL + |
26 '/extensions/platform_apps/web_view/shim/guest_noreferrer.html'; | 28 '/extensions/platform_apps/web_view/shim/guest_noreferrer.html'; |
27 embedder.detectUserAgentURL = embedder.baseGuestURL + '/detect-user-agent'; | 29 embedder.detectUserAgentURL = embedder.baseGuestURL + '/detect-user-agent'; |
28 embedder.redirectGuestURL = embedder.baseGuestURL + '/server-redirect'; | 30 embedder.redirectGuestURL = embedder.baseGuestURL + '/server-redirect'; |
29 embedder.redirectGuestURLDest = embedder.baseGuestURL + | 31 embedder.redirectGuestURLDest = embedder.baseGuestURL + |
30 '/extensions/platform_apps/web_view/shim/guest_redirect.html'; | 32 '/extensions/platform_apps/web_view/shim/guest_redirect.html'; |
31 embedder.closeSocketURL = embedder.baseGuestURL + '/close-socket'; | 33 embedder.closeSocketURL = embedder.baseGuestURL + '/close-socket'; |
32 embedder.testImageBaseURL = embedder.baseGuestURL + | 34 embedder.testImageBaseURL = embedder.baseGuestURL + |
33 '/extensions/platform_apps/web_view/shim/'; | 35 '/extensions/platform_apps/web_view/shim/'; |
34 embedder.virtualURL = 'http://virtualurl/'; | 36 embedder.virtualURL = 'http://virtualurl/'; |
(...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
742 // Removing after navigation should not change the partition. | 744 // Removing after navigation should not change the partition. |
743 webview.removeAttribute('partition'); | 745 webview.removeAttribute('partition'); |
744 embedder.test.assertEq('testme', webview.partition); | 746 embedder.test.assertEq('testme', webview.partition); |
745 embedder.test.succeed(); | 747 embedder.test.succeed(); |
746 }; | 748 }; |
747 webview.addEventListener('loadstop', loadstopHandler); | 749 webview.addEventListener('loadstop', loadstopHandler); |
748 | 750 |
749 webview.setAttribute('src', 'data:text/html,<html><body>guest</body></html>'); | 751 webview.setAttribute('src', 'data:text/html,<html><body>guest</body></html>'); |
750 } | 752 } |
751 | 753 |
754 function testAddContentScript() { | |
Devlin
2015/04/13 19:21:46
Describe what the test does in comments (for all)
Xi Han
2015/04/14 19:05:50
Done.
| |
755 var webview = document.createElement('webview'); | |
756 | |
757 console.log("Step 1: call <webview>.addContentScripts."); | |
758 webview.addContentScripts( | |
759 [{"name": 'myrule', | |
760 "matches": ["http://*/extensions/*"], | |
761 "js": ["inject_comm_channel.js"], | |
762 "run_at": "document_start"}]); | |
763 | |
764 webview.addEventListener('loadstop', function() { | |
765 var msg = ['connect']; | |
766 webview.contentWindow.postMessage(JSON.stringify(msg), '*'); | |
767 }); | |
768 | |
769 window.addEventListener('message', function(e) { | |
770 var data = JSON.parse(e.data); | |
771 if (data == 'connected') { | |
772 console.log( | |
773 'Step 2: A communication channel has been established with webview.'); | |
774 embedder.test.succeed(); | |
775 return; | |
776 } | |
777 console.log('Unexpected message: \'' + data[0] + '\''); | |
778 embedder.test.fail(); | |
779 }); | |
780 | |
781 webview.src = embedder.emptyGuestURL; | |
782 document.body.appendChild(webview); | |
783 } | |
784 | |
785 function testAddMultipleContentScripts() { | |
786 var webview = document.createElement('webview'); | |
787 | |
788 console.log("Step 1: call <webview>.addContentScripts(myrule1 & myrule2)"); | |
789 webview.addContentScripts( | |
790 [{"name": 'myrule1', | |
791 "matches": ["http://*/extensions/*"], | |
792 "js": ["inject_comm_channel.js"], | |
793 "run_at": "document_start"}, | |
794 {"name": 'myrule2', | |
795 "matches": ["http://*/extensions/*"], | |
796 "js": ["inject_comm_channel_2.js"], | |
797 "run_at": "document_start"}]); | |
798 | |
799 webview.addEventListener('loadstop', function() { | |
800 var msg1 = ['connect']; | |
801 webview.contentWindow.postMessage(JSON.stringify(msg1), '*'); | |
802 var msg2 = ['connect_request']; | |
803 webview.contentWindow.postMessage(JSON.stringify(msg2), '*'); | |
804 }); | |
805 | |
806 var response_1 = false; | |
807 var response_2 = false; | |
808 window.addEventListener('message', function(e) { | |
809 var data = JSON.parse(e.data); | |
810 if (data == 'connected') { | |
811 console.log( | |
812 'Step 2: A communication channel has been established with webview.'); | |
813 response_1 = true; | |
814 if (response_1 && response_2) | |
815 embedder.test.succeed(); | |
816 return; | |
817 } else if (data == 'connected_response') { | |
818 console.log( | |
819 'Step 3: A communication channel has been established with webview.'); | |
820 response_2 = true; | |
821 if (response_1 && response_2) | |
822 embedder.test.succeed(); | |
823 return; | |
824 } | |
825 console.log('Unexpected message: \'' + data[0] + '\''); | |
826 embedder.test.fail(); | |
827 }); | |
828 | |
829 webview.src = embedder.emptyGuestURL; | |
830 document.body.appendChild(webview); | |
831 } | |
832 | |
833 function testAddContentScriptWithSameNameShouldOverwriteTheExistingOne() { | |
834 var webview = document.createElement('webview'); | |
835 | |
836 console.log("Step 1: call <webview>.addContentScripts(myrule1)"); | |
837 webview.addContentScripts( | |
838 [{"name": 'myrule1', | |
839 "matches": ["http://*/extensions/*"], | |
840 "js": ["inject_comm_channel.js"], | |
841 "run_at": "document_start"}]); | |
842 var connect_script_1 = true; | |
843 var connect_script_2 = false; | |
844 | |
845 webview.addEventListener('loadstop', function() { | |
846 if (connect_script_1) { | |
847 var msg1 = ['connect']; | |
848 webview.contentWindow.postMessage(JSON.stringify(msg1), '*'); | |
849 connect_script_1 = false; | |
850 } | |
851 if (connect_script_2) { | |
852 var msg2 = ['connect_request']; | |
853 webview.contentWindow.postMessage(JSON.stringify(msg2), '*'); | |
854 connect_script_2 = false; | |
855 } | |
856 }); | |
857 | |
858 var should_get_response_from_script_1 = true; | |
859 window.addEventListener('message', function(e) { | |
860 var data = JSON.parse(e.data); | |
861 if (data == 'connected') { | |
862 if (should_get_response_from_script_1) { | |
863 console.log( | |
864 'Step 2: A communication channel has been established with webview.' | |
865 ); | |
866 webview.addContentScripts( | |
867 [{"name": 'myrule1', | |
868 "matches": ["http://*/extensions/*"], | |
869 "js": ["inject_comm_channel_2.js"], | |
870 "run_at": "document_start"}]); | |
871 connect_script_2 = true; | |
872 should_get_response_from_script_1 = false; | |
873 webview.src = embedder.emptyGuestURL; | |
874 } else { | |
875 embedder.test.fail(); | |
876 } | |
877 return; | |
878 } else if (data == 'connected_response') { | |
Devlin
2015/04/13 19:21:46
These messages and responses are used enough that
Xi Han
2015/04/14 19:05:50
Done.
| |
879 console.log( | |
880 'Step 3: Another communication channel has been established ' + | |
881 'with webview.'); | |
882 setTimeout(function() { | |
883 embedder.test.succeed(); | |
884 }, 1000); | |
Devlin
2015/04/13 19:21:46
Why the timeout?
Xi Han
2015/04/14 19:05:50
Here we verify that we won't get any message from
Devlin
2015/04/14 23:04:57
1000ms is a pretty arbitrary limit to put there.
Xi Han
2015/04/15 19:43:55
Sounds good to me, updated:)
| |
885 return; | |
886 } | |
887 console.log('Unexpected message: \'' + data[0] + '\''); | |
888 embedder.test.fail(); | |
889 }); | |
890 | |
891 webview.src = embedder.emptyGuestURL; | |
892 document.body.appendChild(webview); | |
893 } | |
894 | |
895 function testAddContentScriptToOneWebViewShouldNotInjectToTheOtherWebView() { | |
896 var webview1 = document.createElement('webview'); | |
897 var webview2 = document.createElement('webview'); | |
898 | |
899 console.log("Step 1: call <webview1>.addContentScripts."); | |
900 webview1.addContentScripts( | |
901 [{"name": 'myrule', | |
902 "matches": ["http://*/extensions/*"], | |
903 "js": ["inject_comm_channel.js"], | |
904 "run_at": "document_start"}]); | |
905 | |
906 webview2.addEventListener('loadstop', function() { | |
907 console.log("Step 2: webview2 requests to build communication channel."); | |
908 var msg = ['connect']; | |
909 webview2.contentWindow.postMessage(JSON.stringify(msg), '*'); | |
910 setTimeout(function() { | |
911 embedder.test.succeed(); | |
912 }, 2000); | |
913 }); | |
914 | |
915 window.addEventListener('message', function(e) { | |
916 var data = JSON.parse(e.data); | |
917 if (data == 'connected') { | |
918 embedder.test.fail(); | |
919 return; | |
920 } | |
921 console.log('Unexpected message: \'' + data[0] + '\''); | |
922 embedder.test.fail(); | |
923 }); | |
924 | |
925 webview1.src = embedder.emptyGuestURL; | |
926 webview2.src = embedder.emptyGuestURL; | |
927 document.body.appendChild(webview1); | |
928 document.body.appendChild(webview2); | |
929 } | |
930 | |
931 function testAddAndRemoveContentScripts() { | |
932 var webview = document.createElement('webview'); | |
933 | |
934 console.log("Step 1: call <webview>.addContentScripts."); | |
935 webview.addContentScripts( | |
936 [{"name": 'myrule', | |
937 "matches": ["http://*/extensions/*"], | |
938 "js": ["inject_comm_channel.js"], | |
939 "run_at": "document_start"}]); | |
940 | |
941 var count = 0; | |
942 webview.addEventListener('loadstop', function() { | |
943 if (count == 0) { | |
944 console.log('Step 2: post message to build connect.'); | |
945 var msg = ['connect']; | |
946 webview.contentWindow.postMessage(JSON.stringify(msg), '*'); | |
947 count++; | |
Devlin
2015/04/13 19:21:46
nit: pre-increment
Xi Han
2015/04/14 19:05:50
Done.
| |
948 } else if (count == 1) { | |
949 console.log( | |
950 'Step 4: call <webview>.removeContentScripts and navigate.'); | |
951 webview.removeContentScripts(); | |
952 webview.src = embedder.emptyGuestURL; | |
953 count++; | |
954 } else if (count == 2) { | |
955 console.log('Step 5: post message to build connect again.'); | |
956 var msg = ['connect']; | |
957 webview.contentWindow.postMessage(JSON.stringify(msg), '*'); | |
958 setTimeout(function() { | |
959 embedder.test.succeed(); | |
960 }, 2000); | |
961 } | |
962 }); | |
963 | |
964 var replyCount = 0; | |
965 window.addEventListener('message', function(e) { | |
966 var data = JSON.parse(e.data); | |
967 if (data[0] == 'connected') { | |
968 console.log( | |
969 'Step 3: A communication channel has been established with webview.'); | |
970 if (replyCount == 0) { | |
971 webview.setAttribute('src', 'about:blank'); | |
972 replyCount++; | |
973 return; | |
974 } else if (replyCount == 1) { | |
975 embedder.test.fail(); | |
976 return; | |
977 } | |
978 } | |
979 console.log('Unexpected message: \'' + data[0] + '\''); | |
980 embedder.test.fail(); | |
981 }); | |
982 | |
983 webview.src = embedder.emptyGuestURL; | |
984 document.body.appendChild(webview); | |
985 } | |
986 | |
987 function testAddContentScriptsWithNewWindowAPI() { | |
988 var webview = document.createElement('webview'); | |
989 | |
990 var newwebview; | |
991 webview.addEventListener('newwindow', function(e) { | |
992 e.preventDefault(); | |
993 newwebview = document.createElement('webview'); | |
994 | |
995 console.log('Step 2: call newwebview.addContentScripts.'); | |
996 newwebview.addContentScripts( | |
997 [{"name": 'myrule', | |
998 "matches": ["http://*/extensions/*"], | |
999 "js": ["inject_comm_channel.js"], | |
1000 "run_at": "document_start"}]); | |
1001 | |
1002 newwebview.addEventListener('loadstop', function(evt) { | |
1003 var msg = ['connect']; | |
1004 console.log('Step 4: new webview postmessage to build communication ' + | |
1005 'channel.'); | |
1006 newwebview.contentWindow.postMessage(JSON.stringify(msg), '*'); | |
1007 }); | |
1008 | |
1009 document.body.appendChild(newwebview); | |
1010 // attach the new window to the new <webview>. | |
1011 console.log("Step 3: attaches the new webview."); | |
1012 e.window.attach(newwebview); | |
1013 }); | |
1014 | |
1015 window.addEventListener('message', function(e) { | |
1016 var data = JSON.parse(e.data); | |
1017 if (data == 'connected' && e.source == newwebview.contentWindow) { | |
1018 console.log('Step 5: a communication channel has been established ' + | |
1019 'with the new webview.'); | |
1020 embedder.test.succeed(); | |
1021 return; | |
1022 } else { | |
1023 embedder.test.fail(); | |
1024 return; | |
1025 } | |
1026 console.log('unexpected message: \'' + data[0] + '\''); | |
1027 embedder.test.fail(); | |
1028 }); | |
1029 | |
1030 console.log('Step 1: navigates the webview to window open guest URL.'); | |
1031 webview.setAttribute('src', embedder.windowOpenGuestFromSameURL); | |
1032 document.body.appendChild(webview); | |
1033 } | |
1034 | |
1035 function testContentScriptIsInjectedAfterTerminateAndReloadWebView() { | |
1036 var webview = document.createElement('webview'); | |
1037 | |
1038 console.log('Step 1: call <webview>.addContentScripts.'); | |
1039 webview.addContentScripts( | |
1040 [{"name": 'myrule', | |
1041 "matches": ["http://*/extensions/*"], | |
1042 "js": ["inject_comm_channel.js"], | |
1043 "run_at": "document_start"}]); | |
1044 | |
1045 var count = 0; | |
1046 webview.addEventListener('loadstop', function() { | |
1047 if (count == 0) { | |
1048 console.log('Step 2: call webview.terminate().'); | |
1049 webview.terminate(); | |
1050 ++count; | |
1051 return; | |
1052 } else if (count == 1) { | |
1053 console.log('Step 4: postMessage to build communication.'); | |
1054 var msg = ['connect']; | |
1055 webview.contentWindow.postMessage(JSON.stringify(msg), '*'); | |
1056 ++count; | |
1057 } | |
1058 }); | |
1059 | |
1060 webview.addEventListener('exit', function() { | |
1061 console.log('Step 3: call webview.reload().'); | |
1062 webview.reload(); | |
1063 }); | |
1064 | |
1065 window.addEventListener('message', function(e) { | |
1066 var data = JSON.parse(e.data); | |
1067 if (data == 'connected') { | |
1068 console.log( | |
1069 'Step 5: A communication channel has been established with webview.'); | |
1070 embedder.test.succeed(); | |
1071 return; | |
1072 } | |
1073 console.log('Unexpected message: \'' + data[0] + '\''); | |
1074 embedder.test.fail(); | |
1075 }); | |
1076 | |
1077 webview.src = embedder.emptyGuestURL; | |
1078 document.body.appendChild(webview); | |
1079 } | |
1080 | |
1081 function testContentScriptExistsAsLongAsWebViewTagExists() { | |
1082 var webview = document.createElement('webview'); | |
1083 | |
1084 console.log('Step 1: call <webview>.addContentScripts.'); | |
1085 webview.addContentScripts( | |
1086 [{"name": 'myrule', | |
1087 "matches": ["http://*/extensions/*"], | |
1088 "js": ["simple_script.js"], | |
1089 "run_at": "document_end"}]); | |
1090 | |
1091 var count = 0; | |
1092 webview.addEventListener('loadstop', function() { | |
1093 if (count == 0) { | |
1094 console.log('Step 2: check the result of content script injected.'); | |
1095 webview.executeScript({ | |
1096 code: 'document.body.style.backgroundColor;' | |
1097 }, function(results) { | |
1098 embedder.test.assertEq(1, results.length); | |
1099 embedder.test.assertEq('red', results[0]); | |
1100 }); | |
1101 | |
1102 console.log('Step 3: remove webview from the DOM.'); | |
1103 document.body.removeChild(webview); | |
1104 | |
1105 console.log('Step 4: add webview back to the DOM.'); | |
1106 document.body.appendChild(webview); | |
1107 ++count; | |
1108 return; | |
Devlin
2015/04/13 19:21:46
these returns are redundant with the if/else.
Xi Han
2015/04/14 19:05:50
removed.
| |
1109 } else if (count == 1) { | |
1110 webview.executeScript({ | |
1111 code: 'document.body.style.backgroundColor;' | |
1112 }, function(results) { | |
1113 console.log('Step 5: check the result of content script injected' + | |
1114 ' again.'); | |
1115 embedder.test.assertEq(1, results.length); | |
1116 embedder.test.assertEq('red', results[0]); | |
1117 embedder.test.succeed(); | |
1118 }); | |
1119 return; | |
1120 } | |
1121 }); | |
1122 | |
1123 webview.src = embedder.emptyGuestURL; | |
1124 document.body.appendChild(webview); | |
1125 } | |
1126 | |
Devlin
2015/04/13 19:21:46
Can we add a test for navigation?
Xi Han
2015/04/14 19:05:50
Everytime when we set the src of <webview>, it tri
| |
752 function testExecuteScriptFail() { | 1127 function testExecuteScriptFail() { |
753 var webview = document.createElement('webview'); | 1128 var webview = document.createElement('webview'); |
754 document.body.appendChild(webview); | 1129 document.body.appendChild(webview); |
755 setTimeout(function() { | 1130 setTimeout(function() { |
756 webview.executeScript( | 1131 webview.executeScript( |
757 {code:'document.body.style.backgroundColor = "red";'}, | 1132 {code:'document.body.style.backgroundColor = "red";'}, |
758 function(results) { | 1133 function(results) { |
759 embedder.test.fail(); | 1134 embedder.test.fail(); |
760 }); | 1135 }); |
761 setTimeout(function() { | 1136 setTimeout(function() { |
(...skipping 1453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2215 'testInvalidChromeExtensionURL': testInvalidChromeExtensionURL, | 2590 'testInvalidChromeExtensionURL': testInvalidChromeExtensionURL, |
2216 'testWebRequestAPIExistence': testWebRequestAPIExistence, | 2591 'testWebRequestAPIExistence': testWebRequestAPIExistence, |
2217 'testEventName': testEventName, | 2592 'testEventName': testEventName, |
2218 'testOnEventProperties': testOnEventProperties, | 2593 'testOnEventProperties': testOnEventProperties, |
2219 'testLoadProgressEvent': testLoadProgressEvent, | 2594 'testLoadProgressEvent': testLoadProgressEvent, |
2220 'testDestroyOnEventListener': testDestroyOnEventListener, | 2595 'testDestroyOnEventListener': testDestroyOnEventListener, |
2221 'testCannotMutateEventName': testCannotMutateEventName, | 2596 'testCannotMutateEventName': testCannotMutateEventName, |
2222 'testPartitionChangeAfterNavigation': testPartitionChangeAfterNavigation, | 2597 'testPartitionChangeAfterNavigation': testPartitionChangeAfterNavigation, |
2223 'testPartitionRemovalAfterNavigationFails': | 2598 'testPartitionRemovalAfterNavigationFails': |
2224 testPartitionRemovalAfterNavigationFails, | 2599 testPartitionRemovalAfterNavigationFails, |
2600 'testAddContentScript': testAddContentScript, | |
2601 'testAddMultipleContentScripts': testAddMultipleContentScripts, | |
2602 'testAddContentScriptWithSameNameShouldOverwriteTheExistingOne': | |
2603 testAddContentScriptWithSameNameShouldOverwriteTheExistingOne, | |
2604 'testAddContentScriptToOneWebViewShouldNotInjectToTheOtherWebView': | |
2605 testAddContentScriptToOneWebViewShouldNotInjectToTheOtherWebView, | |
2606 'testAddAndRemoveContentScripts': testAddAndRemoveContentScripts, | |
2607 'testAddContentScriptsWithNewWindowAPI': | |
2608 testAddContentScriptsWithNewWindowAPI, | |
2609 'testContentScriptIsInjectedAfterTerminateAndReloadWebView': | |
2610 testContentScriptIsInjectedAfterTerminateAndReloadWebView, | |
2611 'testContentScriptExistsAsLongAsWebViewTagExists': | |
2612 testContentScriptExistsAsLongAsWebViewTagExists, | |
2225 'testExecuteScriptFail': testExecuteScriptFail, | 2613 'testExecuteScriptFail': testExecuteScriptFail, |
2226 'testExecuteScript': testExecuteScript, | 2614 'testExecuteScript': testExecuteScript, |
2227 'testExecuteScriptIsAbortedWhenWebViewSourceIsChanged': | 2615 'testExecuteScriptIsAbortedWhenWebViewSourceIsChanged': |
2228 testExecuteScriptIsAbortedWhenWebViewSourceIsChanged, | 2616 testExecuteScriptIsAbortedWhenWebViewSourceIsChanged, |
2229 'testTerminateAfterExit': testTerminateAfterExit, | 2617 'testTerminateAfterExit': testTerminateAfterExit, |
2230 'testAssignSrcAfterCrash': testAssignSrcAfterCrash, | 2618 'testAssignSrcAfterCrash': testAssignSrcAfterCrash, |
2231 'testNavOnConsecutiveSrcAttributeChanges': | 2619 'testNavOnConsecutiveSrcAttributeChanges': |
2232 testNavOnConsecutiveSrcAttributeChanges, | 2620 testNavOnConsecutiveSrcAttributeChanges, |
2233 'testNavOnSrcAttributeChange': testNavOnSrcAttributeChange, | 2621 'testNavOnSrcAttributeChange': testNavOnSrcAttributeChange, |
2234 'testReassignSrcAttribute': testReassignSrcAttribute, | 2622 'testReassignSrcAttribute': testReassignSrcAttribute, |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2281 'testPerViewZoomMode': testPerViewZoomMode, | 2669 'testPerViewZoomMode': testPerViewZoomMode, |
2282 'testDisabledZoomMode': testDisabledZoomMode, | 2670 'testDisabledZoomMode': testDisabledZoomMode, |
2283 }; | 2671 }; |
2284 | 2672 |
2285 onload = function() { | 2673 onload = function() { |
2286 chrome.test.getConfig(function(config) { | 2674 chrome.test.getConfig(function(config) { |
2287 embedder.setUp_(config); | 2675 embedder.setUp_(config); |
2288 chrome.test.sendMessage("Launched"); | 2676 chrome.test.sendMessage("Launched"); |
2289 }); | 2677 }); |
2290 }; | 2678 }; |
OLD | NEW |