⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Aug 12, 2012:

11:55 PM Changeset in webkit [125393] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Unreviewed, rolling out r125392.
http://trac.webkit.org/changeset/125392
https://bugs.webkit.org/show_bug.cgi?id=93797

Simple rebaseline won't work. Need further investigation.
(Requested by pfeldman on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-08-12

  • inspector/console/console-format-collections-expected.txt:
11:48 PM Changeset in webkit [125392] by pfeldman@chromium.org
  • 2 edits in trunk/LayoutTests

Not reviewed: rebaselined inspector/console/console-format-collections.html after r125284.
https://bugs.webkit.org/show_bug.cgi?id=93748

  • inspector/console/console-format-collections-expected.txt:
11:21 PM Changeset in webkit [125391] by kinuko@chromium.org
  • 21 edits in trunk/Source

Support creating File object from FileSystem URL for files in FileSystem API
https://bugs.webkit.org/show_bug.cgi?id=93706

Reviewed by Darin Fisher.

Source/Platform:

  • chromium/public/WebBlobData.h:
  • chromium/public/WebHTTPBody.h:

(WebHTTPBody):

Source/WebCore:

Current File code assumes the existence of local file (i.e. requires a platform local file path) but for FileSystem
files it may not be always the case. For example some implementation may want to use in-memory filesystem to realize
sandboxed filesystem, or others may have the filesystem in remote servers.

This patch adds basic support for making File object constructible not only from a file path but from a FileSystem URL.
Since File can be appended to FormData or included in another Blob this patch also extends BlobData and FormData to support URL.

FileChooser and Drag-and-drop changes are not included in this patch.

No new tests: will add tests when we implement the platform side changes to wire this change.

  • Modules/filesystem/DOMFileSystem.cpp:

(WebCore::DOMFileSystem::createFile):

  • Modules/filesystem/DOMFileSystemSync.cpp:

(WebCore::DOMFileSystemSync::createFile):

  • fileapi/Blob.cpp:

(WebCore::Blob::sliceInternal):

  • fileapi/File.cpp:

(WebCore::createBlobDataForFileSystemURL): Added.
(WebCore::File::File):

  • fileapi/File.h:

(WebCore::File::createForFileSystemFile):
(WebCore::File::fileSystemURL): Added.

  • fileapi/WebKitBlobBuilder.cpp:

(WebCore::WebKitBlobBuilder::append):

  • platform/chromium/support/WebHTTPBody.cpp:

(WebKit::WebHTTPBody::elementAt):
(WebKit::WebHTTPBody::appendURL): Added.
(WebKit::WebHTTPBody::appendURLRange): Added.
(WebKit::WebHTTPBody::appendBlob):

  • platform/network/BlobData.cpp:

(WebCore::BlobData::appendURL):

  • platform/network/BlobData.h:

(BlobDataItem):
(WebCore::BlobDataItem::BlobDataItem):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::appendStorageItems):
(WebCore::BlobRegistryImpl::registerBlobURL):

  • platform/network/FormData.cpp:

(WebCore::FormData::deepCopy):
(WebCore::FormData::appendURL): Added.
(WebCore::FormData::appendURLRange): Added.
(WebCore::FormData::appendKeyValuePairItems):

  • platform/network/FormData.h:

(WebCore::FormDataElement::FormDataElement):
(FormDataElement):
(WebCore::operator==):

Source/WebKit/chromium:

  • src/WebBlobData.cpp:

(WebKit::WebBlobData::itemAt):

10:21 PM Changeset in webkit [125390] by morrita@google.com
  • 2 edits in trunk/Tools

Unreviewed, added a proxy address to contributors_who_are_not_committers.

  • Scripts/webkitpy/common/config/committers.py:
9:36 PM Changeset in webkit [125389] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

<rdar://problem/11442485> off-screen or inactive pages can change the mouse pointer

Reviewed by Adele Peterson.

  • page/EventHandler.cpp:

(WebCore::EventHandler::fakeMouseMoveEventTimerFired): Added a check that the page is
on-screen and active before dispatching the fake mouse event.

9:35 PM Changeset in webkit [125388] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[BlackBerry] use MediaPlayer::userAgent() in MediaPlayerPrivateBlackBerry to avoid layering violation
https://bugs.webkit.org/show_bug.cgi?id=93588

Patch by Jonathan Dong <Jonathan Dong> on 2012-08-12
Reviewed by Antonio Gomes.

Removed helper function MediaPlayerPrivate::userAgent() which has
introduced abstraction layering violation and replaced with
MediaPlayer::userAgent().

No new tests since there's no functional change.

  • platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:

(WebCore::MediaPlayerPrivate::load):

9:23 PM Changeset in webkit [125387] by yutak@chromium.org
  • 2 edits in trunk/LayoutTests

[Chromium] Unreviewed. Update TestExpectations so it matches the recent results.

  • platform/chromium/TestExpectations:
9:16 PM Changeset in webkit [125386] by kinuko@chromium.org
  • 5 edits in trunk/Source/WebCore

Record metrics to measure the usage of WebKitBlobBuilder to eventually deprecate it
https://bugs.webkit.org/show_bug.cgi?id=90535

Reviewed by Eric Seidel.

No new tests as this has no functional changes.

  • bindings/js/JSBlobCustom.cpp:

(WebCore::JSBlobConstructor::constructJSBlob):

  • bindings/v8/custom/V8BlobCustom.cpp:

(WebCore::V8Blob::constructorCallback):

  • fileapi/WebKitBlobBuilder.cpp:

(WebCore::WebKitBlobBuilder::getBlob):

  • fileapi/WebKitBlobBuilder.h:

(WebKitBlobBuilder):

8:55 PM Changeset in webkit [125385] by yutak@chromium.org
  • 2 edits in trunk/Source/WebKit/chromium

Unreviewed. Fix Chromium's Android build.

  • src/WebFrameImpl.cpp:

(WebKit::WebFrameImpl::find): Needs parentheses for a function call.

5:14 PM Changeset in webkit [125384] by ojan@chromium.org
  • 3 edits in trunk/Source/WebCore

Remove unnecessary null checks from pseudoStyleForElement and adjustRenderStyle
https://bugs.webkit.org/show_bug.cgi?id=93730

Reviewed by Tony Chang.

All the callers of both methods make sure to pass in a non-null parentStyle.

No change in behavior.

  • css/StyleResolver.cpp:
  • css/StyleResolver.h:
4:13 PM Changeset in webkit [125383] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[Qt] Unreviewed gardening, skip new tests without expected results.

  • platform/qt/Skipped:
4:01 PM Changeset in webkit [125382] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Tap highlight flashes checkerboard after pinch zoom
https://bugs.webkit.org/show_bug.cgi?id=93601

Patch by Arvid Nilsson <anilsson@rim.com> on 2012-08-12
Reviewed by Antonio Gomes.

Since the tap highlight is usually rather small, we can reimplement
GraphicsLayerClient::contentsVisible() to always return true in order
to keep all AC layer tiles cached all the time.

PR 189895

  • WebKitSupport/DefaultTapHighlight.cpp:

(BlackBerry::WebKit::DefaultTapHighlight::contentsVisible):
(WebKit):

  • WebKitSupport/DefaultTapHighlight.h:

(DefaultTapHighlight):

3:59 PM Changeset in webkit [125381] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Tap highlight sometimes doesn't disappear
https://bugs.webkit.org/show_bug.cgi?id=93711

Patch by Arvid Nilsson <anilsson@rim.com> on 2012-08-12
Reviewed by Antonio Gomes.

The WebOverlayOverride implementation just changes properties of a
LayerCompositingThread directly, which means the changes will
immediately be overwritten on the next commit. Therefore, when the tap
highlight implementation adds a fade out animation, that animation will
instantly be removed again if a commit happens for any reason.

The reason is I totally botched the implementation of
WebOverlayOverride, it's not wrapping WebCore::LayerOverride at all,
instead for some reason it's manipulating the LayerCompositingThread
directly.

Fixed by actually mapping WebOverlayOverride calls to the corresponding
WebCore::LayerOverride method, and scheduling a compositing run to make
the change visible and kick off animations.

Reviewed internally by Sean Wang.

PR 188453

  • Api/WebOverlay.cpp:

(BlackBerry::WebKit::WebOverlayPrivate::override):

  • Api/WebOverlayOverride.cpp:

(BlackBerry::WebKit::WebOverlayOverride::WebOverlayOverride):
(BlackBerry::WebKit::WebOverlayOverride::~WebOverlayOverride):
(BlackBerry::WebKit::WebOverlayOverride::setPosition):
(BlackBerry::WebKit::WebOverlayOverride::setAnchorPoint):
(BlackBerry::WebKit::WebOverlayOverride::setSize):
(BlackBerry::WebKit::WebOverlayOverride::setTransform):
(BlackBerry::WebKit::WebOverlayOverride::setOpacity):
(BlackBerry::WebKit::WebOverlayOverride::addAnimation):
(BlackBerry::WebKit::WebOverlayOverride::removeAnimation):

  • Api/WebOverlayOverride.h:
  • Api/WebOverlay_p.h:

(WebOverlayPrivate):
(WebOverlayPrivateWebKitThread):
(WebOverlayPrivateCompositingThread):

11:14 AM Changeset in webkit [125380] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

table cell.cellIndex should return -1 if there is no parent table
https://bugs.webkit.org/show_bug.cgi?id=93738

Patch by Pravin D <pravind.2k4@gmail.com> on 2012-08-12
Reviewed by Eric Seidel.

Source/WebCore:

According to the HTML5 spec the cellIndex of a table cell(td/th) whose parent is not a table row
must be -1. Currently we are returning zero. This patch fixes this behavior.

Test: fast/table/cellIndex-of-cell-with-different-parents.html

  • html/HTMLTableCellElement.cpp:

(WebCore::HTMLTableCellElement::cellIndex):

If the parent of the cell is not a table row, -1 is returned. Otherwise a value greater
than or equal to zero is return.

  • rendering/RenderTableCell.h:

(RenderTableCell):

Removed dead code and made minor webkit style related fix.

LayoutTests:

  • fast/table/cellIndex-of-cell-with-different-parents-expected.txt: Added.
  • fast/table/cellIndex-of-cell-with-different-parents.html: Added.
11:05 AM Changeset in webkit [125379] by leandrogracia@chromium.org
  • 9 edits
    4 adds in trunk/Source

[Chromium] Implement the find-in-page match rects API
https://bugs.webkit.org/show_bug.cgi?id=93111

Reviewed by Adam Barth.

Source/WebCore:

Introduce the find-in-page coordinate system. This system tries to solve
the unintuitive tickmark results presented in pages with multiple frames
and scrolled contents where the find results might not be in the visible
area of a frame, which might lead to tickmarks below the container frame.

To achieve this, this coordinate system goes up the render tree
normalizing the coordinates by the actual contents size of its container.
This leads to tickmarks scaled to the visible size of their frame
independently of its scroll. This coordinate system supports also CSS
scroll:overflow, transforms and the different positions.

Also add an auxiliary method to Range in order to provide a transform
friendly way to retrieve the absolute coordinates of the enclosing
bounding box without the adjustment operations that the existing
enclosingRect method does.

Tested by WebFrameTest WebKit unit test.

  • dom/Range.cpp:

(WebCore::Range::transformFriendlyBoundingBox): add a transform-friendly equivalent of boundingBox.
(WebCore):

  • dom/Range.h: move boundingBox to the group of non-transform-friendly methods.

(Range):

Source/WebKit/chromium:

Implement the funcionality of the find-in-page match rects API in WebFrame.
These methods keep a cache of the match rects in a special coordinate system
(find-in-page coordinates) and update them on size changes. They also allow
to recover the match closest to a given point, therefore enabling to move
to find matches when tapping on their corresponding tickmarks.

  • WebKit.gyp: add FindInPageCoordinates.h / cpp.
  • src/ChromeClientImpl.cpp:

(WebKit::ChromeClientImpl::contentsSizeChanged): propagate didChangeContentsSize to WebFrameImpl.

  • src/FindInPageCoordinates.cpp: Added.

(WebKit):
(WebKit::toNormalizedRect): auxiliary internal function.
(WebKit::findInPageRectFromAbsoluteRect): main coordinate conversion function.
(WebKit::findInPageRectFromRange): convenience conversion function for Ranges.

  • src/FindInPageCoordinates.h: Added.

(WebCore):
(WebKit):

  • src/WebFrameImpl.cpp:

(WebKit::WebFrameImpl::FindMatch::FindMatch): find matches cache constructor.
(WebKit):
(WebKit::WebFrameImpl::find): clear match cache when appropriate and zoom into results on the Android port.
(WebKit::WebFrameImpl::stopFinding): clear matches cache.
(WebKit::WebFrameImpl::scopeStringMatches): add new results to the matches cache.
(WebKit::WebFrameImpl::increaseMatchCount): update the matches cache version.
(WebKit::WebFrameImpl::resetMatchCount): update the matches cache version.
(WebKit::WebFrameImpl::findMatchMarkersVersion): new API providing the matches cache version.
(WebKit::WebFrameImpl::clearFindMatchesCache): internal utility method to reset the matches cache.
(WebKit::WebFrameImpl::isActiveMatchFrameValid): internal utility method to check if the local frame is still in the frame tree.
(WebKit::WebFrameImpl::updateFindMatchRects): internal utility method to update the match result rects if required.
(WebKit::WebFrameImpl::activeFindMatchRect): new API providing the active find match rect in find-in-page coordinates.
(WebKit::WebFrameImpl::findMatchRects): new API returning the valid match rects in find-in-page coordinates.
(WebKit::WebFrameImpl::appendFindMatchRects): internal utility method to concatenate the match results of multiple frames.
(WebKit::WebFrameImpl::selectNearestFindMatch): new API selecting the find match closer to a point in find-in-page coordinates.
(WebKit::WebFrameImpl::nearestFindMatch): internal utility method to find the nearest find match to a point in a frame.
(WebKit::WebFrameImpl::selectFindMatch): internal utility method to select a match in the cache.
(WebKit::WebFrameImpl::WebFrameImpl): initialization of new variables.
(WebKit::WebFrameImpl::didChangeContentsSize): invalidate the cached match rect coordinates on frame content size changes.

  • src/WebFrameImpl.h:

(WebCore):
(WebFrameImpl):
(WebKit::WebFrameImpl::activeMatchFrame): remove unrequired const.
(WebKit::WebFrameImpl::activeMatch): expose the range of the active match to allow testing.
(FindMatch): cache structure for find matches.

  • tests/WebFrameTest.cpp: new test case for find-in-page match rects.
  • tests/data/find_in_page.html: Added. Test case layout.
  • tests/data/find_in_page_frame.html: Added. Test case layout.
10:40 AM Changeset in webkit [125378] by fischman@chromium.org
  • 2 edits in trunk/Source/WebCore

Stop Y-flipping CROS/ARM video textures
https://bugs.webkit.org/show_bug.cgi?id=93769

Reviewed by Eric Seidel.

No new tests; there's no cros/arm bot yet, sadly.

  • platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:

(WebCore::CCVideoLayerImpl::appendQuads): drop the single-platform Y-flipping in prep for the platform doing the flip natively.

9:52 AM Changeset in webkit [125377] by commit-queue@webkit.org
  • 16 edits in trunk

[Qt] Make it possible to build without QtTest/QtPrintSupport
https://bugs.webkit.org/show_bug.cgi?id=93492

Patch by Loïc Yhuel <loic.yhuel@softathome.com> on 2012-08-12
Reviewed by Tor Arne Vestbø.

.:

  • Source/QtWebKit.pro: Disable tests if no testlib

Source/WebKit:

  • WebKit1.pri: Optional printsupport

Source/WebKit/qt:

  • Api/qwebframe.cpp:

(QWebFrame::print): Does nothing if no printsupport

  • Api/qwebview.cpp:

(QWebView::print): Does nothing if no printsupport

Tools:

  • DumpRenderTree/qt/DumpRenderTree.pro: Optional printsupport
  • DumpRenderTree/qt/DumpRenderTreeQt.cpp:

(WebCore):
(WebCore::DumpRenderTree::dryRunPrint): Does nothing if no printsupport

  • QtTestBrowser/QtTestBrowser.pro: Optional printsupport
  • QtTestBrowser/launcherwindow.cpp:

(LauncherWindow::createChrome): No print menu if no printsupport
(LauncherWindow::print): Does nothing if no printsupport

  • QtTestBrowser/launcherwindow.h:
  • Tools.pro: Disable DRT/WTR if QtTest not present
  • qmake/mkspecs/features/default_pre.prf: printsupport no more mandatory
  • qmake/mkspecs/features/features.prf: Qt module availability tests
8:57 AM Changeset in webkit [125376] by mihnea@adobe.com
  • 6 edits
    2 adds in trunk

CSSRegions: Crash when using style in region for removed element.
https://bugs.webkit.org/show_bug.cgi?id=93276

Reviewed by Abhishek Arya.

Source/WebCore:

When a RenderInline object from within a render flow thread is split, the cloned
hierarchy built during the split process does not have the inRenderFlowThread bit
set properly. If the cloned hierarchy is flowed into a region with region style rules,
we compute the style in region also for objects that do not have inRenderFlowThread bit
set and we store the computed style in region for caching purposes. But we only remove
an object style in region information if that object has the inRenderFlowThread bit set.
Under these circumstances, it is possible to remove a object with cached style in region
and without inRenderFlowThread bit set from the render tree and leave the associated cached
information un-removed. Such information will be accesses during the next paint phase of
the region, thus resulting a crash.

The fix is to modify RenderBlock::clone() and RenderInline::clone() functions to also copy the inRenderFlowThread bit
from the source into the clone, therefore the cloned hierarchies will have the inRenderFlowThread
bit set properly.

Test: fast/regions/removed-element-style-in-region-crash.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::clone):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clone): Replace former static RenderInline::cloneInline with member RenderInline::clone.
(WebCore::RenderInline::splitInlines):

  • rendering/RenderInline.h:

(RenderInline):

  • rendering/RenderRegion.cpp:

(WebCore::RenderRegion::setObjectStyleInRegion):
Added an assert to make sure that when we are computing style in region, we are doing for objects
with inRenderFlowThread set. Also, bail out early in this case to prevent further crashes.

LayoutTests:

Added test reproducing the problem.

  • fast/regions/removed-element-style-in-region-crash-expected.txt: Added.
  • fast/regions/removed-element-style-in-region-crash.html: Added.
8:46 AM Changeset in webkit [125375] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[EFL][WK2] Skip webintents/web-intents-obj-constructor.html test
https://bugs.webkit.org/show_bug.cgi?id=93778

Unreviewed EFL gardening.

Skip webintents/web-intents-obj-constructor.html for
WebKit2 EFL until WTR can print information about the
MessagePorts in a Web Intent (Bug 89072).

Patch by Christophe Dumez <Christophe Dumez> on 2012-08-12

  • platform/efl-wk2/Skipped:
5:12 AM Changeset in webkit [125374] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Set the access qualifier of two methods to query frame specific info of BitmapImage to protected.
https://bugs.webkit.org/show_bug.cgi?id=90505

Patch by Huang Dongsung <luxtella@company100.net> on 2012-08-12
Reviewed by Eric Seidel.

Following 4 methods are protected.

size_t frameCount();
NativeImagePtr frameAtIndex(size_t);
bool frameIsCompleteAtIndex(size_t);
float frameDurationAtIndex(size_t);

So, 2 methds also should be protected because the frame info is only specific of
BitmapImage.

bool frameHasAlphaAtIndex(size_t);
ImageOrientation frameOrientationAtIndex(size_t);

On the other hand, this patch amended GraphicsContext3DCG.

  • static_cast<BitmapImage*>(image)->frameHasAlphaAtIndex(0)

+ image->currentFrameHasAlpha()

This patch does not affect PNG, JPEG, BMP, and WEBP because those images
have only 0 indexed frame.
Thus, GIF, and ICO are affected. However, an above query to get Alpha
is for the image that is created by image->nativeImageForCurrentFrame(), so it
is proper to use image->currentFrameHasAlpha() instead of
image->frameHasAlphaAtIndex(0).

No new tests, because it is hard to test. We need an animated GIF that
one frame has alpha and another frame does not have alpha. However, I
cannot find the animated GIF file that suffices the requirement.

  • platform/graphics/BitmapImage.h:

(BitmapImage):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

(WebCore::GraphicsContext3D::getImageData):

4:47 AM Changeset in webkit [125373] by allan.jensen@nokia.com
  • 3 edits in trunk/Source/JavaScriptCore

Doesn't build with ENABLE_JIT=0
https://bugs.webkit.org/show_bug.cgi?id=85042

Reviewed by Eric Seidel.

Include headers without which CallFrame.h does not build, and
fix gcc warning about comparing unsigned int with 0.

  • dfg/DFGDriver.cpp:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::isOpcode):

4:38 AM Changeset in webkit [125372] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

master.cfg unittest cleanup: Show DeprecationWarnings with python >= 2.7 too
https://bugs.webkit.org/show_bug.cgi?id=90161

Reviewed by Eric Seidel.

  • BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
4:38 AM Changeset in webkit [125371] by commit-queue@webkit.org
  • 4 edits
    2 deletes in trunk

webkit fails IETC namespaces/prefix-007.xml
https://bugs.webkit.org/show_bug.cgi?id=86137

Patch by Takashi Sakamoto <tasak@google.com> on 2012-08-12
Reviewed by Eric Seidel.

Source/WebCore:

If a namespace prefix or default namespace is declared more than once
only the last declaration shall be used.

parseAddNamespace doesn't check return value of WTF::HashMap<>::add.
If the return value's isNewEntry is true, the new entry is added with
the specified value. However, if isNewEntry is false, it is required
to update the store value.

No new tests. ietestcenter/css3/namespaces/prefix-007.xml and
ietestcenter/css3/namespaces/prefix-010.xml covers this change.

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::parserAddNamespace):
Modified to check m_namespaces.add's return value.
If the result says not a new entry, updated the value stored in
m_namespaces by using iterator in the result.

LayoutTests:

  • platform/chromium/TestExpectations:

Enabled the layout tests, ietestcenter/css3/namespaces/prefix-007.xml
and ietestcenter/css3/namespaces/prefix-010.xml.

  • platform/win/ietestcenter/css3/namespaces/prefix-007-expected.txt: Removed.
  • platform/win/ietestcenter/css3/namespaces/prefix-010-expected.txt: Removed.

Removed old expectations.

4:29 AM Changeset in webkit [125370] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

Fix build with recent clang.
https://bugs.webkit.org/show_bug.cgi?id=90701

Patch by Nuno Lopes <nlopes@apple.com> on 2012-08-12
Reviewed by Eric Seidel.

  • Shared/CommandLine.h:

(CommandLine):

  • WebProcess/Notifications/NotificationPermissionRequestManager.cpp:

(WebKit::NotificationPermissionRequestManager::NotificationPermissionRequestManager):

  • WebProcess/Notifications/NotificationPermissionRequestManager.h:

(NotificationPermissionRequestManager):

4:26 AM Changeset in webkit [125369] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit/efl

[EFL][UT] Delete shutdown method.
https://bugs.webkit.org/show_bug.cgi?id=90785

Patch by Krzysztof Czech <k.czech@samsung.com> on 2012-08-12
Reviewed by Eric Seidel.

EWKTestBase class already has a shutdownAll method that can be used instead of shutdown.

  • tests/UnitTestUtils/EWKTestBase.cpp:
  • tests/UnitTestUtils/EWKTestBase.h:

(EWKTestBase):

3:39 AM Changeset in webkit [125368] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Move CSS's propertyNameStrings[] to from the header to the cpp file
https://bugs.webkit.org/show_bug.cgi?id=93771

Reviewed by Eric Seidel.

The names of propertyNameStrings[] should never be accessed directly. The function getPropertyName()
return the correct string of propertyNameStrings.

To ensure the values are not accessed by mistake, move them from the header to the implementation.

  • css/makeprop.pl:
3:37 AM Changeset in webkit [125367] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

CSSComputedStyleDeclaration::cssText() should use StringBuilder
https://bugs.webkit.org/show_bug.cgi?id=93776

Reviewed by Eric Seidel.

String::append() is fairly inefficient when used to create a long string by appending a lot of small
pieces. StringBuilder is more approriate for the kind of operations done by CSSComputedStyleDeclaration::cssText().

This changes makes CSSComputedStyleDeclaration::cssText() about 6 times faster.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::CSSComputedStyleDeclaration::cssText):

12:32 AM Changeset in webkit [125366] by Lucas Forschler
  • 4 edits in branches/safari-536.26-branch/Source

Versioning.

12:18 AM Changeset in webkit [125365] by Simon Hausmann
  • 4 edits in trunk/Tools

[Qt] Unreviewed trivial build fix: Newer Qt versions don't implicitly include qwindowsysteminterface.h
through the QTestLib headers anymore.

  • DumpRenderTree/qt/EventSenderQt.cpp:
  • WebKitTestRunner/Target.pri:
  • WebKitTestRunner/qt/EventSenderProxyQt.cpp:

Aug 11, 2012:

11:10 PM Changeset in webkit [125364] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the build.

  • Platform/CoreIPC/Connection.h:

Add missing include.

11:09 PM Changeset in webkit [125363] by weinig@apple.com
  • 14 edits
    7 deletes in trunk/Source/WebKit2

[WK2] Get rid of ProcessModelSharedSecondaryThread
https://bugs.webkit.org/show_bug.cgi?id=93652

Reviewed by Dan Bernstein.

The threaded model for WebKit2 has been broken a long time and its continued existence in
the code only serves to confuse. It's time to say good bye to it.

  • UIProcess/API/C/WKContext.cpp:
  • UIProcess/API/C/WKContextPrivate.h:

Remove WKContextGetSharedThreadContext().

  • UIProcess/ProcessModel.h:

Remove ProcessModelSharedSecondaryThread from the ProcessModel enum.

  • UIProcess/WebContext.cpp:
  • UIProcess/WebContext.h:

Remove WebContext::sharedThreadContext().

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::connect):
(WebKit::WebProcessProxy::isLaunching):

  • UIProcess/WebProcessProxy.h:

Remove the ThreadLauncher member and stop deriving from ThreadLauncher::Client.

  • UIProcess/Launcher/ThreadLauncher.cpp: Removed.
  • UIProcess/Launcher/ThreadLauncher.h: Removed.
  • UIProcess/Launcher/efl/ThreadLauncherEfl.cpp: Removed.
  • UIProcess/Launcher/gtk/ThreadLauncherGtk.cpp: Removed.
  • UIProcess/Launcher/mac/ThreadLauncherMac.mm: Removed.
  • UIProcess/Launcher/qt/ThreadLauncherQt.cpp: Removed.
  • UIProcess/Launcher/win/ThreadLauncherWin.cpp: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
  • win/WebKit2.vcproj:
  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • PlatformEfl.cmake:
  • Target.pri:

Remove ThreadLauncher files.

10:56 PM Changeset in webkit [125362] by weinig@apple.com
  • 7 edits
    3 deletes in trunk/Tools

Remove ability to run MiniBrowser in threaded mode, it hasn't worked for a long time
https://bugs.webkit.org/show_bug.cgi?id=93774

Reviewed by Dan Bernstein.

Remove support for opening windows using the shared thread WKContextRef. WKContextGetSharedThreadContext()
is going away, due to not working for a long time, and the first step is removing all the callers.

While here, remove the BrowserStatisticsWindow, which was not providing interesting information.

  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
  • MiniBrowser/mac/AppDelegate.h:
  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate init]):
(-[BrowserAppDelegate newWindow:]):
(-[BrowserAppDelegate openPanelDidEnd:returnCode:contextInfo:]):

  • MiniBrowser/mac/BrowserStatisticsWindow.xib: Removed.
  • MiniBrowser/mac/BrowserStatisticsWindowController.h: Removed.
  • MiniBrowser/mac/BrowserStatisticsWindowController.m: Removed.
  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/win/BrowserView.cpp:

(BrowserView::create):

10:29 PM Changeset in webkit [125361] by weinig@apple.com
  • 7 edits in trunk

Enable XPC Service based WebProcess with runtime flag
https://bugs.webkit.org/show_bug.cgi?id=93773

Reviewed by Dan Bernstein.

Source/WebKit2:

Use the XPC Service for WebProcess code path if WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS
is set in the environment.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::launchXPCService):
Fix issue that was causing this code not to compile. This was not caught before since
the code was not being built.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::connect):
Switch from hard coding always using the XPC Service code path if
HAVE(XPC) was true, to doing it conditionally on an environment variable.

Source/WTF:

  • wtf/Platform.h:

Define HAVE_XPC on 10.7 and later.

Tools:

Convert --use-web-process-xpc-service passed to run-safari (and similar scripts)
to setting WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS=YES in the environment and setting
up XPC_DYLD_FRAMEWORK_PATH and XPC_DYLD_INSERT_LIBRARIES variables. NOTE: using
the XPC service is not the default code path.

  • Scripts/webkitdirs.pm:

(shouldUseXPCServiceForWebProcess):
(determineShouldUseXPCServiceForWebProcess):
Add functions to extract --use-web-process-xpc-service from ARGV and set a
global variable.

(printHelpAndExitForRunAndDebugWebKitAppIfNeeded):
Add help text for --use-web-process-xpc-service.

(runMacWebKitApp):
Set the WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS environment variable and DYLD
if --use-web-process-xpc-service was passed on the command line.

(execMacWebKitAppForDebugging):
Set the WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS environment variable and DYLD
if --use-web-process-xpc-service was passed on the command line. Also, bail
if both --use-web-process-xpc-service and --target-web-process are passed on
the command line, as we don't currently support using both.

9:52 PM Changeset in webkit [125360] by Lucas Forschler
  • 1 copy in tags/Safari-536.26.5

New Tag.

9:51 PM Changeset in webkit [125359] by Lucas Forschler
  • 4 edits in branches/safari-536.26-branch/Source

Versioning.

5:00 PM Changeset in webkit [125358] by weinig@apple.com
  • 13 edits
    1 move
    4 adds in trunk/Source/WebKit2

Make it possible to run the WebProcess as an XPC service
https://bugs.webkit.org/show_bug.cgi?id=92814

Reviewed by Anders Carlsson.

In this initial implementation, we are only using the XPC service
to launch the WebProcess, and then using the xpc_connection to send
over a mach_port to the WebProcess which is then used for creating
the CoreIPC connection. In the future, we will switch to using the
xpc_connection for all messaging.

When the XPC service is enabled (it is compiled out by default for now), both
the XPC service and the old spawned process are runtime choosable. This allows
the connect to pre-existing process workflow to continue to work.

There are a few additional caveats of this initial implementation:

  • It is only set up for the WebProcess (not for the PluginProcess)
  • The WebProcess shim does not work.
  • It requires a new environment variable to be set when launching to find the right service to launch (XPC_DYLD_FRAMEWORK_PATH).
  • Configurations/WebKit2Service.xcconfig: Added.

Add new configuration file for the service.

  • Platform/CoreIPC/Connection.h:

(CoreIPC::Connection::Identifier::Identifier):
(CoreIPC::Connection::identifierIsNull):
Added to encapsulate the concept of a null identifier, now that it
is not possible to just compare to null.

  • Platform/CoreIPC/mac/ConnectionMac.cpp:

(CoreIPC::Connection::platformInvalidate):
(CoreIPC::Connection::platformInitialize):
Change Connection::Identifier on the Mac to be a struct instead of
a typedef to a mach_port. This allows for the Connection to get both
the listening port and a reference to the xpc_connection (if it
compiled in). For now, all we do is retain the xpc_connection when it
is given to us, and release on Connection invalidation.

  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::createWebProcessConnection):

  • PluginProcess/mac/PluginProcessMainMac.mm:

(WebKit::PluginProcessMain):

  • WebProcess/Plugins/PluginProcessConnectionManager.cpp:

(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
Use the Connection::Identifier constructor.

  • UIProcess/Launcher/ProcessLauncher.h:

(LaunchOptions):
Add a UseXPC option to the LaunchOptions so we can dynamically choose whether to use it.

(ProcessLauncher):
Make processTypeAsString public to allow better factoring in the implementation file
using static functions.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

Factor out the different launching options into helper functions. Always start by
trying to connect to a pre-existing process.

(WebKit::launchXPCService):
Create a new xpc_connection to our service, and give it a unique instance UUID.
Then, send a bootstrap message with a mach_port and wait for a reply to complete
the launch procedure.

(WebKit::tryPreexistingProcess):
Move the code to connect to a preexisting process to its own helper function.

(WebKit::ProcessLauncher::launchProcess):
Clean up a bit, calling the helper functions and adding call to launch the XPC service
if it is enabled.

  • UIProcess/Launcher/mac/ThreadLauncherMac.mm:

(WebKit::webThreadBody):
(WebKit::ThreadLauncher::createWebThread):
Switch to using the constructor version of Identifier.

  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::PluginProcessProxy):
Don't try to use the XPC service for plugins yet.

(WebKit::PluginProcessProxy::didFinishLaunching):
Use Connection::identifierIsNull instead of explicit null check.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::connect):
If XPC is compiled in (it currently is not) enable it by default.

  • WebKit2.xcodeproj/project.pbxproj:

Add the new files and targets.

  • WebKit2Service: Added.
  • WebKit2Service/Info.plist: Added.

Add the paper work needed for an XPC service. Importantly, set up the XPC
service to be an Application service type, use NSApplicationMain as its run
loop, and allow for multiple instantiations. Also make sure the service acts
like the WebProcess binary by making it a LSUIElement, enabling LSFileQuarantine,
and setting the principle class to NSApplication.

  • WebKit2Service/MainMacService.mm: Added.

(WebKit2ServiceEventHandler):
(main):
The initialization of the XPC service is quite a bit different than the
WebProcess version, since we don't get passed parameters in argv. Instead,
we initiate the XPC service via xpc_main, and wait for the bootstrap message
we sent in ProcessLauncherMac.mm. When we receive that message we can load
WebKit2 framework and initialize the WebProcess normally (we also get the mach_port
for the CoreIPC connection in that bootstrap message).

  • WebProcess/mac/WebProcessMainMac.mm:

(WebKit::WebProcessMainXPC):
Add a variant of WebProcessMain that is used for the XPC service case, where we don't
have command line arguments and don't need to talk to the mach bootstrap server.

(WebKit::WebProcessMain):

  • mac/MainMac.cpp: Removed.
  • mac/MainMacProcess.cpp: Copied from Source/WebKit2/mac/MainMac.cpp.

Rename MainMac to MainMacProcess to signify that it is different from the XPC
service main.

2:17 PM Changeset in webkit [125357] by benjamin@webkit.org
  • 11 edits in trunk/Source

Do the DecimalNumber to String conversion on 8 bits
https://bugs.webkit.org/show_bug.cgi?id=93683

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-08-11
Reviewed by Andreas Kling.

Source/WebCore:

Numbers converted to string for CSS are unlikely to ever be concatenated with a 16bits string.
This patch change the conversion to be done to 8bits string in order to reduce memory allocations.

  • css/CSSPrimitiveValue.cpp:

(WebCore::formatNumber):

  • inspector/InspectorValues.cpp:

(WebCore::InspectorBasicValue::writeJSON):

  • platform/graphics/Color.cpp:

(WebCore::Color::serialized): Instead of allocating a static WTF::String, we can simply append the
string literal to the output vector.

Source/WTF:

Modify DecimalNumber to do the conversion to string on LChar instead of UChar.

  • wtf/DecimalNumber.cpp:

(WTF::DecimalNumber::toStringDecimal):
(WTF::DecimalNumber::toStringExponential):

  • wtf/DecimalNumber.h:

(DecimalNumber):

  • wtf/dtoa.h:
  • wtf/text/StringBuffer.h:

(WTF::StringBuffer::operator[]): StringBuffer::operator[] was incorrectly typed to UChar, making
the method impossible to instanciate with LChar.

  • wtf/text/WTFString.h:

(String):
(WTF::String::adopt): String::adopt() is modified to work with both LChar and UChar. StringImpl
already support that.
(WTF::appendNumber): Add support for any type that can instanciate the template.

2:12 PM Changeset in webkit [125356] by benjamin@webkit.org
  • 6 edits in trunk/Source

WebCore::findAtomicString(PropertyName) always convert the name to 16bits
https://bugs.webkit.org/show_bug.cgi?id=93685

Reviewed by Geoffrey Garen.

Source/WebCore:

  • bindings/js/JSDOMBinding.cpp:

(WebCore::findAtomicString):
Use the new AtomicString::find() to avoid calling StringImpl::characters().

Source/WTF:

Previously, WebCore::findAtomicString() was causing a conversion for the 8bit property name
to a 16bits due to the call to StringImpl::character16().

This patch fixes the issue by adding support for both 8bits and 16bits string in AtomicString::find().

  • wtf/text/AtomicString.cpp:

(HashAndCharacters):
(WTF::HashAndCharactersTranslator::hash):
(WTF::HashAndCharactersTranslator::equal):
(WTF::HashAndCharactersTranslator::translate):
Use a template to make the struct and the translator independant of the CharacterType.

(WTF::AtomicString::add):
(WTF::findString):
(WTF::AtomicString::find): Change the API to take a StringImpl*. AtomicString can use
it efficiently to find the right string.

  • wtf/text/AtomicString.h:

(AtomicString):

  • wtf/text/StringImpl.h:

(StringImpl): Adapt the friends translator to support the template.

1:01 PM Changeset in webkit [125355] by caio.oliveira@openbossa.org
  • 2 edits in trunk/Source/WebCore

[Qt] Remove QtSenderStack now we do not support qt_sender anymore in Qt bridge
https://bugs.webkit.org/show_bug.cgi?id=93767

Reviewed by Kenneth Rohde Christiansen.

Dead code after patch of bug 93649.

  • bridge/qt/qt_instance.h:

(QtInstance):

12:41 PM Changeset in webkit [125354] by jonlee@apple.com
  • 1 edit
    1 move in trunk/LayoutTests

webarchive/ignore-noscript-if-scripting.html expected results should use .webarchive extension
https://bugs.webkit.org/show_bug.cgi?id=93736
<rdar://problem/12077654>

Reviewed by Eric Seidel.

Because the test uses dumpDOMAsWebArchive(), the expected results extension should be .webarchive instead of .txt.

  • webarchive/ignore-noscript-if-scripting-enabled-expected.webarchive: Renamed from LayoutTests/webarchive/ignore-noscript-if-scripting-enabled-expected.txt.
9:07 AM Changeset in webkit [125353] by inferno@chromium.org
  • 2 edits in trunk/Source/WebCore

Unreviewed.

Removing newly added assert in r125351 since it is exposing
legitimate layout bugs in few tests. We will re-add the assert
after fixing those bugs. Failures are tracked in webkit bug 93766.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::removeFromTrackedRendererMaps):

6:26 AM Changeset in webkit [125352] by pierre.rossi@gmail.com
  • 4 edits in trunk/Source/WebKit/qt

[Qt] Add support for HTML5 state object history API in FrameLoaderClientQt
https://bugs.webkit.org/show_bug.cgi?id=93648

Reviewed by Kenneth Rohde Christiansen.

Add support for push/replace/pop by implementing dispatchDidNavigateWithinPage.

  • WebCoreSupport/FrameLoaderClientQt.cpp:

(WebCore::FrameLoaderClientQt::dispatchDidNavigateWithinPage):
(WebCore::FrameLoaderClientQt::dispatchDidPushStateWithinPage):
(WebCore::FrameLoaderClientQt::dispatchDidReplaceStateWithinPage):
(WebCore::FrameLoaderClientQt::dispatchDidPopStateWithinPage):

  • WebCoreSupport/FrameLoaderClientQt.h:

(FrameLoaderClientQt):

  • tests/qwebframe/tst_qwebframe.cpp:

(tst_QWebFrame):
(tst_QWebFrame::setUrlUsingStateObject): Added. Tests that the urlChanged signal is fired.

3:44 AM Changeset in webkit [125351] by leviw@chromium.org
  • 8 edits
    2 adds in trunk

Source/WebCore: Track block's positioned objects like percent-height descendants
https://bugs.webkit.org/show_bug.cgi?id=89848

Reviewed by Abhishek Arya.

The previous method for tracking a RenderBlock's out-of-flow positioned descendants was error prone,
subject to becoming inconsistent, and in the case of removePositionedObjects, inefficient. This patch
extracts the algorithm used for percent height descendants and re-uses it for positioned objects. This same
method could further be re-used for floats.

This change removes the m_positionedObjects pointer, which brings RenderBlock's size down (yay!).

Test: fast/block/positioning/relayout-nested-positioned-elements-crash-2.html

  • rendering/RenderBlock.cpp:

(SameSizeAsRenderBlock):
(WebCore):
(WebCore::removeBlockFromDescendantAndContainerMaps):
(WebCore::RenderBlock::~RenderBlock):
(WebCore::RenderBlock::addOverflowFromPositionedObjects):
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::markPositionedObjectsForLayout):
(WebCore::clipOutPositionedObjects):
(WebCore::RenderBlock::selectionGaps):
(WebCore::RenderBlock::insertIntoTrackedRendererMaps):
(WebCore::RenderBlock::removeFromTrackedRendererMaps):
(WebCore::RenderBlock::positionedObjects):
(WebCore::RenderBlock::insertPositionedObject):
(WebCore::RenderBlock::removePositionedObject):
(WebCore::RenderBlock::removePositionedObjects):
(WebCore::RenderBlock::addPercentHeightDescendant):
(WebCore::RenderBlock::removePercentHeightDescendant):
(WebCore::RenderBlock::percentHeightDescendants):
(WebCore::RenderBlock::checkPositionedObjectsNeedLayout):

  • rendering/RenderBlock.h:

(WebCore):
(RenderBlock):
(WebCore::RenderBlock::hasPositionedObjects):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::moveChildTo): Changing the fixme to reflect the assumption that the caller
has taken care of updating the positioned renderer maps is a decision not a bug. The ASSERT should help
assure this.

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layoutRows):

  • rendering/RenderView.cpp:

(WebCore::RenderView::setFixedPositionedObjectsNeedLayout):

LayoutTests: Track block's positioned objects like percent-height children
https://bugs.webkit.org/show_bug.cgi?id=89848

Reviewed by Abhishek Arya.

Adding another test to confirm that RenderBlock's positioned children lists don't become
inconsistent.

  • fast/block/positioning/relayout-nested-positioned-elements-crash-2-expected.txt: Added.
  • fast/block/positioning/relayout-nested-positioned-elements-crash-2.html: Added.
2:37 AM Changeset in webkit [125350] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Tools

[EFL] Bump harfbuzz dependency to v0.9.2
https://bugs.webkit.org/show_bug.cgi?id=93762

Reviewed by Eric Seidel.

EFL port has used harfbuzz 0.9.0 ver. However, the 0.9.2 version was released on 10th Aug 2012.
In addition, 0.9.0 ver. was disappeared. So, EFL port needs to use 0.9.2 ver. from now on.

  • efl/jhbuild.modules:
Note: See TracTimeline for information about the timeline view.