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

Timeline



May 18, 2014:

11:44 PM Changeset in webkit [169038] by akling@apple.com
  • 5 edits in trunk/Source/WebCore

Reduce constructor copypasta in RenderText and RenderElement.
<https://webkit.org/b/133056>

Use delegating constructors to remove duplicated initializer lists
from the constructors of RenderText and RenderElement.

Reviewed by Anders Carlsson.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::RenderElement):

  • rendering/RenderElement.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::RenderText):

  • rendering/RenderText.h:
10:50 PM Changeset in webkit [169037] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Crash during scroll when latched
https://bugs.webkit.org/show_bug.cgi?id=133064

Reviewed by Simon Fraser.

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::platformPrepareForWheelEvents): Prevent dereference of NULL
wheelEventTarget argument.

9:48 PM Changeset in webkit [169036] by Lucas Forschler
  • 1 delete in tags/Safari-538.34.42/safari-538.34-branch

Remove Duplicate Tag.

9:47 PM Changeset in webkit [169035] by matthew_hanson@apple.com
  • 5 edits in branches/safari-538.34-branch/Source

Versioning.

9:35 PM Changeset in webkit [169034] by Lucas Forschler
  • 1 copy in tags/Safari-538.34.42/safari-538.34-branch

New Tag.

9:34 PM Changeset in webkit [169033] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-538.34.42

New Tag.

7:37 PM Changeset in webkit [169032] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, remove bogus comment. We already made the FTL use our calling convention.
That was a long time ago.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileReturn):

5:51 PM Changeset in webkit [169031] by Lucas Forschler
  • 3 edits in branches/safari-538.34-branch/Source/WebKit2

Merged r168976.

5:45 PM Changeset in webkit [169030] by bshafiei@apple.com
  • 5 edits in branches/safari-538.34.5-branch/Source

Versioning.

5:43 PM Changeset in webkit [169029] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.34.7

New tag.

5:35 PM Changeset in webkit [169028] by bshafiei@apple.com
  • 5 edits in branches/safari-538.34.5-branch/Source

Versioning.

5:28 PM Changeset in webkit [169027] by bshafiei@apple.com
  • 3 edits in branches/safari-538.34.5-branch/Source/WebKit/mac

Merged r169018.

5:12 PM Changeset in webkit [169026] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Relax an assertion when creating document loaders
https://bugs.webkit.org/show_bug.cgi?id=133058

Reviewed by Sam Weinig.

When navigating back/forward items recursively, createDocumentLoader will be called
for subframes before main frames so only associate the navigation with main frames.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createDocumentLoader):

4:30 PM Changeset in webkit [169025] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

CMake Buildfix after r169023.

Patch by Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> on 2014-05-18
Reviewed by Csaba Osztrogonác.

  • CMakeLists.txt: Add new files after r168994.
4:25 PM Changeset in webkit [169024] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Input ::selection pseudo class does not work leading to hidden selection
https://bugs.webkit.org/show_bug.cgi?id=38943

Source/WebCore:

Patch by Svetlana Redchenko <redchenko@yandex-team.ru> on 2014-05-18
Reviewed by Darin Adler.

Test: fast/selectors/input-with-selection-pseudo-element.html

When text is selected inside input element, it should change the
color and background color according to the ::selection pseudo element.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::selectionBackgroundColor):
(WebCore::RenderObject::selectionColor):
(WebCore::RenderObject::selectionPseudoStyle):

  • rendering/RenderObject.h:

LayoutTests:

Patch by Svetlana Redchenko <redchenko@yandex-team.ru> on 2014-05-18
Reviewed by Darin Adler.

  • fast/selectors/input-with-selection-pseudo-element-expected.html: Added.
  • fast/selectors/input-with-selection-pseudo-element.html: Added.
4:12 PM Changeset in webkit [169023] by weinig@apple.com
  • 24 edits
    1 move
    16 adds
    1 delete in trunk/Source

[WebKit2] Implement ScriptMessageHandlers
https://bugs.webkit.org/show_bug.cgi?id=133053

Reviewed by Anders Carlsson.

  • DerivedSources.make:

../WebCore:

  • WebCore.exp.in:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::finishCreation):

  • bindings/js/JSUserMessageHandlersNamespaceCustom.cpp: Added.

(WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld):
(WebCore::DOMWindow::webkitNamespace):

  • page/DOMWindow.h:
  • page/UserContentController.cpp:

(WebCore::UserContentController::addUserMessageHandlerDescriptor):
(WebCore::UserContentController::removeUserMessageHandlerDescriptor):

  • page/UserContentController.h:

(WebCore::UserContentController::userMessageHandlerDescriptors):

  • page/UserMessageHandler.cpp: Added.

(WebCore::UserMessageHandler::UserMessageHandler):
(WebCore::UserMessageHandler::~UserMessageHandler):
(WebCore::UserMessageHandler::postMessage):
(WebCore::UserMessageHandler::name):
(WebCore::UserMessageHandler::world):

  • page/UserMessageHandler.h: Added.

(WebCore::UserMessageHandler::create):

  • page/UserMessageHandler.idl: Added.
  • page/UserMessageHandlerDescriptor.cpp: Added.

(WebCore::UserMessageHandlerDescriptor::UserMessageHandlerDescriptor):
(WebCore::UserMessageHandlerDescriptor::~UserMessageHandlerDescriptor):
(WebCore::UserMessageHandlerDescriptor::name):
(WebCore::UserMessageHandlerDescriptor::world):

  • page/UserMessageHandlerDescriptor.h: Added.

(WebCore::UserMessageHandlerDescriptor::Client::~Client):
(WebCore::UserMessageHandlerDescriptor::create):
(WebCore::UserMessageHandlerDescriptor::client):

  • page/UserMessageHandlerDescriptorTypes.h: Added.
  • page/UserMessageHandlersNamespace.cpp: Added.

(WebCore::UserMessageHandlersNamespace::UserMessageHandlersNamespace):
(WebCore::UserMessageHandlersNamespace::~UserMessageHandlersNamespace):
(WebCore::UserMessageHandlersNamespace::handler):

  • page/UserMessageHandlersNamespace.h: Added.

(WebCore::UserMessageHandlersNamespace::create):

  • page/UserMessageHandlersNamespace.idl: Added.
  • page/WebKitNamespace.cpp: Added.

(WebCore::WebKitNamespace::WebKitNamespace):
(WebCore::WebKitNamespace::~WebKitNamespace):
(WebCore::WebKitNamespace::messageHandlers):

  • page/WebKitNamespace.h: Added.

(WebCore::WebKitNamespace::create):

  • page/WebKitNamespace.idl: Added.

../WebKit2:

  • Scripts/webkit2/messages.py:

(struct_or_class):
(argument_coder_headers_for_type):
(headers_for_type):

  • UIProcess/API/Cocoa/WKScriptMessage.mm:

(-[WKScriptMessage _initWithBody:webView:name:]):
(-[WKScriptMessage body]):
(-[WKScriptMessage webView]):
(-[WKScriptMessage name]):
(-[WKScriptMessage _scriptWorld]): Deleted.

  • UIProcess/API/Cocoa/WKScriptMessageInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKScriptMessagePrivate.h.
  • UIProcess/API/Cocoa/WKScriptMessagePrivate.h: Removed.
  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController addScriptMessageHandler:name:]):
(-[WKUserContentController removeScriptMessageHandlerForName:]):
(-[WKUserContentController _addScriptMessageHandler:name:world:]): Deleted.
(-[WKUserContentController _removeScriptMessageHandlerForName:world:]): Deleted.

  • UIProcess/API/Cocoa/WKUserContentControllerInternal.h:
  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: Removed.
  • UIProcess/API/Cocoa/WKWebView.mm:

(pageToViewMap):
(fromWebPageProxy):
(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView dealloc]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/UserContent/WebScriptMessageHandler.cpp: Added.

(WebKit::WebScriptMessageHandlerHandle::encode):
(WebKit::WebScriptMessageHandlerHandle::decode):
(WebKit::generateIdentifier):
(WebKit::WebScriptMessageHandler::create):
(WebKit::WebScriptMessageHandler::WebScriptMessageHandler):
(WebKit::WebScriptMessageHandler::~WebScriptMessageHandler):

  • UIProcess/UserContent/WebScriptMessageHandler.h: Added.

(WebKit::WebScriptMessageHandler::Client::~Client):
(WebKit::WebScriptMessageHandler::handle):
(WebKit::WebScriptMessageHandler::identifier):
(WebKit::WebScriptMessageHandler::name):
(WebKit::WebScriptMessageHandler::client):

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::removeProcess):
(WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler):
(WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName):
(WebKit::WebUserContentControllerProxy::didPostMessage):

  • UIProcess/UserContent/WebUserContentControllerProxy.h:
  • UIProcess/UserContent/WebUserContentControllerProxy.messages.in: Added.
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserMessageHandlerDescriptorProxy::create):
(WebKit::WebUserMessageHandlerDescriptorProxy::~WebUserMessageHandlerDescriptorProxy):
(WebKit::WebUserMessageHandlerDescriptorProxy::didPostMessage):
(WebKit::WebUserMessageHandlerDescriptorProxy::descriptor):
(WebKit::WebUserMessageHandlerDescriptorProxy::identifier):
(WebKit::WebUserMessageHandlerDescriptorProxy::WebUserMessageHandlerDescriptorProxy):
(WebKit::WebUserContentController::addUserScriptMessageHandlers):
(WebKit::WebUserContentController::removeUserScriptMessageHandler):

  • WebProcess/UserContent/WebUserContentController.h:
  • WebProcess/UserContent/WebUserContentController.messages.in:
4:10 PM Changeset in webkit [169022] by bshafiei@apple.com
  • 3 edits in tags/Safari-538.34.6/Source/WebKit/mac

Merged r169018.

4:06 PM Changeset in webkit [169021] by bshafiei@apple.com
  • 5 edits in tags/Safari-538.34.6/Source

Versioning.

4:01 PM Changeset in webkit [169020] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.34.6

New tag.

3:03 PM Changeset in webkit [169019] by mjs@apple.com
  • 4 edits in trunk

REGRESSION (r156546): Default media controls are laid out incorrectly when media element is styled with direction:rtl
https://bugs.webkit.org/show_bug.cgi?id=132531
<rdar://problem/16806267>

Source/WebCore:

Reviewed by Mark Rowe.

This was already tested by the media/video-rtl.htm reftest, now unskipped.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-panel): Add missing direction: ltr

LayoutTests:

Reviewed by Mark Rowe.

  • platform/mac/TestExpectations: Unskip media/video-rtl.html
2:36 PM Changeset in webkit [169018] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Bring back two NSString category methods on iOS
https://bugs.webkit.org/show_bug.cgi?id=133055
<rdar://problem/16951983>

Reviewed by Adele Peterson.

  • Misc/WebNSURLExtras.h:
  • Misc/WebNSURLExtras.mm:

(-[NSString _webkit_unescapedQueryValue]):
(-[NSString _webkit_queryKeysAndValues]):

1:36 PM Changeset in webkit [169017] by cabanier@adobe.com
  • 22 edits
    2 adds in trunk

support for navigator.hardwareConcurrency
https://bugs.webkit.org/show_bug.cgi?id=132588

Reviewed by Filip Pizlo.

.:

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:
Added a new API that returns the number of CPU cores up to 8.

Test: fast/dom/navigator-hardwareConcurrency.html

  • Configurations/FeatureDefines.xcconfig:
  • page/Navigator.cpp:

(WebCore::Navigator::hardwareConcurrency):

  • page/Navigator.h:
  • page/Navigator.idl:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

  • fast/dom/navigator-detached-no-crash-expected.txt:
  • fast/dom/navigator-hardwareConcurrency-expected.txt: Added.
  • fast/dom/navigator-hardwareConcurrency.html: Added.
12:33 PM Changeset in webkit [169016] by andersca@apple.com
  • 13 edits in trunk

Implement Navigations for all methods declared returning one
https://bugs.webkit.org/show_bug.cgi?id=133048
<rdar://problem/16830064>

Reviewed by Sam Weinig.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView goToBackForwardListItem:]):
(-[WKWebView goBack]):
(-[WKWebView goForward]):
(-[WKWebView reload]):
(-[WKWebView reloadFromOrigin]):
Create and return navigations.

(-[WKWebView _reload]):
Call -[WKWebView reload].

  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::createBackForwardNavigation):
Create a back/forward navigation.

(WebKit::NavigationState::createReloadNavigation):
Create a reload navigation.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcessWithItem):
Generate a navigation ID and send it with the GoToBackForwardItem message.

(WebKit::WebPageProxy::reload):
Return a navigation ID.

(WebKit::WebPageProxy::goForward):
Generate a navigation ID and send it with the GoForward message.

(WebKit::WebPageProxy::goBack):
Generate a navigation ID and send it with the GoBack message.

(WebKit::WebPageProxy::goToBackForwardItem):
Generate a navigation ID and send it with the GoToBackForwardItem message.

  • UIProcess/WebPageProxy.h:

Return navigation IDs where appropriate.

  • UIProcess/cf/WebPageProxyCF.cpp:

(WebKit::WebPageProxy::restoreFromSessionStateData):
Generate a navigation ID and send it with the RestoreSessionAndNavigateToCurrentItem message.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::goForward):
(WebKit::WebPage::goBack):
(WebKit::WebPage::goToBackForwardItem):
Set up the pending navigation ID.

(WebKit::WebPage::restoreSessionAndNavigateToCurrentItem):
Call goToBackForwardItem with a navigation ID.

  • WebProcess/WebPage/WebPage.h:

Add navigation IDs.

  • WebProcess/WebPage/WebPage.messages.in:

Add navigation IDs.

Tools:

  • MiniBrowser/mac/MiniBrowser_Prefix.pch:

Import WebKit.h.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController webView:didStartProvisionalNavigation:]):
(-[WK2BrowserWindowController webView:didReceiveServerRedirectForProvisionalNavigation:]):
(-[WK2BrowserWindowController webView:didFailProvisionalNavigation:withError:]):
(-[WK2BrowserWindowController webView:didCommitNavigation:]):
(-[WK2BrowserWindowController webView:didFinishLoadingNavigation:]):
(-[WK2BrowserWindowController webView:didFailNavigation:withError:]):
Print out the navigations.

10:47 AM Changeset in webkit [169015] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix iOS build.

  • WebCore.exp.in:

Move UserContentController symbols to the right place.

10:32 AM Changeset in webkit [169014] by fpizlo@apple.com
  • 3 edits in branches/ftlopt/Source/JavaScriptCore

[ftlopt] Factor out how CallLinkStatus uses exit site data
https://bugs.webkit.org/show_bug.cgi?id=133042

Reviewed by Anders Carlsson.

This makes it easier to use CallLinkStatus from clients that are calling into after
already holding some of the relevant locks. This is necessary because we use a "one lock
at a time" policy for CodeBlock locks: if you hold one then you're not allowed to acquire
any of the others. So, any code that needs to lock multiple CodeBlock locks needs to sort
of lock one, do some stuff, release it, then lock another, and then do more stuff. The
exit site data corresponds to the stuff you do while holding the baseline lock, while the
CallLinkInfo method corresponds to the stuff you do while holding the CallLinkInfo owner's
lock.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::computeExitSiteData):
(JSC::CallLinkStatus::computeDFGStatuses):

  • bytecode/CallLinkStatus.h:

(JSC::CallLinkStatus::ExitSiteData::ExitSiteData):

9:53 AM Changeset in webkit [169013] by jonlee@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix for r169006.

Unreviewed.

  • loader/ResourceLoader.h: Return didCreateQuickLookHandle() to public.
9:29 AM Changeset in webkit [169012] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Unreviewed, rolling out r169001.
https://bugs.webkit.org/show_bug.cgi?id=133050

We can't expose the C SPI from WKWebView (Requested by
andersca on #webkit).

Reverted changeset:

"Need a way to get a WKPageRef from a WKWebView"
https://bugs.webkit.org/show_bug.cgi?id=133015
http://trac.webkit.org/changeset/169001

3:51 AM Changeset in webkit [169011] by Antti Koivisto
  • 9 edits
    2 adds in trunk

REGRESSION (r160259): text-combine glyphs are not rendered
https://bugs.webkit.org/show_bug.cgi?id=127324

Reviewed by Andreas Kling.

Source/WebCore:

The original text gets overwritten by a change that is supposed to affect rendered text only.
Fixed by giving the text update functions well-defined purposes.

Test: fast/text/text-combine-rendering.html

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::styleDidChange):
(WebCore::RenderCombineText::setRenderedText):
(WebCore::RenderCombineText::combineText):
(WebCore::RenderCombineText::setTextInternal): Deleted.

  • rendering/RenderCombineText.h:
  • rendering/RenderCounter.cpp:

(WebCore::RenderCounter::computePreferredLogicalWidths):

  • rendering/RenderText.cpp:

(WebCore::RenderText::setRenderedText):

This function now updates the rendered text but does not change the original.
Get the original text by calling originalText().

(WebCore::RenderText::setText):

This the only place original text now changes.

(WebCore::RenderText::setTextInternal): Deleted.

Renamed to setRenderedText.

  • rendering/RenderText.h:
  • rendering/svg/RenderSVGInlineText.cpp:

(WebCore::RenderSVGInlineText::setRenderedText):
(WebCore::RenderSVGInlineText::setTextInternal): Deleted.

  • rendering/svg/RenderSVGInlineText.h:

LayoutTests:

  • fast/text/text-combine-rendering-expected.html: Added.
  • fast/text/text-combine-rendering.html: Added.
12:57 AM Changeset in webkit [169010] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[WK2][GTK] Buildfix after r168999.

Patch by Martin Hodovan <mhodovan.u-szeged@partner.samsung.com> on 2014-05-18
Reviewed by Csaba Osztrogonác.

  • UIProcess/gtk/WebContextGtk.cpp:

(WebKit::WebContext::platformDefaultWebSQLDatabaseDirectory): Renamed from WebKit::WebContext::platformDefaultDatabaseDirectory().
(WebKit::WebContext::platformDefaultIndexedDBDatabaseDirectory): Added.

12:52 AM Changeset in webkit [169009] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[WK2][EFL] Buildfix after r168999.

Patch by Martin Hodovan <mhodovan.u-szeged@partner.samsung.com> on 2014-05-18
Reviewed by Csaba Osztrogonác.

  • UIProcess/efl/WebContextEfl.cpp:

(WebKit::WebContext::platformDefaultWebSQLDatabaseDirectory): Renamed from WebKit::WebContext::platformDefaultDatabaseDirectory().
(WebKit::WebContext::platformDefaultIndexedDBDatabaseDirectory): Added.

12:43 AM Changeset in webkit [169008] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[WK2][cmake] Buildfix after r168994.

Patch by Martin Hodovan <mhodovan.u-szeged@partner.samsung.com> on 2014-05-18
Reviewed by Csaba Osztrogonác.

  • CMakeLists.txt: Added new files to the build system introduced in r168994.

May 17, 2014:

11:11 PM Changeset in webkit [169007] by mjs@apple.com
  • 3 edits
    4 adds in trunk

Don't attempt to update id or name for nodes that are already removed
https://bugs.webkit.org/show_bug.cgi?id=133041

Reviewed by Sam Weinig.

Source/WebCore:

Tests: fast/dom/remove-element-with-id-that-was-inserted-on-DOMNodeRemoved.html

fast/dom/remove-element-with-name-that-was-inserted-on-DOMNodeRemoved.html

  • dom/Element.cpp:

(WebCore::Element::removedFrom): Skip updating ids and names for an element not
in a treescope, as we already do for elements not in a document.

LayoutTests:

Test originally by Dan Bates.

  • fast/dom/remove-element-with-id-that-was-inserted-on-DOMNodeRemoved-expected.txt: Added.
  • fast/dom/remove-element-with-id-that-was-inserted-on-DOMNodeRemoved.html: Added.
  • fast/dom/remove-element-with-name-that-was-inserted-on-DOMNodeRemoved-expected.txt: Added.
  • fast/dom/remove-element-with-name-that-was-inserted-on-DOMNodeRemoved.html: Added.
10:29 PM Changeset in webkit [169006] by ap@apple.com
  • 11 edits in trunk

REGRESSION (NetworkProcess): Trying to use appcache fallback crashes in ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache
https://bugs.webkit.org/show_bug.cgi?id=133007
<rdar://problem/13702706>

appcache tests often fail on the Mac WebKit2 bot
https://bugs.webkit.org/show_bug.cgi?id=82061

Reviewed by Maciej Stachowiak.

Source/WebCore:
Covered by existing tests, which this patch enables.

  • WebCore.exp.in: Export ResourceLoader::cancel(const ResourceError&). It used

to be virtual, but marking subclasses final has resulted in the compiler calling
it directly from WebKitLegacy framework. Seeing that no subclass overrides it,
I then made it non-virtual.
Also export ApplicationCacheHost functions that are now used from WebKit2.

  • loader/ResourceLoader.h: Made the class abstract (as I didn't realize at first

that it's always either a SubresourceLoader or a NetscapePlugInStreamLoader).
Made ResourceHandleClient functions private, as they should never be called other
than via a ResourceHandleClient pointer.

  • loader/NetscapePlugInStreamLoader.h:
  • loader/SubresourceLoader.h:

Marked these final.

  • loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willSwitchToSubstituteResource):

Added a function to be called when switching to a substitute resource. We still
need a ResourceLoader at this point, as substitute resource will be delivered through
it, but we don't want it to continue its current load.

  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):
Call the ResourceLoader function instead of using handle, which is null when
using out of process networking.

Source/WebKit2:

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::willSendRequest):
(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
(WebKit::WebResourceLoader::didFailResourceLoad):
Perform the same appcache checks that ResourceHandleClient implementation in ResourceLoader
does. We should eventually come up with a way to share the code. Perhaps add a class that
isolates ResourceLoader from networking details? But ResourceLoader was itself supposed
to be the class that isolates DocumentLoader from networking details. So, unsure.

LayoutTests:

  • platform/mac-wk2/TestExpectations: Let's enable all the appcache tests (except

for a couple that fail), and see what happens on bots. I don't see any reason
why WebKit2 would be any more flaky than WebKit1 here.

8:44 PM Changeset in webkit [169005] by fpizlo@apple.com
  • 7 edits in branches/ftlopt/Source/JavaScriptCore

[ftlopt] InlineCallFrame::isCall should be an enumeration
https://bugs.webkit.org/show_bug.cgi?id=133034

Reviewed by Sam Weinig.

Once we start inlining getters and setters, we'll want InlineCallFrame to be able to tell
us that the inlined call was a getter call or a setter call. Initially I thought I would
have a new field called "kind" that would have components NormalCall, GetterCall, and
SetterCall. But that doesn't make sense, because for GetterCall and SetterCall, isCall
would have to be true. Hence, It makes more sense to have one enumeration that is Call,
Construct, GetterCall, or SetterCall. This patch is a first step towards this.

It's interesting that isClosureCall should probably still be separate, since getter and
setter inlining could inline closure calls.

  • bytecode/CodeBlock.h:

(JSC::baselineCodeBlockForInlineCallFrame):

  • bytecode/CodeOrigin.cpp:

(JSC::InlineCallFrame::dumpInContext):
(WTF::printInternal):

  • bytecode/CodeOrigin.h:

(JSC::InlineCallFrame::kindFor):
(JSC::InlineCallFrame::specializationKindFor):
(JSC::InlineCallFrame::InlineCallFrame):
(JSC::InlineCallFrame::specializationKind):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGOSRExitPreparation.cpp:

(JSC::DFG::prepareCodeOriginForOSRExit):

  • runtime/Arguments.h:

(JSC::Arguments::finishCreation):

7:05 PM Changeset in webkit [169004] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

We shouldn't make a ScrollingThread on iOS.
<https://webkit.org/b/133038>
<rdar://problem/16947589>

Don't call ScrollingThred::dispatch() from the pressure relief
code on iOS since that will end up instantiating a scrolling thread
which we'd otherwise never have.

Reviewed by Sam Weinig.

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseMemory):

6:43 PM Changeset in webkit [169003] by jaepark@webkit.org
  • 4 edits in trunk/Source/WebKit2

[EFL] Remove m_contentPosition from PageViewportControllerClientEfl
https://bugs.webkit.org/show_bug.cgi?id=132774

Reviewed by Anders Carlsson.

m_contentPosition is not used anywhere. So, this patch removes
m_contentPosition and reduces one unnecessary assignment in
setViewportPosition. Also, it renames contentsPoint to contentsPosition.

  • UIProcess/PageViewportControllerClient.h:
  • UIProcess/efl/PageViewportControllerClientEfl.cpp:

(WebKit::PageViewportControllerClientEfl::setViewportPosition):

  • UIProcess/efl/PageViewportControllerClientEfl.h:
5:40 PM Changeset in webkit [169002] by Alan Bujtas
  • 10 edits in trunk

Subpixel rendering: Add subpixelCSSOMElementMetricsEnabled to WK1 WebPreferences.
https://bugs.webkit.org/show_bug.cgi?id=133029

Reviewed by Simon Fraser.

Source/WebKit/mac:
To match the WK2 preferences API.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences subpixelCSSOMElementMetricsEnabled]):
(-[WebPreferences setSubpixelCSSOMElementMetricsEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Tools:
Added a menu item to toggle subpixelCSSOMElementMetricsEnabled's value. However
toggling it on a WK2 window needs restart.
Adding dynamic toggle to WK2 requires a WebPreferences SPI. It's not worth cluttering
the WebPreferences just to support this temporary toggle.

  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController validateMenuItem:]):
(-[WK1BrowserWindowController isSubpixelCSSOMElementMetricsEnabled]):
(-[WK1BrowserWindowController toggleSubpixelCSSOMElementMetricsEnabled:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController isSubpixelCSSOMElementMetricsEnabled]):
(-[WK2BrowserWindowController toggleSubpixelCSSOMElementMetricsEnabled:]):

5:38 PM Changeset in webkit [169001] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit2

Need a way to get a WKPageRef from a WKWebView
<http://webkit.org/b/133015>

Reviewed by Benjamin Poulain.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _pageRef]): Added.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

(-[WKWebView _pageRef]): Added declaration.

4:24 PM Changeset in webkit [169000] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Give user scripts custom URLs
https://bugs.webkit.org/show_bug.cgi?id=133035

Reviewed by Beth Dakin.

  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController addUserScript:]):
Create a user-script:<number> URL for user scripts.

  • UIProcess/API/Cocoa/WKUserScript.h:

Move the init method after the properties.

3:31 PM Changeset in webkit [168999] by andersca@apple.com
  • 16 edits in trunk

Replace WKContextSetDatabaseDirectory with two WKContextConfiguration parameters
https://bugs.webkit.org/show_bug.cgi?id=133033
<rdar://problem/16830143>

Reviewed by Sam Weinig.

Source/WebKit2:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:

Rename databaseDirectory to webSQLDatabaseDirectory to better indicate the directory type.

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetDatabaseDirectory): Deleted.
This is no longer needed.

  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCopyIndexedDBDatabaseDirectory):
(WKContextConfigurationSetIndexedDBDatabaseDirectory):
(WKContextConfigurationCopyWebSQLDatabaseDirectory):
(WKContextConfigurationSetWebSQLDatabaseDirectory):

  • UIProcess/API/C/WKContextConfigurationRef.h:

Add setters and getters.

  • UIProcess/API/C/WKContextPrivate.h:

Remove WKContextSetDatabaseDirectory.

  • UIProcess/APIContextConfiguration.cpp:

(API::ContextConfiguration::webContextConfiguration):
Set m_indexedDBDatabaseDirectory and m_webSQLDatabaseDirectory on the configuration.

  • UIProcess/APIContextConfiguration.h:

(API::ContextConfiguration::indexedDBDatabaseDirectory):
(API::ContextConfiguration::setIndexedDBDatabaseDirectory):
(API::ContextConfiguration::webSQLDatabaseDirectory):
(API::ContextConfiguration::setWebSQLDatabaseDirectory):
Add getters and setters to the C++ part of WKContextConfigurationRef.

  • UIProcess/WebContext.cpp:

(WebKit::WebContext::applyPlatformSpecificConfigurationDefaults):
Set webSQLDatabaseDirectory and indexedDBDatabaseDirectory.

(WebKit::WebContext::WebContext):
Initialize m_webSQLDatabaseDirectory and m_indexedDBDatabaseDirectory.

(WebKit::WebContext::ensureDatabaseProcess):
Set parameters.indexedDatabaseDirectory from m_indexedDBDatabaseDirectory.

(WebKit::WebContext::createNewWebProcess):
Set parameters.webSQLDatabaseDirectory from m_webSQLDatabaseDirectory.

  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::platformDefaultWebSQLDatabaseDirectory):
Rename this to indicate that it's about WebSQL databases.

(WebKit::WebContext::platformDefaultIndexedDBDatabaseDirectory):
Add this.

  • WebProcess/WebCoreSupport/WebDatabaseManager.cpp:

(WebKit::WebDatabaseManager::initialize):
Update for WebProcessCreationParameters rename.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
Update for WebProcessCreationParameters rename.

Tools:
Set up the WebSQL and IndexedDB directories.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

2:49 PM Changeset in webkit [168998] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

[Phone Number Detection] drop-down menu in the phone number detection box doesn't appear.
https://bugs.webkit.org/show_bug.cgi?id=133024

Reviewed by Sam Weinig.

  • WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:

(WebKit::TelephoneNumberOverlayController::drawRect): Don't clear the set of found phone numbers each
time we call drawRect. This gets called ~9 times per screen refresh, so end up with no active
phone numbers to interact with.

2:42 PM Changeset in webkit [168997] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

NetworkProcess can repeatedly crash handling Blob messages after any unrelated crash
https://bugs.webkit.org/show_bug.cgi?id=133032
<rdar://problem/16951630>

Reviewed by Geoffrey Garen.

Replaced assertions with runtime checks. This can happen if NetworkProcess previously
crashed for any unrelated reason.

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::registerBlobURL):
(WebKit::NetworkBlobRegistry::registerBlobURLForSlice):
(WebKit::NetworkBlobRegistry::unregisterBlobURL):

2:36 PM Changeset in webkit [168996] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Setting playback rate on video with media controller is not ignored.
https://bugs.webkit.org/show_bug.cgi?id=129048

Patch by Piotr Grad <p.grad@samsung.com> on 2014-05-17
Reviewed by Jer Noble.

Source/WebCore:
Replaced queries for m_playbackRate with effectivePlaybackRate()
which includes media controller playback rate.

Test: media/video-controller-child-rate.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • html/HTMLMediaElement.h:

LayoutTests:

  • media/video-controller-child-rate-expected.txt: Added.
  • media/video-controller-child-rate.html: Added.
1:14 PM Changeset in webkit [168995] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

-[WKWebView dealloc] should close the page
https://bugs.webkit.org/show_bug.cgi?id=133031
<rdar://problem/16929815>

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView dealloc]):

12:57 PM Changeset in webkit [168994] by andersca@apple.com
  • 27 edits
    6 copies
    5 adds in trunk/Source

Expose WKUserScript as API
https://bugs.webkit.org/show_bug.cgi?id=133017
<rdar://problem/16948059>

Reviewed by Sam Weinig.

Source/WebCore:

  • WebCore.exp.in:

Export symbols.

  • WebCore.xcodeproj/project.pbxproj:

Change UserContentController.h to be a private header.

  • page/Page.cpp:

(WebCore::Page::Page):
Set m_userContentController from the page configuration and add it if it's not null.

  • page/Page.h:

Add UserContentController to PageClients.

  • page/PageGroup.cpp:

(WebCore::PageGroup::addPage):
Only try to add a user content controller if the page doesn't already have one.

(WebCore::PageGroup::removePage):
Only try to remove the user content controller if it's the group one.

Source/WebKit2:

  • DerivedSources.make:

Add WebUserContentController.

  • Shared/API/Cocoa/WebKit.h:

Add WKUserScript.h

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toUserScriptInjectionTime):
Update for WKUserScriptInjectionTime -> _WKUserScriptInjectionTime rename.

  • Shared/API/c/WKUserScriptInjectionTime.h:

Rename WKUserScriptInjectionTime to _WKUserScriptInjectionTime to free up the name for the Objective-C API

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode):
Encode the user content controller ID.

(WebKit::WebPageCreationParameters::decode):
Decode the user content controller ID.

  • Shared/WebPageCreationParameters.h:

Add userContentControllerID.

  • UIProcess/API/C/WKPageGroup.cpp:

(WKPageGroupAddUserScript):
Update for WKUserScriptInjectionTime -> _WKUserScriptInjectionTime rename.

  • UIProcess/API/C/WKPageGroup.h:

Update for WKUserScriptInjectionTime -> _WKUserScriptInjectionTime rename.

  • UIProcess/API/Cocoa/WKBrowsingContextGroup.h:

Update for WKUserScriptInjectionTime -> _WKUserScriptInjectionTime rename.

  • UIProcess/API/Cocoa/WKBrowsingContextGroup.mm:

(-[WKBrowsingContextGroup addUserScript:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:injectionTime:mainFrameOnly:]):
Update for WKUserScriptInjectionTime -> _WKUserScriptInjectionTime rename.

  • UIProcess/API/Cocoa/WKUserContentController.h:

Add new methods.

  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController init]):
Create the WebUserContentControllerProxy object and user scripts array.

(-[WKUserContentController userScripts]):
Return the user scripts array.

(toWebCoreUserScriptInjectionTime):
Helper for converting from a WKUserScriptInjectionTime enum to WebCore::UserScriptInjectionTime.

(-[WKUserContentController addUserScript:]):
Call through to the _userContentControllerProxy object.

(-[WKUserContentController removeAllUserScripts]):
Call through to the _userContentControllerProxy object.

  • UIProcess/API/Cocoa/WKUserContentControllerInternal.h: Added.

Add WebUserContentControllerProxy ivar.

  • UIProcess/API/Cocoa/WKUserScript.h: Added.

Add new header.

  • UIProcess/API/Cocoa/WKUserScript.mm:

(-[WKUserScript initWithSource:injectionTime:forMainFrameOnly:]):
Initialize the WKUserScript object.

(-[WKUserScript source]):
(-[WKUserScript injectionTime]):
(-[WKUserScript isForMainFrameOnly]):
Add getters.

(-[WKUserScript copyWithZone:]):
Since WKUserScript is immutable, just return a retained object.

  • UIProcess/API/Cocoa/WKUserScriptInternal.h:

Add ivars.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):
Set the user content controller from the configuration.

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp: Added.

(WebKit::generateIdentifier):
Return a unique identifier.

(WebKit::WebUserContentControllerProxy::create):
Return a new WebUserContentControllerProxy object.

(WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy):
Initialize m_identifier.

(WebKit::WebUserContentControllerProxy::~WebUserContentControllerProxy):
Add destructor.

(WebKit::WebUserContentControllerProxy::addProcess):
Add the process to the m_processes set. If it's the first time doing so, add the user scripts we know about.

(WebKit::WebUserContentControllerProxy::removeProcess):
Remove the process from m_processes.

(WebKit::WebUserContentControllerProxy::addUserScript):
Add the user script and let all the web processes know that it was added.

(WebKit::WebUserContentControllerProxy::removeAllUserScripts):
Remove all user scripts and tell all the web processes about it.

  • UIProcess/UserContent/WebUserContentControllerProxy.h:

Add new class.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
If the process is already running, add it to the user content controller.

(WebKit::WebPageProxy::close):
If the process is running, remove it from the user content controller.

(WebKit::WebPageProxy::connectionWillOpen):
Add the process to the user content controller.

(WebKit::WebPageProxy::resetStateAfterProcessExited):
Remove the process from the user content controller.

(WebKit::WebPageProxy::creationParameters):
Pass along the user content controller ID when creating the web page.

  • UIProcess/WebPageProxy.h:

Add a WebUserContentControllerProxy object to the web page configuration.

  • WebKit2.xcodeproj/project.pbxproj:

Add new files.

  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:

Update for WKUserScriptInjectionTime -> _WKUserScriptInjectionTime rename.

  • WebProcess/UserContent/WebUserContentController.cpp: Added.

New class that manages a WebCore::UserContentController object.

(WebKit::WebUserContentController::getOrCreate):
Look up (or create) a WebUserContentController object given its identifier.

(WebKit::WebUserContentController::WebUserContentController):
Add ourselves as a message receiver.

(WebKit::WebUserContentController::~WebUserContentController):
Remove ourselves as a message receiver.

(WebKit::WebUserContentController::addUserScripts):
Add all passed in user scripts to the WebCore user content controller object.

(WebKit::WebUserContentController::removeAllUserScripts):
Remove all user scripts from the WebCore user content controller object.

  • WebProcess/UserContent/WebUserContentController.messages.in: Added.

Add new messages file.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
Get a WebUserContentController object and pass it along to WebCore.

  • WebProcess/WebPage/WebPage.h:

Add WebUserContentController member.

3:08 AM Changeset in webkit [168993] by akling@apple.com
  • 7 edits in trunk/Source/WebCore

REGRESSION (r166422): All RenderBox objects grew 104 bytes from adding repaint timers.
<https://webkit.org/b/133027>
<rdar://problem/16867410>

Instead of storing a rarely-used repaint timer on every RenderBox, store one
on the RenderView, and keep a hash set of renderers needing repaint.

Renderers get a flag tracking whether they have a pending lazy repaint.
This way we can avoid hash lookups in the common case.

Also added a static assertion to catch RenderBox growing in the future.

Reviewed by Antti Koivisto.

  • rendering/RenderBox.cpp:

(WebCore::SameSizeAsRenderBox::~SameSizeAsRenderBox):
(WebCore::RenderBox::RenderBox):
(WebCore::RenderBox::~RenderBox):
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::layoutOverflowRectForPropagation):

  • rendering/RenderBox.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::RenderElement):

  • rendering/RenderElement.h:

(WebCore::RenderElement::setRenderBoxNeedsLazyRepaint):
(WebCore::RenderElement::renderBoxNeedsLazyRepaint):

  • rendering/RenderView.cpp:

(WebCore::RenderView::RenderView):
(WebCore::RenderView::scheduleLazyRepaint):
(WebCore::RenderView::unscheduleLazyRepaint):
(WebCore::RenderView::lazyRepaintTimerFired):

  • rendering/RenderView.h:
Note: See TracTimeline for information about the timeline view.