| /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
| /* ***** BEGIN LICENSE BLOCK ***** |
| * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
| * |
| * The contents of this file are subject to the Mozilla Public License Version |
| * 1.1 (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * http://www.mozilla.org/MPL/ |
| * |
| * Software distributed under the License is distributed on an "AS IS" basis, |
| * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
| * for the specific language governing rights and limitations under the |
| * License. |
| * |
| * The Original Code is mozilla.org object loading code. |
| * |
| * The Initial Developer of the Original Code is |
| * Christian Biesinger <cbiesinger@web.de>. |
| * Portions created by the Initial Developer are Copyright (C) 2005 |
| * the Initial Developer. All Rights Reserved. |
| * |
| * Contributor(s): |
| * |
| * Alternatively, the contents of this file may be used under the terms of |
| * either the GNU General Public License Version 2 or later (the "GPL"), or |
| * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
| * in which case the provisions of the GPL or the LGPL are applicable instead |
| * of those above. If you wish to allow use of your version of this file only |
| * under the terms of either the GPL or the LGPL, and not to allow others to |
| * use your version of this file under the terms of the MPL, indicate your |
| * decision by deleting the provisions above and replace them with the notice |
| * and other provisions required by the GPL or the LGPL. If you do not delete |
| * the provisions above, a recipient may use your version of this file under |
| * the terms of any one of the MPL, the GPL or the LGPL. |
| * |
| * ***** END LICENSE BLOCK ***** */ |
| |
| #include "nsISupports.idl" |
| |
| interface nsIObjectFrame; |
| interface nsIPluginInstance; |
| |
| /** |
| * This interface represents a content node that loads objects. |
| */ |
| [scriptable, uuid(90ab443e-3e99-405e-88c9-9c42adaa3217)] |
| interface nsIObjectLoadingContent : nsISupports |
| { |
| const unsigned long TYPE_LOADING = 0; |
| const unsigned long TYPE_IMAGE = 1; |
| const unsigned long TYPE_PLUGIN = 2; |
| const unsigned long TYPE_DOCUMENT = 3; |
| const unsigned long TYPE_NULL = 4; |
| |
| /** |
| * The actual mime type (the one we got back from the network |
| * request) for the element. |
| */ |
| readonly attribute ACString actualType; |
| |
| /** |
| * Gets the type of the content that's currently loaded. See |
| * the constants above for the list of possible values. |
| */ |
| readonly attribute unsigned long displayedType; |
| |
| /** |
| * Gets the content type that corresponds to the give MIME type. See the |
| * constants above for the list of possible values. If nothing else fits, |
| * TYPE_NULL will be returned. |
| */ |
| unsigned long getContentTypeForMIMEType(in AUTF8String aMimeType); |
| |
| /** |
| * Returns the plugin instance if it has already been instantiated. This |
| * will never instantiate the plugin and so is safe to call even when |
| * content script must not execute. |
| */ |
| [noscript] readonly attribute nsIPluginInstance pluginInstance; |
| |
| |
| /** |
| * Makes sure that a frame for this object exists, and that the plugin is |
| * instantiated. This method does nothing if the type is not #TYPE_PLUGIN. |
| * There is no guarantee that there will be a frame after this method is |
| * called; for example, the node may have a display:none style. If plugin |
| * instantiation is possible, it will be done synchronously by this method, |
| * and the plugin instance will be returned. A success return value does not |
| * necessarily mean that the instance is nonnull. |
| * |
| * This is a noscript method because it is internal and will go away once |
| * plugin loading moves to content. |
| * |
| * @note If there is an error instantiating the plugin, this method will |
| * trigger fallback to replacement content, and the type will change (and |
| * this method will return a failure code) |
| */ |
| [noscript] nsIPluginInstance ensureInstantiation(); |
| |
| /** |
| * Tells the content about an associated object frame. |
| * This can be called multiple times for different frames. |
| * |
| * This is noscript because this is an internal method that will go away, and |
| * because nsIObjectFrame is unscriptable. |
| */ |
| [noscript] void hasNewFrame(in nsIObjectFrame aFrame); |
| }; |