Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Merge enhancements from trunk. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | csp-nonce |
Files: | files | file ages | folders |
SHA3-256: |
17b9ecbea6dc58d912e8612570e63d97 |
User & Date: | drh 2018-08-25 17:50:18.820 |
Context
2018-08-26
| ||
03:35 | Applied the new CSP nonce to the <script> tags in the header for the Enhanced Original, Eagle, and Xekri skins, else the clock in the upper right breaks and Chrome gives an error about the CSP violation. ... (Closed-Leaf check-in: b9d86ed2 user: wyoung tags: csp-nonce) | |
2018-08-25
| ||
17:50 | Merge enhancements from trunk. ... (check-in: 17b9ecbe user: drh tags: csp-nonce) | |
17:24 | Merged forum-skin-links branch to trunk. ... (check-in: 91c2b1b6 user: wyoung tags: trunk) | |
2018-08-23
| ||
02:57 | Put all javascript inline using a nonce. Disallow 'unsafe-inline' CSP for javascript. ... (check-in: 89c40851 user: drh tags: csp-nonce) | |
Changes
Changes to skins/ardoise/header.txt.
︙ | ︙ | |||
39 40 41 42 43 44 45 46 47 48 49 50 51 52 | } if {[hascap oh]} { menulink /dir?ci=tip Files } if {[hascap o]} { menulink /brlist Branches menulink /taglist Tags } if {[hascap r]} { menulink /ticket Tickets } if {[hascap j]} { menulink /wiki Wiki } | > > > | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | } if {[hascap oh]} { menulink /dir?ci=tip Files } if {[hascap o]} { menulink /brlist Branches menulink /taglist Tags } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { menulink /forum Forum } if {[hascap r]} { menulink /ticket Tickets } if {[hascap j]} { menulink /wiki Wiki } |
︙ | ︙ |
Changes to skins/black_and_white/header.txt.
︙ | ︙ | |||
20 21 22 23 24 25 26 27 28 29 30 31 32 33 | } if {[anoncap oh]} { html "<a href='$home/tree?ci=tip'>Files</a>\n" } if {[anoncap o]} { html "<a href='$home/brlist'>Branches</a>\n" html "<a href='$home/taglist'>Tags</a>\n" } if {[anoncap r]} { html "<a href='$home/ticket'>Tickets</a>\n" } if {[anoncap j]} { html "<a href='$home/wiki'>Wiki</a>\n" } | > > > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | } if {[anoncap oh]} { html "<a href='$home/tree?ci=tip'>Files</a>\n" } if {[anoncap o]} { html "<a href='$home/brlist'>Branches</a>\n" html "<a href='$home/taglist'>Tags</a>\n" } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { html "<a href='$home/forum'>Forum</a>\n" } if {[anoncap r]} { html "<a href='$home/ticket'>Tickets</a>\n" } if {[anoncap j]} { html "<a href='$home/wiki'>Wiki</a>\n" } |
︙ | ︙ |
Changes to skins/blitz/header.txt.
︙ | ︙ | |||
43 44 45 46 47 48 49 50 51 52 53 54 55 56 | } if {[hascap oh]} { menulink /dir?ci=tip Files } if {[hascap o]} { menulink /brlist Branches menulink /taglist Tags } if {[hascap r]} { menulink /ticket Tickets } if {[hascap j]} { menulink /wiki Wiki } | > > > | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | } if {[hascap oh]} { menulink /dir?ci=tip Files } if {[hascap o]} { menulink /brlist Branches menulink /taglist Tags } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { menulink /forum Forum } if {[hascap r]} { menulink /ticket Tickets } if {[hascap j]} { menulink /wiki Wiki } |
︙ | ︙ |
Changes to skins/blitz_no_logo/header.txt.
︙ | ︙ | |||
40 41 42 43 44 45 46 47 48 49 50 51 52 53 | } if {[hascap oh]} { menulink /dir?ci=tip Files } if {[hascap o]} { menulink /brlist Branches menulink /taglist Tags } if {[hascap r]} { menulink /ticket Tickets } if {[hascap j]} { menulink /wiki Wiki } | > > > | 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | } if {[hascap oh]} { menulink /dir?ci=tip Files } if {[hascap o]} { menulink /brlist Branches menulink /taglist Tags } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { menulink /forum Forum } if {[hascap r]} { menulink /ticket Tickets } if {[hascap j]} { menulink /wiki Wiki } |
︙ | ︙ |
Changes to skins/bootstrap/header.txt.
︙ | ︙ | |||
75 76 77 78 79 80 81 82 83 84 85 86 87 88 | html "<li><a href='$home/brlist'>Branches</a></li>\n" } if {[string compare $current_page "taglist"] == 0} { html "<li class='active'><a href='$home/taglist'>Tags</a></li>\n" } else { html "<li><a href='$home/taglist'>Tags</a></li>\n" } } if {[hascap r]} { if {[string compare $current_page "reportlist"] == 0} { html "<li class='active'><a href='$home/reportlist'>Tickets</a></li>\n" } else { html "<li><a href='$home/reportlist'>Tickets</a></li>\n" } | > > > > > > > | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | html "<li><a href='$home/brlist'>Branches</a></li>\n" } if {[string compare $current_page "taglist"] == 0} { html "<li class='active'><a href='$home/taglist'>Tags</a></li>\n" } else { html "<li><a href='$home/taglist'>Tags</a></li>\n" } } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { if {[string compare $current_page "forum"] == 0} { html "<li class='active'><a href='$home/forum'>Forum</a></li>\n" } else { html "<li><a href='$home/forum'>Forum</a></li>\n" } } if {[hascap r]} { if {[string compare $current_page "reportlist"] == 0} { html "<li class='active'><a href='$home/reportlist'>Tickets</a></li>\n" } else { html "<li><a href='$home/reportlist'>Tickets</a></li>\n" } |
︙ | ︙ |
Changes to skins/default/header.txt.
︙ | ︙ | |||
25 26 27 28 29 30 31 32 33 34 35 36 37 38 | } if {[hascap oh]} { menulink /dir?ci=tip Files } if {[hascap o]} { menulink /brlist Branches menulink /taglist Tags } if {[hascap r]} { menulink /ticket Tickets } if {[hascap j]} { menulink /wiki Wiki } | > > > | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | } if {[hascap oh]} { menulink /dir?ci=tip Files } if {[hascap o]} { menulink /brlist Branches menulink /taglist Tags } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { menulink /forum Forum } if {[hascap r]} { menulink /ticket Tickets } if {[hascap j]} { menulink /wiki Wiki } |
︙ | ︙ |
Changes to skins/eagle/header.txt.
︙ | ︙ | |||
104 105 106 107 108 109 110 111 112 113 114 115 116 117 | } if {[anoncap oh]} { menulink /dir?ci=tip Files } if {[anoncap o]} { menulink /brlist Branches menulink /taglist Tags } if {[anoncap r]} { menulink /ticket Tickets } if {[anoncap j]} { menulink /wiki Wiki } | > > > | 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | } if {[anoncap oh]} { menulink /dir?ci=tip Files } if {[anoncap o]} { menulink /brlist Branches menulink /taglist Tags } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { menulink /forum Forum } if {[anoncap r]} { menulink /ticket Tickets } if {[anoncap j]} { menulink /wiki Wiki } |
︙ | ︙ |
Changes to skins/enhanced1/header.txt.
︙ | ︙ | |||
104 105 106 107 108 109 110 111 112 113 114 115 116 117 | } if {[anoncap oh]} { menulink /dir?ci=tip Files } if {[anoncap o]} { menulink /brlist Branches menulink /taglist Tags } if {[anoncap r]} { menulink /ticket Tickets } if {[anoncap j]} { menulink /wiki Wiki } | > > > | 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | } if {[anoncap oh]} { menulink /dir?ci=tip Files } if {[anoncap o]} { menulink /brlist Branches menulink /taglist Tags } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { menulink /forum Forum } if {[anoncap r]} { menulink /ticket Tickets } if {[anoncap j]} { menulink /wiki Wiki } |
︙ | ︙ |
Changes to skins/khaki/header.txt.
︙ | ︙ | |||
18 19 20 21 22 23 24 25 26 27 28 29 30 31 | } if {[anoncap oh]} { html "<a href='$home/tree?ci=tip'>Files</a>\n" } if {[anoncap o]} { html "<a href='$home/brlist'>Branches</a>\n" html "<a href='$home/taglist'>Tags</a>\n" } if {[anoncap r]} { html "<a href='$home/ticket'>Tickets</a>\n" } if {[anoncap j]} { html "<a href='$home/wiki'>Wiki</a>\n" } | > > > | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | } if {[anoncap oh]} { html "<a href='$home/tree?ci=tip'>Files</a>\n" } if {[anoncap o]} { html "<a href='$home/brlist'>Branches</a>\n" html "<a href='$home/taglist'>Tags</a>\n" } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { html "<a href='$home/forum'>Forum</a>\n" } if {[anoncap r]} { html "<a href='$home/ticket'>Tickets</a>\n" } if {[anoncap j]} { html "<a href='$home/wiki'>Wiki</a>\n" } |
︙ | ︙ |
Changes to skins/original/header.txt.
︙ | ︙ | |||
19 20 21 22 23 24 25 26 27 28 29 30 31 32 | } if {[anoncap oh]} { html "<a href='$home/tree?ci=tip'>Files</a>\n" } if {[anoncap o]} { html "<a href='$home/brlist'>Branches</a>\n" html "<a href='$home/taglist'>Tags</a>\n" } if {[anoncap r]} { html "<a href='$home/ticket'>Tickets</a>\n" } if {[anoncap j]} { html "<a href='$home/wiki'>Wiki</a>\n" } | > > > | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | } if {[anoncap oh]} { html "<a href='$home/tree?ci=tip'>Files</a>\n" } if {[anoncap o]} { html "<a href='$home/brlist'>Branches</a>\n" html "<a href='$home/taglist'>Tags</a>\n" } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { html "<a href='$home/forum'>Forum</a>\n" } if {[anoncap r]} { html "<a href='$home/ticket'>Tickets</a>\n" } if {[anoncap j]} { html "<a href='$home/wiki'>Wiki</a>\n" } |
︙ | ︙ |
Changes to skins/plain_gray/header.txt.
︙ | ︙ | |||
16 17 18 19 20 21 22 23 24 25 26 27 28 29 | } if {[anoncap oh]} { html "<a href='$home/tree?ci=tip'>Files</a>\n" } if {[anoncap o]} { html "<a href='$home/brlist'>Branches</a>\n" html "<a href='$home/taglist'>Tags</a>\n" } if {[anoncap r]} { html "<a href='$home/ticket'>Tickets</a>\n" } if {[anoncap j]} { html "<a href='$home/wiki'>Wiki</a>\n" } | > > > | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | } if {[anoncap oh]} { html "<a href='$home/tree?ci=tip'>Files</a>\n" } if {[anoncap o]} { html "<a href='$home/brlist'>Branches</a>\n" html "<a href='$home/taglist'>Tags</a>\n" } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { html "<a href='$home/forum'>Forum</a>\n" } if {[anoncap r]} { html "<a href='$home/ticket'>Tickets</a>\n" } if {[anoncap j]} { html "<a href='$home/wiki'>Wiki</a>\n" } |
︙ | ︙ |
Changes to skins/rounded1/header.txt.
︙ | ︙ | |||
20 21 22 23 24 25 26 27 28 29 30 31 32 33 | } if {[anoncap oh]} { html "<a href='$home/tree?ci=tip'>Files</a>\n" } if {[anoncap o]} { html "<a href='$home/brlist'>Branches</a>\n" html "<a href='$home/taglist'>Tags</a>\n" } if {[anoncap r]} { html "<a href='$home/ticket'>Tickets</a>\n" } if {[anoncap j]} { html "<a href='$home/wiki'>Wiki</a>\n" } | > > > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | } if {[anoncap oh]} { html "<a href='$home/tree?ci=tip'>Files</a>\n" } if {[anoncap o]} { html "<a href='$home/brlist'>Branches</a>\n" html "<a href='$home/taglist'>Tags</a>\n" } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { html "<a href='$home/forum'>Forum</a>\n" } if {[anoncap r]} { html "<a href='$home/ticket'>Tickets</a>\n" } if {[anoncap j]} { html "<a href='$home/wiki'>Wiki</a>\n" } |
︙ | ︙ |
Changes to skins/xekri/header.txt.
︙ | ︙ | |||
108 109 110 111 112 113 114 115 116 117 118 119 120 121 | } if {[anoncap oh]} { menulink /dir?ci=tip Files } if {[anoncap o]} { menulink /brlist Branches menulink /taglist Tags } if {[anoncap r]} { menulink /ticket Tickets } if {[anoncap j]} { menulink /wiki Wiki } | > > > | 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | } if {[anoncap oh]} { menulink /dir?ci=tip Files } if {[anoncap o]} { menulink /brlist Branches menulink /taglist Tags } if {[anycap 23456] || [anoncap 2] || [anoncap 3]} { menulink /forum Forum } if {[anoncap r]} { menulink /ticket Tickets } if {[anoncap j]} { menulink /wiki Wiki } |
︙ | ︙ |
Changes to src/backoffice.c.
︙ | ︙ | |||
379 380 381 382 383 384 385 386 387 388 389 390 391 392 | void backoffice_check_if_needed(void){ Lease x; sqlite3_uint64 tmNow; if( backofficeDb ) return; if( g.zRepositoryName==0 ) return; if( g.db==0 ) return; tmNow = time(0); backofficeReadLease(&x); if( x.tmNext>=tmNow && backofficeProcessExists(x.idNext) ){ /* Another backoffice process is already queued up to run. This ** process does not need to do any backoffice work. */ return; }else{ | > | 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 | void backoffice_check_if_needed(void){ Lease x; sqlite3_uint64 tmNow; if( backofficeDb ) return; if( g.zRepositoryName==0 ) return; if( g.db==0 ) return; if( !db_table_exists("repository","config") ) return; tmNow = time(0); backofficeReadLease(&x); if( x.tmNext>=tmNow && backofficeProcessExists(x.idNext) ){ /* Another backoffice process is already queued up to run. This ** process does not need to do any backoffice work. */ return; }else{ |
︙ | ︙ |
Changes to src/forum.c.
︙ | ︙ | |||
988 989 990 991 992 993 994 | const char *zTitle = db_column_text(&q, 4); if( iCnt==0 ){ if( iOfst>0 ){ @ <h1>Threads at least %s(zAge) old</h1> }else{ @ <h1>Most recent threads</h1> } | | | 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 | const char *zTitle = db_column_text(&q, 4); if( iCnt==0 ){ if( iOfst>0 ){ @ <h1>Threads at least %s(zAge) old</h1> }else{ @ <h1>Most recent threads</h1> } @ <div class='forumPosts fileage'><table width="100%%"> if( iOfst>0 ){ if( iOfst>iLimit ){ @ <tr><td colspan="3">\ @ %z(href("%R/forum?x=%d&n=%d",iOfst-iLimit,iLimit))\ @ ↑ Newer...</a></td></tr> }else{ @ <tr><td colspan="3">%z(href("%R/forum?n=%d",iLimit))\ |
︙ | ︙ |
Changes to src/main.c.
︙ | ︙ | |||
1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 | vfile_scan(&base, blob_size(&base), 0, 0, 0); db_multi_exec("DELETE FROM sfile WHERE pathname NOT GLOB '*[^/].fossil'"); allRepo = 0; } @ <html> @ <head> @ <base href="%s(g.zBaseURL)/" /> @ <title>Repository List</title> @ </head> @ <body> n = db_int(0, "SELECT count(*) FROM sfile"); if( n>0 ){ Stmt q; sqlite3_int64 iNow, iMTime; | > | 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 | vfile_scan(&base, blob_size(&base), 0, 0, 0); db_multi_exec("DELETE FROM sfile WHERE pathname NOT GLOB '*[^/].fossil'"); allRepo = 0; } @ <html> @ <head> @ <base href="%s(g.zBaseURL)/" /> @ <meta name="viewport" content="width=device-width, initial-scale=1.0"> @ <title>Repository List</title> @ </head> @ <body> n = db_int(0, "SELECT count(*) FROM sfile"); if( n>0 ){ Stmt q; sqlite3_int64 iNow, iMTime; |
︙ | ︙ | |||
1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 | }else{ #ifdef FOSSIL_ENABLE_JSON if(g.json.isJsonMode){ json_err(FSL_JSON_E_RESOURCE_NOT_FOUND,NULL,1); return; } #endif @ <h1>Not Found</h1> cgi_set_status(404, "not found"); cgi_reply(); } return; } break; } | > > > > > | 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 | }else{ #ifdef FOSSIL_ENABLE_JSON if(g.json.isJsonMode){ json_err(FSL_JSON_E_RESOURCE_NOT_FOUND,NULL,1); return; } #endif @ <html><head> @ <meta name="viewport" \ @ content="width=device-width, initial-scale=1.0"> @ </head><body> @ <h1>Not Found</h1> @ </body> cgi_set_status(404, "not found"); cgi_reply(); } return; } break; } |
︙ | ︙ |