Bug 115980

Summary: Change Clipboard to be a non-abstract DOM class; move it out of the platform directory
Product: WebKit Reporter: Darin Adler <darin>
Component: DOMAssignee: Darin Adler <darin>
Status: RESOLVED FIXED    
Severity: Normal CC: ararunprasad, arurajku, cgarcia, kling
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 115979, 115999, 116000, 116001, 116005, 116006, 116007, 116008, 116009, 116036, 116156, 116159, 116161, 116162, 116163, 116165, 116166, 116176, 116177, 116179, 116181, 116221, 116258, 116287, 116412, 116416, 119939, 119946, 119947, 119948, 119949, 119993, 120267    
Bug Blocks:    

Description Darin Adler 2013-05-11 22:50:46 PDT
This is a sort of “master bug”. There will be many steps to accomplish this.
Comment 1 Darin Adler 2013-05-19 04:29:44 PDT
What remains:

- Move ClipboardEfl.cpp source file to dom/efl from platform/efl; even better, later eliminate it entirely.
- Move ClipboardGtk.cpp source file to dom/gtk from platform/gtk; even better, later eliminate it entirely.
- Move ClipboardMac.mm source file to dom/efl from platform/mac; even better, later eliminate it entirely.
- Qt port.
- Windows port.
- iOS port.

Then we can close this bug and go on to fixing other aspects of Clipboard/Pasteboard.
Comment 2 Darin Adler 2013-05-19 15:09:09 PDT
ClipboardEfl.cpp is gone now.

Here’s my idea for getting rid of the remaining platform-specific Clipboard functions:

Clipboard::declareAndWriteDragImage should move to DragController.

Clipboard::createImage should be made platform independent by using functions in FrameSnapshotting and DragImage. This can be done with careful refactoring to preserve current behavior and then later share more code.

If we do these then there is nothing to move for ClipboardGtk.cpp and ClipboardMac.mm. We’ll see later about Qt and Windows. And ClipboardIOS.mm should be going away even without those changes.
Comment 3 Darin Adler 2013-08-20 09:49:25 PDT
At this point, the only part left is to get ClipboardMac.mm either removed entirely or out of the platform directory. Not sure which I will do.