[EFL][WK2] Encapsulate ref counting for Ewk objects in a parent class
https://bugs.webkit.org/show_bug.cgi?id=99174

Patch by Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> on 2012-10-15
Reviewed by Kenneth Rohde Christiansen.

Ewk objects can be inherited from RefCounted class, so that ref counting is encapsulated and RefPtr can be used.
Applied the new approach for Ewk_Navigation_Data and Ewk_Url_Request objects as an example.
The requirement of adoption can be satisfied as long as we keep dealing with smart pointers only. 
In case external client provides an already referenced object as a raw pointer, relaxAdoptionRequirement() can be set
explicitly in this specific place.

* UIProcess/API/efl/ewk_context_history_client.cpp:
(didNavigateWithNavigationData):
* UIProcess/API/efl/ewk_download_job.cpp:
(_Ewk_Download_Job):
(_Ewk_Download_Job::_Ewk_Download_Job):
(_Ewk_Download_Job::~_Ewk_Download_Job):
(ewk_download_job_request_get):
* UIProcess/API/efl/ewk_navigation_data.cpp:
(ewk_navigation_data_ref):
(ewk_navigation_data_unref):
(ewk_navigation_data_original_request_get):
* UIProcess/API/efl/ewk_navigation_data_private.h:
(_Ewk_Navigation_Data):
(_Ewk_Navigation_Data::_Ewk_Navigation_Data):
* UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
(_Ewk_Navigation_Policy_Decision):
(_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision):
(_Ewk_Navigation_Policy_Decision::~_Ewk_Navigation_Policy_Decision):
(ewk_navigation_policy_request_get):
(ewk_navigation_policy_decision_new):
* UIProcess/API/efl/ewk_url_request.cpp:
(ewk_url_request_ref):
(ewk_url_request_unref):
* UIProcess/API/efl/ewk_url_request_private.h:
(_Ewk_Url_Request):
(_Ewk_Url_Request::_Ewk_Url_Request):
* UIProcess/API/efl/ewk_view_resource_load_client.cpp:
(didInitiateLoadForResource):
(didSendRequestForResource):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131298 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: convert manual size calculation of different WebKit things into MemoryInstrumentation.
https://bugs.webkit.org/show_bug.cgi?id=99309

Reviewed by Yury Semikhatsky.

JSHeap, DOMStorage and HeapProfiler data were counted manually.
Now we count the sizes more generic way.

Source/WebCore:

* dom/WebCoreMemoryInstrumentation.cpp:
* dom/WebCoreMemoryInstrumentation.h:
(WebCoreMemoryTypes): new string identifiers were added for Inspector's data.
* inspector/InspectorBaseAgent.cpp:
(WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface): common data members were moved from template to base class.
(WebCore::InspectorBaseAgentInterface::reportMemoryUsage): NMI instrumentation was added to the base template.
* inspector/InspectorBaseAgent.h:
(InspectorBaseAgentInterface): ditto
(WebCore::InspectorBaseAgent::InspectorBaseAgent): ditto
* inspector/InspectorController.cpp:
(WebCore::InspectorController::reportMemoryUsage): NMI instrumentation was added to the class.
* inspector/InspectorController.h:
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::reportMemoryUsage): NMI instrumentation was added to the class.
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDOMStorageResource.cpp:
(WebCore::InspectorDOMStorageResource::reportMemoryUsage): NMI instrumentation was added to the class.
* inspector/InspectorDOMStorageResource.h:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::reportJSHeapInfo): these methods now use MemoryInstrumentation for reporting the size of underlying data.
(WebCore::reportRenderTreeInfo):
(WebCore::collectDomTreeInfo):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
(WebCore::InspectorMemoryAgent::reportMemoryUsage): NMI instrumentation was added to the class.
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::reportMemoryUsage):
* inspector/InspectorProfilerAgent.h:
(InspectorProfilerAgent): NMI instrumentation was added to the class.
* inspector/MemoryInstrumentationImpl.cpp: allocatedObjects map was converted from InspectorMemoryAgent::getProcessMemoryDistribution local variable to member variable.
(WebCore::MemoryInstrumentationClientImpl::checkCountedObject):
(WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage): NMI instrumentation was added to the class.
(WebCore::MemoryInstrumentationImpl::reportMemoryUsage): NMI instrumentation was added to the class.
* inspector/MemoryInstrumentationImpl.h:
(WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
(WebCore::MemoryInstrumentationClientImpl::allocatedObjects):
(WebCore::MemoryInstrumentationClientImpl::checkInstrumentedObjects):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.MemoryBlockViewProperties._initialize):
(WebInspector.NativeMemoryBarChart.prototype._updateView):
* page/Page.cpp:
(WebCore::Page::reportMemoryUsage): NMI instrumentation was added to the class.
* page/Page.h:

Source/WTF:

* wtf/MemoryInstrumentation.h: calculateContainerSize were removed.
* wtf/MemoryInstrumentationSequence.h: empty instrumentations were added for 'const char*' and 'const void*' sequences.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131299 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Separate Qt WebKit into Qt WebKit and Qt WebKit Widgets
https://bugs.webkit.org/show_bug.cgi?id=88162

Reviewed by Kenneth Rohde Christiansen.

Rename the QtWebKit module to QtWebKitWidgets.

.:

* Source/api.pri:
* Source/sync.profile:

Source/WebKit/qt:

* declarative/experimental/experimental.pri:
* declarative/public.pri:
* docs/webkitsnippets/simple/simple.pro:
* docs/webkitsnippets/webpage/webpage.pro:
* tests/tests.pri:

Source/WebKit2:

* PluginProcess.pro:
* UIProcess/API/qt/tests/inspectorserver/inspectorserver.pro:
* UIProcess/API/qt/tests/publicapi/publicapi.pro:
* UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro:
* UIProcess/API/qt/tests/qmltests/WebView.pro:
* UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro:
* UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro:
* UIProcess/API/qt/tests/tests.pri:
* WebProcess.pro:

Tools:

* DumpRenderTree/qt/DumpRenderTree.pro:
* MiniBrowser/qt/MiniBrowser.pro:
* MiniBrowser/qt/raw/Target.pri:
* QtTestBrowser/QtTestBrowser.pro:
* Scripts/webkitpy/layout_tests/port/qt.py:
(QtPort._path_to_webcore_library):
* WebKitTestRunner/InjectedBundle/Target.pri:
* WebKitTestRunner/Target.pri:
* qmake/mkspecs/features/default_post.prf:
* qmake/mkspecs/features/webkit_modules.prf:
* qmake/mkspecs/features/win32/default_post.prf:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131300 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION(130613): Reintroduces crashes when using soup's timeout functionality
https://bugs.webkit.org/show_bug.cgi?id=99311

Reviewed by Gustavo Noronha Silva.

Removing the cleanupSoupRequestOperation call, since the cancel() call will eventually trigger the
cleanup already setting the right flag. Cleaning the handle already here will result in crashes when
using the soup timeout functionality.
The explicit cleanup call reintroduced in r130613, after it had been previously removed in r130348.

No new tests, tests that catch this will be part of bug 74802 for XHR timeout support.

* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::requestTimeoutCallback):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131301 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Scripts for dynamically added script elements are not shown in sources panel.
https://bugs.webkit.org/show_bug.cgi?id=99324

Reviewed by Pavel Feldman.

Source/WebCore:

NetworkUISourceCodeProvider now adds uiSourceCodes for dynamic anonymous scripts
and dynamic scripts loaded before inspector was opened.

Tests: http/tests/inspector-enabled/dynamic-scripts.html
       inspector/debugger/dynamic-scripts.html

* inspector/front-end/NetworkLog.js:
(WebInspector.NetworkLog.prototype.requestForURL):
* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider):
(WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
(WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):

LayoutTests:

* http/tests/inspector-enabled/dynamic-scripts-expected.txt: Added.
* http/tests/inspector-enabled/dynamic-scripts.html: Added.
* http/tests/inspector-enabled/resources/dynamic-script.js: Added.
(fooDynamicScript):
* inspector/debugger/dynamic-scripts-expected.txt: Added.
* inspector/debugger/dynamic-scripts.html: Added.
* inspector/debugger/resources/dynamic-script.js: Added.
(fooDynamicScript):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131302 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed GTK gardening.

* platform/gtk/TestExpectations: Silencing a style-checker warning.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131303 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Layout Test plugins/update-widgets-crash.html is failing
https://bugs.webkit.org/show_bug.cgi?id=99333

Unreviewed gardening.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131304 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Clean up BackingStoreClient (part I)
https://bugs.webkit.org/show_bug.cgi?id=99327

Reviewed by Yong Li.
Patch by Antonio Gomes <agomes@rim.com>

Now that we won't use the BackingStoreClient code path to scroll inner frames at all
(instead we use AC layers!), we can remove all "!isMainFrame" code paths.

No behavior change, since the code path being removed was not in use.

* WebKitSupport/BackingStoreClient.cpp:
(BlackBerry::WebKit::BackingStoreClient::absoluteRect):
(BlackBerry::WebKit::BackingStoreClient::transformedActualVisibleSize):
(BlackBerry::WebKit::BackingStoreClient::viewportSize):
(BlackBerry::WebKit::BackingStoreClient::transformedViewportSize):
(BlackBerry::WebKit::BackingStoreClient::visibleContentsRect):
(BlackBerry::WebKit::BackingStoreClient::transformedVisibleContentsRect):
(BlackBerry::WebKit::BackingStoreClient::checkOriginOfCurrentScrollOperation):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131305 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt][WTR] Do a forced repaint before generating pixel results
https://bugs.webkit.org/show_bug.cgi?id=98654

Reviewed by Jocelyn Turcotte.

Source/WebKit2:

Added API to convert a QImage to a WKImage so we can
pass it to cross-platform code.

* Shared/API/c/qt/WKImageQt.cpp:
(WKImageCreateFromQImage):
* Shared/API/c/qt/WKImageQt.h:

Tools:

Do a forced repaint before grabbing the pixel snapshot. This extra
synchronisation is necessary with the CoordinatedGraphics rendering
backend because it has a fully asynchronous nature. This patch make
us using the window snapshot for pixel results which is necessary to
capture animations and other dynamic content. The actual grabbing of
the window has not been implemented in this patch. It will come in
a follow-up.

* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::invoke):
(WTR::TestInvocation::dump): Store results in member variables.
Don't close output channels yet.
(WTR::TestInvocation::dumpResults): Added. This is where we dump
the results if no error happened.
(WTR):
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
* WebKitTestRunner/TestInvocation.h:
(TestInvocation):
* WebKitTestRunner/qt/PlatformWebViewQt.cpp:
(WTR::PlatformWebView::windowSnapshotImage):
* WebKitTestRunner/qt/TestInvocationQt.cpp:
(WTR::TestInvocation::forceRepaintDoneCallback):
(WTR):
(WTR::TestInvocation::dumpPixelsAndCompareWithExpected):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131306 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Implement pixel snapshot generation in WTR
https://bugs.webkit.org/show_bug.cgi?id=95992

Reviewed by Jocelyn Turcotte.

Switch the Qt implementation of the PlatformWebView to use
QQuickWindow::grabWindow to generate the pixel results. This way
we will go through the scenegraph and test the actual rendering backend.
We use QQuickWindowPrivate::setRenderWithoutShowing to avoid the need of
showing the window.

* WebKitTestRunner/Target.pri: Had to added a bunch
of modules to be able to use QQuickWindowPrivate.
* WebKitTestRunner/qt/PlatformWebViewQt.cpp:
(WTR::WrapperWindow::handleStatusChanged):
(WTR::PlatformWebView::windowSnapshotImage):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131307 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        [WK2] Add SharedWorkerProcess
        https://bugs.webkit.org/show_bug.cgi?id=99218

        Reviewed by Sam Weinig.

        Not yet functional, just some boilerplate code.

        * Configurations/SharedWorkerProcess.xcconfig: Added.

        * DerivedSources.make: Generate message dispatch for SharedWorkerProcess and
        SharedWorkerProcessProxy.

        * Platform/CoreIPC/MessageID.h: Added shared worker messages classes.

        * Scripts/webkit2/messages.py: (struct_or_class):
        SharedWorkerProcessCreationParameters is a struct.

        * Shared/SharedWorkerProcessCreationParameters.cpp: Added.
        * SharedWorkerProcess/Info.plist: Added.
        * SharedWorkerProcess/SharedWorkerProcess.cpp: Added.
        * SharedWorkerProcess/SharedWorkerProcess.h: Added.
        * SharedWorkerProcess/SharedWorkerProcess.messages.in: Added.
        * SharedWorkerProcess/SharedWorkerProcessMain.h: Added.
        * SharedWorkerProcess/mac/SharedWorkerProcessMac.mm: Added.
        * SharedWorkerProcess/mac/SharedWorkerProcessMainMac.mm: Added.
        * SharedWorkerProcess/mac/com.apple.WebKit.SharedWorkerProcess.sb: Added.
        * UIProcess/SharedWorkers/SharedWorkerProcessManager.cpp: Added.
        * UIProcess/SharedWorkers/SharedWorkerProcessManager.h: Added.
        * UIProcess/SharedWorkers/SharedWorkerProcessProxy.cpp: Added.
        * UIProcess/SharedWorkers/SharedWorkerProcessProxy.h: Added.
        * UIProcess/SharedWorkers/SharedWorkerProcessProxy.messages.in: Added.
        * WebKit2.xcodeproj/project.pbxproj:
        Added SharedWorkerProcess boilerplate, modeled after PluginProcess.

        * UIProcess/WebProcessProxy.cpp:
        * UIProcess/WebProcessProxy.h:
        * UIProcess/WebProcessProxy.messages.in:
        Added getSharedWorkerProcessConnection() message.

        * WebProcess/WebKitMain.cpp: (WebKitMain):
        * UIProcess/Launcher/ProcessLauncher.cpp:
        (WebKit::ProcessLauncher::processTypeAsString):
        (WebKit::ProcessLauncher::getProcessTypeFromString):
        * UIProcess/Launcher/ProcessLauncher.h:
        * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::createProcess):
        Added branches for SharedWorkerProcess.

        * Platform/CoreIPC/HandleMessage.h: (CoreIPC::callMemberFunction): Added a version
        for delayed reply messages with two arguments.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131308 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed inspector tests fix.

* http/tests/inspector-enabled/dynamic-scripts-expected.txt:
* http/tests/inspector-enabled/dynamic-scripts.html:
* inspector/debugger/dynamic-scripts-expected.txt:
* inspector/debugger/dynamic-scripts.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131309 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Build fix for Mac debug build.

* TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131310 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Update RenderText to use String instead of UChar* for text
https://bugs.webkit.org/show_bug.cgi?id=96979

Reviewed by Dan Bernstein.

Source/WebCore: 

RenderText now uses a String for text.  It keeps a cached LCHar* or UChar* pointer to the
actual text data for performance.  Added a characterAt() indexed accessor to RenderText to avoid the
somewhat confusing construct for a RenderText* rt, e.g. (*re)[n] or rt->characters()[n].  This is
now written as rt->characterAt(n).
Enabled patch in the HTML parser to create 8 bit text data.  Modified TextRun to create 
text runs using 8 bit string data where possible.  Added several flavors of RenderBlock::constructTextRun
to create TextRuns from RenderText objects including with an offset.  Added an LChar flavor of constructTextRun()
as well.  Eliminated the TextRunFlags argument to all but the String flavor as all other flavors used the default
parameter.  
Encased the code that creates 8 bit TextRun's in #if USE(8BIT_TEXTRUN).  Enabled WTF_USE_8BIT_TEXTRUN
for PLATFORM(MAC).  Other platform can update this setting in Platform.h when their platform specific code is
updated to TextRun's with 8 bit data.
Added many 8/16 bit aware paths.  Cleanup up some int / unsigned confusion in RenderBlockLineLayout.cpp.

No function change therefore no new tests.

* html/parser/HTMLTokenizer.cpp:
(WebCore::vectorEqualsString):
(WebCore::HTMLTokenizer::nextToken):
* html/parser/HTMLTokenizer.h:
(HTMLTokenizer):
* html/track/WebVTTTokenizer.cpp:
(WebCore::vectorEqualsString):
(WebCore::WebVTTTokenizer::nextToken):
* html/track/WebVTTTokenizer.h:
(WebVTTTokenizer):
* platform/graphics/Font.h:
(WebCore::Font::glyphDataForCharacter):
* platform/graphics/FontFastPath.cpp:
(WebCore):
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::subRun):
(TextRun):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::TextLayout::isNeeded):
(WebCore::TextLayout::constructTextRun):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesInInlineDirection):
* rendering/InlineIterator.h:
(WebCore::InlineIterator::atTextParagraphSeparator):
(WebCore::InlineIterator::current):
(WebCore::InlineIterator::previousInSameNode):
* rendering/InlineTextBox.cpp:
(WebCore::adjustCharactersAndLengthForHyphen):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::constructTextRun):
* rendering/InlineTextBox.h:
(InlineTextBox):
* rendering/RenderBlock.cpp:
(WebCore::constructTextRunInternal):
(WebCore::RenderBlock::constructTextRun):
* rendering/RenderBlock.h:
(RenderBlock):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::endsWithASCIISpaces):
(WebCore::reachedEndOfTextRenderer):
(WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
(WebCore::shouldSkipWhitespaceAfterStartObject):
(WebCore::textWidth):
(WebCore::tryHyphenating):
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
* rendering/RenderCombineText.cpp:
(WebCore::RenderCombineText::getStringToRender):
(WebCore::RenderCombineText::combineText):
* rendering/RenderCombineText.h:
(RenderCombineText):
* rendering/RenderText.cpp:
(SameSizeAsRenderText):
(WebCore::RenderText::RenderText):
(WebCore::RenderText::widthFromCache):
(WebCore::RenderText::computePreferredLogicalWidths):
(WebCore::RenderText::setTextInternal):
(WebCore::RenderText::width):
* rendering/RenderText.h:
(WebCore::RenderText::is8Bit):
(WebCore::RenderText::characters8):
(WebCore::RenderText::characters16):
(WebCore::RenderText::characterAt):
(WebCore::RenderText::operator[]):
(RenderText):
* xml/parser/MarkupTokenBase.h:
(WebCore::MarkupTokenBase::appendToCharacter):
(MarkupTokenBase):
(WebCore::MarkupTokenBase::isAll8BitData):

Source/WTF: 

Added WTF_USE_8BIT_TEXTRUN to encase code that creates 8 bit TextRun's.  Enabled WTF_USE_8BIT_TEXTRUN
for PLATFORM(MAC).  Other platform can update this setting in Platform.h when their platform specific use of
TextRun handle 8 bit data.  Added a new Vector::appendVector to allow appending the contents of a vector
containing one type to the end of vector containing another.  This is used to append a Vector<LChar> to
the end of a Vector<UChar>.

* wtf/Platform.h:
* wtf/Vector.h:
(Vector):
(WTF::Vector::appendVector):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131311 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][EWebLauncher] Add encoding detector option.
https://bugs.webkit.org/show_bug.cgi?id=98726

Patch by Kangil Han <kangil.han@samsung.com> on 2012-10-15
Reviewed by Gyuyoung Kim.

Added an option to test WebCore's encoding detector functionality on EWebLauncher.
With this patch, EWebLauncher would display text correctly even if web page wouldn't specify charset information.

* EWebLauncher/main.c:
(_User_Arguments):
(windowCreate):
(parseUserArguments):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131312 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make CSS variable names case-insensitive.
https://bugs.webkit.org/show_bug.cgi?id=98712

Reviewed by Tony Chang.

Source/WebCore:

This patch modifies the parser to normalize all variable names to lower case,
making variable definitions consistent with other property names, which are also case insensitive.
Spec: http://dev.w3.org/csswg/css-variables/#defining-variables

Test: fast/css/variables/case-insensitive.html

* css/CSSParser.cpp:
(WebCore::CSSParser::createPrimitiveNumericValue):
(WebCore):
(WebCore::CSSParser::createPrimitiveVariableNameValue):
(WebCore::CSSParser::parseValidPrimitive):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::storeVariableDeclaration):
(WebCore::CSSParserString::lowerSubstring):
Added function to compute a lower case substring as an AtomicString from a CSSParserString.
* css/CSSParser.h:
(CSSParser):
* css/CSSParserValues.h:
(CSSParserString):
(WebCore::CSSParserString::lowerSubstring):

LayoutTests:

Add test that variable names are match correctly when different case is used.

* fast/css/variables/case-insensitive-expected.html: Added.
* fast/css/variables/case-insensitive.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131313 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Clean up BackingStoreClient (part II)
https://bugs.webkit.org/show_bug.cgi?id=99327

Reviewed by Yong Li.
Patch by Antonio Gomes <agomes@rim.com>

Remove more unneeded BackingStoreClient <-> WebPageClient integration
methods:
- BackingStoreClient* backingStoreClientForFrame(...)
- void addBackingStoreClientForFrame(...)
- void removeBackingStoreClientForFrame(...)

Change places calling WPPriv::backingStoreClientForFrame to directly
access WPPriv::backingStoreClient instead, since only the main frame will
have a BackingStoreClient instance associated with it, and it is owned by
the WKPriv.

Remove non-mainframe only references to BackingStoreClient completely,
since it is dead code now.

* Api/InRegionScroller.cpp:
(BlackBerry::WebKit::InRegionScrollerPrivate::setLayerScrollPosition):
* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::backingStoreClient):
(BlackBerry::WebKit::WebPage::destroy):
* Api/WebPage_p.h:
(WebPagePrivate):
* WebCoreSupport/ChromeClientBlackBerry.cpp:
(WebCore::ChromeClientBlackBerry::invalidateContentsForSlowScroll):
(WebCore::ChromeClientBlackBerry::scroll):
* WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
(WebCore::FrameLoaderClientBlackBerry::transitionToCommittedForNewPage):
(WebCore::FrameLoaderClientBlackBerry::createFrame):
(WebCore::FrameLoaderClientBlackBerry::detachedFromParent2):
* WebKitSupport/BackingStoreClient.cpp:
(BlackBerry::WebKit::BackingStoreClient::create):
(BlackBerry::WebKit::BackingStoreClient::BackingStoreClient):
(BlackBerry::WebKit::BackingStoreClient::~BackingStoreClient):
* WebKitSupport/BackingStoreClient.h:
(BackingStoreClient):
* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::setBatchEditingActive):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131314 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Calling WebCore::SharedBuffer::append(data, 0) on a shared buffer when
its current position is at a segment boundary (4096) ends up adding an
unitialized segment (with uninitialized memory) to the SharedBuffer.
https://bugs.webkit.org/show_bug.cgi?id=99000

Reviewed by Adam Barth.

Source/WebCore:

* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::append):

LayoutTests:

* mhtml/shared_buffer_bug-expected.txt: Added.
* mhtml/shared_buffer_bug.mht: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131315 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Adapt to Platform API changes in string handling
https://bugs.webkit.org/show_bug.cgi?id=99248

Reviewed by Yong Li.

Convert usage of WebString, char* and std::string to BlackBerry::Platform::String.

Source/WebCore:

* html/track/TextTrack.cpp:
(WebCore::TextTrack::TextTrack): Fix the build for BlackBerry.
* page/blackberry/SettingsBlackBerry.cpp:
(WebCore):
(WebCore::Settings::initializeDefaultFontFamilies):
* platform/blackberry/LocalizedStringsBlackBerry.cpp:
* platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
(WebCore::MIMETypeRegistry::getMIMETypeForExtension):
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
* platform/blackberry/PasteboardBlackBerry.cpp:
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::writePlainText):
(WebCore::Pasteboard::plainText):
(WebCore::Pasteboard::documentFragment):
* platform/blackberry/ReadOnlyLatin1String.h: Removed.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::getSupportedTypes):
(WebCore::MediaPlayerPrivate::supportsType):
(WebCore::MediaPlayerPrivate::setCertificatePath):
(WebCore::MediaPlayerPrivate::load):
(WebCore::generateProtectionSpaceFromMMRAuthChallenge):
(WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
(WebCore::MediaPlayerPrivate::onAuthenticationAccepted):
(WebCore::MediaPlayerPrivate::lookupMediaStream):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
(MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::engineDescription):
* platform/network/blackberry/DNSBlackBerry.cpp:
(WebCore::prefetchDNS):
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::initialize):
(WebCore::NetworkJob::notifyStatusReceived):
(WebCore::NetworkJob::notifyHeadersReceived):
(WebCore::NetworkJob::handleNotifyClose):
(WebCore::NetworkJob::sendRequestWithCredentials):
* platform/network/blackberry/NetworkJob.h:
(NetworkJob):
* platform/network/blackberry/NetworkManager.cpp:
(WebCore::NetworkManager::startJob):
* platform/network/blackberry/ResourceRequestBlackBerry.cpp:
(WebCore::ResourceRequest::initializePlatformRequest):
* platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
(WebCore::SocketStreamHandle::SocketStreamHandle):
* platform/text/blackberry/StringBlackBerry.cpp:
(WTF::String::String):
(WTF::String::operator BlackBerry::Platform::String):
* platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp:

Source/WebKit:

* PlatformBlackBerry.cmake:

Source/WebKit/blackberry:

* Api/BlackBerryGlobal.cpp:
(BlackBerry::WebKit::clearAppCache):
(BlackBerry::WebKit::clearDatabase):
* Api/BlackBerryGlobal.h:
(Platform):
(WebKit):
* Api/JavaScriptVariant.cpp:
(BlackBerry::WebKit::JSValueRefToBlackBerryJavaScriptVariant):
(BlackBerry::WebKit::BlackBerryJavaScriptVariantToJSValueRef):
(BlackBerry::WebKit::JavaScriptVariant::JavaScriptVariant):
(WebKit):
(BlackBerry::WebKit::JavaScriptVariant::~JavaScriptVariant):
(BlackBerry::WebKit::JavaScriptVariant::setType):
(BlackBerry::WebKit::JavaScriptVariant::setString):
(BlackBerry::WebKit::JavaScriptVariant::stringValue):
* Api/JavaScriptVariant.h:
* Api/WebAnimation.cpp:
(BlackBerry::WebKit::WebAnimation::fadeAnimation):
(BlackBerry::WebKit::WebAnimation::name):
* Api/WebAnimation.h:
* Api/WebCookieJar.cpp:
(BlackBerry::WebKit::WebCookieJar::cookies):
(BlackBerry::WebKit::WebCookieJar::setCookies):
* Api/WebCookieJar.h:
(Platform):
(BlackBerry):
(WebKit):
* Api/WebKitMIMETypeConverter.cpp:
(BlackBerry::WebKit::getExtensionForMimeType):
(BlackBerry::WebKit::getMimeTypeForExtension):
* Api/WebKitMIMETypeConverter.h:
(Platform):
(BlackBerry):
(WebKit):
* Api/WebKitTextCodec.cpp:
(BlackBerry::WebKit::base64Decode):
(BlackBerry::WebKit::base64Encode):
(BlackBerry::WebKit::unescapeURL):
(BlackBerry::WebKit::escapeURL):
* Api/WebKitTextCodec.h:
(Platform):
(BlackBerry):
* Api/WebOverlay.cpp:
(BlackBerry::WebKit::WebOverlay::removeAnimation):
* Api/WebOverlay.h:
(Platform):
(BlackBerry):
(WebKit):
* Api/WebOverlayOverride.cpp:
(BlackBerry::WebKit::WebOverlayOverride::removeAnimation):
* Api/WebOverlayOverride.h:
(Platform):
(BlackBerry):
(WebKit):
* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPage::autofillTextField):
(BlackBerry::WebKit::WebPage::renderTreeAsText):
(BlackBerry::WebKit::WebPage::WebPage):
(BlackBerry::WebKit::WebPagePrivate::init):
(BlackBerry::WebKit::WebPagePrivate::load):
(BlackBerry::WebKit::WebPage::load):
(BlackBerry::WebKit::WebPage::loadFile):
(BlackBerry::WebKit::WebPage::download):
(BlackBerry::WebKit::WebPagePrivate::loadString):
(BlackBerry::WebKit::WebPage::loadString):
(BlackBerry::WebKit::WebPagePrivate::executeJavaScript):
(BlackBerry::WebKit::WebPage::executeJavaScript):
(BlackBerry::WebKit::WebPagePrivate::executeJavaScriptInIsolatedWorld):
(BlackBerry::WebKit::WebPage::executeJavaScriptInIsolatedWorld):
(BlackBerry::WebKit::WebPage::executeJavaScriptFunction):
(BlackBerry::WebKit::WebPagePrivate::addOriginAccessWhitelistEntry):
(BlackBerry::WebKit::WebPage::addOriginAccessWhitelistEntry):
(BlackBerry::WebKit::WebPagePrivate::removeOriginAccessWhitelistEntry):
(BlackBerry::WebKit::WebPage::removeOriginAccessWhitelistEntry):
(BlackBerry::WebKit::WebPagePrivate::authenticationChallenge):
(BlackBerry::WebKit::WebPagePrivate::syncProxyCredential):
(BlackBerry::WebKit::WebPagePrivate::notifyPopupAutofillDialog):
(BlackBerry::WebKit::WebPagePrivate::webContext):
(BlackBerry::WebKit::WebPage::setDateTimeInput):
(BlackBerry::WebKit::WebPage::setColorInput):
(BlackBerry::WebKit::WebPage::textEncoding):
(BlackBerry::WebKit::WebPage::forcedTextEncoding):
(BlackBerry::WebKit::WebPage::setForcedTextEncoding):
(BlackBerry::WebKit::WebPage::title):
(BlackBerry::WebKit::WebPage::selectedText):
(BlackBerry::WebKit::WebPage::cutSelectedText):
(BlackBerry::WebKit::WebPage::insertText):
(BlackBerry::WebKit::WebPage::getBackForwardList):
(BlackBerry::WebKit::WebPage::onCertificateStoreLocationSet):
(BlackBerry::WebKit::WebPage::dispatchInspectorMessage):
(BlackBerry::WebKit::WebPagePrivate::didChangeSettings):
(BlackBerry::WebKit::WebPage::textHasAttribute):
(BlackBerry::WebKit::WebPage::setAllowNotification):
(BlackBerry::WebKit::WebPagePrivate::defaultUserAgent):
* Api/WebPage.h:
* Api/WebPageClient.h:
* Api/WebPage_p.h:
(WebPagePrivate):
* Api/WebSettings.cpp:
(BlackBerry::WebKit::WebSettings::standardSettings):
(BlackBerry::WebKit::WebSettings::addSupportedObjectPluginMIMEType):
(BlackBerry::WebKit::WebSettings::isSupportedObjectMIMEType):
(BlackBerry::WebKit::WebSettings::serifFontFamily):
(BlackBerry::WebKit::WebSettings::setSerifFontFamily):
(BlackBerry::WebKit::WebSettings::fixedFontFamily):
(BlackBerry::WebKit::WebSettings::setFixedFontFamily):
(BlackBerry::WebKit::WebSettings::sansSerifFontFamily):
(BlackBerry::WebKit::WebSettings::setSansSerifFontFamily):
(BlackBerry::WebKit::WebSettings::standardFontFamily):
(BlackBerry::WebKit::WebSettings::setStandardFontFamily):
(BlackBerry::WebKit::WebSettings::userAgentString):
(BlackBerry::WebKit::WebSettings::setUserAgentString):
(BlackBerry::WebKit::WebSettings::defaultTextEncodingName):
(BlackBerry::WebKit::WebSettings::setDefaultTextEncodingName):
(BlackBerry::WebKit::WebSettings::userStyleSheetString):
(BlackBerry::WebKit::WebSettings::setUserStyleSheetString):
(BlackBerry::WebKit::WebSettings::userStyleSheetLocation):
(BlackBerry::WebKit::WebSettings::setUserStyleSheetLocation):
(BlackBerry::WebKit::WebSettings::localStoragePath):
(BlackBerry::WebKit::WebSettings::setLocalStoragePath):
(BlackBerry::WebKit::WebSettings::indexedDataBasePath):
(BlackBerry::WebKit::WebSettings::setIndexedDataBasePath):
(BlackBerry::WebKit::WebSettings::databasePath):
(BlackBerry::WebKit::WebSettings::setDatabasePath):
(BlackBerry::WebKit::WebSettings::appCachePath):
(BlackBerry::WebKit::WebSettings::setAppCachePath):
(BlackBerry::WebKit::WebSettings::pageGroupName):
(BlackBerry::WebKit::WebSettings::setPageGroupName):
* Api/WebSettings.h:
* Api/WebString.cpp: Removed.
* Api/WebString.h: Removed.
* WebCoreSupport/ChromeClientBlackBerry.cpp:
(WebCore::ChromeClientBlackBerry::runJavaScriptPrompt):
(WebCore::ChromeClientBlackBerry::createWindow):
(WebCore::ChromeClientBlackBerry::runOpenPanel):
(WebCore):
* WebCoreSupport/ChromeClientBlackBerry.h:
(ChromeClientBlackBerry):
* WebCoreSupport/ClientExtension.cpp:
(clientExtensionMethod):
* WebCoreSupport/ColorPickerClient.cpp:
(WebCore::ColorPickerClient::ColorPickerClient):
(WebCore::ColorPickerClient::generateHTML):
* WebCoreSupport/ColorPickerClient.h:
(Platform):
(BlackBerry):
(WebKit):
(ColorPickerClient):
* WebCoreSupport/CredentialManager.cpp:
(WebCore::CredentialManager::autofillAuthenticationChallenge):
* WebCoreSupport/CredentialManager.h:
(Platform):
(CredentialManager):
* WebCoreSupport/DatePickerClient.cpp:
(WebCore::DatePickerClient::DatePickerClient):
(WebCore::DatePickerClient::generateHTML):
* WebCoreSupport/DatePickerClient.h:
(Platform):
(BlackBerry):
(WebKit):
(DatePickerClient):
* WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
(WebCore::FrameLoaderClientBlackBerry::dispatchDecidePolicyForResponse):
(WebCore::FrameLoaderClientBlackBerry::createDocumentLoader):
(WebCore::FrameLoaderClientBlackBerry::dispatchDidFinishLoad):
(WebCore::FrameLoaderClientBlackBerry::dispatchDidFailProvisionalLoad):
(WebCore::FrameLoaderClientBlackBerry::dispatchCreatePage):
(WebCore::FrameLoaderClientBlackBerry::dispatchWillSendRequest):
(WebCore::FrameLoaderClientBlackBerry::loadIconExternally):
(WebCore::FrameLoaderClientBlackBerry::startDownload):
(WebCore::FrameLoaderClientBlackBerry::dispatchDidReceiveIcon):
* WebCoreSupport/IconDatabaseClientBlackBerry.cpp:
* WebCoreSupport/NotificationPresenterImpl.cpp:
(WebCore::NotificationPresenterImpl::show):
(WebCore::NotificationPresenterImpl::cancel):
(WebCore::NotificationPresenterImpl::requestPermission):
(WebCore::NotificationPresenterImpl::onPermission):
(WebCore::NotificationPresenterImpl::notificationClicked):
* WebCoreSupport/NotificationPresenterImpl.h:
(Platform):
(NotificationPresenterImpl):
* WebCoreSupport/SelectPopupClient.cpp:
(WebCore::SelectPopupClient::SelectPopupClient):
(WebCore::SelectPopupClient::update):
(WebCore::SelectPopupClient::generateHTML):
* WebCoreSupport/SelectPopupClient.h:
(Platform):
(BlackBerry):
(SelectPopupClient):
* WebCoreSupport/UserMediaClientImpl.cpp:
(WebCore::toMediaStreamSource):
(WebCore::toMediaStreamDescriptor):
(WebCore::UserMediaClientImpl::requestUserMedia):
(WebCore::UserMediaClientImpl::cancelUserMediaRequest):
* WebKitSupport/AboutData.cpp:
(BlackBerry::WebKit::cachePage):
* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::convertStringToWchar):
(BlackBerry::WebKit::convertStringToWcharVector):
(BlackBerry::WebKit::convertSpannableStringToString):
(BlackBerry::WebKit::InputHandler::learnText):
(BlackBerry::WebKit::InputHandler::spellCheckingRequestProcessed):
(BlackBerry::WebKit::InputHandler::openDatePopup):
(BlackBerry::WebKit::InputHandler::openSelectPopup):
(BlackBerry::WebKit::InputHandler::setText):
* WebKitSupport/SelectionHandler.cpp:
(BlackBerry::WebKit::SelectionHandler::selectedText):
* WebKitSupport/SelectionHandler.h:
(Platform):
(WebKit):
(SelectionHandler):
* WebKitSupport/SurfacePool.cpp:
(BlackBerry::WebKit::SurfacePool::sharedPixmapGroup):
* WebKitSupport/SurfacePool.h:
(SurfacePool):

Source/WTF:

* wtf/Assertions.cpp: Use proper log function.
* wtf/text/AtomicString.h: Add BlackBerry support
(AtomicString):
(WTF::AtomicString::AtomicString): Add BlackBerry Support
(WTF::AtomicString::operator BlackBerry::Platform::String):
* wtf/text/StringImpl.h: Conversion support.
* wtf/text/WTFString.h: Conversion support.
(Platform):
(String):

Tools:

* DumpRenderTree/blackberry/DumpRenderTree.cpp:
(BlackBerry::WebKit::DumpRenderTree::runTest):
* DumpRenderTree/blackberry/WorkQueueItemBlackBerry.cpp:
(LoadHTMLStringItem::invoke):
(ScriptItem::invoke):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131316 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CSP source expressions should support paths at file-level granularity.
https://bugs.webkit.org/show_bug.cgi?id=99250

Reviewed by Adam Barth.

Source/WebCore:

After a bit of discussion on public-webappsec[1], path support for CSP
source expressions has been tuned to support file-level granularity. In
particular, this means that:

- 'example.com/js' matches a file named 'js'
- 'example.com/js/' matches all files under a directory named 'js'
  (note the trailing slash)
- 'example.com/js/file.js' matches only a file named 'file.js'
  inside a directory named 'js'

Though this is part of the CSP 1.1 spec, it continues to be exposed
outside the CSP_NEXT flag for back-compatibility.

Test cases have been added to the existing
http/tests/security/contentSecurityPolicy/source-list-parsing-paths-*
in order ensure that the new functionality works correctly.

* page/ContentSecurityPolicy.cpp:
(WebCore::CSPSource::pathMatches):
    If the path ends with '/', do a prefix check. If not, check for an
    exact match.
(WebCore::CSPSourceList::parsePath):
    Don't automatically append a '/' to paths.

LayoutTests:

* http/tests/security/contentSecurityPolicy/source-list-parsing-paths-01.html:
    Adjust tests by adding trailing slashes to source expressions that
    should match directories.
* http/tests/security/contentSecurityPolicy/source-list-parsing-paths-02-expected.txt:
* http/tests/security/contentSecurityPolicy/source-list-parsing-paths-02.html:
    Adjust tests to check the new behavior: matching individiual files,
    and matching directories only with a trailing '/'.


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