Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(99)

Side by Side Diff: third_party/WebKit/Source/web/WebPluginContainerImpl.cpp

Issue 1426923007: Remove PluginLoadObserver and related logic, it was only used for NPAPI. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * Copyright (C) 2014 Opera Software ASA. All rights reserved. 3 * Copyright (C) 2014 Opera Software ASA. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 UserGestureIndicator gestureIndicator(popupsAllowed ? DefinitelyProcessingNe wUserGesture : PossiblyProcessingUserGesture); 493 UserGestureIndicator gestureIndicator(popupsAllowed ? DefinitelyProcessingNe wUserGesture : PossiblyProcessingUserGesture);
494 v8::HandleScope handleScope(toIsolate(frame)); 494 v8::HandleScope handleScope(toIsolate(frame));
495 v8::Local<v8::Value> result = frame->script().executeScriptInMainWorldAndRet urnValue(ScriptSourceCode(script)); 495 v8::Local<v8::Value> result = frame->script().executeScriptInMainWorldAndRet urnValue(ScriptSourceCode(script));
496 496
497 // Failure is reported as a null string. 497 // Failure is reported as a null string.
498 if (result.IsEmpty() || !result->IsString()) 498 if (result.IsEmpty() || !result->IsString())
499 return WebString(); 499 return WebString();
500 return toCoreString(v8::Local<v8::String>::Cast(result)); 500 return toCoreString(v8::Local<v8::String>::Cast(result));
501 } 501 }
502 502
503 void WebPluginContainerImpl::loadFrameRequest(const WebURLRequest& request, cons t WebString& target, bool notifyNeeded, void* notifyData) 503 void WebPluginContainerImpl::loadFrameRequest(const WebURLRequest& request, cons t WebString& target)
504 { 504 {
505 LocalFrame* frame = m_element->document().frame(); 505 LocalFrame* frame = m_element->document().frame();
506 if (!frame || !frame->loader().documentLoader()) 506 if (!frame || !frame->loader().documentLoader())
507 return; // FIXME: send a notification in this case? 507 return; // FIXME: send a notification in this case?
508 508
509 if (notifyNeeded) {
510 // FIXME: This is a bit of hack to allow us to observe completion of
511 // our frame request. It would be better to evolve FrameLoader to
512 // support a completion callback instead.
513 OwnPtrWillBeRawPtr<WebPluginLoadObserver> observer = WebPluginLoadObserv er::create(this, request.url(), notifyData);
514 #if !ENABLE(OILPAN)
515 m_pluginLoadObservers.append(observer.get());
516 #endif
517 WebDataSourceImpl::setNextPluginLoadObserver(observer.release());
518 }
519
520 FrameLoadRequest frameRequest(frame->document(), request.toResourceRequest() , target); 509 FrameLoadRequest frameRequest(frame->document(), request.toResourceRequest() , target);
521 frame->loader().load(frameRequest); 510 frame->loader().load(frameRequest);
522 } 511 }
523 512
524 bool WebPluginContainerImpl::isRectTopmost(const WebRect& rect) 513 bool WebPluginContainerImpl::isRectTopmost(const WebRect& rect)
525 { 514 {
526 // Disallow access to the frame during dispose(), because it is not guarante ed to 515 // Disallow access to the frame during dispose(), because it is not guarante ed to
527 // be valid memory once this object has started disposal. In particular, we might be being 516 // be valid memory once this object has started disposal. In particular, we might be being
528 // disposed because the frame has already be deleted and then something else dropped the 517 // disposed because the frame has already be deleted and then something else dropped the
529 // last reference to the this object. 518 // last reference to the this object.
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 bool WebPluginContainerImpl::canProcessDrag() const 675 bool WebPluginContainerImpl::canProcessDrag() const
687 { 676 {
688 return m_webPlugin->canProcessDrag(); 677 return m_webPlugin->canProcessDrag();
689 } 678 }
690 679
691 bool WebPluginContainerImpl::wantsWheelEvents() 680 bool WebPluginContainerImpl::wantsWheelEvents()
692 { 681 {
693 return m_wantsWheelEvents; 682 return m_wantsWheelEvents;
694 } 683 }
695 684
696 #if !ENABLE(OILPAN)
697 void WebPluginContainerImpl::willDestroyPluginLoadObserver(WebPluginLoadObserver * observer)
698 {
699 size_t pos = m_pluginLoadObservers.find(observer);
700 if (pos == kNotFound)
701 return;
702 m_pluginLoadObservers.remove(pos);
703 }
704 #endif
705
706 // Private methods ------------------------------------------------------------- 685 // Private methods -------------------------------------------------------------
707 686
708 WebPluginContainerImpl::WebPluginContainerImpl(HTMLPlugInElement* element, WebPl ugin* webPlugin) 687 WebPluginContainerImpl::WebPluginContainerImpl(HTMLPlugInElement* element, WebPl ugin* webPlugin)
709 : LocalFrameLifecycleObserver(element->document().frame()) 688 : LocalFrameLifecycleObserver(element->document().frame())
710 , m_element(element) 689 , m_element(element)
711 , m_webPlugin(webPlugin) 690 , m_webPlugin(webPlugin)
712 , m_webLayer(nullptr) 691 , m_webLayer(nullptr)
713 , m_touchEventRequestType(TouchEventRequestTypeNone) 692 , m_touchEventRequestType(TouchEventRequestTypeNone)
714 , m_wantsWheelEvents(false) 693 , m_wantsWheelEvents(false)
715 , m_inDispose(false) 694 , m_inDispose(false)
(...skipping 15 matching lines...) Expand all
731 #endif 710 #endif
732 } 711 }
733 712
734 void WebPluginContainerImpl::dispose() 713 void WebPluginContainerImpl::dispose()
735 { 714 {
736 m_inDispose = true; 715 m_inDispose = true;
737 716
738 if (m_element && m_touchEventRequestType != TouchEventRequestTypeNone && m_e lement->document().frameHost()) 717 if (m_element && m_touchEventRequestType != TouchEventRequestTypeNone && m_e lement->document().frameHost())
739 m_element->document().frameHost()->eventHandlerRegistry().didRemoveEvent Handler(*m_element, EventHandlerRegistry::TouchEvent); 718 m_element->document().frameHost()->eventHandlerRegistry().didRemoveEvent Handler(*m_element, EventHandlerRegistry::TouchEvent);
740 719
741 #if !ENABLE(OILPAN)
742 for (const auto& observer : m_pluginLoadObservers)
743 observer->clearPluginContainer();
744 #endif
745
746 if (m_webPlugin) { 720 if (m_webPlugin) {
747 RELEASE_ASSERT(!m_webPlugin->container() || m_webPlugin->container() == this); 721 RELEASE_ASSERT(!m_webPlugin->container() || m_webPlugin->container() == this);
748 m_webPlugin->destroy(); 722 m_webPlugin->destroy();
749 m_webPlugin = nullptr; 723 m_webPlugin = nullptr;
750 } 724 }
751 725
752 if (m_webLayer) { 726 if (m_webLayer) {
753 GraphicsLayer::unregisterContentsLayer(m_webLayer); 727 GraphicsLayer::unregisterContentsLayer(m_webLayer);
754 m_webLayer = nullptr; 728 m_webLayer = nullptr;
755 } 729 }
756 730
757 #if !ENABLE(OILPAN)
758 m_pluginLoadObservers.clear();
759 #endif
760 m_element = nullptr; 731 m_element = nullptr;
761 } 732 }
762 733
763 #if ENABLE(OILPAN) 734 #if ENABLE(OILPAN)
764 void WebPluginContainerImpl::shouldDisposePlugin() 735 void WebPluginContainerImpl::shouldDisposePlugin()
765 { 736 {
766 // If the LocalFrame is still alive, but the plugin element isn't, the 737 // If the LocalFrame is still alive, but the plugin element isn't, the
767 // LocalFrame will set m_shouldDisposePlugin via its weak pointer 738 // LocalFrame will set m_shouldDisposePlugin via its weak pointer
768 // callback. This is a signal that the plugin container 739 // callback. This is a signal that the plugin container
769 // must dispose of its plugin when finalizing. The LocalFrame and 740 // must dispose of its plugin when finalizing. The LocalFrame and
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
1009 // frame view. 980 // frame view.
1010 computeClipRectsForPlugin(m_element, windowRect, clipRect, unobscuredRec t); 981 computeClipRectsForPlugin(m_element, windowRect, clipRect, unobscuredRec t);
1011 } 982 }
1012 getPluginOcclusions(m_element, this->parent(), frameRect(), cutOutRects); 983 getPluginOcclusions(m_element, this->parent(), frameRect(), cutOutRects);
1013 // Convert to the plugin position. 984 // Convert to the plugin position.
1014 for (size_t i = 0; i < cutOutRects.size(); i++) 985 for (size_t i = 0; i < cutOutRects.size(); i++)
1015 cutOutRects[i].move(-frameRect().x(), -frameRect().y()); 986 cutOutRects[i].move(-frameRect().x(), -frameRect().y());
1016 } 987 }
1017 988
1018 } // namespace blinkf 989 } // namespace blinkf
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698