Changeset 229376 in webkit


Ignore:
Timestamp:
Mar 7, 2018 2:37:42 PM (6 years ago)
Author:
dino@apple.com
Message:

Add SystemPreviewController for showing system-level views of special file types
https://bugs.webkit.org/show_bug.cgi?id=183413
<rdar://problem/37800834>

Reviewed by Tim Horton.

Add a new controller class that hangs off WebPageProxy, with the goal
of providing system-level viewing of some some file types. Specifically
those that can't be shown by WebKit.

This is the initial implementation which is quite simple. The controller
can be queried about whether it supports a MIME type, then it can be
asked to show a URL.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Added.

(-[_WKPreviewControllerDataSource initWithURL:]):
(-[_WKPreviewControllerDataSource numberOfPreviewItemsInPreviewController:]):
(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):
(WebKit::SystemPreviewController::canPreview const):
(WebKit::SystemPreviewController::showPreview):

  • UIProcess/SystemPreviewController.cpp: Added.

(WebKit::SystemPreviewController::SystemPreviewController):
(WebKit::SystemPreviewController::canPreview const):
(WebKit::SystemPreviewController::showPreview):

  • UIProcess/SystemPreviewController.h: Added.
  • UIProcess/WebPageProxy.cpp:

(WebKit::m_configurationPreferenceValues):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::resetState):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::systemPreviewController):

  • WebKit.xcodeproj/project.pbxproj:
Location:
trunk/Source/WebKit
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/CMakeLists.txt

    r228915 r229376  
    304304    UIProcess/ServiceWorkerProcessProxy.cpp
    305305    UIProcess/StatisticsRequest.cpp
     306    UIProcess/SystemPreviewController.cpp
    306307    UIProcess/TextCheckerCompletion.cpp
    307308    UIProcess/UIMessagePortChannelProvider.cpp
  • trunk/Source/WebKit/ChangeLog

    r229359 r229376  
     12018-03-07  Dean Jackson  <dino@apple.com>
     2
     3        Add SystemPreviewController for showing system-level views of special file types
     4        https://bugs.webkit.org/show_bug.cgi?id=183413
     5        <rdar://problem/37800834>
     6
     7        Reviewed by Tim Horton.
     8
     9        Add a new controller class that hangs off WebPageProxy, with the goal
     10        of providing system-level viewing of some some file types. Specifically
     11        those that can't be shown by WebKit.
     12
     13        This is the initial implementation which is quite simple. The controller
     14        can be queried about whether it supports a MIME type, then it can be
     15        asked to show a URL.
     16
     17        * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Added.
     18        (-[_WKPreviewControllerDataSource initWithURL:]):
     19        (-[_WKPreviewControllerDataSource numberOfPreviewItemsInPreviewController:]):
     20        (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):
     21        (WebKit::SystemPreviewController::canPreview const):
     22        (WebKit::SystemPreviewController::showPreview):
     23        * UIProcess/SystemPreviewController.cpp: Added.
     24        (WebKit::SystemPreviewController::SystemPreviewController):
     25        (WebKit::SystemPreviewController::canPreview const):
     26        (WebKit::SystemPreviewController::showPreview):
     27        * UIProcess/SystemPreviewController.h: Added.
     28        * UIProcess/WebPageProxy.cpp:
     29        (WebKit::m_configurationPreferenceValues):
     30        (WebKit::WebPageProxy::reattachToWebProcess):
     31        (WebKit::WebPageProxy::resetState):
     32        * UIProcess/WebPageProxy.h:
     33        (WebKit::WebPageProxy::systemPreviewController):
     34        * WebKit.xcodeproj/project.pbxproj:
     35
    1362018-03-07  Alejandro G. Castro  <alex@igalia.com>
    237
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r229201 r229376  
    413413#endif
    414414
     415    m_systemPreviewController = std::make_unique<SystemPreviewController>(*this);
     416
    415417#if ENABLE(WEB_AUTHN)
    416418    m_credentialsMessenger = std::make_unique<WebCredentialsMessengerProxy>(*this);
     
    669671    m_paymentCoordinator = std::make_unique<WebPaymentCoordinatorProxy>(*this);
    670672#endif
     673
     674    m_systemPreviewController = std::make_unique<SystemPreviewController>(*this);
    671675
    672676#if ENABLE(WEB_AUTHN)
     
    57145718    m_paymentCoordinator = nullptr;
    57155719#endif
     5720
     5721    m_systemPreviewController = nullptr;
    57165722
    57175723#if ENABLE(WEB_AUTHN)
  • trunk/Source/WebKit/UIProcess/WebPageProxy.h

    r229063 r229376  
    4545#include "SandboxExtension.h"
    4646#include "ShareableBitmap.h"
     47#include "SystemPreviewController.h"
    4748#include "UserMediaPermissionRequestManagerProxy.h"
    4849#include "VisibleContentRectUpdateInfo.h"
     
    379380#endif
    380381
     382    SystemPreviewController* systemPreviewController() { return m_systemPreviewController.get(); }
     383
    381384#if ENABLE(CONTEXT_MENUS)
    382385    API::ContextMenuClient& contextMenuClient() { return *m_contextMenuClient; }
     
    17921795#endif
    17931796
     1797    std::unique_ptr<SystemPreviewController> m_systemPreviewController;
     1798
    17941799#if ENABLE(WEB_AUTHN)
    17951800    std::unique_ptr<WebCredentialsMessengerProxy> m_credentialsMessenger;
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r229359 r229376  
    759759                31312620148FF82C00BA2A39 /* WebNotificationManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3131261B148FF82B00BA2A39 /* WebNotificationManager.cpp */; };
    760760                31312621148FF82C00BA2A39 /* WebNotificationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3131261C148FF82B00BA2A39 /* WebNotificationManager.h */; };
     761                3157135E2040A9B20084F9CF /* SystemPreviewControllerCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3157135C2040A9B20084F9CF /* SystemPreviewControllerCocoa.mm */; };
     762                3157135F2040A9B20084F9CF /* SystemPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 3157135D2040A9B20084F9CF /* SystemPreviewController.h */; };
    761763                317FE7C51C487A6C00A0CA89 /* APIExperimentalFeature.h in Headers */ = {isa = PBXBuildFile; fileRef = 317FE7C21C487A6600A0CA89 /* APIExperimentalFeature.h */; };
    762764                317FE7C61C487A7100A0CA89 /* APIExperimentalFeature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 317FE7C11C487A6600A0CA89 /* APIExperimentalFeature.cpp */; };
     
    764766                317FE7CE1C487DB800A0CA89 /* _WKExperimentalFeature.mm in Sources */ = {isa = PBXBuildFile; fileRef = 317FE7C81C487D9D00A0CA89 /* _WKExperimentalFeature.mm */; };
    765767                317FE7CF1C487DBD00A0CA89 /* _WKExperimentalFeature.h in Headers */ = {isa = PBXBuildFile; fileRef = 317FE7C71C487D9D00A0CA89 /* _WKExperimentalFeature.h */; settings = {ATTRIBUTES = (Private, ); }; };
     768                318A1F05204F4764003480BC /* SystemPreviewController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 318A1F04204F4764003480BC /* SystemPreviewController.cpp */; };
    766769                318BE17114743DB100A8FBB2 /* WKNotificationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 318BE17014743DB100A8FBB2 /* WKNotificationManager.h */; settings = {ATTRIBUTES = (Private, ); }; };
    767770                318BE17514743DD700A8FBB2 /* WKNotificationManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 318BE17414743DD600A8FBB2 /* WKNotificationManager.cpp */; };
     
    31373140                314888FE1D91B11D00377042 /* WKTextChecker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKTextChecker.cpp; sourceTree = "<group>"; };
    31383141                314888FF1D91B11D00377042 /* WKTextChecker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKTextChecker.h; sourceTree = "<group>"; };
     3142                3157135C2040A9B20084F9CF /* SystemPreviewControllerCocoa.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SystemPreviewControllerCocoa.mm; sourceTree = "<group>"; };
     3143                3157135D2040A9B20084F9CF /* SystemPreviewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SystemPreviewController.h; sourceTree = "<group>"; };
    31393144                31607F3819627002009B87DA /* LegacySessionStateCoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacySessionStateCoding.h; sourceTree = "<group>"; };
    31403145                317FE7C11C487A6600A0CA89 /* APIExperimentalFeature.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIExperimentalFeature.cpp; sourceTree = "<group>"; };
     
    31433148                317FE7C81C487D9D00A0CA89 /* _WKExperimentalFeature.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKExperimentalFeature.mm; sourceTree = "<group>"; };
    31443149                317FE7C91C487D9D00A0CA89 /* _WKExperimentalFeatureInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKExperimentalFeatureInternal.h; sourceTree = "<group>"; };
     3150                318A1F04204F4764003480BC /* SystemPreviewController.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SystemPreviewController.cpp; sourceTree = "<group>"; };
    31453151                318BE17014743DB100A8FBB2 /* WKNotificationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNotificationManager.h; sourceTree = "<group>"; };
    31463152                318BE17414743DD600A8FBB2 /* WKNotificationManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKNotificationManager.cpp; sourceTree = "<group>"; };
     
    54895495                                1A002D47196B345D00B9AD44 /* SessionStateCoding.h */,
    54905496                                1A002D46196B345D00B9AD44 /* SessionStateCoding.mm */,
     5497                                3157135C2040A9B20084F9CF /* SystemPreviewControllerCocoa.mm */,
    54915498                                1AFE436418B6C081009C7A48 /* UIDelegate.h */,
    54925499                                1AFE436318B6C081009C7A48 /* UIDelegate.mm */,
     
    72247231                                51A4D5A816CAC4FF000E615E /* StatisticsRequest.cpp */,
    72257232                                514BDED216C98EDD00E4E25E /* StatisticsRequest.h */,
     7233                                318A1F04204F4764003480BC /* SystemPreviewController.cpp */,
     7234                                3157135D2040A9B20084F9CF /* SystemPreviewController.h */,
    72267235                                1AA417C912C00CCA002BE67B /* TextChecker.h */,
    72277236                                1BB417C912C00CCA002BE67B /* TextCheckerCompletion.cpp */,
     
    91179126                                1AE00D6C18327C1200087DD7 /* StringReference.h in Headers */,
    91189127                                296BD85D15019BC30071F424 /* StringUtilities.h in Headers */,
     9128                                3157135F2040A9B20084F9CF /* SystemPreviewController.h in Headers */,
    91199129                                CE1A0BD61A48E6C60054EF74 /* TCCSPI.h in Headers */,
    91209130                                1AA417CB12C00CCA002BE67B /* TextChecker.h in Headers */,
     
    1079210802                                1AE00D6B18327C1200087DD7 /* StringReference.cpp in Sources */,
    1079310803                                296BD85E15019BC30071F424 /* StringUtilities.mm in Sources */,
     10804                                318A1F05204F4764003480BC /* SystemPreviewController.cpp in Sources */,
     10805                                3157135E2040A9B20084F9CF /* SystemPreviewControllerCocoa.mm in Sources */,
    1079410806                                1ZZ417EF12C00D87002BE67B /* TextCheckerCompletion.cpp in Sources */,
    1079510807                                2DA944AD1884E9BA00ED86DB /* TextCheckerIOS.mm in Sources */,
Note: See TracChangeset for help on using the changeset viewer.