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

Side by Side Diff: chrome/test/data/extensions/api_test/window_open/panel_browsing_instance/background.js

Issue 2263863002: Remove implementation of Panels on OSes other than ChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR feedback Created 4 years, 3 months 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
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // To see chrome.test.log messages execute the test like this:
6 // $ out/gn/browser_tests --gtest_filter=*PanelTest* --vmodule=test_api=1
7 chrome.test.log('executing background.js ...');
8
9 var oldNumberOfTabs;
10 var expectedWindowType;
11 chrome.test.runTests([
12 function testPanelBrowsingInstance() {
13 chrome.test.log('counting all the tabs (before window.open) ...');
14 chrome.tabs.query({}, function(tabs) {
15 oldNumberOfTabs = tabs.length;
16 chrome.test.log('oldNumberOfTabs = ' + oldNumberOfTabs);
17
18 // Note that the background-subframe has to be navigated to foo.com,
19 // because otherwise we would get the following error when calling
20 // window.open from panel-subframe.js:
21 // Unsafe JavaScript attempt to initiate navigation for frame with URL
22 // 'about:blank' from frame with URL
23 // 'http://foo.com:41191/extensions/.../panel-subframe.html'. The frame
24 // attempting navigation is neither same-origin with the target, nor is
25 // it the target's parent or opener.
26 chrome.test.getConfig(function(config) {
27 expectedWindowType = config.customArg;
28
29 var baseUri = 'http://foo.com:' + config.testServer.port +
30 '/extensions/api_test/window_open/panel_browsing_instance/';
31
32 chrome.test.log('navigating background-subframe ...');
33 var subframe = document.getElementById('background-subframe-id');
34 subframe.src = baseUri +
35 'background-subframe.html?extensionId=' + chrome.runtime.id;
36
37 // background-subframe.js will send a message back to us -
38 // backgroundSubframeNavigated - we will continue execution
39 // in the callback below.
40 });
41 });
42 }
43 ]);
44
45 chrome.runtime.onMessageExternal.addListener(
46 function(request, sender, sendResponse) {
47 if (request.backgroundSubframeNavigated) {
48 chrome.test.log('got callback from background-subframe.js ...');
49 chrome.test.log('creating the panel window ...');
50 chrome.windows.create(
51 { 'url': chrome.extension.getURL('panel.html'), 'type': 'panel' },
52 function(win) {
53 chrome.test.assertEq(expectedWindowType, win.type);
54 });
55
56 // panel.js will navigate panel-subframe and then panel-subframe.js will
57 // call window.open and send a message back to us (windowOpened) - we will
58 // continue execution below.
59 } else if (request.windowOpened) {
60 chrome.test.log('got callback from panel-subframe.js ...');
61 chrome.test.log('counting all the tabs (after window.open) ...');
62 chrome.tabs.query({}, function(tabs) {
63 var newNumberOfTabs = tabs.length;
64 chrome.test.log('newNumberOfTabs = ' + newNumberOfTabs);
65
66 switch (expectedWindowType) {
67 case 'panel':
68 chrome.test.assertEq(newNumberOfTabs, oldNumberOfTabs);
69 break;
70 case 'popup':
71 chrome.test.assertEq(newNumberOfTabs, oldNumberOfTabs + 1);
72 break;
73 default:
74 // Unexpected expected window type.
75 chrome.test.fail();
76 }
77 chrome.test.notifyPass();
78 });
79 }
80 });
81
82
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698