Merge cedar into mozilla-central

This commit is contained in:
Ehsan Akhgari 2011-03-31 14:11:37 -04:00
Родитель d81092ad84 1a910b7e61
Коммит ccf9ef9334
203 изменённых файлов: 2794 добавлений и 1060 удалений

Просмотреть файл

@ -656,10 +656,10 @@ PrivateBrowsingService.prototype = {
"AND state NOT IN (?2, ?3, ?4)"
);
let pattern = stmt.escapeStringForLIKE(aDomain, "/");
stmt.bindStringParameter(0, "%" + pattern + "%");
stmt.bindInt32Parameter(1, Ci.nsIDownloadManager.DOWNLOAD_DOWNLOADING);
stmt.bindInt32Parameter(2, Ci.nsIDownloadManager.DOWNLOAD_PAUSED);
stmt.bindInt32Parameter(3, Ci.nsIDownloadManager.DOWNLOAD_QUEUED);
stmt.bindByIndex(0, "%" + pattern + "%");
stmt.bindByIndex(1, Ci.nsIDownloadManager.DOWNLOAD_DOWNLOADING);
stmt.bindByIndex(2, Ci.nsIDownloadManager.DOWNLOAD_PAUSED);
stmt.bindByIndex(3, Ci.nsIDownloadManager.DOWNLOAD_QUEUED);
try {
stmt.execute();
}
@ -719,7 +719,7 @@ PrivateBrowsingService.prototype = {
"WHERE name LIKE ?1 ESCAPE '/'"
);
let pattern = stmt.escapeStringForLIKE(aDomain, "/");
stmt.bindStringParameter(0, "%" + pattern);
stmt.bindByIndex(0, "%" + pattern);
try {
while (stmt.executeStep())
if (stmt.getString(0).hasRootDomain(aDomain))

Просмотреть файл

@ -9,7 +9,7 @@
!define AppName "Firefox"
!define AppVersion "@APP_VERSION@"
#ifdef HAVE_64BIT_OS
// differentiate 64-bit builds, we do the same in widget.
; differentiate 64-bit builds, we do the same in widget.
!define AppUserModelID "${AppVendor}.${AppName}.${AppVersion}.Win64"
#else
!define AppUserModelID "${AppVendor}.${AppName}.${AppVersion}"

Просмотреть файл

@ -441,6 +441,7 @@ PBBUILD_BIN = @PBBUILD@
SDP = @SDP@
NSINSTALL_BIN = @NSINSTALL_BIN@
WGET = @WGET@
RPMBUILD = @RPMBUILD@
ifdef MOZ_NATIVE_JPEG
JPEG_CFLAGS = @JPEG_CFLAGS@

0
config/find_OOM_errors.py Executable file → Normal file
Просмотреть файл

Просмотреть файл

@ -130,7 +130,7 @@ GCONF_VERSION=1.2.1
GIO_VERSION=2.0
STARTUP_NOTIFICATION_VERSION=0.8
DBUS_VERSION=0.60
SQLITE_VERSION=3.7.4
SQLITE_VERSION=3.7.5
LIBNOTIFY_VERSION=0.4
MSMANIFEST_TOOL=
@ -1011,6 +1011,9 @@ if test -z "$XARGS" -o "$XARGS" = ":"; then
AC_MSG_ERROR([xargs not found in \$PATH .])
fi
MOZ_PATH_PROG(RPMBUILD, rpmbuild, :)
AC_SUBST(RPMBUILD)
if test "$COMPILE_ENVIRONMENT"; then
dnl ========================================================

Просмотреть файл

@ -560,6 +560,7 @@ GK_ATOM(member, "member")
GK_ATOM(menu, "menu")
GK_ATOM(menubar, "menubar")
GK_ATOM(menubutton, "menubutton")
GK_ATOM(menuButton, "menu-button")
GK_ATOM(menugenerated, "menugenerated")
GK_ATOM(menuitem, "menuitem")
GK_ATOM(menulist, "menulist")
@ -915,6 +916,7 @@ GK_ATOM(span, "span")
GK_ATOM(spellcheck, "spellcheck")
GK_ATOM(spinner, "spinner")
GK_ATOM(split, "split")
GK_ATOM(splitmenu, "splitmenu")
GK_ATOM(splitter, "splitter")
GK_ATOM(spring, "spring")
GK_ATOM(src, "src")

Просмотреть файл

@ -375,24 +375,24 @@ nsXULTemplateQueryProcessorStorage::CompileQuery(nsIXULTemplateBuilder* aBuilder
case 1:
typeError = PR_sscanf(NS_ConvertUTF16toUTF8(value).get(),"%d",&valInt32);
if (typeError > 0)
rv = statement->BindInt32Parameter(index, valInt32);
rv = statement->BindInt32ByIndex(index, valInt32);
break;
case 2:
typeError = PR_sscanf(NS_ConvertUTF16toUTF8(value).get(),"%lld",&valInt64);
if (typeError > 0)
rv = statement->BindInt64Parameter(index, valInt64);
rv = statement->BindInt64ByIndex(index, valInt64);
break;
case 3:
rv = statement->BindNullParameter(index);
rv = statement->BindNullByIndex(index);
break;
case 4:
typeError = PR_sscanf(NS_ConvertUTF16toUTF8(value).get(),"%lf",&valFloat);
if (typeError > 0)
rv = statement->BindDoubleParameter(index, valFloat);
rv = statement->BindDoubleByIndex(index, valFloat);
break;
case 5:
case nsIContent::ATTR_MISSING:
rv = statement->BindStringParameter(index, value);
rv = statement->BindStringByIndex(index, value);
break;
default:
typeError = 0;

Просмотреть файл

@ -1,6 +1,6 @@
This is sqlite 3.7.4
This is sqlite 3.7.5
-- Paul OShannessy <paul@oshannessy.com>, 01/2011
-- Shawn Wilsher <me@shawnwilsher.com>, 03/2011
See http://www.sqlite.org/ for more info.

Просмотреть файл

@ -84,6 +84,7 @@ EXPORTS
sqlite3_data_count
sqlite3_db_handle
sqlite3_db_mutex
sqlite3_db_status
sqlite3_declare_vtab
sqlite3_enable_load_extension
sqlite3_enable_shared_cache

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -107,9 +107,9 @@ extern "C" {
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
#define SQLITE_VERSION "3.7.4"
#define SQLITE_VERSION_NUMBER 3007004
#define SQLITE_SOURCE_ID "2010-12-07 20:14:09 a586a4deeb25330037a49df295b36aaf624d0f45"
#define SQLITE_VERSION "3.7.5"
#define SQLITE_VERSION_NUMBER 3007005
#define SQLITE_SOURCE_ID "2011-01-28 17:03:50 ed759d5a9edb3bba5f48f243df47be29e3fe8cd7"
/*
** CAPI3REF: Run-Time Library Version Numbers
@ -390,7 +390,7 @@ SQLITE_API int sqlite3_exec(
#define SQLITE_INTERRUPT 9 /* Operation terminated by sqlite3_interrupt()*/
#define SQLITE_IOERR 10 /* Some kind of disk I/O error occurred */
#define SQLITE_CORRUPT 11 /* The database disk image is malformed */
#define SQLITE_NOTFOUND 12 /* NOT USED. Table or record not found */
#define SQLITE_NOTFOUND 12 /* Unknown opcode in sqlite3_file_control() */
#define SQLITE_FULL 13 /* Insertion failed because database is full */
#define SQLITE_CANTOPEN 14 /* Unable to open the database file */
#define SQLITE_PROTOCOL 15 /* Database lock protocol error */
@ -622,7 +622,9 @@ struct sqlite3_file {
** core reserves all opcodes less than 100 for its own use.
** A [SQLITE_FCNTL_LOCKSTATE | list of opcodes] less than 100 is available.
** Applications that define a custom xFileControl method should use opcodes
** greater than 100 to avoid conflicts.
** greater than 100 to avoid conflicts. VFS implementations should
** return [SQLITE_NOTFOUND] for file control opcodes that they do not
** recognize.
**
** The xSectorSize() method returns the sector size of the
** device that underlies the file. The sector size is the
@ -715,6 +717,21 @@ struct sqlite3_io_methods {
** for the nominated database. Allocating database file space in large
** chunks (say 1MB at a time), may reduce file-system fragmentation and
** improve performance on some systems.
**
** The [SQLITE_FCNTL_FILE_POINTER] opcode is used to obtain a pointer
** to the [sqlite3_file] object associated with a particular database
** connection. See the [sqlite3_file_control()] documentation for
** additional information.
**
** ^(The [SQLITE_FCNTL_SYNC_OMITTED] opcode is generated internally by
** SQLite and sent to all VFSes in place of a call to the xSync method
** when the database connection has [PRAGMA synchronous] set to OFF.)^
** Some specialized VFSes need this signal in order to operate correctly
** when [PRAGMA synchronous | PRAGMA synchronous=OFF] is set, but most
** VFSes do not need this signal and should silently ignore this opcode.
** Applications should not call [sqlite3_file_control()] with this
** opcode as doing so may disrupt the operation of the specilized VFSes
** that do require it.
*/
#define SQLITE_FCNTL_LOCKSTATE 1
#define SQLITE_GET_LOCKPROXYFILE 2
@ -723,6 +740,7 @@ struct sqlite3_io_methods {
#define SQLITE_FCNTL_SIZE_HINT 5
#define SQLITE_FCNTL_CHUNK_SIZE 6
#define SQLITE_FCNTL_FILE_POINTER 7
#define SQLITE_FCNTL_SYNC_OMITTED 8
/*
@ -1842,7 +1860,7 @@ SQLITE_API void sqlite3_free_table(char **result);
** NULL pointer if [sqlite3_malloc()] is unable to allocate enough
** memory to hold the resulting string.
**
** ^(In sqlite3_snprintf() routine is similar to "snprintf()" from
** ^(The sqlite3_snprintf() routine is similar to "snprintf()" from
** the standard C library. The result is written into the
** buffer supplied as the second parameter whose size is given by
** the first parameter. Note that the order of the
@ -1861,6 +1879,8 @@ SQLITE_API void sqlite3_free_table(char **result);
** the zero terminator. So the longest string that can be completely
** written will be n-1 characters.
**
** ^The sqlite3_vsnprintf() routine is a varargs version of sqlite3_snprintf().
**
** These routines all implement some additional formatting
** options that are useful for constructing SQL statements.
** All of the usual printf() formatting options apply. In addition, there
@ -1924,6 +1944,7 @@ SQLITE_API void sqlite3_free_table(char **result);
SQLITE_API char *sqlite3_mprintf(const char*,...);
SQLITE_API char *sqlite3_vmprintf(const char*, va_list);
SQLITE_API char *sqlite3_snprintf(int,char*,const char*, ...);
SQLITE_API char *sqlite3_vsnprintf(int,char*,const char*, va_list);
/*
** CAPI3REF: Memory Allocation Subsystem
@ -2301,7 +2322,7 @@ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
** case the database must already exist, otherwise an error is returned.</dd>)^
**
** ^(<dt>[SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE]</dt>
** <dd>The database is opened for reading and writing, and is creates it if
** <dd>The database is opened for reading and writing, and is created if
** it does not already exist. This is the behavior that is always used for
** sqlite3_open() and sqlite3_open16().</dd>)^
** </dl>
@ -2650,14 +2671,31 @@ SQLITE_API const char *sqlite3_sql(sqlite3_stmt *pStmt);
/*
** CAPI3REF: Determine If An SQL Statement Writes The Database
**
** ^The sqlite3_stmt_readonly(X) interface returns true (non-zero) if
** the [prepared statement] X is [SELECT] statement and false (zero) if
** X is an [INSERT], [UPDATE], [DELETE], CREATE, DROP, [ANALYZE],
** [ALTER], or [REINDEX] statement.
** If X is a NULL pointer or any other kind of statement, including but
** not limited to [ATTACH], [DETACH], [COMMIT], [ROLLBACK], [RELEASE],
** [SAVEPOINT], [PRAGMA], or [VACUUM] the result of sqlite3_stmt_readonly(X) is
** undefined.
** ^The sqlite3_stmt_readonly(X) interface returns true (non-zero) if
** and only if the [prepared statement] X makes no direct changes to
** the content of the database file.
**
** Note that [application-defined SQL functions] or
** [virtual tables] might change the database indirectly as a side effect.
** ^(For example, if an application defines a function "eval()" that
** calls [sqlite3_exec()], then the following SQL statement would
** change the database file through side-effects:
**
** <blockquote><pre>
** SELECT eval('DELETE FROM t1') FROM t2;
** </pre></blockquote>
**
** But because the [SELECT] statement does not change the database file
** directly, sqlite3_stmt_readonly() would still return true.)^
**
** ^Transaction control statements such as [BEGIN], [COMMIT], [ROLLBACK],
** [SAVEPOINT], and [RELEASE] cause sqlite3_stmt_readonly() to return true,
** since the statements themselves do not actually modify the database but
** rather they control the timing of when other statements modify the
** database. ^The [ATTACH] and [DETACH] statements also cause
** sqlite3_stmt_readonly() to return true since, while those statements
** change the configuration of a database connection, they do not make
** changes to the content of the database files on disk.
*/
SQLITE_API int sqlite3_stmt_readonly(sqlite3_stmt *pStmt);
@ -3051,13 +3089,17 @@ SQLITE_API const void *sqlite3_column_decltype16(sqlite3_stmt*,int);
** be the case that the same database connection is being used by two or
** more threads at the same moment in time.
**
** For all versions of SQLite up to and including 3.6.23.1, it was required
** after sqlite3_step() returned anything other than [SQLITE_ROW] that
** [sqlite3_reset()] be called before any subsequent invocation of
** sqlite3_step(). Failure to invoke [sqlite3_reset()] in this way would
** result in an [SQLITE_MISUSE] return from sqlite3_step(). But after
** version 3.6.23.1, sqlite3_step() began calling [sqlite3_reset()]
** automatically in this circumstance rather than returning [SQLITE_MISUSE].
** For all versions of SQLite up to and including 3.6.23.1, a call to
** [sqlite3_reset()] was required after sqlite3_step() returned anything
** other than [SQLITE_ROW] before any subsequent invocation of
** sqlite3_step(). Failure to reset the prepared statement using
** [sqlite3_reset()] would result in an [SQLITE_MISUSE] return from
** sqlite3_step(). But after version 3.6.23.1, sqlite3_step() began
** calling [sqlite3_reset()] automatically in this circumstance rather
** than returning [SQLITE_MISUSE]. This is not considered a compatibility
** break because any application that ever receives an SQLITE_MISUSE error
** is broken by definition. The [SQLITE_OMIT_AUTORESET] compile-time option
** can be used to restore the legacy behavior.
**
** <b>Goofy Interface Alert:</b> In the legacy interface, the sqlite3_step()
** API always returns a generic error code, [SQLITE_ERROR], following any
@ -3394,7 +3436,7 @@ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt);
** ^(The fifth parameter is an arbitrary pointer. The implementation of the
** function can gain access to this pointer using [sqlite3_user_data()].)^
**
** ^The seventh, eighth and ninth parameters, xFunc, xStep and xFinal, are
** ^The sixth, seventh and eighth parameters, xFunc, xStep and xFinal, are
** pointers to C-language functions that implement the SQL function or
** aggregate. ^A scalar SQL function requires an implementation of the xFunc
** callback only; NULL pointers must be passed as the xStep and xFinal
@ -3403,7 +3445,7 @@ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt);
** SQL function or aggregate, pass NULL poiners for all three function
** callbacks.
**
** ^(If the tenth parameter to sqlite3_create_function_v2() is not NULL,
** ^(If the ninth parameter to sqlite3_create_function_v2() is not NULL,
** then it is destructor for the application data pointer.
** The destructor is invoked when the function is deleted, either by being
** overloaded or when the database connection closes.)^
@ -3507,7 +3549,7 @@ SQLITE_API SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int6
** The xFunc (for scalar functions) or xStep (for aggregates) parameters
** to [sqlite3_create_function()] and [sqlite3_create_function16()]
** define callbacks that implement the SQL functions and aggregates.
** The 4th parameter to these callbacks is an array of pointers to
** The 3rd parameter to these callbacks is an array of pointers to
** [protected sqlite3_value] objects. There is one [sqlite3_value] object for
** each parameter to the SQL function. These routines are used to
** extract values from the [sqlite3_value] objects.
@ -5235,7 +5277,8 @@ SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex*);
#define SQLITE_MUTEX_STATIC_OPEN 4 /* sqlite3BtreeOpen() */
#define SQLITE_MUTEX_STATIC_PRNG 5 /* sqlite3_random() */
#define SQLITE_MUTEX_STATIC_LRU 6 /* lru page list */
#define SQLITE_MUTEX_STATIC_LRU2 7 /* lru page list */
#define SQLITE_MUTEX_STATIC_LRU2 7 /* NOT USED */
#define SQLITE_MUTEX_STATIC_PMEM 7 /* sqlite3PageMalloc() */
/*
** CAPI3REF: Retrieve the mutex for a database connection
@ -5386,7 +5429,8 @@ SQLITE_API int sqlite3_status(int op, int *pCurrent, int *pHighwater, int resetF
** The value written into the *pCurrent parameter is undefined.</dd>)^
**
** ^(<dt>SQLITE_STATUS_MALLOC_COUNT</dt>
** <dd>This parameter records the number of separate memory allocations.</dd>)^
** <dd>This parameter records the number of separate memory allocations
** currently checked out.</dd>)^
**
** ^(<dt>SQLITE_STATUS_PAGECACHE_USED</dt>
** <dd>This parameter returns the number of pages used out of the
@ -5492,6 +5536,28 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
** <dd>This parameter returns the number of lookaside memory slots currently
** checked out.</dd>)^
**
** ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_HIT</dt>
** <dd>This parameter returns the number malloc attempts that were
** satisfied using lookaside memory. Only the high-water value is meaningful;
** the current value is always zero.
** checked out.</dd>)^
**
** ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE</dt>
** <dd>This parameter returns the number malloc attempts that might have
** been satisfied using lookaside memory but failed due to the amount of
** memory requested being larger than the lookaside slot size.
** Only the high-water value is meaningful;
** the current value is always zero.
** checked out.</dd>)^
**
** ^(<dt>SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL</dt>
** <dd>This parameter returns the number malloc attempts that might have
** been satisfied using lookaside memory but failed due to all lookaside
** memory already being in use.
** Only the high-water value is meaningful;
** the current value is always zero.
** checked out.</dd>)^
**
** ^(<dt>SQLITE_DBSTATUS_CACHE_USED</dt>
** <dd>This parameter returns the approximate number of of bytes of heap
** memory used by all pager caches associated with the database connection.)^
@ -5514,11 +5580,14 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r
** </dd>
** </dl>
*/
#define SQLITE_DBSTATUS_LOOKASIDE_USED 0
#define SQLITE_DBSTATUS_CACHE_USED 1
#define SQLITE_DBSTATUS_SCHEMA_USED 2
#define SQLITE_DBSTATUS_STMT_USED 3
#define SQLITE_DBSTATUS_MAX 3 /* Largest defined DBSTATUS */
#define SQLITE_DBSTATUS_LOOKASIDE_USED 0
#define SQLITE_DBSTATUS_CACHE_USED 1
#define SQLITE_DBSTATUS_SCHEMA_USED 2
#define SQLITE_DBSTATUS_STMT_USED 3
#define SQLITE_DBSTATUS_LOOKASIDE_HIT 4
#define SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE 5
#define SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL 6
#define SQLITE_DBSTATUS_MAX 6 /* Largest defined DBSTATUS */
/*
@ -5646,11 +5715,13 @@ typedef struct sqlite3_pcache sqlite3_pcache;
** first parameter, szPage, is the size in bytes of the pages that must
** be allocated by the cache. ^szPage will not be a power of two. ^szPage
** will the page size of the database file that is to be cached plus an
** increment (here called "R") of about 100 or 200. SQLite will use the
** increment (here called "R") of less than 250. SQLite will use the
** extra R bytes on each page to store metadata about the underlying
** database page on disk. The value of R depends
** on the SQLite version, the target platform, and how SQLite was compiled.
** ^R is constant for a particular build of SQLite. ^The second argument to
** ^(R is constant for a particular build of SQLite. Except, there are two
** distinct values of R when SQLite is compiled with the proprietary
** ZIPVFS extension.)^ ^The second argument to
** xCreate(), bPurgeable, is true if the cache being created will
** be used to cache database pages of a file stored on disk, or
** false if it is used for an in-memory database. The cache implementation
@ -5682,7 +5753,7 @@ typedef struct sqlite3_pcache sqlite3_pcache;
** If the requested page is already in the page cache, then the page cache
** implementation must return a pointer to the page buffer with its content
** intact. If the requested page is not already in the cache, then the
** behavior of the cache implementation should use the value of the createFlag
** cache implementation should use the value of the createFlag
** parameter to help it determined what action to take:
**
** <table border=1 width=85% align=center>
@ -5766,11 +5837,12 @@ typedef struct sqlite3_backup sqlite3_backup;
**
** See Also: [Using the SQLite Online Backup API]
**
** ^Exclusive access is required to the destination database for the
** duration of the operation. ^However the source database is only
** read-locked while it is actually being read; it is not locked
** continuously for the entire backup operation. ^Thus, the backup may be
** performed on a live source database without preventing other users from
** ^SQLite holds a write transaction open on the destination database file
** for the duration of the backup operation.
** ^The source database is read-locked only while it is being read;
** it is not locked continuously for the entire backup operation.
** ^Thus, the backup may be performed on a live source database without
** preventing other database connections from
** reading or writing to the source database while the backup is underway.
**
** ^(To perform a backup operation:
@ -5797,11 +5869,11 @@ typedef struct sqlite3_backup sqlite3_backup;
** sqlite3_backup_init(D,N,S,M) identify the [database connection]
** and database name of the source database, respectively.
** ^The source and destination [database connections] (parameters S and D)
** must be different or else sqlite3_backup_init(D,N,S,M) will file with
** must be different or else sqlite3_backup_init(D,N,S,M) will fail with
** an error.
**
** ^If an error occurs within sqlite3_backup_init(D,N,S,M), then NULL is
** returned and an error code and error message are store3d in the
** returned and an error code and error message are stored in the
** destination [database connection] D.
** ^The error code and message for the failed call to sqlite3_backup_init()
** can be retrieved using the [sqlite3_errcode()], [sqlite3_errmsg()], and/or
@ -5818,7 +5890,7 @@ typedef struct sqlite3_backup sqlite3_backup;
** the source and destination databases specified by [sqlite3_backup] object B.
** ^If N is negative, all remaining source pages are copied.
** ^If sqlite3_backup_step(B,N) successfully copies N pages and there
** are still more pages to be copied, then the function resturns [SQLITE_OK].
** are still more pages to be copied, then the function returns [SQLITE_OK].
** ^If sqlite3_backup_step(B,N) successfully finishes copying all pages
** from source to destination, then it returns [SQLITE_DONE].
** ^If an error occurs while running sqlite3_backup_step(B,N),
@ -5832,7 +5904,7 @@ typedef struct sqlite3_backup sqlite3_backup;
** <li> the destination database was opened read-only, or
** <li> the destination database is using write-ahead-log journaling
** and the destination and source page sizes differ, or
** <li> The destination database is an in-memory database and the
** <li> the destination database is an in-memory database and the
** destination and source page sizes differ.
** </ol>)^
**
@ -6163,7 +6235,8 @@ SQLITE_API void *sqlite3_wal_hook(
** from SQL.
**
** ^Every new [database connection] defaults to having the auto-checkpoint
** enabled with a threshold of 1000 pages. The use of this interface
** enabled with a threshold of 1000 or [SQLITE_DEFAULT_WAL_AUTOCHECKPOINT]
** pages. The use of this interface
** is only necessary if the default setting is found to be suboptimal
** for a particular application.
*/

Просмотреть файл

@ -50,7 +50,7 @@
* http://www.w3.org/TR/DOM-Level-2-Style
*/
[scriptable, uuid(abedfd52-9821-4311-b50c-7ef229b43abf)]
[scriptable, uuid(6b8fda8f-94f6-4d5c-aa77-17c5270f36c7)]
interface nsIDOMCSS2Properties : nsISupports
{
attribute DOMString azimuth;
@ -734,6 +734,12 @@ interface nsIDOMCSS2Properties : nsISupports
attribute DOMString backgroundSize;
// raises(DOMException) on setting
attribute DOMString MozTextDecorationColor;
// raises(DOMException) on setting
attribute DOMString MozTextDecorationStyle;
// raises(DOMException) on setting
attribute DOMString MozTransitionProperty;
// raises(DOMException) on setting

Просмотреть файл

@ -46,7 +46,6 @@ MODULE = editor
GRE_MODULE = 1
XPIDLSRCS = \
nsICiter.idl \
nsIDocumentStateListener.idl \
nsIEditActionListener.idl \
nsIEditor.idl \

Просмотреть файл

@ -1,61 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1998
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
#include "nsISupports.idl"
#include "domstubs.idl"
%{C++
#include "nsString.h"
%}
/** Handle plaintext citations, as in mail quoting.
* Used by the editor but not dependant on it.
*/
[scriptable, uuid(a6cf9102-15b3-11d2-932e-00805f8add32)]
interface nsICiter : nsISupports
{
DOMString GetCiteString(in DOMString aInString);
DOMString StripCites(in DOMString aInString);
DOMString Rewrap(in DOMString aInString,
in unsigned long aWrapCol, in unsigned long aFirstLineOffset,
in boolean aRespectNewlines);
};

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -58,18 +58,7 @@ const PRUnichar cr('\r');
/** Mail citations using the Internet style: > This is a citation
*/
nsInternetCiter::nsInternetCiter()
{
}
nsInternetCiter::~nsInternetCiter()
{
}
NS_IMPL_ISUPPORTS1(nsInternetCiter, nsICiter)
NS_IMETHODIMP
nsresult
nsInternetCiter::GetCiteString(const nsAString& aInString, nsAString& aOutString)
{
aOutString.Truncate();
@ -155,7 +144,7 @@ nsInternetCiter::StripCitesAndLinebreaks(const nsAString& aInString,
return NS_OK;
}
NS_IMETHODIMP
nsresult
nsInternetCiter::StripCites(const nsAString& aInString, nsAString& aOutString)
{
return StripCitesAndLinebreaks(aInString, aOutString, PR_FALSE, 0);
@ -188,7 +177,7 @@ static inline PRBool IsSpace(PRUnichar c)
return (nsCRT::IsAsciiSpace(c) || (c == nl) || (c == cr) || (c == nbsp));
}
NS_IMETHODIMP
nsresult
nsInternetCiter::Rewrap(const nsAString& aInString,
PRUint32 aWrapCol, PRUint32 aFirstLineOffset,
PRBool aRespectNewlines,

Просмотреть файл

@ -38,33 +38,25 @@
#ifndef nsInternetCiter_h__
#define nsInternetCiter_h__
#include "nsICiter.h"
#include "nsString.h"
/** Mail citations using standard Internet style.
*/
class nsInternetCiter : public nsICiter
class nsInternetCiter
{
public:
nsInternetCiter();
virtual ~nsInternetCiter();
//Interfaces for addref and release and queryinterface
//NOTE: Use NS_DECL_ISUPPORTS_INHERITED in any class inherited from nsEditor
NS_DECL_ISUPPORTS
static nsresult GetCiteString(const nsAString & aInString, nsAString & aOutString);
NS_IMETHOD GetCiteString(const nsAString & aInString, nsAString & aOutString);
static nsresult StripCites(const nsAString & aInString, nsAString & aOutString);
NS_IMETHOD StripCites(const nsAString & aInString, nsAString & aOutString);
NS_IMETHOD Rewrap(const nsAString & aInString,
PRUint32 aWrapCol, PRUint32 aFirstLineOffset,
PRBool aRespectNewlines,
nsAString & aOutString);
static nsresult Rewrap(const nsAString & aInString,
PRUint32 aWrapCol, PRUint32 aFirstLineOffset,
PRBool aRespectNewlines,
nsAString & aOutString);
protected:
nsresult StripCitesAndLinebreaks(const nsAString& aInString, nsAString& aOutString,
PRBool aLinebreaksToo, PRInt32* aCiteLevel);
static nsresult StripCitesAndLinebreaks(const nsAString& aInString, nsAString& aOutString,
PRBool aLinebreaksToo, PRInt32* aCiteLevel);
};
#endif //nsInternetCiter_h__

Просмотреть файл

@ -1530,12 +1530,9 @@ nsPlaintextEditor::InsertAsQuotation(const nsAString& aQuotedText,
// Protect the edit rules object from dying
nsCOMPtr<nsIEditRules> kungFuDeathGrip(mRules);
// We have the text. Cite it appropriately:
nsCOMPtr<nsICiter> citer = new nsInternetCiter();
// Let the citer quote it for us:
nsString quotedStuff;
nsresult rv = citer->GetCiteString(aQuotedText, quotedStuff);
nsresult rv = nsInternetCiter::GetCiteString(aQuotedText, quotedStuff);
NS_ENSURE_SUCCESS(rv, rv);
// It's best to put a blank line after the quoted text so that mails
@ -1630,13 +1627,9 @@ nsPlaintextEditor::Rewrap(PRBool aRespectNewlines)
&isCollapsed, current);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsICiter> citer = new nsInternetCiter();
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_TRUE(citer, NS_ERROR_UNEXPECTED);
nsString wrapped;
PRUint32 firstLineOffset = 0; // XXX need to reset this if there is a selection
rv = citer->Rewrap(current, wrapCol, firstLineOffset, aRespectNewlines,
rv = nsInternetCiter::Rewrap(current, wrapCol, firstLineOffset, aRespectNewlines,
wrapped);
NS_ENSURE_SUCCESS(rv, rv);
@ -1659,11 +1652,8 @@ nsPlaintextEditor::StripCites()
&isCollapsed, current);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsICiter> citer = new nsInternetCiter();
NS_ENSURE_TRUE(citer, NS_ERROR_UNEXPECTED);
nsString stripped;
rv = citer->StripCites(current, stripped);
rv = nsInternetCiter::StripCites(current, stripped);
NS_ENSURE_SUCCESS(rv, rv);
if (isCollapsed) // rewrap the whole document

Просмотреть файл

@ -935,10 +935,10 @@ nsPermissionManager::Read()
getter_AddRefs(stmtDeleteExpired));
NS_ENSURE_SUCCESS(rv, rv);
rv = stmtDeleteExpired->BindInt32Parameter(0, nsIPermissionManager::EXPIRE_TIME);
rv = stmtDeleteExpired->BindInt32ByIndex(0, nsIPermissionManager::EXPIRE_TIME);
NS_ENSURE_SUCCESS(rv, rv);
rv = stmtDeleteExpired->BindInt64Parameter(1, PR_Now() / 1000);
rv = stmtDeleteExpired->BindInt64ByIndex(1, PR_Now() / 1000);
NS_ENSURE_SUCCESS(rv, rv);
PRBool hasResult;
@ -1111,43 +1111,43 @@ nsPermissionManager::UpdateDB(OperationType aOp,
switch (aOp) {
case eOperationAdding:
{
rv = aStmt->BindInt64Parameter(0, aID);
rv = aStmt->BindInt64ByIndex(0, aID);
if (NS_FAILED(rv)) break;
rv = aStmt->BindUTF8StringParameter(1, aHost);
rv = aStmt->BindUTF8StringByIndex(1, aHost);
if (NS_FAILED(rv)) break;
rv = aStmt->BindUTF8StringParameter(2, aType);
rv = aStmt->BindUTF8StringByIndex(2, aType);
if (NS_FAILED(rv)) break;
rv = aStmt->BindInt32Parameter(3, aPermission);
rv = aStmt->BindInt32ByIndex(3, aPermission);
if (NS_FAILED(rv)) break;
rv = aStmt->BindInt32Parameter(4, aExpireType);
rv = aStmt->BindInt32ByIndex(4, aExpireType);
if (NS_FAILED(rv)) break;
rv = aStmt->BindInt64Parameter(5, aExpireTime);
rv = aStmt->BindInt64ByIndex(5, aExpireTime);
break;
}
case eOperationRemoving:
{
rv = aStmt->BindInt64Parameter(0, aID);
rv = aStmt->BindInt64ByIndex(0, aID);
break;
}
case eOperationChanging:
{
rv = aStmt->BindInt64Parameter(0, aID);
rv = aStmt->BindInt64ByIndex(0, aID);
if (NS_FAILED(rv)) break;
rv = aStmt->BindInt32Parameter(1, aPermission);
rv = aStmt->BindInt32ByIndex(1, aPermission);
if (NS_FAILED(rv)) break;
rv = aStmt->BindInt32Parameter(2, aExpireType);
rv = aStmt->BindInt32ByIndex(2, aExpireType);
if (NS_FAILED(rv)) break;
rv = aStmt->BindInt64Parameter(3, aExpireTime);
rv = aStmt->BindInt64ByIndex(3, aExpireTime);
break;
}

Просмотреть файл

@ -3404,35 +3404,36 @@ class _GenerateProtocolActorCode(ipdl.ast.Visitor):
Decl(listenertype, listenervar.name) ],
virtual=1))
switchontype = StmtSwitch(pvar)
for managee in p.managesStmts:
case = StmtBlock()
actorvar = ExprVar('actor')
manageeipdltype = managee.decl.type
manageecxxtype = _cxxBareType(ipdl.type.ActorType(manageeipdltype),
self.side)
manageearray = p.managedVar(manageeipdltype, self.side)
if not len(p.managesStmts):
removemanagee.addstmts([ _runtimeAbort('unreached'), StmtReturn() ])
else:
switchontype = StmtSwitch(pvar)
for managee in p.managesStmts:
case = StmtBlock()
actorvar = ExprVar('actor')
manageeipdltype = managee.decl.type
manageecxxtype = _cxxBareType(ipdl.type.ActorType(manageeipdltype),
self.side)
manageearray = p.managedVar(manageeipdltype, self.side)
case.addstmts([
StmtDecl(Decl(manageecxxtype, actorvar.name),
ExprCast(listenervar, manageecxxtype, static=1)),
_abortIfFalse(
_cxxArrayHasElementSorted(manageearray, actorvar),
"actor not managed by this!"),
Whitespace.NL,
StmtExpr(_callCxxArrayRemoveSorted(manageearray, actorvar)),
StmtExpr(ExprCall(_deallocMethod(manageeipdltype),
args=[ actorvar ])),
StmtReturn()
])
switchontype.addcase(CaseLabel(_protocolId(manageeipdltype).name),
case)
default = StmtBlock()
default.addstmts([ _runtimeAbort('unreached'), StmtReturn() ])
switchontype.addcase(DefaultLabel(), default)
removemanagee.addstmt(switchontype)
case.addstmts([
StmtDecl(Decl(manageecxxtype, actorvar.name),
ExprCast(listenervar, manageecxxtype, static=1)),
_abortIfFalse(
_cxxArrayHasElementSorted(manageearray, actorvar),
"actor not managed by this!"),
Whitespace.NL,
StmtExpr(_callCxxArrayRemoveSorted(manageearray, actorvar)),
StmtExpr(ExprCall(_deallocMethod(manageeipdltype),
args=[ actorvar ])),
StmtReturn()
])
switchontype.addcase(CaseLabel(_protocolId(manageeipdltype).name),
case)
default = StmtBlock()
default.addstmts([ _runtimeAbort('unreached'), StmtReturn() ])
switchontype.addcase(DefaultLabel(), default)
removemanagee.addstmt(switchontype)
return [ register,
registerid,

0
js/src/config/find_OOM_errors.py Executable file → Normal file
Просмотреть файл

Просмотреть файл

@ -3415,7 +3415,7 @@ nsCSSRendering::PaintDecorationLine(gfxContext* aGfxContext,
const PRUint8 aStyle,
const gfxFloat aDescentLimit)
{
NS_ASSERTION(aStyle != DECORATION_STYLE_NONE, "aStyle is none");
NS_ASSERTION(aStyle != NS_STYLE_TEXT_DECORATION_STYLE_NONE, "aStyle is none");
gfxRect rect =
GetTextDecorationRectInternal(aPt, aLineSize, aAscent, aOffset,
@ -3438,12 +3438,12 @@ nsCSSRendering::PaintDecorationLine(gfxContext* aGfxContext,
nsRefPtr<gfxPattern> oldPattern;
switch (aStyle) {
case DECORATION_STYLE_SOLID:
case DECORATION_STYLE_DOUBLE:
case NS_STYLE_TEXT_DECORATION_STYLE_SOLID:
case NS_STYLE_TEXT_DECORATION_STYLE_DOUBLE:
oldLineWidth = aGfxContext->CurrentLineWidth();
oldPattern = aGfxContext->GetPattern();
break;
case DECORATION_STYLE_DASHED: {
case NS_STYLE_TEXT_DECORATION_STYLE_DASHED: {
aGfxContext->Save();
contextIsSaved = PR_TRUE;
aGfxContext->Clip(rect);
@ -3455,7 +3455,7 @@ nsCSSRendering::PaintDecorationLine(gfxContext* aGfxContext,
rect.size.width += dashWidth;
break;
}
case DECORATION_STYLE_DOTTED: {
case NS_STYLE_TEXT_DECORATION_STYLE_DOTTED: {
aGfxContext->Save();
contextIsSaved = PR_TRUE;
aGfxContext->Clip(rect);
@ -3474,7 +3474,7 @@ nsCSSRendering::PaintDecorationLine(gfxContext* aGfxContext,
rect.size.width += dashWidth;
break;
}
case DECORATION_STYLE_WAVY:
case NS_STYLE_TEXT_DECORATION_STYLE_WAVY:
aGfxContext->Save();
contextIsSaved = PR_TRUE;
aGfxContext->Clip(rect);
@ -3498,13 +3498,13 @@ nsCSSRendering::PaintDecorationLine(gfxContext* aGfxContext,
aGfxContext->SetColor(gfxRGBA(aColor));
aGfxContext->SetLineWidth(lineHeight);
switch (aStyle) {
case DECORATION_STYLE_SOLID:
case NS_STYLE_TEXT_DECORATION_STYLE_SOLID:
aGfxContext->NewPath();
aGfxContext->MoveTo(rect.TopLeft());
aGfxContext->LineTo(rect.TopRight());
aGfxContext->Stroke();
break;
case DECORATION_STYLE_DOUBLE:
case NS_STYLE_TEXT_DECORATION_STYLE_DOUBLE:
/**
* We are drawing double line as:
*
@ -3527,14 +3527,14 @@ nsCSSRendering::PaintDecorationLine(gfxContext* aGfxContext,
aGfxContext->LineTo(rect.BottomRight());
aGfxContext->Stroke();
break;
case DECORATION_STYLE_DOTTED:
case DECORATION_STYLE_DASHED:
case NS_STYLE_TEXT_DECORATION_STYLE_DOTTED:
case NS_STYLE_TEXT_DECORATION_STYLE_DASHED:
aGfxContext->NewPath();
aGfxContext->MoveTo(rect.TopLeft());
aGfxContext->LineTo(rect.TopRight());
aGfxContext->Stroke();
break;
case DECORATION_STYLE_WAVY: {
case NS_STYLE_TEXT_DECORATION_STYLE_WAVY: {
/**
* We are drawing wavy line as:
*
@ -3616,7 +3616,7 @@ nsCSSRendering::GetTextDecorationRect(nsPresContext* aPresContext,
const gfxFloat aDescentLimit)
{
NS_ASSERTION(aPresContext, "aPresContext is null");
NS_ASSERTION(aStyle != DECORATION_STYLE_NONE, "aStyle is none");
NS_ASSERTION(aStyle != NS_STYLE_TEXT_DECORATION_STYLE_NONE, "aStyle is none");
gfxRect rect =
GetTextDecorationRectInternal(gfxPoint(0, 0), aLineSize, aAscent, aOffset,
@ -3639,9 +3639,10 @@ nsCSSRendering::GetTextDecorationRectInternal(const gfxPoint& aPt,
const PRUint8 aStyle,
const gfxFloat aDescentLimit)
{
NS_ASSERTION(aStyle <= DECORATION_STYLE_WAVY, "Invalid aStyle value");
NS_ASSERTION(aStyle <= NS_STYLE_TEXT_DECORATION_STYLE_WAVY,
"Invalid aStyle value");
if (aStyle == DECORATION_STYLE_NONE)
if (aStyle == NS_STYLE_TEXT_DECORATION_STYLE_NONE)
return gfxRect(0, 0, 0, 0);
PRBool canLiftUnderline = aDescentLimit >= 0.0;
@ -3658,7 +3659,7 @@ nsCSSRendering::GetTextDecorationRectInternal(const gfxPoint& aPt,
gfxFloat suggestedMaxRectHeight = NS_MAX(NS_MIN(ascent, descentLimit), 1.0);
r.size.height = lineHeight;
if (aStyle == DECORATION_STYLE_DOUBLE) {
if (aStyle == NS_STYLE_TEXT_DECORATION_STYLE_DOUBLE) {
/**
* We will draw double line as:
*
@ -3684,7 +3685,7 @@ nsCSSRendering::GetTextDecorationRectInternal(const gfxPoint& aPt,
r.size.height = NS_MAX(suggestedMaxRectHeight, lineHeight * 2.0 + 1.0);
}
}
} else if (aStyle == DECORATION_STYLE_WAVY) {
} else if (aStyle == NS_STYLE_TEXT_DECORATION_STYLE_WAVY) {
/**
* We will draw wavy line as:
*

Просмотреть файл

@ -286,15 +286,6 @@ struct nsCSSRendering {
PRUint8 aEndBevelSide = 0,
nscoord aEndBevelOffset = 0);
enum {
DECORATION_STYLE_NONE = 0,
DECORATION_STYLE_SOLID = 1,
DECORATION_STYLE_DOTTED = 2,
DECORATION_STYLE_DASHED = 3,
DECORATION_STYLE_DOUBLE = 4,
DECORATION_STYLE_WAVY = 5
};
/**
* Function for painting the decoration lines for the text.
* NOTE: aPt, aLineSize, aAscent and aOffset are non-rounded device pixels,
@ -313,8 +304,8 @@ struct nsCSSRendering {
* NS_STYLE_TEXT_DECORATION_UNDERLINE or
* NS_STYLE_TEXT_DECORATION_OVERLINE or
* NS_STYLE_TEXT_DECORATION_LINE_THROUGH.
* @param aStyle the style of the decoration line (See above
* enum names).
* @param aStyle the style of the decoration line such as
* NS_STYLE_TEXT_DECORATION_STYLE_*.
* @param aDescentLimit If aDescentLimit is zero or larger and the
* underline overflows from the descent space,
* the underline should be lifted up as far as
@ -353,8 +344,8 @@ struct nsCSSRendering {
* NS_STYLE_TEXT_DECORATION_UNDERLINE or
* NS_STYLE_TEXT_DECORATION_OVERLINE or
* NS_STYLE_TEXT_DECORATION_LINE_THROUGH.
* @param aStyle the style of the decoration line (See above
* enum names).
* @param aStyle the style of the decoration line such as
* NS_STYLE_TEXT_DECORATION_STYLE_*.
* @param aDescentLimit If aDescentLimit is zero or larger and the
* underline overflows from the descent space,
* the underline should be lifted up as far as

Просмотреть файл

@ -626,6 +626,15 @@ static inline mozilla::css::Side operator++(mozilla::css::Side& side, int) {
#define NS_STYLE_TEXT_DECORATION_OVERRIDE_ALL 0x20
#define NS_STYLE_TEXT_DECORATION_LINES_MASK (NS_STYLE_TEXT_DECORATION_UNDERLINE | NS_STYLE_TEXT_DECORATION_OVERLINE | NS_STYLE_TEXT_DECORATION_LINE_THROUGH)
// See nsStyleText
#define NS_STYLE_TEXT_DECORATION_STYLE_NONE 0 // not in CSS spec, mapped to -moz-none
#define NS_STYLE_TEXT_DECORATION_STYLE_DOTTED 1
#define NS_STYLE_TEXT_DECORATION_STYLE_DASHED 2
#define NS_STYLE_TEXT_DECORATION_STYLE_SOLID 3
#define NS_STYLE_TEXT_DECORATION_STYLE_DOUBLE 4
#define NS_STYLE_TEXT_DECORATION_STYLE_WAVY 5
#define NS_STYLE_TEXT_DECORATION_STYLE_MAX NS_STYLE_TEXT_DECORATION_STYLE_WAVY
// See nsStyleText
#define NS_STYLE_TEXT_TRANSFORM_NONE 0
#define NS_STYLE_TEXT_TRANSFORM_CAPITALIZE 1

Просмотреть файл

@ -239,6 +239,8 @@ input > .anonymous-div {
/* XXXldb I'm not sure if we really want the 'text-decoration: inherit',
but it's needed to make 'text-decoration' "work" on text inputs. */
text-decoration: inherit;
-moz-text-decoration-color: inherit;
-moz-text-decoration-style: inherit;
}
input:disabled,

Просмотреть файл

@ -6076,6 +6076,7 @@ nsBlockFrame::PaintTextDecorationLine(gfxContext* aCtx,
const nsPoint& aPt,
nsLineBox* aLine,
nscolor aColor,
PRUint8 aStyle,
gfxFloat aOffset,
gfxFloat aAscent,
gfxFloat aSize,
@ -6096,7 +6097,7 @@ nsBlockFrame::PaintTextDecorationLine(gfxContext* aCtx,
nsCSSRendering::PaintDecorationLine(
aCtx, aColor, pt, size,
PresContext()->AppUnitsToGfxUnits(aLine->GetAscent()),
aOffset, aDecoration, nsCSSRendering::DECORATION_STYLE_SOLID);
aOffset, aDecoration, aStyle);
}
}

Просмотреть файл

@ -369,6 +369,7 @@ protected:
const nsPoint& aPt,
nsLineBox* aLine,
nscolor aColor,
PRUint8 aStyle,
gfxFloat aOffset,
gfxFloat aAscent,
gfxFloat aSize,

Просмотреть файл

@ -75,9 +75,9 @@ class nsDisplayTextDecoration : public nsDisplayItem {
public:
nsDisplayTextDecoration(nsDisplayListBuilder* aBuilder,
nsHTMLContainerFrame* aFrame, PRUint8 aDecoration,
nscolor aColor, nsLineBox* aLine)
nscolor aColor, PRUint8 aStyle, nsLineBox* aLine)
: nsDisplayItem(aBuilder, aFrame), mLine(aLine), mColor(aColor),
mDecoration(aDecoration) {
mDecoration(aDecoration), mStyle(aStyle) {
MOZ_COUNT_CTOR(nsDisplayTextDecoration);
}
#ifdef NS_BUILD_REFCNT_LOGGING
@ -100,6 +100,7 @@ private:
nsLineBox* mLine;
nscolor mColor;
PRUint8 mDecoration;
PRUint8 mStyle;
};
void
@ -136,16 +137,16 @@ nsDisplayTextDecoration::Paint(nsDisplayListBuilder* aBuilder,
if (mDecoration == NS_STYLE_TEXT_DECORATION_UNDERLINE) {
gfxFloat underlineOffset = fontGroup->GetUnderlineOffset();
f->PaintTextDecorationLine(aCtx->ThebesContext(), pt, mLine, mColor,
underlineOffset, ascent,
mStyle, underlineOffset, ascent,
metrics.underlineSize, mDecoration);
} else if (mDecoration == NS_STYLE_TEXT_DECORATION_OVERLINE) {
f->PaintTextDecorationLine(aCtx->ThebesContext(), pt, mLine, mColor,
metrics.maxAscent, ascent,
mStyle, metrics.maxAscent, ascent,
metrics.underlineSize, mDecoration);
} else {
f->PaintTextDecorationLine(aCtx->ThebesContext(), pt, mLine, mColor,
metrics.strikeoutOffset, ascent,
metrics.strikeoutSize, mDecoration);
mStyle, metrics.strikeoutOffset,
ascent, metrics.strikeoutSize, mDecoration);
}
}
@ -159,10 +160,12 @@ class nsDisplayTextShadow : public nsDisplayItem {
public:
nsDisplayTextShadow(nsDisplayListBuilder* aBuilder,
nsHTMLContainerFrame* aFrame,
const PRUint8 aDecoration,
const PRUint8 aDecoration, PRUint8 aUnderlineStyle,
PRUint8 aOverlineStyle, PRUint8 aStrikeThroughStyle,
nsLineBox* aLine)
: nsDisplayItem(aBuilder, aFrame), mLine(aLine),
mDecorationFlags(aDecoration) {
mDecorationFlags(aDecoration), mUnderlineStyle(aUnderlineStyle),
mOverlineStyle(aOverlineStyle), mStrikeThroughStyle(aStrikeThroughStyle) {
MOZ_COUNT_CTOR(nsDisplayTextShadow);
}
virtual ~nsDisplayTextShadow() {
@ -176,6 +179,9 @@ public:
private:
nsLineBox* mLine;
PRUint8 mDecorationFlags;
PRUint8 mUnderlineStyle;
PRUint8 mOverlineStyle;
PRUint8 mStrikeThroughStyle;
};
void
@ -243,22 +249,20 @@ nsDisplayTextShadow::Paint(nsDisplayListBuilder* aBuilder,
gfxSize size(lineWidth, metrics.underlineSize);
underlineRect = nsCSSRendering::GetTextDecorationRect(presContext, size,
ascent, underlineOffset,
NS_STYLE_TEXT_DECORATION_UNDERLINE,
nsCSSRendering::DECORATION_STYLE_SOLID);
NS_STYLE_TEXT_DECORATION_UNDERLINE, mUnderlineStyle);
}
if (mDecorationFlags & NS_STYLE_TEXT_DECORATION_OVERLINE) {
gfxSize size(lineWidth, metrics.underlineSize);
overlineRect = nsCSSRendering::GetTextDecorationRect(presContext, size,
ascent, metrics.maxAscent,
NS_STYLE_TEXT_DECORATION_OVERLINE,
nsCSSRendering::DECORATION_STYLE_SOLID);
NS_STYLE_TEXT_DECORATION_OVERLINE, mOverlineStyle);
}
if (mDecorationFlags & NS_STYLE_TEXT_DECORATION_LINE_THROUGH) {
gfxSize size(lineWidth, metrics.strikeoutSize);
lineThroughRect = nsCSSRendering::GetTextDecorationRect(presContext, size,
ascent, metrics.strikeoutOffset,
NS_STYLE_TEXT_DECORATION_LINE_THROUGH,
nsCSSRendering::DECORATION_STYLE_SOLID);
mStrikeThroughStyle);
}
for (PRUint32 i = shadowList->Length(); i > 0; --i) {
@ -302,18 +306,19 @@ nsDisplayTextShadow::Paint(nsDisplayListBuilder* aBuilder,
if (mDecorationFlags & NS_STYLE_TEXT_DECORATION_UNDERLINE) {
f->PaintTextDecorationLine(shadowCtx, pt, mLine, shadowColor,
underlineOffset, ascent,
mUnderlineStyle, underlineOffset, ascent,
metrics.underlineSize, NS_STYLE_TEXT_DECORATION_UNDERLINE);
}
if (mDecorationFlags & NS_STYLE_TEXT_DECORATION_OVERLINE) {
f->PaintTextDecorationLine(shadowCtx, pt, mLine, shadowColor,
metrics.maxAscent, ascent,
mOverlineStyle, metrics.maxAscent, ascent,
metrics.underlineSize, NS_STYLE_TEXT_DECORATION_OVERLINE);
}
if (mDecorationFlags & NS_STYLE_TEXT_DECORATION_LINE_THROUGH) {
f->PaintTextDecorationLine(shadowCtx, pt, mLine, shadowColor,
metrics.strikeoutOffset, ascent,
metrics.strikeoutSize, NS_STYLE_TEXT_DECORATION_LINE_THROUGH);
mStrikeThroughStyle, metrics.strikeoutOffset,
ascent, metrics.strikeoutSize,
NS_STYLE_TEXT_DECORATION_LINE_THROUGH);
}
contextBoxBlur.DoPaint();
@ -350,9 +355,11 @@ nsHTMLContainerFrame::DisplayTextDecorations(nsDisplayListBuilder* aBuilder,
// behind children, line-through in front. For Quirks mode, see
// nsTextFrame::PaintTextDecorations. (See bug 1777.)
nscolor underColor, overColor, strikeColor;
PRUint8 underStyle, overStyle, strikeStyle;
PRUint8 decorations = NS_STYLE_TEXT_DECORATION_NONE;
GetTextDecorations(PresContext(), aLine != nsnull, decorations, underColor,
overColor, strikeColor);
overColor, strikeColor, underStyle, overStyle,
strikeStyle);
if (decorations == NS_STYLE_TEXT_DECORATION_NONE)
return NS_OK;
@ -362,26 +369,27 @@ nsHTMLContainerFrame::DisplayTextDecorations(nsDisplayListBuilder* aBuilder,
// list, underneath the text and all decorations.
if (GetStyleText()->mTextShadow) {
rv = aBelowTextDecorations->AppendNewToTop(new (aBuilder)
nsDisplayTextShadow(aBuilder, this, decorations, aLine));
nsDisplayTextShadow(aBuilder, this, decorations, underStyle, overStyle,
strikeStyle, aLine));
NS_ENSURE_SUCCESS(rv, rv);
}
if (decorations & NS_STYLE_TEXT_DECORATION_UNDERLINE) {
rv = aBelowTextDecorations->AppendNewToTop(new (aBuilder)
nsDisplayTextDecoration(aBuilder, this, NS_STYLE_TEXT_DECORATION_UNDERLINE,
underColor, aLine));
underColor, underStyle, aLine));
NS_ENSURE_SUCCESS(rv, rv);
}
if (decorations & NS_STYLE_TEXT_DECORATION_OVERLINE) {
rv = aBelowTextDecorations->AppendNewToTop(new (aBuilder)
nsDisplayTextDecoration(aBuilder, this, NS_STYLE_TEXT_DECORATION_OVERLINE,
overColor, aLine));
overColor, overStyle, aLine));
NS_ENSURE_SUCCESS(rv, rv);
}
if (decorations & NS_STYLE_TEXT_DECORATION_LINE_THROUGH) {
rv = aAboveTextDecorations->AppendNewToTop(new (aBuilder)
nsDisplayTextDecoration(aBuilder, this, NS_STYLE_TEXT_DECORATION_LINE_THROUGH,
strikeColor, aLine));
strikeColor, strikeStyle, aLine));
NS_ENSURE_SUCCESS(rv, rv);
}
return NS_OK;
@ -424,6 +432,7 @@ nsHTMLContainerFrame::PaintTextDecorationLine(
const nsPoint& aPt,
nsLineBox* aLine,
nscolor aColor,
PRUint8 aStyle,
gfxFloat aOffset,
gfxFloat aAscent,
gfxFloat aSize,
@ -442,7 +451,7 @@ nsHTMLContainerFrame::PaintTextDecorationLine(
PresContext()->AppUnitsToGfxUnits(bp.top + aPt.y));
gfxSize size(PresContext()->AppUnitsToGfxUnits(innerWidth), aSize);
nsCSSRendering::PaintDecorationLine(aCtx, aColor, pt, size, aAscent, aOffset,
aDecoration, nsCSSRendering::DECORATION_STYLE_SOLID);
aDecoration, aStyle);
}
/*virtual*/ void
@ -461,7 +470,10 @@ nsHTMLContainerFrame::GetTextDecorations(nsPresContext* aPresContext,
PRUint8& aDecorations,
nscolor& aUnderColor,
nscolor& aOverColor,
nscolor& aStrikeColor)
nscolor& aStrikeColor,
PRUint8& aUnderStyle,
PRUint8& aOverStyle,
PRUint8& aStrikeStyle)
{
aDecorations = NS_STYLE_TEXT_DECORATION_NONE;
if (!mStyleContext->HasTextDecorations()) {
@ -471,13 +483,15 @@ nsHTMLContainerFrame::GetTextDecorations(nsPresContext* aPresContext,
}
if (!aIsBlock) {
aDecorations = this->GetStyleTextReset()->mTextDecoration &
const nsStyleTextReset* styleTextReset = this->GetStyleTextReset();
aDecorations = styleTextReset->mTextDecoration &
NS_STYLE_TEXT_DECORATION_LINES_MASK;
if (aDecorations) {
nscolor color = this->GetVisitedDependentColor(eCSSProperty_color);
aUnderColor = color;
aOverColor = color;
aStrikeColor = color;
nscolor color =
this->GetVisitedDependentColor(eCSSProperty_text_decoration_color);
aUnderColor = aOverColor = aStrikeColor = color;
aUnderStyle = aOverStyle = aStrikeStyle =
styleTextReset->GetDecorationStyle();
}
}
else {
@ -491,23 +505,29 @@ nsHTMLContainerFrame::GetTextDecorations(nsPresContext* aPresContext,
// walk tree
for (nsIFrame* frame = this; frame; frame = frame->GetParent()) {
PRUint8 decors = frame->GetStyleTextReset()->mTextDecoration & decorMask;
const nsStyleTextReset* styleTextReset = frame->GetStyleTextReset();
PRUint8 decors = styleTextReset->mTextDecoration & decorMask;
if (decors) {
// A *new* text-decoration is found.
nscolor color = frame->GetVisitedDependentColor(eCSSProperty_color);
nscolor color = frame->GetVisitedDependentColor(
eCSSProperty_text_decoration_color);
PRUint8 style = styleTextReset->GetDecorationStyle();
if (NS_STYLE_TEXT_DECORATION_UNDERLINE & decors) {
aUnderColor = color;
aUnderStyle = style;
decorMask &= ~NS_STYLE_TEXT_DECORATION_UNDERLINE;
aDecorations |= NS_STYLE_TEXT_DECORATION_UNDERLINE;
}
if (NS_STYLE_TEXT_DECORATION_OVERLINE & decors) {
aOverColor = color;
aOverStyle = style;
decorMask &= ~NS_STYLE_TEXT_DECORATION_OVERLINE;
aDecorations |= NS_STYLE_TEXT_DECORATION_OVERLINE;
}
if (NS_STYLE_TEXT_DECORATION_LINE_THROUGH & decors) {
aStrikeColor = color;
aStrikeStyle = style;
decorMask &= ~NS_STYLE_TEXT_DECORATION_LINE_THROUGH;
aDecorations |= NS_STYLE_TEXT_DECORATION_LINE_THROUGH;
}

Просмотреть файл

@ -144,6 +144,18 @@ protected:
* in aDecoration is set. It is undefined otherwise.
* @param aStrikeColor The color of strike-through if the appropriate bit
* in aDecoration is set. It is undefined otherwise.
* @param aUnderStyle The style of underline if the appropriate bit
* in aDecoration is set. It is undefined otherwise.
* The style is one of
* NS_STYLE_TEXT_DECORATION_STYLE_* consts.
* @param aOverStyle The style of overline if the appropriate bit
* in aDecoration is set. It is undefined otherwise.
* The style is one of
* NS_STYLE_TEXT_DECORATION_STYLE_* consts.
* @param aStrikeStyle The style of strike-through if the appropriate bit
* in aDecoration is set. It is undefined otherwise.
* The style is one of
* NS_STYLE_TEXT_DECORATION_STYLE_* consts.
* NOTE: This function assigns NS_STYLE_TEXT_DECORATION_NONE to
* aDecorations for text-less frames. See bug 20163 for
* details.
@ -153,7 +165,10 @@ protected:
PRUint8& aDecorations,
nscolor& aUnderColor,
nscolor& aOverColor,
nscolor& aStrikeColor);
nscolor& aStrikeColor,
PRUint8& aUnderStyle,
PRUint8& aOverStyle,
PRUint8& aStrikeStyle);
/**
* Function that does the actual drawing of the textdecoration.
@ -161,6 +176,8 @@ protected:
* @param aCtx the Thebes graphics context to draw on
* @param aLine the line, or nsnull if this is an inline frame
* @param aColor the color of the text-decoration
* @param aStyle the style of the text-decoration, i.e., one of
* NS_STYLE_TEXT_DECORATION_STYLE_* consts.
* @param aAscent ascent of the font from which the
* text-decoration was derived.
* @param aOffset distance *above* baseline where the
@ -177,6 +194,7 @@ protected:
const nsPoint& aPt,
nsLineBox* aLine,
nscolor aColor,
PRUint8 aStyle,
gfxFloat aOffset,
gfxFloat aAscent,
gfxFloat aSize,

Просмотреть файл

@ -432,13 +432,19 @@ protected:
struct TextDecorations {
PRUint8 mDecorations;
PRUint8 mOverStyle;
PRUint8 mUnderStyle;
PRUint8 mStrikeStyle;
nscolor mOverColor;
nscolor mUnderColor;
nscolor mStrikeColor;
TextDecorations() :
mDecorations(0), mOverColor(NS_RGB(0, 0, 0)),
mUnderColor(NS_RGB(0, 0, 0)), mStrikeColor(NS_RGB(0, 0, 0))
mDecorations(0), mOverStyle(NS_STYLE_TEXT_DECORATION_STYLE_SOLID),
mUnderStyle(NS_STYLE_TEXT_DECORATION_STYLE_SOLID),
mStrikeStyle(NS_STYLE_TEXT_DECORATION_STYLE_SOLID),
mOverColor(NS_RGB(0, 0, 0)), mUnderColor(NS_RGB(0, 0, 0)),
mStrikeColor(NS_RGB(0, 0, 0))
{ }
PRBool HasDecorationlines() {

Просмотреть файл

@ -3465,15 +3465,6 @@ static StyleIDs SelectionStyleIDs[] = {
nsILookAndFeel::eMetricFloat_SpellCheckerUnderlineRelativeSize }
};
static PRUint8 sUnderlineStyles[] = {
nsCSSRendering::DECORATION_STYLE_NONE, // NS_UNDERLINE_STYLE_NONE 0
nsCSSRendering::DECORATION_STYLE_DOTTED, // NS_UNDERLINE_STYLE_DOTTED 1
nsCSSRendering::DECORATION_STYLE_DASHED, // NS_UNDERLINE_STYLE_DASHED 2
nsCSSRendering::DECORATION_STYLE_SOLID, // NS_UNDERLINE_STYLE_SOLID 3
nsCSSRendering::DECORATION_STYLE_DOUBLE, // NS_UNDERLINE_STYLE_DOUBLE 4
nsCSSRendering::DECORATION_STYLE_WAVY // NS_UNDERLINE_STYLE_WAVY 5
};
void
nsTextPaintStyle::InitSelectionStyle(PRInt32 aIndex)
{
@ -3546,9 +3537,9 @@ nsTextPaintStyle::GetSelectionUnderline(nsPresContext* aPresContext,
look->GetColor(styleID.mLine, color);
look->GetMetric(styleID.mLineStyle, style);
if (!NS_IS_VALID_UNDERLINE_STYLE(style)) {
if (style > NS_STYLE_TEXT_DECORATION_STYLE_MAX) {
NS_ERROR("Invalid underline style value is specified");
style = NS_UNDERLINE_STYLE_SOLID;
style = NS_STYLE_TEXT_DECORATION_STYLE_SOLID;
}
look->GetMetric(styleID.mLineRelativeSize, size);
@ -3558,9 +3549,9 @@ nsTextPaintStyle::GetSelectionUnderline(nsPresContext* aPresContext,
*aLineColor = color;
}
*aRelativeSize = size;
*aStyle = sUnderlineStyles[style];
*aStyle = style;
return sUnderlineStyles[style] != nsCSSRendering::DECORATION_STYLE_NONE &&
return style != NS_STYLE_TEXT_DECORATION_STYLE_NONE &&
color != NS_TRANSPARENT &&
size > 0.0f;
}
@ -4270,13 +4261,15 @@ nsTextFrame::GetTextDecorations(nsPresContext* aPresContext)
// This handles the <a href="blah.html"><font color="green">La
// la la</font></a> case. The link underline should be green.
useOverride = PR_TRUE;
overrideColor = context->GetVisitedDependentColor(eCSSProperty_color);
overrideColor = context->GetVisitedDependentColor(
eCSSProperty_text_decoration_color);
}
// FIXME: see above (remove this check)
PRUint8 useDecorations = decorMask & styleText->mTextDecoration;
if (useDecorations) {// a decoration defined here
nscolor color = context->GetVisitedDependentColor(eCSSProperty_color);
nscolor color = context->GetVisitedDependentColor(
eCSSProperty_text_decoration_color);
// FIXME: We also need to record the thickness and position
// metrics appropriate to this element (at least in standards
@ -4289,16 +4282,19 @@ nsTextFrame::GetTextDecorations(nsPresContext* aPresContext)
// This way we move the decorations for relative positioning.
if (NS_STYLE_TEXT_DECORATION_UNDERLINE & useDecorations) {
decorations.mUnderColor = useOverride ? overrideColor : color;
decorations.mUnderStyle = styleText->GetDecorationStyle();
decorMask &= ~NS_STYLE_TEXT_DECORATION_UNDERLINE;
decorations.mDecorations |= NS_STYLE_TEXT_DECORATION_UNDERLINE;
}
if (NS_STYLE_TEXT_DECORATION_OVERLINE & useDecorations) {
decorations.mOverColor = useOverride ? overrideColor : color;
decorations.mOverStyle = styleText->GetDecorationStyle();
decorMask &= ~NS_STYLE_TEXT_DECORATION_OVERLINE;
decorations.mDecorations |= NS_STYLE_TEXT_DECORATION_OVERLINE;
}
if (NS_STYLE_TEXT_DECORATION_LINE_THROUGH & useDecorations) {
decorations.mStrikeColor = useOverride ? overrideColor : color;
decorations.mStrikeStyle = styleText->GetDecorationStyle();
decorMask &= ~NS_STYLE_TEXT_DECORATION_LINE_THROUGH;
decorations.mDecorations |= NS_STYLE_TEXT_DECORATION_LINE_THROUGH;
}
@ -4393,8 +4389,7 @@ nsTextFrame::PaintTextDecorations(gfxContext* aCtx, const gfxRect& aDirtyRect,
size.height = fontMetrics.underlineSize;
nsCSSRendering::PaintDecorationLine(
aCtx, lineColor, pt, size, ascent, fontMetrics.maxAscent,
NS_STYLE_TEXT_DECORATION_OVERLINE,
nsCSSRendering::DECORATION_STYLE_SOLID);
NS_STYLE_TEXT_DECORATION_OVERLINE, decorations.mOverStyle);
}
if (decorations.HasUnderline()) {
lineColor = aOverrideColor ? *aOverrideColor : decorations.mUnderColor;
@ -4402,8 +4397,7 @@ nsTextFrame::PaintTextDecorations(gfxContext* aCtx, const gfxRect& aDirtyRect,
gfxFloat offset = aProvider.GetFontGroup()->GetUnderlineOffset();
nsCSSRendering::PaintDecorationLine(
aCtx, lineColor, pt, size, ascent, offset,
NS_STYLE_TEXT_DECORATION_UNDERLINE,
nsCSSRendering::DECORATION_STYLE_SOLID);
NS_STYLE_TEXT_DECORATION_UNDERLINE, decorations.mUnderStyle);
}
if (decorations.HasStrikeout()) {
lineColor = aOverrideColor ? *aOverrideColor : decorations.mStrikeColor;
@ -4411,8 +4405,7 @@ nsTextFrame::PaintTextDecorations(gfxContext* aCtx, const gfxRect& aDirtyRect,
gfxFloat offset = fontMetrics.strikeoutOffset;
nsCSSRendering::PaintDecorationLine(
aCtx, lineColor, pt, size, ascent, offset,
NS_STYLE_TEXT_DECORATION_LINE_THROUGH,
nsCSSRendering::DECORATION_STYLE_SOLID);
NS_STYLE_TEXT_DECORATION_LINE_THROUGH, decorations.mStrikeStyle);
}
}
@ -4440,30 +4433,6 @@ static const SelectionType SelectionTypesWithDecorations =
nsISelectionController::SELECTION_IME_CONVERTEDTEXT |
nsISelectionController::SELECTION_IME_SELECTEDCONVERTEDTEXT;
static PRUint8
GetTextDecorationStyle(const nsTextRangeStyle &aRangeStyle)
{
NS_PRECONDITION(aRangeStyle.IsLineStyleDefined(),
"aRangeStyle.mLineStyle have to be defined");
switch (aRangeStyle.mLineStyle) {
case nsTextRangeStyle::LINESTYLE_NONE:
return nsCSSRendering::DECORATION_STYLE_NONE;
case nsTextRangeStyle::LINESTYLE_SOLID:
return nsCSSRendering::DECORATION_STYLE_SOLID;
case nsTextRangeStyle::LINESTYLE_DOTTED:
return nsCSSRendering::DECORATION_STYLE_DOTTED;
case nsTextRangeStyle::LINESTYLE_DASHED:
return nsCSSRendering::DECORATION_STYLE_DASHED;
case nsTextRangeStyle::LINESTYLE_DOUBLE:
return nsCSSRendering::DECORATION_STYLE_DOUBLE;
case nsTextRangeStyle::LINESTYLE_WAVY:
return nsCSSRendering::DECORATION_STYLE_WAVY;
default:
NS_WARNING("Requested underline style is not valid");
return nsCSSRendering::DECORATION_STYLE_SOLID;
}
}
static gfxFloat
ComputeSelectionUnderlineHeight(nsPresContext* aPresContext,
const gfxFont::Metrics& aFontMetrics,
@ -4549,7 +4518,7 @@ static void DrawSelectionDecorations(gfxContext* aContext, SelectionType aType,
if (aRangeStyle.mLineStyle == nsTextRangeStyle::LINESTYLE_NONE) {
return;
}
style = GetTextDecorationStyle(aRangeStyle);
style = aRangeStyle.mLineStyle;
relativeSize = aRangeStyle.mIsBoldLine ? 2.0f : 1.0f;
} else if (!weDefineSelectionUnderline) {
// There is no underline style definition.
@ -5358,7 +5327,7 @@ nsTextFrame::CombineSelectionUnderlineRect(nsPresContext* aPresContext,
rangeStyle.mLineStyle == nsTextRangeStyle::LINESTYLE_NONE) {
continue;
}
style = GetTextDecorationStyle(rangeStyle);
style = rangeStyle.mLineStyle;
relativeSize = rangeStyle.mIsBoldLine ? 2.0f : 1.0f;
} else if (!nsTextPaintStyle::GetSelectionUnderline(aPresContext, index,
nsnull, &relativeSize,

Просмотреть файл

@ -21,7 +21,7 @@ include backgrounds/reftest.list
include bidi/reftest.list
# border-image
include border-image/reftest.list
skip-if(Android) include border-image/reftest.list
# border-radius/
include border-radius/reftest.list
@ -33,10 +33,10 @@ include box-ordinal/reftest.list
include box-properties/reftest.list
# box-shadow/
include box-shadow/reftest.list
skip-if(Android) include box-shadow/reftest.list
# bugs/
include bugs/reftest.list
skip-if(Android) include bugs/reftest.list
# canvas 2D
include canvas/reftest.list
@ -51,10 +51,10 @@ include css-charset/reftest.list
include css-default/reftest.list
# css :disable tests
include css-disabled/reftest.list
skip-if(Android) include css-disabled/reftest.list
# css :enable tests
include css-enabled/reftest.list
skip-if(Android) include css-enabled/reftest.list
# css @import tests
include css-import/reftest.list
@ -81,10 +81,10 @@ include css-required/reftest.list
include css-optional/reftest.list
# css valid
include css-valid/reftest.list
skip-if(Android) include css-valid/reftest.list
# css invalid
include css-invalid/reftest.list
skip-if(Android) include css-invalid/reftest.list
# css-submit-invalid
include css-submit-invalid/reftest.list
@ -93,10 +93,10 @@ include css-submit-invalid/reftest.list
include css-transitions/reftest.list
# css :-moz-ui-invalid
include css-ui-invalid/reftest.list
skip-if(Android) include css-ui-invalid/reftest.list
# css :-moz-ui-valid
include css-ui-valid/reftest.list
skip-if(Android) include css-ui-valid/reftest.list
# css values and units
include css-valuesandunits/reftest.list
@ -129,7 +129,7 @@ include editor/reftest.list
include generated-content/reftest.list
# first-letter/
include first-letter/reftest.list
skip-if(Android) include first-letter/reftest.list
# first-line/
include first-line/reftest.list
@ -147,7 +147,7 @@ include font-features/reftest.list
include font-matching/reftest.list
# forms
include forms/reftest.list
skip-if(Android) include forms/reftest.list
# gfx
include ../../gfx/tests/reftest/reftest.list
@ -186,7 +186,7 @@ include margin-collapsing/reftest.list
include marquee/reftest.list
# native-theme/
include native-theme/reftest.list
skip-if(Android) include native-theme/reftest.list
# netwerk/
include ../../netwerk/test/reftest/reftest.list
@ -250,7 +250,7 @@ include text-decoration/reftest.list
include text-indent/reftest.list
# text-shadow/
include text-shadow/reftest.list
skip-if(Android) include text-shadow/reftest.list
# theme (pinstripe)
include ../../toolkit/themes/pinstripe/reftests/reftest.list

Просмотреть файл

@ -0,0 +1,65 @@
<p style="color: #008000;
text-decoration: underline line-through overline;">
<span style="color: #0000FF;">This blue text has green decoration lines</span>
</p>
<p style="color: yellow;
text-decoration: underline line-through overline;">
<span style="color: red;">This red text has yellow decoration lines</span>
</p>
<p style="color: red; text-decoration: underline line-through overline;">
<span style="color: #0000FF">This blue text has red lines</span>
</p>
<p style="color: orange;">
This orange text has transparent lines
</p>
<p>
Here is no decoration lines, but
<span style="font-size: 2em;
color: green;
text-decoration: underline line-through overline;">
<span style="color: blue;">
this blue text has green decoration lines</span></span>,
and here is no decoration lines too.
</p>
<p style="color: red;">
This is red paragraph and here is no decoration lines, but
<span style="font-size: 2em;
color: green;
text-decoration: underline line-through overline;">
<span style="color: red;">here are green decoration lines</span></span>,
and here is no decoration lines too.
</p>
<p style="color: purple;
text-decoration: underline line-through overline;">
This is purple paragraph and here are decoration lines of current color, but
<span style="font-size: 2em;
color: red;
text-decoration: underline line-through overline;">
<span style="color: purple;">here are red decoration lines</span></span>,
and here are current color decoration lines.
</p>
<p style="color: green;
text-decoration: underline line-through overline;">
This is green paragraph and here are decoration lines of current color, and
<span style="font-size: 2em;">
here is specified red decoration color but has current color lines</span>,
and here are current color decoration lines.
</p>
<p style="color: blue;">
This is blue paragraph,
<span style="font-size:2em;
color: red;
text-decoration: underline line-through overline;
-moz-text-decoration-color: blue;">
here is red text with blue decoration lines</span>,
and here is blue text without decoration lines.
</p>
<p style="color: blue;">
This is blue paragraph and decoration color is specified as green,
<span style="font-size:2em;
color: red;
text-decoration: underline line-through overline;
-moz-text-decoration-color: green;">
here is red text with green decoration lines</span>,
and here is blue text without decoration lines.
</p>

Просмотреть файл

@ -0,0 +1,73 @@
<p style="color: blue;
text-decoration: underline line-through overline;
-moz-text-decoration-color: green;">
This blue text has green decoration lines
</p>
<p style="color: #ff0000;
text-decoration: underline line-through overline;
-moz-text-decoration-color: #ffff00;">
This red text has yellow decoration lines
</p>
<p style="color: rgb(0%, 0%, 100%);
text-decoration: underline line-through overline;
-moz-text-decoration-color: rgb(100%, 0%, 0%);">
This blue text has red lines
</p>
<p style="color: orange;
text-decoration: underline line-through overline;
-moz-text-decoration-color: transparent;">
This orange text has transparent lines
</p>
<p>
Here is no decoration lines, but
<span style="font-size: 2em;
color: blue;
text-decoration: underline line-through overline;
-moz-text-decoration-color: green;">
this blue text has green decoration lines</span>,
and here is no decoration lines too.
</p>
<p style="color: red;">
This is red paragraph and here is no decoration lines, but
<span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration-color: green;">
here are green decoration lines</span>,
and here is no decoration lines too.
</p>
<p style="color: purple;
text-decoration: underline line-through overline;">
This is purple paragraph and here are decoration lines of current color, but
<span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration-color: red;">
here are red decoration lines</span>,
and here are current color decoration lines.
</p>
<p style="color: green;
text-decoration: underline line-through overline;">
This is green paragraph and here are decoration lines of current color, and
<span style="font-size: 2em;
-moz-text-decoration-color: red;">
here is specified red decoration color but has current color lines</span>,
and here are current color decoration lines.
</p>
<p style="color: blue;">
This is blue paragraph,
<span style="font-size:2em;
color: red;
text-decoration: underline line-through overline;
-moz-text-decoration-color: inherit;">
here is red text with blue decoration lines</span>,
and here is blue text without decoration lines.
</p>
<p style="color: blue;
-moz-text-decoration-color: green;">
This is blue paragraph and decoration color is specified as green,
<span style="font-size:2em;
color: red;
text-decoration: underline line-through overline;
-moz-text-decoration-color: inherit;">
here is red text with green decoration lines</span>,
and here is blue text without decoration lines.
</p>

Просмотреть файл

@ -0,0 +1,67 @@
<!DOCTYPE html>
<p style="color: #008000;
text-decoration: underline line-through overline;">
<span style="color: #0000FF;">This blue text has green decoration lines</span>
</p>
<p style="color: yellow;
text-decoration: underline line-through overline;">
<span style="color: red;">This red text has yellow decoration lines</span>
</p>
<p style="color: red;
text-decoration: underline line-through overline;">
<span style="color: #0000FF">This blue text has red lines</span>
</p>
<p style="color: orange;">
This orange text has transparent lines
</p>
<p>
Here is no decoration lines, but
<span style="font-size: 2em;
color: green;
text-decoration: underline line-through overline;">
<span style="color: blue;">
this blue text has green decoration lines</span></span>,
and here is no decoration lines too.
</p>
<p style="color: red;">
This is red paragraph and here is no decoration lines, but
<span style="font-size: 2em;
color: green;
text-decoration: underline line-through overline;">
<span style="color: red;">here are green decoration lines</span></span>,
and here is no decoration lines too.
</p>
<p style="color: purple;
text-decoration: underline line-through overline;">
This is purple paragraph and here are decoration lines of current color, but
<span style="font-size: 2em;
color: red;
text-decoration: underline line-through overline;">
<span style="color: purple;">here are red decoration lines</span></span>,
and here are current color decoration lines.
</p>
<p style="color: green;
text-decoration: underline line-through overline;">
This is green paragraph and here are decoration lines of current color, and
<span style="font-size: 2em;">
here is specified red decoration color but has current color lines</span>,
and here are current color decoration lines.
</p>
<p style="color: blue;">
This is blue paragraph,
<span style="font-size:2em;
color: red;
text-decoration: underline line-through overline;
-moz-text-decoration-color: blue;">
here is red text with blue decoration lines</span>,
and here is blue text without decoration lines.
</p>
<p style="color: blue;">
This is blue paragraph and decoration color is specified as green,
<span style="font-size:2em;
color: red;
text-decoration: underline line-through overline;
-moz-text-decoration-color: green;">
here is red text with green decoration lines</span>,
and here is blue text without decoration lines.
</p>

Просмотреть файл

@ -0,0 +1,72 @@
<!DOCTYPE html>
<p style="color: blue;
text-decoration: underline line-through overline;
-moz-text-decoration-color: green;">
This blue text has green decoration lines
</p>
<p style="color: #ff0000;
text-decoration: underline line-through overline;
-moz-text-decoration-color: #ffff00;">
This red text has yellow decoration lines
</p>
<p style="color: rgb(0%, 0%, 100%);
text-decoration: underline line-through overline;
-moz-text-decoration-color: rgb(100%, 0%, 0%);">
This blue text has red lines
</p>
<p style="color: orange;
text-decoration: underline line-through overline;
-moz-text-decoration-color: transparent;">
This orange text has transparent lines
</p>
<p>
Here is no decoration lines, but
<span style="font-size: 2em; color: blue;
text-decoration: underline line-through overline;
-moz-text-decoration-color: green;">
this blue text has green decoration lines</span>,
and here is no decoration lines too.
</p>
<p style="color: red;">
This is red paragraph and here is no decoration lines, but
<span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration-color: green;">
here are green decoration lines</span>,
and here is no decoration lines too.</p>
<p style="color: purple;
text-decoration: underline line-through overline;">
This is purple paragraph and here are decoration lines of current color, but
<span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration-color: red;">
here are red decoration lines</span>,
and here are current color decoration lines.
</p>
<p style="color: green;
text-decoration: underline line-through overline;">
This is green paragraph and here are decoration lines of current color, and
<span style="font-size: 2em;
-moz-text-decoration-color: red;">
here is specified red decoration color but has current color lines</span>,
and here are current color decoration lines.
</p>
<p style="color: blue;">
This is blue paragraph,
<span style="font-size:2em;
color: red;
text-decoration: underline line-through overline;
-moz-text-decoration-color: inherit;">
here is red text with blue decoration lines</span>,
and here is blue text without decoration lines.
</p>
<p style="color: blue;
-moz-text-decoration-color: green;">
This is blue paragraph and decoration color is specified as green,
<span style="font-size:2em;
color: red;
text-decoration: underline line-through overline;
-moz-text-decoration-color: inherit;">
here is red text with green decoration lines</span>,
and here is blue text without decoration lines.
</p>

Просмотреть файл

@ -0,0 +1,42 @@
<p>
Here is specified the decoration style as dotted but no decoration lines,
however,
<span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration: solid;">
here has solid decoration lines</span>,
and here has no decoration lines.
</p>
<p>
Here is specified the decoration style as dashed but no decoration lines,
however,
<span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration-style: dashed;">
here has inherited decoration lines</span>,
and here has no decoration lines.
</p>
<p>
<span style="text-decoration: underline line-through overline;
-moz-text-decoration-style: dotted;">
Here has dotted decoration lines,
</span><span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration-style: wavy;">
here has wavy decoration
lines</span><span style="text-decoration: underline line-through overline;
-moz-text-decoration-style: dotted;">,
and here has dotted decoration lines.</span>
</p>
<p>
<span style="text-decoration: underline line-through overline;
-moz-text-decoration-style: double;">
Here has double decoration lines,
</span><span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration-style: double;">
here is specified as dashed decoration lines but should be
ignored</span><span style="text-decoration: underline line-through overline;
-moz-text-decoration-style: double;">,
and here has double decoration lines.</span>
</p>

Просмотреть файл

@ -0,0 +1,33 @@
<p style="-moz-text-decoration-style: dotted;">
Here is specified the decoration style as dotted but no decoration lines, however,
<span style="font-size: 2em;
text-decoration: underline line-through overline;">
here has solid decoration lines</span>,
and here has no decoration lines.
</p>
<p style="-moz-text-decoration-style: dashed;">
Here is specified the decoration style as dashed but no decoration lines,
however,
<span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration-style: inherit;">
here has inherited decoration lines</span>,
and here has no decoration lines.
</p>
<p style="text-decoration: underline line-through overline;
-moz-text-decoration-style: dotted;">
Here has dotted decoration lines,
<span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration-style: wavy;">
here has wavy decoration lines</span>,
and here has dotted decoration lines.
</p>
<p style="text-decoration: underline line-through overline;
-moz-text-decoration-style: double;">
Here has double decoration lines,
<span style="font-size: 2em;
-moz-text-decoration-style: dashed;">
here is specified as dashed decoration lines but should be ignored</span>,
and here has double decoration lines.
</p>

Просмотреть файл

@ -0,0 +1,27 @@
<!DOCTYPE html>
<p>
Here is specified the decoration style as dotted but no decoration lines,
however,
<span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration: solid;">
here has solid decoration lines</span>,
and here has no decoration lines.
</p>
<p>
Here is specified the decoration style as dashed but no decoration lines,
however,
<span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration-style: dashed;">
here has inherited decoration lines</span>,
and here has no decoration lines.
</p>
<p style="text-decoration: underline line-through overline;
-moz-text-decoration-style: double;">
Here has double decoration lines,
<span style="font-size: 2em;
text-decoration: none;">
here is specified as dashed decoration lines but should be ignored</span>,
and here has double decoration lines.
</p>

Просмотреть файл

@ -0,0 +1,25 @@
<!DOCTYPE html>
<p style="-moz-text-decoration-style: dotted;">
Here is specified the decoration style as dotted but no decoration lines,
however,
<span style="font-size: 2em;
text-decoration: underline line-through overline;">
here has solid decoration lines</span>, and here has no decoration lines.
</p>
<p style="-moz-text-decoration-style: dashed;">
Here is specified the decoration style as dashed but no decoration lines,
however,
<span style="font-size: 2em;
text-decoration: underline line-through overline;
-moz-text-decoration-style: inherit;">
here has inherited decoration lines</span>,
and here has no decoration lines.
</p>
<p style="text-decoration: underline line-through overline;
-moz-text-decoration-style: double;">
Here has double decoration lines,
<span style="font-size: 2em;
-moz-text-decoration-style: dashed;">
here is specified as dashed decoration lines but should be ignored</span>,
and here has double decoration lines.
</p>

Просмотреть файл

@ -0,0 +1 @@
<p style="text-decoration: line-through; -moz-text-decoration-style: dashed;">This paragraph has line-through</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p style="text-decoration: line-through; -moz-text-decoration-style: dashed;">This paragraph has line-through</p>

Просмотреть файл

@ -0,0 +1 @@
<p style="text-decoration: line-through; -moz-text-decoration-style: dotted;">This paragraph has line-through</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p style="text-decoration: line-through; -moz-text-decoration-style: dotted;">This paragraph has line-through</p>

Просмотреть файл

@ -0,0 +1 @@
<p style="text-decoration: line-through; -moz-text-decoration-style: double;">This paragraph has line-through</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p style="text-decoration: line-through; -moz-text-decoration-style: double;">This paragraph has line-through</p>

Просмотреть файл

@ -0,0 +1 @@
<p style="text-decoration: line-through;">This paragraph has line-through</p>

Просмотреть файл

@ -0,0 +1 @@
<p style="text-decoration: line-through; -moz-text-decoration-style: solid;">This paragraph has line-through</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p style="text-decoration: line-through; -moz-text-decoration-style: solid;">This paragraph has line-through</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p style="text-decoration: line-through;">This paragraph has line-through</p>

Просмотреть файл

@ -0,0 +1 @@
<p style="text-decoration: line-through; -moz-text-decoration-style: wavy;">This paragraph has line-through</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p style="text-decoration: line-through; -moz-text-decoration-style: wavy;">This paragraph has line-through</p>

Просмотреть файл

@ -0,0 +1 @@
<p>This paragraph has no decoration lines, but <span style="text-decoration: line-through; -moz-text-decoration-style: dashed;">here has line-through</span>, and here has no decoration lines.</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p>This paragraph has no decoration lines, but <span style="text-decoration: line-through; -moz-text-decoration-style: dashed;">here has line-through</span>, and here has no decoration lines.</p>

Просмотреть файл

@ -0,0 +1 @@
<p>This paragraph has no decoration lines, but <span style="text-decoration: line-through; -moz-text-decoration-style: dotted;">here has line-through</span>, and here has no decoration lines.</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p>This paragraph has no decoration lines, but <span style="text-decoration: line-through; -moz-text-decoration-style: dotted;">here has line-through</span>, and here has no decoration lines.</p>

Просмотреть файл

@ -0,0 +1 @@
<p>This paragraph has no decoration lines, but <span style="text-decoration: line-through; -moz-text-decoration-style: double;">here has line-through</span>, and here has no decoration lines.</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p>This paragraph has no decoration lines, but <span style="text-decoration: line-through; -moz-text-decoration-style: double;">here has line-through</span>, and here has no decoration lines.</p>

Просмотреть файл

@ -0,0 +1 @@
<p>This paragraph has no decoration lines, but <span style="text-decoration: line-through;">here has line-through</span>, and here has no decoration lines.</p>

Просмотреть файл

@ -0,0 +1 @@
<p>This paragraph has no decoration lines, but <span style="text-decoration: line-through; -moz-text-decoration-style: solid;">here has line-through</span>, and here has no decoration lines.</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p>This paragraph has no decoration lines, but <span style="text-decoration: line-through; -moz-text-decoration-style: solid;">here has line-through</span>, and here has no decoration lines.</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p>This paragraph has no decoration lines, but <span style="text-decoration: line-through;">here has line-through</span>, and here has no decoration lines.</p>

Просмотреть файл

@ -0,0 +1 @@
<p>This paragraph has no decoration lines, but <span style="text-decoration: line-through; -moz-text-decoration-style: wavy;">here has line-through</span>, and here has no decoration lines.</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p>This paragraph has no decoration lines, but <span style="text-decoration: line-through; -moz-text-decoration-style: wavy;">here has line-through</span>, and here has no decoration lines.</p>

Просмотреть файл

@ -0,0 +1 @@
<p style="text-decoration: overline; -moz-text-decoration-style: dashed;">This paragraph has overline</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p style="text-decoration: overline; -moz-text-decoration-style: dashed;">This paragraph has overline</p>

Просмотреть файл

@ -0,0 +1 @@
<p style="text-decoration: overline; -moz-text-decoration-style: dotted;">This paragraph has overline</p>

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<p style="text-decoration: overline; -moz-text-decoration-style: dotted;">This paragraph has overline</p>

Просмотреть файл

@ -0,0 +1 @@
<p style="text-decoration: overline; -moz-text-decoration-style: double;">This paragraph has overline</p>

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше