| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_INTENTS_DEFAULT_WEB_INTENT_SERVICE_H_ |
| #define CHROME_BROWSER_INTENTS_DEFAULT_WEB_INTENT_SERVICE_H_ |
| |
| #include <string> |
| |
| #include "base/string16.h" |
| #include "chrome/common/extensions/url_pattern.h" |
| |
| // Holds data related to a default settings for web intents service |
| // selection. Holds data in a row in the web_intents_defaults table. |
| // The key for the table is the |action|, |type|, and |url_pattern|. |
| // These describe the action and type of the web intent for which the |
| // default is set, and the url prefix (if any) of source pages for |
| // which the default applies. The main actionable value is the URL |
| // of the service or extension page handling the intent. The |user_date| |
| // and |suppression| fields are provided for more intricate post-fetch |
| // decisions about whether to use a particular default service. |
| struct DefaultWebIntentService { |
| |
| // Intents are matched to services using two defferent matching |
| // strategies. |
| // 1) |action| + |type|. Examples: |
| // action = "webintents.org/share", type = "mydomain.com/mytype" |
| // action = "intents.w3c.org/action/view", type = "image/png" |
| // 2) |scheme| e.g., "mailto", or "web+poodle". |
| // Type for intent service matching. This can be any arbitray type, |
| // including commonly recognized types such as mime-types. |
| string16 action; |
| string16 type; |
| string16 scheme; |
| |
| URLPattern url_pattern; |
| |
| // |user_date| holds the offset time when a user set the default. |
| // If the user did not set the default explicitly, is <= 0. |
| int user_date; |
| |
| // |suppression| holds a value indicating what the suppression context |
| // for the default should be. Currently it holds a hash value of the other |
| // current entries in the picker model when the default was set. |
| int64 suppression; |
| |
| std::string service_url; |
| |
| DefaultWebIntentService(); |
| DefaultWebIntentService( |
| const string16& action, |
| const string16& type, |
| const std::string& service_url); |
| DefaultWebIntentService( |
| const string16& scheme, |
| const std::string& service_url); |
| ~DefaultWebIntentService(); |
| |
| std::string ToString() const; |
| bool operator==(const DefaultWebIntentService& other) const; |
| }; |
| |
| #endif // CHROME_BROWSER_INTENTS_DEFAULT_WEB_INTENT_SERVICE_H_ |