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

Unified Diff: chrome/test/data/extensions/api_test/messaging/connect/test.js

Issue 709933002: Add frameId to MessageSender (extension messaging API) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: frame_id -> pid 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/data/extensions/api_test/messaging/connect/page.js ('k') | extensions/common/api/runtime.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/extensions/api_test/messaging/connect/test.js
diff --git a/chrome/test/data/extensions/api_test/messaging/connect/test.js b/chrome/test/data/extensions/api_test/messaging/connect/test.js
index d76997fd34bccc78feb735d7c6a85a1ca5f24eed..29a870e65f0d226d010700fbb73708ed50350405 100644
--- a/chrome/test/data/extensions/api_test/messaging/connect/test.js
+++ b/chrome/test/data/extensions/api_test/messaging/connect/test.js
@@ -70,6 +70,7 @@ chrome.test.getConfig(function(config) {
listenOnce(chrome.runtime.onConnect, function(port) {
chrome.test.assertEq({
tab: testTab,
+ frameId: 0, // Main frame
url: testTab.url,
id: chrome.runtime.id
}, port.sender);
@@ -95,6 +96,7 @@ chrome.test.getConfig(function(config) {
function(request, sender, sendResponse) {
chrome.test.assertEq({
tab: testTab,
+ frameId: 0, // Main frame
url: testTab.url,
id: chrome.runtime.id
}, sender);
@@ -116,6 +118,51 @@ chrome.test.getConfig(function(config) {
chrome.test.log("sendMessageFromTab: sent first message to tab");
},
+ // Tests that a message from a child frame has a correct frameId.
+ function sendMessageFromFrameInTab() {
+ var senderFrameUrl = {};
+ listenForever(
+ chrome.runtime.onMessage,
+ function(request, sender, sendResponse) {
+ // Child frames have a positive frameId.
+ chrome.test.assertTrue(sender.frameId >= 1,
+ 'frameId must be positive, but it is ' + sender.frameId);
+ chrome.test.assertFalse(sender.frameId in messageSenders,
+ 'frameId ' + sender.frameId + ' was already seen before!');
+ senderFrameUrl[sender.frameId] = request.frameUrl;
+ delete sender.frameId;
+ chrome.test.assertEq({
not at google - send to devlin 2014/11/11 22:23:00 Test is better now, but I think you can make it ev
robwu 2014/11/11 22:44:38 The list of frames *could* potentially contain mor
+ tab: testTab,
+ url: request.frameUrl,
+ id: chrome.runtime.id
+ }, sender);
+
+ if (Object.keys(senderFrameUrl).length == 2) {
+ // Now test whether the frameId that we got back makes sense...
+ chrome.webNavigation.getAllFrames({
+ tabId: testTab.id
+ }, function(details) {
+ var framesFound = 0;
+ details.forEach(function(frame) {
+ var url = senderFrameUrl[frame.frameId];
+ if (url) {
+ chrome.test.assertEq(frame.url, url);
+ ++framesFound;
+ }
+ });
+ chrome.test.assertEq(framesFound, 2);
+ doneListening();
+ });
+ }
+ }
+ );
+
+ var port = chrome.tabs.connect(testTab.id);
+ port.postMessage({testSendMessageFromFrame: true});
+ port.disconnect();
+ chrome.test.log("sendMessageFromFrameInTab: send 1st message to tab");
+ },
+
// Tests error handling when sending a request from a content script to an
// invalid extension.
function sendMessageFromTabError() {
« no previous file with comments | « chrome/test/data/extensions/api_test/messaging/connect/page.js ('k') | extensions/common/api/runtime.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698