| OLD | NEW | 
|    1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |    1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5 // Defines the Chrome Extensions WebNavigation API functions for observing and |    5 // Defines the Chrome Extensions WebNavigation API functions for observing and | 
|    6 // intercepting navigation events, as specified in |    6 // intercepting navigation events, as specified in | 
|    7 // chrome/common/extensions/api/extension_api.json. |    7 // chrome/common/extensions/api/extension_api.json. | 
|    8  |    8  | 
|    9 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_WEBNAVIGATION_API_H_ |    9 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_WEBNAVIGATION_API_H_ | 
|   10 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_WEBNAVIGATION_API_H_ |   10 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_WEBNAVIGATION_API_H_ | 
|   11 #pragma once |   11 #pragma once | 
|   12  |   12  | 
|   13 #include <map> |   13 #include <map> | 
|   14  |   14  | 
|   15 #include "base/singleton.h" |   15 #include "base/singleton.h" | 
|   16 #include "chrome/browser/extensions/extension_function.h" |   16 #include "chrome/browser/extensions/extension_function.h" | 
|   17 #include "chrome/common/notification_observer.h" |   17 #include "chrome/common/notification_observer.h" | 
|   18 #include "chrome/common/notification_registrar.h" |   18 #include "chrome/common/notification_registrar.h" | 
|   19 #include "googleurl/src/gurl.h" |   19 #include "googleurl/src/gurl.h" | 
|   20  |   20  | 
|   21 class NavigationController; |   21 class NavigationController; | 
|   22 class ProvisionalLoadDetails; |   22 class ProvisionalLoadDetails; | 
|   23 class TabContents; |   23 class TabContents; | 
 |   24 struct ViewHostMsg_CreateWindow_Params; | 
|   24  |   25  | 
|   25 // Tracks the navigation state of all frames currently known to the |   26 // Tracks the navigation state of all frames currently known to the | 
|   26 // webNavigation API. It is mainly used to track in which frames an error |   27 // webNavigation API. It is mainly used to track in which frames an error | 
|   27 // occurred so no further events for this frame are being sent. |   28 // occurred so no further events for this frame are being sent. | 
|   28 class FrameNavigationState { |   29 class FrameNavigationState { | 
|   29  public: |   30  public: | 
|   30   FrameNavigationState(); |   31   FrameNavigationState(); | 
|   31   ~FrameNavigationState(); |   32   ~FrameNavigationState(); | 
|   32  |   33  | 
|   33   // True if navigation events for the given frame can be sent. |   34   // True if navigation events for the given frame can be sent. | 
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  114   // Handler for the FRAME_DID_FINISH_LOAD event. The method takes the frame |  115   // Handler for the FRAME_DID_FINISH_LOAD event. The method takes the frame | 
|  115   // ID and constructs a suitable JSON formatted extension event from it. |  116   // ID and constructs a suitable JSON formatted extension event from it. | 
|  116   void FrameDidFinishLoad(NavigationController* controller, int64 frame_id); |  117   void FrameDidFinishLoad(NavigationController* controller, int64 frame_id); | 
|  117  |  118  | 
|  118   // Handler for the FAIL_PROVISIONAL_LOAD_WITH_ERROR event. The method takes |  119   // Handler for the FAIL_PROVISIONAL_LOAD_WITH_ERROR event. The method takes | 
|  119   // the details of such an event and constructs a suitable JSON formatted |  120   // the details of such an event and constructs a suitable JSON formatted | 
|  120   // extension event from it. |  121   // extension event from it. | 
|  121   void FailProvisionalLoadWithError(NavigationController* controller, |  122   void FailProvisionalLoadWithError(NavigationController* controller, | 
|  122                                     ProvisionalLoadDetails* details); |  123                                     ProvisionalLoadDetails* details); | 
|  123  |  124  | 
 |  125   // Handler for the CREATING_NEW_WINDOW event. The method takes the details of | 
 |  126   // such an event and constructs a suitable JSON formatted extension event from | 
 |  127   // it. | 
 |  128   void CreatingNewWindow(TabContents* tab_content, | 
 |  129                          const ViewHostMsg_CreateWindow_Params* details); | 
 |  130  | 
|  124   // Dispatches events to the extension message service. |  131   // Dispatches events to the extension message service. | 
|  125   void DispatchEvent(Profile* context, |  132   void DispatchEvent(Profile* context, | 
|  126                      const char* event_name, |  133                      const char* event_name, | 
|  127                      const std::string& json_args); |  134                      const std::string& json_args); | 
|  128  |  135  | 
|  129   // Tracks the state of the frames we are sending events for. |  136   // Tracks the state of the frames we are sending events for. | 
|  130   FrameNavigationState navigation_state_; |  137   FrameNavigationState navigation_state_; | 
|  131  |  138  | 
|  132   // Used for tracking registrations to navigation notifications. |  139   // Used for tracking registrations to navigation notifications. | 
|  133   NotificationRegistrar registrar_; |  140   NotificationRegistrar registrar_; | 
|  134  |  141  | 
|  135   DISALLOW_COPY_AND_ASSIGN(ExtensionWebNavigationEventRouter); |  142   DISALLOW_COPY_AND_ASSIGN(ExtensionWebNavigationEventRouter); | 
|  136 }; |  143 }; | 
|  137  |  144  | 
|  138 #endif  // CHROME_BROWSER_EXTENSIONS_EXTENSION_WEBNAVIGATION_API_H_ |  145 #endif  // CHROME_BROWSER_EXTENSIONS_EXTENSION_WEBNAVIGATION_API_H_ | 
| OLD | NEW |