Changeset 239589 in webkit


Ignore:
Timestamp:
Jan 3, 2019 7:34:34 AM (5 years ago)
Author:
Wenson Hsieh
Message:

WebUndoStep's monotonically increasing identifier should be a WebUndoStepID instead of uint64_t
https://bugs.webkit.org/show_bug.cgi?id=193100

Reviewed by Simon Fraser.

Add a type alias, WebUndoStepID, to represent the monotonically increasing undo step ID for each undoable
editing command, and use this type alias in lieu of uint64_t. No change in behavior.

  • UIProcess/WebEditCommandProxy.cpp:

(WebKit::WebEditCommandProxy::WebEditCommandProxy):

  • UIProcess/WebEditCommandProxy.h:

(WebKit::WebEditCommandProxy::create):
(WebKit::WebEditCommandProxy::commandID const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::registerEditCommandForUndo):

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::registerUndoStep):

Store the step ID in a temporary variable, since webUndoStep is now moved when calling addWebUndoStep.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::webUndoStep):
(WebKit::WebPage::addWebUndoStep):

Make this take a Ref<WebUndoStep>&& instead of a WebUndoStep*, and use move semantics to transfer the
given Ref to the table.

(WebKit::WebPage::removeWebEditCommand):
(WebKit::WebPage::unapplyEditCommand):
(WebKit::WebPage::reapplyEditCommand):

Use auto* in a couple of places.

(WebKit::WebPage::didRemoveEditCommand):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebUndoStep.cpp:

(WebKit::generateUndoStep):

  • WebProcess/WebPage/WebUndoStep.h:

(WebKit::WebUndoStep::stepID const):
(WebKit::WebUndoStep::WebUndoStep):

  • WebProcess/WebPage/WebUndoStepID.h: Copied from Source/WebKit/WebProcess/WebPage/WebUndoStep.cpp.
Location:
trunk/Source/WebKit
Files:
11 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r239584 r239589  
     12019-01-03  Wenson Hsieh  <wenson_hsieh@apple.com>
     2
     3        WebUndoStep's monotonically increasing identifier should be a WebUndoStepID instead of uint64_t
     4        https://bugs.webkit.org/show_bug.cgi?id=193100
     5
     6        Reviewed by Simon Fraser.
     7
     8        Add a type alias, WebUndoStepID, to represent the monotonically increasing undo step ID for each undoable
     9        editing command, and use this type alias in lieu of `uint64_t`. No change in behavior.
     10
     11        * UIProcess/WebEditCommandProxy.cpp:
     12        (WebKit::WebEditCommandProxy::WebEditCommandProxy):
     13        * UIProcess/WebEditCommandProxy.h:
     14        (WebKit::WebEditCommandProxy::create):
     15        (WebKit::WebEditCommandProxy::commandID const):
     16        * UIProcess/WebPageProxy.cpp:
     17        (WebKit::WebPageProxy::registerEditCommandForUndo):
     18        * UIProcess/WebPageProxy.h:
     19        * WebKit.xcodeproj/project.pbxproj:
     20        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
     21        (WebKit::WebEditorClient::registerUndoStep):
     22
     23        Store the step ID in a temporary variable, since `webUndoStep` is now moved when calling `addWebUndoStep`.
     24
     25        * WebProcess/WebPage/WebPage.cpp:
     26        (WebKit::WebPage::webUndoStep):
     27        (WebKit::WebPage::addWebUndoStep):
     28
     29        Make this take a `Ref<WebUndoStep>&&` instead of a `WebUndoStep*`, and use move semantics to transfer the
     30        given `Ref` to the table.
     31
     32        (WebKit::WebPage::removeWebEditCommand):
     33        (WebKit::WebPage::unapplyEditCommand):
     34        (WebKit::WebPage::reapplyEditCommand):
     35
     36        Use `auto*` in a couple of places.
     37
     38        (WebKit::WebPage::didRemoveEditCommand):
     39        * WebProcess/WebPage/WebPage.h:
     40        * WebProcess/WebPage/WebUndoStep.cpp:
     41        (WebKit::generateUndoStep):
     42        * WebProcess/WebPage/WebUndoStep.h:
     43        (WebKit::WebUndoStep::stepID const):
     44        (WebKit::WebUndoStep::WebUndoStep):
     45        * WebProcess/WebPage/WebUndoStepID.h: Copied from Source/WebKit/WebProcess/WebPage/WebUndoStep.cpp.
     46
    1472019-01-02  Wenson Hsieh  <wenson_hsieh@apple.com>
    248
  • trunk/Source/WebKit/UIProcess/WebEditCommandProxy.cpp

    r238475 r239589  
    3737using namespace WebCore;
    3838
    39 WebEditCommandProxy::WebEditCommandProxy(uint64_t commandID, WebCore::EditAction editAction, WebPageProxy* page)
     39WebEditCommandProxy::WebEditCommandProxy(WebUndoStepID commandID, WebCore::EditAction editAction, WebPageProxy* page)
    4040    : m_commandID(commandID)
    4141    , m_editAction(editAction)
  • trunk/Source/WebKit/UIProcess/WebEditCommandProxy.h

    r216794 r239589  
    2727
    2828#include "APIObject.h"
     29#include "WebUndoStepID.h"
    2930#include <WebCore/EditAction.h>
    3031#include <wtf/Forward.h>
     
    3839class WebEditCommandProxy : public API::ObjectImpl<API::Object::Type::EditCommandProxy> {
    3940public:
    40     static Ref<WebEditCommandProxy> create(uint64_t commandID, WebCore::EditAction editAction, WebPageProxy* page)
     41    static Ref<WebEditCommandProxy> create(WebUndoStepID commandID, WebCore::EditAction editAction, WebPageProxy* page)
    4142    {
    4243        return adoptRef(*new WebEditCommandProxy(commandID, editAction, page));
     
    4445    ~WebEditCommandProxy();
    4546
    46     uint64_t commandID() const { return m_commandID; }
     47    WebUndoStepID commandID() const { return m_commandID; }
    4748    WebCore::EditAction editAction() const { return m_editAction; }
    4849
     
    5556
    5657private:
    57     WebEditCommandProxy(uint64_t commandID, WebCore::EditAction, WebPageProxy*);
     58    WebEditCommandProxy(WebUndoStepID commandID, WebCore::EditAction, WebPageProxy*);
    5859
    59     uint64_t m_commandID;
     60    WebUndoStepID m_commandID;
    6061    WebCore::EditAction m_editAction;
    6162    WebPageProxy* m_page;
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r239535 r239589  
    53415341// Undo management
    53425342
    5343 void WebPageProxy::registerEditCommandForUndo(uint64_t commandID, uint32_t editAction)
     5343void WebPageProxy::registerEditCommandForUndo(WebUndoStepID commandID, uint32_t editAction)
    53445344{
    53455345    registerEditCommand(WebEditCommandProxy::create(commandID, static_cast<EditAction>(editAction), this), UndoOrRedo::Undo);
  • trunk/Source/WebKit/UIProcess/WebPageProxy.h

    r239584 r239589  
    6666#include "WebPopupMenuProxy.h"
    6767#include "WebProcessLifetimeTracker.h"
     68#include "WebUndoStepID.h"
    6869#include "WebsitePoliciesData.h"
    6970#include <WebCore/ActivityState.h>
     
    16161617
    16171618    // Undo management
    1618     void registerEditCommandForUndo(uint64_t commandID, uint32_t editAction);
     1619    void registerEditCommandForUndo(WebUndoStepID commandID, uint32_t editAction);
    16191620    void registerInsertionUndoGrouping();
    16201621    void clearAllEditCommands();
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r239584 r239589  
    45124512                F496A42F1F58A272004C1757 /* DragDropInteractionState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DragDropInteractionState.h; path = ios/DragDropInteractionState.h; sourceTree = "<group>"; };
    45134513                F496A4301F58A272004C1757 /* DragDropInteractionState.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = DragDropInteractionState.mm; path = ios/DragDropInteractionState.mm; sourceTree = "<group>"; };
     4514                F4B378D021DDBBAB0095A378 /* WebUndoStepID.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebUndoStepID.h; sourceTree = "<group>"; };
    45144515                F4D5F519206087A00038BBA8 /* WKTextInputListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKTextInputListViewController.h; path = ios/forms/WKTextInputListViewController.h; sourceTree = "<group>"; };
    45154516                F4D5F51A206087A10038BBA8 /* WKTextInputListViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKTextInputListViewController.mm; path = ios/forms/WKTextInputListViewController.mm; sourceTree = "<group>"; };
     
    72697270                                BCA0EF7E12331E78007D3CFB /* WebUndoStep.cpp */,
    72707271                                BCA0EF7D12331E78007D3CFB /* WebUndoStep.h */,
     7272                                F4B378D021DDBBAB0095A378 /* WebUndoStepID.h */,
    72717273                                51D1242A1E6D41BC002B2820 /* WebURLSchemeHandlerProxy.cpp */,
    72727274                                51D1242B1E6D41BC002B2820 /* WebURLSchemeHandlerProxy.h */,
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.cpp

    r238389 r239589  
    311311
    312312    auto webStep = WebUndoStep::create(step);
     313    auto stepID = webStep->stepID();
    313314    auto editAction = static_cast<uint32_t>(webStep->step().editingAction());
    314315
    315     m_page->addWebUndoStep(webStep->stepID(), webStep.ptr());
    316     m_page->send(Messages::WebPageProxy::RegisterEditCommandForUndo(webStep->stepID(), editAction), m_page->pageID(), IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply);
     316    m_page->addWebUndoStep(stepID, WTFMove(webStep));
     317    m_page->send(Messages::WebPageProxy::RegisterEditCommandForUndo(stepID, editAction), m_page->pageID(), IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply);
    317318}
    318319
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r239573 r239589  
    37663766#endif // ENABLE(DRAG_SUPPORT)
    37673767
    3768 WebUndoStep* WebPage::webUndoStep(uint64_t stepID)
     3768WebUndoStep* WebPage::webUndoStep(WebUndoStepID stepID)
    37693769{
    37703770    return m_undoStepMap.get(stepID);
    37713771}
    37723772
    3773 void WebPage::addWebUndoStep(uint64_t stepID, WebUndoStep* entry)
    3774 {
    3775     m_undoStepMap.set(stepID, entry);
    3776 }
    3777 
    3778 void WebPage::removeWebEditCommand(uint64_t stepID)
     3773void WebPage::addWebUndoStep(WebUndoStepID stepID, Ref<WebUndoStep>&& entry)
     3774{
     3775    m_undoStepMap.set(stepID, WTFMove(entry));
     3776}
     3777
     3778void WebPage::removeWebEditCommand(WebUndoStepID stepID)
    37793779{
    37803780    m_undoStepMap.remove(stepID);
     
    37863786}
    37873787
    3788 void WebPage::unapplyEditCommand(uint64_t stepID)
    3789 {
    3790     WebUndoStep* step = webUndoStep(stepID);
     3788void WebPage::unapplyEditCommand(WebUndoStepID stepID)
     3789{
     3790    auto* step = webUndoStep(stepID);
    37913791    if (!step)
    37923792        return;
     
    37953795}
    37963796
    3797 void WebPage::reapplyEditCommand(uint64_t stepID)
    3798 {
    3799     WebUndoStep* step = webUndoStep(stepID);
     3797void WebPage::reapplyEditCommand(WebUndoStepID stepID)
     3798{
     3799    auto* step = webUndoStep(stepID);
    38003800    if (!step)
    38013801        return;
     
    38063806}
    38073807
    3808 void WebPage::didRemoveEditCommand(uint64_t commandID)
     3808void WebPage::didRemoveEditCommand(WebUndoStepID commandID)
    38093809{
    38103810    removeWebEditCommand(commandID);
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.h

    r239584 r239589  
    5151#include "WebBackForwardListProxy.h"
    5252#include "WebURLSchemeHandler.h"
     53#include "WebUndoStepID.h"
    5354#include "WebUserContentController.h"
    5455#include "WebsitePoliciesData.h"
     
    356357    const String& overrideContentSecurityPolicy() const { return m_overrideContentSecurityPolicy; }
    357358
    358     WebUndoStep* webUndoStep(uint64_t);
    359     void addWebUndoStep(uint64_t, WebUndoStep*);
    360     void removeWebEditCommand(uint64_t);
     359    WebUndoStep* webUndoStep(WebUndoStepID);
     360    void addWebUndoStep(WebUndoStepID, Ref<WebUndoStep>&&);
     361    void removeWebEditCommand(WebUndoStepID);
    361362    bool isInRedo() const { return m_isInRedo; }
    362363
     
    13251326    void setMainFrameIsScrollable(bool);
    13261327
    1327     void unapplyEditCommand(uint64_t commandID);
    1328     void reapplyEditCommand(uint64_t commandID);
    1329     void didRemoveEditCommand(uint64_t commandID);
     1328    void unapplyEditCommand(WebUndoStepID commandID);
     1329    void reapplyEditCommand(WebUndoStepID commandID);
     1330    void didRemoveEditCommand(WebUndoStepID commandID);
    13301331
    13311332    void findString(const String&, uint32_t findOptions, uint32_t maxMatchCount);
     
    15751576    bool m_mayStartMediaWhenInWindow { false };
    15761577
    1577     HashMap<uint64_t, RefPtr<WebUndoStep>> m_undoStepMap;
     1578    HashMap<WebUndoStepID, RefPtr<WebUndoStep>> m_undoStepMap;
    15781579
    15791580#if ENABLE(CONTEXT_MENUS)
  • trunk/Source/WebKit/WebProcess/WebPage/WebUndoStep.cpp

    r216448 r239589  
    2929namespace WebKit {
    3030
    31 static uint64_t generateUndoStep()
     31static WebUndoStepID generateUndoStep()
    3232{
    33     static uint64_t uniqueEntryID = 1;
     33    static WebUndoStepID uniqueEntryID = 1;
    3434    return uniqueEntryID++;
    3535}
  • trunk/Source/WebKit/WebProcess/WebPage/WebUndoStep.h

    r216448 r239589  
    2626#pragma once
    2727
     28#include "WebUndoStepID.h"
    2829#include <WebCore/UndoStep.h>
    2930#include <wtf/Ref.h>
     
    3738
    3839    WebCore::UndoStep& step() const { return m_step.get(); }
    39     uint64_t stepID() const { return m_stepID; }
     40    WebUndoStepID stepID() const { return m_stepID; }
    4041
    4142private:
    42     WebUndoStep(Ref<WebCore::UndoStep>&& step, uint64_t stepID)
     43    WebUndoStep(Ref<WebCore::UndoStep>&& step, WebUndoStepID stepID)
    4344        : m_step(WTFMove(step))
    4445        , m_stepID(stepID)
     
    4748
    4849    Ref<WebCore::UndoStep> m_step;
    49     uint64_t m_stepID;
     50    WebUndoStepID m_stepID;
    5051};
    5152
  • trunk/Source/WebKit/WebProcess/WebPage/WebUndoStepID.h

    r239588 r239589  
    11/*
    2  * Copyright (C) 2010 Apple Inc. All rights reserved.
     2 * Copyright (C) 2019 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #include "config.h"
    27 #include "WebUndoStep.h"
     26#pragma once
    2827
    29 namespace WebKit {
    30 
    31 static uint64_t generateUndoStep()
    32 {
    33     static uint64_t uniqueEntryID = 1;
    34     return uniqueEntryID++;
    35 }
    36 
    37 Ref<WebUndoStep> WebUndoStep::create(Ref<WebCore::UndoStep>&& step)
    38 {
    39     return adoptRef(*new WebUndoStep(WTFMove(step), generateUndoStep()));
    40 }
    41 
    42 WebUndoStep::~WebUndoStep()
    43 {
    44 }
    45 
    46 } // namespace WebKit
     28using WebUndoStepID = uint64_t;
Note: See TracChangeset for help on using the changeset viewer.