Labs/Extensions2/Examples: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
== Possible API ==
ext = Extensions.get(version)
*ext.Chrome
**ContextMenu
***add
***get
***list
***remove
**StatusBarIcon
***add
***list
***remove
***get
**UrlBarIcon
***add
***list
***remove
***get
Ent.Chrome.
== Content Filter ==
== Content Filter ==
<pre>
<pre>

Revision as of 00:52, 20 January 2009

Possible API

ext = Extensions.get(version)

  • ext.Chrome
    • ContextMenu
      • add
      • get
      • list
      • remove
    • StatusBarIcon
      • add
      • list
      • remove
      • get
    • UrlBarIcon
      • add
      • list
      • remove
      • get


Ent.Chrome.

Content Filter

<html>
<head>
  <title>Content Filter Extension</title>
  <!-- TODO: Meta Data -->
  <script>
    Ent.Privileges.request( "Modify DOM" );
  </script>
</head>

<body>
  <script class="extension">
    Ent.onPageLoad(function( page ){
      jQuery("img", page).css({
        "-moz-transform": "rotate(180deg)"
      })
    });
  </script>

</body>
</html>

Snapshot

<html>
<head>
  <title>Screen Capture Extension</title>
  <author>
    <name>Aza Raskin</name>
    <email>aza@mozilla.com</email>
  </author>
  <license>MPL</license>
  <script>
    Ent.Privileges.request( "Add to Chrome", "Write File" );  
  </script>  
</head>

<body>
  <div id="status-bar-icon">
    <img src="myIcon.png"/>
  </div>
  
  <script class="extension">
    function captureScreen(){
      win = Ent.getFocusedWindow();
      hiddenWin = Ent.getHiddenWindow();
      var thumbnail = hiddenWin.document.createElementNS(
        "http://www.w3.org/1999/xhtml", "canvas" );

      /* ... */

      ctx.drawWindow(win, win.scrollX, win.scrollY,
                     win.innerWidth, win.innerWidth, "rgb(255,255,255)");

      var data = thumbnail.toDataURL("image/jpeg", "quality=80");

      var f = Ent.Files.open( "thumbnail.jpg", "w" )
      f.write( data );
      f.close();
      
    }

    function captureWebPage(){
      /* capture screen */
    }  
  
    jQuery("#status-bar-icon").click(function(){
      Ent.showContextMenu({
        "Capture screen": captureScreen,
        "Capture web page": captureWebPage,
      });
    });
    
    Ent.Chrome.addToStatusBar( "#status-bar-icon" );
  </script>

</body>
</html>