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

Timeline



Apr 22, 2018:

11:48 PM Changeset in webkit [230905] by zandobersek@gmail.com
  • 5 edits
    2 adds in trunk/Source/WebCore

[AsyncScrolling] Add generic ScrollingThread implementation
https://bugs.webkit.org/show_bug.cgi?id=184809

Reviewed by Yusuke Suzuki.

Add a generic ScrollingThread implementation that internally uses
RunLoop facilities to run the scrolling thread and dispatch
callbacks on that thread.

ScrollingThread::initializeRunLoop() retrieves address of the
thread-specific RunLoop and signals the Condition object.
ScrollingThread::wakeUpRunLoop() uses RunLoop::dispatch() to schedule
callback dispatches on the scrolling thread.

ScrollingThread::createThreadIfNeeded() mimics Cocoa implementation and
waits for the RunLoop address to be retrieved before continuing.

  • SourcesGTK.txt: Add to build.
  • SourcesWPE.txt: Ditto.
  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::createThreadIfNeeded):

  • page/scrolling/ScrollingThread.h:
  • page/scrolling/generic/ScrollingThreadGeneric.cpp: Added.

(WebCore::ScrollingThread::initializeRunLoop):
(WebCore::ScrollingThread::wakeUpRunLoop):

11:47 PM Changeset in webkit [230904] by zandobersek@gmail.com
  • 5 edits in trunk/Source

[CoordinatedGraphics] Unused contentsSize, coveredRect attributes in CoordinatedGraphicsState
https://bugs.webkit.org/show_bug.cgi?id=184811

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Remove the unused contentsSize and coveredRect attributes on the
CoordinatedGraphicsState struct. CoordinatedGraphicsLayer::coverRect()
method is now unused and can also be removed.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:

Source/WebKit:

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::flushPendingLayerChanges): Stop setting
the removed contentsSize and coveredRect attributes. These were only
ever set to the appropriate values, but were then never used anywhere.

4:03 PM Changeset in webkit [230903] by Matt Baker
  • 2 edits in trunk/Source/WebKit

Web Inspector: WebInspectorProxy releases WKWebInspectorProxyObjCAdapter without removing corresponding observer
https://bugs.webkit.org/show_bug.cgi?id=184865
<rdar://problem/37764960>

Reviewed by Brian Burg.

Replace the early return removed in https://bugs.webkit.org/show_bug.cgi?id=177661,
so that WKWebInspectorProxyObjCAdapter and the view controller can be reused
when reopening the Inspector while the WebView is still alive.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCreateFrontendPage):

2:39 PM Changeset in webkit [230902] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Add -[WKInputDelegate _webView:decidePolicyForFocusedElement:] so clients can request default focusing behavior
https://bugs.webkit.org/show_bug.cgi?id=184844

Patch by Paul Knight <pknight@apple.com> on 2018-04-22
Reviewed by Dan Bernstein.

If a client doesn't implement -[_WKInputDelegate _webView:focusShouldStartInputSession:] the default
focus behavior only brings up the keyboard if it's already onscreen, the interaction is user driven,
and other factors that even depend on what feature flags are enabled.

If a client implements _webView:focusShouldStartInputSession:, they don't have a good way to specifiy
they'd like to fall back to the default behavior. This makes it difficult for a client to use the
default in most cases, but sometimes allow programmatic focus from the page, for example.

Add a new delegate method -_webView:decidePolicyForFocusedElement: that returns a new enum type
_WKFocusStartsInputSessionPolicy. Clients can return _WKFocusStartsInputSessionPolicyAuto to request
the default behavior, or _WKFocusStartsInputSessionPolicyAllow / Disallow to directly control whether
the keyboard appears to assist the focused node.

  • UIProcess/API/Cocoa/_WKInputDelegate.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):

2:23 PM Changeset in webkit [230901] by Wenson Hsieh
  • 2 edits
    3 adds in trunk/LayoutTests

Add a layout test for r230785
https://bugs.webkit.org/show_bug.cgi?id=184757

Reviewed by Beth Dakin.

Adds a new layout test to verify that true screen dimensions in extra zoom mode
are observable from the page, via window.screen.

  • TestExpectations:
  • fast/dom/Window/extrazoom/window-get-real-screen-dimensions.html: Added.
6:44 AM Changeset in webkit [230900] by Yusuke Suzuki
  • 9 edits
    1 move
    2 deletes in trunk/Source/JavaScriptCore

[JSC] Remove ModuleLoaderPrototype
https://bugs.webkit.org/show_bug.cgi?id=184784

Reviewed by Mark Lam.

When we introduce ModuleLoaderPrototype, ModuleLoader may be created by users and exposed to users.
However, the loader spec is abandoned. So we do not need to have ModuleLoaderPrototype and JSModuleLoader.
This patch merges ModuleLoaderPrototype's functionality into JSModuleLoader.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • builtins/ModuleLoader.js: Renamed from Source/JavaScriptCore/builtins/ModuleLoaderPrototype.js.
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::proxyRevokeStructure const):
(JSC::JSGlobalObject::moduleLoaderStructure const): Deleted.

  • runtime/JSModuleLoader.cpp:

(JSC::moduleLoaderParseModule):
(JSC::moduleLoaderRequestedModules):
(JSC::moduleLoaderModuleDeclarationInstantiation):
(JSC::moduleLoaderResolve):
(JSC::moduleLoaderResolveSync):
(JSC::moduleLoaderFetch):
(JSC::moduleLoaderGetModuleNamespaceObject):
(JSC::moduleLoaderEvaluate):

  • runtime/JSModuleLoader.h:
  • runtime/ModuleLoaderPrototype.cpp: Removed.
  • runtime/ModuleLoaderPrototype.h: Removed.

Apr 21, 2018:

6:21 PM Changeset in webkit [230899] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleanup CookieRequestHeaderFieldProxy
https://bugs.webkit.org/show_bug.cgi?id=184868

Remove extraneous whitespace that I inadvertently added.

  • platform/network/CookieRequestHeaderFieldProxy.h:

(WebCore::CookieRequestHeaderFieldProxy::decode):

6:16 PM Changeset in webkit [230898] by dbates@webkit.org
  • 9 edits in trunk/Source/WebCore

Cleanup CookieRequestHeaderFieldProxy
https://bugs.webkit.org/show_bug.cgi?id=184868

Reviewed by Youenn Fablet.

Simplify the struct CookieRequestHeaderFieldProxy and make it consistent with other structs.
Among other changes, remove constructors for CookieRequestHeaderFieldProxy as they are
unnecessary as all supported compilers support non-static data member initializers (NSDMI)
for aggregates, remove prefix "m_" from the name of fields as this is struct exists for
convenience and offers no encapsulation and simplify decoding logic of this struct.

No functionality changed. So, no new tests.

  • loader/CookieJar.cpp:

(WebCore::cookieRequestHeaderFieldProxy):

  • platform/network/CookieRequestHeaderFieldProxy.h:

(WebCore::CookieRequestHeaderFieldProxy::encode const):
(WebCore::CookieRequestHeaderFieldProxy::decode):
(WebCore::CookieRequestHeaderFieldProxy::CookieRequestHeaderFieldProxy): Deleted.

  • platform/network/SocketStreamHandleImpl.cpp:

(WebCore::cookieDataForHandshake):

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/curl/CookieJarCurlDatabase.cpp:

(WebCore::CookieJarCurlDatabase::cookieRequestHeaderFieldValue const):

  • platform/network/mac/CookieJarMac.mm:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::cookieRequestHeaderFieldValue):

2:58 PM Changeset in webkit [230897] by Yusuke Suzuki
  • 2 edits in trunk/Source/bmalloc

Unreviewed, follow-up patch after r230474
https://bugs.webkit.org/show_bug.cgi?id=166684

Add "JavaScriptCore" to Darwin name. And use short name "BMScavenger"
for Linux since adding "JavaScriptCore" makes the name too long for Linux.

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::threadRunLoop):

2:52 PM Changeset in webkit [230896] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Disable backward and forward navigation swipes while in fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=184656
rdar://problem/36057535

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-04-21
Reviewed by Tim Horton.

Disable navigation swipes while in fullscreen.

  • UIProcess/Cocoa/ViewGestureController.cpp:

(WebKit::ViewGestureController::canSwipeInDirection const):

2:49 PM Changeset in webkit [230895] by graouts@webkit.org
  • 11 edits
    3 copies
    1 add in trunk

[Modern Media Controls] Show a loading indicator after pressing the play button in compact mode
https://bugs.webkit.org/show_bug.cgi?id=184863
<rdar://problem/38939468>

Reviewed by Dean Jackson.

Source/WebCore:

We now display a loading indicator after pressing the play button when in compact mode. We also update the
behavior to use assets provided through WebKitAdditions (see webkit.org/b/184862) for the play button and
the invalid icon. Additionally, we always show a 20% opaque black overlay in the background while any piece
of user interface is up.

  • Modules/modern-media-controls/controls/compact-activity-indicator.css: Added.

(button.compact-activity-indicator > picture): The loading indicator asset is a sprite made of 23 frames, so
we specify the mask size (since all buttons are rendered via a mask) to be 23 * 100% the rendered size. The
display of the loading indicator is performed with a first intro animation which runs once through the first
8 frames and then a continuously looping animation going through the remaining frames. We use a frames()
timing function to achieve the frame-by-frame effect while using only from/to keyframe animations. When we
fade out, we use a simply opacity fade, which is combined with the spinning animation. We use CSS variables
to encode both animations so they can be used combined or one at a time without redefining the whole animation
property.
(button.compact-activity-indicator.spins > picture): Use the "spins" animation variable when spinning.
(button.compact-activity-indicator.spins.fades-out > picture): Combine the "spins" and "fades-out" animation
variables when fading out.
(@keyframes compact-activity-indicator-intro): Animation going through the first 8 frames of the loading indicator.
(@keyframes compact-activity-indicator-loop): Animation going through the remaining frames of the loading indicator.
(@keyframes compact-activity-indicator-fades-out): Animation fading opacity from 1 to 0.

  • Modules/modern-media-controls/controls/compact-activity-indicator.js: Added.

(CompactActivityIndicator):
(CompactActivityIndicator.prototype.show): Add the "spins" CSS class to show the control spinning with the intro animation.
(CompactActivityIndicator.prototype.hide): Add the "fades-out" CSS class to hide the control, removing both this class and
the "spins" class when the fade-out animation completes.

  • Modules/modern-media-controls/controls/compact-media-controls.css: Added.

(.media-controls.compact:before): Add a 20% black overlay over the video frame to provide contrast for controls.
(.media-controls.compact button): Ensure buttons are sized to use the entire video frame so that their hit region
comprises the whole video frame.
(.media-controls.compact button > picture): Override default blending styles for a simple solid white mask.
(.media-controls.compact button:active > picture): Turn off the scale down effect when pressing a button.

  • Modules/modern-media-controls/controls/compact-media-controls.js: Expose a "state" property for the compact media controls,

which can be exlusively one of three: "paused", "pending" and "invalid".
(CompactMediaControls.):
(CompactMediaControls.prototype.get state):
(CompactMediaControls.prototype.set state):
(CompactMediaControls.prototype.layout): In the "paused" state, show the play button. In the "pending" state show
the loading indicator. In the "invalid" state show the invalid button.
(CompactMediaControls.prototype.get placard): Deleted.
(CompactMediaControls.prototype.set placard): Deleted.

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/compact-media-controls-support.js: Added.

(CompactMediaControlsSupport.prototype.get mediaEvents):
(CompactMediaControlsSupport.prototype.handleEvent): Make the controls enter the "paused" state when receiving a "pause"
event. Make the controls enter the "invalid" state when receiving an "error" event.
(CompactMediaControlsSupport.prototype.enable):
(CompactMediaControlsSupport.prototype.disable):
(CompactMediaControlsSupport.prototype.buttonWasPressed): Play the media when pressing the play button and make the controls
enter the "pending" state. When pressing the loading indicator, pause the media and make the controls enter the "paused" state.
(CompactMediaControlsSupport.prototype._buttons):
(CompactMediaControlsSupport):

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype._supportingObjectClasses): Only use CompactMediaControlsSupport as a media controller supporting object
in the compact mode.

  • Modules/modern-media-controls/media/placard-support.js:

(PlacardSupport.prototype.get mediaEvents): This media controller support object no longer needs to deal with compact mode.

  • Modules/modern-media-controls/media/playback-support.js:

(PlaybackSupport.prototype.syncControl): This media controller support object no longer needs to deal with compact mode.
(PlaybackSupport):

LayoutTests:

  • media/modern-media-controls/compact-media-controls/compact-media-controls-constructor-expected.txt:
  • media/modern-media-controls/compact-media-controls/compact-media-controls-constructor.html:
  • media/modern-media-controls/compact-media-controls/compact-media-controls-layout-expected.txt:
  • media/modern-media-controls/compact-media-controls/compact-media-controls-layout.html:
2:47 PM Changeset in webkit [230894] by graouts@webkit.org
  • 4 edits in trunk/Source/WebCore

[Modern Media Controls] Obtain compact mode icons through WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=184862
<rdar://problem/39621645>

Reviewed by Jon Lee.

  • Modules/modern-media-controls/controls/button.js:

(Button.prototype._updateImageMetrics): Handle PDF assets where the image source's intrinsic size needs
to be adjusted for the device pixel density.
(Button):

  • Modules/modern-media-controls/controls/icon-service.js: Expect three additional icons provided through

WebKitAdditions, including two in the PDF format, so we add support for this format.

  • WebCore.xcodeproj/project.pbxproj: Copy additional assets from the WebKitAdditions build directory should

any be present.

1:46 PM Changeset in webkit [230893] by youenn@apple.com
  • 7 edits in trunk

Activate NetworkLoadChecker for media loads
https://bugs.webkit.org/show_bug.cgi?id=184841

Reviewed by Eric Carlson.

Source/WebKit:

Instantiate a NetworkLoadChecker for NetworkResourceLoader for audio/video loads.

Move CORS checks for response after handling of 304 checks.
For 304 checks, we need to do the CORS checks on the validated cached response, not the 304 received response.

Updated ResourceError argument coder to explicitly pass the error type
as some errors created by NetworkLoadChecker would otherwise be received as General errors by WebProcess.
Updated platform data encoding of ResourceError accordingly.

All changes are covered by regular media loading layout tests.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::shouldUseNetworkLoadChecker):
(WebKit::NetworkResourceLoader::didReceiveResponse):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ResourceError>::encode):
(IPC::ArgumentCoder<ResourceError>::decode):

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ResourceError>::decodePlatformData):
We need to set the type after decoding the NSError as ResourceError tries to guess the type from NSError data.

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ResourceError>::decodePlatformData):

LayoutTests:

  • TestExpectations: Added DumpJSConsoleLogInStdErr to remove console message differences between WK1/WK2.
1:28 PM Changeset in webkit [230892] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

Expose whether you've build with the Apple Internal SDK
https://bugs.webkit.org/show_bug.cgi?id=184864

Reviewed by Wenson Hsieh.

Internals API to let a test know if it is running with the
Apple internal SDK.

  • testing/Internals.cpp:

(WebCore::usingAppleInternalSDK const):

  • testing/Internals.h:
  • testing/Internals.idl:
10:45 AM Changeset in webkit [230891] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION(r214076): Web Inspector: Timelines load and DOMContentLoaded markers aren't visible
https://bugs.webkit.org/show_bug.cgi?id=184858

Reviewed by Brian Burg.

r214076 changed the color of all markers to light gray.

  • UserInterface/Views/TimelineRuler.css:

(.timeline-ruler > .markers > .marker):
(body[dir=ltr] .timeline-ruler > .markers > .marker):
(body[dir=rtl] .timeline-ruler > .markers > .marker):
(.timeline-ruler > .markers > .marker.current-time):
(.timeline-ruler > .markers > .marker.load-event):
(.timeline-ruler > .markers > .marker.dom-content-event):
(.timeline-ruler > .markers > .marker.timestamp):
(body[dir=ltr] .timeline-ruler > .markers > .marker.current-time): Deleted.
(body[dir=rtl] .timeline-ruler > .markers > .marker.current-time): Deleted.

Note: See TracTimeline for information about the timeline view.