| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 var g_browserBridge; | 5 var g_browserBridge; |
| 6 var g_mainView; | 6 var g_mainView; |
| 7 | 7 |
| 8 // TODO(eroman): Don't repeat the work of grouping, sorting, merging on every | 8 // TODO(eroman): Don't repeat the work of grouping, sorting, merging on every |
| 9 // redraw. Rather do it only once when one of its dependencies | 9 // redraw. Rather do it only once when one of its dependencies |
| 10 // change and cache the result. | 10 // change and cache the result. |
| (...skipping 982 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 993 */ | 993 */ |
| 994 function drawValueToCell(td, key, value) { | 994 function drawValueToCell(td, key, value) { |
| 995 // Get a text representation of the value. | 995 // Get a text representation of the value. |
| 996 var text = getTextValueForProperty(key, value); | 996 var text = getTextValueForProperty(key, value); |
| 997 | 997 |
| 998 // Apply the desired cell alignment. | 998 // Apply the desired cell alignment. |
| 999 var cellAlignment = KEY_PROPERTIES[key].cellAlignment; | 999 var cellAlignment = KEY_PROPERTIES[key].cellAlignment; |
| 1000 if (cellAlignment) | 1000 if (cellAlignment) |
| 1001 td.align = cellAlignment; | 1001 td.align = cellAlignment; |
| 1002 | 1002 |
| 1003 var parent = td; |
| 1004 |
| 1005 if (key == KEY_SOURCE_LOCATION) { |
| 1006 // Linkify the source column so it jumps to the source code. This doesn't |
| 1007 // take into account the particular code this build was compiled from, or |
| 1008 // local edits to source. It should however work correctly for top of tree |
| 1009 // builds. |
| 1010 var m = /^(.*) \[(\d+)\]$/.exec(text); |
| 1011 if (m) { |
| 1012 var link = addNode(td, 'a'); |
| 1013 // http://chromesrc.appspot.com is a server I wrote specifically for |
| 1014 // this task. It redirects to the appropriate source file; the file |
| 1015 // paths given by the compiler can be pretty crazy and different |
| 1016 // between platforms. |
| 1017 link.href = 'http://chromesrc.appspot.com/?path=' + |
| 1018 encodeURIComponent(m[1]) + '&line=' + m[2]; |
| 1019 parent = link; |
| 1020 } |
| 1021 } |
| 1022 |
| 1003 // String values can get pretty long. If the string contains no spaces, then | 1023 // String values can get pretty long. If the string contains no spaces, then |
| 1004 // CSS fails to wrap it, and it overflows the cell causing the table to get | 1024 // CSS fails to wrap it, and it overflows the cell causing the table to get |
| 1005 // really big. We solve this using a hack: insert a <wbr> element after | 1025 // really big. We solve this using a hack: insert a <wbr> element after |
| 1006 // every single character. This will allow the rendering engine to wrap the | 1026 // every single character. This will allow the rendering engine to wrap the |
| 1007 // value, and hence avoid it overflowing! | 1027 // value, and hence avoid it overflowing! |
| 1008 var kMinLengthBeforeWrap = 20; | 1028 var kMinLengthBeforeWrap = 20; |
| 1009 | 1029 |
| 1010 addText(td, text.substr(0, kMinLengthBeforeWrap)); | 1030 addText(parent, text.substr(0, kMinLengthBeforeWrap)); |
| 1011 for (var i = kMinLengthBeforeWrap; i < text.length; ++i) { | 1031 for (var i = kMinLengthBeforeWrap; i < text.length; ++i) { |
| 1012 addNode(td, 'wbr'); | 1032 addNode(parent, 'wbr'); |
| 1013 addText(td, text.substr(i, 1)); | 1033 addText(parent, text.substr(i, 1)); |
| 1014 } | 1034 } |
| 1015 } | 1035 } |
| 1016 | 1036 |
| 1017 function drawTableBody(tbody, rows, columns) { | 1037 function drawTableBody(tbody, rows, columns) { |
| 1018 for (var i = 0; i < rows.length; ++i) { | 1038 for (var i = 0; i < rows.length; ++i) { |
| 1019 var e = rows[i]; | 1039 var e = rows[i]; |
| 1020 | 1040 |
| 1021 var tr = addNode(tbody, 'tr'); | 1041 var tr = addNode(tbody, 'tr'); |
| 1022 | 1042 |
| 1023 for (var c = 0; c < columns.length; ++c) { | 1043 for (var c = 0; c < columns.length; ++c) { |
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1503 groupKey.push(entry); | 1523 groupKey.push(entry); |
| 1504 } | 1524 } |
| 1505 | 1525 |
| 1506 return JSON.stringify(groupKey); | 1526 return JSON.stringify(groupKey); |
| 1507 }; | 1527 }; |
| 1508 }, | 1528 }, |
| 1509 }; | 1529 }; |
| 1510 | 1530 |
| 1511 return MainView; | 1531 return MainView; |
| 1512 })(); | 1532 })(); |
| OLD | NEW |