Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(269)

Side by Side Diff: chrome/test/data/extensions/platform_apps/web_view/shim/main.js

Issue 698973003: Got rid of the internal copies of webview attributes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Small fix. Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 = '';
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 90
91 embedder.test.assertFalse = function(condition) { 91 embedder.test.assertFalse = function(condition) {
92 if (condition) { 92 if (condition) {
93 console.log('assertion failed: false != ' + condition); 93 console.log('assertion failed: false != ' + condition);
94 embedder.test.fail(); 94 embedder.test.fail();
95 } 95 }
96 }; 96 };
97 97
98 // Tests begin. 98 // Tests begin.
99 99
100 // This test verifies that the allowtransparency property cannot be changed 100 // This test verifies that the allowtransparency property is interpreted as true
101 // once set. The attribute can only be deleted. 101 // if it exists (regardless of its value), and can be removed by setting it to
102 // to anything false.
102 function testAllowTransparencyAttribute() { 103 function testAllowTransparencyAttribute() {
103 var webview = document.createElement('webview'); 104 var webview = document.createElement('webview');
104 webview.src = 'data:text/html,webview test'; 105 webview.src = 'data:text/html,webview test';
106 embedder.test.assertFalse(webview.hasAttribute('allowtransparency'));
107 embedder.test.assertFalse(webview.allowtransparency);
105 webview.allowtransparency = true; 108 webview.allowtransparency = true;
106 109
107 webview.addEventListener('loadstop', function(e) { 110 webview.addEventListener('loadstop', function(e) {
108 embedder.test.assertTrue(webview.hasAttribute('allowtransparency')); 111 embedder.test.assertTrue(webview.hasAttribute('allowtransparency'));
112 embedder.test.assertTrue(webview.allowtransparency);
109 webview.allowtransparency = false; 113 webview.allowtransparency = false;
114 embedder.test.assertFalse(webview.hasAttribute('allowtransparency'));
115 embedder.test.assertFalse(webview.allowtransparency);
116 webview.allowtransparency = '';
117 embedder.test.assertFalse(webview.hasAttribute('allowtransparency'));
118 embedder.test.assertFalse(webview.allowtransparency);
119 webview.allowtransparency = 'some string';
120 embedder.test.assertTrue(webview.hasAttribute('allowtransparency'));
110 embedder.test.assertTrue(webview.allowtransparency); 121 embedder.test.assertTrue(webview.allowtransparency);
111 embedder.test.assertTrue(webview.hasAttribute('allowtransparency'));
112 webview.removeAttribute('allowtransparency');
113 embedder.test.assertFalse(webview.allowtransparency);
114 embedder.test.succeed(); 122 embedder.test.succeed();
115 }); 123 });
116 124
117 document.body.appendChild(webview); 125 document.body.appendChild(webview);
118 } 126 }
119 127
120 // This test verifies that a lengthy page with autosize enabled will report 128 // This test verifies that a lengthy page with autosize enabled will report
121 // the correct height in the sizechanged event. 129 // the correct height in the sizechanged event.
122 function testAutosizeHeight() { 130 function testAutosizeHeight() {
123 var webview = document.createElement('webview'); 131 var webview = document.createElement('webview');
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 617
610 webview.setAttribute('src', 'data:text/html,trigger navigation'); 618 webview.setAttribute('src', 'data:text/html,trigger navigation');
611 document.body.appendChild(webview); 619 document.body.appendChild(webview);
612 } 620 }
613 621
614 // This test registers two listeners on an event (loadcommit) and removes 622 // This test registers two listeners on an event (loadcommit) and removes
615 // the <webview> tag when the first listener fires. 623 // the <webview> tag when the first listener fires.
616 // Current expected behavior is that the second event listener will still 624 // Current expected behavior is that the second event listener will still
617 // fire without crashing. 625 // fire without crashing.
618 function testDestroyOnEventListener() { 626 function testDestroyOnEventListener() {
619 var webview = util.createWebViewTagInDOM(arguments.callee.name); 627 var webview = document.createElement('webview');
620 var url = 'data:text/html,<body>Destroy test</body>'; 628 var url = 'data:text/html,<body>Destroy test</body>';
621 629
622 var loadCommitCount = 0; 630 var loadCommitCount = 0;
623 function loadCommitCommon(e) { 631 function loadCommitCommon(e) {
624 embedder.test.assertEq('loadcommit', e.type); 632 embedder.test.assertEq('loadcommit', e.type);
625 if (url != e.url) 633 if (url != e.url)
626 return; 634 return;
627 ++loadCommitCount; 635 ++loadCommitCount;
628 if (loadCommitCount == 2) { 636 if (loadCommitCount == 2) {
629 // Pass in a timeout so that we can catch if any additional loadcommit 637 // Pass in a timeout so that we can catch if any additional loadcommit
(...skipping 10 matching lines...) Expand all
640 webview.addEventListener('loadcommit', function(e) { 648 webview.addEventListener('loadcommit', function(e) {
641 window.console.log('loadcommit1'); 649 window.console.log('loadcommit1');
642 webview.parentNode.removeChild(webview); 650 webview.parentNode.removeChild(webview);
643 loadCommitCommon(e); 651 loadCommitCommon(e);
644 }); 652 });
645 webview.addEventListener('loadcommit', function(e) { 653 webview.addEventListener('loadcommit', function(e) {
646 window.console.log('loadcommit2'); 654 window.console.log('loadcommit2');
647 loadCommitCommon(e); 655 loadCommitCommon(e);
648 }); 656 });
649 webview.setAttribute('src', url); 657 webview.setAttribute('src', url);
658 document.body.appendChild(webview);
650 } 659 }
651 660
652 // This test registers two event listeners on a same event (loadcommit). 661 // This test registers two event listeners on a same event (loadcommit).
653 // Each of the listener tries to change some properties on the event param, 662 // Each of the listener tries to change some properties on the event param,
654 // which should not be possible. 663 // which should not be possible.
655 function testCannotMutateEventName() { 664 function testCannotMutateEventName() {
656 var webview = util.createWebViewTagInDOM(arguments.callee.name); 665 var webview = document.createElement('webview');
657 var url = 'data:text/html,<body>Two</body>'; 666 var url = 'data:text/html,<body>Two</body>';
658 667
659 var loadCommitACalled = false; 668 var loadCommitACalled = false;
660 var loadCommitBCalled = false; 669 var loadCommitBCalled = false;
661 670
662 var maybeFinishTest = function(e) { 671 var maybeFinishTest = function(e) {
663 if (loadCommitACalled && loadCommitBCalled) { 672 if (loadCommitACalled && loadCommitBCalled) {
664 embedder.test.assertEq('loadcommit', e.type); 673 embedder.test.assertEq('loadcommit', e.type);
665 embedder.test.succeed(); 674 embedder.test.succeed();
666 } 675 }
(...skipping 21 matching lines...) Expand all
688 maybeFinishTest(e); 697 maybeFinishTest(e);
689 } 698 }
690 }; 699 };
691 700
692 // The test starts from here, by setting the src to |url|. Event 701 // The test starts from here, by setting the src to |url|. Event
693 // listener registration works because we already have a (dummy) src set 702 // listener registration works because we already have a (dummy) src set
694 // on the <webview> tag. 703 // on the <webview> tag.
695 webview.addEventListener('loadcommit', onLoadCommitA); 704 webview.addEventListener('loadcommit', onLoadCommitA);
696 webview.addEventListener('loadcommit', onLoadCommitB); 705 webview.addEventListener('loadcommit', onLoadCommitB);
697 webview.setAttribute('src', url); 706 webview.setAttribute('src', url);
707 document.body.appendChild(webview);
698 } 708 }
699 709
700 // This test verifies that setting the partition attribute after the src has 710 // This test verifies that the partion attribute cannot be changed after the src
701 // been set raises an exception. 711 // has been set.
702 function testPartitionRaisesException() { 712 function testPartitionChangeAfterNavigation() {
703 var webview = document.createElement('webview'); 713 var webview = document.createElement('webview');
704 var partitionAttribute = arguments.callee.name; 714 var partitionAttribute = arguments.callee.name;
705 webview.setAttribute('partition', partitionAttribute); 715 webview.setAttribute('partition', partitionAttribute);
706 716
707 var loadstopHandler = function(e) { 717 var loadstopHandler = function(e) {
708 try { 718 webview.partition = 'illegal';
709 webview.partition = 'illegal'; 719 embedder.test.assertEq(partitionAttribute, webview.partition);
710 embedder.test.fail(); 720 embedder.test.succeed();
711 } catch (e) {
712 embedder.test.assertEq(partitionAttribute, webview.partition);
713 embedder.test.succeed();
714 }
715 }; 721 };
716 webview.addEventListener('loadstop', loadstopHandler); 722 webview.addEventListener('loadstop', loadstopHandler);
717 723
718 document.body.appendChild(webview); 724 document.body.appendChild(webview);
719 webview.setAttribute('src', 'data:text/html,trigger navigation'); 725 webview.setAttribute('src', 'data:text/html,trigger navigation');
720 } 726 }
721 727
722 // This test verifies that removing partition attribute after navigation does 728 // This test verifies that removing partition attribute after navigation does
723 // not work, i.e. the partition remains the same. 729 // not work, i.e. the partition remains the same.
724 function testPartitionRemovalAfterNavigationFails() { 730 function testPartitionRemovalAfterNavigationFails() {
(...skipping 1267 matching lines...) Expand 10 before | Expand all | Expand 10 after
1992 'testDisplayNoneWebviewRemoveChild': testDisplayNoneWebviewRemoveChild, 1998 'testDisplayNoneWebviewRemoveChild': testDisplayNoneWebviewRemoveChild,
1993 'testInlineScriptFromAccessibleResources': 1999 'testInlineScriptFromAccessibleResources':
1994 testInlineScriptFromAccessibleResources, 2000 testInlineScriptFromAccessibleResources,
1995 'testInvalidChromeExtensionURL': testInvalidChromeExtensionURL, 2001 'testInvalidChromeExtensionURL': testInvalidChromeExtensionURL,
1996 'testWebRequestAPIExistence': testWebRequestAPIExistence, 2002 'testWebRequestAPIExistence': testWebRequestAPIExistence,
1997 'testEventName': testEventName, 2003 'testEventName': testEventName,
1998 'testOnEventProperties': testOnEventProperties, 2004 'testOnEventProperties': testOnEventProperties,
1999 'testLoadProgressEvent': testLoadProgressEvent, 2005 'testLoadProgressEvent': testLoadProgressEvent,
2000 'testDestroyOnEventListener': testDestroyOnEventListener, 2006 'testDestroyOnEventListener': testDestroyOnEventListener,
2001 'testCannotMutateEventName': testCannotMutateEventName, 2007 'testCannotMutateEventName': testCannotMutateEventName,
2002 'testPartitionRaisesException': testPartitionRaisesException, 2008 'testPartitionChangeAfterNavigation': testPartitionChangeAfterNavigation,
2003 'testPartitionRemovalAfterNavigationFails': 2009 'testPartitionRemovalAfterNavigationFails':
2004 testPartitionRemovalAfterNavigationFails, 2010 testPartitionRemovalAfterNavigationFails,
2005 'testExecuteScriptFail': testExecuteScriptFail, 2011 'testExecuteScriptFail': testExecuteScriptFail,
2006 'testExecuteScript': testExecuteScript, 2012 'testExecuteScript': testExecuteScript,
2007 'testExecuteScriptIsAbortedWhenWebViewSourceIsChanged': 2013 'testExecuteScriptIsAbortedWhenWebViewSourceIsChanged':
2008 testExecuteScriptIsAbortedWhenWebViewSourceIsChanged, 2014 testExecuteScriptIsAbortedWhenWebViewSourceIsChanged,
2009 'testTerminateAfterExit': testTerminateAfterExit, 2015 'testTerminateAfterExit': testTerminateAfterExit,
2010 'testAssignSrcAfterCrash': testAssignSrcAfterCrash, 2016 'testAssignSrcAfterCrash': testAssignSrcAfterCrash,
2011 'testNavOnConsecutiveSrcAttributeChanges': 2017 'testNavOnConsecutiveSrcAttributeChanges':
2012 testNavOnConsecutiveSrcAttributeChanges, 2018 testNavOnConsecutiveSrcAttributeChanges,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
2054 'testFindAPI_findupdate': testFindAPI, 2060 'testFindAPI_findupdate': testFindAPI,
2055 'testLoadDataAPI': testLoadDataAPI 2061 'testLoadDataAPI': testLoadDataAPI
2056 }; 2062 };
2057 2063
2058 onload = function() { 2064 onload = function() {
2059 chrome.test.getConfig(function(config) { 2065 chrome.test.getConfig(function(config) {
2060 embedder.setUp_(config); 2066 embedder.setUp_(config);
2061 chrome.test.sendMessage("Launched"); 2067 chrome.test.sendMessage("Launched");
2062 }); 2068 });
2063 }; 2069 };
OLDNEW
« no previous file with comments | « chrome/browser/apps/web_view_browsertest.cc ('k') | extensions/browser/guest_view/web_view/web_view_apitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698