Changeset 74202 in webkit
- Timestamp:
- Dec 16, 2010 11:37:44 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r74199 r74202 1 2010-12-16 Anders Carlsson <andersca@apple.com> 2 3 Reviewed by Darin Adler. 4 5 Save the manual plug-in stream data and redeliver it when the plug-in is initialized 6 https://bugs.webkit.org/show_bug.cgi?id=51201 7 8 Export SharedBuffer related symbols. 9 10 * WebCore.exp.in: 11 1 12 2010-12-16 Pavel Feldman <pfeldman@chromium.org> 2 13 -
trunk/WebCore/WebCore.exp.in
r74139 r74202 272 272 __ZN7WebCore12SharedBuffer12createNSDataEv 273 273 __ZN7WebCore12SharedBuffer24createWithContentsOfFileERKN3WTF6StringE 274 __ZN7WebCore12SharedBuffer6appendEPKcj 274 275 __ZN7WebCore12SharedBufferC1EPKci 276 __ZN7WebCore12SharedBufferC1Ev 275 277 __ZN7WebCore12SharedBufferD1Ev 276 278 __ZN7WebCore12SpellChecker8didCheckEiRKN3WTF6VectorINS_19SpellCheckingResultELm0EEE … … 981 983 __ZNK7WebCore12RenderObject7childAtEj 982 984 __ZNK7WebCore12RenderWidget14windowClipRectEv 985 __ZNK7WebCore12SharedBuffer11getSomeDataERPKcj 983 986 __ZNK7WebCore12SharedBuffer4dataEv 984 987 __ZNK7WebCore12SharedBuffer4sizeEv -
trunk/WebKit2/ChangeLog
r74201 r74202 1 2010-12-16 Anders Carlsson <andersca@apple.com> 2 3 Reviewed by Darin Adler. 4 5 Save the manual plug-in stream data and redeliver it when the plug-in is initialized 6 https://bugs.webkit.org/show_bug.cgi?id=51201 7 8 * WebProcess/Plugins/PluginView.cpp: 9 (WebKit::PluginView::PluginView): 10 Initialize m_manualStreamState. 11 12 (WebKit::PluginView::manualLoadDidReceiveResponse): 13 If the plug-in hasn't been initialized, store the response. 14 15 (WebKit::PluginView::manualLoadDidReceiveData): 16 If the plug-in hasn't been initialized, store the data. 17 18 (WebKit::PluginView::manualLoadDidFinishLoading): 19 If the plug-in hasn't been initialized, update the state. 20 21 (WebKit::PluginView::manualLoadDidFail): 22 If the plug-in hasn't been initialized, store the error and update the state. 23 24 (WebKit::PluginView::initializePlugin): 25 Call redeliverManualStream. 26 27 (WebKit::PluginView::redeliverManualStream): 28 Redeliver the manual stream to the plug-in. 29 30 * WebProcess/Plugins/PluginView.h: 31 1 32 2010-12-16 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com> 2 33 -
trunk/WebKit2/WebProcess/Plugins/PluginView.cpp
r74046 r74202 251 251 , m_pendingURLRequestsTimer(RunLoop::main(), this, &PluginView::pendingURLRequestsTimerFired) 252 252 , m_npRuntimeObjectMap(this) 253 , m_manualStreamState(StreamStateInitial) 253 254 { 254 255 #if PLATFORM(MAC) … … 297 298 return; 298 299 300 if (!m_isInitialized) { 301 ASSERT(m_manualStreamState == StreamStateInitial); 302 m_manualStreamState = StreamStateHasReceivedResponse; 303 m_manualStreamResponse = response; 304 return; 305 } 306 299 307 // Compute the stream related data from the resource response. 300 308 const KURL& responseURL = response.url(); … … 317 325 return; 318 326 327 if (!m_isInitialized) { 328 ASSERT(m_manualStreamState == StreamStateHasReceivedResponse); 329 if (!m_manualStreamData) 330 m_manualStreamData = SharedBuffer::create(); 331 332 m_manualStreamData->append(bytes, length); 333 return; 334 } 335 319 336 m_plugin->manualStreamDidReceiveData(bytes, length); 320 337 } … … 326 343 return; 327 344 345 if (!m_isInitialized) { 346 ASSERT(m_manualStreamState == StreamStateHasReceivedResponse); 347 m_manualStreamState = StreamStateFinished; 348 return; 349 } 350 328 351 m_plugin->manualStreamDidFinishLoading(); 329 352 } … … 334 357 if (!m_plugin) 335 358 return; 359 360 if (!m_isInitialized) { 361 m_manualStreamState = StreamStateFinished; 362 m_manualStreamError = error; 363 m_manualStreamData = nullptr; 364 return; 365 } 336 366 337 367 m_plugin->manualStreamDidFail(error.isCancellation()); … … 412 442 413 443 viewGeometryDidChange(); 444 445 redeliverManualStream(); 414 446 415 447 #if PLATFORM(MAC) … … 721 753 } 722 754 755 void PluginView::redeliverManualStream() 756 { 757 if (m_manualStreamState == StreamStateInitial) { 758 // Nothing to do. 759 return; 760 } 761 762 if (m_manualStreamState == StreamStateFailed) { 763 manualLoadDidFail(m_manualStreamError); 764 return; 765 } 766 767 // Deliver the response. 768 manualLoadDidReceiveResponse(m_manualStreamResponse); 769 770 // Deliver the data. 771 if (m_manualStreamData) { 772 const char* data; 773 unsigned position = 0; 774 775 while (unsigned length = m_manualStreamData->getSomeData(data, position)) { 776 manualLoadDidReceiveData(data, length); 777 position += length; 778 } 779 780 m_manualStreamData = nullptr; 781 } 782 783 if (m_manualStreamState == StreamStateFinished) 784 manualLoadDidFinishLoading(); 785 } 786 723 787 void PluginView::invalidateRect(const IntRect& dirtyRect) 724 788 { -
trunk/WebKit2/WebProcess/Plugins/PluginView.h
r74046 r74202 34 34 35 35 #include <WebCore/MediaCanStartListener.h> 36 #include <WebCore/ResourceError.h> 37 #include <WebCore/ResourceResponse.h> 36 38 #include <WebCore/PluginViewBase.h> 37 39 #include <wtf/Deque.h> … … 91 93 void removeStream(Stream*); 92 94 void cancelAllStreams(); 95 96 void redeliverManualStream(); 93 97 94 98 // WebCore::PluginViewBase … … 161 165 // A map of all related NPObjects for this plug-in view. 162 166 NPRuntimeObjectMap m_npRuntimeObjectMap; 167 168 // The manual stream state. This is used so we can deliver a manual stream to a plug-in 169 // when it is initialized. 170 enum ManualStreamState { 171 StreamStateInitial, 172 StreamStateHasReceivedResponse, 173 StreamStateFinished, 174 StreamStateFailed 175 }; 176 ManualStreamState m_manualStreamState; 177 178 WebCore::ResourceResponse m_manualStreamResponse; 179 WebCore::ResourceError m_manualStreamError; 180 RefPtr<WebCore::SharedBuffer> m_manualStreamData; 163 181 }; 164 182
Note: See TracChangeset
for help on using the changeset viewer.