diff options
Diffstat (limited to 'Source/WebKit/chromium/src/PlatformBridge.cpp')
-rw-r--r-- | Source/WebKit/chromium/src/PlatformBridge.cpp | 46 |
1 files changed, 33 insertions, 13 deletions
diff --git a/Source/WebKit/chromium/src/PlatformBridge.cpp b/Source/WebKit/chromium/src/PlatformBridge.cpp index 04016fc..b09d150 100644 --- a/Source/WebKit/chromium/src/PlatformBridge.cpp +++ b/Source/WebKit/chromium/src/PlatformBridge.cpp @@ -132,6 +132,14 @@ static WebWidgetClient* toWebWidgetClient(Widget* widget) return chromeClientImpl->webView()->client(); } +static WebClipboard* getClipboard(const Frame* frame) +{ + WebFrameImpl* frameImpl = WebFrameImpl::fromFrame(frame); + if (!frameImpl || !frameImpl->client()) + return 0; + return frameImpl->client()->clipboard(); +} + static WebCookieJar* getCookieJar(const Document* document) { WebFrameImpl* frameImpl = WebFrameImpl::fromFrame(document->frame()); @@ -217,9 +225,15 @@ void PlatformBridge::clipboardWriteData(const String& type, } HashSet<String> PlatformBridge::clipboardReadAvailableTypes( - PasteboardPrivate::ClipboardBuffer buffer, bool* containsFilenames) + const Frame* frame, + PasteboardPrivate::ClipboardBuffer buffer, + bool* containsFilenames) { - WebVector<WebString> result = webKitClient()->clipboard()->readAvailableTypes( + WebClipboard* clipboard = getClipboard(frame); + if (!clipboard) + return HashSet<String>(); + + WebVector<WebString> result = clipboard->readAvailableTypes( static_cast<WebClipboard::Buffer>(buffer), containsFilenames); HashSet<String> types; for (size_t i = 0; i < result.size(); ++i) @@ -227,12 +241,19 @@ HashSet<String> PlatformBridge::clipboardReadAvailableTypes( return types; } -bool PlatformBridge::clipboardReadData(PasteboardPrivate::ClipboardBuffer buffer, - const String& type, String& data, String& metadata) +bool PlatformBridge::clipboardReadData(const Frame* frame, + PasteboardPrivate::ClipboardBuffer buffer, + const String& type, + String& data, + String& metadata) { + WebClipboard* clipboard = getClipboard(frame); + if (!clipboard) + return false; + WebString resultData; WebString resultMetadata; - bool succeeded = webKitClient()->clipboard()->readData( + bool succeeded = clipboard->readData( static_cast<WebClipboard::Buffer>(buffer), type, &resultData, &resultMetadata); if (succeeded) { data = resultData; @@ -241,9 +262,14 @@ bool PlatformBridge::clipboardReadData(PasteboardPrivate::ClipboardBuffer buffer return succeeded; } -Vector<String> PlatformBridge::clipboardReadFilenames(PasteboardPrivate::ClipboardBuffer buffer) +Vector<String> PlatformBridge::clipboardReadFilenames(const Frame* frame, + PasteboardPrivate::ClipboardBuffer buffer) { - WebVector<WebString> result = webKitClient()->clipboard()->readFilenames( + WebClipboard* clipboard = getClipboard(frame); + if (!clipboard) + return Vector<String>(); + + WebVector<WebString> result = clipboard->readFilenames( static_cast<WebClipboard::Buffer>(buffer)); Vector<String> convertedResult; for (size_t i = 0; i < result.size(); ++i) @@ -509,12 +535,6 @@ PassRefPtr<IDBFactoryBackendInterface> PlatformBridge::idbFactory() return IDBFactoryBackendProxy::create(); } -void PlatformBridge::idbShutdown() -{ - // In the browser process, this shuts down the utility process. In the renderer process, it does nothing. - webKitClient()->idbShutdown(); -} - void PlatformBridge::createIDBKeysFromSerializedValuesAndKeyPath(const Vector<RefPtr<SerializedScriptValue> >& values, const String& keyPath, Vector<RefPtr<IDBKey> >& keys) { WebVector<WebSerializedScriptValue> webValues = values; |