Improve the output of editing/pasteboard/paste-noscript-xhtml.xhtml
https://bugs.webkit.org/show_bug.cgi?id=92307

Reviewed by Tony Chang.

Use dump-as-markup to improve the readability of output, and removed replaced the call to sayHello in iframe's src
content attribute by a call to alert("hello") so that reference error doesn't show up on the result, and moved
the resource from editing/resources to editing/pasteboard/resources as it's not used elsewhere.

* editing/pasteboard/paste-noscript-xhtml-expected.txt:
* editing/pasteboard/paste-noscript-xhtml.xhtml:
* editing/pasteboard/resources/paste-noscript-content.html: Copied from LayoutTests/editing/resources/htmlcontent.html.
* editing/resources/htmlcontent.html: Removed.
* platform/chromium-mac/editing/pasteboard/paste-noscript-xhtml-expected.txt: Removed.
* platform/chromium-win/editing/pasteboard/paste-noscript-xhtml-expected.txt: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123678 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Convert HTML parser to handle 8-bit resources without converting to UChar*
https://bugs.webkit.org/show_bug.cgi?id=90321

Reviewed by Geoffrey Garen.

Source/WebCore: 

No new tests, no new functionality therefore covered by existing tests.

Changed the parsing of HTML to handle 8-bit strings without converting the 
whole string to 16-bits.  Primary change was to use the appropriate 
character pointer type (LChar* or UChar*) depending on the source string.
This access is abstracted in SegmentedSubstring by getCurrentChar{8,16} and
incrementAndGetCurrentChar{8,16} methods.  In SegmentedString, the advance()
and advanceAndUpdateLineNumber() methods have been refactored into a
state machine managed pair of function pointers.  The possible functions
have not only the 8 and 16 bitness factored out, they also have the 
"exclude line numbers" logic factored out for advanceAndUpdateLineNumber().
This provides a net speed-up even with the 8/16 bit testing.
Other changes involve using String methods to access and compare with the
source data.

* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::append): Changed to use currentChar()
instead of SegmentedString '*' operator.
* html/parser/HTMLEntityParser.cpp: Changed to use currentChar() instead of
SegmentedString '*' operator.
* html/parser/HTMLParserIdioms.cpp:
(WebCore::stripLeadingAndTrailingHTMLSpaces): Added 8-bit fast path.
* html/parser/HTMLSourceTracker.cpp:
(WebCore::HTMLSourceTracker::sourceForToken): Changed to use currentChar() instead of
SegmentedString '*' operator.
* loader/cache/CachedScript.cpp:
(WebCore::CachedScript::script): Updated to use new String::dataSize() method.
* platform/text/SegmentedString.cpp:
(WebCore::SegmentedString::SegmentedString):
(WebCore::SegmentedString::operator=):
(WebCore::SegmentedString::clear):
(WebCore::SegmentedString::append):
(WebCore::SegmentedString::prepend):
(WebCore::SegmentedString::advanceSubstring):
(WebCore::SegmentedString::advance): Changed to be a wrapper that invokes current 
advance function.
(WebCore::SegmentedString::advance8): Fast path advance function for 8 bit data.
(WebCore::SegmentedString::advance16): Fast path advance function for 16 bit data.
(WebCore::SegmentedString::advanceAndUpdateLineNumber8IncludeLineNumbers): Fast
path advanceAndUpdateLineNumber for 8 bit data when we need to update the line number.
(WebCore::SegmentedString::advanceAndUpdateLineNumber16IncludeLineNumbers): Fast
path advanceAndUpdateLineNumber for 16 bit data when we need to update the line number.
(WebCore::SegmentedString::advanceSlowCase): Slow case advance function for both
8 and 16 bit advance.
(WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase): Slow case
advanceAndUpdateLineNumber function for both 8 and 16 bit data.
(WebCore::SegmentedString::advanceEmpty): Advance function when input has been exhausted.
* platform/text/SegmentedString.h:
(WebCore::SegmentedSubstring::SegmentedSubstring):
(WebCore::SegmentedSubstring::clear):
(SegmentedSubstring):
(WebCore::SegmentedSubstring::is8Bit): New getter.
(WebCore::SegmentedSubstring::appendTo):
(WebCore::SegmentedSubstring::getCurrentChar8): New getter for the 8 bit case.
(WebCore::SegmentedSubstring::getCurrentChar16): New getter for the 16 bit case.
(WebCore::SegmentedSubstring::incrementAndGetCurrentChar8): New wrapper functions
that pre-increments the 8 bit pointer and returns the next character.
(WebCore::SegmentedSubstring::incrementAndGetCurrentChar16): New wrapper functions
that pre-increments the 16 bit pointer and returns the next character.
(WebCore::SegmentedSubstring::currentSubString):
(WebCore::SegmentedSubstring::getCurrentChar):
(WebCore::SegmentedSubstring::incrementAndGetCurrentChar):
(WebCore::SegmentedString::SegmentedString):
(WebCore::SegmentedString::push):
(WebCore::SegmentedString::isEmpty):
(WebCore::SegmentedString::lookAhead):
(WebCore::SegmentedString::lookAheadIgnoringCase):
(WebCore::SegmentedString::advance):
(WebCore::SegmentedString::advanceAndUpdateLineNumber):
(WebCore::SegmentedString::advanceAndASSERT):
(WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
(WebCore::SegmentedString::advancePastNonNewline):
(WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
(WebCore::SegmentedString::currentChar):
(WebCore::SegmentedString::setSlowCase): Set advance function pointers to slow case
functions.
(WebCore::SegmentedString::decrementAndCheckLength): Decrement substring length and
change to slow case functions when only one character left.
(WebCore::SegmentedString::setAdvanceFunctionPointers): Select appropriate advance
functions based on current substring.
(WebCore::SegmentedString::lookAheadInline): Changed to use String::startsWith().
(WebCore::SegmentedString::lookAheadSlowCase):
* xml/parser/CharacterReferenceParserInlineMethods.h:
(WebCore::consumeCharacterReference): Changed to use currentChar() instead of
SegmentedString '*' operator.
* xml/parser/MarkupTokenizerBase.h:
(WebCore::MarkupTokenizerBase::InputStreamPreprocessor::nextInputCharacter):
(WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek): Changed to use
currentChar() instead of SegmentedString '*' operator.
(WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):

Source/WTF: 

* wtf/text/WTFString.h:
(WTF::String::dataSize): New method to return the number of bytes 
the string requires.  This replaces a harcoded calculation based on
length and sizeof(UChar).


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123679 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed chromium change to disable failing WebViewTest.AutoResizeInBetweenSizes.
https://bugs.webkit.org/show_bug.cgi?id=92318

* tests/WebViewTest.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123680 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Fix infinite loop issue for chromium android layout test
https://bugs.webkit.org/show_bug.cgi?id=92197

Patch by Wei James <james.wei@intel.com> on 2012-07-25
Reviewed by Adam Barth.

The change brought in by r123530 will cause infinite loop when running
Chromium Android Layout Test.
Revert the change for this line only.

* Scripts/webkitpy/layout_tests/port/chromium_android.py:
(ChromiumAndroidPort._build_path):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123681 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove JSObject::m_inheritorID
https://bugs.webkit.org/show_bug.cgi?id=88378

Reviewed by Filip Pizlo.

This is rarely used, and not performance critical (the commonly accessed copy is cached on JSFunction),
and most objects don't need an inheritorID (this value is only used if the object is used as a prototype).
Instead use a private named value in the object's property storage.

* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::emitAllocateBasicJSObject): No need m_inheritorID to initialize!
* jit/JITInlineMethods.h:
(JSC::JIT::emitAllocateBasicJSObject): No need m_inheritorID to initialize!
* llint/LowLevelInterpreter.asm: No need m_inheritorID to initialize!
* runtime/JSGlobalData.h:
(JSGlobalData): Added private name 'm_inheritorIDKey'.
* runtime/JSGlobalThis.cpp:
(JSC::JSGlobalThis::setUnwrappedObject): resetInheritorID is now passed a JSGlobalData&.
* runtime/JSObject.cpp:
(JSC::JSObject::visitChildren): No m_inheritorID to be marked.
(JSC::JSFinalObject::visitChildren): No m_inheritorID to be marked.
(JSC::JSObject::createInheritorID): Store the newly created inheritorID in the property map. Make sure 
it's got the DontEnum attribute!!
* runtime/JSObject.h:
(JSObject):
(JSC::JSObject::resetInheritorID): Remove the inheritorID from property storage.
(JSC):
(JSC::JSObject::inheritorID): Read the inheritorID from property storage.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123682 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: Make db.version return an integer if appropriate
https://bugs.webkit.org/show_bug.cgi?id=92195

Reviewed by Tony Chang.

Make use of the existing IDBAny mechanism to return an integer if
integer versions have been used.

No new tests - no change in behavior expected.

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::version):
(WebCore):
* Modules/indexeddb/IDBDatabase.h:
(IDBDatabase):
* Modules/indexeddb/IDBDatabase.idl:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123683 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Hit testing in one column or in the gap between cloumns along the block axis can return a result from the wrong column
https://bugs.webkit.org/show_bug.cgi?id=92311

Reviewed by Anders Carlsson.

Source/WebCore: 

Tests: fast/multicol/hit-test-end-of-column.html
       fast/multicol/hit-test-gap-block-axis.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionForPointWithInlineChildren): To prevent hits after the last
line on a given column from returning the next line in the next column, added a check if
the hit occurred within the pagination strut of a line. Covered by the first test.
(WebCore::RenderBlock::adjustPointToColumnContents): Added clamp-to-column logic for the
block-axis case. This prevents hits near the bottom of the top half of the gap from bleeding
into the top of the next column. Covered by the second test.

LayoutTests: 

* fast/multicol/hit-test-end-of-column-expected.txt: Added.
* fast/multicol/hit-test-end-of-column.html: Added.
* fast/multicol/hit-test-gap-block-axis-expected.txt: Added.
* fast/multicol/hit-test-gap-block-axis.html: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123684 268f45cc-cd09-0410-ab3c-d52691b4dbfc