|
- /*
- * DebuggingSupport.js
- * Keynote HTML Player
- *
- * Responsibility: Tungwei Cheng
- * Copyright (c) 2009-2013 Apple Inc. All rights reserved.
- */
-
- // Set this to "false" to disable ALL debugging logic
- var gDebug = false;
-
- // Set this to "false" to disable debug messages when running on the iPhone or iPad
- var gDebugOnMobile = false;
-
- // Globals:
- // ===============================================================
-
- var gNumDebugMessagesSent = 0;
- var gNumDebugMessagesQueued = 0;
- var gDebugMessageQueue = new Array();
- var gDebugMessageRequest = null;
- var gDebugLastClassName = "";
- var gDebugLastMethodName = "";
-
- // Enable these constants to simulate various conditions/errors:
-
- var gDebugSimulateSlowTextureDownload = false;
- var gDebugSimulateTextureLoadFailure = false;
- var gDebugSimulateScriptDownloadFailure = false;
-
- // Constants:
- // ===============================================================
-
- var kDebugFunction = "function";
- var kDebugSurpressMessage = "!NoOp_!NoOp";
-
- //----------------------------------------------------------------------
-
- var kDebugSetupShowController = kDebugFunction + "_" + "setupShowController";
-
- //----------------------------------------------------------------------
-
- var kDebugShowController = "!ShowController";
-
- var kDebugShowController_AdvanceToNextBuild = kDebugShowController + "_" + "!advanceToNextBuild";
- var kDebugShowController_AdvanceToNextSlide = kDebugShowController + "_" + "!advanceToNextSlide";
- var kDebugShowController_DoIdleProcessing = kDebugShowController + "_" + "!doIdleProcessing";
- var kDebugShowController_GoBackToPreviousBuild = kDebugShowController + "_" + "!goBackToPreviousBuild";
- var kDebugShowController_GoBackToPreviousSlide = kDebugShowController + "_" + "!goBackToPreviousSlide";
- var kDebugShowController_HandleScriptDidDownloadEvent = kDebugShowController + "_" + "!handleScriptDidDownloadEvent";
- var kDebugShowController_HandleScriptDidNotDownloadEvent = kDebugShowController + "_" + "!handleScriptDidNotDownloadEvent";
- var kDebugShowController_JumpToScene = kDebugShowController + "_" + "!jumpToScene";
- var kDebugShowController_OnKeyPress = kDebugShowController + "_" + "!onKeyPress";
-
- //----------------------------------------------------------------------
-
- var kDebugTouchController = "!TouchController";
-
- var kDebugTouchController_HandleGestureEndEvent = kDebugTouchController + "_" + "!handleGestureEndEvent";
- var kDebugTouchController_HandleGestureStartEvent = kDebugTouchController + "_" + "!handleGestureStartEvent";
- var kDebugTouchController_HandleTouchCancelEvent = kDebugTouchController + "_" + "!handleTouchCancelEvent";
- var kDebugTouchController_HandleTouchCancelEvent = kDebugTouchController + "_" + "!handleTouchMoveEvent";
- var kDebugTouchController_HandleTouchEndEvent = kDebugTouchController + "_" + "!handleTouchEndEvent";
- var kDebugTouchController_HandleTouchStartEvent = kDebugTouchController + "_" + "!handleTouchStartEvent";
- var kDebugTouchController_Initialize = kDebugTouchController + "_" + "!initialize";
- var kDebugTouchController_IsTouchWithinTrackArea = kDebugTouchController + "_" + "!isTouchWithinTrackArea";
- var kDebugTouchController_SetTrackArea = kDebugTouchController + "_" + "!setTrackArea";
-
- //----------------------------------------------------------------------
-
- var kDebugScriptMangaer = "!ScriptManager";
-
- var kDebugScriptMangaer_DownloadScript = kDebugScriptMangaer + "_" + "!downloadScript";
-
- //----------------------------------------------------------------------
-
- var kDebugTimer = "DebugTimer";
-
- var kDebugTimer_AdvanceToNextBuild = kDebugTimer + "_" + "!advanceToNextBuild";
- var kDebugTimer_CreateAnimationsForScene = kDebugTimer + "_" + "!createAnimationsForScene";
- var kDebugTimer_ApplyAnimationsForScene = kDebugTimer + "_" + "!applyAnimationsForScene";
- var kDebugTimer_PreProcessSceneAnimations = kDebugTimer + "_" + "!preProcessSceneAnimations";
- var kDebugTimer_AdvanceToNextBuild_to_ApplyAnimations = kDebugTimer + "_" + "!preProcessSceneAnimations_to_ApplyAnimations";
- var kDebugTimer_JumpToScene = kDebugTimer + "_" + "!jumpToScene";
- var kDebugTimer_DisplayScene = kDebugTimer + "_" + "!displayScene";
-
- // Functions:
- // ===============================================================
-
- function debugWarning(sender, messageText) {
- if (gDebug === false) {
- return;
- }
- debugSendMessage(sender, "WARNING: " + messageText, true);
- }
-
- function debugMessageAlways(sender, messageText) {
- debugSendMessage(sender, messageText, true);
- }
-
- function debugMessage(sender, messageText) {
- if (gDebug == false) {
- return;
- }
-
- if ((gDevice == kDeviceMobile) && (gDebugOnMobile == false)) {
- return;
- }
-
- debugSendMessage(sender, messageText, false);
- }
-
- function debugSendMessage(sender, messageText, always) {
- var indexOfUnderscore = sender.indexOf("_");
- var className = sender.substring(0, indexOfUnderscore);
- var methodName = sender.substring(indexOfUnderscore + 1);
- var suppress = false;
-
- if (className[0] == "!") {
- className = className.substring(1);
- suppress = true;
- }
-
- if (methodName[0] == "!") {
- methodName = methodName.substring(1);
- suppress = true;
- }
-
- if (methodName[0] == "+") {
- methodName = methodName.substring(1);
- always = true;
- }
-
- if ((suppress == true) && (always == false)) {
- return;
- }
-
- var prefix = "";
-
- if (messageText == null) {
- messageText = "";
- }
-
- if (messageText[0] != "-" || className != gDebugLastClassName || methodName != gDebugLastMethodName) {
- if (className == kDebugTimer) {
- prefix = sender + ": ";
- }
- else if (className == kDebugFunction) {
- prefix = methodName + "() ";
- }
- else {
- prefix = className + "." + methodName + "() ";
- }
- } else {
- prefix = "";
- }
-
- gDebugLastClassName = className;
- gDebugLastMethodName = methodName;
-
- if (gDevice == kDeviceMobile) {
- gNumDebugMessagesSent++;
-
- var formattedMessageText = escape(gNumDebugMessagesSent + ": " + prefix + messageText);
-
- gDebugMessageQueue[gNumDebugMessagesQueued] = formattedMessageText;
- gNumDebugMessagesQueued++;
-
- if (gNumDebugMessagesQueued == 1) {
- debugCheckMessageQueue();
- }
- } else {
- if (window.console) {
- window.console.log( prefix + messageText );
- }
- }
- }
-
- function debugSendNextMessageInQueue() {
- var formattedMessageText = gDebugMessageQueue[0];
-
- gNumDebugMessagesQueued--;
- gDebugMessageQueue.splice(0,1);
-
- var messageUrl = '/debugMessage.rhtml?message="' + formattedMessageText + '"';
-
- new Ajax.Request( messageUrl, {
- method: "get",
- onSuccess: function(transport) {debugMessageWasSent(transport);},
- onFailure: function(transport) {debugMessageWasNotSent(transport);}
- });
- }
-
- function debugMessageWasSent(transport) {
- debugCheckMessageQueue();
- }
-
- function debugMessageWasNotSent(transport) {
- debugCheckMessageQueue();
- }
-
- function debugCheckMessageQueue() {
- if (gNumDebugMessagesQueued > 0) {
- setTimeout(debugSendNextMessageInQueue, 10);
- }
- }
-
- var DebugTimer = Class.create({
- initialize: function(timerId) {
- var indexOfUnderscore = timerId.indexOf("_");
- var timerName = timerId.substring( indexOfUnderscore + 1 );
-
- if (timerName[0] != "!") {
- this.id = timerId;
- this.startTime = new Date();
-
- debugMessageAlways(timerId, "Start");
- } else {
- this.startTime = null;
- }
- },
-
- stop: function() {
- if (this.startTime != null) {
- var endTime = new Date();
- var elapsedTime = endTime - this.startTime;
-
- debugMessageAlways(this.id , "Stop - Elapsed Time: " + elapsedTime);
- }
- }
- });
-
- function debugStopTimer(timer) {
- if (timer) {
- timer.stop();
- }
- }
-
- var debugDomDumpLineNumber = 0;
-
- function debugDumpDomFrom(rootObject, context) {
- var kDebugDumpDomFrom = kDebugFunction + "_" + "debugDumpDomFrom";
-
- debugDomDumpLineNumber = 0;
- debugMessageAlways(kDebugDumpDomFrom, "------------------ S T A R T O F D O M D U M P --- Context: " + context);
- debugRecursivelyDumpDomFrom(rootObject, "");
- debugMessageAlways(kDebugDumpDomFrom, "------------------ E N D O F D O M D U M P");
- }
-
- function debugRecursivelyDumpDomFrom(object, indentPadding) {
- var kDebugRecursivelyDumpDomFrom = kDebugFunction + "_" + "recursivelyDumpDomFrom";
- var objectId = object.id;
- var objectTag = object.nodeName.toLowerCase();
-
- if (objectTag == "#text") {
- return;
- }
-
- debugMessageAlways( kDebugRecursivelyDumpDomFrom, "-" + (debugDomDumpLineNumber++) + indentPadding + "<" + objectTag + " id='" + objectId + "'>");
-
- var iChild;
-
- for (iChild = 0; iChild < object.childNodes.length; iChild++) {
- var child = object.childNodes[iChild];
- recursivelyDumpDomFrom(child, indentPadding + " ");
- }
-
- if (objectTag == "img") {
- return;
- }
-
- debugMessageAlways(kDebugRecursivelyDumpDomFrom, "-" + (debugDomDumpLineNumber++) + indentPadding + "</" + objectTag + ">");
- }
-
-
|