diff options
author | Alexis Menard <alexis.menard@nokia.com> | 2011-06-27 21:51:10 (GMT) |
---|---|---|
committer | Alexis Menard <alexis.menard@nokia.com> | 2011-06-27 21:51:10 (GMT) |
commit | cc7f93d1a8b6350c5e0ad5a58cf78d17a51201fa (patch) | |
tree | 36de473ddbd0cb424718540a230b98a1c25a1192 | |
parent | e1c651f1284f1041ba5e03246686018e363d0e44 (diff) | |
download | Qt-cc7f93d1a8b6350c5e0ad5a58cf78d17a51201fa.zip Qt-cc7f93d1a8b6350c5e0ad5a58cf78d17a51201fa.tar.gz Qt-cc7f93d1a8b6350c5e0ad5a58cf78d17a51201fa.tar.bz2 |
Updated WebKit to d30a30ac4faadcb8b2e282e343c921f919fbca9b
Beta1 of QtWebkit 2.2.
Reviewed-by: Andreas Kling
52 files changed, 2901 insertions, 2120 deletions
diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag index eecdf33..764b986 100644 --- a/src/3rdparty/webkit/.tag +++ b/src/3rdparty/webkit/.tag @@ -1 +1 @@ -631751dee41f81af4daa7821f98b1ce8667c4d90 +d30a30ac4faadcb8b2e282e343c921f919fbca9b diff --git a/src/3rdparty/webkit/ChangeLog b/src/3rdparty/webkit/ChangeLog index d09494e..96ef591 100644 --- a/src/3rdparty/webkit/ChangeLog +++ b/src/3rdparty/webkit/ChangeLog @@ -1,3 +1,14 @@ +2011-06-27 Alexis Menard <alexis.menard@openbossa.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Remove Phonon MediaPlayer from the tree. + https://bugs.webkit.org/show_bug.cgi?id=63448 + + Remvove from the build. + + * Source/WebKit.pri: + 2011-06-07 Andreas Kling <andreas.kling@nokia.com> Reviewed by Laszlo Gombos. diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/COPYING.LIB b/src/3rdparty/webkit/Source/JavaScriptCore/COPYING.LIB new file mode 100644 index 0000000..87c4a33 --- /dev/null +++ b/src/3rdparty/webkit/Source/JavaScriptCore/COPYING.LIB @@ -0,0 +1,488 @@ + + +NOTE! The LGPL below is copyrighted by the Free Software Foundation, but +the instance of code that it refers to (the kde libraries) are copyrighted +by the authors who actually wrote it. + +--------------------------------------------------------------------------- + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor + Boston, MA 02110-1301, USA. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/src/3rdparty/webkit/Source/WebCore/ChangeLog b/src/3rdparty/webkit/Source/WebCore/ChangeLog index 919d0bf..c54ef03 100644 --- a/src/3rdparty/webkit/Source/WebCore/ChangeLog +++ b/src/3rdparty/webkit/Source/WebCore/ChangeLog @@ -1,3 +1,285 @@ +2011-06-15 Jer Noble <jer.noble@apple.com> + + Reviewed by Timothy Hatcher. + + Full-screen live streams have status text in wrong location + https://bugs.webkit.org/show_bug.cgi?id=62733 + + Fix a misspelling in the user-agent stylesheet for full-screen mode. + + * css/fullscreenQuickTime.css: + (video:-webkit-full-screen::-webkit-media-controls-status-display): + +2011-06-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Reviewed by Andreas Kling. + + [Qt] tst_QWebFrame::overloadedSlots() fails + https://bugs.webkit.org/show_bug.cgi?id=37319 + + This patch is based on Noam Rosenthal original patch in the same bug. + + When hinted with QWebElement metatype, we qualify the conversion + from JSElement as a "perfect match". + + The test was failing because the wrong slot was called, since the QWebElement + match was taken as equal to the others and not chosen when the metacall happened. + + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::convertValueToQVariant): Identify the conversion between JSElement + to QWebElement as a "perfect match" (dist = 0). Add comments to explain the reason + why we have the implicit conversion. + +2011-06-27 Abhishek Arya <inferno@chromium.org> + + Reviewed by Simon Fraser. + + Fix removal of overhanging floats on style changes to absolute/fixed position. + https://bugs.webkit.org/show_bug.cgi?id=63355 + + 1. If we are not currently positioned. + 2. And we are not floating. (If we are floating, then this will be automatically + done in RenderBox::styleWillChange as part of removeFloatingOrPositionedChildFromBlockLists) + 3. And we have overhanging floats from previous sibling blocks. + 4. And our new new style tells that we will have absolute or fixed position. + + Then, we mark all our descendants with floats for layout. This will make sure that + overhanging floats are removed. Also, it is important to do that since if that previous + sibling block goes away, it is not able to tell us that to remove those floats thinking + that being a positioned block, we should have removed them already. + + Tests: fast/block/float/intruding-float-add-in-sibling-block-on-static-position.html + fast/block/float/intruding-float-add-in-sibling-block-on-static-position2.html + fast/block/float/intruding-float-remove-from-sibling-block-on-absolute-position.html + fast/block/float/intruding-float-remove-from-sibling-block-on-absolute-position2.html + fast/block/float/intruding-float-remove-from-sibling-block-on-fixed-position.html + fast/block/float/intruding-float-remove-from-sibling-block-on-fixed-position2.html + fast/block/float/overhanging-float-add-in-static-position-block.html + fast/block/float/overhanging-float-add-in-static-position-block2.html + fast/block/float/overhanging-float-remove-from-absolute-position-block.html + fast/block/float/overhanging-float-remove-from-absolute-position-block2.html + fast/block/float/overhanging-float-remove-from-fixed-position-block.html + fast/block/float/overhanging-float-remove-from-fixed-position-block2.html + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::styleWillChange): + +2011-06-27 Ryosuke Niwa <rniwa@webkit.org> + + Reviewed by Kent Tamura. + + Crash in TextIterator + https://bugs.webkit.org/show_bug.cgi?id=63334 + + Fix a crash in TextIterator. Keep m_sortedTextBoxes and renderer consistent + and check !m_offset when handling first letter. + + Also add more assertions to help detecting similar bugs. + + Test: editing/text-iterator/first-letter-rtl-crash.html + + * editing/TextIterator.cpp: + (WebCore::TextIterator::handleTextNode): + (WebCore::TextIterator::emitText): + +2011-06-27 Huang Dongsung <luxtella@company100.net> + + Reviewed by Kenneth Rohde Christiansen. + + TiledBackingStore endlessly creates and destroys tiles due to an off-by-one + error. + https://bugs.webkit.org/show_bug.cgi?id=62422 + + REGRESSION(r77286): Remove bottomRight(). + REGRESSION(r77312): Change the logic to get the bottom right point. + REGRESSION(r77928): Cause off-by-one error in TiledBackingStore. + REGRESSION(r78783): Cause off-by-one error in TiledDrawingAreaProxy. + REGRESSION(r78785): Cause off-by-one error in TiledDrawingAreaProxy. + + If the viewport width equals the contents width, especially in the mobile + device, TiledBackingStore endlessly creates and deletes the rightmost + column and bottom row of tiles. + In the detail, dropTilesOutsideRect() in TiledBackingStore::createTiles() + deletes tiles and setTile(coordinate, Tile::create(this, coordinate)) creates + tiles infinitely. + Modified TiledDrawingAreaProxy also. + + * platform/graphics/TiledBackingStore.cpp: + (WebCore::innerBottomRight): + (WebCore::TiledBackingStore::invalidate): + (WebCore::TiledBackingStore::paint): + (WebCore::TiledBackingStore::createTiles): + +2011-06-27 Alexis Menard <alexis.menard@openbossa.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Remove Phonon MediaPlayer from the tree. + https://bugs.webkit.org/show_bug.cgi?id=63448 + + Remove Phonon mediaplayer as it is unused, not finished and + unmaintained. + + * WebCore.gypi: + * WebCore.pri: + * WebCore.pro: + * features.pri: + * platform/graphics/MediaPlayer.cpp: + * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp: Removed. + * platform/graphics/qt/MediaPlayerPrivatePhonon.h: Removed. + +2011-06-10 Darin Adler <darin@apple.com> + + Reviewed by Eric Carlson. + + REGRESSION: Fullscreen video controller can't be dragged + https://bugs.webkit.org/show_bug.cgi?id=62462 + + No regression test because we don't have machinery for testing the fullscreen + mode. We may find a way to add this in the future. + + * html/shadow/MediaControlElements.cpp: + (WebCore::MediaControlPanelElement::MediaControlPanelElement): Initialize new + booleans related to dragging. + (WebCore::MediaControlPanelElement::startDrag): Added. Starts drag if dragging + is allowed and a drag isn't already in progress. + (WebCore::MediaControlPanelElement::continueDrag): Added. Moves the window if + dragging is already in progress. + (WebCore::MediaControlPanelElement::endDrag): Added. Ends the capture that is + done during the dragging process. + (WebCore::MediaControlPanelElement::setPosition): Added. Positions the panel + using explicit top/left. + (WebCore::MediaControlPanelElement::resetPosition): Added. Removes the positioning + done by setPosition. + (WebCore::MediaControlPanelElement::defaultEventHandler): Added. Calls startDrag, + continueDrag, and endDrag in response to mouse events. + (WebCore::MediaControlPanelElement::setCanBeDragged): Added. + * html/shadow/MediaControlElements.h: Added new function and data members + as mentioned above. + + * html/shadow/MediaControlRootElement.cpp: + (WebCore::MediaControlRootElement::enteredFullscreen): Call setCanBeDragged(true) + so you can drag the panel while in fullscreen. + (WebCore::MediaControlRootElement::exitedFullscreen): Call setCanBeDragged(false) + so you can't drag the panel while not in fullscreen. Also call resetPosition so + position changes from dragging don't affect the panel in other contexts. + +2011-06-24 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Darin Adler. + + REGRESSION (r77740): Shadow DOM pseudo elements aren't matching when combined with descendant selectors + https://bugs.webkit.org/show_bug.cgi?id=63373 + + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::pushParentStackFrame): Changed to use parentOrHostElement. + (WebCore::CSSStyleSelector::pushParent): Ditto. + * dom/Node.cpp: + (WebCore::Node::parentOrHostElement): Added. + * dom/Node.h: + +2011-06-24 Alexey Proskuryakov <ap@apple.com> + + Rubber-stamped by Maciej Stachowiak. + + REGRESSION (r88984): Infinite recursion in DocumentLoader::detachFromFrame/stopLoading + + No new tests, as there is no known way to reproduce this (but we'll keep investigating, as + the rollout will re-introduce the older less frequent crash). + + * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::detachFromFrame): Rollout the fix + for bug 62764. + +2011-06-24 Alexis Menard <alexis.menard@openbossa.org> + + Unreviewed build fix. + + Build fix on Linux when using the GStreamer backend. + + No new tests, just a build fix. + + * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp: + (FullScreenVideoWindow::keyPressEvent): + +2011-06-23 Abhishek Arya <inferno@chromium.org> + + Reviewed by Adam Barth. + + RefPtr m_style in MediaQueryEvaluator in case of callers like + MediaQueryMatcher::prepareEvaluator that do not retain its reference. + https://bugs.webkit.org/show_bug.cgi?id=63264 + + Test: fast/css/media-query-evaluator-crash.html + + * css/MediaQueryEvaluator.cpp: + (WebCore::MediaQueryEvaluator::eval): + * css/MediaQueryEvaluator.h: + +2011-06-22 Annie Sullivan <sullivan@chromium.org> + + Reviewed by Ryosuke Niwa. + + REGRESSION: Hitting enter in the middle of this span causes the cursor to go to the end of the span + https://bugs.webkit.org/show_bug.cgi?id=61594 + + When the tree is split at the cursor in InsertParagraphSeparatorCommand, it is possible for the position + split at to be at the end of a text node. The code assumes the position is at the start of the node, so + pass the correct node into splitTreeToNode() in that case. + + Tests: editing/inserting/return-key-before-br-in-span.html + editing/inserting/return-key-middle-of-span.html + + * editing/InsertParagraphSeparatorCommand.cpp: + (WebCore::InsertParagraphSeparatorCommand::doApply): + +2011-05-24 Matthew Delaney <mdelaney@apple.com> + + Reviewed by Simon Fraser. + + Clamp coordinates to integers for canvas create/getImageData routines + https://bugs.webkit.org/show_bug.cgi?id=61135 + + Test: fast/canvas/canvas-getImageData-largeNonintegralDimensions.html + + * html/HTMLCanvasElement.cpp: + (WebCore::HTMLCanvasElement::convertLogicalToDevice): clamp to ints + * html/canvas/CanvasRenderingContext2D.cpp: + (WebCore::CanvasRenderingContext2D::createImageData): + (WebCore::CanvasRenderingContext2D::getImageData): + * platform/graphics/cg/ImageBufferDataCG.cpp: + (WebCore::ImageBufferData::getData): + +2011-06-09 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Running script from attach can remove elements from the stack of open elements + https://bugs.webkit.org/show_bug.cgi?id=62160 + + When the tree build runs script synchronously, that script can remove + arbitrary elements from the stack of open elements. We need to hold a + reference to |parent| in attach instead of rely upon the reference in + the stack of open elements. + + Test: fast/parser/document-write-onload-clear.html + + * html/parser/HTMLConstructionSite.cpp: + (WebCore::HTMLConstructionSite::attach): + +2011-06-09 Mike Lawther <mikelawther@chromium.org> + + Reviewed by Kent Tamura. + + Parsing issue with -webkit-calc + https://bugs.webkit.org/show_bug.cgi?id=62276 + + Set the CSSParserString for the calc functions. + + Test: css3/calc/regression-62276.html + + * css/CSSParser.cpp: + (WebCore::CSSParser::lex): + 2011-06-20 Adam Barth <abarth@webkit.org> Reviewed by Alexey Proskuryakov. diff --git a/src/3rdparty/webkit/Source/WebCore/WebCore.gypi b/src/3rdparty/webkit/Source/WebCore/WebCore.gypi index 842966a..e418f7f 100644 --- a/src/3rdparty/webkit/Source/WebCore/WebCore.gypi +++ b/src/3rdparty/webkit/Source/WebCore/WebCore.gypi @@ -4330,8 +4330,6 @@ 'platform/graphics/qt/IntPointQt.cpp', 'platform/graphics/qt/IntRectQt.cpp', 'platform/graphics/qt/IntSizeQt.cpp', - 'platform/graphics/qt/MediaPlayerPrivatePhonon.cpp', - 'platform/graphics/qt/MediaPlayerPrivatePhonon.h', 'platform/graphics/qt/MediaPlayerPrivateQt.cpp', 'platform/graphics/qt/MediaPlayerPrivateQt.h', 'platform/graphics/qt/PathQt.cpp', diff --git a/src/3rdparty/webkit/Source/WebCore/WebCore.pri b/src/3rdparty/webkit/Source/WebCore/WebCore.pri index 4f5d723..4ba1117 100644 --- a/src/3rdparty/webkit/Source/WebCore/WebCore.pri +++ b/src/3rdparty/webkit/Source/WebCore/WebCore.pri @@ -262,17 +262,6 @@ contains(DEFINES, ENABLE_VIDEO=1) { CONFIG *= mobility MOBILITY *= multimedia DEFINES += WTF_USE_QT_MULTIMEDIA=1 - } else:contains(QT_CONFIG, phonon) { - # Add phonon manually to prevent it from coming first in - # the include paths, as Phonon's path.h conflicts with - # WebCore's Path.h on case-insensitive filesystems. - qtAddLibrary(phonon) - INCLUDEPATH -= $$QT.phonon.includes - INCLUDEPATH += $$QT.phonon.includes - mac { - INCLUDEPATH -= $$QT.phonon.libs/phonon.framework/Headers - INCLUDEPATH += $$QT.phonon.libs/phonon.framework/Headers - } } } diff --git a/src/3rdparty/webkit/Source/WebCore/WebCore.pro b/src/3rdparty/webkit/Source/WebCore/WebCore.pro index 03cdf4e..107ff35 100644 --- a/src/3rdparty/webkit/Source/WebCore/WebCore.pro +++ b/src/3rdparty/webkit/Source/WebCore/WebCore.pro @@ -2985,12 +2985,6 @@ contains(DEFINES, ENABLE_VIDEO=1) { SOURCES += \ platform/graphics/qt/MediaPlayerPrivateQt.cpp - } else:contains(QT_CONFIG, phonon) { - HEADERS += \ - platform/graphics/qt/MediaPlayerPrivatePhonon.h - - SOURCES += \ - platform/graphics/qt/MediaPlayerPrivatePhonon.cpp } } diff --git a/src/3rdparty/webkit/Source/WebCore/bridge/qt/qt_runtime.cpp b/src/3rdparty/webkit/Source/WebCore/bridge/qt/qt_runtime.cpp index 4bca361..a46c092 100644 --- a/src/3rdparty/webkit/Source/WebCore/bridge/qt/qt_runtime.cpp +++ b/src/3rdparty/webkit/Source/WebCore/bridge/qt/qt_runtime.cpp @@ -776,11 +776,21 @@ QVariant convertValueToQVariant(ExecState* exec, JSValue value, QMetaType::Type } else if (QtPixmapInstance::canHandle(static_cast<QMetaType::Type>(hint))) { ret = QtPixmapInstance::variantFromObject(object, static_cast<QMetaType::Type>(hint)); } else if (hint == (QMetaType::Type) qMetaTypeId<QWebElement>()) { - if (object && object->inherits(&JSHTMLElement::s_info)) - ret = QVariant::fromValue<QWebElement>(QtWebElementRuntime::create((static_cast<JSHTMLElement*>(object))->impl())); - else if (object && object->inherits(&JSDocument::s_info)) + if (object && object->inherits(&JSElement::s_info)) { + ret = QVariant::fromValue<QWebElement>(QtWebElementRuntime::create((static_cast<JSElement*>(object))->impl())); + dist = 0; + // Allow other objects to reach this one. This won't cause our algorithm to + // loop since when we find an Element we do not recurse. + visitedObjects->remove(object); + break; + } + if (object && object->inherits(&JSDocument::s_info)) { + // To support LayoutTestControllerQt::nodesFromRect(), used in DRT, we do an implicit + // conversion from 'document' to the QWebElement representing the 'document.documentElement'. + // We can't simply use a QVariantMap in nodesFromRect() because it currently times out + // when serializing DOMMimeType and DOMPlugin, even if we limit the recursion. ret = QVariant::fromValue<QWebElement>(QtWebElementRuntime::create((static_cast<JSDocument*>(object))->impl()->documentElement())); - else + } else ret = QVariant::fromValue<QWebElement>(QWebElement()); } else if (hint == (QMetaType::Type) qMetaTypeId<QDRTNode>()) { if (object && object->inherits(&JSNode::s_info)) diff --git a/src/3rdparty/webkit/Source/WebCore/css/CSSParser.cpp b/src/3rdparty/webkit/Source/WebCore/css/CSSParser.cpp index 6ff88ac..641ae05 100644 --- a/src/3rdparty/webkit/Source/WebCore/css/CSSParser.cpp +++ b/src/3rdparty/webkit/Source/WebCore/css/CSSParser.cpp @@ -5934,6 +5934,9 @@ int CSSParser::lex(void* yylvalWithoutType) case FUNCTION: case ANYFUNCTION: case NOTFUNCTION: + case CALCFUNCTION: + case MINFUNCTION: + case MAXFUNCTION: yylval->string.characters = t; yylval->string.length = length; break; diff --git a/src/3rdparty/webkit/Source/WebCore/css/CSSStyleSelector.cpp b/src/3rdparty/webkit/Source/WebCore/css/CSSStyleSelector.cpp index c1e4a14..7bb30d3 100644 --- a/src/3rdparty/webkit/Source/WebCore/css/CSSStyleSelector.cpp +++ b/src/3rdparty/webkit/Source/WebCore/css/CSSStyleSelector.cpp @@ -619,8 +619,8 @@ static inline void collectElementIdentifierHashes(const Element* element, Vector void CSSStyleSelector::pushParentStackFrame(Element* parent) { ASSERT(m_ancestorIdentifierFilter); - ASSERT(m_parentStack.isEmpty() || m_parentStack.last().element == parent->parentElement()); - ASSERT(!m_parentStack.isEmpty() || !parent->parentElement()); + ASSERT(m_parentStack.isEmpty() || m_parentStack.last().element == parent->parentOrHostElement()); + ASSERT(!m_parentStack.isEmpty() || !parent->parentOrHostElement()); m_parentStack.append(ParentStackFrame(parent)); ParentStackFrame& parentFrame = m_parentStack.last(); // Mix tags, class names and ids into some sort of weird bouillabaisse. @@ -652,16 +652,16 @@ void CSSStyleSelector::pushParent(Element* parent) ASSERT(!m_ancestorIdentifierFilter); m_ancestorIdentifierFilter = adoptPtr(new BloomFilter<bloomFilterKeyBits>); // If the element is not the root itself, build the stack starting from the root. - if (parent->parentElement()) { + if (parent->parentOrHostNode()) { Vector<Element*, 30> ancestors; - for (Element* ancestor = parent; ancestor; ancestor = ancestor->parentElement()) + for (Element* ancestor = parent; ancestor; ancestor = ancestor->parentOrHostElement()) ancestors.append(ancestor); int count = ancestors.size(); for (int n = count - 1; n >= 0; --n) pushParentStackFrame(ancestors[n]); return; } - } else if (!parent->parentElement()) { + } else if (!parent->parentOrHostElement()) { // We are not always invoked consistently. For example, script execution can cause us to enter // style recalc in the middle of tree building. Reset the stack if we see a new root element. ASSERT(m_ancestorIdentifierFilter); @@ -671,7 +671,7 @@ void CSSStyleSelector::pushParent(Element* parent) ASSERT(m_ancestorIdentifierFilter); // We may get invoked for some random elements in some wacky cases during style resolve. // Pause maintaining the stack in this case. - if (m_parentStack.last().element != parent->parentElement()) + if (m_parentStack.last().element != parent->parentOrHostElement()) return; } pushParentStackFrame(parent); diff --git a/src/3rdparty/webkit/Source/WebCore/css/MediaQueryEvaluator.cpp b/src/3rdparty/webkit/Source/WebCore/css/MediaQueryEvaluator.cpp index fa2e099..c97658e 100644 --- a/src/3rdparty/webkit/Source/WebCore/css/MediaQueryEvaluator.cpp +++ b/src/3rdparty/webkit/Source/WebCore/css/MediaQueryEvaluator.cpp @@ -532,7 +532,7 @@ bool MediaQueryEvaluator::eval(const MediaQueryExp* expr) const // used EvalFunc func = gFunctionMap->get(expr->mediaFeature().impl()); if (func) - return func(expr->value(), m_style, m_frame, NoPrefix); + return func(expr->value(), m_style.get(), m_frame, NoPrefix); return false; } diff --git a/src/3rdparty/webkit/Source/WebCore/css/MediaQueryEvaluator.h b/src/3rdparty/webkit/Source/WebCore/css/MediaQueryEvaluator.h index 07c4d0d..05c8dc9 100644 --- a/src/3rdparty/webkit/Source/WebCore/css/MediaQueryEvaluator.h +++ b/src/3rdparty/webkit/Source/WebCore/css/MediaQueryEvaluator.h @@ -83,7 +83,7 @@ public: private: String m_mediaType; Frame* m_frame; // not owned - RenderStyle* m_style; // not owned + RefPtr<RenderStyle> m_style; bool m_expResult; }; diff --git a/src/3rdparty/webkit/Source/WebCore/css/fullscreenQuickTime.css b/src/3rdparty/webkit/Source/WebCore/css/fullscreenQuickTime.css index 80cf9e4..b174133 100644 --- a/src/3rdparty/webkit/Source/WebCore/css/fullscreenQuickTime.css +++ b/src/3rdparty/webkit/Source/WebCore/css/fullscreenQuickTime.css @@ -145,7 +145,7 @@ video:-webkit-full-screen::-webkit-media-controls-timeline-container { right: 8px; } -video:-webkit-full-screen::video::-webkit-media-controls-status-display { +video:-webkit-full-screen::-webkit-media-controls-status-display { width: 420px; position: absolute; bottom: 9px; diff --git a/src/3rdparty/webkit/Source/WebCore/dom/Node.cpp b/src/3rdparty/webkit/Source/WebCore/dom/Node.cpp index ee49aee..688fdff 100644 --- a/src/3rdparty/webkit/Source/WebCore/dom/Node.cpp +++ b/src/3rdparty/webkit/Source/WebCore/dom/Node.cpp @@ -1719,6 +1719,22 @@ bool Node::isInShadowTree() return false; } +Element* Node::parentOrHostElement() const +{ + ContainerNode* parent = parentOrHostNode(); + if (!parent) + return 0; + + if (parent->isShadowRoot()) + parent = parent->shadowHost(); + + if (!parent->isElementNode()) + return 0; + + return toElement(parent); +} + + bool Node::isBlockFlow() const { return renderer() && renderer()->isBlockFlow(); diff --git a/src/3rdparty/webkit/Source/WebCore/dom/Node.h b/src/3rdparty/webkit/Source/WebCore/dom/Node.h index bd4d414..07ed5b5 100644 --- a/src/3rdparty/webkit/Source/WebCore/dom/Node.h +++ b/src/3rdparty/webkit/Source/WebCore/dom/Node.h @@ -219,6 +219,7 @@ public: bool isInShadowTree(); // Node's parent, shadow tree host, or SVG use. ContainerNode* parentOrHostNode() const; + Element* parentOrHostElement() const; // Use when it's guaranteed to that shadowHost is 0 and svgShadowHost is 0. ContainerNode* parentNodeGuaranteedHostFree() const; diff --git a/src/3rdparty/webkit/Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp b/src/3rdparty/webkit/Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp index 2b7ee8c..33f3df4 100644 --- a/src/3rdparty/webkit/Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp +++ b/src/3rdparty/webkit/Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp @@ -347,7 +347,11 @@ void InsertParagraphSeparatorCommand::doApply() if (insertionPosition.containerNode() == startBlock) n = insertionPosition.computeNodeAfterPosition(); else { - splitTreeToNode(insertionPosition.containerNode(), startBlock); + Node* splitTo = insertionPosition.containerNode(); + if (splitTo->isTextNode() && insertionPosition.offsetInContainerNode() >= caretMaxOffset(splitTo)) + splitTo = splitTo->traverseNextNode(startBlock); + ASSERT(splitTo); + splitTreeToNode(splitTo, startBlock); for (n = startBlock->firstChild(); n; n = n->nextSibling()) { if (comparePositions(VisiblePosition(insertionPosition), positionBeforeNode(n)) <= 0) diff --git a/src/3rdparty/webkit/Source/WebCore/editing/TextIterator.cpp b/src/3rdparty/webkit/Source/WebCore/editing/TextIterator.cpp index c3be277..b09c226 100644 --- a/src/3rdparty/webkit/Source/WebCore/editing/TextIterator.cpp +++ b/src/3rdparty/webkit/Source/WebCore/editing/TextIterator.cpp @@ -459,7 +459,7 @@ bool TextIterator::handleTextNode() emitCharacter(' ', m_node, 0, runStart, runStart); return false; } - if (!m_handledFirstLetter && renderer->isTextFragment()) { + if (!m_handledFirstLetter && renderer->isTextFragment() && !m_offset) { handleTextNodeFirstLetter(static_cast<RenderTextFragment*>(renderer)); if (m_firstLetterText) { String firstLetter = m_firstLetterText->text(); @@ -496,6 +496,14 @@ bool TextIterator::handleTextNode() return true; } + + m_textBox = renderer->firstTextBox(); + if (!m_handledFirstLetter && renderer->isTextFragment() && !m_offset) + handleTextNodeFirstLetter(static_cast<RenderTextFragment*>(renderer)); + + if (m_firstLetterText) + renderer = m_firstLetterText; + // Used when text boxes are out of order (Hebrew/Arabic w/ embeded LTR text) if (renderer->containsReversedText()) { m_sortedTextBoxes.clear(); @@ -504,11 +512,9 @@ bool TextIterator::handleTextNode() } std::sort(m_sortedTextBoxes.begin(), m_sortedTextBoxes.end(), InlineTextBox::compareByStart); m_sortedTextBoxesPosition = 0; + m_textBox = m_sortedTextBoxes.isEmpty() ? 0 : m_sortedTextBoxes[0]; } - - m_textBox = renderer->containsReversedText() ? (m_sortedTextBoxes.isEmpty() ? 0 : m_sortedTextBoxes[0]) : renderer->firstTextBox(); - if (!m_handledFirstLetter && renderer->isTextFragment() && !m_offset) - handleTextNodeFirstLetter(static_cast<RenderTextFragment*>(renderer)); + handleTextBox(); return true; } @@ -975,6 +981,9 @@ void TextIterator::emitText(Node* textNode, RenderObject* renderObject, int text RenderText* renderer = toRenderText(renderObject); m_text = m_emitsTextWithoutTranscoding ? renderer->textWithoutTranscoding() : renderer->text(); ASSERT(m_text.characters()); + ASSERT(0 <= textStartOffset && textStartOffset < static_cast<int>(m_text.length())); + ASSERT(0 <= textEndOffset && textEndOffset <= static_cast<int>(m_text.length())); + ASSERT(textStartOffset <= textEndOffset); m_positionNode = textNode; m_positionOffsetBaseNode = 0; diff --git a/src/3rdparty/webkit/Source/WebCore/features.pri b/src/3rdparty/webkit/Source/WebCore/features.pri index 9614a41..c56c9fc 100644 --- a/src/3rdparty/webkit/Source/WebCore/features.pri +++ b/src/3rdparty/webkit/Source/WebCore/features.pri @@ -157,7 +157,7 @@ symbian|maemo5|maemo6 { !contains(DEFINES, ENABLE_TOUCH_EVENTS=.): DEFINES += ENABLE_TOUCH_EVENTS=1 # HTML5 Media Support -# We require QtMultimedia or Phonon +# We require QtMultimedia !contains(DEFINES, ENABLE_VIDEO=.) { DEFINES -= ENABLE_VIDEO=1 DEFINES += ENABLE_VIDEO=0 @@ -177,11 +177,6 @@ symbian|maemo5|maemo6 { DEFINES += ENABLE_VIDEO=1 DEFINES -= WTF_USE_QT_MULTIMEDIA=0 DEFINES += WTF_USE_QT_MULTIMEDIA=1 - } else:contains(QT_CONFIG, phonon) { - DEFINES -= ENABLE_VIDEO=0 - DEFINES += ENABLE_VIDEO=1 - DEFINES -= WTF_USE_QT_MULTIMEDIA=1 - DEFINES += WTF_USE_QT_MULTIMEDIA=0 } } diff --git a/src/3rdparty/webkit/Source/WebCore/generated/CSSGrammar.cpp b/src/3rdparty/webkit/Source/WebCore/generated/CSSGrammar.cpp index a57ff6b..1da5e2f 100644 --- a/src/3rdparty/webkit/Source/WebCore/generated/CSSGrammar.cpp +++ b/src/3rdparty/webkit/Source/WebCore/generated/CSSGrammar.cpp @@ -1,24 +1,21 @@ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 2.5. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -47,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.3" +#define YYBISON_VERSION "2.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -55,17 +52,109 @@ /* Pure parsers. */ #define YYPURE 1 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + /* Using locations. */ #define YYLSP_NEEDED 0 /* Substitute the variable and function names. */ -#define yyparse cssyyparse -#define yylex cssyylex -#define yyerror cssyyerror -#define yylval cssyylval -#define yychar cssyychar -#define yydebug cssyydebug -#define yynerrs cssyynerrs +#define yyparse cssyyparse +#define yylex cssyylex +#define yyerror cssyyerror +#define yylval cssyylval +#define yychar cssyychar +#define yydebug cssyydebug +#define yynerrs cssyynerrs + + +/* Copy the first part of user declarations. */ + +/* Line 268 of yacc.c */ +#line 1 "../Source/WebCore/css/CSSGrammar.y" + + +/* + * Copyright (C) 2002-2003 Lars Knoll (knoll@kde.org) + * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. + * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) + * Copyright (C) 2008 Eric Seidel <eric@webkit.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#include "config.h" + +#include "CSSMediaRule.h" +#include "CSSParser.h" +#include "CSSPrimitiveValue.h" +#include "CSSPropertyNames.h" +#include "CSSRuleList.h" +#include "CSSSelector.h" +#include "CSSStyleSheet.h" +#include "Document.h" +#include "HTMLNames.h" +#include "MediaList.h" +#include "MediaQueryExp.h" +#include "WebKitCSSKeyframeRule.h" +#include "WebKitCSSKeyframesRule.h" +#include <wtf/FastMalloc.h> +#include <stdlib.h> +#include <string.h> + +using namespace WebCore; +using namespace HTMLNames; + +#define YYMALLOC fastMalloc +#define YYFREE fastFree + +#define YYENABLE_NLS 0 +#define YYLTYPE_IS_TRIVIAL 1 +#define YYMAXDEPTH 10000 +#define YYDEBUG 0 + +// FIXME: Replace with %parse-param { CSSParser* parser } once we can depend on bison 2.x +#define YYPARSE_PARAM parser +#define YYLEX_PARAM parser + + + +/* Line 268 of yacc.c */ +#line 140 "/Source/WebCore/generated/CSSGrammar.tab.c" + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif /* Tokens. */ @@ -156,175 +245,16 @@ UNICODERANGE = 336 }; #endif -/* Tokens. */ -#define TOKEN_EOF 0 -#define LOWEST_PREC 258 -#define UNIMPORTANT_TOK 259 -#define WHITESPACE 260 -#define SGML_CD 261 -#define INCLUDES 262 -#define DASHMATCH 263 -#define BEGINSWITH 264 -#define ENDSWITH 265 -#define CONTAINS 266 -#define STRING 267 -#define IDENT 268 -#define NTH 269 -#define HEX 270 -#define IDSEL 271 -#define IMPORT_SYM 272 -#define PAGE_SYM 273 -#define MEDIA_SYM 274 -#define FONT_FACE_SYM 275 -#define CHARSET_SYM 276 -#define NAMESPACE_SYM 277 -#define WEBKIT_RULE_SYM 278 -#define WEBKIT_DECLS_SYM 279 -#define WEBKIT_KEYFRAME_RULE_SYM 280 -#define WEBKIT_KEYFRAMES_SYM 281 -#define WEBKIT_VALUE_SYM 282 -#define WEBKIT_MEDIAQUERY_SYM 283 -#define WEBKIT_SELECTOR_SYM 284 -#define TOPLEFTCORNER_SYM 285 -#define TOPLEFT_SYM 286 -#define TOPCENTER_SYM 287 -#define TOPRIGHT_SYM 288 -#define TOPRIGHTCORNER_SYM 289 -#define BOTTOMLEFTCORNER_SYM 290 -#define BOTTOMLEFT_SYM 291 -#define BOTTOMCENTER_SYM 292 -#define BOTTOMRIGHT_SYM 293 -#define BOTTOMRIGHTCORNER_SYM 294 -#define LEFTTOP_SYM 295 -#define LEFTMIDDLE_SYM 296 -#define LEFTBOTTOM_SYM 297 -#define RIGHTTOP_SYM 298 -#define RIGHTMIDDLE_SYM 299 -#define RIGHTBOTTOM_SYM 300 -#define ATKEYWORD 301 -#define IMPORTANT_SYM 302 -#define MEDIA_ONLY 303 -#define MEDIA_NOT 304 -#define MEDIA_AND 305 -#define REMS 306 -#define QEMS 307 -#define EMS 308 -#define EXS 309 -#define PXS 310 -#define CMS 311 -#define MMS 312 -#define INS 313 -#define PTS 314 -#define PCS 315 -#define DEGS 316 -#define RADS 317 -#define GRADS 318 -#define TURNS 319 -#define MSECS 320 -#define SECS 321 -#define HERTZ 322 -#define KHERTZ 323 -#define DIMEN 324 -#define INVALIDDIMEN 325 -#define PERCENTAGE 326 -#define FLOATTOKEN 327 -#define INTEGER 328 -#define URI 329 -#define FUNCTION 330 -#define ANYFUNCTION 331 -#define NOTFUNCTION 332 -#define CALCFUNCTION 333 -#define MINFUNCTION 334 -#define MAXFUNCTION 335 -#define UNICODERANGE 336 - -/* Copy the first part of user declarations. */ -#line 1 "../Source/WebCore/css/CSSGrammar.y" - - -/* - * Copyright (C) 2002-2003 Lars Knoll (knoll@kde.org) - * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. - * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) - * Copyright (C) 2008 Eric Seidel <eric@webkit.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -#include "config.h" - -#include "CSSMediaRule.h" -#include "CSSParser.h" -#include "CSSPrimitiveValue.h" -#include "CSSPropertyNames.h" -#include "CSSRuleList.h" -#include "CSSSelector.h" -#include "CSSStyleSheet.h" -#include "Document.h" -#include "HTMLNames.h" -#include "MediaList.h" -#include "MediaQueryExp.h" -#include "WebKitCSSKeyframeRule.h" -#include "WebKitCSSKeyframesRule.h" -#include <wtf/FastMalloc.h> -#include <stdlib.h> -#include <string.h> - -using namespace WebCore; -using namespace HTMLNames; - -#define YYMALLOC fastMalloc -#define YYFREE fastFree - -#define YYENABLE_NLS 0 -#define YYLTYPE_IS_TRIVIAL 1 -#define YYMAXDEPTH 10000 -#define YYDEBUG 0 - -// FIXME: Replace with %parse-param { CSSParser* parser } once we can depend on bison 2.x -#define YYPARSE_PARAM parser -#define YYLEX_PARAM parser - - - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 63 "../Source/WebCore/css/CSSGrammar.y" { + +/* Line 293 of yacc.c */ +#line 63 "../Source/WebCore/css/CSSGrammar.y" + bool boolean; char character; int integer; @@ -347,18 +277,21 @@ typedef union YYSTYPE WebKitCSSKeyframeRule* keyframeRule; WebKitCSSKeyframesRule* keyframesRule; float val; -} -/* Line 193 of yacc.c. */ -#line 353 "/Source/WebCore/generated/CSSGrammar.tab.c" - YYSTYPE; + + + +/* Line 293 of yacc.c */ +#line 285 "/Source/WebCore/generated/CSSGrammar.tab.c" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif - /* Copy the second part of user declarations. */ + +/* Line 343 of yacc.c */ #line 88 "../Source/WebCore/css/CSSGrammar.y" @@ -374,8 +307,8 @@ static int cssyylex(YYSTYPE* yylval, void* parser) -/* Line 216 of yacc.c. */ -#line 379 "/Source/WebCore/generated/CSSGrammar.tab.c" +/* Line 343 of yacc.c */ +#line 312 "/Source/WebCore/generated/CSSGrammar.tab.c" #ifdef short # undef short @@ -450,14 +383,14 @@ typedef short int yytype_int16; #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int -YYID (int i) +YYID (int yyi) #else static int -YYID (i) - int i; +YYID (yyi) + int yyi; #endif { - return i; + return yyi; } #endif @@ -478,11 +411,11 @@ YYID (i) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # endif @@ -505,24 +438,24 @@ YYID (i) # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# if (defined __cplusplus && ! defined _STDLIB_H \ +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif @@ -538,9 +471,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - }; + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) @@ -551,6 +484,27 @@ union yyalloc ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY @@ -568,24 +522,7 @@ union yyalloc while (YYID (0)) # endif # endif - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) - -#endif +#endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 21 @@ -856,7 +793,7 @@ static const char *const yytname[] = "maybe_media_restrictor", "media_query", "maybe_media_list", "media_list", "media", "medium", "keyframes", "keyframe_name", "keyframes_rule", "keyframe_rule", "key_list", "key", "page", - "page_selector", "declarations_and_margins", "margin_box", "@1", + "page_selector", "declarations_and_margins", "margin_box", "$@1", "margin_sym", "font_face", "combinator", "maybe_unary_operator", "unary_operator", "maybe_space_before_declaration", "before_ruleset", "before_rule_opening_brace", "ruleset", "selector_list", @@ -961,8 +898,8 @@ static const yytype_uint8 yyr2[] = 3 }; -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero +/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint16 yydefact[] = { @@ -1117,8 +1054,7 @@ static const yytype_int16 yypgoto[] = /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ + number is the opposite. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -276 static const yytype_int16 yytable[] = { @@ -1292,6 +1228,12 @@ static const yytype_int16 yytable[] = 87, 88, 0, 0, 90, 91, 92 }; +#define yypact_value_is_default(yystate) \ + ((yystate) == (-305)) + +#define yytable_value_is_error(yytable_value) \ + YYID (0) + static const yytype_int16 yycheck[] = { 0, 87, 127, 37, 243, 212, 5, 250, 8, 9, @@ -1537,9 +1479,18 @@ static const yytype_uint8 yystos[] = /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ + Once GCC version 2 has supplanted version 1, this can go. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ #define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ +#endif #define YYRECOVERING() (!!yyerrstatus) @@ -1549,7 +1500,6 @@ do \ { \ yychar = (Token); \ yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK (1); \ goto yybackup; \ } \ @@ -1591,19 +1541,10 @@ while (YYID (0)) #endif -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ +/* This macro is provided for backward compatibility. */ #ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif @@ -1707,17 +1648,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } @@ -1751,11 +1695,11 @@ yy_reduce_print (yyvsp, yyrule) /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); + YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, "\n"); } } @@ -1792,7 +1736,6 @@ int yydebug; # define YYMAXDEPTH 10000 #endif - #if YYERROR_VERBOSE @@ -1895,115 +1838,142 @@ yytnamerr (char *yyres, const char *yystr) } # endif -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) -{ - int yyn = yypact[yystate]; +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) +{ + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = 0; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; + + /* There are many possibilities here to consider: + - Assume YYFAIL is not used. It's too flawed to consider. See + <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> + for details. YYERROR is fine as it does not invoke this + function. + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + } + } - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } - if (yysize_overflow) - return YYSIZE_MAXIMUM; + yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; } #endif /* YYERROR_VERBOSE */ - /*-----------------------------------------------. | Release the memory associated to this symbol. | @@ -2035,10 +2005,9 @@ yydestruct (yymsg, yytype, yyvaluep) break; } } - -/* Prevent warnings from -Wmissing-prototypes. */ +/* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); @@ -2054,10 +2023,6 @@ int yyparse (); #endif /* ! YYPARSE_PARAM */ - - - - /*----------. | yyparse. | `----------*/ @@ -2084,74 +2049,75 @@ yyparse () #endif #endif { - /* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; - - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ + /* Number of syntax errors so far. */ + int yynerrs; - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; - YYSIZE_T yystacksize = YYINITDEPTH; + YYSIZE_T yystacksize; + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; yyvsp = yyvs; @@ -2181,7 +2147,6 @@ int yynerrs; YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might @@ -2189,7 +2154,6 @@ int yynerrs; yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); yyss = yyss1; @@ -2212,9 +2176,8 @@ int yynerrs; (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -2225,7 +2188,6 @@ int yynerrs; yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); @@ -2235,6 +2197,9 @@ int yynerrs; YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; /*-----------. @@ -2243,16 +2208,16 @@ int yynerrs; yybackup: /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) + if (yypact_value_is_default (yyn)) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -2278,26 +2243,22 @@ yybackup: yyn = yytable[yyn]; if (yyn <= 0) { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; + if (yytable_value_is_error (yyn)) + goto yyerrlab; yyn = -yyn; goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; + /* Discard the shifted token. */ + yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; @@ -2337,27 +2298,35 @@ yyreduce: switch (yyn) { case 9: + +/* Line 1806 of yacc.c */ #line 303 "../Source/WebCore/css/CSSGrammar.y" { static_cast<CSSParser*>(parser)->m_rule = (yyvsp[(4) - (6)].rule); - ;} + } break; case 10: + +/* Line 1806 of yacc.c */ #line 309 "../Source/WebCore/css/CSSGrammar.y" { static_cast<CSSParser*>(parser)->m_keyframe = (yyvsp[(4) - (6)].keyframeRule); - ;} + } break; case 11: + +/* Line 1806 of yacc.c */ #line 315 "../Source/WebCore/css/CSSGrammar.y" { /* can be empty */ - ;} + } break; case 12: + +/* Line 1806 of yacc.c */ #line 321 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2369,18 +2338,22 @@ yyreduce: delete p->m_valueList; p->m_valueList = 0; } - ;} + } break; case 13: + +/* Line 1806 of yacc.c */ #line 335 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); p->m_mediaQuery = p->sinkFloatingMediaQuery((yyvsp[(4) - (5)].mediaQuery)); - ;} + } break; case 14: + +/* Line 1806 of yacc.c */ #line 342 "../Source/WebCore/css/CSSGrammar.y" { if ((yyvsp[(4) - (5)].selectorList)) { @@ -2388,74 +2361,94 @@ yyreduce: if (p->m_selectorListForParseSelector) p->m_selectorListForParseSelector->adoptSelectorVector(*(yyvsp[(4) - (5)].selectorList)); } - ;} + } break; case 21: + +/* Line 1806 of yacc.c */ #line 364 "../Source/WebCore/css/CSSGrammar.y" { - ;} + } break; case 24: + +/* Line 1806 of yacc.c */ #line 374 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyval.rule) = static_cast<CSSParser*>(parser)->createCharsetRule((yyvsp[(3) - (5)].string)); if ((yyval.rule) && p->m_styleSheet) p->m_styleSheet->append((yyval.rule)); - ;} + } break; case 25: + +/* Line 1806 of yacc.c */ #line 380 "../Source/WebCore/css/CSSGrammar.y" { - ;} + } break; case 26: + +/* Line 1806 of yacc.c */ #line 382 "../Source/WebCore/css/CSSGrammar.y" { - ;} + } break; case 27: + +/* Line 1806 of yacc.c */ #line 387 "../Source/WebCore/css/CSSGrammar.y" { // Ignore any @charset rule not at the beginning of the style sheet. (yyval.rule) = 0; - ;} + } break; case 29: + +/* Line 1806 of yacc.c */ #line 395 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); if ((yyvsp[(2) - (3)].rule) && p->m_styleSheet) p->m_styleSheet->append((yyvsp[(2) - (3)].rule)); - ;} + } break; case 30: + +/* Line 1806 of yacc.c */ #line 403 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = (yyvsp[(2) - (2)].rule); - ;} + } break; case 37: + +/* Line 1806 of yacc.c */ #line 415 "../Source/WebCore/css/CSSGrammar.y" { static_cast<CSSParser*>(parser)->m_hadSyntacticallyValidCSSRule = true; - ;} + } break; case 41: + +/* Line 1806 of yacc.c */ #line 424 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.ruleList) = 0; ;} + { (yyval.ruleList) = 0; } break; case 42: + +/* Line 1806 of yacc.c */ #line 425 "../Source/WebCore/css/CSSGrammar.y" { (yyval.ruleList) = (yyvsp[(1) - (3)].ruleList); @@ -2464,281 +2457,357 @@ yyreduce: (yyval.ruleList) = static_cast<CSSParser*>(parser)->createRuleList(); (yyval.ruleList)->append((yyvsp[(2) - (3)].rule)); } - ;} + } break; case 53: + +/* Line 1806 of yacc.c */ #line 453 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = static_cast<CSSParser*>(parser)->createImportRule((yyvsp[(3) - (6)].string), (yyvsp[(5) - (6)].mediaList)); - ;} + } break; case 54: + +/* Line 1806 of yacc.c */ #line 456 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; - ;} + } break; case 55: + +/* Line 1806 of yacc.c */ #line 459 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; - ;} + } break; case 56: + +/* Line 1806 of yacc.c */ #line 462 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; - ;} + } break; case 57: + +/* Line 1806 of yacc.c */ #line 468 "../Source/WebCore/css/CSSGrammar.y" { static_cast<CSSParser*>(parser)->addNamespace((yyvsp[(3) - (6)].string), (yyvsp[(4) - (6)].string)); (yyval.rule) = 0; -;} +} break; case 58: + +/* Line 1806 of yacc.c */ #line 472 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; -;} +} break; case 59: + +/* Line 1806 of yacc.c */ #line 475 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; -;} +} break; case 60: + +/* Line 1806 of yacc.c */ #line 478 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; -;} +} break; case 61: + +/* Line 1806 of yacc.c */ #line 484 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.string).characters = 0; ;} + { (yyval.string).characters = 0; } break; case 62: + +/* Line 1806 of yacc.c */ #line 485 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.string) = (yyvsp[(1) - (2)].string); ;} + { (yyval.string) = (yyvsp[(1) - (2)].string); } break; case 65: + +/* Line 1806 of yacc.c */ #line 494 "../Source/WebCore/css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); - ;} + } break; case 66: + +/* Line 1806 of yacc.c */ #line 500 "../Source/WebCore/css/CSSGrammar.y" { (yyval.valueList) = 0; - ;} + } break; case 67: + +/* Line 1806 of yacc.c */ #line 503 "../Source/WebCore/css/CSSGrammar.y" { (yyval.valueList) = (yyvsp[(3) - (4)].valueList); - ;} + } break; case 68: + +/* Line 1806 of yacc.c */ #line 509 "../Source/WebCore/css/CSSGrammar.y" { (yyvsp[(3) - (7)].string).lower(); (yyval.mediaQueryExp) = static_cast<CSSParser*>(parser)->createFloatingMediaQueryExp((yyvsp[(3) - (7)].string), (yyvsp[(5) - (7)].valueList)); - ;} + } break; case 69: + +/* Line 1806 of yacc.c */ #line 516 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyval.mediaQueryExpList) = p->createFloatingMediaQueryExpList(); (yyval.mediaQueryExpList)->append(p->sinkFloatingMediaQueryExp((yyvsp[(1) - (1)].mediaQueryExp))); - ;} + } break; case 70: + +/* Line 1806 of yacc.c */ #line 521 "../Source/WebCore/css/CSSGrammar.y" { (yyval.mediaQueryExpList) = (yyvsp[(1) - (5)].mediaQueryExpList); (yyval.mediaQueryExpList)->append(static_cast<CSSParser*>(parser)->sinkFloatingMediaQueryExp((yyvsp[(5) - (5)].mediaQueryExp))); - ;} + } break; case 71: + +/* Line 1806 of yacc.c */ #line 528 "../Source/WebCore/css/CSSGrammar.y" { (yyval.mediaQueryExpList) = static_cast<CSSParser*>(parser)->createFloatingMediaQueryExpList(); - ;} + } break; case 72: + +/* Line 1806 of yacc.c */ #line 531 "../Source/WebCore/css/CSSGrammar.y" { (yyval.mediaQueryExpList) = (yyvsp[(3) - (3)].mediaQueryExpList); - ;} + } break; case 73: + +/* Line 1806 of yacc.c */ #line 537 "../Source/WebCore/css/CSSGrammar.y" { (yyval.mediaQueryRestrictor) = MediaQuery::None; - ;} + } break; case 74: + +/* Line 1806 of yacc.c */ #line 540 "../Source/WebCore/css/CSSGrammar.y" { (yyval.mediaQueryRestrictor) = MediaQuery::Only; - ;} + } break; case 75: + +/* Line 1806 of yacc.c */ #line 543 "../Source/WebCore/css/CSSGrammar.y" { (yyval.mediaQueryRestrictor) = MediaQuery::Not; - ;} + } break; case 76: + +/* Line 1806 of yacc.c */ #line 549 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyval.mediaQuery) = p->createFloatingMediaQuery(p->sinkFloatingMediaQueryExpList((yyvsp[(1) - (1)].mediaQueryExpList))); - ;} + } break; case 77: + +/* Line 1806 of yacc.c */ #line 554 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyvsp[(3) - (4)].string).lower(); (yyval.mediaQuery) = p->createFloatingMediaQuery((yyvsp[(1) - (4)].mediaQueryRestrictor), (yyvsp[(3) - (4)].string), p->sinkFloatingMediaQueryExpList((yyvsp[(4) - (4)].mediaQueryExpList))); - ;} + } break; case 78: + +/* Line 1806 of yacc.c */ #line 562 "../Source/WebCore/css/CSSGrammar.y" { (yyval.mediaList) = static_cast<CSSParser*>(parser)->createMediaList(); - ;} + } break; case 80: + +/* Line 1806 of yacc.c */ #line 569 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyval.mediaList) = p->createMediaList(); (yyval.mediaList)->appendMediaQuery(p->sinkFloatingMediaQuery((yyvsp[(1) - (1)].mediaQuery))); - ;} + } break; case 81: + +/* Line 1806 of yacc.c */ #line 574 "../Source/WebCore/css/CSSGrammar.y" { (yyval.mediaList) = (yyvsp[(1) - (4)].mediaList); if ((yyval.mediaList)) (yyval.mediaList)->appendMediaQuery(static_cast<CSSParser*>(parser)->sinkFloatingMediaQuery((yyvsp[(4) - (4)].mediaQuery))); - ;} + } break; case 82: + +/* Line 1806 of yacc.c */ #line 579 "../Source/WebCore/css/CSSGrammar.y" { (yyval.mediaList) = 0; - ;} + } break; case 83: + +/* Line 1806 of yacc.c */ #line 585 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = static_cast<CSSParser*>(parser)->createMediaRule((yyvsp[(3) - (7)].mediaList), (yyvsp[(6) - (7)].ruleList)); - ;} + } break; case 84: + +/* Line 1806 of yacc.c */ #line 588 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = static_cast<CSSParser*>(parser)->createMediaRule(0, (yyvsp[(5) - (6)].ruleList)); - ;} + } break; case 85: + +/* Line 1806 of yacc.c */ #line 594 "../Source/WebCore/css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (2)].string); - ;} + } break; case 86: + +/* Line 1806 of yacc.c */ #line 600 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = (yyvsp[(7) - (8)].keyframesRule); (yyvsp[(7) - (8)].keyframesRule)->setNameInternal((yyvsp[(3) - (8)].string)); - ;} + } break; case 89: + +/* Line 1806 of yacc.c */ #line 612 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.keyframesRule) = static_cast<CSSParser*>(parser)->createKeyframesRule(); ;} + { (yyval.keyframesRule) = static_cast<CSSParser*>(parser)->createKeyframesRule(); } break; case 90: + +/* Line 1806 of yacc.c */ #line 613 "../Source/WebCore/css/CSSGrammar.y" { (yyval.keyframesRule) = (yyvsp[(1) - (3)].keyframesRule); if ((yyvsp[(2) - (3)].keyframeRule)) (yyval.keyframesRule)->append((yyvsp[(2) - (3)].keyframeRule)); - ;} + } break; case 91: + +/* Line 1806 of yacc.c */ #line 621 "../Source/WebCore/css/CSSGrammar.y" { (yyval.keyframeRule) = static_cast<CSSParser*>(parser)->createKeyframeRule((yyvsp[(1) - (6)].valueList)); - ;} + } break; case 92: + +/* Line 1806 of yacc.c */ #line 627 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyval.valueList) = p->createFloatingValueList(); (yyval.valueList)->addValue(p->sinkFloatingValue((yyvsp[(1) - (1)].value))); - ;} + } break; case 93: + +/* Line 1806 of yacc.c */ #line 632 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyval.valueList) = (yyvsp[(1) - (5)].valueList); if ((yyval.valueList)) (yyval.valueList)->addValue(p->sinkFloatingValue((yyvsp[(5) - (5)].value))); - ;} + } break; case 94: + +/* Line 1806 of yacc.c */ #line 641 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).fValue = (yyvsp[(1) - (1)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; ;} + { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).fValue = (yyvsp[(1) - (1)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; } break; case 95: + +/* Line 1806 of yacc.c */ #line 642 "../Source/WebCore/css/CSSGrammar.y" { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; @@ -2749,10 +2818,12 @@ yyreduce: (yyval.value).fValue = 100; else YYERROR; - ;} + } break; case 96: + +/* Line 1806 of yacc.c */ #line 656 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2764,34 +2835,42 @@ yyreduce: // Also clear margin at-rules here once we fully implement margin at-rules parsing. (yyval.rule) = 0; } - ;} + } break; case 97: + +/* Line 1806 of yacc.c */ #line 667 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; - ;} + } break; case 98: + +/* Line 1806 of yacc.c */ #line 670 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; - ;} + } break; case 99: + +/* Line 1806 of yacc.c */ #line 676 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyval.selector) = p->createFloatingSelector(); (yyval.selector)->setTag(QualifiedName(nullAtom, (yyvsp[(1) - (1)].string), p->m_defaultNamespace)); (yyval.selector)->setForPage(); - ;} + } break; case 100: + +/* Line 1806 of yacc.c */ #line 682 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -2800,242 +2879,312 @@ yyreduce: (yyval.selector)->setTag(QualifiedName(nullAtom, (yyvsp[(1) - (2)].string), p->m_defaultNamespace)); (yyval.selector)->setForPage(); } - ;} + } break; case 101: + +/* Line 1806 of yacc.c */ #line 690 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); if ((yyval.selector)) (yyval.selector)->setForPage(); - ;} + } break; case 102: + +/* Line 1806 of yacc.c */ #line 695 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyval.selector) = p->createFloatingSelector(); (yyval.selector)->setForPage(); - ;} + } break; case 105: + +/* Line 1806 of yacc.c */ #line 708 "../Source/WebCore/css/CSSGrammar.y" { static_cast<CSSParser*>(parser)->startDeclarationsForMarginBox(); - ;} + } break; case 106: + +/* Line 1806 of yacc.c */ #line 710 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = static_cast<CSSParser*>(parser)->createMarginAtRule((yyvsp[(1) - (7)].marginBox)); - ;} + } break; case 107: + +/* Line 1806 of yacc.c */ #line 716 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::TopLeftCornerMarginBox; - ;} + } break; case 108: + +/* Line 1806 of yacc.c */ #line 719 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::TopLeftMarginBox; - ;} + } break; case 109: + +/* Line 1806 of yacc.c */ #line 722 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::TopCenterMarginBox; - ;} + } break; case 110: + +/* Line 1806 of yacc.c */ #line 725 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::TopRightMarginBox; - ;} + } break; case 111: + +/* Line 1806 of yacc.c */ #line 728 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::TopRightCornerMarginBox; - ;} + } break; case 112: + +/* Line 1806 of yacc.c */ #line 731 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::BottomLeftCornerMarginBox; - ;} + } break; case 113: + +/* Line 1806 of yacc.c */ #line 734 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::BottomLeftMarginBox; - ;} + } break; case 114: + +/* Line 1806 of yacc.c */ #line 737 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::BottomCenterMarginBox; - ;} + } break; case 115: + +/* Line 1806 of yacc.c */ #line 740 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::BottomRightMarginBox; - ;} + } break; case 116: + +/* Line 1806 of yacc.c */ #line 743 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::BottomRightCornerMarginBox; - ;} + } break; case 117: + +/* Line 1806 of yacc.c */ #line 746 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::LeftTopMarginBox; - ;} + } break; case 118: + +/* Line 1806 of yacc.c */ #line 749 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::LeftMiddleMarginBox; - ;} + } break; case 119: + +/* Line 1806 of yacc.c */ #line 752 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::LeftBottomMarginBox; - ;} + } break; case 120: + +/* Line 1806 of yacc.c */ #line 755 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::RightTopMarginBox; - ;} + } break; case 121: + +/* Line 1806 of yacc.c */ #line 758 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::RightMiddleMarginBox; - ;} + } break; case 122: + +/* Line 1806 of yacc.c */ #line 761 "../Source/WebCore/css/CSSGrammar.y" { (yyval.marginBox) = CSSSelector::RightBottomMarginBox; - ;} + } break; case 123: + +/* Line 1806 of yacc.c */ #line 768 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = static_cast<CSSParser*>(parser)->createFontFaceRule(); - ;} + } break; case 124: + +/* Line 1806 of yacc.c */ #line 771 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; - ;} + } break; case 125: + +/* Line 1806 of yacc.c */ #line 774 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; - ;} + } break; case 126: + +/* Line 1806 of yacc.c */ #line 780 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.relation) = CSSSelector::DirectAdjacent; ;} + { (yyval.relation) = CSSSelector::DirectAdjacent; } break; case 127: + +/* Line 1806 of yacc.c */ #line 781 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.relation) = CSSSelector::IndirectAdjacent; ;} + { (yyval.relation) = CSSSelector::IndirectAdjacent; } break; case 128: + +/* Line 1806 of yacc.c */ #line 782 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.relation) = CSSSelector::Child; ;} + { (yyval.relation) = CSSSelector::Child; } break; case 129: + +/* Line 1806 of yacc.c */ #line 786 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} + { (yyval.integer) = (yyvsp[(1) - (1)].integer); } break; case 130: + +/* Line 1806 of yacc.c */ #line 787 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.integer) = 1; ;} + { (yyval.integer) = 1; } break; case 131: + +/* Line 1806 of yacc.c */ #line 791 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.integer) = -1; ;} + { (yyval.integer) = -1; } break; case 132: + +/* Line 1806 of yacc.c */ #line 792 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.integer) = 1; ;} + { (yyval.integer) = 1; } break; case 133: + +/* Line 1806 of yacc.c */ #line 796 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); p->markPropertyStart(); - ;} + } break; case 134: + +/* Line 1806 of yacc.c */ #line 803 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); p->markSelectorListStart(); - ;} + } break; case 135: + +/* Line 1806 of yacc.c */ #line 810 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); p->markSelectorListEnd(); - ;} + } break; case 136: + +/* Line 1806 of yacc.c */ #line 817 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyval.rule) = p->createStyleRule((yyvsp[(1) - (6)].selectorList)); - ;} + } break; case 137: + +/* Line 1806 of yacc.c */ #line 824 "../Source/WebCore/css/CSSGrammar.y" { if ((yyvsp[(1) - (1)].selector)) { @@ -3045,10 +3194,12 @@ yyreduce: (yyval.selectorList)->append(p->sinkFloatingSelector((yyvsp[(1) - (1)].selector))); p->updateLastSelectorLineAndPosition(); } - ;} + } break; case 138: + +/* Line 1806 of yacc.c */ #line 833 "../Source/WebCore/css/CSSGrammar.y" { if ((yyvsp[(1) - (4)].selectorList) && (yyvsp[(4) - (4)].selector)) { @@ -3058,38 +3209,48 @@ yyreduce: p->updateLastSelectorLineAndPosition(); } else (yyval.selectorList) = 0; - ;} + } break; case 139: + +/* Line 1806 of yacc.c */ #line 842 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selectorList) = 0; - ;} + } break; case 140: + +/* Line 1806 of yacc.c */ #line 848 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (2)].selector); - ;} + } break; case 141: + +/* Line 1806 of yacc.c */ #line 854 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); - ;} + } break; case 142: + +/* Line 1806 of yacc.c */ #line 858 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); - ;} + } break; case 143: + +/* Line 1806 of yacc.c */ #line 862 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(2) - (2)].selector); @@ -3103,10 +3264,12 @@ yyreduce: end->setRelation(CSSSelector::Descendant); end->setTagHistory(p->sinkFloatingSelector((yyvsp[(1) - (2)].selector))); } - ;} + } break; case 144: + +/* Line 1806 of yacc.c */ #line 875 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(3) - (3)].selector); @@ -3120,59 +3283,75 @@ yyreduce: end->setRelation((yyvsp[(2) - (3)].relation)); end->setTagHistory(p->sinkFloatingSelector((yyvsp[(1) - (3)].selector))); } - ;} + } break; case 145: + +/* Line 1806 of yacc.c */ #line 888 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = 0; - ;} + } break; case 146: + +/* Line 1806 of yacc.c */ #line 894 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.string).characters = 0; (yyval.string).length = 0; ;} + { (yyval.string).characters = 0; (yyval.string).length = 0; } break; case 147: + +/* Line 1806 of yacc.c */ #line 895 "../Source/WebCore/css/CSSGrammar.y" - { static UChar star = '*'; (yyval.string).characters = ☆ (yyval.string).length = 1; ;} + { static UChar star = '*'; (yyval.string).characters = ☆ (yyval.string).length = 1; } break; case 148: + +/* Line 1806 of yacc.c */ #line 896 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.string) = (yyvsp[(1) - (2)].string); ;} + { (yyval.string) = (yyvsp[(1) - (2)].string); } break; case 149: + +/* Line 1806 of yacc.c */ #line 900 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyval.selector) = p->createFloatingSelector(); (yyval.selector)->setTag(QualifiedName(nullAtom, (yyvsp[(1) - (1)].string), p->m_defaultNamespace)); - ;} + } break; case 150: + +/* Line 1806 of yacc.c */ #line 905 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(2) - (2)].selector); if ((yyval.selector)) static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName(nullAtom, (yyvsp[(1) - (2)].string), (yyval.selector)); - ;} + } break; case 151: + +/* Line 1806 of yacc.c */ #line 910 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); if ((yyval.selector)) static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName(nullAtom, starAtom, (yyval.selector)); - ;} + } break; case 152: + +/* Line 1806 of yacc.c */ #line 915 "../Source/WebCore/css/CSSGrammar.y" { AtomicString namespacePrefix = (yyvsp[(1) - (2)].string); @@ -3183,28 +3362,34 @@ yyreduce: p->m_styleSheet->determineNamespace(namespacePrefix))); else // FIXME: Shouldn't this case be an error? (yyval.selector)->setTag(QualifiedName(nullAtom, (yyvsp[(2) - (2)].string), p->m_defaultNamespace)); - ;} + } break; case 153: + +/* Line 1806 of yacc.c */ #line 925 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(3) - (3)].selector); if ((yyval.selector)) static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName((yyvsp[(1) - (3)].string), (yyvsp[(2) - (3)].string), (yyval.selector)); - ;} + } break; case 154: + +/* Line 1806 of yacc.c */ #line 930 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(2) - (2)].selector); if ((yyval.selector)) static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName((yyvsp[(1) - (2)].string), starAtom, (yyval.selector)); - ;} + } break; case 155: + +/* Line 1806 of yacc.c */ #line 938 "../Source/WebCore/css/CSSGrammar.y" { if ((yyvsp[(1) - (1)].selector)) { @@ -3217,6 +3402,8 @@ yyreduce: break; case 156: + +/* Line 1806 of yacc.c */ #line 946 "../Source/WebCore/css/CSSGrammar.y" { if ((yyvsp[(1) - (5)].selectorList) && (yyvsp[(5) - (5)].selector)) { @@ -3225,17 +3412,21 @@ yyreduce: (yyval.selectorList)->append(p->sinkFloatingSelector((yyvsp[(5) - (5)].selector))); } else (yyval.selectorList) = 0; - ;} + } break; case 157: + +/* Line 1806 of yacc.c */ #line 954 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selectorList) = 0; - ;} + } break; case 158: + +/* Line 1806 of yacc.c */ #line 960 "../Source/WebCore/css/CSSGrammar.y" { CSSParserString& str = (yyvsp[(1) - (1)].string); @@ -3244,43 +3435,53 @@ yyreduce: if (doc && doc->isHTMLDocument()) str.lower(); (yyval.string) = str; - ;} + } break; case 159: + +/* Line 1806 of yacc.c */ #line 968 "../Source/WebCore/css/CSSGrammar.y" { static UChar star = '*'; (yyval.string).characters = ☆ (yyval.string).length = 1; - ;} + } break; case 160: + +/* Line 1806 of yacc.c */ #line 976 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = (yyvsp[(1) - (1)].selector); - ;} + } break; case 161: + +/* Line 1806 of yacc.c */ #line 979 "../Source/WebCore/css/CSSGrammar.y" { if (!(yyvsp[(2) - (2)].selector)) (yyval.selector) = 0; else if ((yyvsp[(1) - (2)].selector)) (yyval.selector) = static_cast<CSSParser*>(parser)->updateSpecifiers((yyvsp[(1) - (2)].selector), (yyvsp[(2) - (2)].selector)); - ;} + } break; case 162: + +/* Line 1806 of yacc.c */ #line 985 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = 0; - ;} + } break; case 163: + +/* Line 1806 of yacc.c */ #line 991 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -3289,10 +3490,12 @@ yyreduce: if (!p->m_strict) (yyvsp[(1) - (1)].string).lower(); (yyval.selector)->setValue((yyvsp[(1) - (1)].string)); - ;} + } break; case 164: + +/* Line 1806 of yacc.c */ #line 999 "../Source/WebCore/css/CSSGrammar.y" { if ((yyvsp[(1) - (1)].string).characters[0] >= '0' && (yyvsp[(1) - (1)].string).characters[0] <= '9') { @@ -3305,10 +3508,12 @@ yyreduce: (yyvsp[(1) - (1)].string).lower(); (yyval.selector)->setValue((yyvsp[(1) - (1)].string)); } - ;} + } break; case 168: + +/* Line 1806 of yacc.c */ #line 1017 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -3317,10 +3522,12 @@ yyreduce: if (!p->m_strict) (yyvsp[(2) - (2)].string).lower(); (yyval.selector)->setValue((yyvsp[(2) - (2)].string)); - ;} + } break; case 169: + +/* Line 1806 of yacc.c */ #line 1028 "../Source/WebCore/css/CSSGrammar.y" { CSSParserString& str = (yyvsp[(1) - (2)].string); @@ -3329,29 +3536,35 @@ yyreduce: if (doc && doc->isHTMLDocument()) str.lower(); (yyval.string) = str; - ;} + } break; case 170: + +/* Line 1806 of yacc.c */ #line 1039 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector(); (yyval.selector)->setAttribute(QualifiedName(nullAtom, (yyvsp[(3) - (4)].string), nullAtom)); (yyval.selector)->setMatch(CSSSelector::Set); - ;} + } break; case 171: + +/* Line 1806 of yacc.c */ #line 1044 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector(); (yyval.selector)->setAttribute(QualifiedName(nullAtom, (yyvsp[(3) - (8)].string), nullAtom)); (yyval.selector)->setMatch((CSSSelector::Match)(yyvsp[(4) - (8)].integer)); (yyval.selector)->setValue((yyvsp[(6) - (8)].string)); - ;} + } break; case 172: + +/* Line 1806 of yacc.c */ #line 1050 "../Source/WebCore/css/CSSGrammar.y" { AtomicString namespacePrefix = (yyvsp[(3) - (5)].string); @@ -3360,10 +3573,12 @@ yyreduce: (yyval.selector)->setAttribute(QualifiedName(namespacePrefix, (yyvsp[(4) - (5)].string), p->m_styleSheet->determineNamespace(namespacePrefix))); (yyval.selector)->setMatch(CSSSelector::Set); - ;} + } break; case 173: + +/* Line 1806 of yacc.c */ #line 1058 "../Source/WebCore/css/CSSGrammar.y" { AtomicString namespacePrefix = (yyvsp[(3) - (9)].string); @@ -3373,52 +3588,66 @@ yyreduce: p->m_styleSheet->determineNamespace(namespacePrefix))); (yyval.selector)->setMatch((CSSSelector::Match)(yyvsp[(5) - (9)].integer)); (yyval.selector)->setValue((yyvsp[(7) - (9)].string)); - ;} + } break; case 174: + +/* Line 1806 of yacc.c */ #line 1070 "../Source/WebCore/css/CSSGrammar.y" { (yyval.integer) = CSSSelector::Exact; - ;} + } break; case 175: + +/* Line 1806 of yacc.c */ #line 1073 "../Source/WebCore/css/CSSGrammar.y" { (yyval.integer) = CSSSelector::List; - ;} + } break; case 176: + +/* Line 1806 of yacc.c */ #line 1076 "../Source/WebCore/css/CSSGrammar.y" { (yyval.integer) = CSSSelector::Hyphen; - ;} + } break; case 177: + +/* Line 1806 of yacc.c */ #line 1079 "../Source/WebCore/css/CSSGrammar.y" { (yyval.integer) = CSSSelector::Begin; - ;} + } break; case 178: + +/* Line 1806 of yacc.c */ #line 1082 "../Source/WebCore/css/CSSGrammar.y" { (yyval.integer) = CSSSelector::End; - ;} + } break; case 179: + +/* Line 1806 of yacc.c */ #line 1085 "../Source/WebCore/css/CSSGrammar.y" { (yyval.integer) = CSSSelector::Contain; - ;} + } break; case 182: + +/* Line 1806 of yacc.c */ #line 1096 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector(); @@ -3428,10 +3657,12 @@ yyreduce: CSSSelector::PseudoType type = (yyval.selector)->pseudoType(); if (type == CSSSelector::PseudoUnknown) (yyval.selector) = 0; - ;} + } break; case 183: + +/* Line 1806 of yacc.c */ #line 1107 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector(); @@ -3441,10 +3672,12 @@ yyreduce: CSSSelector::PseudoType type = (yyval.selector)->pseudoType(); if (type == CSSSelector::PseudoUnknown) (yyval.selector) = 0; - ;} + } break; case 184: + +/* Line 1806 of yacc.c */ #line 1116 "../Source/WebCore/css/CSSGrammar.y" { (yyval.selector) = static_cast<CSSParser*>(parser)->createFloatingSelector(); @@ -3453,10 +3686,12 @@ yyreduce: (yyval.selector)->setValue((yyvsp[(3) - (3)].string)); // FIXME: This call is needed to force selector to compute the pseudoType early enough. (yyval.selector)->pseudoType(); - ;} + } break; case 185: + +/* Line 1806 of yacc.c */ #line 1129 "../Source/WebCore/css/CSSGrammar.y" { if ((yyvsp[(4) - (6)].selectorList)) { @@ -3471,10 +3706,12 @@ yyreduce: (yyval.selector) = 0; } else (yyval.selector) = 0; - ;} + } break; case 186: + +/* Line 1806 of yacc.c */ #line 1144 "../Source/WebCore/css/CSSGrammar.y" { CSSParser *p = static_cast<CSSParser*>(parser); @@ -3485,10 +3722,12 @@ yyreduce: CSSSelector::PseudoType type = (yyval.selector)->pseudoType(); if (type == CSSSelector::PseudoUnknown) (yyval.selector) = 0; - ;} + } break; case 187: + +/* Line 1806 of yacc.c */ #line 1155 "../Source/WebCore/css/CSSGrammar.y" { CSSParser *p = static_cast<CSSParser*>(parser); @@ -3499,10 +3738,12 @@ yyreduce: CSSSelector::PseudoType type = (yyval.selector)->pseudoType(); if (type == CSSSelector::PseudoUnknown) (yyval.selector) = 0; - ;} + } break; case 188: + +/* Line 1806 of yacc.c */ #line 1166 "../Source/WebCore/css/CSSGrammar.y" { CSSParser *p = static_cast<CSSParser*>(parser); @@ -3521,10 +3762,12 @@ yyreduce: if (!isValidNthToken((yyvsp[(4) - (6)].string))) (yyval.selector) = 0; } - ;} + } break; case 189: + +/* Line 1806 of yacc.c */ #line 1185 "../Source/WebCore/css/CSSGrammar.y" { if (!(yyvsp[(4) - (6)].selector) || !(yyvsp[(4) - (6)].selector)->isSimple()) @@ -3541,100 +3784,126 @@ yyreduce: (yyvsp[(2) - (6)].string).lower(); (yyval.selector)->setValue((yyvsp[(2) - (6)].string)); } - ;} + } break; case 190: + +/* Line 1806 of yacc.c */ #line 1204 "../Source/WebCore/css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (1)].boolean); - ;} + } break; case 191: + +/* Line 1806 of yacc.c */ #line 1207 "../Source/WebCore/css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); if ( (yyvsp[(2) - (2)].boolean) ) (yyval.boolean) = (yyvsp[(2) - (2)].boolean); - ;} + } break; case 192: + +/* Line 1806 of yacc.c */ #line 1212 "../Source/WebCore/css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (1)].boolean); - ;} + } break; case 193: + +/* Line 1806 of yacc.c */ #line 1215 "../Source/WebCore/css/CSSGrammar.y" { (yyval.boolean) = false; - ;} + } break; case 194: + +/* Line 1806 of yacc.c */ #line 1218 "../Source/WebCore/css/CSSGrammar.y" { (yyval.boolean) = false; - ;} + } break; case 195: + +/* Line 1806 of yacc.c */ #line 1221 "../Source/WebCore/css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); - ;} + } break; case 196: + +/* Line 1806 of yacc.c */ #line 1224 "../Source/WebCore/css/CSSGrammar.y" { (yyval.boolean) = (yyvsp[(1) - (2)].boolean); - ;} + } break; case 197: + +/* Line 1806 of yacc.c */ #line 1230 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); p->markPropertyStart(); (yyval.boolean) = (yyvsp[(1) - (3)].boolean); - ;} + } break; case 198: + +/* Line 1806 of yacc.c */ #line 1235 "../Source/WebCore/css/CSSGrammar.y" { (yyval.boolean) = false; - ;} + } break; case 199: + +/* Line 1806 of yacc.c */ #line 1238 "../Source/WebCore/css/CSSGrammar.y" { (yyval.boolean) = false; - ;} + } break; case 200: + +/* Line 1806 of yacc.c */ #line 1241 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); p->markPropertyStart(); (yyval.boolean) = false; - ;} + } break; case 201: + +/* Line 1806 of yacc.c */ #line 1246 "../Source/WebCore/css/CSSGrammar.y" { (yyval.boolean) = false; - ;} + } break; case 202: + +/* Line 1806 of yacc.c */ #line 1249 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -3642,28 +3911,34 @@ yyreduce: (yyval.boolean) = (yyvsp[(1) - (4)].boolean); if ((yyvsp[(2) - (4)].boolean)) (yyval.boolean) = (yyvsp[(2) - (4)].boolean); - ;} + } break; case 203: + +/* Line 1806 of yacc.c */ #line 1256 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); p->markPropertyStart(); (yyval.boolean) = (yyvsp[(1) - (4)].boolean); - ;} + } break; case 204: + +/* Line 1806 of yacc.c */ #line 1261 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); p->markPropertyStart(); (yyval.boolean) = (yyvsp[(1) - (6)].boolean); - ;} + } break; case 205: + +/* Line 1806 of yacc.c */ #line 1269 "../Source/WebCore/css/CSSGrammar.y" { (yyval.boolean) = false; @@ -3681,17 +3956,21 @@ yyreduce: p->m_valueList = 0; } p->markPropertyEnd((yyvsp[(5) - (5)].boolean), isPropertyParsed); - ;} + } break; case 206: + +/* Line 1806 of yacc.c */ #line 1287 "../Source/WebCore/css/CSSGrammar.y" { (yyval.boolean) = false; - ;} + } break; case 207: + +/* Line 1806 of yacc.c */ #line 1291 "../Source/WebCore/css/CSSGrammar.y" { /* The default movable type template has letter-spacing: .none; Handle this by looking for @@ -3700,82 +3979,102 @@ yyreduce: CSSParser* p = static_cast<CSSParser*>(parser); p->markPropertyEnd(false, false); (yyval.boolean) = false; - ;} + } break; case 208: + +/* Line 1806 of yacc.c */ #line 1300 "../Source/WebCore/css/CSSGrammar.y" { /* When we encounter something like p {color: red !important fail;} we should drop the declaration */ CSSParser* p = static_cast<CSSParser*>(parser); p->markPropertyEnd(false, false); (yyval.boolean) = false; - ;} + } break; case 209: + +/* Line 1806 of yacc.c */ #line 1307 "../Source/WebCore/css/CSSGrammar.y" { /* Handle this case: div { text-align: center; !important } Just reduce away the stray !important. */ (yyval.boolean) = false; - ;} + } break; case 210: + +/* Line 1806 of yacc.c */ #line 1312 "../Source/WebCore/css/CSSGrammar.y" { /* div { font-family: } Just reduce away this property with no value. */ CSSParser* p = static_cast<CSSParser*>(parser); p->markPropertyEnd(false, false); (yyval.boolean) = false; - ;} + } break; case 211: + +/* Line 1806 of yacc.c */ #line 1319 "../Source/WebCore/css/CSSGrammar.y" { /* if we come across rules with invalid values like this case: p { weight: *; }, just discard the rule */ CSSParser* p = static_cast<CSSParser*>(parser); p->markPropertyEnd(false, false); (yyval.boolean) = false; - ;} + } break; case 212: + +/* Line 1806 of yacc.c */ #line 1326 "../Source/WebCore/css/CSSGrammar.y" { /* if we come across: div { color{;color:maroon} }, ignore everything within curly brackets */ (yyval.boolean) = false; - ;} + } break; case 213: + +/* Line 1806 of yacc.c */ #line 1333 "../Source/WebCore/css/CSSGrammar.y" { (yyval.integer) = cssPropertyID((yyvsp[(1) - (2)].string)); - ;} + } break; case 214: + +/* Line 1806 of yacc.c */ #line 1339 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.boolean) = true; ;} + { (yyval.boolean) = true; } break; case 215: + +/* Line 1806 of yacc.c */ #line 1340 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.boolean) = false; ;} + { (yyval.boolean) = false; } break; case 216: + +/* Line 1806 of yacc.c */ #line 1344 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyval.valueList) = p->createFloatingValueList(); (yyval.valueList)->addValue(p->sinkFloatingValue((yyvsp[(1) - (1)].value))); - ;} + } break; case 217: + +/* Line 1806 of yacc.c */ #line 1349 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -3790,234 +4089,316 @@ yyreduce: } (yyval.valueList)->addValue(p->sinkFloatingValue((yyvsp[(3) - (3)].value))); } - ;} + } break; case 218: + +/* Line 1806 of yacc.c */ #line 1363 "../Source/WebCore/css/CSSGrammar.y" { (yyval.valueList) = 0; - ;} + } break; case 219: + +/* Line 1806 of yacc.c */ #line 1366 "../Source/WebCore/css/CSSGrammar.y" { (yyval.valueList) = 0; - ;} + } break; case 220: + +/* Line 1806 of yacc.c */ #line 1369 "../Source/WebCore/css/CSSGrammar.y" { (yyval.valueList) = 0; - ;} + } break; case 221: + +/* Line 1806 of yacc.c */ #line 1375 "../Source/WebCore/css/CSSGrammar.y" { (yyval.character) = '/'; - ;} + } break; case 222: + +/* Line 1806 of yacc.c */ #line 1378 "../Source/WebCore/css/CSSGrammar.y" { (yyval.character) = ','; - ;} + } break; case 223: + +/* Line 1806 of yacc.c */ #line 1381 "../Source/WebCore/css/CSSGrammar.y" { (yyval.character) = 0; - ;} + } break; case 224: + +/* Line 1806 of yacc.c */ #line 1387 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value) = (yyvsp[(1) - (1)].value); ;} + { (yyval.value) = (yyvsp[(1) - (1)].value); } break; case 225: + +/* Line 1806 of yacc.c */ #line 1388 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value) = (yyvsp[(2) - (2)].value); (yyval.value).fValue *= (yyvsp[(1) - (2)].integer); ;} + { (yyval.value) = (yyvsp[(2) - (2)].value); (yyval.value).fValue *= (yyvsp[(1) - (2)].integer); } break; case 226: + +/* Line 1806 of yacc.c */ #line 1389 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_STRING; ;} + { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_STRING; } break; case 227: + +/* Line 1806 of yacc.c */ #line 1390 "../Source/WebCore/css/CSSGrammar.y" { (yyval.value).id = cssValueKeywordID((yyvsp[(1) - (2)].string)); (yyval.value).unit = CSSPrimitiveValue::CSS_IDENT; (yyval.value).string = (yyvsp[(1) - (2)].string); - ;} + } break; case 228: + +/* Line 1806 of yacc.c */ #line 1396 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION; ;} + { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION; } break; case 229: + +/* Line 1806 of yacc.c */ #line 1397 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(2) - (3)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION; ;} + { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(2) - (3)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_DIMENSION; } break; case 230: + +/* Line 1806 of yacc.c */ #line 1398 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_URI; ;} + { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_URI; } break; case 231: + +/* Line 1806 of yacc.c */ #line 1399 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_UNICODE_RANGE; ;} + { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_UNICODE_RANGE; } break; case 232: + +/* Line 1806 of yacc.c */ #line 1400 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; ;} + { (yyval.value).id = 0; (yyval.value).string = (yyvsp[(1) - (2)].string); (yyval.value).unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; } break; case 233: + +/* Line 1806 of yacc.c */ #line 1401 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).string = CSSParserString(); (yyval.value).unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; ;} + { (yyval.value).id = 0; (yyval.value).string = CSSParserString(); (yyval.value).unit = CSSPrimitiveValue::CSS_PARSER_HEXCOLOR; } break; case 234: + +/* Line 1806 of yacc.c */ #line 1403 "../Source/WebCore/css/CSSGrammar.y" { (yyval.value) = (yyvsp[(1) - (1)].value); - ;} + } break; case 235: + +/* Line 1806 of yacc.c */ #line 1406 "../Source/WebCore/css/CSSGrammar.y" { (yyval.value) = (yyvsp[(1) - (1)].value); - ;} + } break; case 236: + +/* Line 1806 of yacc.c */ #line 1409 "../Source/WebCore/css/CSSGrammar.y" { (yyval.value) = (yyvsp[(1) - (1)].value); - ;} + } break; case 237: + +/* Line 1806 of yacc.c */ #line 1412 "../Source/WebCore/css/CSSGrammar.y" { /* Handle width: %; */ (yyval.value).id = 0; (yyval.value).unit = 0; - ;} + } break; case 238: + +/* Line 1806 of yacc.c */ #line 1418 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).isInt = true; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; ;} + { (yyval.value).id = 0; (yyval.value).isInt = true; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; } break; case 239: + +/* Line 1806 of yacc.c */ #line 1419 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; ;} + { (yyval.value).id = 0; (yyval.value).isInt = false; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_NUMBER; } break; case 240: + +/* Line 1806 of yacc.c */ #line 1420 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PERCENTAGE; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PERCENTAGE; } break; case 241: + +/* Line 1806 of yacc.c */ #line 1421 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PX; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PX; } break; case 242: + +/* Line 1806 of yacc.c */ #line 1422 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_CM; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_CM; } break; case 243: + +/* Line 1806 of yacc.c */ #line 1423 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_MM; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_MM; } break; case 244: + +/* Line 1806 of yacc.c */ #line 1424 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_IN; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_IN; } break; case 245: + +/* Line 1806 of yacc.c */ #line 1425 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PT; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PT; } break; case 246: + +/* Line 1806 of yacc.c */ #line 1426 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PC; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_PC; } break; case 247: + +/* Line 1806 of yacc.c */ #line 1427 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_DEG; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_DEG; } break; case 248: + +/* Line 1806 of yacc.c */ #line 1428 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_RAD; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_RAD; } break; case 249: + +/* Line 1806 of yacc.c */ #line 1429 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_GRAD; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_GRAD; } break; case 250: + +/* Line 1806 of yacc.c */ #line 1430 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_TURN; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_TURN; } break; case 251: + +/* Line 1806 of yacc.c */ #line 1431 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_MS; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_MS; } break; case 252: + +/* Line 1806 of yacc.c */ #line 1432 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_S; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_S; } break; case 253: + +/* Line 1806 of yacc.c */ #line 1433 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_HZ; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_HZ; } break; case 254: + +/* Line 1806 of yacc.c */ #line 1434 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_KHZ; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_KHZ; } break; case 255: + +/* Line 1806 of yacc.c */ #line 1435 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_EMS; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_EMS; } break; case 256: + +/* Line 1806 of yacc.c */ #line 1436 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSParserValue::Q_EMS; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSParserValue::Q_EMS; } break; case 257: + +/* Line 1806 of yacc.c */ #line 1437 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_EXS; ;} + { (yyval.value).id = 0; (yyval.value).fValue = (yyvsp[(1) - (2)].number); (yyval.value).unit = CSSPrimitiveValue::CSS_EXS; } break; case 258: + +/* Line 1806 of yacc.c */ #line 1438 "../Source/WebCore/css/CSSGrammar.y" { (yyval.value).id = 0; @@ -4026,10 +4407,12 @@ yyreduce: CSSParser* p = static_cast<CSSParser*>(parser); if (Document* doc = p->document()) doc->setUsesRemUnits(true); - ;} + } break; case 259: + +/* Line 1806 of yacc.c */ #line 1449 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -4039,10 +4422,12 @@ yyreduce: (yyval.value).id = 0; (yyval.value).unit = CSSParserValue::Function; (yyval.value).function = f; - ;} + } break; case 260: + +/* Line 1806 of yacc.c */ #line 1458 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -4052,58 +4437,74 @@ yyreduce: (yyval.value).id = 0; (yyval.value).unit = CSSParserValue::Function; (yyval.value).function = f; - ;} + } break; case 261: + +/* Line 1806 of yacc.c */ #line 1470 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value) = (yyvsp[(1) - (1)].value); ;} + { (yyval.value) = (yyvsp[(1) - (1)].value); } break; case 262: + +/* Line 1806 of yacc.c */ #line 1471 "../Source/WebCore/css/CSSGrammar.y" - { (yyval.value) = (yyvsp[(2) - (2)].value); (yyval.value).fValue *= (yyvsp[(1) - (2)].integer); ;} + { (yyval.value) = (yyvsp[(2) - (2)].value); (yyval.value).fValue *= (yyvsp[(1) - (2)].integer); } break; case 263: + +/* Line 1806 of yacc.c */ #line 1475 "../Source/WebCore/css/CSSGrammar.y" { (yyval.character) = '+'; - ;} + } break; case 264: + +/* Line 1806 of yacc.c */ #line 1478 "../Source/WebCore/css/CSSGrammar.y" { (yyval.character) = '-'; - ;} + } break; case 265: + +/* Line 1806 of yacc.c */ #line 1481 "../Source/WebCore/css/CSSGrammar.y" { (yyval.character) = '*'; - ;} + } break; case 266: + +/* Line 1806 of yacc.c */ #line 1484 "../Source/WebCore/css/CSSGrammar.y" { (yyval.character) = '/'; - ;} + } break; case 267: + +/* Line 1806 of yacc.c */ #line 1487 "../Source/WebCore/css/CSSGrammar.y" { if (equalIgnoringCase("mod", (yyvsp[(1) - (2)].string).characters, (yyvsp[(1) - (2)].string).length)) (yyval.character) = '%'; else (yyval.character) = 0; - ;} + } break; case 268: + +/* Line 1806 of yacc.c */ #line 1496 "../Source/WebCore/css/CSSGrammar.y" { if ((yyvsp[(3) - (6)].valueList)) { @@ -4117,19 +4518,23 @@ yyreduce: (yyval.valueList)->addValue(v); } else (yyval.valueList) = 0; - ;} + } break; case 269: + +/* Line 1806 of yacc.c */ #line 1511 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); (yyval.valueList) = p->createFloatingValueList(); (yyval.valueList)->addValue(p->sinkFloatingValue((yyvsp[(1) - (2)].value))); - ;} + } break; case 270: + +/* Line 1806 of yacc.c */ #line 1516 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -4144,10 +4549,12 @@ yyreduce: } else (yyval.valueList) = 0; - ;} + } break; case 271: + +/* Line 1806 of yacc.c */ #line 1530 "../Source/WebCore/css/CSSGrammar.y" { if ((yyvsp[(1) - (3)].valueList) && (yyvsp[(2) - (3)].character) && (yyvsp[(3) - (3)].valueList)) { @@ -4160,24 +4567,30 @@ yyreduce: (yyval.valueList)->extend(*((yyvsp[(3) - (3)].valueList))); } else (yyval.valueList) = 0; - ;} + } break; case 273: + +/* Line 1806 of yacc.c */ #line 1543 "../Source/WebCore/css/CSSGrammar.y" { (yyval.valueList) = 0; - ;} + } break; case 274: + +/* Line 1806 of yacc.c */ #line 1549 "../Source/WebCore/css/CSSGrammar.y" { (yyval.valueList) = (yyvsp[(1) - (1)].valueList); - ;} + } break; case 275: + +/* Line 1806 of yacc.c */ #line 1552 "../Source/WebCore/css/CSSGrammar.y" { if ((yyvsp[(1) - (4)].valueList) && (yyvsp[(4) - (4)].valueList)) { @@ -4190,10 +4603,12 @@ yyreduce: (yyval.valueList)->extend(*((yyvsp[(4) - (4)].valueList))); } else (yyval.valueList) = 0; - ;} + } break; case 276: + +/* Line 1806 of yacc.c */ #line 1567 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -4203,31 +4618,39 @@ yyreduce: (yyval.value).id = 0; (yyval.value).unit = CSSParserValue::Function; (yyval.value).function = f; - ;} + } break; case 277: + +/* Line 1806 of yacc.c */ #line 1576 "../Source/WebCore/css/CSSGrammar.y" { YYERROR; - ;} + } break; case 278: + +/* Line 1806 of yacc.c */ #line 1583 "../Source/WebCore/css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (1)].string); - ;} + } break; case 279: + +/* Line 1806 of yacc.c */ #line 1586 "../Source/WebCore/css/CSSGrammar.y" { (yyval.string) = (yyvsp[(1) - (1)].string); - ;} + } break; case 280: + +/* Line 1806 of yacc.c */ #line 1592 "../Source/WebCore/css/CSSGrammar.y" { CSSParser* p = static_cast<CSSParser*>(parser); @@ -4237,70 +4660,98 @@ yyreduce: (yyval.value).id = 0; (yyval.value).unit = CSSParserValue::Function; (yyval.value).function = f; - ;} + } break; case 281: + +/* Line 1806 of yacc.c */ #line 1601 "../Source/WebCore/css/CSSGrammar.y" { YYERROR; - ;} + } break; case 282: + +/* Line 1806 of yacc.c */ #line 1609 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; - ;} + } break; case 283: + +/* Line 1806 of yacc.c */ #line 1612 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; - ;} + } break; case 284: + +/* Line 1806 of yacc.c */ #line 1618 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; - ;} + } break; case 285: + +/* Line 1806 of yacc.c */ #line 1621 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; - ;} + } break; case 286: + +/* Line 1806 of yacc.c */ #line 1627 "../Source/WebCore/css/CSSGrammar.y" { (yyval.rule) = 0; - ;} + } break; case 287: + +/* Line 1806 of yacc.c */ #line 1645 "../Source/WebCore/css/CSSGrammar.y" { static_cast<CSSParser*>(parser)->invalidBlockHit(); - ;} + } break; case 288: + +/* Line 1806 of yacc.c */ #line 1648 "../Source/WebCore/css/CSSGrammar.y" { static_cast<CSSParser*>(parser)->invalidBlockHit(); - ;} + } break; -/* Line 1267 of yacc.c. */ -#line 4302 "/Source/WebCore/generated/CSSGrammar.tab.c" + +/* Line 1806 of yacc.c */ +#line 4742 "/Source/WebCore/generated/CSSGrammar.tab.c" default: break; } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); @@ -4309,7 +4760,6 @@ yyreduce: *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -4329,6 +4779,10 @@ yyreduce: | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { @@ -4336,37 +4790,36 @@ yyerrlab: #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; } +# undef YYSYNTAX_ERROR #endif } @@ -4374,7 +4827,7 @@ yyerrlab: if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an + /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -4391,7 +4844,7 @@ yyerrlab: } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -4425,7 +4878,7 @@ yyerrlab1: for (;;) { yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) + if (!yypact_value_is_default (yyn)) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) @@ -4448,9 +4901,6 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - *++yyvsp = yylval; @@ -4475,7 +4925,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow +#if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -4486,9 +4936,14 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); @@ -4512,6 +4967,8 @@ yyreturn: } + +/* Line 2067 of yacc.c */ #line 1658 "../Source/WebCore/css/CSSGrammar.y" diff --git a/src/3rdparty/webkit/Source/WebCore/generated/CSSGrammar.h b/src/3rdparty/webkit/Source/WebCore/generated/CSSGrammar.h index 22670ba..59225d8 100644 --- a/src/3rdparty/webkit/Source/WebCore/generated/CSSGrammar.h +++ b/src/3rdparty/webkit/Source/WebCore/generated/CSSGrammar.h @@ -1,26 +1,23 @@ #ifndef CSSGRAMMAR_H #define CSSGRAMMAR_H -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 2.5. */ -/* Skeleton interface for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -31,10 +28,11 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -123,95 +121,16 @@ UNICODERANGE = 336 }; #endif -/* Tokens. */ -#define TOKEN_EOF 0 -#define LOWEST_PREC 258 -#define UNIMPORTANT_TOK 259 -#define WHITESPACE 260 -#define SGML_CD 261 -#define INCLUDES 262 -#define DASHMATCH 263 -#define BEGINSWITH 264 -#define ENDSWITH 265 -#define CONTAINS 266 -#define STRING 267 -#define IDENT 268 -#define NTH 269 -#define HEX 270 -#define IDSEL 271 -#define IMPORT_SYM 272 -#define PAGE_SYM 273 -#define MEDIA_SYM 274 -#define FONT_FACE_SYM 275 -#define CHARSET_SYM 276 -#define NAMESPACE_SYM 277 -#define WEBKIT_RULE_SYM 278 -#define WEBKIT_DECLS_SYM 279 -#define WEBKIT_KEYFRAME_RULE_SYM 280 -#define WEBKIT_KEYFRAMES_SYM 281 -#define WEBKIT_VALUE_SYM 282 -#define WEBKIT_MEDIAQUERY_SYM 283 -#define WEBKIT_SELECTOR_SYM 284 -#define TOPLEFTCORNER_SYM 285 -#define TOPLEFT_SYM 286 -#define TOPCENTER_SYM 287 -#define TOPRIGHT_SYM 288 -#define TOPRIGHTCORNER_SYM 289 -#define BOTTOMLEFTCORNER_SYM 290 -#define BOTTOMLEFT_SYM 291 -#define BOTTOMCENTER_SYM 292 -#define BOTTOMRIGHT_SYM 293 -#define BOTTOMRIGHTCORNER_SYM 294 -#define LEFTTOP_SYM 295 -#define LEFTMIDDLE_SYM 296 -#define LEFTBOTTOM_SYM 297 -#define RIGHTTOP_SYM 298 -#define RIGHTMIDDLE_SYM 299 -#define RIGHTBOTTOM_SYM 300 -#define ATKEYWORD 301 -#define IMPORTANT_SYM 302 -#define MEDIA_ONLY 303 -#define MEDIA_NOT 304 -#define MEDIA_AND 305 -#define REMS 306 -#define QEMS 307 -#define EMS 308 -#define EXS 309 -#define PXS 310 -#define CMS 311 -#define MMS 312 -#define INS 313 -#define PTS 314 -#define PCS 315 -#define DEGS 316 -#define RADS 317 -#define GRADS 318 -#define TURNS 319 -#define MSECS 320 -#define SECS 321 -#define HERTZ 322 -#define KHERTZ 323 -#define DIMEN 324 -#define INVALIDDIMEN 325 -#define PERCENTAGE 326 -#define FLOATTOKEN 327 -#define INTEGER 328 -#define URI 329 -#define FUNCTION 330 -#define ANYFUNCTION 331 -#define NOTFUNCTION 332 -#define CALCFUNCTION 333 -#define MINFUNCTION 334 -#define MAXFUNCTION 335 -#define UNICODERANGE 336 - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 63 "../Source/WebCore/css/CSSGrammar.y" { + +/* Line 2068 of yacc.c */ +#line 63 "../Source/WebCore/css/CSSGrammar.y" + bool boolean; char character; int integer; @@ -234,15 +153,18 @@ typedef union YYSTYPE WebKitCSSKeyframeRule* keyframeRule; WebKitCSSKeyframesRule* keyframesRule; float val; -} -/* Line 1529 of yacc.c. */ -#line 238 "/Source/WebCore/generated/CSSGrammar.tab.h" - YYSTYPE; + + + +/* Line 2068 of yacc.c */ +#line 159 "/Source/WebCore/generated/CSSGrammar.tab.h" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif + #endif diff --git a/src/3rdparty/webkit/Source/WebCore/generated/CSSPropertyNames.cpp b/src/3rdparty/webkit/Source/WebCore/generated/CSSPropertyNames.cpp index 1294a34..945ba7d 100644 --- a/src/3rdparty/webkit/Source/WebCore/generated/CSSPropertyNames.cpp +++ b/src/3rdparty/webkit/Source/WebCore/generated/CSSPropertyNames.cpp @@ -1,4 +1,4 @@ -/* C++ code produced by gperf version 3.0.3 */ +/* C++ code produced by gperf version 3.0.4 */ /* Command-line: gperf --key-positions='*' -D -n -s 2 CSSPropertyNames.gperf */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ diff --git a/src/3rdparty/webkit/Source/WebCore/generated/CSSValueKeywords.cpp b/src/3rdparty/webkit/Source/WebCore/generated/CSSValueKeywords.cpp index 081d323..92c7541 100644 --- a/src/3rdparty/webkit/Source/WebCore/generated/CSSValueKeywords.cpp +++ b/src/3rdparty/webkit/Source/WebCore/generated/CSSValueKeywords.cpp @@ -1,4 +1,4 @@ -/* C++ code produced by gperf version 3.0.3 */ +/* C++ code produced by gperf version 3.0.4 */ /* Command-line: gperf --key-positions='*' -D -n -s 2 CSSValueKeywords.gperf */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ diff --git a/src/3rdparty/webkit/Source/WebCore/generated/ColorData.cpp b/src/3rdparty/webkit/Source/WebCore/generated/ColorData.cpp index 3b09b89..da31ef8 100644 --- a/src/3rdparty/webkit/Source/WebCore/generated/ColorData.cpp +++ b/src/3rdparty/webkit/Source/WebCore/generated/ColorData.cpp @@ -1,4 +1,4 @@ -/* C++ code produced by gperf version 3.0.3 */ +/* C++ code produced by gperf version 3.0.4 */ /* Command-line: gperf --key-positions='*' -D -s 2 /Source/WebCore/platform/ColorData.gperf */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ diff --git a/src/3rdparty/webkit/Source/WebCore/generated/DocTypeStrings.cpp b/src/3rdparty/webkit/Source/WebCore/generated/DocTypeStrings.cpp index e0a2b4f..5667009 100644 --- a/src/3rdparty/webkit/Source/WebCore/generated/DocTypeStrings.cpp +++ b/src/3rdparty/webkit/Source/WebCore/generated/DocTypeStrings.cpp @@ -1,4 +1,4 @@ -/* C++ code produced by gperf version 3.0.3 */ +/* C++ code produced by gperf version 3.0.4 */ /* Command-line: gperf --key-positions='*' -s 2 /Source/WebCore/html/DocTypeStrings.gperf */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ diff --git a/src/3rdparty/webkit/Source/WebCore/generated/JSWebGLRenderingContext.cpp b/src/3rdparty/webkit/Source/WebCore/generated/JSWebGLRenderingContext.cpp index e2a03c2..6f38364 100644 --- a/src/3rdparty/webkit/Source/WebCore/generated/JSWebGLRenderingContext.cpp +++ b/src/3rdparty/webkit/Source/WebCore/generated/JSWebGLRenderingContext.cpp @@ -30,7 +30,6 @@ #include "JSDOMBinding.h" #include "JSHTMLCanvasElement.h" #include "JSHTMLImageElement.h" -#include "JSHTMLVideoElement.h" #include "JSImageData.h" #include "JSWebGLActiveInfo.h" #include "JSWebGLBuffer.h" @@ -2986,40 +2985,6 @@ static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexI return JSValue::encode(jsUndefined()); } -static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D5(ExecState* exec) -{ - JSValue thisValue = exec->hostThisValue(); - if (!thisValue.inherits(&JSWebGLRenderingContext::s_info)) - return throwVMTypeError(exec); - JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue)); - WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl()); - ExceptionCode ec = 0; - unsigned target(exec->argument(0).toUInt32(exec)); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - int level(exec->argument(1).toInt32(exec)); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - unsigned internalformat(exec->argument(2).toUInt32(exec)); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - unsigned format(exec->argument(3).toUInt32(exec)); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - unsigned type(exec->argument(4).toUInt32(exec)); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - if (exec->argumentCount() > 5 && !exec->argument(5).isUndefinedOrNull() && !exec->argument(5).inherits(&JSHTMLVideoElement::s_info)) - return throwVMTypeError(exec); - HTMLVideoElement* video(toHTMLVideoElement(exec->argument(5))); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - - imp->texImage2D(target, level, internalformat, format, type, video, ec); - setDOMException(exec, ec); - return JSValue::encode(jsUndefined()); -} - EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D(ExecState* exec) { if ((exec->argumentCount() == 9 && (exec->argument(8).isNull() || (exec->argument(8).isObject() && asObject(exec->argument(8))->inherits(&JSArrayBufferView::s_info))))) @@ -3030,8 +2995,6 @@ EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexImage2D( return jsWebGLRenderingContextPrototypeFunctionTexImage2D3(exec); if ((exec->argumentCount() == 6 && (exec->argument(5).isNull() || (exec->argument(5).isObject() && asObject(exec->argument(5))->inherits(&JSHTMLCanvasElement::s_info))))) return jsWebGLRenderingContextPrototypeFunctionTexImage2D4(exec); - if ((exec->argumentCount() == 6 && (exec->argument(5).isNull() || (exec->argument(5).isObject() && asObject(exec->argument(5))->inherits(&JSHTMLVideoElement::s_info))))) - return jsWebGLRenderingContextPrototypeFunctionTexImage2D5(exec); return throwVMTypeError(exec); } @@ -3189,43 +3152,6 @@ static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexS return JSValue::encode(jsUndefined()); } -static EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D5(ExecState* exec) -{ - JSValue thisValue = exec->hostThisValue(); - if (!thisValue.inherits(&JSWebGLRenderingContext::s_info)) - return throwVMTypeError(exec); - JSWebGLRenderingContext* castedThis = static_cast<JSWebGLRenderingContext*>(asObject(thisValue)); - WebGLRenderingContext* imp = static_cast<WebGLRenderingContext*>(castedThis->impl()); - ExceptionCode ec = 0; - unsigned target(exec->argument(0).toUInt32(exec)); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - int level(exec->argument(1).toInt32(exec)); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - int xoffset(exec->argument(2).toInt32(exec)); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - int yoffset(exec->argument(3).toInt32(exec)); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - unsigned format(exec->argument(4).toUInt32(exec)); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - unsigned type(exec->argument(5).toUInt32(exec)); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - if (exec->argumentCount() > 6 && !exec->argument(6).isUndefinedOrNull() && !exec->argument(6).inherits(&JSHTMLVideoElement::s_info)) - return throwVMTypeError(exec); - HTMLVideoElement* video(toHTMLVideoElement(exec->argument(6))); - if (exec->hadException()) - return JSValue::encode(jsUndefined()); - - imp->texSubImage2D(target, level, xoffset, yoffset, format, type, video, ec); - setDOMException(exec, ec); - return JSValue::encode(jsUndefined()); -} - EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage2D(ExecState* exec) { if ((exec->argumentCount() == 9 && (exec->argument(8).isNull() || (exec->argument(8).isObject() && asObject(exec->argument(8))->inherits(&JSArrayBufferView::s_info))))) @@ -3236,8 +3162,6 @@ EncodedJSValue JSC_HOST_CALL jsWebGLRenderingContextPrototypeFunctionTexSubImage return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D3(exec); if ((exec->argumentCount() == 7 && (exec->argument(6).isNull() || (exec->argument(6).isObject() && asObject(exec->argument(6))->inherits(&JSHTMLCanvasElement::s_info))))) return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D4(exec); - if ((exec->argumentCount() == 7 && (exec->argument(6).isNull() || (exec->argument(6).isObject() && asObject(exec->argument(6))->inherits(&JSHTMLVideoElement::s_info))))) - return jsWebGLRenderingContextPrototypeFunctionTexSubImage2D5(exec); return throwVMTypeError(exec); } diff --git a/src/3rdparty/webkit/Source/WebCore/generated/XPathGrammar.cpp b/src/3rdparty/webkit/Source/WebCore/generated/XPathGrammar.cpp index 4e8b9c4..dc82e12 100644 --- a/src/3rdparty/webkit/Source/WebCore/generated/XPathGrammar.cpp +++ b/src/3rdparty/webkit/Source/WebCore/generated/XPathGrammar.cpp @@ -1,24 +1,21 @@ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 2.5. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -47,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.3" +#define YYBISON_VERSION "2.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -55,69 +52,28 @@ /* Pure parsers. */ #define YYPURE 1 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + /* Using locations. */ #define YYLSP_NEEDED 0 /* Substitute the variable and function names. */ -#define yyparse xpathyyparse -#define yylex xpathyylex -#define yyerror xpathyyerror -#define yylval xpathyylval -#define yychar xpathyychar -#define yydebug xpathyydebug -#define yynerrs xpathyynerrs - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - MULOP = 258, - RELOP = 259, - EQOP = 260, - MINUS = 261, - PLUS = 262, - AND = 263, - OR = 264, - AXISNAME = 265, - NODETYPE = 266, - PI = 267, - FUNCTIONNAME = 268, - LITERAL = 269, - VARIABLEREFERENCE = 270, - NUMBER = 271, - DOTDOT = 272, - SLASHSLASH = 273, - NAMETEST = 274, - XPATH_ERROR = 275 - }; -#endif -/* Tokens. */ -#define MULOP 258 -#define RELOP 259 -#define EQOP 260 -#define MINUS 261 -#define PLUS 262 -#define AND 263 -#define OR 264 -#define AXISNAME 265 -#define NODETYPE 266 -#define PI 267 -#define FUNCTIONNAME 268 -#define LITERAL 269 -#define VARIABLEREFERENCE 270 -#define NUMBER 271 -#define DOTDOT 272 -#define SLASHSLASH 273 -#define NAMETEST 274 -#define XPATH_ERROR 275 - - +#define yyparse xpathyyparse +#define yylex xpathyylex +#define yyerror xpathyyerror +#define yylval xpathyylval +#define yychar xpathyychar +#define yydebug xpathyydebug +#define yynerrs xpathyynerrs /* Copy the first part of user declarations. */ + +/* Line 268 of yacc.c */ #line 28 "../Source/WebCore/xml/XPathGrammar.y" @@ -148,6 +104,9 @@ using namespace XPath; +/* Line 268 of yacc.c */ +#line 109 "/Source/WebCore/generated/XPathGrammar.tab.c" + /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -166,10 +125,43 @@ using namespace XPath; # define YYTOKEN_TABLE 0 #endif + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + MULOP = 258, + RELOP = 259, + EQOP = 260, + MINUS = 261, + PLUS = 262, + AND = 263, + OR = 264, + AXISNAME = 265, + NODETYPE = 266, + PI = 267, + FUNCTIONNAME = 268, + LITERAL = 269, + VARIABLEREFERENCE = 270, + NUMBER = 271, + DOTDOT = 272, + SLASHSLASH = 273, + NAMETEST = 274, + XPATH_ERROR = 275 + }; +#endif + + + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 60 "../Source/WebCore/xml/XPathGrammar.y" { + +/* Line 293 of yacc.c */ +#line 60 "../Source/WebCore/xml/XPathGrammar.y" + Step::Axis axis; Step::NodeTest* nodeTest; NumericOp::Opcode numop; @@ -180,18 +172,21 @@ typedef union YYSTYPE Vector<Expression*>* argList; Step* step; LocationPath* locationPath; -} -/* Line 193 of yacc.c. */ -#line 186 "/Source/WebCore/generated/XPathGrammar.tab.c" - YYSTYPE; + + + +/* Line 293 of yacc.c */ +#line 180 "/Source/WebCore/generated/XPathGrammar.tab.c" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif - /* Copy the second part of user declarations. */ + +/* Line 343 of yacc.c */ #line 73 "../Source/WebCore/xml/XPathGrammar.y" @@ -200,8 +195,8 @@ static void xpathyyerror(const char*) { } -/* Line 216 of yacc.c. */ -#line 205 "/Source/WebCore/generated/XPathGrammar.tab.c" +/* Line 343 of yacc.c */ +#line 200 "/Source/WebCore/generated/XPathGrammar.tab.c" #ifdef short # undef short @@ -276,14 +271,14 @@ typedef short int yytype_int16; #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int -YYID (int i) +YYID (int yyi) #else static int -YYID (i) - int i; +YYID (yyi) + int yyi; #endif { - return i; + return yyi; } #endif @@ -304,11 +299,11 @@ YYID (i) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # endif @@ -331,24 +326,24 @@ YYID (i) # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# if (defined __cplusplus && ! defined _STDLIB_H \ +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif @@ -364,9 +359,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - }; + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) @@ -377,6 +372,27 @@ union yyalloc ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY @@ -394,24 +410,7 @@ union yyalloc while (YYID (0)) # endif # endif - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) - -#endif +#endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 47 @@ -571,8 +570,8 @@ static const yytype_uint8 yyr2[] = 1, 2 }; -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero +/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint8 yydefact[] = { @@ -623,8 +622,7 @@ static const yytype_int8 yypgoto[] = /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ + number is the opposite. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -1 static const yytype_uint8 yytable[] = { @@ -643,6 +641,12 @@ static const yytype_uint8 yytable[] = 15 }; +#define yypact_value_is_default(yystate) \ + ((yystate) == (-44)) + +#define yytable_value_is_error(yytable_value) \ + YYID (0) + static const yytype_int8 yycheck[] = { 1, 12, 0, 19, 22, 48, 49, 43, 10, 11, @@ -688,9 +692,18 @@ static const yytype_uint8 yystos[] = /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ + Once GCC version 2 has supplanted version 1, this can go. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ #define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ +#endif #define YYRECOVERING() (!!yyerrstatus) @@ -700,7 +713,6 @@ do \ { \ yychar = (Token); \ yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK (1); \ goto yybackup; \ } \ @@ -742,19 +754,10 @@ while (YYID (0)) #endif -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ +/* This macro is provided for backward compatibility. */ #ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif @@ -858,17 +861,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } @@ -902,11 +908,11 @@ yy_reduce_print (yyvsp, yyrule) /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); + YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, "\n"); } } @@ -943,7 +949,6 @@ int yydebug; # define YYMAXDEPTH 10000 #endif - #if YYERROR_VERBOSE @@ -1046,115 +1051,142 @@ yytnamerr (char *yyres, const char *yystr) } # endif -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) -{ - int yyn = yypact[yystate]; +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) +{ + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = 0; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; + + /* There are many possibilities here to consider: + - Assume YYFAIL is not used. It's too flawed to consider. See + <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> + for details. YYERROR is fine as it does not invoke this + function. + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + } + } - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } - if (yysize_overflow) - return YYSIZE_MAXIMUM; + yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; } #endif /* YYERROR_VERBOSE */ - /*-----------------------------------------------. | Release the memory associated to this symbol. | @@ -1186,10 +1218,9 @@ yydestruct (yymsg, yytype, yyvaluep) break; } } - -/* Prevent warnings from -Wmissing-prototypes. */ +/* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); @@ -1205,10 +1236,6 @@ int yyparse (); #endif /* ! YYPARSE_PARAM */ - - - - /*----------. | yyparse. | `----------*/ @@ -1235,74 +1262,75 @@ yyparse () #endif #endif { - /* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; - - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. + /* Number of syntax errors so far. */ + int yynerrs; - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - YYSIZE_T yystacksize = YYINITDEPTH; + YYSIZE_T yystacksize; + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; yyvsp = yyvs; @@ -1332,7 +1360,6 @@ int yynerrs; YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might @@ -1340,7 +1367,6 @@ int yynerrs; yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); yyss = yyss1; @@ -1363,9 +1389,8 @@ int yynerrs; (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -1376,7 +1401,6 @@ int yynerrs; yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); @@ -1386,6 +1410,9 @@ int yynerrs; YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; /*-----------. @@ -1394,16 +1421,16 @@ int yynerrs; yybackup: /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) + if (yypact_value_is_default (yyn)) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -1429,26 +1456,22 @@ yybackup: yyn = yytable[yyn]; if (yyn <= 0) { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; + if (yytable_value_is_error (yyn)) + goto yyerrlab; yyn = -yyn; goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; + /* Discard the shifted token. */ + yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; @@ -1488,79 +1511,99 @@ yyreduce: switch (yyn) { case 2: + +/* Line 1806 of yacc.c */ #line 122 "../Source/WebCore/xml/XPathGrammar.y" { PARSER->m_topExpr = (yyvsp[(1) - (1)].expr); - ;} + } break; case 3: + +/* Line 1806 of yacc.c */ #line 129 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.locationPath)->setAbsolute(false); - ;} + } break; case 4: + +/* Line 1806 of yacc.c */ #line 134 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.locationPath)->setAbsolute(true); - ;} + } break; case 5: + +/* Line 1806 of yacc.c */ #line 141 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.locationPath) = new LocationPath; PARSER->registerParseNode((yyval.locationPath)); - ;} + } break; case 6: + +/* Line 1806 of yacc.c */ #line 147 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.locationPath) = (yyvsp[(2) - (2)].locationPath); - ;} + } break; case 7: + +/* Line 1806 of yacc.c */ #line 152 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.locationPath) = (yyvsp[(2) - (2)].locationPath); (yyval.locationPath)->insertFirstStep((yyvsp[(1) - (2)].step)); PARSER->unregisterParseNode((yyvsp[(1) - (2)].step)); - ;} + } break; case 8: + +/* Line 1806 of yacc.c */ #line 161 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.locationPath) = new LocationPath; (yyval.locationPath)->appendStep((yyvsp[(1) - (1)].step)); PARSER->unregisterParseNode((yyvsp[(1) - (1)].step)); PARSER->registerParseNode((yyval.locationPath)); - ;} + } break; case 9: + +/* Line 1806 of yacc.c */ #line 169 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.locationPath)->appendStep((yyvsp[(3) - (3)].step)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].step)); - ;} + } break; case 10: + +/* Line 1806 of yacc.c */ #line 175 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.locationPath)->appendStep((yyvsp[(2) - (3)].step)); (yyval.locationPath)->appendStep((yyvsp[(3) - (3)].step)); PARSER->unregisterParseNode((yyvsp[(2) - (3)].step)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].step)); - ;} + } break; case 11: + +/* Line 1806 of yacc.c */ #line 185 "../Source/WebCore/xml/XPathGrammar.y" { if ((yyvsp[(2) - (2)].predList)) { @@ -1570,10 +1613,12 @@ yyreduce: (yyval.step) = new Step(Step::ChildAxis, *(yyvsp[(1) - (2)].nodeTest)); PARSER->deleteNodeTest((yyvsp[(1) - (2)].nodeTest)); PARSER->registerParseNode((yyval.step)); - ;} + } break; case 12: + +/* Line 1806 of yacc.c */ #line 196 "../Source/WebCore/xml/XPathGrammar.y" { String localName; @@ -1590,10 +1635,12 @@ yyreduce: (yyval.step) = new Step(Step::ChildAxis, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI)); PARSER->deleteString((yyvsp[(1) - (2)].str)); PARSER->registerParseNode((yyval.step)); - ;} + } break; case 13: + +/* Line 1806 of yacc.c */ #line 214 "../Source/WebCore/xml/XPathGrammar.y" { if ((yyvsp[(3) - (3)].predList)) { @@ -1603,10 +1650,12 @@ yyreduce: (yyval.step) = new Step((yyvsp[(1) - (3)].axis), *(yyvsp[(2) - (3)].nodeTest)); PARSER->deleteNodeTest((yyvsp[(2) - (3)].nodeTest)); PARSER->registerParseNode((yyval.step)); - ;} + } break; case 14: + +/* Line 1806 of yacc.c */ #line 225 "../Source/WebCore/xml/XPathGrammar.y" { String localName; @@ -1623,17 +1672,21 @@ yyreduce: (yyval.step) = new Step((yyvsp[(1) - (3)].axis), Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI)); PARSER->deleteString((yyvsp[(2) - (3)].str)); PARSER->registerParseNode((yyval.step)); - ;} + } break; case 17: + +/* Line 1806 of yacc.c */ #line 249 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.axis) = Step::AttributeAxis; - ;} + } break; case 18: + +/* Line 1806 of yacc.c */ #line 256 "../Source/WebCore/xml/XPathGrammar.y" { if (*(yyvsp[(1) - (3)].str) == "node") @@ -1645,119 +1698,147 @@ yyreduce: PARSER->deleteString((yyvsp[(1) - (3)].str)); PARSER->registerNodeTest((yyval.nodeTest)); - ;} + } break; case 19: + +/* Line 1806 of yacc.c */ #line 269 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.nodeTest) = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest); PARSER->deleteString((yyvsp[(1) - (3)].str)); PARSER->registerNodeTest((yyval.nodeTest)); - ;} + } break; case 20: + +/* Line 1806 of yacc.c */ #line 276 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.nodeTest) = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest, (yyvsp[(3) - (4)].str)->stripWhiteSpace()); PARSER->deleteString((yyvsp[(1) - (4)].str)); PARSER->deleteString((yyvsp[(3) - (4)].str)); PARSER->registerNodeTest((yyval.nodeTest)); - ;} + } break; case 21: + +/* Line 1806 of yacc.c */ #line 286 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.predList) = 0; - ;} + } break; case 23: + +/* Line 1806 of yacc.c */ #line 295 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.predList) = new Vector<Predicate*>; (yyval.predList)->append(new Predicate((yyvsp[(1) - (1)].expr))); PARSER->unregisterParseNode((yyvsp[(1) - (1)].expr)); PARSER->registerPredicateVector((yyval.predList)); - ;} + } break; case 24: + +/* Line 1806 of yacc.c */ #line 303 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.predList)->append(new Predicate((yyvsp[(2) - (2)].expr))); PARSER->unregisterParseNode((yyvsp[(2) - (2)].expr)); - ;} + } break; case 25: + +/* Line 1806 of yacc.c */ #line 311 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = (yyvsp[(2) - (3)].expr); - ;} + } break; case 26: + +/* Line 1806 of yacc.c */ #line 318 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.step) = new Step(Step::DescendantOrSelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest)); PARSER->registerParseNode((yyval.step)); - ;} + } break; case 27: + +/* Line 1806 of yacc.c */ #line 326 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.step) = new Step(Step::SelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest)); PARSER->registerParseNode((yyval.step)); - ;} + } break; case 28: + +/* Line 1806 of yacc.c */ #line 332 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.step) = new Step(Step::ParentAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest)); PARSER->registerParseNode((yyval.step)); - ;} + } break; case 29: + +/* Line 1806 of yacc.c */ #line 340 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new VariableReference(*(yyvsp[(1) - (1)].str)); PARSER->deleteString((yyvsp[(1) - (1)].str)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 30: + +/* Line 1806 of yacc.c */ #line 347 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = (yyvsp[(2) - (3)].expr); - ;} + } break; case 31: + +/* Line 1806 of yacc.c */ #line 352 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new StringExpression(*(yyvsp[(1) - (1)].str)); PARSER->deleteString((yyvsp[(1) - (1)].str)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 32: + +/* Line 1806 of yacc.c */ #line 359 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new Number((yyvsp[(1) - (1)].str)->toDouble()); PARSER->deleteString((yyvsp[(1) - (1)].str)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 34: + +/* Line 1806 of yacc.c */ #line 370 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = createFunction(*(yyvsp[(1) - (3)].str)); @@ -1765,10 +1846,12 @@ yyreduce: YYABORT; PARSER->deleteString((yyvsp[(1) - (3)].str)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 35: + +/* Line 1806 of yacc.c */ #line 379 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = createFunction(*(yyvsp[(1) - (4)].str), *(yyvsp[(3) - (4)].argList)); @@ -1777,28 +1860,34 @@ yyreduce: PARSER->deleteString((yyvsp[(1) - (4)].str)); PARSER->deleteExpressionVector((yyvsp[(3) - (4)].argList)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 36: + +/* Line 1806 of yacc.c */ #line 391 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.argList) = new Vector<Expression*>; (yyval.argList)->append((yyvsp[(1) - (1)].expr)); PARSER->unregisterParseNode((yyvsp[(1) - (1)].expr)); PARSER->registerExpressionVector((yyval.argList)); - ;} + } break; case 37: + +/* Line 1806 of yacc.c */ #line 399 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.argList)->append((yyvsp[(3) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].expr)); - ;} + } break; case 40: + +/* Line 1806 of yacc.c */ #line 413 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new Union; @@ -1807,17 +1896,21 @@ yyreduce: PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].expr)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 41: + +/* Line 1806 of yacc.c */ #line 425 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = (yyvsp[(1) - (1)].locationPath); - ;} + } break; case 43: + +/* Line 1806 of yacc.c */ #line 432 "../Source/WebCore/xml/XPathGrammar.y" { (yyvsp[(3) - (3)].locationPath)->setAbsolute(true); @@ -1825,10 +1918,12 @@ yyreduce: PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].locationPath)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 44: + +/* Line 1806 of yacc.c */ #line 441 "../Source/WebCore/xml/XPathGrammar.y" { (yyvsp[(3) - (3)].locationPath)->insertFirstStep((yyvsp[(2) - (3)].step)); @@ -1838,104 +1933,134 @@ yyreduce: PARSER->unregisterParseNode((yyvsp[(2) - (3)].step)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].locationPath)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 46: + +/* Line 1806 of yacc.c */ #line 456 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new Filter((yyvsp[(1) - (2)].expr), *(yyvsp[(2) - (2)].predList)); PARSER->unregisterParseNode((yyvsp[(1) - (2)].expr)); PARSER->deletePredicateVector((yyvsp[(2) - (2)].predList)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 48: + +/* Line 1806 of yacc.c */ #line 468 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new LogicalOp(LogicalOp::OP_Or, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].expr)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 50: + +/* Line 1806 of yacc.c */ #line 480 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new LogicalOp(LogicalOp::OP_And, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].expr)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 52: + +/* Line 1806 of yacc.c */ #line 492 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new EqTestOp((yyvsp[(2) - (3)].eqop), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].expr)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 54: + +/* Line 1806 of yacc.c */ #line 504 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new EqTestOp((yyvsp[(2) - (3)].eqop), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].expr)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 56: + +/* Line 1806 of yacc.c */ #line 516 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new NumericOp(NumericOp::OP_Add, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].expr)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 57: + +/* Line 1806 of yacc.c */ #line 524 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new NumericOp(NumericOp::OP_Sub, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].expr)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 59: + +/* Line 1806 of yacc.c */ #line 536 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new NumericOp((yyvsp[(2) - (3)].numop), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(1) - (3)].expr)); PARSER->unregisterParseNode((yyvsp[(3) - (3)].expr)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; case 61: + +/* Line 1806 of yacc.c */ #line 548 "../Source/WebCore/xml/XPathGrammar.y" { (yyval.expr) = new Negative; (yyval.expr)->addSubExpression((yyvsp[(2) - (2)].expr)); PARSER->unregisterParseNode((yyvsp[(2) - (2)].expr)); PARSER->registerParseNode((yyval.expr)); - ;} + } break; -/* Line 1267 of yacc.c. */ -#line 1937 "/Source/WebCore/generated/XPathGrammar.tab.c" + +/* Line 1806 of yacc.c */ +#line 2051 "/Source/WebCore/generated/XPathGrammar.tab.c" default: break; } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); @@ -1944,7 +2069,6 @@ yyreduce: *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -1964,6 +2088,10 @@ yyreduce: | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { @@ -1971,37 +2099,36 @@ yyerrlab: #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; } +# undef YYSYNTAX_ERROR #endif } @@ -2009,7 +2136,7 @@ yyerrlab: if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an + /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -2026,7 +2153,7 @@ yyerrlab: } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -2060,7 +2187,7 @@ yyerrlab1: for (;;) { yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) + if (!yypact_value_is_default (yyn)) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) @@ -2083,9 +2210,6 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - *++yyvsp = yylval; @@ -2110,7 +2234,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow +#if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -2121,9 +2245,14 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); @@ -2147,6 +2276,8 @@ yyreturn: } + +/* Line 2067 of yacc.c */ #line 556 "../Source/WebCore/xml/XPathGrammar.y" diff --git a/src/3rdparty/webkit/Source/WebCore/generated/XPathGrammar.h b/src/3rdparty/webkit/Source/WebCore/generated/XPathGrammar.h index 6788183..2911272 100644 --- a/src/3rdparty/webkit/Source/WebCore/generated/XPathGrammar.h +++ b/src/3rdparty/webkit/Source/WebCore/generated/XPathGrammar.h @@ -1,24 +1,21 @@ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 2.5. */ -/* Skeleton interface for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,10 +26,11 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -59,33 +57,16 @@ XPATH_ERROR = 275 }; #endif -/* Tokens. */ -#define MULOP 258 -#define RELOP 259 -#define EQOP 260 -#define MINUS 261 -#define PLUS 262 -#define AND 263 -#define OR 264 -#define AXISNAME 265 -#define NODETYPE 266 -#define PI 267 -#define FUNCTIONNAME 268 -#define LITERAL 269 -#define VARIABLEREFERENCE 270 -#define NUMBER 271 -#define DOTDOT 272 -#define SLASHSLASH 273 -#define NAMETEST 274 -#define XPATH_ERROR 275 - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 60 "../Source/WebCore/xml/XPathGrammar.y" { + +/* Line 2068 of yacc.c */ +#line 60 "../Source/WebCore/xml/XPathGrammar.y" + Step::Axis axis; Step::NodeTest* nodeTest; NumericOp::Opcode numop; @@ -96,14 +77,17 @@ typedef union YYSTYPE Vector<Expression*>* argList; Step* step; LocationPath* locationPath; -} -/* Line 1529 of yacc.c. */ -#line 102 "/Source/WebCore/generated/XPathGrammar.tab.h" - YYSTYPE; + + + +/* Line 2068 of yacc.c */ +#line 85 "/Source/WebCore/generated/XPathGrammar.tab.h" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif + diff --git a/src/3rdparty/webkit/Source/WebCore/html/HTMLCanvasElement.cpp b/src/3rdparty/webkit/Source/WebCore/html/HTMLCanvasElement.cpp index d416562..db0d148 100644 --- a/src/3rdparty/webkit/Source/WebCore/html/HTMLCanvasElement.cpp +++ b/src/3rdparty/webkit/Source/WebCore/html/HTMLCanvasElement.cpp @@ -373,17 +373,21 @@ PassRefPtr<ImageData> HTMLCanvasElement::getImageData() IntRect HTMLCanvasElement::convertLogicalToDevice(const FloatRect& logicalRect) const { - float left = floorf(logicalRect.x() * m_pageScaleFactor); - float top = floorf(logicalRect.y() * m_pageScaleFactor); - float right = ceilf(logicalRect.maxX() * m_pageScaleFactor); - float bottom = ceilf(logicalRect.maxY() * m_pageScaleFactor); - + // Prevent under/overflow by ensuring the rect's bounds stay within integer-expressible range + int left = clampToInteger(floorf(logicalRect.x() * m_pageScaleFactor)); + int top = clampToInteger(floorf(logicalRect.y() * m_pageScaleFactor)); + int right = clampToInteger(ceilf(logicalRect.maxX() * m_pageScaleFactor)); + int bottom = clampToInteger(ceilf(logicalRect.maxY() * m_pageScaleFactor)); + return IntRect(IntPoint(left, top), convertToValidDeviceSize(right - left, bottom - top)); } IntSize HTMLCanvasElement::convertLogicalToDevice(const FloatSize& logicalSize) const { - return convertToValidDeviceSize(logicalSize.width() * m_pageScaleFactor, logicalSize.height() * m_pageScaleFactor); + // Prevent overflow by ensuring the rect's bounds stay within integer-expressible range + float width = clampToInteger(ceilf(logicalSize.width() * m_pageScaleFactor)); + float height = clampToInteger(ceilf(logicalSize.height() * m_pageScaleFactor)); + return convertToValidDeviceSize(width, height); } IntSize HTMLCanvasElement::convertToValidDeviceSize(float width, float height) const diff --git a/src/3rdparty/webkit/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp b/src/3rdparty/webkit/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp index 7500854..4532484 100644 --- a/src/3rdparty/webkit/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp +++ b/src/3rdparty/webkit/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp @@ -1663,6 +1663,10 @@ PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(float sw, float if (scaledSize.height() < 1) scaledSize.setHeight(1); + float area = 4.0f * scaledSize.width() * scaledSize.height(); + if (area > static_cast<float>(std::numeric_limits<int>::max())) + return 0; + return createEmptyImageData(scaledSize); } @@ -1699,7 +1703,12 @@ PassRefPtr<ImageData> CanvasRenderingContext2D::getImageData(float sx, float sy, ImageBuffer* buffer = canvas()->buffer(); if (!buffer) return createEmptyImageData(scaledRect.size()); - return ImageData::create(scaledRect.size(), buffer->getUnmultipliedImageData(scaledRect)); + + RefPtr<ByteArray> byteArray = buffer->getUnmultipliedImageData(scaledRect); + if (!byteArray) + return 0; + + return ImageData::create(scaledRect.size(), byteArray.release()); } void CanvasRenderingContext2D::putImageData(ImageData* data, float dx, float dy, ExceptionCode& ec) diff --git a/src/3rdparty/webkit/Source/WebCore/html/parser/HTMLConstructionSite.cpp b/src/3rdparty/webkit/Source/WebCore/html/parser/HTMLConstructionSite.cpp index 01a3052..3974586 100644 --- a/src/3rdparty/webkit/Source/WebCore/html/parser/HTMLConstructionSite.cpp +++ b/src/3rdparty/webkit/Source/WebCore/html/parser/HTMLConstructionSite.cpp @@ -82,13 +82,14 @@ bool causesFosterParenting(const QualifiedName& tagName) } // namespace template<typename ChildType> -PassRefPtr<ChildType> HTMLConstructionSite::attach(ContainerNode* parent, PassRefPtr<ChildType> prpChild) +PassRefPtr<ChildType> HTMLConstructionSite::attach(ContainerNode* rawParent, PassRefPtr<ChildType> prpChild) { RefPtr<ChildType> child = prpChild; + RefPtr<ContainerNode> parent = rawParent; // FIXME: It's confusing that HTMLConstructionSite::attach does the magic // redirection to the foster parent but HTMLConstructionSite::attachAtSite - // doesn't. It feels like we're missing a concept somehow. + // doesn't. It feels like we're missing a concept somehow. if (shouldFosterParent()) { fosterParent(child.get()); ASSERT(child->attached() || !child->parentNode() || !child->parentNode()->attached()); @@ -102,11 +103,6 @@ PassRefPtr<ChildType> HTMLConstructionSite::attach(ContainerNode* parent, PassRe if (!child->parentNode()) return child.release(); - // It's slightly unfortunate that we need to hold a reference to child - // here to call attach(). We should investigate whether we can rely on - // |parent| to hold a ref at this point. In the common case (at least - // for elements), however, we'll get to use this ref in the stack of - // open elements. if (parent->attached() && !child->attached()) child->attach(); return child.release(); diff --git a/src/3rdparty/webkit/Source/WebCore/html/shadow/MediaControlElements.cpp b/src/3rdparty/webkit/Source/WebCore/html/shadow/MediaControlElements.cpp index e0205b3..ac5d5e2 100644 --- a/src/3rdparty/webkit/Source/WebCore/html/shadow/MediaControlElements.cpp +++ b/src/3rdparty/webkit/Source/WebCore/html/shadow/MediaControlElements.cpp @@ -33,6 +33,7 @@ #include "MediaControlElements.h" #include "CSSStyleSelector.h" +#include "CSSValueKeywords.h" #include "EventNames.h" #include "FloatConversion.h" #include "Frame.h" @@ -100,6 +101,8 @@ void MediaControlElement::hide() inline MediaControlPanelElement::MediaControlPanelElement(HTMLMediaElement* mediaElement) : MediaControlElement(mediaElement) + , m_canBeDragged(false) + , m_isBeingDragged(false) { } @@ -119,6 +122,108 @@ const AtomicString& MediaControlPanelElement::shadowPseudoId() const return id; } +void MediaControlPanelElement::startDrag(const IntPoint& eventLocation) +{ + if (!m_canBeDragged) + return; + + if (m_isBeingDragged) + return; + + RenderObject* renderer = this->renderer(); + if (!renderer || !renderer->isBox()) + return; + + Frame* frame = document()->frame(); + if (!frame) + return; + + m_dragStartPosition = toRenderBox(renderer)->location(); + m_dragStartEventLocation = eventLocation; + + frame->eventHandler()->setCapturingMouseEventsNode(this); + + m_isBeingDragged = true; +} + +void MediaControlPanelElement::continueDrag(const IntPoint& eventLocation) +{ + if (!m_isBeingDragged) + return; + + IntSize distanceDragged = eventLocation - m_dragStartEventLocation; + setPosition(m_dragStartPosition + distanceDragged); +} + +void MediaControlPanelElement::endDrag() +{ + if (!m_isBeingDragged) + return; + + m_isBeingDragged = false; + + Frame* frame = document()->frame(); + if (!frame) + return; + + frame->eventHandler()->setCapturingMouseEventsNode(0); +} + +void MediaControlPanelElement::setPosition(const IntPoint& position) +{ + CSSMutableStyleDeclaration* style = getInlineStyleDecl(); + + double left = position.x(); + double top = position.y(); + + // Set the left and top to control the panel's position; this depends on it being absolute positioned. + // Set the margin to zero since the position passed in will already include the effect of the margin. + style->setProperty(CSSPropertyLeft, left, CSSPrimitiveValue::CSS_PX); + style->setProperty(CSSPropertyTop, top, CSSPrimitiveValue::CSS_PX); + style->setProperty(CSSPropertyMarginLeft, 0.0, CSSPrimitiveValue::CSS_PX); + style->setProperty(CSSPropertyMarginTop, 0.0, CSSPrimitiveValue::CSS_PX); +} + +void MediaControlPanelElement::resetPosition() +{ + CSSMutableStyleDeclaration* style = getInlineStyleDecl(); + + style->removeProperty(CSSPropertyLeft); + style->removeProperty(CSSPropertyTop); + style->removeProperty(CSSPropertyMarginLeft); + style->removeProperty(CSSPropertyMarginTop); +} + +void MediaControlPanelElement::defaultEventHandler(Event* event) +{ + MediaControlElement::defaultEventHandler(event); + + if (event->isMouseEvent()) { + IntPoint location = static_cast<MouseEvent*>(event)->absoluteLocation(); + if (event->type() == eventNames().mousedownEvent) { + startDrag(location); + event->setDefaultHandled(); + } else if (event->type() == eventNames().mousemoveEvent) + continueDrag(location); + else if (event->type() == eventNames().mouseupEvent) { + continueDrag(location); + endDrag(); + event->setDefaultHandled(); + } + } +} + +void MediaControlPanelElement::setCanBeDragged(bool canBeDragged) +{ + if (m_canBeDragged == canBeDragged) + return; + + m_canBeDragged = canBeDragged; + + if (!canBeDragged) + endDrag(); +} + // ---------------------------- inline MediaControlTimelineContainerElement::MediaControlTimelineContainerElement(HTMLMediaElement* mediaElement) diff --git a/src/3rdparty/webkit/Source/WebCore/html/shadow/MediaControlElements.h b/src/3rdparty/webkit/Source/WebCore/html/shadow/MediaControlElements.h index ff8f461..76c6402 100644 --- a/src/3rdparty/webkit/Source/WebCore/html/shadow/MediaControlElements.h +++ b/src/3rdparty/webkit/Source/WebCore/html/shadow/MediaControlElements.h @@ -98,10 +98,25 @@ class MediaControlPanelElement : public MediaControlElement { public: static PassRefPtr<MediaControlPanelElement> create(HTMLMediaElement*); + void setCanBeDragged(bool); + void resetPosition(); + private: MediaControlPanelElement(HTMLMediaElement*); virtual MediaControlElementType displayType() const; virtual const AtomicString& shadowPseudoId() const; + virtual void defaultEventHandler(Event*); + + void startDrag(const IntPoint& eventLocation); + void continueDrag(const IntPoint& eventLocation); + void endDrag(); + + void setPosition(const IntPoint&); + + bool m_canBeDragged; + bool m_isBeingDragged; + IntPoint m_dragStartPosition; + IntPoint m_dragStartEventLocation; }; // ---------------------------- diff --git a/src/3rdparty/webkit/Source/WebCore/html/shadow/MediaControlRootElement.cpp b/src/3rdparty/webkit/Source/WebCore/html/shadow/MediaControlRootElement.cpp index 6ea1ea3..2c665ef 100644 --- a/src/3rdparty/webkit/Source/WebCore/html/shadow/MediaControlRootElement.cpp +++ b/src/3rdparty/webkit/Source/WebCore/html/shadow/MediaControlRootElement.cpp @@ -428,6 +428,8 @@ void MediaControlRootElement::enteredFullscreen() } else m_rewindButton->hide(); + m_panel->setCanBeDragged(true); + startHideFullscreenControlsTimer(); } @@ -440,6 +442,13 @@ void MediaControlRootElement::exitedFullscreen() m_seekBackButton->show(); m_seekForwardButton->show(); + m_panel->setCanBeDragged(false); + + // We will keep using the panel, but we want it to go back to the standard position. + // This will matter right away because we use the panel even when not fullscreen. + // And if we reenter fullscreen we also want the panel in the standard position. + m_panel->resetPosition(); + stopHideFullscreenControlsTimer(); } diff --git a/src/3rdparty/webkit/Source/WebCore/loader/DocumentLoader.cpp b/src/3rdparty/webkit/Source/WebCore/loader/DocumentLoader.cpp index 96889d8..0ff654a 100644 --- a/src/3rdparty/webkit/Source/WebCore/loader/DocumentLoader.cpp +++ b/src/3rdparty/webkit/Source/WebCore/loader/DocumentLoader.cpp @@ -400,10 +400,6 @@ void DocumentLoader::detachFromFrame() { ASSERT(m_frame); - // It never makes sense to have a document loader that is detached from its - // frame have any loads active, so go ahead and kill all the loads. - stopLoading(); - #if ENABLE(OFFLINE_WEB_APPLICATIONS) m_applicationCacheHost->setDOMApplicationCache(0); #endif diff --git a/src/3rdparty/webkit/Source/WebCore/platform/graphics/MediaPlayer.cpp b/src/3rdparty/webkit/Source/WebCore/platform/graphics/MediaPlayer.cpp index fb583b6..f66b60a 100644 --- a/src/3rdparty/webkit/Source/WebCore/platform/graphics/MediaPlayer.cpp +++ b/src/3rdparty/webkit/Source/WebCore/platform/graphics/MediaPlayer.cpp @@ -62,9 +62,6 @@ #if USE(QT_MULTIMEDIA) && !USE(GSTREAMER) #include "MediaPlayerPrivateQt.h" #define PlatformMediaEngineClassName MediaPlayerPrivateQt -#elif !USE(GSTREAMER) && !USE(QTKIT) -#include "MediaPlayerPrivatePhonon.h" -#define PlatformMediaEngineClassName MediaPlayerPrivatePhonon #endif #elif PLATFORM(CHROMIUM) #include "MediaPlayerPrivateChromium.h" diff --git a/src/3rdparty/webkit/Source/WebCore/platform/graphics/TiledBackingStore.cpp b/src/3rdparty/webkit/Source/WebCore/platform/graphics/TiledBackingStore.cpp index ac7e9c6..dd908c0 100644 --- a/src/3rdparty/webkit/Source/WebCore/platform/graphics/TiledBackingStore.cpp +++ b/src/3rdparty/webkit/Source/WebCore/platform/graphics/TiledBackingStore.cpp @@ -30,6 +30,13 @@ namespace WebCore { static const int defaultTileWidth = 512; static const int defaultTileHeight = 512; +static IntPoint innerBottomRight(const IntRect& rect) +{ + // Actually, the rect does not contain rect.maxX(). Refer to IntRect::contain. + return IntPoint(rect.maxX() - 1, rect.maxY() - 1); +} + + TiledBackingStore::TiledBackingStore(TiledBackingStoreClient* client) : m_client(client) , m_tileBufferUpdateTimer(new TileTimer(this, &TiledBackingStore::tileBufferUpdateTimerFired)) @@ -74,7 +81,7 @@ void TiledBackingStore::invalidate(const IntRect& contentsDirtyRect) IntRect dirtyRect(mapFromContents(contentsDirtyRect)); Tile::Coordinate topLeft = tileCoordinateForPoint(dirtyRect.location()); - Tile::Coordinate bottomRight = tileCoordinateForPoint(IntPoint(dirtyRect.maxX(), dirtyRect.maxY())); + Tile::Coordinate bottomRight = tileCoordinateForPoint(innerBottomRight(dirtyRect)); for (unsigned yCoordinate = topLeft.y(); yCoordinate <= bottomRight.y(); ++yCoordinate) { for (unsigned xCoordinate = topLeft.x(); xCoordinate <= bottomRight.x(); ++xCoordinate) { @@ -133,7 +140,7 @@ void TiledBackingStore::paint(GraphicsContext* context, const IntRect& rect) IntRect dirtyRect = mapFromContents(rect); Tile::Coordinate topLeft = tileCoordinateForPoint(dirtyRect.location()); - Tile::Coordinate bottomRight = tileCoordinateForPoint(IntPoint(dirtyRect.maxX(), dirtyRect.maxY())); + Tile::Coordinate bottomRight = tileCoordinateForPoint(innerBottomRight(dirtyRect)); for (unsigned yCoordinate = topLeft.y(); yCoordinate <= bottomRight.y(); ++yCoordinate) { for (unsigned xCoordinate = topLeft.x(); xCoordinate <= bottomRight.x(); ++xCoordinate) { @@ -230,7 +237,7 @@ void TiledBackingStore::createTiles() Vector<Tile::Coordinate> tilesToCreate; unsigned requiredTileCount = 0; Tile::Coordinate topLeft = tileCoordinateForPoint(coverRect.location()); - Tile::Coordinate bottomRight = tileCoordinateForPoint(IntPoint(coverRect.maxX(), coverRect.maxY())); + Tile::Coordinate bottomRight = tileCoordinateForPoint(innerBottomRight(coverRect)); for (unsigned yCoordinate = topLeft.y(); yCoordinate <= bottomRight.y(); ++yCoordinate) { for (unsigned xCoordinate = topLeft.x(); xCoordinate <= bottomRight.x(); ++xCoordinate) { Tile::Coordinate currentCoordinate(xCoordinate, yCoordinate); diff --git a/src/3rdparty/webkit/Source/WebCore/platform/graphics/cg/ImageBufferDataCG.cpp b/src/3rdparty/webkit/Source/WebCore/platform/graphics/cg/ImageBufferDataCG.cpp index f067b66..08652c9 100644 --- a/src/3rdparty/webkit/Source/WebCore/platform/graphics/cg/ImageBufferDataCG.cpp +++ b/src/3rdparty/webkit/Source/WebCore/platform/graphics/cg/ImageBufferDataCG.cpp @@ -110,6 +110,10 @@ static void premultitplyScanline(void* data, size_t tileNumber) PassRefPtr<ByteArray> ImageBufferData::getData(const IntRect& rect, const IntSize& size, bool accelerateRendering, bool unmultiplied) const { + float area = 4.0f * rect.width() * rect.height(); + if (area > static_cast<float>(std::numeric_limits<int>::max())) + return 0; + RefPtr<ByteArray> result = ByteArray::create(rect.width() * rect.height() * 4); unsigned char* data = result->data(); diff --git a/src/3rdparty/webkit/Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindowQt.cpp b/src/3rdparty/webkit/Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindowQt.cpp index 7270785..a442a2b 100644 --- a/src/3rdparty/webkit/Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindowQt.cpp +++ b/src/3rdparty/webkit/Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindowQt.cpp @@ -61,9 +61,9 @@ void FullScreenVideoWindow::keyPressEvent(QKeyEvent* ev) { if (m_mediaElement && ev->key() == Qt::Key_Space) { if (!m_mediaElement->paused()) - m_mediaElement->pause(true); + m_mediaElement->pause(); else - m_mediaElement->play(true); + m_mediaElement->play(); } else if (ev->key() == Qt::Key_Escape) emit closed(); QWidget::keyPressEvent(ev); diff --git a/src/3rdparty/webkit/Source/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp b/src/3rdparty/webkit/Source/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp deleted file mode 100644 index 50ee0f1..0000000 --- a/src/3rdparty/webkit/Source/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp +++ /dev/null @@ -1,557 +0,0 @@ -/* - Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) - Copyright (C) 2009 Apple Inc. All rights reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "config.h" -#include "MediaPlayerPrivatePhonon.h" - -#include <limits> - -#include "FrameView.h" -#include "GraphicsContext.h" -#include "Logging.h" -#include "MIMETypeRegistry.h" -#include "NotImplemented.h" -#include "TimeRanges.h" -#include "Widget.h" -#include <wtf/HashSet.h> -#include <wtf/text/CString.h> - -#include <QDebug> -#include <QEvent> -#include <QMetaEnum> -#include <QPainter> -#include <QWidget> -#include <QUrl> - -#include <phonon/audiooutput.h> -#include <phonon/backendcapabilities.h> -#include <phonon/path.h> -#include <phonon/mediaobject.h> -#include <phonon/videowidget.h> - -using namespace Phonon; - -#define LOG_MEDIAOBJECT() (LOG(Media, "%s", debugMediaObject(this, *m_mediaObject).constData())) - -#if !LOG_DISABLED -static QByteArray debugMediaObject(WebCore::MediaPlayerPrivatePhonon* mediaPlayer, const MediaObject& mediaObject) -{ - QByteArray byteArray; - QTextStream stream(&byteArray); - - const QMetaObject* metaObj = mediaPlayer->metaObject(); - QMetaEnum phononStates = metaObj->enumerator(metaObj->indexOfEnumerator("PhononState")); - - stream << "debugMediaObject -> Phonon::MediaObject("; - stream << "State: " << phononStates.valueToKey(mediaObject.state()); - stream << " | Current time: " << mediaObject.currentTime(); - stream << " | Remaining time: " << mediaObject.remainingTime(); - stream << " | Total time: " << mediaObject.totalTime(); - stream << " | Meta-data: "; - QMultiMap<QString, QString> map = mediaObject.metaData(); - for (QMap<QString, QString>::const_iterator it = map.constBegin(); - it != map.constEnd(); ++it) { - stream << "(" << it.key() << ", " << it.value() << ")"; - } - stream << " | Has video: " << mediaObject.hasVideo(); - stream << " | Is seekable: " << mediaObject.isSeekable(); - stream << ")"; - - stream.flush(); - - return byteArray; -} -#endif - -using namespace WTF; - -namespace WebCore { - -MediaPlayerPrivatePhonon::MediaPlayerPrivatePhonon(MediaPlayer* player) - : m_player(player) - , m_networkState(MediaPlayer::Empty) - , m_readyState(MediaPlayer::HaveNothing) - , m_mediaObject(new MediaObject()) - , m_videoWidget(new VideoWidget(0)) - , m_audioOutput(new AudioOutput()) - , m_isVisible(false) -{ - // Hint to Phonon to disable overlay painting - m_videoWidget->setAttribute(Qt::WA_DontShowOnScreen); - m_videoWidget->setAttribute(Qt::WA_QuitOnClose, false); - - createPath(m_mediaObject, m_videoWidget); - createPath(m_mediaObject, m_audioOutput); - - // Make sure we get updates for each frame - m_videoWidget->installEventFilter(this); - foreach (QWidget* widget, m_videoWidget->findChildren<QWidget*>()) - widget->installEventFilter(this); - - connect(m_mediaObject, SIGNAL(stateChanged(Phonon::State,Phonon::State)), - this, SLOT(stateChanged(Phonon::State,Phonon::State))); - connect(m_mediaObject, SIGNAL(metaDataChanged()), this, SLOT(metaDataChanged())); - connect(m_mediaObject, SIGNAL(seekableChanged(bool)), this, SLOT(seekableChanged(bool))); - connect(m_mediaObject, SIGNAL(hasVideoChanged(bool)), this, SLOT(hasVideoChanged(bool))); - connect(m_mediaObject, SIGNAL(bufferStatus(int)), this, SLOT(bufferStatus(int))); - connect(m_mediaObject, SIGNAL(finished()), this, SLOT(finished())); - connect(m_mediaObject, SIGNAL(currentSourceChanged(Phonon::MediaSource)), - this, SLOT(currentSourceChanged(Phonon::MediaSource))); - connect(m_mediaObject, SIGNAL(aboutToFinish()), this, SLOT(aboutToFinish())); - connect(m_mediaObject, SIGNAL(totalTimeChanged(qint64)), this, SLOT(totalTimeChanged(qint64))); -} - -PassOwnPtr<MediaPlayerPrivateInterface> MediaPlayerPrivatePhonon::create(MediaPlayer* player) -{ - return adoptPtr(new MediaPlayerPrivatePhonon(player)); -} - -void MediaPlayerPrivatePhonon::registerMediaEngine(MediaEngineRegistrar registrar) -{ - if (isAvailable()) - registrar(create, getSupportedTypes, supportsType, 0, 0, 0); -} - - -MediaPlayerPrivatePhonon::~MediaPlayerPrivatePhonon() -{ - LOG(Media, "MediaPlayerPrivatePhonon::dtor deleting videowidget"); - m_videoWidget->close(); - delete m_videoWidget; - m_videoWidget = 0; - - LOG(Media, "MediaPlayerPrivatePhonon::dtor deleting audiooutput"); - delete m_audioOutput; - m_audioOutput = 0; - - LOG(Media, "MediaPlayerPrivatePhonon::dtor deleting mediaobject"); - delete m_mediaObject; - m_mediaObject = 0; -} - -HashSet<String>& MediaPlayerPrivatePhonon::supportedTypesCache() -{ - static HashSet<String> supportedTypes; - if (!supportedTypes.isEmpty()) - return supportedTypes; - - // FIXME: we should rebuild the MIME type cache every time the backend is changed, - // however, this would have no effect on MIMETypeRegistry anyway, because it - // pulls this data only once. - - QStringList types = Phonon::BackendCapabilities::availableMimeTypes(); - foreach (const QString& type, types) { - QString first = type.split(QLatin1Char('/')).at(0); - - // We're only interested in types which are not supported by WebCore itself. - if (first != QLatin1String("video") - && first != QLatin1String("audio") - && first != QLatin1String("application")) - continue; - if (MIMETypeRegistry::isSupportedNonImageMIMEType(type)) - continue; - - supportedTypes.add(String(type)); - } - - // These formats are supported by GStreamer, but not correctly advertised. - if (supportedTypes.contains(String("video/x-h264")) - || supportedTypes.contains(String("audio/x-m4a"))) { - supportedTypes.add(String("video/mp4")); - supportedTypes.add(String("audio/aac")); - } - - if (supportedTypes.contains(String("video/x-theora"))) - supportedTypes.add(String("video/ogg")); - - if (supportedTypes.contains(String("audio/x-vorbis"))) - supportedTypes.add(String("audio/ogg")); - - if (supportedTypes.contains(String("audio/x-wav"))) - supportedTypes.add(String("audio/wav")); - - return supportedTypes; -} - -void MediaPlayerPrivatePhonon::getSupportedTypes(HashSet<String>& types) -{ - types = supportedTypesCache(); -} - -MediaPlayer::SupportsType MediaPlayerPrivatePhonon::supportsType(const String& type, const String& codecs) -{ - if (type.isEmpty()) - return MediaPlayer::IsNotSupported; - - if (supportedTypesCache().contains(type)) - return codecs.isEmpty() ? MediaPlayer::MayBeSupported : MediaPlayer::IsSupported; - return MediaPlayer::IsNotSupported; -} - -bool MediaPlayerPrivatePhonon::hasVideo() const -{ - bool hasVideo = m_mediaObject->hasVideo(); - LOG(Media, "MediaPlayerPrivatePhonon::hasVideo() -> %s", hasVideo ? "true" : "false"); - return hasVideo; -} - -bool MediaPlayerPrivatePhonon::hasAudio() const -{ - // FIXME: Phonon::MediaObject does not have such a hasAudio() function - bool hasAudio = true; - LOG(Media, "MediaPlayerPrivatePhonon::hasAudio() -> %s", hasAudio ? "true" : "false"); - return hasAudio; -} - -void MediaPlayerPrivatePhonon::load(const String& url) -{ - LOG(Media, "MediaPlayerPrivatePhonon::load(\"%s\")", url.utf8().data()); - - // We are now loading - if (m_networkState != MediaPlayer::Loading) { - m_networkState = MediaPlayer::Loading; - m_player->networkStateChanged(); - } - - // And we don't have any data yet - if (m_readyState != MediaPlayer::HaveNothing) { - m_readyState = MediaPlayer::HaveNothing; - m_player->readyStateChanged(); - } - - m_mediaObject->setCurrentSource(QUrl(url)); - m_audioOutput->setVolume(m_player->volume()); - setVisible(m_player->visible()); -} - -void MediaPlayerPrivatePhonon::cancelLoad() -{ - notImplemented(); -} - - -void MediaPlayerPrivatePhonon::play() -{ - LOG(Media, "MediaPlayerPrivatePhonon::play()"); - m_mediaObject->play(); -} - -void MediaPlayerPrivatePhonon::pause() -{ - LOG(Media, "MediaPlayerPrivatePhonon::pause()"); - m_mediaObject->pause(); -} - - -bool MediaPlayerPrivatePhonon::paused() const -{ - bool paused = m_mediaObject->state() == Phonon::PausedState; - LOG(Media, "MediaPlayerPrivatePhonon::paused() --> %s", paused ? "true" : "false"); - return paused; -} - -void MediaPlayerPrivatePhonon::seek(float position) -{ - LOG(Media, "MediaPlayerPrivatePhonon::seek(%f)", position); - - if (!m_mediaObject->isSeekable()) - return; - - if (position > duration()) - position = duration(); - - m_mediaObject->seek(position * 1000.0f); -} - -bool MediaPlayerPrivatePhonon::seeking() const -{ - return false; -} - -float MediaPlayerPrivatePhonon::duration() const -{ - if (m_readyState < MediaPlayer::HaveMetadata) - return 0.0f; - - float duration = m_mediaObject->totalTime() / 1000.0f; - - if (duration == 0.0f) // We are streaming - duration = std::numeric_limits<float>::infinity(); - - LOG(Media, "MediaPlayerPrivatePhonon::duration() --> %f", duration); - return duration; -} - -float MediaPlayerPrivatePhonon::currentTime() const -{ - float currentTime = m_mediaObject->currentTime() / 1000.0f; - - LOG(Media, "MediaPlayerPrivatePhonon::currentTime() --> %f", currentTime); - return currentTime; -} - -PassRefPtr<TimeRanges> MediaPlayerPrivatePhonon::buffered() const -{ - notImplemented(); - return TimeRanges::create(); -} - -float MediaPlayerPrivatePhonon::maxTimeSeekable() const -{ - notImplemented(); - return 0.0f; -} - -unsigned MediaPlayerPrivatePhonon::bytesLoaded() const -{ - notImplemented(); - return 0; -} - -unsigned MediaPlayerPrivatePhonon::totalBytes() const -{ - //notImplemented(); - return 0; -} - -void MediaPlayerPrivatePhonon::setRate(float) -{ - notImplemented(); -} - -void MediaPlayerPrivatePhonon::setVolume(float volume) -{ - LOG(Media, "MediaPlayerPrivatePhonon::setVolume()"); - m_audioOutput->setVolume(volume); -} - -void MediaPlayerPrivatePhonon::setMuted(bool muted) -{ - LOG(Media, "MediaPlayerPrivatePhonon::setMuted()"); - m_audioOutput->setMuted(muted); -} - -MediaPlayer::NetworkState MediaPlayerPrivatePhonon::networkState() const -{ -#if !LOG_DISABLED - const QMetaObject* metaObj = this->metaObject(); - QMetaEnum networkStates = metaObj->enumerator(metaObj->indexOfEnumerator("NetworkState")); - LOG(Media, "MediaPlayerPrivatePhonon::networkState() --> %s", networkStates.valueToKey(m_networkState)); -#endif - return m_networkState; -} - -MediaPlayer::ReadyState MediaPlayerPrivatePhonon::readyState() const -{ -#if !LOG_DISABLED - const QMetaObject* metaObj = this->metaObject(); - QMetaEnum readyStates = metaObj->enumerator(metaObj->indexOfEnumerator("ReadyState")); - LOG(Media, "MediaPlayerPrivatePhonon::readyState() --> %s", readyStates.valueToKey(m_readyState)); -#endif - return m_readyState; -} - -void MediaPlayerPrivatePhonon::updateStates() -{ - MediaPlayer::NetworkState oldNetworkState = m_networkState; - MediaPlayer::ReadyState oldReadyState = m_readyState; - - Phonon::State phononState = m_mediaObject->state(); - - if (phononState == Phonon::StoppedState) { - if (m_readyState < MediaPlayer::HaveMetadata) { - m_networkState = MediaPlayer::Loading; // FIXME: should this be MediaPlayer::Idle? - m_readyState = MediaPlayer::HaveMetadata; - m_mediaObject->pause(); - } - } else if (phononState == Phonon::PausedState) { - m_networkState = MediaPlayer::Loaded; - m_readyState = MediaPlayer::HaveEnoughData; - } else if (phononState == Phonon::ErrorState) { - if (!m_mediaObject || m_mediaObject->errorType() == Phonon::FatalError) { - // FIXME: is it possile to differentiate between different types of errors - m_networkState = MediaPlayer::NetworkError; - m_readyState = MediaPlayer::HaveNothing; - cancelLoad(); - } else - m_mediaObject->pause(); - } - - if (seeking()) - m_readyState = MediaPlayer::HaveNothing; - - if (m_networkState != oldNetworkState) { -#if !LOG_DISABLED - const QMetaObject* metaObj = this->metaObject(); - QMetaEnum networkStates = metaObj->enumerator(metaObj->indexOfEnumerator("NetworkState")); - LOG(Media, "Network state changed from '%s' to '%s'", - networkStates.valueToKey(oldNetworkState), - networkStates.valueToKey(m_networkState)); -#endif - m_player->networkStateChanged(); - } - - if (m_readyState != oldReadyState) { -#if !LOG_DISABLED - const QMetaObject* metaObj = this->metaObject(); - QMetaEnum readyStates = metaObj->enumerator(metaObj->indexOfEnumerator("ReadyState")); - LOG(Media, "Ready state changed from '%s' to '%s'", - readyStates.valueToKey(oldReadyState), - readyStates.valueToKey(m_readyState)); -#endif - m_player->readyStateChanged(); - } -} - -void MediaPlayerPrivatePhonon::setVisible(bool visible) -{ - m_isVisible = visible; - LOG(Media, "MediaPlayerPrivatePhonon::setVisible(%s)", visible ? "true" : "false"); - - m_videoWidget->setVisible(m_isVisible); -} - -void MediaPlayerPrivatePhonon::setSize(const IntSize& newSize) -{ - if (!m_videoWidget) - return; - - LOG(Media, "MediaPlayerPrivatePhonon::setSize(%d,%d)", - newSize.width(), newSize.height()); - - QRect currentRect = m_videoWidget->rect(); - - if (newSize.width() != currentRect.width() || newSize.height() != currentRect.height()) - m_videoWidget->resize(newSize.width(), newSize.height()); -} - -IntSize MediaPlayerPrivatePhonon::naturalSize() const -{ - if (!hasVideo()) { - LOG(Media, "MediaPlayerPrivatePhonon::naturalSize() -> %dx%d", - 0, 0); - return IntSize(); - } - - if (m_readyState < MediaPlayer::HaveMetadata) { - LOG(Media, "MediaPlayerPrivatePhonon::naturalSize() -> %dx%d", - 0, 0); - return IntSize(); - } - - QSize videoSize = m_videoWidget->sizeHint(); - IntSize naturalSize(videoSize.width(), videoSize.height()); - LOG(Media, "MediaPlayerPrivatePhonon::naturalSize() -> %dx%d", - naturalSize.width(), naturalSize.height()); - return naturalSize; -} - -bool MediaPlayerPrivatePhonon::eventFilter(QObject* obj, QEvent* event) -{ - if (event->type() == QEvent::UpdateRequest) - m_player->repaint(); - - return QObject::eventFilter(obj, event); -} - -void MediaPlayerPrivatePhonon::paint(GraphicsContext* graphicsContect, const IntRect& rect) -{ - if (graphicsContect->paintingDisabled()) - return; - - if (!m_isVisible) - return; - - QPainter* painter = graphicsContect->platformContext(); - - painter->fillRect(rect, Qt::black); - - m_videoWidget->render(painter, QPoint(rect.x(), rect.y()), - QRegion(0, 0, rect.width(), rect.height())); -} - -// ====================== Phonon::MediaObject signals ====================== - -void MediaPlayerPrivatePhonon::stateChanged(Phonon::State newState, Phonon::State oldState) -{ -#if !LOG_DISABLED - const QMetaObject* metaObj = this->metaObject(); - QMetaEnum phononStates = metaObj->enumerator(metaObj->indexOfEnumerator("PhononState")); - LOG(Media, "MediaPlayerPrivatePhonon::stateChanged(newState=%s, oldState=%s)", - phononStates.valueToKey(newState), phononStates.valueToKey(oldState)); -#endif - - updateStates(); -} - -void MediaPlayerPrivatePhonon::metaDataChanged() -{ - LOG(Media, "MediaPlayerPrivatePhonon::metaDataChanged()"); - LOG_MEDIAOBJECT(); -} - -void MediaPlayerPrivatePhonon::seekableChanged(bool) -{ - notImplemented(); - LOG_MEDIAOBJECT(); -} - -void MediaPlayerPrivatePhonon::hasVideoChanged(bool hasVideo) -{ - LOG(Media, "MediaPlayerPrivatePhonon::hasVideoChanged(%s)", hasVideo ? "true" : "false"); -} - -void MediaPlayerPrivatePhonon::bufferStatus(int) -{ - notImplemented(); - LOG_MEDIAOBJECT(); -} - -void MediaPlayerPrivatePhonon::finished() -{ - notImplemented(); - LOG_MEDIAOBJECT(); -} - -void MediaPlayerPrivatePhonon::currentSourceChanged(const Phonon::MediaSource&) -{ - notImplemented(); - LOG_MEDIAOBJECT(); -} - -void MediaPlayerPrivatePhonon::aboutToFinish() -{ - notImplemented(); - LOG_MEDIAOBJECT(); -} - -void MediaPlayerPrivatePhonon::totalTimeChanged(qint64 totalTime) -{ -#if OS(WINDOWS) - LOG(Media, "MediaPlayerPrivatePhonon::totalTimeChanged(%I64d)", totalTime); -#else - LOG(Media, "MediaPlayerPrivatePhonon::totalTimeChanged(%lld)", totalTime); -#endif - LOG_MEDIAOBJECT(); -} - -} // namespace WebCore - -#include "moc_MediaPlayerPrivatePhonon.cpp" diff --git a/src/3rdparty/webkit/Source/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.h b/src/3rdparty/webkit/Source/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.h deleted file mode 100644 index 1d8a4f51..0000000 --- a/src/3rdparty/webkit/Source/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.h +++ /dev/null @@ -1,153 +0,0 @@ -/* - Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) - Copyright (C) 2009 Apple Inc. All rights reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef MediaPlayerPrivatePhonon_h -#define MediaPlayerPrivatePhonon_h - -#include "MediaPlayerPrivate.h" - -#include <QObject> -#include <phononnamespace.h> - -QT_BEGIN_NAMESPACE -class QWidget; -class QUrl; - -namespace Phonon { - class MediaObject; - class VideoWidget; - class AudioOutput; - class MediaSource; -} -QT_END_NAMESPACE - -namespace WebCore { - - class MediaPlayerPrivatePhonon : public QObject, public MediaPlayerPrivateInterface { - - Q_OBJECT - - public: - static void registerMediaEngine(MediaEngineRegistrar); - ~MediaPlayerPrivatePhonon(); - - // These enums are used for debugging - Q_ENUMS(ReadyState NetworkState PhononState) - - enum ReadyState { - HaveNothing, - HaveMetadata, - HaveCurrentData, - HaveFutureData, - HaveEnoughData - }; - - enum NetworkState { - Empty, - Idle, - Loading, - Loaded, - FormatError, - NetworkError, - DecodeError - }; - - enum PhononState { - LoadingState, - StoppedState, - PlayingState, - BufferingState, - PausedState, - ErrorState - }; - - IntSize naturalSize() const; - bool hasVideo() const; - bool hasAudio() const; - - void load(const String &url); - void cancelLoad(); - - void play(); - void pause(); - - bool paused() const; - bool seeking() const; - - float duration() const; - float currentTime() const; - void seek(float); - - void setRate(float); - void setVolume(float); - void setMuted(bool); - - MediaPlayer::NetworkState networkState() const; - MediaPlayer::ReadyState readyState() const; - - PassRefPtr<TimeRanges> buffered() const; - float maxTimeSeekable() const; - unsigned bytesLoaded() const; - unsigned totalBytes() const; - - void setVisible(bool); - void setSize(const IntSize&); - - void paint(GraphicsContext*, const IntRect&); - - protected: - bool eventFilter(QObject*, QEvent*); - - private slots: - void stateChanged(Phonon::State, Phonon::State); - void metaDataChanged(); - void seekableChanged(bool); - void hasVideoChanged(bool); - void bufferStatus(int); - void finished(); - void currentSourceChanged(const Phonon::MediaSource&); - void aboutToFinish(); - void totalTimeChanged(qint64); - - private: - MediaPlayerPrivatePhonon(MediaPlayer*); - static PassOwnPtr<MediaPlayerPrivateInterface> create(MediaPlayer*); - - static void getSupportedTypes(HashSet<String>&); - static MediaPlayer::SupportsType supportsType(const String& type, const String& codecs); - static HashSet<String>& supportedTypesCache(); - static bool isAvailable() { return true; } - - void updateStates(); - - MediaPlayer* m_player; - - MediaPlayer::NetworkState m_networkState; - MediaPlayer::ReadyState m_readyState; - - Phonon::MediaObject* m_mediaObject; - Phonon::VideoWidget* m_videoWidget; - Phonon::AudioOutput* m_audioOutput; - - bool m_isVisible; - }; -} - -#endif // MediaPlayerPrivatePhonon_h diff --git a/src/3rdparty/webkit/Source/WebCore/rendering/RenderBlock.cpp b/src/3rdparty/webkit/Source/WebCore/rendering/RenderBlock.cpp index deb6389..a212dd4 100644 --- a/src/3rdparty/webkit/Source/WebCore/rendering/RenderBlock.cpp +++ b/src/3rdparty/webkit/Source/WebCore/rendering/RenderBlock.cpp @@ -219,6 +219,9 @@ void RenderBlock::styleWillChange(StyleDifference diff, const RenderStyle* newSt if (cb->isRenderBlock()) toRenderBlock(cb)->removePositionedObjects(this); } + + if (containsFloats() && !isFloating() && !isPositioned() && (newStyle->position() == AbsolutePosition || newStyle->position() == FixedPosition)) + markAllDescendantsWithFloatsForLayout(); } RenderBox::styleWillChange(diff, newStyle); diff --git a/src/3rdparty/webkit/Source/WebKit.pri b/src/3rdparty/webkit/Source/WebKit.pri index c556cd0..309357c 100644 --- a/src/3rdparty/webkit/Source/WebKit.pri +++ b/src/3rdparty/webkit/Source/WebKit.pri @@ -154,11 +154,6 @@ symbian|maemo5|maemo6 { disable_uitools: DEFINES *= QT_NO_UITOOLS -isEmpty(QT.phonon.includes) { - QT.phonon.includes = $$QMAKE_INCDIR_QT/phonon - QT.phonon.libs = $$QMAKE_LIBDIR_QT -} - # Disable a few warnings on Windows. The warnings are also # disabled in WebKitLibraries/win/tools/vsprops/common.vsprops win32-msvc*|wince*: QMAKE_CXXFLAGS += -wd4291 -wd4344 -wd4396 -wd4503 -wd4800 -wd4819 -wd4996 diff --git a/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog b/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog index 63a8501..f4566cd 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog +++ b/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog @@ -1,3 +1,84 @@ +2011-06-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Reviewed by Andreas Kling. + + [Qt] tst_QWebFrame::overloadedSlots() fails + https://bugs.webkit.org/show_bug.cgi?id=37319 + + * tests/qwebframe/tst_qwebframe.cpp: + (tst_QWebFrame::overloadedSlots): Remove expected failure and + fix the comment. + +2011-06-27 Alexis Menard <alexis.menard@openbossa.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Remove Phonon MediaPlayer from the tree. + https://bugs.webkit.org/show_bug.cgi?id=63448 + + Remove Phonon related stuff. + + * docs/qtwebkit.qdocconf: + * qt_webkit_version.pri: + +2011-06-23 Csaba Osztrogonác <ossy@webkit.org> + + Rubber-stamped by Andreas Kling. + + [Qt] Fix tst_QWebFrame::setHtmlWithResource() API test + https://bugs.webkit.org/show_bug.cgi?id=63235 + + [Qt] Fix tst_QWebFrame::renderGeometry() API test + https://bugs.webkit.org/show_bug.cgi?id=63236 + + [Qt] Fix tst_QWebFrame::setUrlWithPendingLoads() API test + https://bugs.webkit.org/show_bug.cgi?id=63237 + + * tests/qwebframe/tst_qwebframe.cpp: Mark failing test cases as expected fails until real fix. + (tst_QWebFrame::setHtmlWithResource): + (tst_QWebFrame::renderGeometry): + +2011-06-23 Csaba Osztrogonác <ossy@webkit.org> + + Rubber-stamped by Andreas Kling. + + [Qt] Fix tst_QWebPage::showModalDialog() API test + https://bugs.webkit.org/show_bug.cgi?id=63244 + + [Qt] Fix tst_QWebPage::testStopScheduledPageRefresh() API test + https://bugs.webkit.org/show_bug.cgi?id=63245 + + * tests/qwebpage/tst_qwebpage.cpp: Mark failing test cases as expected fails. + (tst_QWebPage::showModalDialog): + (tst_QWebPage::testStopScheduledPageRefresh): + +2011-06-23 Joe Wild <joseph.wild@nokia.com> + + Reviewed by Laszlo Gombos. + + [Qt] Export files under Symbian Qt WebKit build + https://bugs.webkit.org/show_bug.cgi?id=61207 + + Export files for the Symbian platform as this is needed by the + production build system. + + Janne Koskinen provided the suggestion to use target_predeps, + which is an improvement over the originally suggested patch. + + * QtWebKit.pro: + +2011-06-23 Joe Wild <joseph.wild@nokia.com> + + Reviewed by Laszlo Gombos. + + [Qt] The Qt WebKit Symbian .def file needs to be updated so Symbian will build + https://bugs.webkit.org/show_bug.cgi?id=61200 + + Revert r87060 as it broke compatibility with QtWebKit 2.1 release + and add some newly introduce symbols. + + * symbian/eabi/QtWebKitu.def: + 2011-06-22 Ademar de Souza Reis Jr. <ademar.reis@openbossa.org> Reviewed by Holger Freyther. diff --git a/src/3rdparty/webkit/Source/WebKit/qt/QtWebKit.pro b/src/3rdparty/webkit/Source/WebKit/qt/QtWebKit.pro index d3cc1cc..301aaa3 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/QtWebKit.pro +++ b/src/3rdparty/webkit/Source/WebKit/qt/QtWebKit.pro @@ -315,7 +315,7 @@ contains(CONFIG, texmap) { # INSTALLS is not implemented in qmake's mmp generators, copy headers manually inst_headers.commands = $$QMAKE_COPY ${QMAKE_FILE_NAME} ${QMAKE_FILE_OUT} inst_headers.input = WEBKIT_INSTALL_HEADERS - inst_headers.CONFIG = no_clean + inst_headers.CONFIG = no_clean no_link target_predeps !isEmpty(INSTALL_HEADERS): inst_headers.output = $$INSTALL_HEADERS/QtWebKit/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT} else: inst_headers.output = $$[QT_INSTALL_HEADERS]/QtWebKit/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT} diff --git a/src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit.qdocconf b/src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit.qdocconf index f1d198d..4f11d18 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit.qdocconf +++ b/src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit.qdocconf @@ -146,7 +146,6 @@ Cpp.ignoretokens = QAXFACTORY_EXPORT \ QT_BEGIN_INCLUDE_NAMESPACE \ QT_END_NAMESPACE \ QT_END_INCLUDE_NAMESPACE \ - PHONON_EXPORT \ EXTENSIONSYSTEM_EXPORT \ QWEBKIT_EXPORT Cpp.ignoredirectives = Q_DECLARE_HANDLE \ @@ -164,10 +163,7 @@ Cpp.ignoredirectives = Q_DECLARE_HANDLE \ Q_ENUMS \ Q_FLAGS \ Q_INTERFACES \ - __attribute__ \ - K_DECLARE_PRIVATE \ - PHONON_OBJECT \ - PHONON_HEIR + __attribute__ diff --git a/src/3rdparty/webkit/Source/WebKit/qt/qt_webkit_version.pri b/src/3rdparty/webkit/Source/WebKit/qt/qt_webkit_version.pri index 9f6ba20..cc80515 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/qt_webkit_version.pri +++ b/src/3rdparty/webkit/Source/WebKit/qt/qt_webkit_version.pri @@ -7,7 +7,7 @@ QT.webkit.name = QtWebKit QT.webkit.includes = $$QT_MODULE_INCLUDE_BASE $$QT_MODULE_INCLUDE_BASE/QtWebKit QT.webkit.sources = $$QT_MODULE_BASE QT.webkit.libs = $$QT_MODULE_LIB_BASE -QT.webkit.depends = core gui opengl network xmlpatterns script phonon +QT.webkit.depends = core gui opengl network xmlpatterns script !contains(QT_CONFIG, modular)|contains(QT_ELIGIBLE_MODULES, webkit) { QT_CONFIG += webkit diff --git a/src/3rdparty/webkit/Source/WebKit/qt/symbian/eabi/QtWebKitu.def b/src/3rdparty/webkit/Source/WebKit/qt/symbian/eabi/QtWebKitu.def index 7ca3bf9..176b9a1 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/symbian/eabi/QtWebKitu.def +++ b/src/3rdparty/webkit/Source/WebKit/qt/symbian/eabi/QtWebKitu.def @@ -780,8 +780,8 @@ EXPORTS _ZN23DumpRenderTreeSupportQt12isTargetItemERK15QWebHistoryItem @ 779 NONAME _ZN23DumpRenderTreeSupportQt17historyItemTargetERK15QWebHistoryItem @ 780 NONAME _ZN23DumpRenderTreeSupportQt20getChildHistoryItemsERK15QWebHistoryItem @ 781 NONAME - _ZN23DumpRenderTreeSupportQt23setMockGeolocationErrorEP8QWebPageiRK7QString @ 782 NONAME - _ZN23DumpRenderTreeSupportQt26setMockGeolocationPositionEP8QWebPageddd @ 783 NONAME + _ZN23DumpRenderTreeSupportQt23setMockGeolocationErrorEiRK7QString @ 782 NONAME ABSENT + _ZN23DumpRenderTreeSupportQt26setMockGeolocationPositionEddd @ 783 NONAME ABSENT _ZN23DumpRenderTreeSupportQt17clearScriptWorldsEv @ 784 NONAME _ZN23DumpRenderTreeSupportQt23setCustomPolicyDelegateEbb @ 785 NONAME _ZN15QWebScriptWorldC1ERKS_ @ 786 NONAME @@ -812,7 +812,7 @@ EXPORTS _ZN8QWebPage25requestPermissionFromUserEP9QWebFrameNS_16PermissionDomainE @ 811 NONAME ABSENT _ZN8QWebPage27cancelRequestsForPermissionEP9QWebFrameNS_16PermissionDomainE @ 812 NONAME ABSENT _ZNK16QGraphicsWebView10deviceSizeEv @ 813 NONAME ABSENT - _ZN23DumpRenderTreeSupportQt14viewportAsTextEP8QWebPageiRK5QSizeS4_ @ 814 NONAME + _ZN23DumpRenderTreeSupportQt14viewportAsTextEP8QWebPageRK5QSize @ 814 NONAME _ZN23DumpRenderTreeSupportQt32simulateDesktopNotificationClickERK7QString @ 815 NONAME _ZN8QWebPage23viewportChangeRequestedEv @ 816 NONAME _ZNK8QWebPage28viewportConfigurationForSizeERK5QSize @ 817 NONAME ABSENT @@ -835,4 +835,13 @@ EXPORTS _ZN8QWebPage20setFeaturePermissionEP9QWebFrameNS_7FeatureENS_16PermissionPolicyE @ 834 NONAME _ZN8QWebPage26featurePermissionRequestedEP9QWebFrameNS_7FeatureE @ 835 NONAME _ZN8QWebPage32featurePermissionRequestCanceledEP9QWebFrameNS_7FeatureE @ 836 NONAME - _Z33qtwebkit_setPluginCreatedCallbackPFvP9QWebFramePvS1_E @ 837 NONAME + _Z33qtwebkit_setPluginCreatedCallbackPFvP9QWebFramePvS1_E @ 837 NONAME + _ZN23DumpRenderTreeSupportQt23setMockGeolocationErrorEP8QWebPageiRK7QString @ 838 NONAME + _ZN23DumpRenderTreeSupportQt26setMockGeolocationPositionEP8QWebPageddd @ 839 NONAME + _ZN23DumpRenderTreeSupportQt14viewportAsTextEP8QWebPageiRK5QSizeS4_ @ 840 NONAME + _ZN23DumpRenderTreeSupportQt13nodesFromRectERK11QWebElementiijjjjb @ 841 NONAME + _ZN23DumpRenderTreeSupportQt9plainTextERK8QVariant @ 842 NONAME + _ZN23DumpRenderTreeSupportQt26mediaContentUrlByElementIdEP9QWebFrameRK7QString @ 843 NONAME + _ZNK8QWebPage12hasSelectionEv @ 844 NONAME + _ZNK8QWebPage12selectedHtmlEv @ 845 NONAME + _ZN11QWebElement6renderEP8QPainterRK5QRect @ 846 NONAME diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp index b567784..f2bdcee 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp +++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp @@ -649,7 +649,7 @@ private slots: void setContent_data(); void setContent(); void setCacheLoadControlAttribute(); - void setUrlWithPendingLoads(); + //void setUrlWithPendingLoads(); void setUrlWithFragment_data(); void setUrlWithFragment(); void setUrlToEmpty(); @@ -2004,10 +2004,9 @@ void tst_QWebFrame::overloadedSlots() QCOMPARE(m_myObject->qtFunctionInvoked(), 35); */ - // should pick myOverloadedSlot(QRegExp) + // Should pick myOverloadedSlot(QWebElement). m_myObject->resetQtFunctionInvoked(); evalJS("myObject.myOverloadedSlot(document.body)"); - QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=37319", Continue); QCOMPARE(m_myObject->qtFunctionInvoked(), 36); // should pick myOverloadedSlot(QObject*) @@ -2503,7 +2502,9 @@ void tst_QWebFrame::setHtmlWithResource() QCOMPARE(spy.count(), 1); QCOMPARE(frame->evaluateJavaScript("document.images.length").toInt(), 1); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=63235", Continue); QCOMPARE(frame->evaluateJavaScript("document.images[0].width").toInt(), 128); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=63235", Continue); QCOMPARE(frame->evaluateJavaScript("document.images[0].height").toInt(), 128); QString html2 = @@ -2522,6 +2523,7 @@ void tst_QWebFrame::setHtmlWithResource() QCOMPARE(spy.size(), 2); QWebElement p = frame->documentElement().findAll("p").at(0); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=63235", Continue); QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("red")); } @@ -2909,7 +2911,9 @@ void tst_QWebFrame::renderGeometry() frame->render(&painter1, QWebFrame::ContentsLayer); painter1.end(); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=63236", Continue); QCOMPARE(size.width(), picture.boundingRect().width() + frame->scrollBarGeometry(Qt::Vertical).width()); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=63236", Continue); QCOMPARE(size.height(), picture.boundingRect().height() + frame->scrollBarGeometry(Qt::Horizontal).height()); // render everything, should be the size of the iframe @@ -2917,7 +2921,9 @@ void tst_QWebFrame::renderGeometry() frame->render(&painter2, QWebFrame::AllLayers); painter2.end(); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=63236", Continue); QCOMPARE(size.width(), picture.boundingRect().width()); // width: 100px + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=63236", Continue); QCOMPARE(size.height(), picture.boundingRect().height()); // height: 100px } @@ -3353,12 +3359,16 @@ void tst_QWebFrame::webElementSlotOnly() QCOMPARE(evalJS("myWebElementSlotObject.tagName"), QString("BODY")); } +// [Qt] Fix tst_QWebFrame::setUrlWithPendingLoads() API test +// https://bugs.webkit.org/show_bug.cgi?id=63237 +/* void tst_QWebFrame::setUrlWithPendingLoads() { QWebPage page; page.mainFrame()->setHtml("<img src='dummy:'/>"); page.mainFrame()->setUrl(QUrl("about:blank")); } +*/ void tst_QWebFrame::setUrlWithFragment_data() { diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp index efe3a3f..359ef05 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp +++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp @@ -2793,6 +2793,7 @@ void tst_QWebPage::showModalDialog() TestModalPage page; page.mainFrame()->setHtml(QString("<html></html>")); QString res = page.mainFrame()->evaluateJavaScript("window.showModalDialog('javascript:window.returnValue=dialogArguments; window.close();', 'This is a test');").toString(); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=63244", Continue); QCOMPARE(res, QString("This is a test")); } @@ -2805,8 +2806,10 @@ void tst_QWebPage::testStopScheduledPageRefresh() "<meta http-equiv=\"refresh\"content=\"0;URL=qrc:///resources/index.html\">" "</head><body><h1>Page redirects immediately...</h1>" "</body></html>"); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=63245", Continue); QVERIFY(::waitForSignal(&page1, SIGNAL(loadFinished(bool)))); QTest::qWait(500); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=63245", Continue); QCOMPARE(page1.mainFrame()->url(), QUrl(QLatin1String("qrc:///resources/index.html"))); // With QWebPage::StopScheduledPageRefresh diff --git a/src/3rdparty/webkit/Source/WebKit2/ChangeLog b/src/3rdparty/webkit/Source/WebKit2/ChangeLog index b7eaf3c..b6e5afe 100644 --- a/src/3rdparty/webkit/Source/WebKit2/ChangeLog +++ b/src/3rdparty/webkit/Source/WebKit2/ChangeLog @@ -1,3 +1,31 @@ +2011-06-27 Huang Dongsung <luxtella@company100.net> + + Reviewed by Kenneth Rohde Christiansen. + + TiledBackingStore endlessly creates and destroys tiles due to an off-by-one + error. + https://bugs.webkit.org/show_bug.cgi?id=62422 + + REGRESSION(r77286): Remove bottomRight(). + REGRESSION(r77312): Change the logic to get the bottom right point. + REGRESSION(r77928): Cause off-by-one error in TiledBackingStore. + REGRESSION(r78783): Cause off-by-one error in TiledDrawingAreaProxy. + REGRESSION(r78785): Cause off-by-one error in TiledDrawingAreaProxy. + + If the viewport width equals the contents width, especially in the mobile + device, TiledBackingStore endlessly creates and deletes the rightmost + column and bottom row of tiles. + In the detail, dropTilesOutsideRect() in TiledBackingStore::createTiles() + deletes tiles and setTile(coordinate, Tile::create(this, coordinate)) creates + tiles infinitely. + Modified TiledDrawingAreaProxy also. + + * UIProcess/TiledDrawingAreaProxy.cpp: + (WebKit::innerBottomRight): + (WebKit::TiledDrawingAreaProxy::invalidate): + (WebKit::TiledDrawingAreaProxy::paint): + (WebKit::TiledDrawingAreaProxy::createTiles): + 2011-06-08 Yael Aharon <yael.aharon@nokia.com> Reviewed by Andreas Kling. diff --git a/src/3rdparty/webkit/Source/WebKit2/UIProcess/TiledDrawingAreaProxy.cpp b/src/3rdparty/webkit/Source/WebKit2/UIProcess/TiledDrawingAreaProxy.cpp index 985827a..c10939c 100644 --- a/src/3rdparty/webkit/Source/WebKit2/UIProcess/TiledDrawingAreaProxy.cpp +++ b/src/3rdparty/webkit/Source/WebKit2/UIProcess/TiledDrawingAreaProxy.cpp @@ -42,6 +42,12 @@ namespace WebKit { static const int defaultTileWidth = 1024; static const int defaultTileHeight = 1024; +static IntPoint innerBottomRight(const IntRect& rect) +{ + // Actually, the rect does not contain rect.maxX(). Refer to IntRect::contain. + return IntPoint(rect.maxX() - 1, rect.maxY() - 1); +} + PassOwnPtr<TiledDrawingAreaProxy> TiledDrawingAreaProxy::create(PlatformWebView* webView, WebPageProxy* webPageProxy) { return adoptPtr(new TiledDrawingAreaProxy(webView, webPageProxy)); @@ -236,7 +242,7 @@ void TiledDrawingAreaProxy::invalidate(const IntRect& contentsDirtyRect) IntRect dirtyRect(mapFromContents(contentsDirtyRect)); TiledDrawingAreaTile::Coordinate topLeft = tileCoordinateForPoint(dirtyRect.location()); - TiledDrawingAreaTile::Coordinate bottomRight = tileCoordinateForPoint(IntPoint(dirtyRect.maxX(), dirtyRect.maxY())); + TiledDrawingAreaTile::Coordinate bottomRight = tileCoordinateForPoint(innerBottomRight(dirtyRect)); IntRect coverRect = calculateCoverRect(m_previousVisibleRect); @@ -334,7 +340,7 @@ bool TiledDrawingAreaProxy::paint(const IntRect& rect, PlatformDrawingContext co IntRect dirtyRect = mapFromContents(rect); TiledDrawingAreaTile::Coordinate topLeft = tileCoordinateForPoint(dirtyRect.location()); - TiledDrawingAreaTile::Coordinate bottomRight = tileCoordinateForPoint(IntPoint(dirtyRect.maxX(), dirtyRect.maxY())); + TiledDrawingAreaTile::Coordinate bottomRight = tileCoordinateForPoint(innerBottomRight(dirtyRect)); for (unsigned yCoordinate = topLeft.y(); yCoordinate <= bottomRight.y(); ++yCoordinate) { for (unsigned xCoordinate = topLeft.x(); xCoordinate <= bottomRight.x(); ++xCoordinate) { @@ -434,7 +440,7 @@ void TiledDrawingAreaProxy::createTiles() unsigned requiredTileCount = 0; bool hasVisibleCheckers = false; TiledDrawingAreaTile::Coordinate topLeft = tileCoordinateForPoint(visibleRect.location()); - TiledDrawingAreaTile::Coordinate bottomRight = tileCoordinateForPoint(IntPoint(visibleRect.maxX(), visibleRect.maxY())); + TiledDrawingAreaTile::Coordinate bottomRight = tileCoordinateForPoint(innerBottomRight(visibleRect)); for (unsigned yCoordinate = topLeft.y(); yCoordinate <= bottomRight.y(); ++yCoordinate) { for (unsigned xCoordinate = topLeft.x(); xCoordinate <= bottomRight.x(); ++xCoordinate) { TiledDrawingAreaTile::Coordinate currentCoordinate(xCoordinate, yCoordinate); diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION index 667ad32..f9e62cc 100644 --- a/src/3rdparty/webkit/VERSION +++ b/src/3rdparty/webkit/VERSION @@ -4,4 +4,4 @@ This is a snapshot of the Qt port of WebKit from and has the sha1 checksum - 631751dee41f81af4daa7821f98b1ce8667c4d90 + d30a30ac4faadcb8b2e282e343c921f919fbca9b |