Use PassRef for constructing StyleRules.
<https://webkit.org/b/123072>

Let functions that return newly-constructed StyleRuleFoo objects
vend PassRef<StyleRuleFoo> instead of PassRefPtr.

Since StyleRuleBase::copy() has to return something, we can't rely
on ASSERT_NOT_REACHED() + return nullptr anymore, so I've replaced
those with CRASH(). No call sites actually handled null anyway.

Reviewed by Sam Weinig.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157698 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[sh4] Fix build (broken since r157690).
https://bugs.webkit.org/show_bug.cgi?id=123081

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-20
Reviewed by Andreas Kling.

* assembler/AssemblerBufferWithConstantPool.h:
* assembler/SH4Assembler.h:
(JSC::SH4Assembler::buffer):
(JSC::SH4Assembler::readCallTarget):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157699 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Removing "unused parameter" compiling warnings from WebKit2 and WebCore
https://bugs.webkit.org/show_bug.cgi?id=123075

Patch by Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> on 2013-10-20
Reviewed by Andreas Kling.

Source/WebCore:

No new tests needed.

* Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
(WebCore::RTCDTMFToneChangeEvent::create):
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(lineAtPositionForAtkBoundary):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry):

Source/WebKit2:

* NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::loadResourceSynchronously):
* UIProcess/API/C/WKContext.cpp:
(WKContextGetPluginSiteDataManager):
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetInspectorUsesWebKitUserInterface):
(WKPreferencesGetInspectorUsesWebKitUserInterface):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getPlugins):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetFullScreenClient):
(WKBundlePageWillEnterFullScreen):
(WKBundlePageDidEnterFullScreen):
(WKBundlePageWillExitFullScreen):
(WKBundlePageDidExitFullScreen):
* WebProcess/MediaCache/WebMediaCacheManager.cpp:
(WebKit::WebMediaCacheManager::clearCacheForHostname):
* WebProcess/OriginData/WebOriginDataManager.cpp:
(WebKit::WebOriginDataManager::getOrigins):
(WebKit::WebOriginDataManager::deleteEntriesForOrigin):
(WebKit::WebOriginDataManager::deleteAllEntries):
(WebKit::WebOriginDataManager::startObservingChanges):
(WebKit::WebOriginDataManager::stopObservingChanges):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::createPlugin):
(WebKit::WebFrameLoaderClient::recreatePlugin):
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::canPluginHandleResponse):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157700 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Cocoa] Loading progress API
https://bugs.webkit.org/show_bug.cgi?id=123069

Reviewed by Sam Weinig.

* UIProcess/API/mac/WKBrowsingContextController.h: Declared estimatedProgress property.
* UIProcess/API/mac/WKBrowsingContextController.mm:
(-[WKBrowsingContextController estimatedProgress]): Added.
(didStartProgress): Added. Calls new delegate method
-browsingContextControllerDidStartProgress:.
(didChangeProgress): Added. Calls new delegate method
-browsingContextController:estimatedProgressChangedTo:.
(didFinishProgress): Added. Calls new delegate method
-browsingContextControllerDidFinishProgress:.
(setUpPageLoaderClient): Hook up new client functions.
* UIProcess/API/mac/WKBrowsingContextLoadDelegate.h: Declared new delegate methods.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157701 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use PassRef for StyleSheetContents.
<https://webkit.org/b/123083>

Let functions that return newly-constructed StyleSheetContents
objects vend PassRef<StyleSheetContents> instead of PassRefPtr.

Updated functions that take StyleSheetContents in arguments
accordingly. And CSSStyleSheet now has a Ref internally. Woo!

Reviewed by Antti Koivisto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157702 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add abstract IDBBackingStoreInterface, use it to get IDBDatabaseBackendLevelDB closer to going cross-platform
https://bugs.webkit.org/show_bug.cgi?id=123074

Reviewed by Andreas Kling.

* Modules/indexeddb/IDBBackingStoreInterface.h: Added.
(WebCore::IDBBackingStoreInterface::~IDBBackingStoreInterface):
(WebCore::IDBBackingStoreInterface::Transaction::~Transaction):

* Modules/indexeddb/IDBTransactionBackendInterface.h:

* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseIntVersion):
(WebCore::IDBBackingStoreLevelDB::createObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteObjectStore):
(WebCore::IDBBackingStoreLevelDB::getRecord):
(WebCore::IDBBackingStoreLevelDB::putRecord):
(WebCore::IDBBackingStoreLevelDB::clearObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteRecord):
(WebCore::IDBBackingStoreLevelDB::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
(WebCore::IDBBackingStoreLevelDB::createIndex):
(WebCore::IDBBackingStoreLevelDB::deleteIndex):
(WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
(WebCore::IDBBackingStoreLevelDB::findKeyInIndex):
(WebCore::IDBBackingStoreLevelDB::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStoreLevelDB::keyExistsInIndex):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexCursor):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
(WebCore::IDBBackingStoreLevelDB::Transaction::reset):
(WebCore::IDBBackingStoreLevelDB::Transaction::levelDBTransactionFrom):

* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
(WebCore::IDBCursorBackendLevelDB::deleteFunction):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:

* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::verifyIndexKeys):
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::writeIndexKeys):
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::addingKeyAllowed):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:

* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
(WebCore::IDBTransactionBackendLevelDB::backingStoreTransaction):

* WebCore.xcodeproj/project.pbxproj:
* GNUmakefile.list.am:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157703 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Avoid unnecessary vector copy in AnimationController event dispatch.
<https://webkit.org/b/122994>

Use Vector's move constructor instead of making a copy of the pending
events queue and then clearing it.

Reviewed by Simon Fraser.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157704 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 5)
https://bugs.webkit.org/show_bug.cgi?id=122969

Reviewed by Antti Koivisto.

- Move m_lineBoxes to RenderBlockFlow.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::innerTextIfTruncated):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::willBeDestroyed):
(WebCore::RenderBlock::deleteLineBoxTree):
(WebCore::RenderBlock::isSelfCollapsingBlock):
(WebCore::RenderBlock::removeFromDelayedUpdateScrollInfoSet):
(WebCore::RenderBlock::paintContents):
(WebCore::blockDirectionOffset):
(WebCore::inlineDirectionOffset):
(WebCore::RenderBlock::inlineSelectionGaps):
(WebCore::RenderBlock::hitTestContents):
(WebCore::positionForPointRespectingEditingBoundaries):
(WebCore::RenderBlock::positionForPointWithInlineChildren):
(WebCore::RenderBlock::firstLineBoxBaseline):
(WebCore::RenderBlock::inlineBlockBaseline):
(WebCore::RenderBlock::addFocusRingRectsForInlineChildren):
(WebCore::RenderBlock::addFocusRingRects):
(WebCore::RenderBlock::showLineTreeAndMark):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::addOverflowFromInlineChildren):
(WebCore::RenderBlock::hasInlineBoxChildren):
(WebCore::RenderBlock::paintInlineChildren):
(WebCore::RenderBlock::hitTestInlineChildren):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::RenderBlockFlow):
(WebCore::RenderBlockFlow::willBeDestroyed):
(WebCore::RenderBlockFlow::deleteLineBoxTree):
(WebCore::RenderBlockFlow::hitTestInlineChildren):
(WebCore::RenderBlockFlow::adjustForBorderFit):
(WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded):
(WebCore::RenderBlockFlow::markLinesDirtyInBlockRange):
(WebCore::RenderBlockFlow::firstLineBoxBaseline):
(WebCore::RenderBlockFlow::inlineBlockBaseline):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::positionForBox):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
(WebCore::RenderBlockFlow::paintInlineChildren):
(WebCore::RenderBlockFlow::relayoutForPagination):
(WebCore::RenderBlockFlow::showLineTreeAndMark):
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::lineBoxes):
(WebCore::RenderBlockFlow::firstLineBox):
(WebCore::RenderBlockFlow::lastLineBox):
(WebCore::RenderBlockFlow::firstRootBox):
(WebCore::RenderBlockFlow::lastRootBox):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::selectionTopAdjustedForPrecedingBlock):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157705 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed EFL gardening. Update EFL test expectations.

* platform/efl/TestExpectations: Mark fast/workers/worker-call.html as failure.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157706 268f45cc-cd09-0410-ab3c-d52691b4dbfc
StructureStubInfo's usedRegisters set should be able to track all registers, not just the ones that our JIT's view as temporaries
https://bugs.webkit.org/show_bug.cgi?id=123076

Source/JavaScriptCore: 

Reviewed by Sam Weinig.
        
Start preparing for a world in which we are patching code generated by LLVM, which may have
very different register usage conventions than our JITs. This requires us being more explicit
about the registers we are using. For example, the repatching code shouldn't take for granted
that tagMaskRegister holds the TagMask or that the register is even in use.

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* assembler/MacroAssembler.h:
(JSC::MacroAssembler::numberOfRegisters):
(JSC::MacroAssembler::registerIndex):
(JSC::MacroAssembler::numberOfFPRegisters):
(JSC::MacroAssembler::fpRegisterIndex):
(JSC::MacroAssembler::totalNumberOfRegisters):
* bytecode/StructureStubInfo.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::usedRegisters):
* dfg/DFGSpeculativeJIT.h:
* ftl/FTLSaveRestore.cpp:
(JSC::FTL::bytesForGPRs):
(JSC::FTL::bytesForFPRs):
(JSC::FTL::offsetOfGPR):
(JSC::FTL::offsetOfFPR):
* jit/JITInlineCacheGenerator.cpp:
(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
* jit/JITInlineCacheGenerator.h:
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_put_by_id):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_put_by_id):
* jit/RegisterSet.cpp: Added.
(JSC::RegisterSet::specialRegisters):
* jit/RegisterSet.h: Added.
(JSC::RegisterSet::RegisterSet):
(JSC::RegisterSet::set):
(JSC::RegisterSet::clear):
(JSC::RegisterSet::get):
(JSC::RegisterSet::merge):
* jit/Repatch.cpp:
(JSC::generateProtoChainAccessStub):
(JSC::tryCacheGetByID):
(JSC::tryBuildGetByIDList):
(JSC::emitPutReplaceStub):
(JSC::tryRepatchIn):
(JSC::linkClosureCall):
* jit/TempRegisterSet.cpp: Added.
(JSC::TempRegisterSet::TempRegisterSet):
* jit/TempRegisterSet.h:

Source/WTF: 

Reviewed by Sam Weinig.
        
Teach BitVector how to efficiently merge (i.e. bitvector |=).

* wtf/BitVector.cpp:
(WTF::BitVector::mergeSlow):
* wtf/BitVector.h:
(WTF::BitVector::merge):
(WTF::BitVector::cleanseInlineBits):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157707 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, cleanup a FIXME comment.

* jit/Repatch.cpp:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157708 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed EFL gardening. Update EFL test expectations.

* platform/efl/TestExpectations: Skip authentication tests that are failing.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157709 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ASSERTION FAILED: !style->propertyIsImportant(propertyID) in WebCore::setTextDecorationProperty
https://bugs.webkit.org/show_bug.cgi?id=122097

Patch by Santosh Mahto <santosh.ma@samsung.com> on 2013-10-21
Reviewed by Ryosuke Niwa.

Source/WebCore:

When remove format command is called we pushdown the ancestor style
down to its children. Currently applying inline style to iframe
while pushing down style which causes iframe to be reinserted in tree and
triggres again subframe loading which repeats everytime and finally
crash happens. So we should avoid applying inline style to iframe
element as it doesnot reflect in its content while pushing down style
on it.

And ASSERT call has been removed from setTextDecoration property as
the scenario is perfectly valid case.

Test: editing/execCommand/remove-format-textdecoration-in-iframe.html

* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Return if
element is iframe.
* editing/EditingStyle.cpp:
(WebCore::StyleChange::setTextDecorationProperty): Remove ASSERT.

LayoutTests:

Added Test cases to verify that crash does not happen in scenario when
remove format command is executed on selection containing the iframe
element and when textdecoration style is defined as !important and
need to pushDown to iframe.

* editing/execCommand/remove-format-textdecoration-in-iframe-expected.txt: Added.
* editing/execCommand/remove-format-textdecoration-in-iframe.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157710 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] g-ir-scanner should use the configured C compiler
https://bugs.webkit.org/show_bug.cgi?id=123088

Reviewed by Carlos Garcia Campos.

Source/WebKit/gtk: 

* GNUmakefile.am: Pass the C compiler that was detected at configuration to the g-ir-scanner command
via the CC environment variable. This solves the issue of the scanner running the GCC compiler with
the Clang-specific CFLAGS.

Source/WebKit2: 

* GNUmakefile.am: Pass the C compiler that was detected at configuration to the g-ir-scanner command
via the CC environment variable. This solves the issue of the scanner running the GCC compiler with
the Clang-specific CFLAGS.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157711 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Jhbuild] Bump the required Jhbuild revision
https://bugs.webkit.org/show_bug.cgi?id=123089

Reviewed by Carlos Garcia Campos.

* jhbuild/jhbuild-wrapper: Latest versions of the gnome-common tools produce failures when configuring Jhbuild
due to the configure.ac script using both IT_PROG_INTLTOOL and AM_GNU_GETTEXT macros. This is already fixed
in the Jhbuild source so a more recent revision of it should be used.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157712 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove qt from generate-forwarding-headers.pl
https://bugs.webkit.org/show_bug.cgi?id=123090

Patch by Gergo Balogh <geryxyz@inf.u-szeged.hu> on 2013-10-21
Reviewed by Andreas Kling.

* Scripts/generate-forwarding-headers.pl:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157713 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove AllInOneFile.cpp
https://bugs.webkit.org/show_bug.cgi?id=123055

Patch by Nadav Rotem <nrotem@apple.com> on 2013-10-21
Reviewed by Csaba Osztrogonác.

* AllInOneFile.cpp: Removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157714 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove .qmake.conf files
https://bugs.webkit.org/show_bug.cgi?id=123091

Patch by Gergo Balogh <geryxyz@inf.u-szeged.hu> on 2013-10-21
Reviewed by Csaba Osztrogonác.

* .qmake.conf: Removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157715 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WinCairo] Build does not start.
https://bugs.webkit.org/show_bug.cgi?id=123059

Patch by peavo@outlook.com <peavo@outlook.com> on 2013-10-21
Reviewed by Csaba Osztrogonác.

The function isAppleWinWebKit() does no longer return true for WinCairo, need to add isWinCairo() checks instead.

* Scripts/build-webkit:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157716 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make TYPE_CASTS_BASE more flexible
https://bugs.webkit.org/show_bug.cgi?id=122951

Reviewed by Andreas Kling.

TYPE_CASTS_BASE is being used by node|element type casts. However, it is difficult
to be used by other type casts. For instance, CSSValue, Accessibility and so on.
This patch modifies TYPE_CASTS_BASE which can support other type casts.

Besides TYPE_CASTS_BASE body is moved from node.h to Assertions.h.

Source/WebCore:

No new tests, no behavior changes.

* dom/Document.h:
* dom/Node.h:

Source/WTF:

* wtf/Assertions.h:


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