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: | DOM | Assignee: | 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: |
Darin Adler
This is a sort of “master bug”. There will be many steps to accomplish this.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Darin Adler
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.
Darin Adler
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.
Darin Adler
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.