123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <!DOCTYPE html>
- <!--
- This file is responsible for setting up the inner peer half of an XPC
- communication channel. It instantiates a CrossPageChannel and attempts to
- connect to the outer peer. The XPC configuration should match that of the
- outer peer (i.e. same channel name, polling URIs, etc).
- -->
- <html>
- <!--
- Copyright 2009 The Closure Library Authors. All Rights Reserved.
- Use of this source code is governed by the Apache License, Version 2.0.
- See the COPYING file for details.
- -->
- <head>
- <title>XPC test inner frame</title>
- <script src="../../../base.js" type="text/javascript"></script>
- <script type="text/javascript">
- goog.require('goog.debug.Logger');
- goog.require('goog.dom');
- goog.require('goog.events');
- goog.require('goog.events.EventType');
- goog.require('goog.net.xpc.CrossPageChannel');
- </script>
- <script type="text/javascript">
- var channel;
- var queuedMessage;
- var OBJECT_RESULT_FROM_SERVICE = {'favorites': 'pie'};
- function clearDebug() {
- document.getElementById('debugDiv').innerHTML = '';
- }
- function instantiateChannel(cfg) {
- if (window.channel) {
- window.channel.dispose();
- }
- window.channel = new goog.net.xpc.CrossPageChannel(cfg);
- window.channel.registerService('echo', echoHandler);
- window.channel.registerService('response', responseHandler);
- connectChannel(
- parent.driver && parent.driver.innerFrameConnected ?
- goog.bind(parent.driver.innerFrameConnected, parent.driver) : null);
- }
- function connectChannel(opt_callback) {
- window.channel.connect(opt_callback || goog.nullFunction);
- }
- function sendEcho(payload) {
- window.channel.send('echo', payload);
- }
- function echoHandler(payload) {
- window.channel.send('response', payload);
- return OBJECT_RESULT_FROM_SERVICE;
- }
- function isConnected() {
- return window.channel && window.channel.isConnected();
- }
- function responseHandler(payload) {
- if (parent.driver && parent.driver.innerFrameGotResponse) {
- parent.driver.innerFrameGotResponse(payload);
- }
- }
- </script>
- </head>
- <body>
- <div style="position:absolute">
- Debug [<a href="#" onclick="clearDebug()">clear</a>]: <br>
- <div id=debugDiv style="border: 1px #000000 solid; font-size:xx-small"></div>
- </div>
- <script type="text/javascript">
- var debugDiv = goog.dom.getElement('debugDiv');
- var logger = goog.debug.Logger.getLogger('goog.net.xpc');
- logger.setLevel(goog.debug.Logger.Level.ALL);
- logger.addHandler(function(logRecord) {
- var msgElm = goog.dom.createDom('div');
- msgElm.innerHTML = logRecord.getMessage();
- goog.dom.appendChild(debugDiv, msgElm);
- });
- if (parent && parent.iframeLoadHandler) {
- parent.iframeLoadHandler();
- }
- </script>
- </body>
- </html>
|