Commit graph

597 commits

Author SHA1 Message Date
Aaron Schulz
977ce7e45e Restored r94370 changes PopulateRevisionLen, moving it to $postDatabaseUpdateMaintenance 2011-08-15 18:52:25 +00:00
Brion Vibber
5ce010f85c Revert r94289, r94290, r94294, r94333, r94345, r94362, r94370 -- core schema change with no discussion 2011-08-15 18:24:38 +00:00
Chad Horohoe
1a1e917c86 Move wfStreamFile() into a class, update all callers in core (only 3 extensions use it afaict), leave wfStreamFile() as a b/c alias for now.
Yay less global functions, autoloading and less manual require()s.
2011-08-13 19:03:51 +00:00
Aaron Schulz
7cb4d69d9d Changed PopulateImageSha1 to use LoggedUpdateMaintenance and added it to $postDatabaseUpdateMaintenance 2011-08-12 20:37:35 +00:00
Aaron Schulz
18f5bf2c95 * Added LoggedUpdateMaintenance subclass
* Moved PopulateRevisionLength/PopulateRevisionSha1 scripts to $postDatabaseUpdateMaintenance
* Fixed bogus "{$prefix}_sha1 != ''" comparison (r94362)
* Removed unneeded NOT NULL check (speeds up script a bit) from populateRevisionSha1 script
* Various code cleanups
2011-08-12 19:11:04 +00:00
Platonides
1fde3687d4 Fix case of the new file added in r94289
Produced the following fatal on Unix systems when trying to update:
Warning: require(maintenance/PopulateRevisionSha1.php): failed to open stream: No such file or directory in includes/AutoLoader.php on line 922
Fatal error: require(): Failed opening required 'maintenance/PopulateRevisionSha1.php' in includes/AutoLoader.php on line 922
2011-08-11 22:32:29 +00:00
Aaron Schulz
606872436b * Added rev_sha1 and ar_sha1 columns to revision/archive tables (useful for bug 25312)
* Created a script to populate these fields (doesn't handle archive rows without ar_rev_id set though)
2011-08-11 21:52:54 +00:00
Alexandre Emsenhuber
585e0d0565 Temporaray revert of r94031; forgot that this was depending of some other work on my working copy 2011-08-07 14:29:28 +00:00
Alexandre Emsenhuber
2d045fa152 * Moved action=history to use an Action subclass
* Removed obsolete aliases PageHistory and PageHistoryPager; unused
* Maintained backward compatibility with HistoryPage; extensions using it will still work
* Use local context instead of global variables
* Removed calls to OutputPage::setPageTitleActionText() and OutputPage::setSyndicated(), the first one does nothing and the second one is overriden by the setFeedAppendQuery() call just below
* Call Linker methods statically
* Fixed bug where feedEmpty() was not called on empty history since casting a ResultWrapper object to boolean always returns true even when there's no row
2011-08-06 19:41:49 +00:00
Sam Reed
183d2dab37 Back out r93533, r93531, r93530
Breaks unit tests as below, not going to be able to fix them before I disappear for the evening, so might aswell leave trunk clean

ArticleTablesTest testbug14404

Error:
ArticleTablesTest::testbug14404
Undefined offset: 0

/home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/tests/phpunit/includes/ArticleTablesTest.php:31
/home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/tests/phpunit/MediaWikiTestCase.php:60
/home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/tests/phpunit/MediaWikiPHPUnitCommand.php:20
/home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/tests/phpunit/phpunit.php:60

ParserTests testParserTest #552 - testParserTest with data set #551

Failure:
ParserTests::testParserTest with data set #551 ('RAW magic word', '{{RAW:QUERTY}}', '<p><a href="/index.php?title=Template:QUERTY&amp;action=edit&amp;redlink=1" class="new" title="Template:QUERTY (page does not exist)">Template:QUERTY</a>
</p>', '', '')
RAW magic word
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-<p><a href="/index.php?title=Template:QUERTY&amp;action=edit&amp;redlink=1" class="new" title="Template:QUERTY (page does not exist)">Template:QUERTY</a>
+<p><a href="/index.php?title=Template:RAW:QUERTY&amp;action=edit&amp;redlink=1" class="new" title="Template:RAW:QUERTY (page does not exist)">Template:RAW:QUERTY</a>
 </p>

/home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/tests/phpunit/includes/parser/NewParserTest.php:545
/home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/tests/phpunit/MediaWikiTestCase.php:60
/home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/tests/phpunit/MediaWikiPHPUnitCommand.php:20
/home/ci/cruisecontrol-bin-2.8.3/projects/mw/source/tests/phpunit/phpunit.php:60
2011-07-30 15:56:54 +00:00
Sam Reed
dc9d39887e Merge iwtransclusion branch into trunk 2011-07-30 15:30:01 +00:00
Aaron Schulz
74b15fc8c4 * Moved email changing from sp:Preferences to new sp:ChangeEmail, which requires confirming the user password. This reduces the impact of session hijacking, which was increased slightly with r86482. Changing a password already required confirming the old one. This change closes the loophole of changing the email address and then doing a reset.
* Parse 'mailerror' message correctly
2011-07-23 00:48:39 +00:00
Aaron Schulz
6a1aef21b6 Follow-up r91997, moved newFromTitle() function to WikiPage.php and renamed to factory(). This avoids an extra class. 2011-07-12 20:32:09 +00:00
Aaron Schulz
fe623a323b Added WikiPageFactory class with newFromTitle() function 2011-07-12 18:01:16 +00:00
Brion Vibber
12ccca0349 Followup r83885: add JSMin+ 1.3 to use its parser to verify output of JavaScriptMinifierTest unit test cases. Had to change some of the test cases because they were not valid JavaScript programs -- one of the quoting tests was incorrectly quoted in the PHP sources, and several tests around return, continue, and break keywords failed due to not using them in the contexts that they require.
http://crisp.tweakblogs.net/blog/1856/jsmin+-version-13.html
JSMin+ under MPL 1.1/ GPL 2.0 / LGPL 2.1 license.
2011-07-06 20:02:10 +00:00
Antoine Musso
a2d41b8d6f HTTP status messages move: OutputPage -> HttpStatus
OutputPage::getStatusMessage() is a method to convert a numeric HTTP status
code to an english message.  It does not really belong to the OutputPage were
it was for historical reason.
This patch move the basic function to a non MediaWiki dependant class in our
directory includes/libs.  We could potentially enhances it, but I do not see
any use cases for us yet.
I have renamed the method to the shorter 'getMessage' since the word 'status'
is now in the class name.

Summary of changes:
* OutputPage::getStatusMessage becomes HttpStatus::getMessage
* Method moved to the new includes/libs/HttpStatus.php
* Autoloader updated
* History kept by using 'svn copy'
* No functional changes
* No input/output format changes
* Old occurences modified in phase3
* OutputPage::getStatusMessages() marked as deprecated

PHPUnit test suite is fine.
Tested manually using a redirection
2011-07-04 21:01:19 +00:00
Alexandre Emsenhuber
18346994ca Moved action=rollback to an Action subclass 2011-07-02 13:46:56 +00:00
Aaron Schulz
3e4107b171 * Added generic Rev_List revision listing class and refactored RevDelete_List stuff to use it
* Fixed bug in revdelete where all list Items where assumed to be of the same type (no longer holds since r87804). This was causing "Undefined property: stdClass::$rev_timestamp" errors for deleted revs.
* Cleaned up RevisionDeleter::getRelationType()
* Minor cleanups to SpecialRevisionDelete
2011-07-02 09:04:32 +00:00
Alexandre Emsenhuber
cf6dd13fac * Changed action=revert to use a subclass of Action
* Added WikiPage::getActionOverrides() to be able to execute different actions depending on the namespace (obviously needed for action=revert). This is only used when the value of $wgActions for the corresponding action is true; so extension can still override this.
* Added Action::getDescription() to ease the change of the page header and the <title> element
2011-07-01 20:07:21 +00:00
Chad Horohoe
3ddafb719a Remove --upload option to parserTests.php and backend RemoteTestRecorder -- was only used for since-removed CR integration 2011-06-30 19:47:26 +00:00
Aaron Schulz
40f3ee884f Tab w/s fixes 2011-06-30 17:14:27 +00:00
Aaron Schulz
930ccf282c * Split off WikiPage class from Article, WikiFilePage class from ImagePage, and WikiCategoryPage from CategoryPage.
* WikiPage functions/fields are "magically" part of Article when accessed for b/c. Magic is kind of ugly but there are too many callers to make breaking changes atm. Some functions are just wrappers for WikiPage ones (were magic won't work).
* Added newFromID() to each WikiPage subclass (works around pre-existing inheritance problem).
* Added Page class for convenient type hinting and changed hints from Article -> Page. This lets things use WikiPage objects without getting type errors.
* Updated FlaggedPage to extend WikiPage. Worked around getOldIdFromRequest().
* Added setTimestamp() to WikiPage and moved some timestamp setting code from ParserCache to Article.
* Removed ampersands from $dbw arguments.
* @TODO: dependency inject user objects for WikiPage

The idea is to migrate things to use WikiPage, as the run-of-the-mill "new Article()" call doesn't care about $oldid and $wgRequest. After that, Article, ImagePage, and CategoryPage can be rewritten as an Action class or something sane (a Viewer class of sorts).
2011-06-29 22:09:51 +00:00
Chad Horohoe
b7c7bd3c95 (bug 29277) MediaWiki:Filepage.css not loaded on foreignwiki itself. Fixup to r68904. Yay Roan finally taught me how to use the resourceloader :D 2011-06-29 00:08:25 +00:00
Sam Reed
d6906fed47 Add SpecialPermanentLink to Autoloader 2011-06-28 01:17:19 +00:00
Aaron Schulz
250e3fbd9f * Fixed 'Fatal error: Class 'SpecialMyuploads' not found in C:\wamp\www\MW_trunk\includes\SpecialPageFactory.php on line 318'
* Made use of $this->getUser() with special pages rather than wgUser
* Broke long lines
2011-06-27 20:36:59 +00:00
Happy-melon
90f04fbb18 Follow-up r89408, r86872: restore IContextSource and ContextSource, to be more carefully reimplemented. 2011-06-27 19:38:30 +00:00
Tim Starling
0e73205470 General database-related code cleanup:
* Merged the 4 simulated implementations of Database*::replace(). I took diffs, they were nearly identical. I made one based on the IBM DB2 version, since it used insert() which looked like a nice touch.
* Provided the non-simulated implementation of Database*::replace() via a protected member function, and made DatabaseMysql::replace() and DatabaseSqlite::replace() into a wrapper for it. 
* Moved the MySQL-specific functionality from masterPosWait(), getSlavePos() and getMasterPos() from DatabaseBase to DatabaseMysql. 
* Renamed getStatus() to getMysqlStatus() and moved it to DatabaseMysql. Removed "unimplemented" errors from two other subclasses. Really there's no way another DBMS could or should implement this function. 
* Split the LoadMonitor class into a no-op class and a MySQL-specific class, to avoid fatal errors due to the getMysqlStatus() call if other DBMSs tried to use LoadBalancer with multiple servers. Of course there are lots of other reasons it won't work, I'm just fixing the architecture issue here.

And while I have a replicated test setup handy:
* On MySQL 4.1.9 and later, use SHOW SLAVE STATUS to get the lag instead of SHOW PROCESSLIST. This has the advantage of reading zero when there are no events for a while.
2011-06-23 03:14:11 +00:00
Alexandre Emsenhuber
e275ea28a9 Moved action=info to an Action subclass; also changed display to use a table (a bit like Special:Statistics) with a column for the page and one for the talk page 2011-06-20 18:55:17 +00:00
Brian Wolff
35740d5b64 (follow-up r86567) per CR rename the class JpegOrTiffHandler to ExifBitmapHandler. 2011-06-17 03:37:59 +00:00
Tim Starling
b1e8887f68 Maintenance script for exporting the preprocessed wikitext from installer document pages, plus relevant refactoring. For use in updating http://www.mediawiki.org/wiki/Release_notes/1.17 etc. 2011-06-14 03:09:49 +00:00
Krinkle
32d29b93ea (bug 28556) Remove MacBinary
* IE5 for Mac is history.
2011-06-13 19:00:49 +00:00
Alexandre Emsenhuber
535a8adea8 Moved action=deletetrackback and action=markpatrolled to Action class.
Also fixed order in DefaultSettings.php
2011-06-12 18:46:07 +00:00
Alexandre Emsenhuber
7245d8dca6 * Made Special:RevisionDelete use the local variables stored in the RequestContext object instead of global ones and removed the $skin member
* Also updated classes in includes/revisiondelete that were using the $skin member of Special:RevisionDelete
* Handle action=revisiondelete (or rather action=historysubmit&revisiondelete=1) with an Action object that sets the RequestContext object of the SpecialPage object, and in this case get the target Title object through the context instead of $wgTitle
2011-06-11 08:30:19 +00:00
Sam Reed
b161823573 * (bug 26763) Make RSS/Atom of user contributions more visible
Add ApiFeedContributions module

Somewhat duplicated against Special:Contributions?feed=atom

Going to strip out that functionality
2011-06-06 14:50:34 +00:00
Tim Starling
f3f1fcdc2c * Added a REQUEST_URI check to the bug 28235 handling.
* Moved most of the bug 28235 code out to a separate library class, since I was running out of distinct function names. 
* Merged the QUERY_STRING and PATH_INFO security checks, since they are dealing with the exact same problem. Removed WebRequest::isQueryStringBad(). 
* Deal with img_auth.php by having it specify what extension it expects to be streaming out. This extension can then be compared with the extension that IE might detect.
2011-06-06 11:59:20 +00:00
Brion Vibber
94c04f7cd1 Provisional revert of r89406, r89414: reference-related warnings need cleanup before applying code like this
Per CR http://www.mediawiki.org/wiki/Special:Code/MediaWiki/89406#c17545 :
'Here is a third one: Strict Standards: Only variables should be passed by reference in /www/sandwiki/includes/Wiki.php on line 177 '

Offending bit is this:
-			SpecialPageFactory::executePath( $this->context->title, $this->context );
+			SpecialPageFactory::executePath( $this->getTitle(), $this->getContext() );

That function demands reference paramters for $title and $context, which is being violated here where we now pass function return values:

public static function executePath( Title &$title, RequestContext &$context, $including = false ) {

The $title does sometimes get replaced within the function body, but $context does not appear to ever be replaced (its *contents* are modified, which does not require passing by reference)
If replacing it is something it should be doing, then we need to be able to replace it upstream presumably, so $this->getTitle() probably isn't appropriate.
The $context probably should have the reference simply removed.
2011-06-03 18:48:59 +00:00
Happy-melon
6e7eb67b43 Start unpicking r85288 (magic __get() accessor for RequestContext). Instead, bring back some of r86872 (abstract base class for classes providing access to RequestContext methods), which is a more 'classical' solution. 2011-06-03 10:54:13 +00:00
Chad Horohoe
5cca2119e3 rvv: r89398. Tim wants me to wait 2011-06-03 05:44:28 +00:00
Chad Horohoe
3465e3f083 Kill off action=raw from index.php
* One less entry point to worry about
* Completely obsolete by load.php and api.php
* Left $wgDebugRawPage in place, also affects load.php requests (docs already reflect)
* Affects dumpHTML (probably broken anyway, has anyone RL-ified this?), and two abandoned/obsolete extensions
2011-06-03 05:39:32 +00:00
Chad Horohoe
7830a165d4 Missing , 2011-06-03 04:05:04 +00:00
Chad Horohoe
46caa4d6df Add Maintenance and FakeMaintenance to the autoloader for paranoia 2011-06-03 03:59:27 +00:00
Tim Starling
5235082095 Explored some ideas for HipHop optimisation. Made a preprocessor implementation, based on a copy of Preprocessor_Hash, with a preprocessToObj() which is optimised. It takes 33% less time than Preprocessor_Hash for a certain realistic test case (the Barack Obama article). Some notes about what I did:
* Set EnableHipHopSyntax=true to enable string and integer type hints. I gave the file a .hphp extension to avoid false alarms in syntax checking scripts. 
* Made sure almost all the local variables in preprocessToObj() have a specific type, instead of being variants. This is useful for integers, but has the largest impact for objects, since dynamic method calls can be avoided. 
* Stopped using extract() since it forces all local variables to be variants, and adds some hashtable initialisation overhead.
* Found a way to cast a variant to a specific object class, by abusing argument type hinting. The method does not require special syntax; it is harmless in Zend PHP.
* Wrapped various internal function calls with type casts. strspn() and substr() need to be wrapped with intval() and strval() respectively, since they return a variant to support special error return values. HipHop isn't smart enough to know whether the error case will be triggered.
* Replaced most instances of double-equals with triple-equals. Profiling indicates that this makes a very large difference when comparing strings, much more so than in Zend.
2011-06-02 02:44:33 +00:00
Chad Horohoe
0bafff5109 Misc. exception handling cleanup--moved it out of global function namespace
Also removed htmlHeader() and htmlFooter() since it has zero callers anywhere.
Not sure why useOutputPage() was checking isArticleRelated(), we should be able do use it with other stuff too
2011-05-30 00:18:10 +00:00
Sam Reed
00707e04a6 * (bug 29144) Move action=dublincore and action=creativecommons to extensions
Moved CreativeCommonsRDF out to extension
2011-05-26 00:08:16 +00:00
Sam Reed
27c3b22bff * (bug 29144) Move action=dublincore and action=creativecommons to extensions
Moved dublincore out to extension
2011-05-25 23:55:15 +00:00
Sam Reed
97c371697c Move DB utility classes into own file
Updated AutoLoader to match
2011-05-25 17:06:04 +00:00
Sam Reed
6bb0325f52 Move DB(.*?)Error classes into own file
Updated AutoLoader to match
2011-05-25 17:03:15 +00:00
Krinkle
634a758924 Adding user.tokens module and loading by default. (ResourceLoaderUserTokensModule Class) 2011-05-21 22:52:32 +00:00
Chad Horohoe
7131283a7b Initial commit of configuration management backend proposal. Feedback desired before I go much further.
* Common use case is Conf::get( 'myVar' );
* Support for default install (new `config` table) added, should be trivial to add backends for CDB, Memcache, etc...
*
2011-05-16 21:04:55 +00:00
Domas Mituzas
a181db4587 unbreak ProfilerSimpleTrace, some Profile refactoring made it not worky :( Also, add it to AutoLoader 2011-05-16 12:50:02 +00:00