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

Side by Side Diff: Source/WebCore/inspector/front-end/DebuggerPresentationModel.js

Issue 8382007: Merge 97975 - Web Inspector: Advanced search results should keep working after pretty print toggled. (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/912/
Patch Set: Created 9 years, 2 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
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 ConsoleMessagesCleared: "console-messages-cleared", 61 ConsoleMessagesCleared: "console-messages-cleared",
62 BreakpointAdded: "breakpoint-added", 62 BreakpointAdded: "breakpoint-added",
63 BreakpointRemoved: "breakpoint-removed", 63 BreakpointRemoved: "breakpoint-removed",
64 DebuggerPaused: "debugger-paused", 64 DebuggerPaused: "debugger-paused",
65 DebuggerResumed: "debugger-resumed", 65 DebuggerResumed: "debugger-resumed",
66 CallFrameSelected: "call-frame-selected", 66 CallFrameSelected: "call-frame-selected",
67 ExecutionLineChanged: "execution-line-changed" 67 ExecutionLineChanged: "execution-line-changed"
68 } 68 }
69 69
70 WebInspector.DebuggerPresentationModel.prototype = { 70 WebInspector.DebuggerPresentationModel.prototype = {
71 createLinkifier: function() 71 /**
72 * @param {WebInspector.DebuggerPresentationModel.LinkifierFormatter=} forma tter
73 */
74 createLinkifier: function(formatter)
72 { 75 {
73 return new WebInspector.DebuggerPresentationModel.Linkifier(this); 76 return new WebInspector.DebuggerPresentationModel.Linkifier(this, format ter);
74 }, 77 },
75 78
76 /** 79 /**
77 * @param {WebInspector.PresentationCallFrame} callFrame 80 * @param {WebInspector.PresentationCallFrame} callFrame
78 * @return {WebInspector.Placard} 81 * @return {WebInspector.Placard}
79 */ 82 */
80 createPlacard: function(callFrame) 83 createPlacard: function(callFrame)
81 { 84 {
82 var title = callFrame._callFrame.functionName || WebInspector.UIString(" (anonymous function)"); 85 var title = callFrame._callFrame.functionName || WebInspector.UIString(" (anonymous function)");
83 var placard = new WebInspector.Placard(title, ""); 86 var placard = new WebInspector.Placard(title, "");
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Eve nts.ConsoleMessagesCleared); 358 this.dispatchEventToListeners(WebInspector.DebuggerPresentationModel.Eve nts.ConsoleMessagesCleared);
356 }, 359 },
357 360
358 /** 361 /**
359 * @param {WebInspector.UISourceCode} uiSourceCode 362 * @param {WebInspector.UISourceCode} uiSourceCode
360 * @param {number} lineNumber 363 * @param {number} lineNumber
361 */ 364 */
362 continueToLine: function(uiSourceCode, lineNumber) 365 continueToLine: function(uiSourceCode, lineNumber)
363 { 366 {
364 // FIXME: use RawSourceCode.uiLocationToRawLocation. 367 // FIXME: use RawSourceCode.uiLocationToRawLocation.
365 var rawLocation = uiSourceCode.rawSourceCode.sourceMapping.uiLocationToR awLocation(uiSourceCode, lineNumber); 368 var rawLocation = uiSourceCode.rawSourceCode.sourceMapping.uiLocationToR awLocation(uiSourceCode, lineNumber, 0);
366 WebInspector.debuggerModel.continueToLocation(rawLocation); 369 WebInspector.debuggerModel.continueToLocation(rawLocation);
367 }, 370 },
368 371
369 /** 372 /**
370 * @param {WebInspector.UISourceCode} uiSourceCode 373 * @param {WebInspector.UISourceCode} uiSourceCode
371 * @return {Array.<WebInspector.Breakpoint>} 374 * @return {Array.<WebInspector.Breakpoint>}
372 */ 375 */
373 breakpointsForUISourceCode: function(uiSourceCode) 376 breakpointsForUISourceCode: function(uiSourceCode)
374 { 377 {
375 var breakpointsMap = this._breakpointManager.breakpointsForUISourceCode( uiSourceCode); 378 var breakpointsMap = this._breakpointManager.breakpointsForUISourceCode( uiSourceCode);
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 if (userCallback) 759 if (userCallback)
757 userCallback(error); 760 userCallback(error);
758 if (!error) 761 if (!error)
759 this._presentationModel._updateBreakpointsAfterLiveEdit(uiSource Code, oldContent, content); 762 this._presentationModel._updateBreakpointsAfterLiveEdit(uiSource Code, oldContent, content);
760 } 763 }
761 this._presentationModel.setScriptSource(uiSourceCode, content, callback. bind(this)); 764 this._presentationModel.setScriptSource(uiSourceCode, content, callback. bind(this));
762 } 765 }
763 } 766 }
764 767
765 /** 768 /**
769 * @interface
770 */
771 WebInspector.DebuggerPresentationModel.LinkifierFormatter = function()
772 {
773 }
774
775 WebInspector.DebuggerPresentationModel.LinkifierFormatter.prototype = {
776 /**
777 * @param {WebInspector.RawSourceCode} rawSourceCode
778 * @param {Element} anchor
779 */
780 formatRawSourceCodeAnchor: function(rawSourceCode, anchor) { },
781 }
782
783 /**
766 * @constructor 784 * @constructor
785 * @implements {WebInspector.DebuggerPresentationModel.LinkifierFormatter}
786 * @param {number=} maxLength
787 */
788 WebInspector.DebuggerPresentationModel.DefaultLinkifierFormatter = function(maxL ength)
789 {
790 this._maxLength = maxLength;
791 }
792
793 WebInspector.DebuggerPresentationModel.DefaultLinkifierFormatter.prototype = {
794 /**
795 * @param {WebInspector.RawSourceCode} rawSourceCode
796 * @param {Element} anchor
797 */
798 formatRawSourceCodeAnchor: function(rawSourceCode, anchor)
799 {
800 var uiLocation = rawSourceCode.sourceMapping.rawLocationToUILocation(anc hor.rawLocation);
801
802 anchor.textContent = WebInspector.formatLinkText(uiLocation.uiSourceCode .url, uiLocation.lineNumber);
803
804 var text = WebInspector.formatLinkText(uiLocation.uiSourceCode.url, uiLo cation.lineNumber);
805 if (this._maxLength)
806 text = text.trimMiddle(this._maxLength);
807 anchor.textContent = text;
808 }
809 }
810
811 WebInspector.DebuggerPresentationModel.DefaultLinkifierFormatter.prototype.__pro to__ = WebInspector.DebuggerPresentationModel.LinkifierFormatter.prototype;
812
813 /**
814 * @constructor
767 * @param {WebInspector.DebuggerPresentationModel} model 815 * @param {WebInspector.DebuggerPresentationModel} model
816 * @param {WebInspector.DebuggerPresentationModel.LinkifierFormatter=} formatter
768 */ 817 */
769 WebInspector.DebuggerPresentationModel.Linkifier = function(model) 818 WebInspector.DebuggerPresentationModel.Linkifier = function(model, formatter)
770 { 819 {
771 this._model = model; 820 this._model = model;
821 this._formatter = formatter || new WebInspector.DebuggerPresentationModel.De faultLinkifierFormatter();
772 this._anchorsForRawSourceCode = {}; 822 this._anchorsForRawSourceCode = {};
773 } 823 }
774 824
775 WebInspector.DebuggerPresentationModel.Linkifier.prototype = { 825 WebInspector.DebuggerPresentationModel.Linkifier.prototype = {
776 /** 826 /**
777 * @param {string} sourceURL 827 * @param {string} sourceURL
778 * @param {number=} lineNumber 828 * @param {number=} lineNumber
779 * @param {number=} columnNumber 829 * @param {number=} columnNumber
780 * @param {string=} classes 830 * @param {string=} classes
781 */ 831 */
782 linkifyLocation: function(sourceURL, lineNumber, columnNumber, classes) 832 linkifyLocation: function(sourceURL, lineNumber, columnNumber, classes)
783 { 833 {
834 var rawSourceCode = this._model._rawSourceCodeForScriptWithURL(sourceURL );
835 if (!rawSourceCode)
836 return this.linkifyResource(sourceURL, lineNumber, classes);
837
838 return this.linkifyRawSourceCode(rawSourceCode, lineNumber, columnNumber , classes);
839 },
840
841 /**
842 * @param {string} sourceURL
843 * @param {number=} lineNumber
844 * @param {string=} classes
845 */
846 linkifyResource: function(sourceURL, lineNumber, classes)
847 {
784 var linkText = WebInspector.formatLinkText(sourceURL, lineNumber); 848 var linkText = WebInspector.formatLinkText(sourceURL, lineNumber);
785 var anchor = WebInspector.linkifyURLAsNode(sourceURL, linkText, classes, false); 849 var anchor = WebInspector.linkifyURLAsNode(sourceURL, linkText, classes, false);
850 anchor.setAttribute("preferred_panel", "resources");
851 anchor.setAttribute("line_number", lineNumber);
852 return anchor;
853 },
854
855 /**
856 * @param {WebInspector.RawSourceCode} rawSourceCode
857 * @param {number=} lineNumber
858 * @param {number=} columnNumber
859 * @param {string=} classes
860 */
861 linkifyRawSourceCode: function(rawSourceCode, lineNumber, columnNumber, clas ses)
862 {
863 var anchor = WebInspector.linkifyURLAsNode(rawSourceCode.url, "", classe s, false);
786 anchor.rawLocation = { lineNumber: lineNumber, columnNumber: columnNumbe r }; 864 anchor.rawLocation = { lineNumber: lineNumber, columnNumber: columnNumbe r };
787 865
788 var rawSourceCode = this._model._rawSourceCodeForScriptWithURL(sourceURL );
789 if (!rawSourceCode) {
790 anchor.setAttribute("preferred_panel", "resources");
791 anchor.setAttribute("line_number", lineNumber);
792 return anchor;
793 }
794
795 var anchors = this._anchorsForRawSourceCode[rawSourceCode.id]; 866 var anchors = this._anchorsForRawSourceCode[rawSourceCode.id];
796 if (!anchors) { 867 if (!anchors) {
797 anchors = []; 868 anchors = [];
798 this._anchorsForRawSourceCode[rawSourceCode.id] = anchors; 869 this._anchorsForRawSourceCode[rawSourceCode.id] = anchors;
799 rawSourceCode.addEventListener(WebInspector.RawSourceCode.Events.Sou rceMappingUpdated, this._updateSourceAnchors, this); 870 rawSourceCode.addEventListener(WebInspector.RawSourceCode.Events.Sou rceMappingUpdated, this._updateSourceAnchors, this);
800 } 871 }
801 872
802 if (rawSourceCode.sourceMapping) 873 if (rawSourceCode.sourceMapping)
803 this._updateAnchor(rawSourceCode, anchor); 874 this._updateAnchor(rawSourceCode, anchor);
804 anchors.push(anchor); 875 anchors.push(anchor);
(...skipping 20 matching lines...) Expand all
825 this._updateAnchor(rawSourceCode, anchors[i]); 896 this._updateAnchor(rawSourceCode, anchors[i]);
826 }, 897 },
827 898
828 /** 899 /**
829 * @param {WebInspector.RawSourceCode} rawSourceCode 900 * @param {WebInspector.RawSourceCode} rawSourceCode
830 * @param {Element} anchor 901 * @param {Element} anchor
831 */ 902 */
832 _updateAnchor: function(rawSourceCode, anchor) 903 _updateAnchor: function(rawSourceCode, anchor)
833 { 904 {
834 var uiLocation = rawSourceCode.sourceMapping.rawLocationToUILocation(anc hor.rawLocation); 905 var uiLocation = rawSourceCode.sourceMapping.rawLocationToUILocation(anc hor.rawLocation);
835 anchor.textContent = WebInspector.formatLinkText(uiLocation.uiSourceCode .url, uiLocation.lineNumber);
836 anchor.setAttribute("preferred_panel", "scripts"); 906 anchor.setAttribute("preferred_panel", "scripts");
837 anchor.uiSourceCode = uiLocation.uiSourceCode; 907 anchor.uiSourceCode = uiLocation.uiSourceCode;
838 anchor.lineNumber = uiLocation.lineNumber; 908 anchor.lineNumber = uiLocation.lineNumber;
909
910 this._formatter.formatRawSourceCodeAnchor(rawSourceCode, anchor);
839 } 911 }
840 } 912 }
841 913
842 WebInspector.DebuggerPresentationModelResourceBinding.prototype.__proto__ = WebI nspector.ResourceDomainModelBinding.prototype; 914 WebInspector.DebuggerPresentationModelResourceBinding.prototype.__proto__ = WebI nspector.ResourceDomainModelBinding.prototype;
843 915
844 /** 916 /**
845 * @type {?WebInspector.DebuggerPresentationModel} 917 * @type {?WebInspector.DebuggerPresentationModel}
846 */ 918 */
847 WebInspector.debuggerPresentationModel = null; 919 WebInspector.debuggerPresentationModel = null;
OLDNEW
« no previous file with comments | « Source/WebCore/inspector/front-end/CompilerSourceMapping.js ('k') | Source/WebCore/inspector/front-end/RawSourceCode.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698