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

Side by Side Diff: Source/web/FrameLoaderClientImpl.cpp

Issue 23618022: BrowserPlugin/WebView - Move plugin lifetime to DOM (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address comments. Created 7 years 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved.
3 * Copyright (C) 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2011 Apple Inc. 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 574 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 const KURL& url, 585 const KURL& url,
586 const String& name, 586 const String& name,
587 const String& referrer, 587 const String& referrer,
588 HTMLFrameOwnerElement* ownerElement) 588 HTMLFrameOwnerElement* ownerElement)
589 { 589 {
590 FrameLoadRequest frameRequest(m_webFrame->frame()->document(), 590 FrameLoadRequest frameRequest(m_webFrame->frame()->document(),
591 ResourceRequest(url, referrer), name); 591 ResourceRequest(url, referrer), name);
592 return m_webFrame->createChildFrame(frameRequest, ownerElement); 592 return m_webFrame->createChildFrame(frameRequest, ownerElement);
593 } 593 }
594 594
595 bool FrameLoaderClientImpl::canCreatePluginWithoutRenderer(const String& mimeTyp e) const
596 {
597 if (!m_webFrame->client())
598 return false;
599
600 return m_webFrame->client()->canCreatePluginWithoutRenderer(mimeType);
601 }
602
595 PassRefPtr<Widget> FrameLoaderClientImpl::createPlugin( 603 PassRefPtr<Widget> FrameLoaderClientImpl::createPlugin(
596 const IntSize& size, // FIXME: how do we use this? 604 const IntSize& size, // FIXME: how do we use this?
597 HTMLPlugInElement* element, 605 HTMLPlugInElement* element,
598 const KURL& url, 606 const KURL& url,
599 const Vector<String>& paramNames, 607 const Vector<String>& paramNames,
600 const Vector<String>& paramValues, 608 const Vector<String>& paramValues,
601 const String& mimeType, 609 const String& mimeType,
602 bool loadManually) 610 bool loadManually,
611 PluginLoadType loadType)
603 { 612 {
604 if (!m_webFrame->client()) 613 if (!m_webFrame->client())
605 return 0; 614 return 0;
606 615
607 WebPluginParams params; 616 WebPluginParams params;
608 params.url = url; 617 params.url = url;
609 params.mimeType = mimeType; 618 params.mimeType = mimeType;
610 params.attributeNames = paramNames; 619 params.attributeNames = paramNames;
611 params.attributeValues = paramValues; 620 params.attributeValues = paramValues;
612 params.loadManually = loadManually; 621 params.loadManually = loadManually;
613 622
614 WebPlugin* webPlugin = m_webFrame->client()->createPlugin(m_webFrame, params ); 623 WebPlugin* webPlugin = m_webFrame->client()->createPlugin(m_webFrame, params );
615 if (!webPlugin) 624 if (!webPlugin)
616 return 0; 625 return 0;
617 626
618 // The container takes ownership of the WebPlugin. 627 // The container takes ownership of the WebPlugin.
619 RefPtr<WebPluginContainerImpl> container = 628 RefPtr<WebPluginContainerImpl> container =
620 WebPluginContainerImpl::create(element, webPlugin); 629 WebPluginContainerImpl::create(element, webPlugin);
621 630
622 if (!webPlugin->initialize(container.get())) 631 if (!webPlugin->initialize(container.get()))
623 return 0; 632 return 0;
624 633
625 // The element might have been removed during plugin initialization! 634 // The element might have been removed during plugin initialization!
626 if (!element->renderer()) 635 if (!element->renderer() && loadType != PluginLoadWithoutRenderer)
627 return 0; 636 return 0;
628 637
629 return container; 638 return container;
630 } 639 }
631 640
632 PassRefPtr<Widget> FrameLoaderClientImpl::createJavaAppletWidget( 641 PassRefPtr<Widget> FrameLoaderClientImpl::createJavaAppletWidget(
633 const IntSize& size, 642 const IntSize& size,
634 HTMLAppletElement* element, 643 HTMLAppletElement* element,
635 const KURL& /* baseURL */, 644 const KURL& /* baseURL */,
636 const Vector<String>& paramNames, 645 const Vector<String>& paramNames,
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 return m_webFrame->sharedWorkerRepositoryClient(); 787 return m_webFrame->sharedWorkerRepositoryClient();
779 } 788 }
780 789
781 void FrameLoaderClientImpl::didStopAllLoaders() 790 void FrameLoaderClientImpl::didStopAllLoaders()
782 { 791 {
783 if (m_webFrame->client()) 792 if (m_webFrame->client())
784 m_webFrame->client()->didAbortLoading(m_webFrame); 793 m_webFrame->client()->didAbortLoading(m_webFrame);
785 } 794 }
786 795
787 } // namespace blink 796 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698