Editor::m_removedAnchor is unused
https://bugs.webkit.org/show_bug.cgi?id=120701

Reviewed by Ryosuke Niwa.

* editing/Editor.h: Removed m_removedAnchor. It was not only unused, but also broken,
as we didn't reset it when navigating.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155072 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fixing a typo in demo files and screenshot.

* blog-files/regions/pizza-is-amazing.png: Replaced.
* demos/regions/pizza-regions-manifesto-regionstyling.html:
* demos/regions/pizza-regions-manifesto.html:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155073 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove unnecessary RenderView.h inclusion from headers.
<https://webkit.org/b/120365>

Reviewed by Anders Carlsson.

RenderView.h was overzealously included by RenderText and RenderTextTrackCue,
making it unpleasant to edit on my laptop.

* rendering/RenderText.h:
* rendering/RenderTextTrackCue.h:

    Don't include RenderView.h here, do it in .cpp files.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155074 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Refining the StackIterator callback interface.
https://bugs.webkit.org/show_bug.cgi?id=120695.

Reviewed by Geoffrey Garen.

Source/JavaScriptCore: 

Introduce CallFrame::iterate() which instantiates a StackIterator and
invoke its iterate() method with the passed in functor. The only place
where the client code gets access to the StackIterator now is as an
argument to the client's functor.

* API/JSContextRef.cpp:
(JSContextCreateBacktrace):
* interpreter/CallFrame.cpp:
* interpreter/CallFrame.h:
(JSC::ExecState::iterate):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::dumpRegisters):
(JSC::Interpreter::getStackTrace):
(JSC::Interpreter::unwind):
* interpreter/StackIterator.cpp:
(JSC::StackIterator::StackIterator):
(DebugPrintFrameFunctor::DebugPrintFrameFunctor):
(DebugPrintFrameFunctor::operator()):
(debugPrintCallFrame):
(debugPrintStack):
* interpreter/StackIterator.h:
(JSC::StackIterator::iterate):
* jsc.cpp:
(functionJSCStack):
* profiler/ProfileGenerator.cpp:
(JSC::ProfileGenerator::addParentForConsoleStart):
* runtime/JSFunction.cpp:
(JSC::retrieveArguments):
(JSC::RetrieveCallerFunctionFunctor::operator()):
(JSC::retrieveCallerFunction):
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncProtoGetter):
(JSC::globalFuncProtoSetter):
* runtime/ObjectConstructor.cpp:
(JSC::objectConstructorGetPrototypeOf):

Source/WebCore: 

No new tests.

* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::SendFunctor::SendFunctor):
(WebCore::SendFunctor::line):
(WebCore::SendFunctor::url):
(WebCore::SendFunctor::operator()):
(WebCore::JSXMLHttpRequest::send):
* bindings/js/ScriptCallStackFactory.cpp:
(WebCore::createScriptCallStack):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155075 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed Build fix for Windows DebugSuffix configuration.

* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155076 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make ImageQualityController per-RenderView.
<https://webkit.org/b/120702>

Reviewed by Anders Carlsson.

Move ImageQualityController to its own files and add a RenderView::imageQualityController()
getter instead of using a global map for all render trees.

This avoids having to unregister every renderer (well, every RenderBoxModelObject) from the
global hash map during render tree teardown.

It also simplifies the live resize optimization a bit since it can now short-circuit if
the RenderView's FrameView is being resized. (Previously there could be any number of
RenderViews present in the map.)

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/ImageQualityController.cpp: Added.
* rendering/ImageQualityController.h: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155077 268f45cc-cd09-0410-ab3c-d52691b4dbfc
AX: when no other label on provided on form elements, WebKit should fall back to using @title
https://bugs.webkit.org/show_bug.cgi?id=112842

Patch by Samuel White <samuel_white@apple.com> on 2013-09-04
Reviewed by Chris Fleizach.

Source/WebCore:

Don't let input elements include empty labels in their accessibility title.

Test: platform/mac/accessibility/input-title.html

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::titleElementText):

LayoutTests:

Added test to ensure that input elements are computing their
accessibility title as expected.

* platform/mac/accessibility/input-title-expected.txt: Added.
* platform/mac/accessibility/input-title.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Renamed StackIterator to StackVisitor.
https://bugs.webkit.org/show_bug.cgi?id=120706.

Reviewed by Geoffrey Garen.

Source/JavaScriptCore: 

Also did some minor refactoring:
- Renamed StackIterator::iterate() to StackVisitor::visit().
- Make StackVisitor::visit() a static method.
- Move the instantiation of the StackVisitor instance into StackVisitor::visit()
  from CallFrame::iterate().
- Removed StackIterator::resetIterator() and inline its body into the
  StackVisitor constructor since this is the only remaining caller of it.

* API/JSContextRef.cpp:
(BacktraceFunctor::operator()):
* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* interpreter/CallFrame.h:
(JSC::ExecState::iterate):
* interpreter/Interpreter.cpp:
(JSC::DumpRegisterFunctor::operator()):
(JSC::unwindCallFrame):
(JSC::getStackFrameCodeType):
(JSC::GetStackTraceFunctor::operator()):
(JSC::UnwindFunctor::operator()):
* interpreter/Interpreter.h:
* interpreter/StackIterator.cpp: Removed.
* interpreter/StackIterator.h: Removed.
* interpreter/StackVisitor.cpp: Copied from Source/JavaScriptCore/interpreter/StackIterator.cpp.
(JSC::StackVisitor::StackVisitor):
(JSC::StackVisitor::gotoNextFrame):
(JSC::StackVisitor::readFrame):
(JSC::StackVisitor::readNonInlinedFrame):
(JSC::StackVisitor::readInlinedFrame):
(JSC::StackVisitor::Frame::codeType):
(JSC::StackVisitor::Frame::functionName):
(JSC::StackVisitor::Frame::sourceURL):
(JSC::StackVisitor::Frame::toString):
(JSC::StackVisitor::Frame::arguments):
(JSC::StackVisitor::Frame::computeLineAndColumn):
(JSC::StackVisitor::Frame::retrieveExpressionInfo):
(JSC::StackVisitor::Frame::setToEnd):
(JSC::StackVisitor::Frame::print):
(DebugPrintFrameFunctor::operator()):
* interpreter/StackVisitor.h: Copied from Source/JavaScriptCore/interpreter/StackIterator.h.
(JSC::StackVisitor::visit):
* jsc.cpp:
(FunctionJSCStackFunctor::operator()):
* profiler/ProfileGenerator.cpp:
(JSC::AddParentForConsoleStartFunctor::operator()):
* runtime/JSFunction.cpp:
(JSC::RetrieveArgumentsFunctor::operator()):
(JSC::RetrieveCallerFunctionFunctor::operator()):
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::GlobalFuncProtoGetterFunctor::operator()):
(JSC::GlobalFuncProtoSetterFunctor::operator()):
* runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructorGetPrototypeOfFunctor::operator()):

Source/WebCore: 

No new tests.

* ForwardingHeaders/interpreter/StackIterator.h: Removed.
* ForwardingHeaders/interpreter/StackVisitor.h: Copied from Source/WebCore/ForwardingHeaders/interpreter/StackIterator.h.
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::SendFunctor::operator()):
* bindings/js/ScriptCallStackFactory.cpp:
(WebCore::CreateScriptCallStackFunctor::operator()):
(WebCore::CreateScriptCallStackForConsoleFunctor::operator()):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155081 268f45cc-cd09-0410-ab3c-d52691b4dbfc
<https://webkit.org/b/120707> Make WebKit's localizable strings mechanism usable under ARC

WebKit's localizable strings mechanism is also used outside of WebKit so it needs to work
both with and without ARC.

Reviewed by Anders Carlsson.

* Misc/WebLocalizableStrings.h: Mark the bundle member as unretained. This matches how the
member is used within WebLocalizableStrings.mm.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155082 268f45cc-cd09-0410-ab3c-d52691b4dbfc
De-indent Vector.h.

Rubber-stamped by Andreas Kling.

I'm cleaning up Vector and making it work with move-only objects, and the namespace WTF
indentation is driving me crazy.

* wtf/Vector.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155083 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Windows build fix and WebCore project cleanup.

* WebCore.vcxproj/WebCore.vcxproj.filters:
* rendering/RenderingAllInOne.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155084 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][WK2] Move ShouldGoToBackForwardListItem to the list of passing API tests
https://bugs.webkit.org/show_bug.cgi?id=120646

Patch by Sergio Correia <sergio.correia@openbossa.org> on 2013-09-04
Reviewed by Gyuyoung Kim.

* TestWebKitAPI/PlatformEfl.cmake: Move ShouldGoToBackForwardListItem to the
list of passing tests, since it started to pass after r154045.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155085 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Cached Page and Frame don't need to be ref-counted.
<https://webkit.org/b/120710>

Reviewed by Anders Carlsson.

- CachedPage is owned by HistoryItem.
- CachedFrame is owned by CachedPage.

Remove the ref counting from these objects to make the code less confusing.

The only place that used this was in FrameLoader::commitProvisionalLoad() which
took a temporary ref on the CachedPage. Switched this to using a raw pointer.

* history/CachedFrame.h:
(WebCore::CachedFrame::create):
* history/CachedPage.cpp:
(WebCore::CachedPage::create):
* history/CachedPage.h:
* history/HistoryItem.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
* loader/FrameLoader.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155086 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix AutodrainedPool.h to compile without errors under ARC.

Rubber-stamped by Anders Carlsson.

* wtf/AutodrainedPool.h: Some versions of Clang complain about any use of NSAutoreleasePool under ARC.
Change the type of the member variable to id to work around this. Since the implementation file is compiled
under manual reference counting, everything will work fine.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155087 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Introduce a version of SunSpider that runs for a really long time (about 1 sec on my machine)

Rubber stamped by Mark Hahnenberg.
        
This isn't meant for serious VM-to-VM performance comparisons, but it is useful
to see how these benchmarks behave when they're completely warmed up.

* LongSpider: Added.
* LongSpider/3d-cube.js: Added.
(DrawLine):
(CalcCross):
(CalcNormal):
(CreateP):
(MMulti):
(VMulti):
(VMulti2):
(MAdd):
(Translate):
(RotateX):
(RotateY):
(RotateZ):
(DrawQube):
(Loop):
(Init):
* LongSpider/3d-morph.js: Added.
(loops.3500.nx.120.nz.120.morph):
* LongSpider/3d-raytrace.js: Added.
(createVector):
(sqrLengthVector):
(lengthVector):
(addVector):
(subVector):
(scaleVector):
(normaliseVector):
(add):
(sub):
(scalev):
(dot):
(scale):
(cross):
(normalise):
(transformMatrix):
(invertMatrix):
(Triangle):
(Triangle.prototype.intersect):
(Scene):
(Scene.prototype.intersect):
(Scene.prototype.blocked):
(Camera):
(Camera.prototype.generateRayPair):
(renderRows):
(Camera.prototype.render):
(raytraceScene.floorShader):
(raytraceScene):
(arrayToCanvasCommands):
* LongSpider/access-binary-trees.js: Added.
(TreeNode):
(TreeNode.prototype.itemCheck):
(bottomUpTree):
* LongSpider/access-fannkuch.js: Added.
(fannkuch):
* LongSpider/access-nbody.js: Added.
(Body):
(Body.prototype.offsetMomentum):
(Jupiter):
(Saturn):
(Uranus):
(Neptune):
(Sun):
(NBodySystem):
(NBodySystem.prototype.advance):
(NBodySystem.prototype.energy):
* LongSpider/access-nsieve.js: Added.
(pad):
(nsieve):
(sieve):
* LongSpider/bitops-3bit-bits-in-byte.js: Added.
(fast3bitlookup):
(TimeFunc):
* LongSpider/bitops-bits-in-byte.js: Added.
(bitsinbyte):
(TimeFunc):
* LongSpider/bitops-nsieve-bits.js: Added.
(pad):
(primes):
(sieve):
* LongSpider/controlflow-recursive.js: Added.
(ack):
(fib):
(tak):
* LongSpider/crypto-aes.js: Added.
(Cipher):
(SubBytes):
(ShiftRows):
(MixColumns):
(AddRoundKey):
(KeyExpansion):
(SubWord):
(RotWord):
(AESEncryptCtr):
(AESDecryptCtr):
(escCtrlChars):
* LongSpider/crypto-md5.js: Added.
(hex_md5):
(b64_md5):
(str_md5):
(hex_hmac_md5):
(b64_hmac_md5):
(str_hmac_md5):
(md5_vm_test):
(core_md5):
(md5_cmn):
(md5_ff):
(md5_gg):
(md5_hh):
(md5_ii):
(core_hmac_md5):
(safe_add):
(bit_rol):
(str2binl):
(binl2str):
(binl2hex):
(binl2b64):
* LongSpider/crypto-sha1.js: Added.
(hex_sha1):
(b64_sha1):
(str_sha1):
(hex_hmac_sha1):
(b64_hmac_sha1):
(str_hmac_sha1):
(sha1_vm_test):
(core_sha1):
(sha1_ft):
(sha1_kt):
(core_hmac_sha1):
(safe_add):
(rol):
(str2binb):
(binb2str):
(binb2hex):
(binb2b64):
* LongSpider/date-format-tofte.js: Added.
(arrayExists):
(.a):
(.A):
(.B):
(.d):
(.D):
(.F):
(.g):
(.G):
(.h):
(.H):
(.i):
(.j):
(.l):
(.L):
(.m):
(.M):
(.n):
(.O):
(.r):
(.S):
(.s):
(.t):
(.U):
(.W):
(.w):
(.Y):
(.y):
(.z):
(Date.prototype.formatDate):
* LongSpider/date-format-xparb.js: Added.
(Date.prototype.dateFormat):
(Date.createNewFormat):
(Date.getFormatCode):
(Date.parseDate):
(Date.createParser):
(Date.formatCodeToRegex):
(Date.prototype.getTimezone):
(Date.prototype.getGMTOffset):
(Date.prototype.getDayOfYear):
(Date.prototype.getWeekOfYear):
(Date.prototype.isLeapYear):
(Date.prototype.getFirstDayOfMonth):
(Date.prototype.getLastDayOfMonth):
(Date.prototype.getDaysInMonth):
(Date.prototype.getSuffix):
(String.escape):
* LongSpider/math-cordic.js: Added.
(FIXED):
(FLOAT):
(DEG2RAD):
(cordicsincos):
(cordic):
* LongSpider/math-partial-sums.js: Added.
(partial):
* LongSpider/math-spectral-norm.js: Added.
(A):
(Au):
(Atu):
(AtAu):
(spectralnorm):
* LongSpider/string-base64.js: Added.
(toBase64):
(base64ToString):
* LongSpider/string-fasta.js: Added.
(rand):
(makeCumulative):
(fastaRepeat):
(fastaRandom):
* LongSpider/string-tagcloud.js: Added.
(.Array.prototype.toJSONString):
(.Boolean.prototype.toJSONString):
(.Date.prototype.toJSONString):
(.Number.prototype.toJSONString):
(.Object.prototype.toJSONString):
(.):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155088 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Set "render tree being torn down" flag a bit earlier.
<https://webkit.org/b/120717>

Reviewed by Anders Carlsson.

Set the flag at the start of Document::detach() so everyone can get a chance
to avoid unnecessary work, not just renderers.

* dom/Document.cpp:
(WebCore::Document::detach):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155089 268f45cc-cd09-0410-ab3c-d52691b4dbfc
run-fast-jsc should work with new-school fast/js tests that loop until the DFG tiers up
https://bugs.webkit.org/show_bug.cgi?id=120697

Reviewed by Mark Hahnenberg.

Source/JavaScriptCore: 

* API/JSCTestRunnerUtils.cpp:
(JSC::numberOfDFGCompiles):
(JSC::setNeverInline):
* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* jsc.cpp:
(GlobalObject::finishCreation):
(functionNeverInlineFunction):
(functionNumberOfDFGCompiles):
* runtime/TestRunnerUtils.cpp: Added.
(JSC::getExecutable):
(JSC::numberOfDFGCompiles):
(JSC::setNeverInline):
* runtime/TestRunnerUtils.h: Added.

LayoutTests: 

* fast/js/resources/standalone-pre.js:
(testPassed):
(testFailed):
(dfgCompiled):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155090 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CachedFrame construction should begin with a Frame&.
<https://webkit.org/b/120719>

Reviewed by Anders Carlsson.

We can't create a CachedFrame from a null Frame anyway.

* bindings/js/ScriptCachedFrameData.cpp:
(WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
(WebCore::ScriptCachedFrameData::restore):
* bindings/js/ScriptCachedFrameData.h:
* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::CachedFrameBase):
(WebCore::CachedFrameBase::restore):
(WebCore::CachedFrame::CachedFrame):
* history/CachedFrame.h:
(WebCore::CachedFrame::create):
* history/CachedPage.cpp:
(WebCore::CachedPage::CachedPage):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155091 268f45cc-cd09-0410-ab3c-d52691b4dbfc
run-javascriptcore-tests should run-fast-jsc as well
https://bugs.webkit.org/show_bug.cgi?id=120722

Tools: 

Reviewed by Geoffrey Garen.
        
Makes run-javascriptcore-tests run the fast/js tests via run-fast-jsc tool.
Integrates run-fast-jsc's error reporting into run-javascriptcore-tests.

* Scripts/run-javascriptcore-tests:
(printThingsFound):

LayoutTests: 

Reviewed by Geoffrey Garen.
        
Make all run-fast-jsc tests pass:
        
- We should always define successfullyParsed and we shouldn't falsify it
  when a test fails. This was already true in js-test-pre.
        
- Object-defineProperty() depends on DOM-like global object behavior.
  Remove the test from the run-fast-jsc list.

* fast/js/jsc-test-list:
* fast/js/resources/standalone-pre.js:
(testFailed):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155092 268f45cc-cd09-0410-ab3c-d52691b4dbfc
setAttributeNode() does not set the new value to an existing attribute if specified attribute is in a different case.
https://bugs.webkit.org/show_bug.cgi?id=120293

Reviewed by Darin Adler.

Source/WebCore:

setAttributeNode() performs a case-insensitive search for an existing
attribute. If an existing attribute is found, it retrieves the index of
such an attribute. For setting the attribute's new value, we call upon
setAttributeInternal() to which both the index as well as the name of
the attribute is passed.
The name passed to this method is the same as the one passed to the
setAttributeNode() API from the webpage and thus can be in any case.

However, setAttributeInternal() uses this name to get the corresponding
existing attribute node. Since this retrieval is not case-insensitive,
the existing node is not returned and thus the new value is not set on
the existing node.
We should instead use the passed index and use that to retrieve the
existing node.

Note that obtaining the attribute's value using getAttributeNode() would
still return the correct value, i.e. the new one.

Also, this change shall make our behavior similar to that of FF and IE.

Test: fast/dom/Element/setAttributeNode-for-existing-attribute.html

* dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
If the passed index is not equal to attributeNotFound, we use that index
to retrieve the existing attribute.

LayoutTests:

* fast/dom/Element/setAttributeNode-for-existing-attribute-expected.txt: Added.
* fast/dom/Element/setAttributeNode-for-existing-attribute.html: Added.
Layout testcase for verifying that the new attribute value is set properly
if an existing attribute with the same name exists.


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