linktoqrprivacy

LINKTOQR - QR Code Generator Chrome Extension

Single Purpose

An extension must have a single purpose that is narrow and easy to understand

LINKTOQR’s Purpose: Convert any URL or text into a scannable QR code with a single click, enabling seamless sharing and quick access to web content.


Overview

LINKTOQR is a powerful Chrome extension that enables users to generate, customize, and share QR codes instantly. The extension offers both free and premium features for QR code generation and management.

Version: 1.0.0
License: MIT
Author: srwaditya


Table of Contents

  1. Project Structure
  2. Features
  3. Permissions & Justifications
  4. File Documentation
  5. Installation
  6. Development

Project Structure

linktoqr-extension/
├── manifest.json                 # Extension configuration
├── package.json                  # Project metadata
├── src/
│   ├── css/
│   │   └── styles.css           # UI styling
│   ├── html/
│   │   ├── popup.html           # Main popup interface
│   │   └── shared-card.html     # Shared card component
│   ├── images/                  # Extension icons
│   │   ├── icon-16.png
│   │   ├── icon-48.png
│   │   └── icon-128.png
│   └── js/
│       ├── background.js        # Service worker
│       ├── popup.js             # Popup logic
│       ├── premium.js           # Premium features
│       ├── storage.js           # Data persistence
│       ├── ui.js                # UI utilities
│       └── lib/
│           └── qrcode.min.js    # QR code generation library

Features

Core Functionality

Supported Capabilities


Permissions & Justifications

activeTab

Purpose: Access the currently active tab to generate QR codes
Justification: Required to read the URL of the current webpage and generate a QR code representing that URL. This permission only applies to the tab the user explicitly clicks on.

scripting

Purpose: Execute scripts in web pages
Justification: Allows the extension to inject QR code generation functionality into web pages and interact with page content when needed for enhanced QR code features.

storage

Purpose: Store user data persistently
Justification: Enables the extension to save user preferences, QR code history, premium account status, and other user-specific settings across browser sessions.

clipboardWrite

Purpose: Copy generated QR codes to clipboard
Justification: Allows users to quickly copy generated QR codes to their clipboard for easy pasting into other applications or documents.

download

Purpose: Download generated QR codes
Justification: Enables users to download generated QR codes as image files to their computer for sharing, printing, or archival purposes.

host_permissions (<all_urls>)

Purpose: Access all websites
Justification: Allows the extension to generate QR codes from any URL the user visits. This broad permission enables the extension to function seamlessly across all web pages without requiring site-specific permissions, providing a better user experience while respecting user privacy through the activeTab permission requirement.


File Documentation

Manifest Configuration (manifest.json)

Package Configuration (package.json)

JavaScript Files

background.js

Service worker that runs in the background to:

popup.js

Main popup interface controller that:

premium.js

Premium feature management including:

storage.js

Data persistence layer for:

ui.js

UI utilities for:

qrcode.min.js (Library)

Minified QR code generation library that:

HTML Files

popup.html

Main extension popup interface containing:

shared-card.html

Shared card component for:

Styles (styles.css)

CSS styling for:


Installation

For Users

  1. Download the extension from Chrome Web Store (when published)
  2. Click “Add to Chrome”
  3. Confirm the permission request
  4. Extension icon appears in the toolbar

For Developers

  1. Clone the repository
  2. Open Chrome and navigate to chrome://extensions/
  3. Enable “Developer mode” (top right)
  4. Click “Load unpacked”
  5. Select the linktoqr-extension folder
  6. Extension is now loaded for development

Development

Running in Development Mode

npm run dev

Then load the unpacked extension in Chrome DevTools.

Building

npm run build

Testing

npm test

Directory Structure Notes


Extension Architecture

Message Flow

  1. Popup → User triggers QR code generation
  2. Popup.js → Sends message to background service worker
  3. Background.js → Processes request, generates QR code
  4. Storage.js → Persists data if needed
  5. Popup.js → Receives response and displays QR code

Data Storage


Troubleshooting


Support & Contributing

For issues, feature requests, or contributions, please contact the development team or create an issue in the repository.


Last Updated: February 2026