FrameWise

Support Center

We're here to help you get the most out of FrameWise

📚 Complete Documentation Check out the README for complete extension documentation and usage guides.

🔗 Quick Links

🔧 How It Works

FrameWise uses Chrome's Windows API to create and position multiple browser windows simultaneously. Here's a detailed explanation of how the extension works:

Core Functionality

1. URL Input & Validation

  • Enter up to 8 URLs in the extension popup
  • Real-time URL validation ensures proper format (must start with http:// or https://)
  • Security checks block private IPs and localhost URLs to prevent SSRF attacks
  • Duplicate URL detection prevents opening the same site multiple times

2. Layout Selection

  • Choose from 9 different layout options via the visual layout picker
  • Auto Layout: Automatically selects the best layout based on screen size and number of URLs
  • Single Window Layouts: Fullscreen (1 page), Vertical split (2 pages), Horizontal split (2 pages)
  • Multi-Window Layouts: Large left/top with smaller windows (3 pages), 2×2 Grid (4 pages)
  • Tabs Mode: For 5-8 sites, opens all URLs as tabs in a new or existing window
  • Visual thumbnails show exactly how windows will be arranged

3. Window Creation & Positioning

  • Uses Chrome's chrome.windows.create() API to create new windows
  • Calculates optimal window positions based on screen dimensions and selected layout
  • Each window is positioned to avoid overlap and maximize screen usage
  • Windows can be opened in the background to avoid interrupting your workflow

4. Collections System

  • Save your URL configurations and layout preferences as "collections"
  • Collections are stored locally using Chrome's chrome.storage.local API
  • Each collection can store: up to 8 URLs, selected layout, window title, and advanced options
  • Quick load, update, or delete collections (maximum of 100 collections)

5. Activity History & Undo

  • Tracks your last 5 actions (add/delete collections, modify URLs, etc.)
  • One-click undo for recent actions
  • Activity history panel shows what was changed and when

Technical Details

Architecture:

  • Built with Chrome Extensions Manifest V3 for modern security and performance
  • Service worker (background.js) handles window creation and messaging
  • Popup interface provides the main user interface
  • Separate layout picker window for visual layout selection
  • All data stored in chrome.storage.local - never leaves your device
  • Pure vanilla JavaScript, no frameworks or external libraries

Security Features:

  • SSRF Protection: Blocks private IP ranges and localhost
  • XSS Protection: All user input is sanitized and escaped
  • Input Validation: URL length limits (2048 chars) prevent DoS attacks
  • Storage Quotas: Automatic limits prevent storage exhaustion
  • CSP: Content Security Policy prevents code injection
  • No Remote Code: All code is bundled locally

❓ Frequently Asked Questions

How do I use FrameWise?
  1. Click the FrameWise icon in the Chrome toolbar
  2. Enter 1 to 8 URLs in the provided fields (first 4 are always visible, click "Show 4 more URLs" for URLs 5-8)
  3. Click the layout icon to open the visual layout picker
  4. Select a layout that matches your needs (Auto, Grid, Vertical, Horizontal, etc.)
  5. Click "Open" (▶) to create and position the windows
  6. Use "Close" (✖) to close all windows opened by FrameWise

Check the README for more detailed instructions.

Can I save my configurations?
Yes! You can save your configurations as "collections" to quickly reuse them. Here's how:
  1. Configure your URLs and select a layout
  2. Optionally enter a window title for easy identification
  3. Click "Save" (💾) button
  4. Enter a name for your collection
  5. Your collection is now saved and appears in the collections list

You can save up to 100 collections. To load a collection, click on it in the list. To update an existing collection, load it, make changes, and click "Update". To delete a collection, click the 🗑️ icon next to it.

Windows are not opening correctly
If windows aren't opening or positioning correctly, check the following:
  • URL Format: URLs must be valid and start with https:// or http://. The extension provides real-time validation feedback.
  • Permissions: Ensure you've granted the necessary permissions (the extension should request them automatically on first use). Check chrome://extensions/ if needed.
  • Chrome Version: Your Chrome version should be up to date (Chrome 114+ recommended for Manifest V3 support)
  • Security Restrictions: Private IPs (10.x.x.x, 172.16-31.x.x, 192.168.x.x) and localhost URLs are blocked for security reasons (SSRF protection)
  • Screen Size: Very small screens may cause positioning issues. The extension uses screen.availWidth and screen.availHeight for calculations.
  • System Borders: Depending on your OS, system window borders may cause slight positioning offsets. This is normal.
  • Multi-Monitor: Basic multi-monitor support is available, but advanced positioning across multiple displays may have limitations.

If issues persist, try refreshing the extension or restarting Chrome. You can also report the issue on GitHub.

Does the extension collect my data?
No! FrameWise works entirely locally. All your data stays on your machine. We don't collect, track, or transmit any information. Check our Privacy Policy for more information.
Can I use more than 8 sites?
Currently, FrameWise supports up to 8 simultaneous sites. This limit is designed to:
  • Prevent performance issues from opening too many windows at once
  • Ensure proper window positioning and layout management
  • Maintain a clean and manageable user interface

For 5-8 sites, the extension automatically uses "tabs" mode, which opens all URLs as tabs in a single window. You can choose to open tabs in a new window or add them to the current window.

If you need to monitor more than 8 sites, consider creating multiple collections and opening them sequentially, or use the extension multiple times with different URL sets.

What is the Activity History feature?
Activity History is a powerful undo feature that tracks your last 5 actions in FrameWise. It allows you to:
  • Undo accidental deletions of collections
  • Revert URL modifications
  • Restore cleared configurations
  • Undo collection updates

The activity history panel shows your recent actions with timestamps. Click the undo button (↶) next to any action to revert it. The history is stored in memory and doesn't persist after closing the extension popup, keeping your storage clean.

What's the difference between layouts?
FrameWise offers 9 different layout options:
  • Auto: Automatically selects the best layout based on screen size and number of URLs
  • 1 • Full: Single fullscreen window (for 1 URL)
  • 2 • Vertical: Two windows side by side (for 2 URLs)
  • 2 • Horizontal: Two windows stacked vertically (for 2 URLs)
  • 3 • Left: Large window on left, two smaller windows on right (for 3 URLs)
  • 3 • Top: Large window on top, two smaller windows below (for 3 URLs)
  • 4 • Grid: 2×2 grid of four equal windows (for 4 URLs)
  • Tabs • New window: All URLs as tabs in a new window (for 5-8 URLs)
  • Tabs • Current: All URLs as tabs in the current window (for 5-8 URLs)

The visual layout picker shows thumbnails of each layout so you can see exactly how windows will be arranged before opening them.

How do I uninstall the extension?
  1. Go to chrome://extensions/
  2. Find FrameWise in the list
  3. Click "Remove"
All locally stored data will be automatically deleted when you uninstall.

🐛 Report a Bug

If you encounter a problem, please open an issue on GitHub including:

  • Problem description - What happened?
  • Steps to reproduce - How can we reproduce the bug?
  • Expected vs actual behavior - What should happen vs what actually happens?
  • Chrome version - Your Chrome browser version
  • Extension version - Current FrameWise version
  • Screenshot - If applicable, include a screenshot

💡 Improvement Suggestions

Have an idea to improve FrameWise? We'd love to hear it! Open an issue with the "enhancement" label or contact us via GitHub.

📖 Documentation

🤝 Contributing

Contributions are welcome! Check out the GitHub repository for more information on how to contribute to the project. We appreciate your help in making FrameWise better!

📧 Contact

For any questions or issues, the best way to contact us is via: