// CodaYun Desktop 插件后台脚本
// 支持 Chrome、Microsoft Edge 和 Firefox 浏览器
// Chrome 和 Edge 使用 chrome.* API，Firefox 使用 browser.* API

// 使用统一的 API（兼容 Chrome、Edge 和 Firefox）
const browserAPI = typeof chrome !== 'undefined' ? chrome : (typeof browser !== 'undefined' ? browser : null);

// 点击扩展图标时打开新标签页（与 newtab 相同的 CodaYun 工作空间）
browserAPI.action.onClicked.addListener(() => {
  browserAPI.tabs.create({ url: browserAPI.runtime.getURL('index.html') });
});

browserAPI.runtime.onInstalled.addListener(() => {
  console.log('CodaYun Desktop 多功能工具箱插件已安装');
  
  // 设置默认配置
  browserAPI.storage.local.set({
    'appSettings': {
      selectedTheme: '前端开发工程师',
      mainTitle: '让工作更简单 更高效 更轻松',
      blurValue: 10,
      overlayOpacity: 25,
      enabled: true
    }
  });
});

// 处理来自popup的消息
browserAPI.runtime.onMessage.addListener((request, sender, sendResponse) => {
  switch (request.action) {
    case 'search':
      // 处理搜索请求
      if (request.url) {
        browserAPI.tabs.create({ url: request.url });
      }
      break;
      
    case 'openTool':
      // 处理工具打开请求
      if (request.toolUrl) {
        browserAPI.tabs.create({ url: request.toolUrl });
      }
      break;
      
    case 'setHomepage':
      // 设置新标签页
      browserAPI.storage.local.set({ 'isHomepageSet': true });
      break;
      
    case 'getSettings':
      // 获取设置
      browserAPI.storage.local.get(['appSettings'], (result) => {
        sendResponse({ settings: result.appSettings });
      });
      return true; // 异步响应
      
    default:
      sendResponse({ success: false, error: '未知操作' });
  }
  
  sendResponse({ success: true });
});

// 处理新标签页打开
browserAPI.tabs.onCreated.addListener((tab) => {
  browserAPI.storage.local.get(['isHomepageSet'], (result) => {
    if (result.isHomepageSet) {
      // 支持 Chrome、Edge 和 Firefox 的新标签页 URL
      const newTabUrls = ['chrome://newtab/', 'edge://newtab/', 'edge://startpage/', 'about:newtab', 'about:home'];
      if (newTabUrls.includes(tab.url)) {
        browserAPI.tabs.update(tab.id, { url: browserAPI.runtime.getURL('index.html') });
      }
    }
  });
});
